[haiku-commits] haiku: hrev46113 - src/add-ons/kernel/file_systems/packagefs src/libs/zlib build/jam src src/bin

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 27 Sep 2013 02:03:37 +0200 (CEST)

hrev46113 adds 1179 changesets to branch 'master'
old head: 23afdc2ba493acf05dd9bd892e95c568d0d35670
new head: 9f81ca838ce7b92b5689e57d3f86765db4705a7b
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=9f81ca8+%5E23afdc2

----------------------------------------------------------------------------

3dfd9cb: Flat commit of all changes from package-management branch in svn

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

bc93eff: Added BuildPlatformStaticLibraryPIC rule.
  
  It works like BuildPlatformStaticLibrary, but generates position
  independent code.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bd9d1df: Added very simple BLooper class to libbe_build.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1044b2e: Added missing <StorageDefs.h> include.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

41f39d0: Removed obsolete TODO.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5eedc38: Fixed printf() format related warnings.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1cb2d5a: Use fs_close_attr()/write_pos() instead of close()/pwrite().
  
  This makes it easier to reuse the code on non-Haiku platforms.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f1eeb32: Fixed x86_64 handling by the build system.
  
  * Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
  * x86 and
    64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
  case.
  * <OS.h>: Also handle __x86_64__.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b795c9c: Made the check for B_BUFFER_OVERFLOW more flexible.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

62fef8b: Added driver settings and find_directory() support.
  
  find_directory() is a very simplified implementation, only supporting
  what we currently need.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e781b1b: Open/close attribute support for xattrs backend
  
  For the xattr/BSD (untyped) attribute backend implement fs_fopen_attr()
  and fs_close_attr(). A new AttributeDescriptor is created. It is
  currently used in write_pos() only.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a7bcad8: Updated to current Haiku version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

14c34be: Fixed host build issues/warnings

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d451f7a: Added several APIs to libbe_build/libshared_build

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0ee9bc9: Build libpackage for the build platform

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

922e7ba: Build the package tool for the build platform

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

efec892: Added .gitignore

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a1cada9: Fix x86_64 BuildConfig issues
  
  * Resolve TODO: HOST_GCC_BASE_FLAGS should not be included in
    HOST_LDFLAGS. Enable adding "-fno-strict-aliasing -fno-tree-vrp"
    accordingly.
  * Fix handling of HOST_PLATFORM_IS_64_BIT and HAIKU_HOST_USE_32BIT: The
    former does now state whether the platform is effectively treated as
    64 bit platform, i.e. it actually is 64 bit and the 32 bit mode is
    not enforced. HAIKU_HOST_USE_32BIT is now only set when the platform
    is actually 64 bit, but 32 bit mode is enforced.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

abd5edc: libroot_build: fix error.ccp build
  
  Since USES_BE_API is set by default on all libroot_build sources, the
  error.cpp
  was broken, since it wouldn't be exempt from the error mapping. Define
  the
  BUILDING_HAIKU_ERROR_MAPPER for it directly in the Jamfile, now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e272fb5: <build>package: attribute iteration, license dir
  
  PackageWriterImpl:
  * Iterate through attributes using fs_read_attr_dir() instead of
    readdir(). Makes it work correctly on the build platform.
  * On the build platform look up the system licenses in their source
    directory rather than based on find_directory().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9e3bdfb: Generalize some image rules
  
  Pulled generalized *ToContainer versions out of several *ToHaikuImage
  rules.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

355b8ba: Build a system Haiku package
  
  * Create rules (build/jam/PackageRules) and a script,
    build_haiku_package, to build hpkg files.
  * Move all rule invocations that copy files and created symlinks and
    directories in the "system" directory from HaikuImage to
    HaikuPackages, which creates a package "haiku.hpkg".
  * build_haiku_image: Comment out adding the copyrights info to
    AboutSystem for the moment.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

93211f3: PackageWriterImpl: Build platform symlink issues
  
  On a non-Haiku build platform map openat(), fstat(), and
  FileDescriptorCloser to _kern_open(), _kern_read_stat(), and
  BuildFileDescriptorCloser respectively, so symlinks can be opened and
  stat()ed.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d1f40ef: HaikuPackages: Remove the "system" path component

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dcdeed6: AddDirectoryTo{HaikuImage,...} refactoring
  
  Move common code from AddDirectoryToHaikuImage/AddDirectoryToPackage to
  AddDirectoryToContainer. AddDirectoryToPackage was incorrect, using an
  incorrect search directory for the attribute files.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2bda1e8: Package rule: introduce current package notion
  
  The HaikuPackage rule now sets the variable
  HAIKU_CURRENTLY_BUILT_HAIKU_PACKAGE to the given package and all
  *ToPackage rules use that instead of a parameter. This saves passing the
  package in each of those rule invocations.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

624b7c8: Add system package to image

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d11ea2b: Introduce BootVolume abstraction class
  
  BootVolume is initialized from a root directory of a volume. It finds
  the system directory, and -- not implemented yet -- mounts the system
  package, if the system is packaged, replacing the system directory with
  it. Adjusted several functionality (main(), the loader functions,
  user_menu()) to use BootVolume instead of the root directory.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8f583b2: Build fix

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

898396e: Increase boot loader heap size
  
  We need more for packagefs support.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

abc3c57: KernelLd rule: opt-out linking against libsupc++
  
  Introduced HAIKU_NO_LIBSUPC++ variable on target to prevent linking
  against libsupc++.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9a8c133: Split package kit DataReader.cpp
  
  Pull AttributeDataReader and FDDataReader implementations out of
  DataReader.cpp into own source files. Thus we can avoid dependencies
  (e.g. to fs_attr code) we don't need/want.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2ef572b: ReaderImplBase::ParseStrings(): Avoid new[0]

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b232be5: Boot loader build: add strerror,...
  
  * Don't link against libsupc++ anymore. We use kernel_cpp.* instead.
  * Link twice against boot_loader.a, so undefined symbols in FSs are
    resolved.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3057223: Add BReferenceable to boot loader
  
  Also force include kernel_cpp.h, so it doesn't have to be included in
  every file (still is included in most, though).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cbc8591: Add boot loader packagefs support
  
  * Add pread().
  * Add Node::ReadLink() to read a symbolic link path.
  * Add Directory::LookupDontTraverse() and make Lookup() non-abstract.
    Lookup() is implemented via LookupDontTraverse() and Node::ReadLink().
  * Adjust all FS implementations accordingly.
  * Add a packagefs implementation. Unlike other FS implementations it
    isn't a pseudo-module, but provides a function to explicitly mount a
    package file (packagefs_mount_file()).
  * Finish BootVolume::SetTo() implementation, mounting the package file
    and replacing fSystemDirectory.
  
  Now the boot loader can load the kernel and boot modules from a packaged
  system. The kernel boots up to the point where the boot volume is
  mounted.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

533833f: Add kernel args boot volume "packaged" flag
  
  * Add BOOT_VOLUME_PACKAGED boot volume message field name constant.
  * register_boot_file_system():
    - Now takes a BootVolume& parameter.
    - If the boot volume is packaged, add that info to the boot volume
      message.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

441b85e: Assign node IDs to packagefs nodes
  
  Fixes module loading. elf_load_image() checks the node ID to verify
  whether an image was already loaded, so giving all nodes the same ID
  only gets one image loaded. The IDs don't necessarily match the ones the
  kernel packagefs assigns, which could be a problem later on.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

02b57b3: Bump boot loader heap size

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cb89356: Boot loader packagefs: Fix ".." lookups
  
  * PackageDirectory::Lookup(): Support "." and ".." lookups.
  * PackageLoaderContentHandler::HandleEntry(): If the entry doesn't have
    a parent directory, use the volume's root directory directly. This
    makes PackageVolume::AddNode() superfluous and also always passes a
    non-NULL parent directory to PackageNode::Init().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6d7953e: Add boot module symlink for packagefs

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ba65f94: Fix image rules wrt system/ relative entries
  
  * Introduce on-container jam variable HAIKU_CONTAINER_SYSTEM_DIR_TOKENS
    containing the directory tokens relative to the container root to
    refer to system.
  * Use the variable in *ToContainer rules that need to put something in
    system.
  * AddFilesToContainer: Fix overlooked reference to AddFilesToHaikuImage.
  * AddBootModuleSymlinksToContainer: Use relative symlinks. This avoids
    special-casing in the boot loader for packagefs.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

18e7d26: Mount the /boot/system packagefs on boot

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8ba0205: Add atomic_*() functions to boot loader

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

55a34b6: fs_write_attr(): Allow 0-length NULL buffer

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

52e0796: write_pos(): Fix return value for attribute writes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d971dfb: Nicer error output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

05384d6: Changed architecture to x86_gcc2
  
  This needs to be created dynamically somehow, but for the time being we
  want things to work for gcc2 and x86 at least.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f724ec0: ExtractArchive: Add hpkg support

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fdc30d6: Fix gcc2 and ICU optional packages
  
  * InstallOptionalHaikuImagePackage: In case of hpkg packages, copy them
    to the target directory, instead of extracting them.
  * Correct gcc 2 package download URL.
  * The ICU gcc 2 optional packages has been repackaged as hpkg. Use that.
    For gcc 4 things are broken, now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0d792bb: Fixed input server start fallback
  
  After failing to start the input server by signature, the fallback
  didn't append the input server name to the servers directory returned by
  find_directory().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d00bcc1: Hard code "Public Domain" as acceptable license

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3f6ca2f: Move remaining /boot/system contents into packages
  
  * Build system: Create packages haiku-devel, haiku-welcome,
    haiku-userguide, and makefile-engine.
  * The TimGMSoundFont and BeBook zip files have been repackaged as hpkg
    files.
  * Adjust the optional package definitions accordingly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

253e6ee: Ignore build/user_config_headers

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9280379: Comment typo fixes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3cc7107: Replaced fs_mount::covers_vnode by Vnode::covers
  
  Introduce a Vnode::covers field. It is currently only used for the root
  node of an fs_mount, replacing fs_mount::covers_vnode.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2e21fc5: Generalize use of Vnode::covered_by/covers
  
  * Introduce Vnode flags for covered and covering. Can be used as a quick
    check when one doesn't already hold sVnodeLock.
  * Rename resolve_mount_point_to_volume_root() to
    resolve_vnode_to_covering_vnode().
  * Adjust all code that deals with transitions between mount points and
    volume root vnodes to generally support covered/covering vnodes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

313e1e3: Add vfs_ prefix to resolve_vnode_to_covering_vnode()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d61a854: Add support for bind-mounting directories
  
  * Add support function vfs_get_mount_point(), so a file system can get
    its own mount point (i.e. the node it covers). Re-added
    fs_mount::covers_vnode for that purpose -- the root node isn't know to
    the VFS before the mount() hook returns.
  * Add function vfs_bind_mount_directory() which bind-mounts a directory
    to another. The Vnode::covers/covered_by mechanism is used, so this
    isn't true bind-mounting, but sufficient for what we need ATM and
    cheaper as well. The vnodes connected thus aren't tracked yet, which
    is needed for undoing the connection when unmounting.
  * get_vnode_name(): Don't use dir_read() to read the directory. Since we
    have already resolved vnode to the covered vnode, we don't want the
    dirents to be "fixed" to refer to the covering nodes. Such a vnode
    simply wouldn't be found.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

314cb5f: Add support for shine-through directories
  
  * packagefs_mount(): Initialize the fs_volume earlier, so it is more
    usuable in Volume::Mount().
  * The new mount parameter "shine-through" can be used to specify which
    shine-through mode shall be used. Can be "system", "common", "home",
    and "none". Depending on the setting it is decided which directories
    of the underlying file system are bind-mounted on top of ours.
  * Fix infinite loop in Volume::_RemovePackageContent().
  * Use the RETURN_ERROR() macro in more places to help with debugging.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

51191b1: Remove debug output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6004315: Mount packagefs with "system" shine-through mode

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b478cc3: Put TimGMSoundFont package in the right directory

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4ef5b63: Implement packagefs_get_vnode_name() hook

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9561ddc: remove_vnode(): Also consider covering vnode busy

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

19c48aa: fix_dirent(): Fix ref count leaks
  
  * Only get an additional parent reference, when going to call
    vnode_path_to_vnode().
  * Put the reference of the vnode vnode_path_to_vnode() returns.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0be138a: vfs_bind_mount_directory(): Fail if unmounting

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fe59288: Completed vfs_bind_mount_directory() support
  
  We don't need to explicitly track the covered/covering nodes per mount
  after all. In fs_unmount() we iterate through all vnodes multiple times
  anyway and can deal with the covers/covered_by vnodes there. Also, the
  root vnode doesn't need to be handled specially anymore.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5957270: Print the package version nicely

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6e6ca8c: Fix resolvable name

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ddabac2: Rename Package "name" property to "fileName"

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

01102ee: WIP towards packagefs package links support
  
  * Introduce Version class representing a version.
  * Introduce Dependency and Resolvable class and add lists of either to
    Package.
  * Parse package attributes and add dependencies and resolvables to
    Package.
  * Add a mount type to Volume and add a respective mount parameter
    "mount-type" (values "system", "common", "home", "custom"). Also
    implies the shine-through type, if that's not given.
  * Introduce class PackageFamily which groups equally named and versioned
    packages.
  * Add class PackageFSRoot. Each instance represents a possible file
    system root (separate roots for different chroot environments). Tracks
    Volumes belonging to the same root and their packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

31cd721: Change package and resolvable version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4b5dbac: Make Volume::Read{Lock,Unlock} const

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

22a8088: Remove kernel_interface.cpp LeafNode dependency
  
  Introduce abstract virtual Node::ReadSymlink() method that is now used
  in packagefs_read_symlink() instead of casting to LeafNode.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8ae81ef: Kernel interface abstraction for attribute access
  
  * Introduce interface AttributeCookie and currently only implementation
    UnpackingAttributeCookie. This is an interface for reading/stat()ing
    an attribute.
  * Add abstract virtual Node::OpenAttribute() method that returns an
    AttributeCookie and implemented it for derived classes.
  * In the kernel interface attribute hooks use AttributeCookie now. The
    attribute directory hooks are unchanged.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fa9fde9: Remove unused Node fields

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b5ff7ab: Remove unused LeafNode::SymlinkPath()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3ad1037: Move set_dirent_name() to Utils.h

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e807d80: Attribute dir access kernel interface abstraction
  
  * Introduce interface AttributeDirectoryCookie and currently only
    implementation UnpackingAttributeDirectoryCookie. This is an interface
    for reading/rewinding an attribute directory.
  * Add abstract virtual Node::OpenAttributeDirectory() method that
    returns an AttributeDirectoryCookie and implement it for derived
    classes.
  * In the kernel interface attribute directory hooks use
    AttributeDirectoryCookie now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e85e0ae: Remove package related dependencies from Node
  
  * Move package related methods from Node to new interface UnpackingNode.
  * LeafNode and Directory derive from UnpackingNode now.
  * Adjust Volume implementation accordingly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

876a16a: Rename LeafNode to UnpackingLeafNode

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

511b4fe: Pull derived UnpackingDirectory out of Directory
  
  Move all package specifics from now abstract Directory to new derived
  class UnpackingDirectory and adjust the Volume implementation
  accordingly. This concludes the Node/Directory refactoring. Neither
  class is aware of packages anymore.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5d5bdb4: Update copyright year

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5663e91: UnpackingDirectory: Remove unnessary methods
  
  Remove Read() and ReadSymlink() methods which are already implemented in
  Directory.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ffc66d8: Specify mount type when mounting packagefs

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dce13a0: Node: Add setters for ID and parent

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b8a96de: Add yet empty package-links directory
  
  * Add PackageLinksDirectory Directory subclass. Currently not doing
    anything.
  * PackageFSRoot: Create a PackageLinksDirectory.
  * Volume: Add/remove the package links directory for the system volume.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7e57d12: Move PackageFamily table to PackageLinksDirectory

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a2fc40b: Move EmptyAttributeDirectoryCookie to own files

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

05d7d48: Add support function get_real_time()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4031a32: WIP: Create empty package links directories
  
  * Rename PackageFamily to PackageLinkDirectory and derive from
    Directory.
  * PackageLinksDirectory: Add the PackageLinkDirectory objects as
    children and remove the no longer needed hash table (we use the
    Directory's child hash table).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3e7333b: Add package link directories to system volume
  
  * Add PackageLinksListener interface. It is used by
    PackageLink[s]Directory to notify a listener about changes.
  * Volume does now implement PackageLinksListener and recursively adds/
    removes package link directories.
  
  This makes the package link directories appear at least. They are still
  empty.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1becdcc: Empty Node::VFS{Init(),Uninit}() implementations

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

70c2780: PackageLinksDirectory::AddPackage(): Fix check

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1d8edd9: Create self package link

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

724fba1: Add Node::Init() flags parameter
  
  * Add Node::Init() flags:
    - NODE_FLAG_KEEP_NAME: Take over ownership of the name.
    - NODE_FLAG_CONST_NAME: Don't copy the name -- it's a constant that
      lives at least as long as the object.
  * Remove Init() implementations in derived classes that just call the
    base class version.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1382ade: If none is given pick volume name by mount type

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fc009a2: Fix NODE_FLAG_OWNS_NAME value

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5f80e51: Fix Volume::_RemovePackageLinksNode()
  
  Don't use _RemoveNode() as it also removes the node from its parent.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

77574d4: Init fSelfLink

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

59acdf5: Volume: Remove all package contents on destruction

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fd6d5d5: Reordered methods to match declaration order

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

83d5997: Add node monitoring for package link directories

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

35eeebd: Missing locking when adding/removing package nodes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cd81fea: Fix package link updates/node monitoring
  
  * PackageLinksListener: Rename methods from *Directory*() to *Node*()
    and change parameter to Node*. Also add a *Changed() method.
  * PackageLinkDirectory: Update only when necessary and what is necessary
    (currently only the self link).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

38a7f76: Add TODOs regarding broken add/remove behavior

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9320567: WIP towards dependency package links
  
  * Add ResolvableFamily and DependencyFamily classes for grouping equally
    named resolvables/dependencies.
  * Add hash tables to PackageFSRoot to track resolvables and
    dependencies. That is done in {Add,Remove}Package.
  * Resolvable does now have a list of Dependency objects, the ones it
    satisfies.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5e972a6: Dependency: Add Package() getter

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8a85232: Add Dependency::ResolvableVersionMatches()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0d7d179: Resolvable: Add Version() getter

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4081d37: ResolvableFamily: Add ResolveDependency()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bd66b7e: Resolve dependencies to resolvables

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a39e95c: Move PackageLinkDirectory::Link to own file
  
  And rename it to PackageLinkSymlink.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dd9554a: Add dependency package links
  
  The links appear, but the dependency resolution doesn't seem to work
  correctly yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b143a5a: Notify when removing a package link directory

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5165b6b: Fix adding order dependent dependency resolution
  
  PackageFSRoot::_AddPackage(): When adding a resolvable which isn't known
  yet, make sure all already added matching dependencies are resolved.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

835ecf5: Fix dependency resolution on resolvable removable
  
  ResolvableFamily::RemoveResolvable(): Move the resolvable's dependencies
  to the update list.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2d132da: Optional dependency resolution tracing

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c99aa60: Allow symlinks in the packages directory

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2a5bef0: Volume:Mount(): Better failure output
  
  Also use the FATAL() instead of the ERROR() macro, so something is
  printed also with debugging disabled.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c6739b6: Paranoia: Handle unknown mount type

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ecf2e3d: Cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a83fe53: Added default cookie Close() implementation
  
  Added trivial implementation for AttributeCookie::Close() and
  AttributeDirectoryCookie::Close() and removed the identical Close()
  implementations in derived classes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

59e76db: Support for auto-generated package node attributes
  
  * Add utility class AutoPackageAttributes and AttributeCookie subclass
    AutoPackageAttributeCookie.
  * UnpackingAttributeCookie::Open() does now try to create a
    AutoPackageAttributeCookie, when it doesn't find the attribute in the
    PackageNode.
  * Adjust UnpackingAttributeDirectoryCookie to also list auto-generated
    attributes.
  
  Currently the only supported attribute is "SYS:PACKAGE", which is the
  file name of the package containing the node.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

42ae644: Fix printf() format string warnings

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5f039cf: Fix copy'n'paste error for minor version part

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ed6d59a: Introduce a pre-release version component
  
  * The version string pattern is now:
    <major>[.<minor>[.<micro>]][-<pre>][-<release>]
  * Introduce B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_PRE_RELEASE package
    attribute.
  * Add "preRelease" field to BPackageVersionData.
  * Add "preRelease" property to BPackageVersion and packagefs's Version.
  * Adjust package reader and writer code accordingly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e1a3931: Adjust system package versions
  
  They all use package and provides version "R1-alpha3_pm-1", now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b85a268: Coding style: Fix indentation

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3a56aae: BPackageResolvableData: Compatible version field
  
  Add fields haveCompatibleVersion and compatibleVersion. This allows us
  to have a minimum version a resolvable is backwards compatible with.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c2f56ca: BPackageResolvable: Add compatibleVersion property

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

22e1ec0: Add package attribute for compatible version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2db69df: Support for parsing the compatible version
  
  In the .PackageInfo the compatible version for a resolvable can
  optionally be given after the resolvable version via
  "'compat[ible]' '>=' <version>".

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b2709d8: Write resolvable compatible version to the package
  
  To avoid a clash with the regular version or an extra attribute level we
  use the "package:provides.compatible" package attribute instead of
  "package:version.major".

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ee9c935: Support for reading compatible version attribute

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

71120ca: Print the resolvables' compatible version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

89f1807: Add compatible version support to packagefs

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2ae9a14: Declare the system package as backwards compatible

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ba1bc0a: Small cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

acdcba8: Remove "copyright" and "license" keywords
  
  There's "copyrights" and "licenses" which can be used.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

78ceed5: Allow single-element string/flag lists without []
  
  As syntactic sugar string and flag lists no longer need to be enclosed
  in brackets when they have exactly one element.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3614511: Adjust "copyright"/"licenses" fields
  
  Use the plural keyword name and omit brackets when only one element is
  specified.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2ec6e02: Small cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

eadc3c8: Add architecture property to Package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ba926f3: Extract architecture from package file

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7e346f1: Include architecture in package links dir names

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

91698de: Make .PackageInfo more driver-settings-ish
  
  * Use braces instead of brackets for lists.
  * Semicolons and newlines separate items now. Remove handling for comma.
  * Allow '\'' as quotation character.
  * Remove assignment after variable name.
  
  This should make the .PackageInfo format driver settings compatible, but
  not vice versa. It is still stricter.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1feaa8a: Adjust to changed .PackageInfo format

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

941ec45: Don't include architecture in package links names
  
  This reverts commit a491e591c86cec4b2ce52df86f7b0d32545b4169.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

430689a: Move hpkgBaseURL definition before its first use

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ee453e8: Add url and sourceURL properties to BPackageInfo
  
  Also extend the parser to accept "url" and "source-url" attributes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8b684dd: Add URL/source URL hpkg package attributes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

122597e: Simplify BPackageInfo::Parser::_Parse()
  
  This also fixes the memory leak due to the previously used on-stack
  BObjectLists not having been defined owning the elements.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d4701a2: Simplify BPackageInfo::Parser::_Parse() further
  
  * Match the attribute in a loop, use an attribute ID switch, do the
    "seen" checks without the switch.
  * Explicitly handle the case when encountering an unknown attribute.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2826880: Change source URL package info attribute name
  
  Use "-" instead of "_".

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

116852f: Support package info [source] URL attributes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1bcc0f6: .OPD -> .PackageInfo conversion tool

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1ef3557: package extract: Delay setting node permissions
  
  In HandleEntry() create the file/directory with sufficient permissions
  for the user and set the archived permissions in HandleEntryDone(). This
  makes sure child attributes and entries can be created.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

df18eb8: Fix gcc 2 build by making Parser a friend

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

64b8c37: Move post install files to system package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d3deb18: Repackage default optional packages as hpkg files

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

775b8d7: _kern_read_link() ignored the path

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

18d457f: Add helper is_unknown_or_system_descriptor()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4dbc245: Wrap POSIX FD functions in libroot_build
  
  This makes opening symlinks work universally in the build system tools.
  Two mechanisms have been implemented, both of which don't always work.
  The first is remapping via preprocessor macros. This fails where equally
  named methods are used (e.g. STL fstream::open()). The other is using
  hidden functions in the new libroot_build_function_remapper.a that is
  linked into everything that is linked against libroot_build.so. This one
  fails for functions that are defined inline in headers (Linux/glibc does
  that). Together they seem to cover our build system needs ATM.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e954868: Disable function remapping via macros
  
  STL fstream::open() is used, so the macros break the build.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bd530a0: Remove the build platform work-arounds

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a6e73cb: Remove installoptionalpackage

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

075913f: Move gutenprint data files to system

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

78c665f: lpe symlink is in the pe package now

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

80399d6: Don't create empty non-writable common directories

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b0533d6: Add missing "cache" shine-through directory

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

57af748: Also mount "common" packagefs on boot

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

00043b5: Use InstallOptionalHaikuImagePackage for gcc too

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dfa6888: Remove InstallCommonPackage rule

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fd0e9e3: Fix bison hpkg package name

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4cf5f92: Cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5b48678: Improve FileDescriptorCloser
  
  * Add SetTo()/Unset() methods and no-argument constructor.
  * Detach() returns the FD now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bfbb410: BPackageInfo::ReadFromConfigFile() BFile& version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4512e8d: Add optional FD parameter to AddEntry()
  
  If a FD is specified, instead of using the file with the given the FD is
  used. Allows for adding entries without first copying them into the
  directory structure.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6707be5: Add create -i option for specifying a package info

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3208166: Make use of package create -i option

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

55191c9: Remove debug output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4f5d405: Add package extract -i option
  
  Allows to specify an alternate location for the .PackageInfo.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5845e79: Missing include

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4796acb: Support for extracting only specified entries

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

52232db: Print relative paths in error messages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

285f4a3: Remove debug output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

697b954: BLowLevelPackageContentHandler interface extension
  
  HandleAttributeDone(): Add parentToken parameter.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

82af91f: SubPathAdder: Check for overflows, omit initial /

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ffa2b21: PackageWriterImpl::_AddEntry(): Improve output
  
  Print the relative path instead of only the leaf name.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

eb601f8: Move Debugger's Array class to headers/shared

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5518472: Declare Array destructor inline

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

85759ab: Add RangeArray utility class
  
  Templatized class for managing a set of sorted non-overlapping integer
  ranges. Merges and splits ranges as necessary.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fce74fa: Add Array.h and RangeArray.h build headers

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b321131: Define IDs for package section

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

97aabbe: Add BLowLevelPackageContentHandler section hooks
  
  * Add hooks HandleSectionStart() and HandleSectionEnd(). They are
    invoked to bracket package file section, so the handler can
    discriminate which section the attributes belong to.
    HandleSectionStart() features a return parameter _handleSection, which
    allows to handler to pick which sections it wants to handle.
  * "package dump" does now print the section names.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c83c542: Add PackageReaderImpl heapOffset/Size getters

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

abbeb15: Move RegisterPackageInfo() to Finish()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

04258e4: Use fHeapOffset instead of sizeof(hpkg_header)

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7b6bcdb: Write uncompressed package attributes if necessary
  
  When compression doesn't save space, using it nonetheless results in a
  file that the reader complains about. So we fall back to writing an
  uncompressed package attributes section in such a case.
  
  The same still needs to be done for the TOC section.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

327b38d: Add support for adding/updating package entries
  
  Add flags parameter to BPackageWriter::Init() (and the private
  implementation classes) to indicate that an existing package file shall
  be updated instead of created. Currently that always happens in-place.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1bd38c4: Move PackageWriterListener to separate file

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

35f8c67: Move directory iteration helper to own file

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c1b5ec4: Add "package add" command.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6f78574: Write uncompressed package file TOC, if necessary

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cc3f28c: PackageWriterImpl::_MoveHeapChunk(): better output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f79277d: Fix "package add" heap compacting
  
  PackageWriterImpl::_CompactHeap(): Incorrectly used fHeapEnd instead of
  the heap size. So the last copied chunk was too large.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

161d45f: Support for package "update" build profile action
  
  * Add global HAIKU_PACKAGES_UPDATE_ONLY build system variable, which is
    set for the "update" and "update-all" build profile actions.
  * Change the HAIKU_INCLUDE_IN_CONTAINER_VAR variable on packages to
    HAIKU_INCLUDE_IN_PACKAGES for all packages. The variable is also
    set for the "update" and "update-all" build profile actions.
  * Introduce HAIKU_CONTAINER_INHERIT_UPDATE_VARIABLE on container
    variable. If set, the contained variable will be set on the container
    when one or more files in it are updated. It is set on packages so an
    update of a file in a package causes the package to be updated in the
    image.
  * Introduce HAIKU_CONTAINER_ALWAYS_CREATE_DIRECTORIES on container
    variable. If set, directories will be created also in update mode. It
    is set on packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

204261b: AddFilesToContainer: avoid unnecessary work
  
  * If after filtering the list of targets is empty, return.
  * Get the directory only afterwards.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

319b1a7: Don't add directories explicitly to packages
  
  Directories are added implicitly when entries are added, so there's no
  need to add those directories. Directories without content don't need to
  be added either, since due to the read-only nature of packages they will
  remain empty.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fd03be4: ExtractArchiveToContainer: Add update support
  
  Add an alwaysUpdate parameter like the ExtractArchiveTo{Image,Package}
  rules have and do the handling in the base rule.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5e2b650: Update support for update-* targets
  
  Set HAIKU_PACKAGES_UPDATE_ONLY and HAIKU_INCLUDE_IN_PACKAGES when one of
  the pre-build-profile update-* targets are used.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b059c5e: Add PropagateContainerUpdateTargetFlags rule
  
  It propagates the HAIKU_INCLUDE_IN_IMAGE and HAIKU_INCLUDE_IN_PACKAGES
  variables from one target to another.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c9c6e36: Use PropagateContainerUpdateTargetFlags rule
  
  Propagate all update variables in CopySetHaikuRevision and for the
  kernel pseudo target.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3095cb1: Remove copy'n'paste left-over

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

718fba9: PackageWriterImpl::_AddEntry(): Fix update logic
  
  * Don't only look up the entry attribute when the entry is implicit.
    Look it up, when it is a directory instead. This aligns it the logic
    with _UpdateCheckEntryCollisions().
  * When the entry attribute exits and the entry is not implicit, add file
    attributes, but not stat data. This also aligns the logic with
    _UpdateCheckEntryCollisions(), which removes colliding attributes, but
    keeps stat data.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

76ca983: Postpone setting gBootDevice until after packagefs
  
  The modules code uses gBootDevice as an indicator that modules can be
  loaded from the boot volume. This is not the case until packagefs has
  been mounted, though, so we postpone setting gBootDevice.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b750c6b: Fix Dependency version comparisons

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a77ad30: Fix loading the resolvable compatible version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b5831cd: Disable WonderBrush until repackaged

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b489481: Create /boot/apps and /boot/preferences symlinks

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7210d7a: Create a generalized version of BFS's query code
  
  The new version is templatized over a QueryPolicy which provides the
  interface to the file system specifics.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

44de970: Add TwoKeyAVLTree to kernel utils
  
  This is a tree implementation with elements with primary and secondary
  key. The code is a cleaned up version of ramfs's implementation. ramfs
  doesn't use this version yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

67f11c4: Add a global node listener mechanism

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

804a92d: Add Index base class and index table in Volume

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3897e72: Add NameIndex class and create instance in Volume

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a3f9767: Add Query class and query management in Volume

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b8dae0f: Implement query FS hooks, add empty index FS hooks

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

216ba45: Automatic whitespace cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d612248: Cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

20b22df: AVLTree: Add Previous()/Next()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c19263: AVLTreeMap/TwoKeyAVLTree: More access to nodes
  
  both:
  * Add Previous()/Next().
  * Add Insert() version that returns a Node* instead of an Iterator.
  * Add Remove() version that takes a Node* instead of a key.
  
  TwoKeyAVLTree:
  * Add GetIterator() version that takes an additional Node*, i.e.
    initializing an iterator to point to the node.
  * Add Iterator::CurrentNode().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9811f22: QueryParser: Explicitly suspend/resume iterators
  
  Extended policy by IndexIteratorSuspend() and IndexIteratorResume()
  methods that are invoked for the index iterator by Query::GetNextEntry()
  after entering respectively before exiting.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

747578c: Fix NameIndexPrimaryKeyCompare
  
  It was actually returning whether the names where not equal.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

32ad4ce: Simplify [Abstract]IndexIterator interface
  
  * Remove Current() and Previous() and add a HasNext() instead.
  * Reimplement NameIndexIterator. It directly works with tree nodes
    instead of using an iterator, now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

49d2f60: Name::Index(): Fix initialization order
  
  Add the node listener directly after calling the base class Init().
  Otherwise, on error, the we could try to remove the listener although it
  wasn't added in the first place.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fb88975: ~NameIndex(): Make more robust
  
  Remove the listener only, if it was registered.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9b2a170: PackageLinkSymlink: Init fLinkPath in constructor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7730052: NodeListener::NodeChanged(): Provide old value
  
  * Add interface OldNodeAttributes an instance of which is passed to
    NodeListener::NodeChanged() to provide the old attribute values
    (currently only modification time and file size).
  * Also extend PackageLinksListener::PackageLinkNodeChanged() with a
    OldNodeAttributes parameter.
  * Add OldNodeAttributes implementations for PackageLinkSymlink (inner
    class OldAttributes) and UnpackingNode (OldUnpackageNodeAttributes).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a3463d1: Refactor NameIndexIterator into template class
  
  Create template class GenericIndexIterator from NameIndexIterator.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

46368f4: Small cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a058fbe: TwoKeyAVLTree: Add FindFirstClosest()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1441294: GenericIndexIterator: Fix NameIndex dependency
  
  Next() was still copying the name. Add a GetNodeValue() method to the
  policy that fetches the value instead.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0780073: GenericIndexIterator::SetTo(): Find fuzzily
  
  Use TwoKeyAVLTree::FindFirstClosest() instead of FindFirst(), so, if the
  value isn't in the index, we find the closest greater value. That's the
  semantics Index::InternalFind() is expected to have.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0209c40: Add comment

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d56e19f: GenericIndexIterator: Add node change helpers
  
  Add NodeChangeBegin()/NodeChangeEnd() methods that can be used by the
  index when the respective node attribute has changed. They make sure
  that the iterator doesn't move with the node, should it be inserted into
  the index at a different position.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d35565b: Add size index support
  
  * Add class SizeIndex.
  * Create and add an instance of it in Volume mount.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8c8e925: QueryParser: The last_modified index is time_t
  
  * Changed value type from B_INT64_TYPE to B_INT32_TYPE.
  * Changed QueryPolicy::NodeGetLastModifiedTime() return value from
    bigtime_t to time_t.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a5d15ca: Removed left-over commented code

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c63c77: Add last modified index support
  
  * Add class LastModifiedIndex.
  * Create and add an instance of it in Volume::Mount().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

28559a4: Build fix

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3877a7f: AVLTreeMap fixes
  
  * AVLTreeMap::_GetKey(): Change return type from const Key& to Key, so
    the strategy can do that as well and doesn't have have a Key object in
    the node.
  * Fix the Auto strategy: It was using the undefined _GetKey() instead
    of GetKey().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

01f7f92: Move helper function out of QueryParser.h
  
  They live in the new QueryParserUtils.{h,cpp} now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

901749c: Remove TwoKeyAVLTree from kernel utils again
  
  It's not ready for shared use yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3e29244: Move B_MIME_STRING_TYPE to <TypeConstants.h>

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a52387c: compareKeys(): Also handle B_MIME_STRING_TYPE

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2789252: Remove unused PackageNodeAttribute::fParent

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

51ee03b: QueryPolicy::NodeGetAttribute(): Get the type too

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4d67e78: More abstraction in GenericIndexIterator
  
  * Move tree node operations to a subpolicy TreePolicy.
  * Add a GenericIndexIteratorTreePolicy templatized over the policy,
    implementing the tree policy for the standard indices.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

55b969b: Attribute index support for non-special attributes
  
  * Add AttributeIndex class.
  * Each attribute does now have an attribute index cookie. The new
    attribute index service methods Node::IndexAttribute() and
    IndexCookieForAttribute() create+set/retrieve the cookie. The cookie
    is actually the attribute index's tree node.
  * Add OldNodeAttribute::IndexCookieForAttribute() so the cookie is
    available when the node changes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

061337b: Create a "BEOS:APP_SIG" index by default

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4006e48: Check key length, if index keys are fixed length

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ac67068: Remove superfluous checks

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

29ee895: Remove references in index iterator interface
  
  This avoids checks.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7915349: Remove unused IndexIterator constructor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bf20808: Add set_dirent_name() without name length parameter

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

139bd32: Implement packagefs index (dir) hooks

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

207a28e: Declare packagefs persistent
  
  Besides that it is kind of correct, it also makes tracker queries work
  correctly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c98a59c: Don't show packagefs on desktop or in disks window
  
  More generally: Any volume that is mounted at a directory of a
  persistent volume is not shown on the desktop or the disks window any
  longer.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e94674c: cmake 2.8.5 optional package repackaged as hpkg

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

70de928: Move <directories.h> to headers/private/system

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e96cbb1: Update cmake package, create doxygen package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3773b47: Tracker: Sort volumes like folders
  
  Volumes no longer have a higher sorting priority than folders when "sort
  folders first" is enabled.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

407c09e: Create /packages symlink on boot
  
  Rename the package links directory from /package-links to just /packages
  and create it when booting.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a0f6347: Fix location of the Deskbar menu symlinks

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e6067d0: Change Haiku package name to lower case

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d7227df: BPackageWriter: Add SetCheckLicenses()
  
  The default is still "true", but now it is possible to disable the
  license check.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f19957b: Add a package info "install-path" attribute
  
  The attribute is intended for simplifying package building. The
  package's install path will be used for the package's .self package
  symlink, allowing installation to a temporary directory when building
  the package.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6f0f81e: Add options -b and -I to package command
  
  * With -b building a build package can be requested. It will be empty
    save for the .PackageInfo. No license check is performed.
  * -I allows to specify an install path.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

48a8980: Add install path support to packagefs

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

437651f: Force package names and versions to lower case

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

15e694e: Add UnpackingNode::IsOnlyPackageNode()
  
  It returns whether the given package node is the only package node
  attached to that node.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c7ef63: Notify earlier when removing a package node
  
  Volume::_RemovePackageNode(): Notify listeners before removing the last
  package node from the node, . This prevents the size/last modified
  indices from not finding the node anymore, since the node would return
  a default value instead of the value it was added to the index with.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f642202: Updated gcc 2.95.3 package
  
  The /boot/common include paths are now built in.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

30ab133: Handle the newer package attributes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c3057c3: Initialize BRepositoryInfo::fInitStatus

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c710720: GetRepositoryCache/Config(): return valid entry
  
  Always create the common repository cache/config paths so the BEntry
  that is returned is valid at least. Fixes BRefreshRepositoryRequest
  failing when the common repository cache path didn't exist yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f19b93f: Missing newline in error message

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

61b0ae0: Implement more virtuals in Node and Directory
  
  * Node: Add default implementations for UserID(), GroupID(),
    OpenAttributeDirectory(), and OpenAttribute().
  * Directory: Add default implementations for Mode() and FileSize().
  * Remove the respective hook implementations in the PackageLink*
    classes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3ac7efb: Fix debug output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f361dbb: Fix notifications when adding package link dir
  
  When adding a new package link directory, the volume would only be
  notified about the addition of the directory itself, not of the addition
  of its contents. Add a new PackageLinkDirectory::NotifyDirectoryAdded()
  which does the whole job and use it in
  PackageLinksDirectory::AddPackage().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6c9fa46: Fix handling of shine-through directories
  
  * Add a new class ShineThroughDirectory for shine-through directories
    instead of using UnpackingDirectory.
  * Split up setting up the shine-through directories in two steps. First
    the directories are only created. That happens before adding the
    initial package domains. After publishing the root node we bind the
    shine-through directories to the underlying directories.
  * This makes adding a package directory with the same name as a
    shine-through directory fail in _AddPackageNode() as originally
    intended. Since we no longer want it to fail -- the package daemon
    will copy the files in the respective directories as part of the
    activation process -- we simply skip the directory now. Adjust
    _AddPackageNode() and _AddPackageContentRootNode() accordingly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5bc6952: Add error output in case of invalid compression ID

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

abf1023: Handle the newer package attributes
  
  This unbreaks reading repository cache files using the respective
  attributes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5a54e15: Add HashValue() methods to BString

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

10e1bc5: BRepositoryCache: Add iteration, etc.
  
  * Remove InitCheck() and the initializing constructor.
  * Rename PackageCount() to CountPackages().
  * Use BOpenHashTable instead of HashMap for the internal PackageMap.
  * Allow multiple packages with the same name. Equally named packages are
    in a singly linked list after the first package with that name.
  * Add an Iterator inner class and a GetIterator() method, so one can now
    iterate through the packages in the repository.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d0c4178: BString::Private class to access BString internals

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

808a511: Add a BStringList class

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2021c98: Use BStringList in package kit
  
  Replace all instances of BObjectList<BString> by BStringList.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f195cdc: Removed left-over code

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

db9a50a: Pull class BPackageInfoSet out of BRepositoryCache

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

99ee453: find_directory(): Fix package links path

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

10b8f70: Add class BPackageInfoContentHandler
  
  A BPackageContentHandler subclass that initializes a BPackageInfo from
  the read package attributes. Pulled out of RepositoryWriterImpl's
  PackageContentHandler.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8c29f58: Add BPackageRoster::GetActivePackages()
  
  The implementation is temporary. Currently it reads through the packages
  in the respective packages directory and checks against the package
  links. Once package activation is tracked explicitly we'll use the
  activation file/directory.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e99df3a: Fix build due to <directories.h> move
  
  Apparently I should have done a complete rebuild after moving
  directories.h from headers/private/libroot to .../system, since a lot of
  stuff didn't build anymore.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b55bd1d: configure: Update required gcc 2 version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8212d04: Repackage BeZillaBrowser as hpkg

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d5c52cc: Fix typo

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

25d31cc: Fix package removal with skipped directories
  
  Volume::_RemovePackageContentRootNode(): Check whether a directory
  corresponding to the package directory does actually exist. This might
  not be the case when the package directory has been skipped due to
  clashing with a shine-through directory. Would crash in this case.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7279672: Fix node handling on package addition/removal
  
  * UnpackingLeafNode: Add a fFinalPackageNode attribute. It is set when
    the node is about to be removed and will point to the node's previous
    head package node and be used in its stead. From the perspective of
    the FS hooks this leaves the node in an unchanged state.
  * Unpacking[Leaf,Directory]Node:
    - Add WillBeFirstPackageNode(), returning whether the given package
      node would become the head package node when added.
    - Add PrepareForRemoval() which removes all package nodes. In case of
      UnpackingLeafNode it also sets fFinalPackageNode.
    - Add CloneTransferPackageNodes(). It is only implemented for
      UnpackingLeafNode. It clones the node, transfers all package nodes
      to the clone and sets fFinalPackageNode on this node.
  * Volume::_{Add,Remove}PackageNode(): Solved the following TODO: When a
    package is added or removed and a file present in both the
    added/removed package and another package with the version in the
    former having precedence, we have to remove the node (leaving it
    unchanged) and replace it by a new node. This prevents clients having
    the node opened or mapped from suddenly seeing different data. It also
    fixes unbalanced calls to PackageNode::VFSInit()/VFSUninit() which
    would result in file descriptors to package files being leaked.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c6a11ed: Fix removing dependencies on package removal
  
  The dependencies must also be dissociated from the resolvables they have
  been resolved to.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b779a87: Node: Keep track of VFS init status
  
  * Node::VFSInit() and VFSUninit() set/clear the new node flag
    NODE_FLAG_KNOWN_TO_VFS. They need to be called by overriding methods,
    now.
  * Add Node::IsKnownToVFS() which returns the VFS init status.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7723ae9: Volume::_RemoveNodeAndVNode(): Squash TODO
  
  Only get/remove/put the vnode when the node is actually known to the
  VFS. This does not only save unnecessary work, it also solves a
  (temporary) deadlock -- at least partially. If another thread caused a
  call to our get_vnode() hook just before, it would block on the volume
  lock we're holding when adding/removing packages. The vnode would be
  marked busy until the other thread's request was fulfilled and our call
  to get_vnode() would block until timing out. Now we're calling
  get_vnode() only, if we already know that the VFS already has a valid
  vnode.
  
  There still remains a race condition. If the VFS discards the vnode
  right before we call get_vnode(), we essentially have the same situation
  as before (i.e. us calling get_vnode() although the vnode is no longer
  known to the VFS) with the same potential problem. For a real solution
  we need a get_vnode() variant which can be told not to block.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

19ae20e: Merge branch 'master' into pm-flat
  
  Conflicts:
        build/jam/HaikuImage
        build/jam/OptionalBuildFeatures
        build/jam/OptionalPackages
        build/jam/UserBuildConfig.sample
        data/bin/installoptionalpackage
        src/apps/deskbar/DeskbarMenu.cpp
        src/servers/debug/DebugServer.cpp
        src/system/kernel/fs/vfs.cpp

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c1ef23b: PackageLinkDirectory::_Update(): Don't unlock after delete
  
  When using an AutoLocker on an object, the lock must be released
  explicitly before releasing the last certain reference to that object.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

403bb7a: haiku package info: declare a few provided commands
  
  sh, awk, wget, etc. are currently provided by haiku.hpkg. Declare
  them accordingly, since they are already referenced by some
  HaikuPorts packates. For the generic ones ("sh", "awk") I've used
  version 0.0.0 for the time being; we may need to reconsider that.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4e87ae1: Repackaged xz-utils package
  
  It is now declared with architecture x86_gcc2, though it probably
  has been built with gcc4. That issue has to be solved for real
  eventually, since the package resolver won't allow mixing of gcc2
  and gcc4 packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7105134: haiku package info: Add more provided resolvable
  
  Also add a compat version to a few.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

90692f4: Rebuilt packages required for bootstrapping

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dd60d4e: OptionalPackages: Fix CVS URL
  
  Due to a copy'n'paste error the curl package was used. While at it,
  use the rebuilt package.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a8026c5: haiku package info: List zlib in provides

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e3926e5: haiku package info: Fix zlib provides declaration

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3f98650: Rebuilt packages for subversion and its dependencies

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9992342: package_repo: command_create(): Fix argument count check

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

10efbe6: BRepositoryInfo::SetTo(): driver settings unloaded too early
  
  The string pointers retrieved from the driver settings are only valid until
  the settings handle is freed. The were also used afterwards, though.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

479ca81: Beginnings of the PackageKit dependency solver
  
  Not functional (or tested) yet. The libsolv setup for a somewhat
  simplified installation case should be more or less complete, though.
  The solution conversion to to-be-created Haiku data structures and the
  handling of problems is still missing, though.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0816749: package_repo: Removes dependency to package
  
  * Move StandardErrorOutput to libpackage and into proper namespace to
    avoid "package_repo" having to reuse the "package" source file.
  * package_repo: Fix incorrect includes of "package.h".

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

df65c31: Add BNoErrorOutput to package kit

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dfb5fa8: Add convenience methods BPackageInfo::ReadFromPackageFile()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7c29395: Add some missing build headers

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bcdf492: Simplify/fix the ExtractArchive rule and friends
  
  * The call to the dummy actions isn't needed
  * The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that.
    The directory has to be the main target, since ExtractArchive is
    potentially invoked multiple times with different extracted file
    targets and the Extract*Archive1 is only invoked the first time.
    Tested only with the HPKG actions, but they others should work as
    well.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

04d1ede: Fix the libpackage_build build
  
  * The recently introduced {No,Standard}ErrorOutput.cpp were still
    missing.
  * Add hack to allow building more correctly on Haiku. We were using
    the installed package kit headers, not the ones from the working
    directory.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fc75f2d: <build>package: Fix build
  
  * StandardErrorOutput.cpp no longer exists (respectively has been moved
    to libpackage).
  * Add hack to allow building more correctly on Haiku. We were using
    the installed package kit headers, not the ones from the working
    directory.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dd6ec1d: Add libsolv build feature

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a3dd6ca: Add public package version parsing API
  
  * BPackageVersion: Add respective constructor and SetTo().
  * BPackageInfo: Add static ParseVersionString() utility method. It's
    only there because the parser lives in the BPackageInfo
    implementation.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2d0563f: Fix BPackageResolvableExpression::ToString()
  
  The operator was inserted as a number.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1a4d020: Flesh out the package kit solver API quite a bit more
  
  * Reorganize things a bit:
    - BSolver is now an abstract base class.
    - A libsolv based implementation, LibsolvSolver, lives in a new
      add-on, which is loaded lazily.
    - Get rid of libpackage_solver. Save for LibsolvSolver everything
      is moved to libpackage.
    - This is a nicer solution for the cyclic dependency caused by
      libsolv (libsolvext to be precise) using the package kit for
      reading repositories and package files.
  * Add a solver result data structure and and an accessor the solver.
  * Add problem reporting support to the solver. There aren't data
    structures for the problem solutions yet and support for selecting
    solutions and re-solving is missing as well.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1acf2be: pkgman: Add command resolve-build-dependencies
  
  This is a service command for haikuporter. It resolves the dependencies
  for a package to be built and lists them, so that haikuporter can
  prepare the build environment accordingly.
  
  The implementation isn't quite finished yet. Currently the packages are
  printed only with name and version, while it would probably be more
  helpful to print the path of the package file. Also, the package itself
  (respectively a dummy package) is printed as well.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

07a4d4e: BSolverRepository: Add SetPriority()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

19f3eaa: pkgman: Simplify and rename resolve-build-dependencies
  
  * Now it only gets a package (info) file and a single list of
    repository directories, optionally with priority, and resolves the
    package's dependencies. The more complex two resolving steps it did
    before can just as well be done by haikuporter, and this way the
    command is more flexible.
  * Rename to resolve-dependencies.
  * Some TODOs still remain.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

65502bb: BSolver: Add VerifyInstallation()
  
  ... and implement it in LibsolvSolver.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7498842: pkgman resolve-dependencies: Verify result
  
  * Make sure that the computed dependencies don't themselves depend on
    the specified package.
  * Print only the actual dependencies, not the specified package.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a8b832b: BSolverRepository::AddPackage(): Add optional return parameter
  
  ... returning the added BSolverPackage object.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4b8aabf: pkgman resolve-dependencies: Print package paths
  
  ... instead of package name and version. The command should now
  work as required by haikuporter.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

046f1c4: pkgman resolve-dependencies: Avoid code duplication

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7216c89: pkgman resolve-dependencies: Improve usage text formatting

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1add554: Make LibSolv a mandatory package
  
  ... so it is actually installed on the image.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6d04dfb: bindfs: Fix double deletion of root node on unmount
  
  The VFS calls the FS's put_vnode() for all nodes, including the root
  node, prior to calling unmount().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ce1d048: packagefs: Fix adding package links twice to volume
  
  PackageLinkDirectory::NotifyDirectoryAdded() first notified the listener
  (Volume) about the directory itself, then about the links it contained.
  Since Volume adds the nodes recursively, the latter were added twice,
  resulting in a corrupted ID hash table.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dedc136: packagefs: Acquire missing reference for the root dir
  
  We need one for the ID table and one for the volume itself.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c7382d4: packagefs: Acquire missing reference for shine-through dirs
  
  Since we publish shine-through directories directly to the VFS, we need
  to acquire an additional reference, because we release a reference when
  a node is put.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

05940bc: packagefs: Fix handling of package-links directory on unmount
  
  * Volume::_RemovePackageLinksDirectory(): We don't want to call
    _RemovePackageLinksNode(). Besides that the ID hash table has already
    been emptied before and we would thus release a reference to the node
    erroneously, the method doesn't do anything we want anyway. We don't
    want any children to be removed, since we have unregistered the
    volume's packages already (which removes the respective package link
    directories); the remaining ones are from other volumes and not ours
    to remove.
  * PackageFSRoot: Release a reference to the package links directory in
    the destructor. We create the directory in Init() after all and no one
    else takes over ownership.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ce577d8: packagefs: AttributeIndex: Support duplicates correctly
  
  The tree comparisons didn't allow for different Nodes having the same
  attribute value. Therefore only the first node would be added and later
  we would try to remove a node not actually in the tree, leading to a
  crash.
  
  packagefs seems to finally unmount cleanly, now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d482342: VM: Fix vm_block_address_range() area protection
  
  B_ALREADY_WIRED, which was erroneously passed for the area protection
  parameter to map_backing_store(), has the value 7 which implies user
  readable and writable. Hence the address ranges around 0xdeadbeef and
  0xcccccccc could actually be read and written from anywhere.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

259046a: Fix build without xattrs being used
  
  * need to invoke fs_fopen_attr() instead of fs_open_attr()

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

daf7cb4: Bring back libroot_build.a for now.
  
  * the corresponding TODO has to be dealt with at a later stage

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

5b6fb78: VFS: _kern_open_dir(): Fix NULL path case
  
  It would create an empty path buffer and pass that on to dir_open(),
  which accepts NULL, but not empty paths.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

91586bd: packagefs: Fix handling of package domain paths
  
  * The package directory path specified when mounting must be interpreted
    in the caller's I/O context. We did always interpret it in the
    kernel's I/O context, so that a relative path or a path in a chroot
    environment wouldn't work correctly. Now opening the directory is done
    in PackageDomain::Init() where we can at least guess the path's
    origin.
  * We also normalize the path, though merely to get more conclusive debug
    output, since after opening the directory the path isn't used for
    anything else anymore.
  * Make the "packages" mount parameter optional. If not specified, use
    the "packages" folder at our mount point.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c6927b: packagefs: Add ioctl to get basic volume information
  
  Also rename the MountType enum and members, since they are no longer
  packagefs private.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

26296b0: Add the humble beginnings of the package daemon
  
  It doesn't really do anything yet save for tracking what packagefs
  volumes are mounted and unmounted.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2d8ec1d: Add the obvious node_ref constructor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

27197fd: packagefs Package: Add getters for device and node ID

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e85e9da: packagefs: Move the package loading code to Package
  
  * Volume::_LoadPackage() -> Package::Load()
  * Volume::_DomainEntryCreated(): Pull a bit of code into a new
    _LoadPackage() method for reuse.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

17bb54d: packagefs: ioctls for getting and changing package activation
  
  * Add PACKAGE_FS_OPERATION_GET_PACKAGE_INFOS which returns the node refs
    of all packages activated.
  * Add PACKAGE_FS_OPERATION_CHANGE_ACTIVATION to activate/deactivate
    multiple packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3d53bd4: package daemon: Add package monitoring and de-/activation
  
  * packagefs: Disable (comment out) node monitoring of the packages
    directory.
  * package daemon:
    - When a packagefs volume is added load the respective packages
      directory and get from the volume which of the packages are
      activated.
    - Add node monitoring for the packages directory and
      activate/deactivate packages as packages are added/removed.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

af5c10a: packagefs: Remove the packages directory node monitoring

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6978941: packagefs: Remove support for multiple package domains per volume
  
  That also get rid of the job stuff and the package loader thread.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7136419: Add shared PthreadMutexLocker, an AutoLocker for pthread_mutex_t

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8fb3930: package daemon: Make all work with the packages asynchronous
  
  There's now a worker thread per Root that does all the work that can
  take time. Node monitoring notifications received in the main thread are
  just pushed into the worker's job queue, so the application looper
  remains responsive.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9e40961: package daemon: Add a Listener interface for Volume
  
  * This way, Volume doesn't have to know Root.
  * Suppress listener notifications for node monitoring events when there
    are were already events pending.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

91a9b5f: package daemon: Volume: Make sure move entry events don't get split

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

379131d: BString: Add StartsWith() and EndsWith() methods

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

def92c0: packagefs/daemon: Ignore packages/ entries without .hpkg suffix

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bb88fea: PackageFSActivationChangeRequest: Make items array 0 sized
  
  That's more convenient to use and the actual size of an item is variable
  anyway.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2508cd6: packagefs: Volume::_ChangeActivation(): Check 0 request size

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ebbefc0: package daemon: Root: Use a common job for volume work
  
  Add VolumeJob which, besides the Volume, takes a Root method to be
  invoked. That allows to replace the specific job classes by simple
  methods.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a6c7f5e: package daemon: De/-activate all changed packages together
  
  * We first process the node monitoring events, collecting the required
    package activation changes, then apply all changes together.
  * Change the PackageFSActivationChangeItem/-Request structs. The former
    is no longer variable in size, which makes it easier to work with.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1047e84: package daemon: Volume::InitPackages(): Fix error case
  
  Don't assign fListener, when starting node monitoring fails.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5e01af3: package kit: Add data structures for problem solutions
  
  ... and add the problem solutions in LibsolvSolver.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4b3ca45: BSolverProblemSolution: Fix ToString() template strings

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

92b6d58: package daemon: Check volume package dependencies initially
  
  Dumps the result (i.e. found problems and solutions) to the syslog.
  Eventually the user should be asked what to do when inconsistencies are
  encountered.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

19a268a: Update libiconv and sqlite packages
  
  The new package files haven't been rebuilt, just repackaged. Only small
  details in the package-info changed.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a96531f: package daemon: On changes write a file with the active packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

19dc1d0: packagefs: Use the package activation file
  
  If the file exists load only the packages specified in it. If it doesn't
  exist or any kind of error occurs, fall back to loading all packages in
  the packages directory.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

40cbf17: packagefs: don't dup() the packages directory FD
  
  Volume::_AddInitialPackagesFromDirectory(): Use openat() instead of
  dup() to get a FD for the packages directory. Currently our fdopendir()
  implementation doesn't use it directly anyway, but in theory it could
  and would then change the state of the original FD.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

50888eb: BSolverRepository: Add a change count
  
  ... so we can easily check whether the repository has changed since the
  last time we used it.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

483d499: LibsolvSolver: Make repeated use of object possible
  
  * _Solve(): Clean up the old solver before creating a new one.
  * _AddRepositories(): Don't do anything, if the repositories haven't
    changed.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5776551: pkgman: Move some classes into own file for reuse
  
  Namely RepositoryBuilder and PackageInfoErrorListener.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1a34656: BPackageVersion: Make version string constructor explicit

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6c6460e: BPackageInfo: Add GetConfigString() and ToString()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b254217: package daemon: Properly qualify private package headers
  
  ... instead of adding the private package header directory to the
  include paths.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

62f7022: package kit: get active packages list from daemon
  
  * daemon: Implement private message protocol to retrieve the active
    packages.
  * BPackageRoster::GetActivePackages(): Get the active packages list
    from the daemon.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a78a254: LibsolvSolver: Fix the lazy re-/initialization
  
  * _Init() was a bit too enthusiastic, throwing really everything away.
    So, after calling it at the beginning of _AddRepositories() there
    wouldn't be any repositories anymore.
  * Rename _Init() to _InitPool() to make its purpose clearer.
  * Pull a _CleanupPool() out of _Cleanup() that only deletes the pool
    and anything depending on it.
  * RepositoryInfo::HasChanged(): Always consider changed when there's no
    libsolv repo yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fc57db4: BSolver/LibsolvSolver: Add FindPackages()
  
  Given a search string it finds all matching packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7898675: pkgman RepositoryBuilder: Add BRepositoryConfig constructor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dd46d98: pkgman: Add "search" command

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

eb13a35: Rename "packages" subdir "config" to "administrative"
  
  ... to avoid the impression that it contains something the user can
  play with.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

663e351: BSolver/pkgman: Support for searching in provides
  
  * BSolver/LibsolvSolver:
    * Add B_FIND_IN_NAME and make searching in the names explicit.
    * Add B_FIND_IN_PROVIDES to search the packages' provides list.
  * pkgman: Also search in provides.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

01758ed: Rework SolverPackageSpecifier
  
  * It no longer consists of a BPackageResolvableExpression and a
    repository. Instead it can now either refer to a package directly or
    consist of a search string.
  * SolverPackageSpecifierList: Add AppendSpecifier() convenience
    versions.
  * Adjust LibsolvSolver and pkgman accordingly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

38e528b: pkgman: C++-ify the command handling
  
  There's now a Command class that must be derived and registered with
  a CommandManager, all simplified by a REGISTER_COMMAND macro. That gets
  rid of the print_command_usage_and_exit() function copy for every
  command, moves the short usage texts to the command implementations,
  and avoids any repetition of the command name. When implementing a new
  command only a new source file needs to be created, nothing else needs
  to be touched.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

115eae7: LibsolvSolver::Install(): Fix broken B_PACKAGE case

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

334a5a5: BSolverRepository: Change priority from uint8 to int32
  
  This allows us to specifies priorities below and above the user
  definable range.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

71293f8: BSolverPackageSpecifier: Fix string constructor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0d8ed3f: BSolver::Install(): Add optional unmatched specifier return param

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0d50fa8: pkgman: Add beginnings of the "install" command
  
  So far it only solves the dependencies and prints the result. No
  problem handling, no actual installation.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

82ce868: Add missing build header Referenceable.h

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

711a2a6: BPackageInfoSet: Add copy constructor, assignment operator
  
  * Implement copy-on-write support.
  * Add copy constructor and assignment operator.
  * Remove Init(). Initialize lazily instead. Since AddInfo() can fail
    and we check initialization anyway, there's no point in having an
    explicit Init(). Given that there was only one invocation of Init()
    in the package kit and its users, it was very likely missing in some
    places.
  * Fix a few places where we ignored that the PackageMap actually
    contains lists of PackageInfo objects.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bbb2dc2: Add BReferenceable to libbe_build
  
  Unbreaks the build on non-Haiku build platforms

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8a4ebe2: Make BPackageInfo archivable

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b2d96da: BPackageInfoSet::Iterator: Fix NULL pointer dereference
  
  Since the BPackageInfoSet's map is created lazily, it can be NULL when
  an Iterator is constructed.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d7d9497: Add BInstallationLocationInfo

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e6216e3: Implement getting a BInstallationLocationInfo
  
  * Rename PackageDaemonDefs.h to DaemonDefs.h.
  * Replace the MESSAGE_GET_PACKAGES by the new
    B_MESSAGE_GET_INSTALLATION_LOCATION_INFO, which not only returns the
    packages, but also other information about the installation location.
  * daemon: Volume: Implement a change count which is bumped whenever
    packages are activated/deactivated/added/removed. Cache the reply
    for a location info request, using the change count to check whether
    it is still up-to-date.
  * Add private BDaemonClient for communication with the daemon.
  * BRoster:
    - Add GetInstallationLocationInfo() using BDaemonClient.
    - Reimplement GetActivePackages(), using
      GetInstallationLocationInfo().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bd59e0d: BPackageInfo: Fix Linux build
  
  ... including an actual bug (operator "|" instead of "||").

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

202c1da: BPackageVersion: Rename property release to revision
  
  * ... to avoid confusion with the preRelease property. It's also called
    "revision" in the HaikuPorts recipes.
  * Update libsolv package. Was necessary due to the BPackageVersion
    change, but also includes a few more changes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e7563b8: Updated several base packages

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

6185f6e: Fix libtool file name

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

88f22c9: InstallOptionalHaikuImagePackage: Remove first parameter
  
  Instead deduce the file name from the URL. A long overdue change. Avoids
  unnecessary name duplication, which only led to errors.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4210ed0: Fix BMessage::GetInfo() return value check
  
  Since B_OK is 0, the change doesn't affect the semantics.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8d85f8e: Update libsolv package
  
  The Haiku repository support has been upstreamed and the maintainer,
  Michael Schroeder, has fixed and improved a few things.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

caba55e: Revert to previous libsolv package
  
  In the latest one the version comparison is broken.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a8b23e3: pkgman resolve-dependencies: Allow specifying multiple packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ceb18a3: packagefs: Fix typo in debug output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d0367de: packagefs: Switch to new rule for pre-release version part

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

defc1f7: BPackage{Version,Info}: Switch to new pre-release rule
  
  Also add several checks in the package-info parser to enforce the
  <alphanum_underscore> requirement of package/resolvable names and
  version components.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7b2d062: Enforce current package rules for packages built from tree
  
  * Replace '-' in package name by '_'.
  * Use new '[...]' notation for pre-release version component.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5e6adff: BPackageVersion::ToString(): Return empty string, if invalid

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7fa3699: BOpenHashTable::Clear(): Set fItemCount to 0
  
  If not empty, the count would afterwards be out of sync with reality.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b7c89d4: packagefs: Use '~' as pre-release separator
  
  "[...]" turns out to be not so good an idea after all. In the shell it
  would require escaping.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9d81dc7: BPackage{Info,Version}: Switch to '~' as pre-release separator
  
  Also allow '.' in the pre-release string (as in "alpha4.1") and in
  package and resolvable names.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

06b4ebe: package-infos in tree: use '~' as pre-release separator

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ea8b5c2: BPackageInfo parser: Allow '.' in micro version component
  
  Otherwise we'd have to encode e.g. "cvs-1.12.13.1" differently.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b50e5e3: package[_repo]: Print version correctly
  
  Use BPackageVersion::ToString() instead of assembling the version
  string manually. This fixes the incorrect pre-release separator.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f16dbba: Update libsolv package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cba6030: BPackageInfo::Parser: Relax package/resolvable name rules
  
  Now we allow any character but '-', '/', and whitespace.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

00b5554: pkgman: Print correct error when parsing package info failed

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3c6784e: BPackageInfo::Parser: Be a bit stricter wrt. names after all
  
  Also disallow the operator characters in names.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cf0a957: BMessage: Add {Add,Find}Strings()
  
  They add a BStringList to/extract it from a B_STRING_TYPE field.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7a27bcd: BPackageInfo: Make use of BMessage::{Add,Find}Strings()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

85d2bad: package daemon: Add support for activation change request
  
  * daemon: Handle new request B_MESSAGE_COMMIT_TRANSACTION. It activates
    and deactivates given sets of packages. The new packages must be
    placed in a directory in the administrative directory. The daemon
    moves them to the packages directory and the deactivated packages to
    a subdirectory it creates. It also save the old activation state
    there.
  * Add private BActivationTransaction, describing an activation change
    transaction.
  * BDaemonClient: Add CommitTransaction(), which sends a given
    BActivationTransaction as a B_MESSAGE_COMMIT_TRANSACTION request to
    the daemon.
  
  Completely untested yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f71be99: BRequest: Add Process()
  
  The method creates the initial jobs for the request and processes the
  jobs from the job queue until empty or an error occurs.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e0d4161: pkgman: Make use of BRequest::Process()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

74233e2: Re-apply cf0a957 for the build-version of libbe.
  
  * fixes build on non-Haiku platforms

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

bab6caf: Another lap of updating base packages:
  
  * binutils has now been split off gcc
  * adjusted other packages to new naming scheme

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

e2678ec: pkgman refresh: Include the repository name in error message

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2e3f500: package daemon: Fix check in Volume::_PackagesEntryCreated()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a3b1c7b: package daemon: Volume::_WriteActivationFile(): Init _entry

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

be8f5e0: BPackageInfo: Add CanonicalFileName()
  
  The name of the package file is not part of the package-info.
  CanonicalFileName() constructs the name the file should have (not
  enforced anywhere (yet)).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4ea7f45: BRequest: Change attribute protection from private to protected
  
  Particularly fInitStatus is of interest for derived classes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e14b247: Add StringChecksumAccessor
  
  A ChecksumAccessor implementation for an already known checksum.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cca3f3b: package daemon: Fix Volume::_WriteActivationFile()
  
  * Wasn't using the toActivate and toDeactivate parameters, but the
    attributes. Thus failed when called from the
    CommitTransactionHandler.
  * Volume::_ChangePackageActivation(): Fix debug output.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

69a53ac: Add DownloadFileRequest
  
  Downloads a file and optionally checks its checksum.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6a14307: BDaemonClient: Add support for creating activation transactions
  
  * BActivationTransaction:
    - Remove non-trivial constructor.
    - Remove package list parameters from SetTo().
    - Add AddPackageTo{Dea,A}ctivate().
  * BDaemonClient:
    - Add CreateTransaction(). It creates a transaction directory and
      initializes a BActivationTransaction. Packages to de-/activate have
      to be added afterwards.
    - Add BCommitTransactionResult::FullErrorMessage().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

eee120f: pkgman install: Complete basic functionality
  
  Download package files to install from the respective repositories and
  use BDaemonClient to perform the package de-/activation. Still missing
  is the interactive problem solution support.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7c092d4: Add build profile action update-packages
  
  Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>",
  i.e. it makes sure all hpkgs that are supposed to be in the image are
  rebuilt respectively downloaded and copied to the image. It doesn't
  remove old packages nor the activation files -- that still has to be
  done manually.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

adc49c4: pkgman install: better out-of-memory error messages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ec41ff5: pkgman install: Refresh repositories first

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8e6c363: BSolver/LibsolvSolver: Add problem solution selection support
  
  ... and re-solving.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2f028e9: pkgman install: Add problem solution selection support

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7466fa2: pkgman install: Simplify transaction creation

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c128275: <Archivable.h>: Fix conflict with BPackageKit::BPrivate
  
  ... when "using BPackageKit::BPrivate".

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3ac0de3: pkgman: Refactoring -> PackageManager
  
  Move common and reusable functionality from "search" and "install" to
  new PackageManager class.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

de62d76: BSolver/LibsolvSolver: Add Uninstall()
  
  Also fix incorrect check in LibsolvSolver::GetResult().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8ba41d6: pkgman install: Fix typo in usage text

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

df2685d: pkgman: Add "uninstall" command

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

458a86a: pkgman: Organize commands by category

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

212c636: BSolver/LibsolvSolver: Add Update()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a5999f6: pkgman: Add "update" command

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5c01289: Adjust configure script to changed compiler version

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

4b30375: Update prerequired packages with current versions.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

86b3c7a: Drop symlink common/develop/tools/current
  
  * drop the symlink itself (system development tools are now symlinked
    from /boot/common/bin directly)
  * remove that symlink from PATH

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

083234d: Drop legacy scripts 'cc' and 'c++'
  
  * no longer put compiler wrappers onto image
  * removed corresponding environment variables

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

5be84d5: Update yasm package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

237127f: Fix _user_entry_ref_to_path() in chroot
  
  * Add "bool kernel" parameter to vfs_entry_ref_to_path(), so it can be
    specified for which I/O context the entry ref shall be translated.
  * _user_entry_ref_to_path(): Use the calling team's I/O context instead
    of the kernel's. Fixes the bug that in a chroot the syscall would
    return a path for outside the chroot.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ef40a60: Update Vision package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dbcaf9e: Update WQY-MicroHei package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d6a80eb: Add private headers to haiku_devel package
  
  Also include the freebsd_network and freebsd_wlan headers. Their final
  location and which of them to include in the first place might need some
  adjustments.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

60ac56d: Update wpa_supplicant package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

15565a0: Repackaged WonderBrush zip as HPKG

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

78d1b92: Adjust pkgman to consider symlinks to both package-infos and packages.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

8980423: Override File actions to be whitespace-safe

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0d452c8: Remove the TrackerNewTemplates optional package
  
  Instead add the files to the tree and generate the resulting files on
  the fly. This also avoids the undesired attributes the files in the
  package had.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f3b11fc: Update p7zip package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e49c739: Update groff optional package to hpkg

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ffeecbc: Add more provides to haiku[_devel].hpkg

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3f85cfc: Add a few missing directory_which constants

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f7d5bd4: finddir: Print more useful message in error case

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3b5cb32: find_directory(): Actually handle the new constants

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4b42e1a: Update man optional package to hpkg

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ad1d8a9: Remove ncurses from the haiku_devel package
  
  Besides that this version is very old, eventually we want to outsource
  ncurses anyway.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

db88e44: Add ncurses optional package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8e452bc: Update gcc, ncurses, and nano packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

44f6033: SetupEnvironment: Remove BELIBRARIES
  
  It is no longer needed with the current gcc 2 package.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

13321f4: Update sqlite package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

603c764: Update openssl package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4d6fe71: Update sqlite package (fix pkgconfig)

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e25f5f7: Update required version of legacy compiler in configure

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

4e8a27c: Update libxml2 package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d26ca29: Update mkdepend package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b87aa11: Update ncurses package
  
  It now includes both the wchar and the non-wchar libraries.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6ff8ef5: Add libedit package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

abfcf6a: Fix copy and paste error in NCurses optional package section

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c704b13: Update packages libtool, texinfo, sed, tar

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8aa0b0d: Update packages apr, apr_util, curl, flex, jam, libpcre and Pe.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

4521d4c: Updated package for Pe (lpe symlink was borked).

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

212cb73: packagefs: Fix deadbeef when using a file after package removal
  
  When closing a file whose package had been removed,
  PackageFile::VFSUninit() would crash due to calling Package::Close() on
  an already destroyed Package object. PackageNode does now hold a
  reference to the package between VFSInit() and VFSUninit().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

49da4a2: Update cmake and libsolv packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3cd0059: Update packages for CARootCertificates, curl, BePDF

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

d287414: Update BeBook package and fix URL of BePDF package.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

bd3c533: Update openssh package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0302ce8: Update bzip2 package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e17463f: Update gettext package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

87a36d2: PackageFSMountType: Add *_ENUM_COUNT

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5808138: packagefs: Add a .settings package symlink
  
  It points to the settings directory appropriate for global settings.
  When a package is installed in ~/config, we cannot use the settings/
  subdirectory for global settings, since then the files could clash with
  equally named user specific settings files (e.g. in case of
  ssh/known_hosts). So we use ~/config/settings/global for global
  settings instead.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5d41bc9: Add AddPackageFilesToHaikuImage rule

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4fd280d: Simplify use of InstallOptionalHaikuImagePackage
  
  When invoked for a hpkg only the installation location (i.e. "common"
  or "system") has to be specified now and "common" is the default. The
  rule uses AddPackageFilesToHaikuImage now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ece8449: Pimp up AddTargetVariableToScript to support a list of targets

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c10119f: BStringList: Add Join()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

330cb41: package list: Add option "-p"
  
  It prints just a list of paths for all entries.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e0f7f68: Extract packages' settings dir to common/settings in image
  
  That's a somewhat crude initial approach to installing the default
  settings of packages when building the image.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bbd4272: Add passwd, login to the provides of haiku.hpkg

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f803a8a: packagefs: Fix .settings package link for install path case

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c476e9a: Update openssh package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7cbdf4f: Update packages for several ports
  
  * apr
  * apr_util
  * curl
  * expat
  * libxml2
  * ncurses
  * neon
  * pcre
  * subversion
  
  This corrects the use of develop/lib paths and a few other things.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6c6d649: ExtractArchive rule: Allow the directory to have a grist

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

98a0dd5: Update ICU packages
  
  We extract both packages to the same directory now, since the icu_devel
  package depends on the base package and contains relative symlinks to
  the libraries. ATM that isn't really relevant, since we link directly
  against the libraries from the base package, but we might want to
  change that eventually.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c66189: BPackageInfo::Parser: Fix error output
  
  The "=" operator isn't actually allowed in a resolvable expression. It
  has to be "==" instead.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a82e49a: Update cdrtools and keymapswitcher packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6b17895: Update/add packages for readline, cvs, doxygen, python,
  
  ... and timgmsoundfont.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0d6e950: Update mercurial and python packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

25a7b01: Merge branch 'master' into package-management
  
  Additional changes:
  * Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
    needed by packagefs.
  * BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
  * Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
    is not needed and prevents building for the build platform.
  * zlib/zutil.h: Fix gcc 2 build. We really should use the external
    package instead.
  
  Conflicts:
        .gitignore
        build/jam/BuildSetup
        build/jam/FileRules
        build/jam/FloppyBootImage
        build/jam/HaikuImage
        build/jam/ImageRules
        build/jam/KernelRules
        build/jam/NetBootArchive
        build/jam/OptionalBuildFeatures
        build/jam/OptionalLibPackages
        build/jam/OptionalPackageDependencies
        build/jam/OptionalPackages
        build/scripts/build_haiku_image
        configure
        data/bin/installoptionalpackage
        data/system/boot/Bootscript
        headers/os/app/Message.h
        headers/os/package/PackageInfo.h
        headers/os/package/PackageInfoAttributes.h
        headers/os/package/PackageInfoSet.h
        headers/os/package/PackageRoster.h
        headers/os/package/PackageVersion.h
        headers/os/package/hpkg/PackageInfoAttributeValue.h
        headers/os/storage/FindDirectory.h
        headers/os/storage/Node.h
        headers/os/support/StringList.h
        headers/private/system/directories.h
        src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
        src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
        src/add-ons/kernel/file_systems/packagefs/Jamfile
        src/add-ons/kernel/file_systems/packagefs/Package.cpp
        src/add-ons/kernel/file_systems/packagefs/Package.h
        src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
        src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
        src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
        src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageNode.h
        src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
        src/add-ons/kernel/file_systems/packagefs/Version.cpp
        src/add-ons/kernel/file_systems/packagefs/Version.h
        src/add-ons/kernel/file_systems/packagefs/Volume.cpp
        src/add-ons/kernel/file_systems/packagefs/Volume.h
        src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
        src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
        src/apps/deskbar/BarApp.cpp
        src/apps/deskbar/BarMenuBar.cpp
        src/apps/deskbar/BarMenuBar.h
        src/apps/deskbar/BarView.cpp
        src/apps/deskbar/BarView.h
        src/apps/deskbar/BarWindow.cpp
        src/apps/deskbar/BarWindow.h
        src/apps/deskbar/DeskbarMenu.cpp
        src/apps/deskbar/DeskbarMenu.h
        src/apps/deskbar/DeskbarUtils.cpp
        src/apps/deskbar/DeskbarUtils.h
        src/apps/deskbar/ExpandoMenuBar.cpp
        src/apps/deskbar/ExpandoMenuBar.h
        src/apps/deskbar/TeamMenu.cpp
        src/apps/processcontroller/ProcessController.cpp
        src/apps/remotedesktop/RemoteDesktop.cpp
        src/bin/bash/config-top.h
        src/bin/finddir.c
        src/bin/package/Jamfile
        src/bin/package/command_add.cpp
        src/bin/package/command_create.cpp
        src/bin/package/command_list.cpp
        src/bin/package_repo/command_list.cpp
        src/bin/pkgman/command_refresh.cpp
        src/build/libbe/support/Jamfile
        src/build/libpackage/Jamfile
        src/build/libroot/Jamfile
        src/build/libroot/fs.cpp
        src/build/libroot/remapped_functions.h
        src/kits/locale/MutableLocaleRoster.cpp
        src/kits/opengl/GLRendererRoster.cpp
        src/kits/package/PackageInfo.cpp
        src/kits/package/PackageInfoSet.cpp
        src/kits/package/PackageRoster.cpp
        src/kits/package/PackageVersion.cpp
        src/kits/package/RepositoryCache.cpp
        src/kits/package/hpkg/PackageWriterImpl.cpp
        src/kits/package/hpkg/ReaderImplBase.cpp
        src/kits/package/hpkg/WriterImplBase.cpp
        src/kits/print/PrintTransport.cpp
        src/kits/print/Printer.cpp
        src/kits/screensaver/ScreenSaverRunner.cpp
        src/kits/support/StringList.cpp
        src/kits/tracker/ContainerWindow.cpp
        src/kits/tracker/DeskWindow.cpp
        src/kits/tracker/PoseView.cpp
        src/libs/print/libprint/Transport.cpp
        src/preferences/printers/AddPrinterDialog.cpp
        src/preferences/screensaver/ScreenSaverWindow.cpp
        src/servers/debug/DebugServer.cpp
        src/servers/input/AddOnManager.cpp
        src/servers/media_addon/MediaAddonServer.cpp
        src/system/boot/Jamfile
        src/system/boot/loader/Jamfile
        src/system/boot/loader/loader.cpp
        src/system/boot/loader/vfs.cpp
        src/system/kernel/fs/vfs.cpp
        src/system/kernel/fs/vfs_boot.cpp
        src/system/libroot/os/find_directory.cpp
        src/system/runtime_loader/runtime_loader.cpp
        src/tools/package/Jamfile

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d0e6e17: rule KernelStaticLibrary: Fix comment

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2bf492b: Add optional package Man to alpha, nightly release profiles

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bcbf22a: x86[-64]: Fix arch_cpu_user_strlcpy() for small buffers
  
  The case for small buffers was broken, since scasb operates on edi/rdi,
  not esi/rsi.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b38b279: Move package definitions to their own files

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bc07db8: Declare more package dependencies
  
  Probably still a lot missing, but we want to get rid of the file soon,
  anyway.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6fa5d4a: Add liblocale symlink until packages have been rebuilt

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5be0b18: Drop provides-declarations for commands that are no longer provided

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

415f424: Fix bash's default value for PATH

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b923a50: Fix merge defect in ICU optional package declaration

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4bee3d6: Add more rules to simplify dealing with build features
  
  * Introduce the notion of build feature attributes and add rules
    SetBuildFeatureAttribute and BuildFeatureAttribute to set respectively
    get a build feature attribute.
  * Add rule ExtractBuildFeatureArchives to download and extract archives
    and set build feature attributes to extracted entries.
  * Add rule UseBuildFeatureHeaders as a shorthand for getting a build
    feature attribute and adding it as a system header search directory.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7c6bff1: Complete outsourcing of zlib
  
  * Add optional packages Zlib and Zlib-devel.
  * Simplify the build feature section for zlib and also extract the
    source package.
  * Replace all remaining references to the zlib instance in the tree and
    remove it.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9abd3e6: Fix race condition during build of some file systems.
  
  * make sure the zlib package is available before trying to use zlib.h

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

853b8a4: CreateAppMetaMimeThread: Use open_type()
  
  ... instead of constructing the MIME type file path manually.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

eef74ff: Remove packages Zlib[-devel] from ReleaseBuildProfiles
  
  Instead add Zlib as a mandatory package and Zlib-devel as a Development
  dependency.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fa5dff5: Replace various boolean rule parameters by flags
  
  Instead of the boolean alwaysUpdate, isCDPackage, and stripDebugSymbols
  parameters use a uniform flags parameter which can contain any of the
  respectively supported flags (alwaysUpdate, cdPackage,
  stripDebugSymbols, !stripDebugSymbols).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d6a6e2c: rule CopyDirectoryToContainer: Add flags isTarget
  
  The flags indicates that the passed sourceDirectory is a target, not a
  path.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e387e24: Move MIME DB creation from build_haiku_image to jam build system
  
  * build_haiku_image: Remove MIME DB creation code.
  * Rename beos_mime source directory to mime_db.
  * Add rules to build the MIME DB in the source directory's jamfile.
  * Add MIME DB directory to haiku.hpkg in data/mime_db.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

38e3973: Add private class BMergedDirectory to storage kit
  
  An arbitrary number of directories can be added, which the implemented
  BEntryList interface presents as a single merged entry list. Three
  different merge policies are supported which define how entries that
  appear in more than one directory are treated.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

59a653b: Support multiple MIME DB directories
  
  Each installation location (system, common, common/non-packaged,
  ~/config, ~/config/non-package) can now have a read-only data/mime_db
  directory. ~/config/settings/beos_mime is now named mime_db as well. The
  contents of all directories makes up the MIME DB. Entries in more
  specific locations shadow entries in more general locations. Only the
  directory in ~/config/settings is where the registrar writes changes to.
  
  The new layout allows packages to contribute entries to the MIME DB by
  simply providing the respective files in data/mime_db. Consequently the
  user settings directory is supposed to contain only the things the user
  has actually changed.
  
  Seems to work fine as far as tested. A few issues, though:
  * The registrar doesn't monitor the directories yet, so it doesn't
    notice entry changes due to package de-/activation.
  * ATM it is not possible to remove a MIME type that is not in the user
    settings directory, although the FileTypes GUI suggests that it is.
    We'd have to work with white-outs, since we cannot remove the files in
    the data/mime_db directories. Or, alternatively, the API has to be
    extended and the FileTypes GUI adjusted to disable the "Remove" button
    in such a case.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f8d6e1f: mimeset: Style update

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

937b6e0: pkgman resolve-dependencies: Remove bogus option

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a625f55: mimeset: Change options style
  
  * Use "--" prefix for long options and switch to getopt parsing. There's
    still compatibility support for "-apps" and "-all", but they are
    considered obsolete, now.
  * Add short options "-a" for "--apps", "-A" for "--all", and "-h" for
    "--help".

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9cda9c9: Move MIME DB code back from registrar to src/kits/storage/mime
  
  * Together with database_{access,support}.cpp it is built into a static
    library.
  * Add new interfaces MimeSniffer and Database::NotificationListener for
    plugging in registrar specific functionality (the sniffer add-on
    support and the notification mechanism).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b94857b: Refactor MIME DB access
  
  * Add class DatabaseLocation. It contains a list of the MIME DB
    directory paths plus methods to access type files.
  * Move all low-level MIME DB access functions from
    database_{support,access} to DatabaseLocation. All code that formerly
    used those now requires a DatabaseLocation object. In BMimeType and in
    the registrar the default object is used, but the low-level classes
    can now be reused with different locations.
  * Move get_icon_data() from database_access to database_support and
    delete the former, which is now empty.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b6a89f4: Pull class AppMetaMimeCreator out of CreateAppMetaMimeThread
  
  Instead of using a BMimeType to set the MIME type properties, it
  operates directly on the Database object, though.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dcb2158: storage/mime: Some host platform build fixes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ed92790: mime/Database::Install(): Fix subtype without supertype case
  
  If the supertype directory for a given subtype didn't exist yet, the
  method would fail.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

57a7a6b: mime/database_support: Make buildable for host platform

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d0815ca: Add private MIME DB classes to libbe_build
  
  * This pulls in some more stuff, like libicon and agg which are also
    included in libbe_build, now.
  * Update a few libbe_build classes and headers needed to get things
    building.
  * This likely breaks the <build>mimeset build on Haiku.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9ea1940: mimeset: WIP to support custom MIME DB directories
  
  Add option -m/--mimedb for specifying one or more directories to be
  used as the MIME DB instead of the system MIME DB. Currently only works
  with --apps and only non-recursive.
  
  When fully implemented the new feature will be used in the build system
  and on Haiku when building packages to generated the MIME DB entries for
  applications, so those can be included in the same package. Furthermore
  it will be possible to use the MIME DB the build system already
  generates to identify files before packaging them.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

865ab28: Pull class MimeInfoUpdater out of UpdateMimeInfoThread
  
  * Pull out base class MimeEntryProcessor out of AppMetaMimeCreator.
  * Pull class MimeInfoUpdater out of UpdateMimeInfoThread and derive it
    from MimeEntryProcessor.
  * MimeInfoUpdater: Instead of BMimeType::GuessMimeType(), use
    Database::GuessMimeType() directly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c92c12d: libroot_build: Fix incorrect skipDot check in find_dir_entry()
  
  Would result in the _kern_open_parent_dir() failing for "/" and maybe in
  other cases as well.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

00090d2: boot loader: print max heap usage info before entering kernel

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f132bdf: boot loader: Add 256 KB additional heap
  
  packagefs is using quite a bit additional memory for the MIME DB
  entries and with all files identified.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5fb3348: MimeEntryProcessor: Add DoRecursively()
  
  While Do() only process the specified entry, DoRecursively() also
  recurses into directories.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

baadb25: Add te MimeInfoUpdater to libbe_build

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c61965: mimeset: Complete custom mime DB support
  
  * Don't require the first MIME DB directory to exist anymore. Database
    creates it anyway.
  * Make use of MimeInfoUpdater to support updating MIME info with a
    custom MIME DB.
  * Make use of MimeEntryProcessor::DoRecursively() to support recursive
    operation with a custom MIME DB.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fa4511f: AddDriversToContainer: Handle duplicate invocations
  
  Since the same driver can be added in more than one category, in a few
  cases AddDriversToContainer was invoked twice for the same target. Avoid
  adding the driver twice to add-ons/kernel/drivers/bin in such a case.
  Didn't really cause any problem, but no need to copy the file twice.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f666576: CopyDirectoryToContainer: fix typo in comment

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

518840e: Complete MIME related support for image/package creation
  
  * Update MimeSet rule to use the MIME DB the build system creates.
  * Add CreateAppMimeDBEntries rule and call it from Link for targets that
    might be applications that need to be registered with the MIME DB. For
    the target the rule is invoked with it creates a directory into which
    the entries for the types to be registered are written. The directory
    is associated with the target via the HAIKU_MIME_DB_ENTRIES variable.
  * AddFilesToContainer: If a target is added that has MIME DB entries,
    also add those to the container.
  * build_haiku_package: Call mimeset for the package contents.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bbd9807: Remove update_mime_info() support from libbe_build
  
  It was there only for <build>mimeset, which is now always invoked with a
  custom MIME DB and thus won't use the function anymore. We could
  actually easily implement it using MimeInfoUpdater, if the MIME DB
  directory the build system generates was compiled in.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3272998: Remove the no longer needed mime_update.sh post install script

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c53204: JPEGTranslator: Add missing jpeg headers dependency

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

204dee7: Use libbe_build also on Haiku
  
  This means the build tools will no longer be built against the host
  platform's libbe, which avoids compatibility problems -- e.g. an
  older Haiku host libbe may not have certain features the build tools
  require -- and also makes the build behave more similiar on Haiku and
  other platforms. The host libroot dependency still remains and is not
  easy to get rid of.
  
  Also remove some bits of BeOS/Dano/Zeta build support.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

826a109: MimeInfoUpdater: Fix is_shared_object_mime_type()
  
  The comparison must be case insensitive.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3271dcd: Update be_book and vision packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8a916d8: Don't create most empty installation dirs in home/config
  
  Create them in home/config/non-packaged instead.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a085e81: Move ~/config/boot to ~/config/settings/

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0bfcf73: Move deskbar menu directory to ~/config/settings/deskbar/menu
  
  Also remove the "be" symlink in ~/config/settings.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

85bf48f: packagefs: Remove no longer working userland build support

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1e7416d: packagefs: Organize sources into subdirectories

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1848fdc: util/khash: Add hash_hash_string_part()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d07c930: packagefs: Share string instances globally
  
  Introduce a class String which refers to shared private data that is
  registered in a global hash table (in class StringPool) and use the
  class consequently. This eliminates duplicate allocations for the same
  string and also speeds up tests for equality. There's quite a bit
  overhead for the management structures (apparently even more than for
  the string data itself), but due to almost all strings being used
  multiple times this still almost halves the memory usage for string
  data.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3c94ecf: packagefs: Move NodeListener to nodes/

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c663ca2: Merge branch 'master' into package-management
  
  Conflicts:
        build/jam/HaikuImage
        src/system/kernel/arch/x86/64/arch.S

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bfc4df8: Merge remote-tracking branch 'haiku/master' into package-management

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dff45df: Updated version of compiler to match BuildtoolsPM

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

7733189: Add new package haiku_cross_devel.hpkg
  
  * This package is meant for providing haikuporter with a development
    environment for building cross packages.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

f7712ca: Update package-infos to match current Haiku version
  
  * additionally, unify packager (to "The Haiku build system")

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

7e7232a: Update cmake and libsolv packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

171fd58: package kit: some fixes for multi-version support
  
  * Use enums/constants/functions instead of preprocessor macros.
  * Missing include in PackageInfoAttributeValue.h.
  * PackageReaderImpl::Init(): Check version before header size and
    return B_MISMATCHED_VALUES instead of B_BAD_DATA, if the version
    doesn't match. This allows callers to determine the condition and
    try a reader for a different version. A more flexible interface for
    that case would be nice, but since we want to support the old package
    version only temporarily, the current solution should be good enough.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7575abb: Clone read support functionality for HPKG format version 1
  
  It uses sub-namespace BPackage::BHPKG::V1. Unlike the one for the
  current format version, the V1 version of BPackageInfoContentHandler
  lives in BHPKG(::V1) sub-namespace and is private.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fc0cec5: Bump HPKG format version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ab5755a: packagefs: PackageLeafNode: remove superfluous declaration

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dd0b33c: BPackageInfo: Support reading both HPKG format versions

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b5786b0: BPackageDataReader: Remove unused Size(), BlockSize()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

175ff8e: package kit: Add BAbstractBufferedDataReader
  
  It doesn't do much in terms of buffering, but defines an interface
  buffered readers can implement, namely the additional
  ReadDataToOutput() which currently BPackageDataReader specifies.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2c32402: package kit: internalize BPackageDataReader
  
  It is no longer public (or even private) API. BPackageDataReaderFactory
  returns a BAbstractBufferedDataReader instead. The advantage is that
  the latter doesn't have hpkg format specific dependencies.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

11cecf9: packagefs: Add support for hpkg format V1
  
  * Add union-like class PackageData which wraps the V1 and V2
    BPackageData classes.
  * GlobalFactory: Create a data reader depending on the data format
    version.
  * Package: Add a loader for V1 format and try that, if the other one
    fails.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9172ffd: package list/extract: Add support for hpkg format V1

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

df29539: Remove resolvable provides type
  
  * Remove BPackageResolvableType and respective property from
    BPackageResolvable.
  * Remove package attribute B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES_TYPE.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7adfd76: Add "base package" package attribute

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0ee1651: Rename BBlockBufferCache and friends to *Pool*
  
  Also move BBlockBufferPoolNoLock into BHPKG namespace with the other
  classes. Not sure why it wasn't there before.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

21ee6d5: Some comment updates

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

16e5e5e: Some *DataReader improvements
  
  * BFDDataReader: Add SetFD().
  * BBufferDataReader: Derive from BAbstractBufferedDataReader.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1f63381: hpkg format: compress the whole heap
  
  Instead of handling compression for individual file/attribute data we
  do now compress the whole heap where they are stored. This
  significantly improves compression ratios. We still divide the
  uncompressed data into 64 KiB chunks and use a chunk offset array for
  the compressed chunks to allow for quick random access without too much
  overhead. The tradeoff is a limited possible compression ratio -- i.e.
  we won't be as good as tar.gz (though surprisingly with my test
  archives we did better than zip).
  
  The other package file sections (package attributes and TOC) are no
  longer compressed individually. Their uncompressed data are simply
  pushed onto the heap where the usual compression strategy applies. To
  simplify things the repository format has been changed in the same
  manner although it doesn't otherwise use the heap, since it only stores
  meta data.
  
  Due to the data compression having been exposed in public and private
  API, this change touches a lot of package kit using code, including
  packagefs and the boot loader packagefs support. The latter two haven't
  been tested yet. Moreover packagefs needs a new kind of cache so we
  avoid re-reading the same heap chunk for two different data items it
  contains.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

18b19ba: ZlibCompressor: Allow setting the compression level

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

796343e: Allow specifying the compression level for package creation
  
  * Introduce BPackageWriterParameters which comprises all parameters
    for package creation, currently flags and compression level. Such an
    object can be passed to BPackageWriter::Init() and is passed on to
    PackageWriterImpl and WriterImplBase.
  * PackageFileHeapWriter: Add compressionLevel property and pass the
    value on to ZlibCompressor.
  * package add/create: Add options -0 ... -9 to specify the compression
    level to be used.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

06f5437: Add HAIKU_PACKAGE_COMPRESSION_LEVEL build variable
  
  It allows to control the compression level used for package creation
  and update. The default (9) is *very* slow, so developers may want to
  use a smaller level during the regular development process to keep
  turn-around times low.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

96af1d2: PackageFileHeapWriter: Small style fix

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

172f25f: PackageWriterImpl: Fix reading the package-info in update mode

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

520a7a7: PackageFileHeapAccessorBase: small refactoring
  
  * Pull method DecompressChunkData() out of ReadAndDecompressChunkData()
    for potential reuse.
  * Also fix/improve some error output strings.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b05413e: PackageFileHeapWriter: Fix update case
  
  * Pull _UnwriteLastPartialChunk() out of Reinit() for reuse.
  * _UnwriteLastPartialChunk(): fPendingDataSize wasn't set.
  * _PushChunks(): Some simplifications for clarity.
  * ChunkBuffer/RemoveDataRanges(): Use data reading and decompression
    methods provided by our base class instead of duplicating the
    implementation.
  * RemoveDataRanges():
    - _FlushPendingData() before starting, so we don't ignore the pending
      data and _UnwriteLastPartialChunk() when done, so a partial chunk
      is read back into the pending data buffer.
    - fUncompressedHeapSize wasn't reset before the main processing loop,
      thus resulting in an erroneous size later on.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d03ac96: ReaderImplBase: Fix gcc 4 build

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

88adb4a: PackageFileHeapWriter: Add error message
  
  ... in case compression fails unexpectedly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5d3de03: libroot_build: Fix fs_read_attr() in fs_attr_untyped.cpp
  
  * With a specified buffer size smaller than the attribute size the
    function would fail with ERANGE on Linux although it should just read
    as much as possible. Now we always read into our temporary data buffer
    with the full buffer size.
  * Fix return value in case pos is > 0. pos must be subtracted from the
    bytes actually read.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

521545f: Add padding in HPKG/HPKR headers
  
  ... so that the different alignment on 32 and 64 bit machines doesn't
  change the layout.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1559102: ReaderImplBase: Fix strings subsection validity check
  
  A strings section with 0 strings is still 1 byte long. Also improve the
  error output in the error case.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1471350: packagefs: Fix debug build

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5261923: Add dvprintf()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

760dee1: packagefs: Add va-args version ERRORV() to DebugSupport

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2a6f172: packagefs: Resolve error output TODOs

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bfa408d: packagefs: PackageData: Fix copy and paste error

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

01c0371: BuildHaikuPackage rule: Add grist to package info file
  
  ... to avoids clashes with equally named targets.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

64bb883: Support booting with a packaged boot loader
  
  * Add new package haiku_loader.hpkg and move haiku_loader there. The
    package is built without compression, so that the stage 1 boot loader
    has a chance of loading it.
  * Adjust the stage 1 boot loader to load the haiku_loader package and
    relocate the boot loader code accordingly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d59e0fe: package: Suppress version mismatch errors where V1 is supported
  
  * Add flags parameter to Init() of BPackageReader and friends.
  * Introduce flag B_HPKG_READER_DONT_PRINT_VERSION_MISMATCH_MESSAGE and
    don't print a version mismatch error when given.
  * package extract/list: Use the new flag.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b814fea: packagefs: PackageFile::DataAccessor: Avoid unnecessary locking
  
  ... in case of version 2 package files.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c3bd329: PackageFileHeapAccessorBase: Fix error output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

69a1f1f: packagefs: Fix attribute indexing
  
  Since the package nodes' attributes are indexed before the VFS has
  accessed any of its nodes, the package wasn't open and reading the
  attribute data would fail. We do now open the package explicitly in
  UnpackingAttributeCookie::IndexAttribute(). Moreover, as an
  optimization, we also open the package in Volume::_AddPackageContent(),
  so the package file isn't repeatedly opened and closed as its nodes are
  being registered.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4612285: packagefs: Add caching for the package file heap reader
  
  * ReaderImplBase:
    - Add virtual CreateCachedHeapReader() which can create a cached
      reader based on the given heap reader.
    - Rename HeapReader() to RawHeapReader() and add HeapReader() for the
      cached heap reader.
    - Add DetachHeapReader() to allow a clients to remove the heap
      reader(s) after deleting the ReaderImplBase object.
  * packagefs:
    - Add CachedDataReader class, which wraps a given
      BAbstractBufferedDataReader and provides caching for it using a
      VMCache. The implementation is based on the IOCache implementation.
    - Use CachedDataReader to wrap the heap reader. For file data that
      means they are cached twice -- in the heap reader cache and in the
      file cache -- but due to the heap reader using a VMCache as well,
      the pages will be recycled automatically anyway. For attribute data
      the cache should be very helpful, since they weren't cached at all
      before.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bc306e2: Declare some string constants actually const

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5dae154: Add "source" package architecture

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

47039b8: Package/repository file format: Add a minor version header field
  
  * Add minor_version to hpkg_header and hpkg_repo_header and make
    heap_compression uint16.
  * If the minor version of a package/repository file is greater than the
    current one unknown attributes are ignored without error. This allows
    introducing new harmless attributes without making the resulting files
    unreadable for older package kit versions.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bac0bb2: RepositoryWriterImpl: Write the heap fields in the header

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4ffb923: PackageFileHeapWriter::RemoveDataRanges(): Fix empty heap check

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5497f08: hpkg attribute tags: use 7 bits for attribute ID
  
  ATM the 6 bits suffice, but there isn't that much headroom.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fe707a2: hpkg format: Add attributes for declaring settings files
  
  Global and user settings files can be declared. For global ones an
  update policy can be specified. If not specified, the settings file is
  not included in the package, but created by the program (or user) later.
  If an update type is specified, it defines what to do with the settings
  file when updating the package to a newer version.
  
  User settings files are never included in the package; they are always
  created by the program or the user. If the package contains a template/
  default settings file, it can be declared, but for informative purposes
  only.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a8de276: Move package attribute ID definitions to a separate file
  
  ... <package/hpkg/PackageAttributes.h>, which also defines other
  properties (name and type) for each attribute. It does so via a macro
  that the caller can define to generate whatever code is desired.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

79d5ddb: ReaderImplBase: Verify that the attribute type matches
  
  ... the one expected for the respective attribute. Before it was
  possible that e.g. a uint was read and then interpreted as a
  const char*, if a string was expected for that attribute.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6da0ce6: Move package info parser to its own file

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

daa10fc: Move package info string builder to its own header

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bf88057: ReaderImplBase: Fix copy and paste oversight

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8698ee4: BStringList: Declare Join() const

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c82776b: BString: Add Split()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0f4e11e: hpkg format: Add attributes for declaring users and groups

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

927e070: WriterImplBase: Some simplifications
  
  ... using the recently introduced _AddStringAttribute[IfNotEmpty]().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c0ab140: hpkg format: Add attribute for declaring post install scripts

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a11b000: packagefs: CachingPackageReader: Don't delete cached heap reader
  
  ... in destructor. After we create it, it belongs to the super class and
  is destroyed by it.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a3e070a: WriterImplBase: Add _AddStringAttributeList()
  
  ... and simplify some code by using it.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

38a0419: package info parser: improve parse error column numbers
  
  Assume 4 column tab stops and compute the column numbers accordingly.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a98dd49: package info parser: allow escaping of new lines
  
  So we can break long lines without changing the semantics.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e2f3051: hpkg format: user big endian for chunk sizes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3da422a: libroot_build: Fix issues with attribute FD for symlink
  
  AttributeDescriptor: Don't use dup() directly. Check, if the given FD is
  one we track and clone it respectively. This allows use with symlink FDs
  which we have to fake on Linux (since symlinks cannot be opened). Fixes
  extraction of packages containing symlinks with attributes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a196160: On FreeBSD, "<malloc.h> has been replaced by <stdlib.h>"

                                        [ Matt Madia <mattmadia@xxxxxxxxx> ]

75c10de: libroot_build _kern_read_dir(): reset errno before readdir()
  
  Since we're checking errno when readdir() didn't return an entry, we
  need to reset it before, or we might see a spurious error value.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

badd403: Update grep package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

56b43ec: BPackageInfoContentHandler: Handle new attributes
  
  Also add respective *Data constructors to BUser, BUserSettingsFileInfo,
  and BGlobalSettingsFileInfo.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b361d03: haiku.hpkg package info: zlib is a separate package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e63bdfe: Rename post_install dir to post-install

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

30c2352: Adjust buildscript for gcc4 to configure with a sysroot.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

7ea6bb1: Add c++-libs to haiku_cross_devel.hpkg

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

7b2016c: Update libsolv package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ba96552: Support extracting archives to the packages we build
  
  * BuildHaikuPackage rule: Create the script that contains the extraction
    commands.
  * build_haiku_package: Add extractFile() function (stripped down version
    from build_haiku_image).
  
  In build_haiku_image the functionality was mainly used to extract the
  optional packages, which is no longer done. We still need it e.g. for
  the Wifi firmware packages that want to be extracted.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fa962e6: build_haiku_package: Print some progress info
  
  Remove the output in extractFile(), though. The extracted packages are
  so small that it doesn't matter anymore.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1180286: Fix reading attributes of directories
  
  When reading an attribute of a directory there was no guarantee that the
  underlying package would be open. When it wasn't reading an attribute
  would fail, unless the attribute data were already cached. The reasons
  for this are:
  * UnpackingDirectory didn't forward the {Init,Uninit}VFS() calls to the
    underlying PackageDirectory.
  * Only PackageFile was actually opening the package in InitVFS().
  
  Now we forward the {Init,Uninit}VFS() calls in all cases -- even in
  {Add,Remove}PackageNode(), when the active package node changes -- and
  opening/closing the package is now done in
  PackageNode::{Init,Uninit}VFS().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d055934: QueryParser: Fix some debug macros

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

10e9f49: QueryParser: Equation::Match(): Fix generic attribute case
  
  Init size to the buffer size before passing it to
  QueryPolicy::NodeGetAttribute(). Since size was 0 by default, we would
  only read 0 length data.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b23d504: packagefs: UnpackingAttributeCookie: Open package
  
  ... when reading non-inline attribute data. Generally the package should
  already have been opened by the PackageNode owning the attribute (in
  InitVFS()), but that isn't the case for queries, which can read
  attributes from entirely unsuspecting nodes.
  
  Together with the QueryParser fix that should fix queries involving
  non-indexed attributes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

28fd71c: Installer: CopyEngine: Remove some debug/uncommented code

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fb5f0bb: Installer: Move path string constants to new InstallerDefs.h/cpp

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a601eaa: Installer: Remove "/boot/var" directory check
  
  The PM Haiku Installer doesn't need support installing ancient Haiku
  versions.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c2be967: Installer: CopyEngine: Externalize decision making
  
  * Add interface EntryFilter, an instance of which can be passed to the
    CopyEngine. The object is asked whether to copy entries/clobber
    directories.
  * Move the _ShouldCopyEntry()/_ShouldClobberFolder() code to new
    WorkerThread::EntryFilter.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e8eb6ae: Installer: WorkerThread::_PerformInstall(): get rid of goto

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

348d9ea: Installer: WorkerThread: Remove InstallerWindow dependency
  
  * Move message constants to InstallerDefs.h.
  * Determine the source and target partition ID already in
    InstallerWindow and pass those to WorkerThread instead of fiddling
    with menu items in _PerformInstall(). And instead of the window object
    pass a messenger to the constructor.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ba6f7c8: Installer: CopyEngine: Pass relative path to EntryFilter
  
  ... instead of the file name.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f4953ba: Installer: WorkerThread::EntryFilter: Use path map
  
  ... instead of implicit comparisons.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6c36ad1: Installer: Restrict entry filter to files from the BFS volume
  
  We generally want to skip the contents of the packagefs volumes (save
  for the shine-through directories). That makes Installer usable again.
  In what direction we want to develop it (e.g. integrate some PM support,
  so that a subset of packages can be selected) needs further discussion.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

59e2e2f: Adjust handling of package infos.
  
  * add HAIKU_PACKAGING_ARCH, which is set to the target packaging 
    architecture
  * introduce support for generic package infos, which are package infos
    that are the same for all architectures, except for the declaration
    of the package architecture itself
  * move package info files underneath architecture-specific or generic
    folder

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

02783d5: Add new package haiku_cross_devel_wrapper.
  
  * this package wraps the haiku_cross_devel package (i.e. it contains
    that package in /develop/cross)
  * the wrapper package is meant to be installed into the system 
    hierarchy, from where haikuporter will fetch the contained package
    when needed

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

eeddc9f: Fix paths in haiku_cross_devel packages.
  
  * since this is now meant to be installed into an architecture-specific
    (sysroot-)folder, we need to drop the architecture-specific subpaths

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

c915f7b: Fix haiku_cross_devel package(s).
  
  * those packages need to be installed on any system that wants to build
    for the respective target architecture, so they need to have the
    package architecture 'any'
  * adjust to not require 'haiku', as that isn't needed and wouldn't be
    available either
  * use concatenation by macro to inject the target architecture into the
    provides definition

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

25601cf: Minor fix: extend copyright in all package infos to 2013.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

872e7aa: Rename haiku_cross_devel packages.
  
  * haiku_cross_devel is now haiku_cross_devel_sysroot
  * haiku_cross_devel_wrapper is now haiku_cross_devel

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

a532c57: Remove /boot/{apps,preferences} symlinks
  
  And adjust all remained occurrence in the tree accordingly (->
  /boot/common/{apps,preferences}).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fa374ad: Remove config.log files

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

48581f9: FHaikuPackageGrist: Avoid potential package name clashes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a6e03f4: find_directory(): Fix B_{APPS,PREFERENCES}_DIRECTORY paths

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9938009: add_catalog_entry_attributes.sh: Remove optional directory

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0050b4b: Runtime loader: don't fall back to OS-ABI directories.
  
  * when an executable with a different ABI is being loaded and some
    needed image isn't found, don't retry using the standard ABI folders
    of the system - those are now considered incompatible

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

729c633: Runtime loader: rename compatibilitySubDir to abiSpecificSubDir.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

8944824: rm_attrs: Fix for parameters with whitespace

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4489c88: hpkg format: Generalize user/global settings file attributes
  
  * For all identifiers: Rename global settings file to global writable
    file. We want to use the respective attribute also for other writable
    files, not only settings files.
  * User settings file/global writable file info/attribute: Add
    isDirectory property/child attribute. This allows declaring global/
    user settings directories associated with the package.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a266b57: ReaderImplBase: Handle new ...IS_WRITABLE_DIRECTORY attribute

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

280b7cb: libroot_build: Improve/fix get_path()
  
  In fs_attr_generic() get_path() is used with a symlink FD, which didn't
  work at all. Handle symlink descriptors explicitly now.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

01176bd: Add basic BUuid class
  
  ATM it's only able to generate random UUIDs.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bc96e8f: Add more robust generic attribute emulation variant
  
  The new configure option "--use-xattr-ref" enables an xattr assisted
  variant of the generic attribute emulation. Instead of using the inode
  ID of a node to identify its attribute directory, we use a reasonably
  unique random 128 bit number, which we generate and attach as an
  attribute to the node. This way, when a node changes its inode ID
  (defragmentation?) or the inode ID of a removed node with a left-over
  attribute directory is reused, attributes won't get mixed up.
  
  The old method is still used for symlinks (since on Linux only
  priviledged users can write attributes on symlinks), but those usually
  only have a rather boring BEOS:TYPE attribute, so mix-ups wouldn't be
  that problematic anyway.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

69de9c6: MIME DB build: Fix name clashes
  
  * Make grist for subtype source files unique.
  * Our MakeLocate only appends to LOCATE, so we have to call it before
    ResComp, if we want a different location.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

52a43b1: MakeLocate rule: Avoid directory dependency, if already located
  
  Only create the directory dependency for a target, if that's where the
  target will actually end up. If it has already been located before, do
  nothing.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3b8f8e0: ICNS/JPEGTranslators: add Jamfile deps to lib headers
  
  * Add Jamfile dependency to LIBPNG headers on icns_png.c;
  * Add Jamfile dependency to LIBJPEG headers on JPEGTranslator.cpp
    be_jdatasrc.c
  
  Conflicts:
        src/add-ons/translators/jpeg/Jamfile

                                        [ Siarzhuk Zharski <zharik@xxxxxx> ]

3dadb47: boot loader tarfs: Declare dependency to zlib package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c80c798: boot packagefs: Fix zlib dependency declaration

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

444b035: BuildHaikuPackage rule: Locate extract script
  
  Missed that when adding the script. Therefore it would be created in the
  current directory and when building multiple packages concurrently the
  script would be overwritten.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

beeaf37: HaikuDevel: Fix copying the build feature headers
  
  We have to use actual targets that cause the respective download and
  extract the packages. Otherwise the build fails when the packages
  haven't been extracted yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a1832a0: <resolv.h>: Make self-contained

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7b6d45c: LibsolvSolver: Use Solvable only where necessary
  
  repo_internalize() apparently reorganizes the storage for Solvable
  objects so that our fSolvablePackages and fPackageSolvables maps could
  contain invalid pointers. Now the maps use the solvables' ID instead.
  Also use the IDs instead of the Solvable objects in most other places,
  which in some cases even simplifies the code a bit.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c625c5f: <langinfo.h>/<select.h>: don't use C++ comments

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c46f596: Update zlib, gettext, libiconv, ncurses packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5ce950a: BuildFeature: missing ";"

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ebb78dd: Update openssl package
  
  Also use the new build feature rules

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

178da21: Update icu package
  
  Also use the new build feature rules.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e97e4b7: Update glu and mesa package
  
  Also use the new build feature rules.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

14d5e30: Update ffmpeg package and its requirements
  
  Also make use of new build feature rules.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e2c74e4: Remove unused MikMod build feature

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

29f8805: Update freetype package
  
  Also use the new build feature rules

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e9f440f: Update libpng package
  
  Also make use of new build feature rules

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e4bd005: Update jpeg package
  
  * Also make use of new build feature rules.
  * Since the hacky long_jump_buffer field has been removed from the
    jpeg_error_mgr struct in the new package, the structure is now
    wrapped in the JPEGTranslator code to achieve the same behavior.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1d14716: Some renaming of zlib related jam variables

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a20eb7f: Update libsolv package
  
  Also make use of new build feature rules.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

12629b1: Update expat package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

de2188e: Fix #7824: failure to build a cross-compiler on Haiku.
  
  * force creation of a cross-compiler for both gcc2 and gcc4 when
    building on Haiku (by suffixing the build and host machine with
    '_buildhost')
  (cherry picked from commit df69e209bbacd07fdfea9d9efcfc8e1c0dfedaa0)
  
  Conflicts:
        build/scripts/build_cross_tools_gcc4

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

49f8422: Remove whole sys-include folder when cross-compiler has been built.
  
  * at least for gcc2, we used to leave the 'os' subfolder in there,
    which may have caused problems when Haiku's headers have changed
    since the last time the compiler was built.
  (cherry picked from commit 92bb2fb33e2d0f4aa766be095057fe63ff17bc8e)

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

46792e5: Update basic development packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8d1a954: Update apr[_util], be_book, bepdf, jam packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0ac19e7: Update several packages
  
  * bzip2
  * ca_root_certificates
  * cdrtools
  * cmake
  * ctags
  * curl
  * cvs
  * doxygen
  * freetype
  * git
  * groff
  * libsolv
  * man
  * nano
  * readline
  * sqlite
  * python

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

98c399b: Update packages keymapswitcher, libedit, libxml2, libpcre

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

676cc5a: Update packages mercurial, mkdepend

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e31d588: Update several packages
  
  * neon
  * openssh
  * p7zip
  * pe
  * subversion
  * tar
  * timgmsoundfont
  * wonderbrush

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7f453e3: Update packages vision, wpa_supplicant, wqy_microhei, yasm

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

56c3ef1: Disable xz-utils optional package for gcc 2

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

01293f6: OptionalPackages: fix syntax errors

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b6163fd: Update openssh package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2551c12: Update wonderbrush package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b4dc51b: Fix behaviour of towlower(), towupper() and towctrans():
  
  * all those functions need to return the given wc unchanged in case of
    error, not 0
  * towctrans() didn't actually look at the requested transition, but 
    always acted as if _ISlower was given

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

51bce88: Fix behaviour of localtime(), gmtime() and mktime().
      
  * In case the locale backend could not be loaded, these functions (and
    their reentrant counterparts) just returned an error. So we reactivate
    parts of the BSD-/Olson-implementation in localtime_fading_out.c in
    order to use them as fallback.
  * Cleanup localtime_fading_out.c (remove a lot of unused cruft).

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

ece5825: Improve robustness of asctime() and asctime_r().
  
  * Return NULL and set EINVAL if the given tm pointer is NULL. This 
    isn't mandated by the POSIX base specs, but it just makes sense.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

1055112: Move PUuid from shared to support

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

535207a: BPoseView::AddPosesTask(): fix count checks
  
  In case GetNextDirents() returned an error, the wrong blocks were
  executed.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2752612: BMergedDirectory::GetNextDirents(): fix end-of-list return value

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5fa3519: BString::Private: Add IsShareable()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

62b0b64: BStringList::Add(): fix ref counting problem
  
  Handle the case that the private data of the given string is not
  shareable.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6ca95bd: PathMonitor.cpp: some style cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ad1875f: BPathMonitor: use pthread_once for initialization

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

77ca66c: BPathMonitor: make the node watching mechanism configurable
  
  Add inner class BWatchingInterface and method SetWatchingInterface().
  This abstracts the calls to watch_node() and stop_watching(), thus
  making it possible to use the path monitor in Tracker.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ddd775f: BPoseView::FSNotification(): fix issue in debug build

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3209bc4: BPathMonitor: PathHandler::_NotifyTarget(): simplify
  
  * Add optional entry_ref return parameter to _HasFile().
  * Simplify _NotifyTarget() by using _HasDirectory() and _HasFile().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8d572c9: Add class NotOwningEntryRef
  
  A entry_ref subclass that avoids cloning the entry name.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7b198d8: B_WATCH_FOLDERS_ONLY -> B_WATCH_DIRECTORIES_ONLY
  
  Stick to the nomenclature generally used in the public API.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

38afe23: BPathMonitor: pass BMessenger by reference

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cb4a05c: Missed B_WATCH_FOLDERS_ONLY occurrence

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3e8daeb: Add BMessenger::HashValue()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1eda851: BOpenHashTable: Add IsEmpty()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0d603ac: Fix node monitoring slot accounting for stop_watching()
  
  NodeMonitorService::RemoveUserListeners() didn't decrement
  io_context::num_monitors when removing a listener, so limit checks
  would be off afterwards.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8c974aa: node monitor: add TODO regarding the syscalls

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cc4d194: Add test suite for BPathMonitor
  
  749 / 1504 tests fail

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

04382d4: BPathMonitor: rewrite
  
  This resolves all issues the test suite uncovered. It should also deal
  with hard links correctly, though that hasn't been tested. Still
  unsupported are:
  * changes due to mounting/unmounting a volume,
  * tracking of symlinks in the path components.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c143884: Use incorrect use of BPathMonitor in input/midi/net server
  
  The B_ENTRY_* constants aren't valid watch flags.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b5b9388: Add C++ API for driver settings
  
  Copied from the userlandfs utility classes, adjusted coding style, did
  some renaming and small interface changes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e19f909: BPathMonitor: add "from path" to B_ENTRY_MOVED notifications

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

de85051: BPoseView::AttributeChanged(): additional check in icon case
  
  Model::AttrChanged() requires the model to be open and so does
  IconCache::IconChanged(), so add the check. Not sure if the block is
  ever executed now (or ever worked before). This does at least prevent
  asserts being triggered when compiled with debugging enabled.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1c29b26: Add virtual directory feature to Tracker
  
  Similar to stored queries, files of the virtual directory type behave
  like directories -- i.e. they open in a list-mode Tracker window and
  show up as an item with submenu in navigation menus. The file itself is
  a plain text file in driver settings format. It can have an arbitrary
  number of "directory" entries, which specify the paths of (actual)
  directories for which the virtual directory provides a merged view. The
  view will not show duplicate entries. For non-directory entries the
  first one encountered (according to the order the directory paths are
  specified in the file) will be shown. A subdirectory entry will again
  behave like a virtual directory.
  
  The support in Tracker isn't perfect yet. I'm afraid major refactoring
  would be necessary to get it there.
  
  The virtual directory file type uses a differently colored version of
  the folder icon. Alternatives welcome.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dbd9780: SetType rule: add optional type parameter
  
  If not specified the executable MIME type is used as before.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

26ea706: Deskbar: use a virtual directory for the user-configurable menu
  
  * Deskbar now uses ~/config/settings/deskbar/menu_entries for its menu,
    falling back to /system/data/deskbar/menu_entries, when the former
    doesn't exist. The latter always exists and is a virtual directory
    merging the deskbar/menu subdirectories of ~/config/settings/ and
    <any installation location>/data/. So, if a package provides a
    deskbar menu symlink, it is added automatically when the package is
    activated. The user can add own menu items by putting stuff into
    ~/config/settings/deskbar/menu/, only use their own organization by
    symlinking it to menu_entries, or do fun stuff by making menu_entries
    a customized virtual directory.
  * HaikuImage: No longer create any deskbar menu symlinks in the user's
    settings directory. Instead add them to the Haiku package.
  * OptionalPackages: At least for the optional packages that do have
    hpkgs, no longer create deskbar menu symlinks in the user's settings
    directory.
  * Move all Deskbar settings files to ~/config/settings/deskbar/ and
    drop the "Deskbar_" prefix.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9430708: Update packages ffmpeg, openssh, p7zip

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2cf916c: ExpanderRules: Coding style update
  
  Also makes the ExpanderRule getters const. No other functional change.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

301f4b4: Expander: also read rules from data directories
  
  * ExpanderSettings: Use a settings directory "expander" and rename
    settings file to "settings".
  * ExpanderRules: Read expander rules from "rules" files in the settings
    directory, then from files in expander/rules subdirectories of the
    installation location data directories, and finally add the built-in
    rules. This allows packages to provide expander rules (as already
    done by the p7zip package).
  * OptionalPackages: Remove AddExpanderRuleToHaikuImage invocations.
  * ImageRules: Remove Expander rule file related rules.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2a24174: Clock: TOffscreenView: small cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4c851c2: Clock: fix crash when resources could not be loaded

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

207389a: BResources::SetTo(): try opening read-only on error
  
  Fixes #9843.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ff2e520: Remove the old "CVS" package rules
  
  ... and all their invocations.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5a7d7bc: Remove *Kit pseudo targets from root Jamfile

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

178d2f9: Expander: create settings directory, if necessary
  
  Fixes #9846.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8d5ae26: Add MIME type for Haiku packages
  
  Doesn't have an icon yet (hint, hint! :-)).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4f82f6f: Add Expander rule for Haiku package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c09ec54: Fix MIME type creation error
  
  DatabaseLocation::OpenOrCreateType(): BNode::WriteAttr() returns the
  number of bytes written, not just an error code., so we erroneously
  reported an error on success.
  
  Fixes the first part of #9845.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a85e464: package_repo: fix printf() format strings

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

87e22aa: Make package_repo buildable for the build host

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2ebcd86: Add configure option --host-only
  
  When specified, the build will be configured for building build host
  tools only.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2f5551e: libroot_build: make path normalization more robust
  
  In case we don't have read permission for an ancestor directory, we try
  to guess the path from the CWD.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fd28164: Also allow source packages in a repository for any architecture

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3c3dd84: RepositoryWriterImpl::_AddPackage(): more info in error messages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3208685: Add HPKG to Expander's supported types

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

695a1b2: repository writer: fix use of incorrect header size
  
  The header size of the package file header was used, which resulted in
  broken repository files.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

69f67e6: BRepositoryInfo: make sure fInitStatus is always set correctly

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c892883: BRepositoryCache: use BStandardErrorOutput

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6a7e340: BSolverRepository: fix gcc 4 build

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

383cd08: BSolverRepository: add SetTo(const BRepositoryCache&)

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

17d00ec: pkgman: RepositoryBuilder: add BRepositoryCache c'tor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e853340: Repository file format: group attributes of a package
  
  * Introduce new package attribute B_HPKG_ATTRIBUTE_ID_PACKAGE (valid
    only in a repository file) to group the attributes belonging to a
    package.
  * BRepositoryContentHandler:
    - No longer derive from BPackageContentHandler.
    - Add hooks HandlePackage() and HandlePackageDone() that bracket the
      attributes for a package. This is more explicit and robust than
      handlers having to guess when one package ended and the next began.
  * BRepositoryCache: Make use of BPackageInfoContentHandler. No need to
    duplicate the code for reading a package info from package info
    attributes.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bf5b4b2: package_repo list: add missing cases
  
  It probably would be better to share code with package's list, since it
  is very similar.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

001e906: LibsolvSolver: missing include

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

43d96d8: haiku package-info: fix some provides/requires

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

98c6dfa: Switch build system from optional package to repositories
  
  * Build libsolv and the dependency solver part of the package kit for
    the build platform.
  * Add build tool get_package_dependencies. Given a list of package files
    and a list of repository files it determines the additional packages
    that need to be retrieved from the repositories and prints their URLs.
  * Add rules to work with external repositories in the build system
    (build/jam/RepositoryRules):
    - PackageRepository declares an external repository with all its
      packages. The URL of the repository file isn't specified. It is
      computed from a given base URL and the SHA256 hash of the list of
      package files.
    - GeneratedRepositoryPackageList generates a file containing the file
      names of all packages in a repository.
    - IsPackageAvailable returns whether a package is available in any
      repository.
    - PackageURL returns the URL for a package.
  * Declare the HaikuPorts repository for x86_gcc2
    (build/jam/repositories/HaikuPorts/x86_gcc2).
  * Add rule AddHaikuImagePackages to add a package to the image and rule
    IsHaikuImagePackageAdded to determine whether a package has been
    added.
  * OptionalPackages: Remove all entries that just downloaded and
    installed an external package. AddHaikuImagePackages can be used
    instead and is used in the remaining entries. Also move the remaining
    optional package dependency declarations from
    OptionalPackageDependencies here.
  * ExtractBuildFeatureArchives: Instead of the URL parameter a package
    name must be specified now. This allows to simplify BuildFeatures
    significantly, since there's no dealing with URLs anymore. "if" out
    the entries that aren't supported yet.
  * build_haiku_image: For the packages installed in system and common
    resolve their dependencies and download and install them as well.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

812baf3: libsolv_build: declare missing dependency

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bd915d9: BSolver: fix build host build for gcc 2
  
  gcc 2 doesn't support the weakref attribute. Rather use the regular
  (target) method to initialize sCreateSolver instead (pthread once,
  dlopen()). Since we know that we're on Haiku, that doesn't add any
  dependencies that aren't available anyway.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a65099b: libsolv_build: fix build on gcc 2 Haiku
  
  * Fix the "UseHeaders" invocation for libsolvext to use the correct
    directory.
  * Reorder things slightly, merely for aesthetical reasons.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1faf747: Update packages binutils, gcc, add missing bepdf source package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fdf111a: libsolvext requires libz

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4dd0ed4: BSolver: fix for gcc 2
  
  Missed one #if, so sCreateSolver was never initialized.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f027320: devel packages for mandatory packages must be in system as well

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

458b56a: Also install the be_book package in system

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

627626a: GeneratedRepositoryPackageList: defeat localization
  
  Set LC_ALL=C, so "sort" produces useful results.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4174191: BPackageInfo: fix range check in c'tor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a28a0ac: BPackageInfo::_ExtractUsers(): fix no group case

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3758560: BuildSetup: remove obsolete dir variables

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

30cdb26: Add BDriverSettings to libbe_build

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ee64a0a: BRepositoryConfig::SetTo(): fix use after deallocation
  
  The strings retrieved from the driver settings were used after
  unload_driver_settings(). Use BDriverSettings which also simplifies
  things quite a bit.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bbd644b: libsolv_build: add support for building on FreeBSD
  
  Also fail immediately when an unsupported platform is encountered.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2a5d0aa: configure: set new variable HOST_SHA256
  
  sha256sum and sha256 are detected.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

46686fe: Download*File rules: add optional source target
  
  If specified the path to the source target can be used in the URL via
  "$source".

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

531a3d4: Add rule ChecksumFileSHA256

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f4e265d: Add build tool create_repository_config
  
  Given a repository base URL and a repository info, it creates a
  repository config file.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d72ce06: Adjust to changed HaikuPorts repository layout
  
  The package kit actually requires the files "repo", "repo.info",
  "repo.sha256" to be located under the repository base URL, so the
  approach to name the repository file "repo-<hash>" doesn't work.
  Now there's a directory "<hash>" which contains the files.
  
  This commit moves the computation of the hash and downloading the
  repository file from the build_haiku_image script to the jam build
  system. The repo.info is also downloaded and a repository config file
  is generated.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2afaeda: Copy repository config files to the image
  
  ... to common/settings/package-repositories. This way the used
  repositories are already known to pkgman.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3942ca0: configure: fix sha256sum/sha256 checks

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

600620e: package_daemon: create the administrative dir when mounted

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

014eed8: Change repository directory layout
  
  * Under the base URL there are supposed to be the repository files and a
    subdirectory "packages".
  * Fix the repository URL related confusion introduced earlier. The URL
  in
    the repository info (and thus in the repository file) is supposed to
    be the base URL for the repository. It is not a (potentially)
    different base URL for the package files. Package and repository
    files were supposed to live in the same directory. Now, by requiring
    the package files to live in a subdirectory -- which can also be a
    symlink -- we gain some flexibility.
    The URL in the repository config is usually the same as the in the
    repository info, unless it refers to a mirror site. This allows for
    mirrors to copy the original repository verbatim.
  * Remove the PackageURL rule and introduce a DownloadPackage rule
    instead. The URL for a package file cannot be computed in the jam
    parsing phase anymore, as it contains the hash value of the package
    list.
  * BRepositoryConfig: Add PackagesURL() for convenience.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

056e9bb: Add some more packages to the HaikuPorts repository

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e8c5236: Move image definition jamfiles to build/jam/images

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2bab285: Remove OptionLibPackages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7418499: Remove more optional package related left-overs

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

db11a11: Move common image building code to HaikuImageCommon

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7aa46ed: Move common image building code to HaikuImageCommon

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

78f4c16: Beginnings of support for building a bootstrap Haiku image
  
  Copy:
  * packages: Haiku -> HaikuBootstrap
  * images: HaikuImage -> HaikuImageBootstrap
  ... and remove some unncessary content.
  
  Setting the jam variable HAIKU_BOOTSTRAP_BUILD enables using the
  bootstrap files.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ec945b7: ReleaseBuildProfiles -> Default*, add bootstrap profiles

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c01380b: Move package info pre-processing to jam build system
  
  Also, pre-process all package infos (not only the generic ones) and
  define the macro HAIKU_BOOTSTRAP_BUILD, if building a package for a
  bootstrap image.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2f3dc94: haiku package info: drop some requires in bootstrap mode

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7e78b43: Merge remote-tracking branch 'haiku/master' into package-management
  
  Conflicts:
        build/jam/HaikuImage
        build/jam/OptionalPackageDependencies
        build/jam/OptionalPackages
        build/scripts/build_cross_tools_gcc4
        src/add-ons/translators/icns/Jamfile
        src/add-ons/translators/jpeg/Jamfile

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0361a1d: Debugger: ElfFile::_CheckRange(): fix check

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

276c321: BPackageInfo::Parser::_ParseFlags(): fix indentation

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0e9ec70: package info parser: improve string parsing
  
  * Instead of two string token types (TOKEN_WORD, TOKEN_QUOTED_STRING),
    there's now only one (TOKEN_STRING). Whether the string meets the
    criteria is checked where needed. In most cases the check was already
    done or not necessary anyway.
  * Strings can now consist of an arbitrary sequence of quoted and
    unquoted strings and escaping is also supported in unquoted string
    segments.
  * Among other things this fixes incorrect restrictions for resolvable
    names and should also make quoting paths superfluous (unless they
    contain separator characters).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f20d944: Update packages grep, ncurses, sed, tar

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3e58289: DownloadLocatedFile: fix use with older wget version
  
  The option "--no-use-server-timestamps" is apparently newer than
  Haiku's wget.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4387d6b: Merge remote-tracking branch 'remotes/haiku/master' into 
package-management

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

38f0787: rule AddRepositoryPackages: add debugInfoPackage parameter
  
  It works just like the sourcePackages parameter.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

916e7e7: Add debug info packages to HaikuPorts repository

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ed156ea: package[_repo] list: reduce code duplication
  
  Introduce helper class PackageInfoPrinter that does the printing and is
  used by both commands.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4e6141b: package list: add option '-i' to list only the meta info

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4ce282c: package list: also support package info files

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

03d70b4: Add package architecture constant for x86-64

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ebb8576: Update bootstrap image/package
  
  Should have been part of the recent merge.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

983aba2: Adjust configure script to new version of legacy compiler.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

579f1db: _G_config.h: don't include <cstddef>
  
  <stddef.h> is just fine and it doesn't break the use of libroot headers
  when compiling something with -nostdinc++ (in C++ mode).
  Not particularly important, but this gets compiling the libio C++ stuff
  when building a native gcc a bit further. It still fails, since our
  <printf.h> header is actually not usable (it includes <features.h>,
  which is not available in Haiku) -- something we should fix eventually.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

111204e: build_cross_tools: make the cross compiler more reuse friendly

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4ddd7f8: Make public glibc header printf.h usable.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

21b3820: Add libbsd to cross devel package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fc8967f: Determine HAIKU_CPU and HAIKU_PACKAGING_ARCH in configure
  
  ... instead of in BuildSetup.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

67e8400: rule ExtractBuildFeatureArchives: implement placeholders
  
  Add support for placeholders in the attribute values. The values of the
  currently supported placeholders depend on the package file name
  (package version, actual package and port name, etc.).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d1fe5b9: BuildFeature: get rid of hard-coded package versions
  
  ... using the new placeholder feature of ExtractBuildFeatureArchives.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b9eec51: Include DefaultBuildProfiles earlier
  
  DefaultBuildProfiles is now included earlier (right after BuildSetup).
  This allows us to set HAIKU_BOOTSTRAP_BUILD earlier, so it can be used
  for the repository selection. The actual build profile definitions,
  which cannot be done that early, live in the rule
  DefineDefaultBuildProfiles, which is invoked where the file was
  previously included.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

33f23ea: Remove more stuff from the Haiku bootstrap packages/image
  
  Namely GL/Mesa and libtiff.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e173a1e: Integrate building the HaikuPorts bootstrap packages
  
  * Add configure option --bootstrap which allows specifying the
    haikuporter and HaikuPorts repository paths.
  * Add rules for supporting a second repository type. The
    PackageRepository rule is now private and RemotePackageRepository is
    used for remote repositories. The new BootstrapPackageRepository rule
    is for defining a bootstrap repository (there will probably be only
    the HaikuPorts cross repository) whose packages can be built as needed
    via haikuporter.
  * Rename DownloadPackage to FetchPackage.
  * Define repository HaikuPortsCross.
  * HaikuCrossDevel package(s): There are now two sets of packages: A
    "stage1" set with the same content as before and a final set
    additionally containing the libraries libbe, libnetwork, libpackage.
    Those are needed for building the libsolv bootstrap package while for
    building them we need other bootstrap packages (ICU, libz).
  
  This is basically all that's required to build a bootstrap Haiku
  completely from sources, with a few caveats:
  * There's no ICU bootstrap recipe yet (so one has to cheat and use the
    prebuilt package ATM).
  * Probably doesn't work on Haiku yet (tested on Linux only).
  * A 32 bit environment must be used (otherwise building the gcc 2
    bootstrap package fails).
  * Building with multiple jobs doesn't work yet, since haikuporter uses
    common directories for building different packages and there's no
    explicit serialization yet.
  * Haven't tested the resulting image save for booting it. So it probably
    needs a bit more work before it can actually build the final
    HaikuPorts packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a7ab22a: HaikuPortsCross repository: icu_bootstrap is now available

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7b2174a: BootstrapPackageRepository: serialize package creation
  
  Since haikuporter uses a common directory for building the ports, we
  can't build them concurrently. This makes jamming with multiple jobs
  safe again.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

26b0aa1: HaikuPortsCross repository: fix binutils, gcc revision mismatch
  
  I don't think it makes that much sense to increment the revisions in
  the cross recipes anyway, since there isn't any actual package
  repository.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

81bd962: Add haikuporter and python to Haiku bootstrap image

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

48b1ed4: Add all bootstrap packages in DefaultBuildProfiles
  
  * Don't handle the bootstrap case in the main Jamfile. Add all bootstrap
    packages to the image in the profile definition. That's less
    confusing, hopefully.
  * Add the missing bootstrap packages (ncurses*, libtool_libltdl). The
    would normally be added in build_haiku_image when the package
    dependencies are resolved, but we don't do that for the bootstrap
    image, since we intentionally leave some dependencies out (e.g. perl)
    because they can be built.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5bb173c: Add STXT-translator to the bootstrap image
  
  * without this, StyledEdit wouldn't work

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

e2732c0: Fix 'package extract' with multiple explicit entries
  
  * before adding a child to a parent entry, we need to check if the
    parent already contains that child, as otherwise duplicate children 
    with identical names would be added, which in turn messes up the
    handling of the entries that are to be extracted

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

ef57df3: configure: remove BeOS support
  
  Likely doesn't work anymore anyway.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c0e8cc1: configure: prepare for hybrid support
  
  The goal is to do hybrid builds in a single jam (instead of calling a
  sub-jam to build parts with the secondary tool chain). This changeset
  adds support to configure to prepare multiple tool chains.
  
  configure:
  * Merge option --build-cross-tools-gcc4 into --build-cross-tools. The
    option does now always require a packaging architecture parameter,
    i.e. x86_gcc2 for the legacy tool chain.
  * Multiple occurrences of the --build-cross-tools and
    --cross-tools-prefix options are allowed. The first one specifies the
    primary tool chain, the subsequent ones the secondary tool chains.
  * All architecture dependent jam variables are now suffixed with the
    name of the packaging architecture. The new HAIKU_PACKAGING_ARCHS
    contains the packaging architectures for the prepared tool chains. The
    first element is for the primary tool chain.
  * No longer generate a separate libgccObjects file. Just put the
    respective variable into BuildConfig as well.
  
  build_cross_tools[_gcc4]:
  * Replace the <haiku output dir> parameter by a <install dir>
    parameter. This allows to create different cross-tools directories.
    They are simply suffixed by the packaging architecture.
  
  Jamrules:
  * For the moment map the variables for the primary tool chain to the
    respective suffix-less variables, so that everything still works as
    before.
  
  The next step is to actually support the secondary tool chains in the
  jam build system. This will require quite a bit more butchering, though.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0c59a38: Drop debug leftover.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

13dc541: libroot: os/arch: remove unsupported architectures

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

30f0d45: Remove unused Haiku64Image

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

159663c: Remove no longer needed HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b0944c7: More work towards hybrid support
  
  * All packaging architecture dependent variables do now have a
    respective suffix and are set up for each configured packaging
    architecture, save for the kernel and boot loader variables, which
    are still only set up for the primary architecture.
    For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
    and TARGET_LIBSTDC++ are set to the respective values for the primary
    packaging architecture by default.
  * Introduce a set of MultiArch* rules to help with building targets for
    multiple packaging architectures. Generally the respective targets are
    (additionally) gristed with the packaging architecture. For libraries
    the additional grist is usually omitted for the primary architecture
    (e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
    Jamfiles for targets built only for the primary architecture don't
    need to be changed.
  * Add multi-arch build support for all targets needed for the stage 1
    cross devel package as well as for libbe (untested).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

833b668: cross devel hpkg: use suffix/subdir for secondary arch
  
  * Libraries for a secondary architectures must be placed in a respective
    subdir.
  * Add a suffix to the package name when building for a secondary
    architecture. Looks a bit weird
    ("haiku_cross_devel_sysroot_x86_gcc_x86.hpkg"), but is consistent.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f975dc6: build_cross_tools_gcc4: move sysroot dir into install dir
  
  This allows us to sneak in system include and library search dirs in
  haikuporter without doing anything outside the cross tools dir.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

68ccc98: Build the cross gcc for the secondary arch as such
  
  Pass --enable-hybrid-secondary to gcc's configure when building it as
  a secondary compiler. Doesn't make a difference for building Haiku
  itself, but makes it easier to match the Haiku cross devel package with
  the compiler when building bootstrap packages with haikuporter.
  
  gcc 4 only ATM.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f30881d: Replace makeinfo_bootstrap with texinfo_bootstrap.
  
  * using texinfo_bootstrap has the advantage of allowing implicit
    mapping between _bootstrap packages and the corresponding 
    non-bootstrap packages

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

d31a50e: Move build feature rules to separate file

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5719016: Fix usage of obsolete HAIKU_BUILD_FEATURE_OPENSSL_ENABLED

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

de799f7: MultiArch* rule: support optional architecture parameter

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f7d5e4c: ArchitectureSetup: fix library map for secondary arch
  
  The libraries where resolved to the library targets for the primary
  architecture.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a36a166: MergedDirectory: missing include

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7bd562a: lib{network,package,shared,agg,icon}: secondary arch support

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

93cfb72: build features/bootstrap repo: support secondary arch
  
  * Add rule FSplitPackageName. It splits a package name into port name
    and package suffix.
  * FSetConditionsHold: Rename to FConditionsHold and replace the set
    parameter by a predicate rule parameter, thus adding more flexibility.
  * FIsBuildFeatureEnabled: Use the faster check.
  * Add rule FQualifiedBuildFeatureName. Given a build feature name, it
    prepends the current packaging architecture to yield a qualified
    feature name. Is used by the other build feature rules so that the
    same build feature can be configured differently for each arch.
  * ExtractBuildFeatureArchives: The supplied list is now filtered via
    FFilterByBuildFeatures, allowing for build feature conditions in the
    list.
  * Add rule InitArchitectureBuildFeatures. It is called early for each
    configured architecture, setting up some basic build features for it.
    "primary" is set for the primary architecture and a "secondary_<arch>"
    is set for each secondary architecture.
  * BuildFeatures: Add secondary architecture support: Use the correct
    paths for libraries and headers (subdir for secondary architecture)
    and configure the icu and zlib sources only for the primary
    architecture.
  * BootstrapPackageRepository: The package lists are now filtered via
    FFilterByBuildFeatures, allowing for build feature conditions in the
    lists.
  * IsPackageAvailable, FetchPackage: Add secondary architecture support.
  * HaikuPortsCross/x86_gcc2: Add icu and zlib x86 secondary packages.
  
  The second stage Haiku cross devel package for the secondary
  architecture can now be built.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b2b6052: ArchitectureSetup: fix library name map
  
  It's too early to use the MultiArch* rules yet, since the TARGET_*
  variables haven't been initialized yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0b171ae: Fix two problems when building without secondary architecture.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

d20975d: Fix negated predicate relating to input_server.
  
  * without a secondary arch, jam would complain about not knowing how
    to build <x86_gcc>input_server

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

69c69a7: Replace build system vars [PRIVATE_]SYSTEM_LIBS by rules
  
  ... HaikuImageGetSystemLibs and HaikuImageGetPrivateSystemLibs.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e9a0ad7: Remove SYSTEM_LIBS*_ALIASES build variables

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

779b940: PreprocessPackageInfo: define macro for secondary architecture

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c591ff1: Support building libpackage-add-on-libsolv.so for secondary arch

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8a2643d: libtracker: VirtualDirectoryManager::_RemoveDirectory(): typo
  
  Should have caused infinite recursion when the directory still had
  children.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

040a814: Add node_ref::operator <
  
  Moved from VirtualDirectoryManager. Defining the operator static doesn't
  work with gcc 4 and it's useful to have globally available anyway.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

225b638: Support building most system libraries for secondary arch
  
  Also adjust the HaikuImageGet[Private]SystemLibs rules to support to
  return the library targets matching the current architecture.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

db16bcb: Add package definition HaikuSecondaryBootstrap
  
  A haiku_<arch>.hpkg package is produced for each secondary architecture.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

85eed25: AddHaikuImagePackages/IsHaikuImagePackageAdded: 2ndary arch fix
  
  For the secondary architecture the same specified package name means a
  different package, so we need to use the mapped name IsPackageAvailable
  returns.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2f2f436: package info haiku_secondary: fix description
  
  Using the C preprocessor doesn't work particularly well. The
  replacements are rather unhandy.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

096c687: HaikuDevel: a few simplifications

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b4d3e05: Add HaikuDevelSecondary package definition
  
  It defines the haiku devel package for a secondary architecture
  (haiku_<arch>_devel.hpkg).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cade865: Add secondary arch haiku [devel] packages to image

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d125147: Add the missing secondary arch bootstrap packages
  
  The Haiku bootstrap image is now built with (hopefully) all required
  primary and secondary architecture packages. The runtime loader is still
  resisting our wish to run secondary architecture programs, though.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bddca41: runtime loader: fix secondary arch search paths

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3842301: Filter package infos through sed
  
  %HAIKU_PACKAGING_ARCH% and %HAIKU_SECONDARY_PACKAGING_ARCH% in the
  package infos are replaced before filtering them through the C
  preprocessor.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c965ee6: bootstrap image: build needed source packages and add them
  
  * IsPackageAvailable, FetchPackage: Add flags parameter. The only
    flag supported ATM is nameResolved, indicating that the specified
    package name does not need to be resolved with respect to a secondary
    architecture anymore.
  * Add build profile action "build-package-list". As an argument the
    file to which the list of all packages needed for the image is
    written. The rule BuildHaikuImagePackageList implements the action.
  * BuildBootstrapRepositoryConfig: Does now require the variable
    HAIKU_REPOSITORY_TREE_PATH to be set on the config file target instead
    of hard-coding the path. Allows reuse of the actions.
  * Add rules BuildHaikuPortsSourcePackageDirectory and
    BuildHaikuPortsRepositoryConfig. The former builds all HaikuPorts
    source packages needed to build the packages for an alpha image. The
    latter generates a haikuports.conf file for use on the bootstrap
    Haiku.
  * HaikuImageBootstrap: Add directory /boot/home/haikuports which
    contains a subdirectory with the source packages and a
    haikuports.conf.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0097966: haiku_devel_secondary package info: fix provides

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

394c099: build_cross_tools_gcc4: use --with-hybrid-secondary

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f81fbb0: Adjust to renamed option of haikuporter.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

47fd9e6: rule AddLibrariesToContainer: fix for gristed libraries

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f51bf7d: Support building more libraries for secondary architecture

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

393c223: HaikuPorts/x86_gcc2: add x86 packages, add/update packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

271e948: Build secondary architecture Haiku package for regular image
  
  Also add secondary architecture packages to image.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a94f6aa: Image rules: filter packages list via FFilterByBuildFeatures
  
  AddPackageFilesToHaikuImage, AddHaikuImagePackages: For convenience
  filter the given package file/package list through
  FFilterByBuildFeatures.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

00b8bfd: EnableBuildFeatures: deal with duplicate invocations

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dd0bd44: BuildFeatures: print the packaging arch in error messages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

39f7d00: HaikuPorts/x86_gcc2: add haikuwebkit and xz_utils

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4f57a2b: DefineDefaultBuildProfiles: simplify things a bit

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2910d9a: PreprocessPackageInfo: add substitution
  
  ... HAIKU_SECONDARY_PACKAGING_ARCH_SUFFIX. It's "_<arch>" for a
  secondary architecture and "" for the primary one.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1c9bc20: BuildFeatures: re-add webkit build feature

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

555b02d: Add webpositive package to image

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b57470a: Remove setgcc

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

483b28e: Add option --target-arch
  
  On Haiku it allows to specify the target architecture to build for
  using one of the installed native compilers.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4e822fe: HaikuPorts/x86_gcc2: Update gcc and binutils
  
  Also add secondary architecture packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f56958c: Add development packages for the secondary architecture

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4c6b3ef: Increase size of bootstrap image to 4 GB.
  
  * 1 GB isn't enough to build the basic set

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

3ea3725: haiku_devel* package infos: add compat version and base package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7ff288e: packagefs: fix dependency resolution without compat version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

623331e: packages: PackageFSRoot: fix, improve, add debug output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b8ab901: packagefs: replace ':' with '~' in the package link names
  
  Otherwise paths containing those symlinks cannot be used in colon
  separated search path lists.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

86233b1: HaikuPorts: update several packages
  
  ... and add some missing devel packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

998ef89: package daemon: Volume: fix package removal after transaction
  
  Volume::_ChangePackageActivation(): Refactoring oversight:
  fPackagesToBeDeactivated was still used instead of the
  packagesToDeactivate parameter, so the packages wouldn't be removed from
  the hash tables when invoked from the CommitTransactionHandler. Fixes
  #9921.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

37cfff1: build_haiku_image: filter duplicate packages
  
  Resolving the package dependencies for system might yield packages that
  are already given for common. Filter those out of the list for common
  before resolving the common dependencies.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ce76b7e: Fix strrchr()
  
  * For the comparison cast the character parameter to char as required
    by the spec.
  * Fix broken handling of strrchr(..., 0). It is supposed to return a
    pointer to the end of the string. It did return a pointer to the
    start.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9a19dcd: pkgman search: '-i' option wasn't handled

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f73d05a: HaikuPorts/x86_gcc2: Update git packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

64264fa: Use Objects instead of KernelObjects
  
  Should we actually require differently built glue code for the kernel or
  kernel add-ons, which should build a separate set.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

13f2fbb: Add build variable HAIKU_PORTER_CONCURRENT_JOBS
  
  It can be set to the number of jobs specified on the haikuporter
  command line. Speeds up the bootstrap build quite a bit.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2479671: Bootstrap Haiku image: add source for more required packages
  
  * Introduce build variable HAIKU_IMAGE_ADDITIONAL_PACKAGES which can be
    set to add additional packages to the image.
  * Use HAIKU_IMAGE_ADDITIONAL_PACKAGES to support specifying a list of
    additional packages via the build-package-list build profile action.
  * Add htmldoc and texi2html when building the list of the packages for
    which we need source packages when building the bootstrap Haiku image.
    We don't want them on the regular image, but they are needed to build
    some packages that are on it.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

77b9f01: Add a few standard build tools to the Development meta package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

418071b: MIME DB support: avoid static initialization order issue

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

145189e: packagfs: fix header order

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f6e836d: packagefs: PackageNode: fix protection issue
  
  Only gcc 2 allows us to use a pointer to a protected method as a
  template argument.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

536ff12: pkgman: missing include

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

464ee61: pkgman: link against needed libstdc++

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

987d25a: build_cross_tools: use --with-hybrid-secondary when needed

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4ddd2c7: Don't try to build xz_utils for a mere gcc2 system.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

a510155: packagefs: PackageFSRoot: fix variable redeclaration

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b35337e: Add repositories for x86
  
  Almost complete. bepdf is still missing, since it doesn't build with gcc
  4 and a few source packages are missing as well (binutils and gcc
  because haikuporter doesn't build them correctly ATM, mesa due to an
  oversight).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cc91b33: configure: update required legacy compiler version

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5657c5e: Fix #9928: broken printf specifiers "%La" and "%LA"
  
  * fix unitialized variables in __printf_fphex() in case of architectures
    without support for long double - this triggered unreliable results
    or crashes when using %La or %La on x86
  * activate long double implementation in use for x86_64 for x86, too,
    as they share the long double format
  (cherry picked from commit d1716b277cbaf2b4265728d559b819d73330c1ef)

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

86de8c3: Use GNU make also for building gcc 2
  
  Should fix the build on {Free,Open}BSD.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

648a97f: HaikuPortsCross: update gcc package versions

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

82655a5: HaikuPorts/x86[_gcc2]: update gcc packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

abf4b0f: HaikuPorts/x86: add some missing source packages

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f5821a1: Set file type of Tracker New templates correctly
  
  Fixes #9927.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ab9a117: package kit: JobQueue::Pop() fix invalid iterator access

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c33daf2: package kit: fix JobQueue::_RemoveDependantJobsOf()
  
  * Delete the right job (the removed dependant job).
  * Sever the depencency link between the jobs or the next iteration of
    the loop would process the same job again.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

03191ec: pkgman: make JobStateListener a bit more flexible
  
  Flags can be passed to the constructor to specify whether to exit() when
  a job failed/was aborted.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8f9efca: pkgman: PackageManager: no longer auto-exit() when a job fails
  
  This way search and uninstall no longer fail when there's no connection
  to the internet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0214aef: pkgman search: add -a/--all
  
  Can be specified instead of a search string. Lists all packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e64db4d: Also mount the packagefs at ~/config

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f118c41: pkgman [un]install: fix option '-H'

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c4ce29a: pkgman search: enable search in ~/config

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8b26ef6: pkgman: PackageManager: Use flags instead of bools in ctor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

ce4f367: pkgman: auto-refresh repositories only for update/install

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a1e6816: Rework rule CopySetHaikuRevision
  
  * Remove support for VCSs other than git.
  * Make the haiku-revision file a regular build target and make sure it
    is built only once.
  * Make determine_haiku_revision an actual shell script and simplify
    it a bit.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

1af1494: Add missing case for x86_64 as host CPU architecture.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

eb65869: Add definitions for x86_64 repositories and package infos.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

af0200d: Fix build problem in glue code for x86_64.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

be3833c: BString: Add SetToFormatVarArgs()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

39d0e79: copyattr: Fix error output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

48e17c1: BPackageResolvableExpression: Add Matches()
  
  Checks if the given BPackageResolvable respectively the BPackageVersion
  pair satisfies the expression.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bc0491a: BPackageInfo: Add Matches()
  
  Checks whether the package satisfies the given
  BPackageResolvableExpression.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

617be97: Add private storage kit class BCopyEngine
  
  It provides the functionality to copy file system entries (also
  recursively). The code originates from the copyattr sources. Some
  copyattr specific functionality has been removed and the code has been
  adjusted for library use (i.e. no exit()s or fprintf()s). An optional
  controller object can be set to customize the behavior.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

90f9f13: pkgman install: Add base package support
  
  If any of the packages to install has requires a base package, that is
  installed in a more general installation location, we copy the package
  to the target installation location. Ideally we'd hard-link, but BFS
  doesn't support that. Symlinks would be a small nightmare to maintain.
  
  We might want to choose the installation location intelligently
  depending on the base package requirement -- e.g. install curl_devel in
  system rather than common, since curl is installed in system -- so we
  can avoid duplicating packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3db97b7: Enable -Werror for package_repo and pkgman

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

106d401: rule ArchitectureSetup: Remove superfluous arch macro definition
  
  The macro for the architecture is already defined by the compiler.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

86297ca: actions DownloadLocatedFile: fail, if wget fails

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9269362: package daemon: DebugSupport.h: fix (64 bit) printf() formats

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2ada08d: LibsolvSolver: Automatic whitespace cleanup

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

682bf41: BSolverRepository: make polymorphic

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

220b5e1: BSolverRepository: Add {Remove,Delete}Package()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

75d15eb: BSolver: Extend FindPackages() functionality
  
  * Add flag B_FIND_INSTALLED_ONLY to only return installed packages.
  * Add FindPackages() version that finds packages like Install() or
    Uninstall() do.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

89cb001: BSolver::VerifyInstallation(): Add flags parameter
  
  Only flag ATM is B_VERIFY_ALLOW_UNINSTALL. It tells to solver to suggest
  uninstalling packages when necessary instead of considering such a case
  a problem.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3381a1b: pkgman uninstall: improve correctness
  
  ... with respect to inter-installation-location dependencies. E.g.
  uninstalling a package from common should only uninstall packages
  depending on it, when system doesn't still provide those dependencies.
  
  We don't consider uninstalling packages from more specific installation
  locations when dependencies are uninstalled from a more general one yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

03aa965: Move UsePrivateSystemHeaders into arch-specific block.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

7104695: Fix build of pkgman on x86_64 by use of B_PRI... define.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

1e6177c: Fix broken build of package kit (due to warnings) for x86_64.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

d1246f3: Drop use of non-existing variable in KernelAddon rule.
  
  * TARGET_KERNEL_PIC_FLAGS was probably meant to be 
    TARGET_KERNEL_PIC_CCFLAGS at the time this had been added in 2005.
    As correcting the name would mean that kernel add-ons would be 
    compiled such that they wouldn't be position independent, dropping
    the variable makes more sense (which is just a cleanup and doesn't 
    change anything due to that variable being always empty)

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

c5c787e: Fix build problems of btrfs and packagefs for x86_64.
  
  * Both filesystems used to link to a static kernel-zlib, which 
    was being built with -fno-pic. This doesn't work on x86_64 as the 
    filesystem add-ons are meant to be relocatable, which requires their 
    code to be compiled as position independent.
    Solve that by moving zlib into the kernel, so any add-on can just use
    it from there (packagefs is mandatory, so we can't really do without 
    zlib anyway).

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

c92aabd: Fix build of pkgman with gcc2.
  
  * I have no idea why, but gcc2 considers BSolverRepository* and
    PackageManager::InstalledRepository* as distinct pointer types, which
    it doesn't like to compare without a cast. Circumvent by static 
    casting to BSolverRepository*.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

a54a50b: pkgman: add support for [un]installing/updating in system

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7af664c: LibsolvSolver: change handling of fInstalledRepository
  
  We update/set it in _AddRepositories() instead of in AddRepository(). In
  code needing it earlier _InstalledRepository() can be used.
  
  This change allows calling to SetInstalled() on a repository that has
  already been added to the solver.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

08fb013: pkgman uninstall: Verify more specific locations
  
  ... after having determined the packages to remove from the selected
  installation location. This uninstalls packages from the more specific
  locations when their dependencies have been removed.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6692db5: BPackageInfo: Add fileName property
  
  The property is archived and unarchived, but otherwise not yet stored.
  If not set, FileName() returns CanonicalFileName(). Can be used for
  packages like haiku.hpkg etc. that don't have a properly qualified file
  name (yet).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dda51ad: package daemon: Package: Set the package info file name

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a0cb235: pkgman: Use BPackageInfo::FileName() instead of Canonical*()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

83462cc: Refactor reusable pkgman code into libpackage
  
  * Move RepositoryBuilder class to libpackage and add B* prefix to name.
  * Pull BPackageManager class out of PackageManager and move to
    libpackage. The base class is customizable via three handler objects
    responsible for transaction handling, request execution, respectively
    user interaction.
  * Reorganize _ApplyPackageChanges(): Now we first prepare the
    transactions for all affected installation locations (downloading
    files etc.) and then commit them.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0cb3f70: Revert "Fix build problems of btrfs and packagefs for x86_64."
  
  This reverts commit f272e63f393449d3a816970ca632764895a78cd6.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

64c4bd1: 2nd attempt at fixing build of btrfs and packagefs.
  
  * adding zlib to the kernel unfortunately introduces a cyclic dependency
    with respect to the zlib, haiku and haiku_devel packages (AFAICS)
  * circumvent this by building kernel_zlib as a static library again,
    this time with PIC, such that it can be used by kernel add-ons

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

fb99605: Handle rigged source packages when determining port name.
  
  * I'm not sure this makes much of a difference, but I thought it's 
    better to play it safe.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

818ed1e: Remove blocks for secondary packages for x86_64.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

a84cf45: Add missing search path for <build>package_repo.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

797c1a7: Update x64_64 to current state of things.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

a4b13ed: Increase size of bootstrap image to 20 GB.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

c138f1f: BRepositoryBuilder: Add constructor for pre-init'ed repository

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cf3bb0d: BPackageManager: Abstract installed repository initialization
  
  * Rename TransactionHandler -> InstallationInterface and
    DaemonClientTransactionHandler -> ClientInstallationInterface.
  * Add InstallationInterface::InitInstalledRepository(). Use in
    _AddInstalledRepository() to get the repository packages instead of
    using the package roster. The ClientInstallationInterface
    implementation does it that way.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

43bd5a4: <package/Request.h>: Don't leak JobQueue into public namespace

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

a87c7d6: Don't use BPackageKit::BPrivate; avoids clashes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

18f5cd1: Explicitly denote BPrivate to avoid clashes

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

46d77ed: package daemon: Delay handling node monitor events to group them

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

94dc74b: More explicit denoting the BPrivate namespace

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9b2fd34: Add BSolverPackageSpecifierList::AppendSpecifiers()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d4f9c46: BDaemonClient: add comment

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

56b1376: BActivationTransaction: Make BArchivable

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5a5d146: BPackageManager: Make _InstallationRepository() protected

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7e0d2c4: BPackageManager: Add alternate Install()/Uninstall()/Update()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c032903: BPackageManager: Add VerifyInstallation()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

018173a: BPackageManager: Add ResultComputed() callback

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3620402: BPackageManager: Add InstalledRepository::EnablePackage()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

d3c96ad: BPackageManager: Support pre-added packages
  
  ... as needed for the package daemon. _PreparePackageChanges() doesn't
  try to clone them in this case.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

99f9333: BPackageManager::_CommitPackageChanges(): Fix error handling
  
  The error returned by CommitTransaction() is just indicates whether
  transactionResult has been initialized.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

383ac67: package daemon: Let Root know whether it is the system root

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

38c62df: package daemon: Implement dependency resolution support
  
  ... for package changes performed manually by the user (i.e.
  adding/removing files in a packages directory). Currently only done for
  the system root. Alternative roots should still work as before, so this
  shouldn't affect haikuporter (not tested yet).
  
  Needs some more work (e.g. the GUI part).

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

406ad5b: BString::SetToFormat(): Add printf format function attribute

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b1c3379: _user_debug_output(): Fix for long strings
  
  The wrong length was passed to debug_puts().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4a8da96: BLayoutUtils: Add GetLayoutTreeDump()
  
  Returns a debug output string listing the basic layout properties of
  the view/item hierarchy.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5c56812: BControlLook::ComposeSpacing(): Avoid non-integers

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

88f12ad: Add private BViewPort class
  
  * It simplifies putting regular layout-aware views or layout items into
    a BScrollView.
  * Not quite complete yet: Height-for-width support is missing, but that
    also requires fixing BScrollView in this respect. Scroll bar auto-hide
    support would be nice as well.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b53a2e6: package daemon: ProblemWindow: Use a scroll view

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c159d0c: BActivationTransaction: Fix unarchiving constructor

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9f12d25: package daemon: ProblemWindow: Simplify getting the font height

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f2cba19: package daemon: ProblemWindow: Fix message constant types

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6c88312: package daemon: Replace changes alert by a window

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b3eaedd: Add missing packages for x86_64 to repository.
  
  * the Pe package doesn't work (Pe won't start), I'm still
    investigating as to why that is

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

dee358f: AddBootModuleSymlinksToContainer: Fix symlink target
  
  The symlink was only correct, if the container was a package. For
  containers with a non-empty path to the system directory the link would
  duplicate the system directory path.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

b0d7a45: FloppyBootImage: Add packagefs

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

3465e71: boot tarfs: Support resolving "." and ".." directory entries
  
  This makes resolving the boot module symlinks work.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cc0838d: VFS boot: Mount packagefs when booting off an image
  
  ... and the mounted boot volume looks like a PM Haiku. This gets the CD
  boot going.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

76cd5b0: Move stuff from HaikuImageCommon to new rule
  
  ... AddPackagesAndRepositoryVariablesToContainerScript.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

f11d742: HaikuCD: Support package resolution

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

cf70d34: Merge remote-tracking branch 'haiku/master' into package-management
  
  This reverts 8f7f28a7c3db28711920ad5d15df401fae90bcf1 (OpenGL: Upgrade
  to
  Mesa 9.2).
  
  Conflicts:
        build/jam/BuildFeatures
        build/jam/HaikuImage
        build/jam/OptionalPackages
        build/scripts/build_cross_tools_gcc4
        src/add-ons/opengl/swpipe/Jamfile
        src/apps/diskusage/Jamfile
        src/kits/tracker/ContainerWindow.cpp
        src/kits/tracker/DeskWindow.cpp
        src/kits/tracker/Jamfile

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c911075: Drop debug output.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

689cebd: Add version of Pe working on x86_64

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

8f3f0ee: Added next version of Pe for x86_64.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

af8587c: Added new jam command 'build-remote-repository'.
  
  * build-remote-repository <packages> uploads the given set of packages
    to the server and builds the remote repository

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

33dc65c: package daemon: Ignore only entry events of packages to remove

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0af009d: package daemon: Fix use of destroyed objects
  
  Fixes #9957.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

278f66b: x86[_64]: Enable NX on non-boot CPUs as soon as possible

                                    [ Pawel Dziepak <pdziepak@xxxxxxxxxxx> ]

1a6ebaa: Update translations from Pootle

                          [ Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx> ]

28390f6: ext2: access the parent variable once checked it's non null
  
  * cleanup
  * add some inode flags we don't use

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

a933ad6: virtio_net: initial skeleton driver.

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

5594217: Fix accidentally truncated addresses in call frame unwind.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

672b260: ARM: kernel: Fix compilation issue with new gas.
  
  Turns out the new gas does not like spaces :(

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

1ea8fd5: Debugger: Add missing std::nothrow.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

5077cb0: Debugger: add Inspect context item to Registers view.
  
  - Allows one to treat the value of a register as a memory
    address and jump directly to inspecting said address.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

eb86163: virtio_net: add feature labels.

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

28cf626: virtio_net: allocate queues, read macaddress, handle ioctl.

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

5a2c582: add a constant for 10G base T ethernet.

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

acd58c2: ARM: boot: Make dd on MacOS happy
  
  Turns out dd on MacOS does not like '1M' as size descriptor, but
  wants '1m'. To prevent us breaking Linux builds (as it does not
  accept 1m), just use the actual number of bytes explicitely instead.

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

a7e9ce6: Use uname -s instead of uname -o
  
  ...since BSD uname (on OS X at least) doesn't have a -o param, only a -s,
  Haiku has both, and both print "Haiku".

                                     [ John Scipione <jscipione@xxxxxxxxx> ]

736c1f8: Localize bitsinfo
  
  Closes ticket #7162.
  Signed-off-by: Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx>

                               [ Jorma Karvonen <karvonen.jorma@xxxxxxxxx> ]

cae234a: Localize bmpinfo
  
  Closes ticket #7164
  Signed-off-by: Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx>

                               [ Jorma Karvonen <karvonen.jorma@xxxxxxxxx> ]

6a66acd: Localize tgainfo
  
  Closes ticket #7168
  Signed-off-by: Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx>

                               [ Jorma Karvonen <karvonen.jorma@xxxxxxxxx> ]

89f89a0: ARM: boot: pass boot disk identifier
  
  This to stop the vfs_boot.cpp code from complaining.

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

b9e8ec7: debugger/debuganalyzer: Remove the explicit -Werror from Jamfile
  
  Specifying -Werror in the Jamfiles directly prevents the build
  system from disabling error-on-warning for some arch specific
  warnings (or even globally), breaking the ARM build.
  
  The "src/apps" directory is already setup to compile with -Werror
  by the build system anyway, so remove the explicit setting here.

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

0fa2d68: ARM: stub out missing int64 atomic functions
  
  Also, add an item to the TODO list for this. Really need to figure it out 
soon...

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

ae4ad70: ARM: stub out makebootable so we can build a full haiku-image

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

38bd76a: u-boot: make sure host makebootable builds too
  
  Somehow missed these few lines in my last commit.

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

ed6722a: norflash: Add hack to hide start of NOR flash
  
  This is a workaround for hiding U-Boot that is stored in the first 2
  128k blocks, so we can put a BFS image into NOR to boot from (since
  we do not have support for SD/MMC yet in Haiku).
  
  When manually putting a BFS filesystem at block 3 we actually get
  right up to the point where BootScript is attempted to be executed!

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

5308f23: usb_disk: returns B_DEV_NOT_READY for SCSI_SENSE_KEY_NOT_READY
  
  ...instead of B_DEV_NO_MEDIA. The latter seems to imply we stop testing
  the unit is ready in usb_disk_device_added().
  Based on a patch provided by markh in #9589.

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

92ab471: ntfs: make sure our confidence is higher then the intel partition 
add-on
  
  This as the intel partition addon just does a very weak test, and the
  NTFS test is much safer. This prevents NTFS filesystems that have a
  valid boot sector signature but no partition table, from being
  picked up by the intel partition table add-on instead of the ntfs
  add-on.
  
  Patch provided by markh, thanks!

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

dc377ab: beos_mime: add sniffer rule for .mp3 files
  
  Patch from markh (ticket #9790), thanks!

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

c75ca47: dpc: fix comments spelling.

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

02cac49: Debugger: Implement #9960.
  
  - DebugReportGenerator now retrieves and dumps disassembly for the crashing
    function up to the crashing line.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

779d821: HaikuDepot: Use PackageInfoRefs instead of PackageInfos
  
   Instead of storing PackageInfo objects directly in the
   PackageLists, store PackageInfoRefs instead. This makes a
   lot of operations much cheaper, and it also allows making
   changes to a PackageInfo (which now exists only once)
   and have those changes reflect everywhere. In particular,
   it will be easier to populate some information of the
   PackageInfo lazily, and to listen for changes on a
   PackageInfo object.

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

9202a71: HaikuDepot: Add interface for PackageInfoListener.
  
   Also defines PackageInfoEvent.

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

697c0d7: hdaudio: check pin sense on init, don't wait for a switch event
  
  with headphones plugged on boot, sound was still enabled on speakers.
  see #9956

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

92dbf18: HaikuDepot: Added some listener support to PackageInfo

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

1c38517: ListView: More safe ScrollToSelection implementation
  
  The Problem was observed in the Time Preferences Zone view - the
  selection was set inside of TimeZoneView::DoLayout() call on
  the OutlineListView control that had zero-sized Bounds. After
  the control was resized the selection stay mainly hidden "under"
  the upper edge. The Problem looks like generic so should be fixed
  in the interface kit code. Proposed fix introduces additional check
  for the scroll position to not cross the top edge of control.

                                        [ Siarzhuk Zharski <zharik@xxxxxx> ]

6b48fa0: usb_disk: fixes 64bit trace build

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

1a07e84: usb_disk: fixed mounting a USB disk on x86_64
  
  * usb_disk_prepare_partial_buffer() was miscalculating the offset in the temp 
buffer,
  which led to a page fault later when copying to the user buffer.

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

8f284ef: intel_extreme: don't expose overlay in accelerant when not allocated
  
  ... in the driver.

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

af8e2aa: Debugger: add settings manager for source location mappings.
  
  - If it was necessary to help the debugger locate a particular source
    file due to it not being found on disk at the location specified in
    the debug information, the associated user-supplied path mappings
    are now saved and restored in the team settings. The file manager still
    needs a bit of extra work to apply these as files are added though.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

64aae11: Fix incorrect name usage.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

ad054cf: Debugger: Implement #9961.
  
  - FileManager now saves any explicitly located file mappings,
    and properly restores them when reloading the same team/files later.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

f7e1dc6: Debugger: Add selection support to MemoryView.
  
  - The Inspector's memory view now supports selecting chunks of the hex 
display in
    the manner one would in a TextView. The selection can also be copied to the 
clipboard,
    or if it matches the size of a target address, can be used as input for an 
address to
    inspect directly.
  
  Still needs some fine tuning, but basically works.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

59cef1f: Build fix.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

153c6c4: Debugger: Fix data copy issue.
  - B_PRIx8 unfortunately doesn't necessarily strictly stay within the bounds
    of an 8-bit hex constant, so force the size passed to snprintf to make it
    that way.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

62b27e6: Fix previous format problem more correctly.
  
  Thanks Ingo, Oliver and Ithamar for the hint.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

7eec822: HaikuDepot: Package information can be retrieved asynchronously

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

b9898c4: HaikuDepot: Also lock the model when updating the list

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

f7628f8: HaikuDepot: Fixed selecting the right package when the list is sorted.

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

72b9e4a: Fix gcc2 build.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

ed6f171: BColumnListView: Enable invalidating rows, fix SetField()
  
   * Seems like there was no easy way to simply invalidate
     a given BRow. Introduced BColumnListView::InvalidateRow().
   * BRow::SetField() tried to invalidate the row, but invalidated
     the listview instead of the BOutlineView responsible for
     drawing the list contents. Use the new InvaalidateRow().

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

b748950: HaikuDepot: Update package list when necessary
  
   * Pass the Model lock to the PackageListView.
   * Register a PackageInfoListener with every listed package.
   * Update the rating when it is fetched.

                                      [ Stephan Aßmus <superstippi@xxxxxx> ]

533036d: libroot: Make sure PTHREAD_STACK_MIN is in the allowed range

                                    [ Pawel Dziepak <pdziepak@xxxxxxxxxxx> ]

772568c: system: Use B_PAGE_SIZE to define stack sizes
  
  As korli suggested use B_PAGE_SIZE for defining stack size related
  definitions what seems to be more natural for them  and also may
  help if we ever support an architecture with page size different than
  4kB.

                                    [ Pawel Dziepak <pdziepak@xxxxxxxxxxx> ]

4efb0a6: posix: Update PTHREAD_STACK_MIN to match MIN_USER_STACK_SIZE
  
  Thanks for pointing this out Pete!

                                    [ Pawel Dziepak <pdziepak@xxxxxxxxxxx> ]

c315b2b: Revert "ScreenSaver: ScrollToSelection off-by-one"
  
  This reverts commit fb90f7ffe49c07e82cd8cf68012929c87319f656.
  
  Underlying issue fixed in hrev46066

                                     [ John Scipione <jscipione@xxxxxxxxx> ]

4f4270c: loader/u-boot: fix alignment of uimage components.
  
  The "blobs" in a U-Boot uimage are aligned at 4 bytes, which we
  did not take into account. Found this when adding a 3rd blob
  containing the Flattened Device Tree for ARM.

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

ba06f07: ARM: kernel: fix timer resolution and implement basic timekeeping.
  
  The previously used method for programming the timer did not take
  into account that our timespec is 64bit while the register we poke
  it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
  scale of resolution (us,ms,second) we dynamicly determine the one
  that we can most closely match, and set that.
  
  For f.ex. snooze to work however, we also need system_time to work.
  The current implementation uses a system timer at microsecond
  resolution to keep track of time.
  
  Although the code is far from perfect, committing it now before
  it gets lost, since I'm working on the infrastructure code
  to properly factor out the SoC specific code out of the core
  ARM architecture code (so the kernel can support more then
  our poor old Verdex QEMU target ;))

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

102ce46: norflash: do not accept any device as a valid 'norflash'
  
  Seems the original code was a little *too* simple ;-)

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

dfa5aa0: device_manager: Move init_node_tree to after kdl cmd registration
  
  This helps when debugging, since when a driver/module causes a crash
  while registering with the device manager, you can actually look at
  the device manager state ;-)

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

2c130f0: Debugger: Fix calculation in MemoryView.
  
  - The offset calculation for mapping the current point wasn't taking
    into account the number of bytes per hex block, causing it to be
    proportionally further off if one switched to 16/32/64-bit hex mode.
  
  Gets mouse selection working properly in said modes.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

98c5cb2: Debugger: Fix RegistersView context menu.
  
  - Always grab the address value from the actual register value column,
    rather than the one that's in fact under the mouse. Fixes the "Inspect"
    item sending you to inspect address 0 if you happened to right click over
    the register name rather than the value.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

89d18e9: Debugger: MemoryView - Tweak target address drawing.
  
  - Since we actually draw a selection now, change the target address
    highlight to clearly distinguish it. Rather than inverting it, it's
    now drawn with a normal background and red text in the hex display.
    The text mode subcomponent still shows it as an invert though, since
    the latter doesn't currently indicate the selection.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

eeebe28: Manually merge 1410faca6c30d39dc08a7bf7caa7630ce5a16d35.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

6f17e7a: Remove references to HAIKU_LOCALE_LIBS.
  
  - No longer exists in PM branch, and isn't really necessary any
    more as it only refers to liblocalestub anyhow.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

1f67148: Automatic whitespace cleanup.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

176041c: Build fix.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

d6f41e8: Debugger: Fix off by one error in report generator.
  
  - The disassembly dump would consequently stop at the instruction
    prior to the actual crash culprit, and also erroneously mark it
    as such.
  (cherry picked from commit 7de035619bf4e660f3f2243b343de4dffc7ab79b)

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

34d0d4d: dump_page_queue(): fix output
  
  * Determine the cache type per page instead of printing the first page's
    cache type for all pages.
  * Use vm_cache_type_to_string().

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

93495b0: X86PagingStructuresPAE: clear fVirtualPageDirs in constructor
  
  ... not just the first element. Fixes a crash in X86VMTranslationMapPAE
  destructor when running out of memory when initializing the map.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

bcb7463: arch_vm_translation_map_early_map(): Fix debug output

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6508ce9: X86VMTranslationMapPAE::Map(): More info in assert

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

372a666: X86VMTranslationMapPAE: Add some ktracing for page (un)mapping

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6dee665: When switching to PAE don't copy not needed PTEs
  
  Now we check whether the virtual address corresponding to the PTE lies
  in an allocated virtual address range. This fixes a cause of #8345:
  The assertion would trigger when such an entry was encountered. There
  might be other causes that trigger the same assertion, though.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

30a517b: Add handling of B_PACAKGE_INFO_CHECKSUM to PackageInfoPrinter.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

50ae264: Add support for adding a package-info to BRepositoryWriter.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

da33bea: Add command 'update' to package_repo.
  
  * 'update' takes an existing repository and a package list file and then
    creates a new repository from that, avoiding expensive
    checksum-recomputations where possible

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

93cb796: Context: Add more uniqueness to temp directory names.
  
  - If a single thread attempted to establish multiple package kit
    contexts, it would fail due to a collision between their respective
    temporary directories. As such, use both the thread ID and
    system_time() as a random elements in the directory name to ensure
    this doesn't occur.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

0c5468e: HaikuDepot: Stub out various support classes for package kit use.
  
  - DecisionProvider and JobStateListener will be needed in order to
    interact with the package kit in various ways eventually, though
    the implementations are currently all empty.
  
  - Adjust HaikuDepot's PackageManager class to inherit from
    BPackageManager, so as to be able to actually interface with
    the package repositories.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

2f89f68: MainWindow: Initial hooks into package kit.
  
  - MainWindow now attempts to refresh all available repositories and
    fetch their respective package lists on startup. Much still remains
    to be done, such as factoring this out into a background process so
    it doesn't prevent the window from showing, and making the refresh step
    optional if we already have valid repository information, but this at
    least gets us showing the available package list from HaikuPorts.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

85caa04: Use BPackageInfoContentHandler in package_repo 'update'.
  
  * Ingo has pointed me at this class which already does the collecting
    of package attributes into a PackageInfo - so there's no need to
    do it manually.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

d7cbcb1: Fix build of <build>package_repo.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

53b1625: Fix host-only build.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7d09a8d: Fix build of '<build>package_repo' for real.
  
  * add missing command_update.cpp

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

9a85313: X86PagingStructuresPAE: Zero fPageDirPointerTable in constructor
  
  ... and use it as a guard in the destructor. Fixes crash when running
  out of memory and Init() is not called.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

c13744f: useradd: Improve usage text

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

222fb7a: getgrgid_r()/getgrname_r(): Fix group not found return value

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

fb8a9c4: getpw{nam,uid}[_r]: Fix return value behavior
  
  ... when the user is not found.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

de15b85: getgr{nam,gid}[_r](): Fix retrieving group members

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0e9e586: useradd: Support specifying group by name

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e9d9ac7: Add userdel

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

82a064b: useradd: small style fix

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

032ea9a: useradd: Create the new user with a locked password

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

6c346b8: passwd: Add option -d to delete a user's password

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

dc3be29: Enable -Werror in src/bin/multiuser

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

519bb60: Add group{add,del,mod}

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

e12c26e: ModelWindow: Populate publisher URL if available.
  
  - Also rework things a bit to fix passing the same reference into the
    installed package list repeatedly, thus causing only the first package
    to be marked as actually being installed.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

f7c99dc: Remove unnecessary function.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

2c287f5: Model: Add Clear() method to empty out existing depot info.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

d882cc2: HaikuDepot: Move repo fetch to background worker thread.
  
  - Factor out functions for refreshing the repositories and
    retrieving the package lists.
  
  - Add a background worker thread which handles those tasks and
    then notifies the window when the model is ready.
  
  - Check if we already have a repository cache, and if so, skip the
    refresh step, unless forced. The latter will eventually be possible
    via the UI.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

c6a952d: Add HaikuDepot to image.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

52660ce: gcc2.x build fix.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

b162bda: Add HaikuDepot to Deskbar menu.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

0a345af: Separate notification from deletion in repository-handlers.
  
  * Add NotifyDone() to all repository-attribute handlers and invoke that
    to notify any listeners.
  * Unify deletion to a single implementation of Delete() in the base
    class. Before, the root handler for a repository didn't do that, but
    just triggered the notification.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

b3a05ee: Fix keeping of package info during repository update.
  
  * actually write the package info read from the repository, not the one
    from the package, as the latter is missing the checksum

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

976b547: HaikuDepot: Implement publisher hyperlink handling.
  
  - Clicking the publisher link now actually attempts to open the site
    in the browser.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

8b600ba: package daemon: Use CommitTransactionHandler in all cases
  
  ... also when only activating/deactivating already moved packages.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

be2254e: package daemon: Handle post-installation scripts, users/groups
  
  ... specified by a package when it is going to be activated. We don't
  try to remove users/groups when deactivating packages yet, nor is the
  user properly identified in all error cases.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

5af9dc2: Style fix.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

db25958: HaikuDepot: Flesh out PackageActions a bit.
  
  - Add background worker thread for asynchronous processing of
    package actions.
  - Implement InstallPackageAction. As such, installing packages now
    actually works.
  - Wrap requests in exception handlers, as the package manager uses those
    for various error cases. Fixes several cases of HaikuDepot spontaneously
    closing if a problem occurred. Still TODO: user error reporting, errors
    are currently reported on the console.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

f7bf1d3: HaikuDepot: Add UninstallPackageAction class. Not yet used.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

adde35f: HaikuDepot: Flesh out PackageManager::GetPackageActions().
  
  - Now actually checks if and where the package is installed, and
    correspondingly returns back the appropriate install/uninstall
    actions. Consequently, HaikuDepot now allows uninstallation of
    (non-system) packages.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

50792d1: Update openssh and perl for x86_gcc2.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

b4c8d2f: HaikuDepot: Show installation state in list view.
  
  - Add package installation state to PackageInfo and update accordingly
    in Model.
  - Add package listener event for installation state change (not yet used).
  - PackageListView now fetches installation state from package and displays
    accordingly.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

cea0269: HaikuDepot: Fix a few issues pointed out by Stephan. Thanks!

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

4bee7f0: HaikuDepot: Add "Refresh repositories" menu item.
  
  - Allows the user to request manually updating the package list
    from the server.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

44698a4: HaikuDepot: Start implementing UserInteractionHandler hooks.
  
  - Use package daemon's ProblemWindow/ResultWindow for the HandleProblems()
    and ConfirmChanges() hooks respectively.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

b967ea4: Debugger: Temporarily disable file manager mappings.
  
  - There seem to be cases where the file manager is incorrectly reapplying
    stored mappings, resulting in no source being displayed. As such, the
    functionality is being disabled until the cause can be found.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

c848949: Debugger: Fix crash in Inspector.
  
  - If a selection was active, and the hex mode was switched to not
    display, a divide by zero crash would occur. Spotted by Olivier Coursiere.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

efcb3de: Debugger: Fix #9961.
  
  - The previous solution was applying source path mappings too early, with
    the consequence that the file manager would incorrectly adjust some
    relocations due to not being aware of the presence of all the possible
    parent paths yet, leading to the observed "Source not available" behavior
    when restoring some combinations of mappings. We now lazily apply the
    mappings at the point when the source code itself is actually requested
    to be loaded, which doesn't occur until after all image loading, etc.
    has completed, so the information map is complete.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

1c521f0: BString::Split(): Fix check

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

59f1891: Change volume label for MOUNT_TYPE_HOME to "config". Fixes #9968.
  
  Signed-off-by: Ingo Weinhold <ingo_weinhold@xxxxxx>

                         [ Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx> ]

4f9db8d: Should have been part of previous commit.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

7092893: Actually rename the updated repository to the target name.

                                    [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ]

acc6f83: Update x86 openssh and perl packages, add libedit_devel

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

7cf0e76: HaikuDepot: Cleanups.
  
  - Fix passing the force parameter to the refresh worker. This makes the
    refresh depots menu item actually work.
  
  - Make failure messages regarding depot initialization/refresh visible to the
    user.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

fdcd014: HaikuDepot: Only send package status change notifications...
  
  ...if the package status actually did change.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

e550d7b: HaikuDepot: Miscellanous improvements to package state tracking.
  
  - MainWindow now listens for package installation state changes so
    it can keep Model's package location lists in sync.
  - PackageListView now updates its status column on package state changes.
  - PackageInfoView now updates the available action list when package
    installation state changes.
  - PackageManager populates the expected user-specified install/uninstall
    package sets for ProblemWindow so that one can properly filter those out.
  
  There still remain some issues with the installed locations for ResultWindow
  not being entirely correct though, which causes issues for package
  uninstallation.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

c996b65: HaikuDepot: Init with correct repo flags before performing actions.
  
  Still something not entirely correct with the uninstall case though.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

9e8ffcb: HaikuDepot: Rework to get actions working properly.
  
  - BPackageManager doesn't (currently) support being reused for multiple
    differing actions, so instantiate it on the fly for each action to be
    performed.
  
  - As such, pull the package action worker out of PackageManager and into
    MainWindow. Define abstract interface PackageActionHandler for other
    parts of Depot to use to instruct it to queue actions.
  
  - Adjust other parts of code to take the above into account.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

99b3982: PackageListView: Force status field to update properly.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

d68208f: Use double parenthesis for math expressions.
  
  This allows FreeBSD with a pure /bin/sh (not a symlink to /bin/bash) to build
  the cross-tools to a dedicated directory, outside of the generated folder.

                                        [ Matt Madia <mattmadia@xxxxxxxxx> ]

34f4c3e: HaikuDepot: Fix #10000.
  
  - When switching selected packages, compare the new and old package action
    list. If they're the same, don't bother rebuilding the button bar.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

f4058a3: HaikuDepot: Adjust displayed publisher.
  
  - If available, show the package's copyright information for the
    publisher rather than the vendor, as the latter simply indicates
    the maintainer of the repository rather than the actual developers
    of the software contained in the package.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

dd9658f: HaikuDepot: Sort package list by name column on startup.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

a5d9833: HaikuDepot: Minor optimization.
  
  - PackageAction now stores/returns a type code indicating the embodied
    action. Adjust PackageActionView accordingly in its comparison of
    the old/new package action list.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

43ff23e: <NotOwningEntryRef.h>: Denote BPrivate explicitly

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

4cf3529: BCopyEngine: Add base class BEntryOperationEngineBase
  
  It contains a helper class Entry, which allows to generalize the
  BCopyEngine::CopyEntry() parameters.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

0ee677e: Add BRemoveEngine
  
  Similar to BCopyEngine, but it (surprise!) removes an entry.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

99f1939: package daemon: Package: Add RevisionedName[Throws]()

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

2373352: package daemon: Implement writable files handling
  
  * Move Volume::Exception to top level and into own files.
  * Add utility class FSUtils, move Volume::RelativePath there and add a
    bunch of FS utility functionality.
  * Add FSTransaction, a helper class to record FS operations and revert
    them.
  * When activating a package we now extract the writable
    files/directories it declares. The handling is not quite complete:
    - We don't handle merges yet. I.e. the user will have to do that
      manually for now.
    - We don't propagate issues/infos regarding the writable files (e.g.
      that a manual intervention is required) to the user yet.

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

8129130: Merge remote-tracking branch 'haiku/master' into package-management
  
  Conflicts:
        build/jam/BuildSetup
        build/jam/HaikuImage
        build/jam/board/sam460ex/BoardSetup
        build/jam/board/verdex/BoardSetup
        data/catalogs/apps/icon-o-matic/fr.catkeys
        src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp
        src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp
        src/apps/debugger/files/FileManager.cpp
        src/apps/debugger/files/FileManager.h
        src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp
        src/apps/haiku-depot/MainWindow.cpp
        src/apps/haiku-depot/MainWindow.h
        src/apps/haiku-depot/Model.cpp
        src/apps/haiku-depot/PackageInfo.h
        src/apps/haiku-depot/PackageInfoListener.h
        src/apps/haiku-depot/PackageInfoView.cpp
        src/apps/haiku-depot/PackageInfoView.h
        src/apps/haiku-depot/PackageListView.cpp
        src/apps/haiku-depot/PackageListView.h
        src/system/kernel/arch/arm/arch_timer.cpp
        src/system/libroot/os/arch/arm/atomic.S
        src/tools/translation/bitsinfo/Jamfile
        src/tools/translation/bmpinfo/Jamfile
        src/tools/translation/tgainfo/Jamfile

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

9f81ca8: Merge branch 'package-management'
  
  Conflicts:
        src/preferences/network/Jamfile

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

----------------------------------------------------------------------------

1477 files changed, 63224 insertions(+), 53182 deletions(-)
Jamfile                                          |  189 +-
Jamrules                                         |   40 +-
build/config_headers/tracing_config.h            |    2 +
build/jam/AlternativeGCCArchive                  |   63 -
build/jam/ArchitectureRules                      |  785 ++++
build/jam/BeOSRules                              |   64 +-
build/jam/BootRules                              |    9 +-
build/jam/BuildFeatureRules                      |  455 ++
build/jam/BuildFeatures                          |  872 ++--
build/jam/BuildSetup                             |  949 +----
build/jam/CommandLineArguments                   |   12 +
build/jam/DefaultBuildProfiles                   |  201 +
build/jam/FileRules                              |  157 +-
build/jam/HaikuPackages                          |   60 +
build/jam/HeadersRules                           |   33 +-
build/jam/HelperRules                            |   53 +-
build/jam/ImageRules                             |  739 ++--
build/jam/KernelRules                            |   15 +-
build/jam/LocaleRules                            |   18 +-
build/jam/MainBuildRules                         |   57 +-
build/jam/MiscRules                              |  227 +-
build/jam/OptionalLibPackages                    |  356 --
build/jam/OptionalPackageDependencies            |   44 -
build/jam/OptionalPackages                       | 2585 ++---------
build/jam/OptionalTestPackages                   |   63 +-
build/jam/OverriddenJamRules                     |   98 +-
build/jam/PackageRules                           |  380 +-
build/jam/ReleaseBuildProfiles                   |   55 -
build/jam/RepositoryRules                        |  656 +++
build/jam/UserBuildConfig.ReadMe                 |   28 +-
build/jam/UserBuildConfig.sample                 |    3 -
build/jam/board/beagle/BoardSetup                |    8 +-
build/jam/board/neo_freerunner/BoardSetup        |    6 +-
build/jam/board/overo/BoardSetup                 |    8 +-
build/jam/board/raspberry_pi/BoardSetup          |    6 +-
build/jam/board/verdex/BoardSetup                |    3 +-
build/jam/{ => images}/AnybootImage              |    0
build/jam/{ => images}/CDBootImage               |    0
build/jam/{ => images}/CDBootPPCImage            |    0
build/jam/{ => images}/FloppyBootImage           |   19 +-
build/jam/{ => images}/HaikuCD                   |   15 +-
build/jam/images/HaikuImage                      |  341 ++
build/jam/images/HaikuImageBootstrap             |  263 ++
build/jam/images/HaikuImageCommon                |  157 +
build/jam/{ => images}/NetBootArchive            |   15 +-
build/jam/packages/Haiku                         |  393 ++
build/jam/packages/HaikuBootstrap                |  308 ++
build/jam/packages/HaikuCrossDevel               |  102 +
build/jam/packages/HaikuDevel                    |   94 +
build/jam/packages/HaikuDevelSecondary           |   64 +
build/jam/packages/HaikuLoader                   |   13 +
build/jam/packages/HaikuSecondary                |   49 +
build/jam/packages/HaikuSecondaryBootstrap       |   24 +
build/jam/packages/HaikuUserguide                |    9 +
build/jam/packages/HaikuWelcome                  |    9 +
build/jam/packages/MakefileEngine                |   12 +
build/jam/packages/WebPositive                   |   11 +
build/jam/repositories/HaikuPorts/x86            |  251 ++
build/jam/repositories/HaikuPorts/x86_64         |  198 +
build/jam/repositories/HaikuPorts/x86_gcc2       |  251 ++
build/jam/repositories/HaikuPortsCross/x86       |   74 +
build/jam/repositories/HaikuPortsCross/x86_64    |   57 +
build/jam/repositories/HaikuPortsCross/x86_gcc2  |   74 +
build/scripts/build_cross_tools                  |   36 +-
build/scripts/build_cross_tools_gcc4             |   44 +-
build/scripts/build_haiku_image                  |  187 +-
build/scripts/build_haiku_package                |  125 +
build/scripts/determine_haiku_revision           |  103 +-
build/scripts/host_build_only                    |    6 +
build/scripts/rm_attrs                           |    4 +-
configure                                        |  775 ++--
data/artwork/icons/Folder_virtual                |  Bin 0 -> 10341 bytes
data/bin/freetype-config                         |  160 -
data/bin/installoptionalpackage                  |  962 -----
data/bin/setgcc                                  |   99 -
.../post_install/add_catalog_entry_attributes.sh |    3 +-
data/common/boot/post_install/mime_update.sh     |   44 -
data/config/boot/UserBootscript                  |    2 +-
data/system/boot/Bootscript                      |   11 +-
data/system/boot/SetupEnvironment                |   31 +-
headers/build/host/haiku_host/Errors.h           |    1 +
.../host/haiku_host/config_build/HaikuConfig.h   |    1 +
.../build/host/haiku_host/config_build/types.h   |    1 +
headers/build/os/app/Message.h                   |    3 +
headers/build/os/interface/Gradient.h            |    1 +
headers/build/os/interface/IconUtils.h           |    1 +
.../build/os/package/BlockBufferCacheNoLock.h    |    1 -
headers/build/os/package/DownloadFileRequest.h   |    1 +
.../build/os/package/GlobalWritableFileInfo.h    |    1 +
.../build/os/package/InstallationLocationInfo.h  |    1 +
headers/build/os/package/User.h                  |    1 +
headers/build/os/package/UserSettingsFileInfo.h  |    1 +
.../build/os/package/WritableFileUpdateType.h    |    1 +
headers/build/os/package/hpkg/BlockBufferCache.h |    1 -
headers/build/os/package/hpkg/BlockBufferPool.h  |    1 +
.../os/package/hpkg/BlockBufferPoolNoLock.h      |    1 +
headers/build/os/package/hpkg/BufferCache.h      |    1 -
headers/build/os/package/hpkg/BufferPool.h       |    1 +
headers/build/os/package/hpkg/NoErrorOutput.h    |    1 +
[ *** stats truncated: 1378 lines dropped *** ]

############################################################################

Commit:      3dfd9cb95ce45f59160d50975210bc55e3fc0709
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3dfd9cb
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Jun 16 07:00:06 2011 UTC
Committer:   Ingo Weinhold <ingo_weinhold@xxxxxx>
Commit-Date: Sun Jul 17 14:54:06 2011 UTC

Flat commit of all changes from package-management branch in svn

----------------------------------------------------------------------------

diff --git a/build/jam/AlternativeGCCArchive b/build/jam/AlternativeGCCArchive
deleted file mode 100644
index 5a7827f..0000000
--- a/build/jam/AlternativeGCCArchive
+++ /dev/null
@@ -1,63 +0,0 @@
-# This file defines what ends up in the alternative GCC archive and it executes
-# the rules building the archive. Included by HaikuImage.
-
-
-#sanity check - make sure the primary gcc is different than the alternative gcc
-if $(HAIKU_PRIMARY_GCC) = $(HAIKU_GCC_VERSION[1]) {
-       Exit "Error: Your alternative gcc is the same as the main gcc!"
-               "You need to reconfigure your generated directories." ;
-}
-
-#pragma mark - Build The Archive
-
-
-# archive target
-HAIKU_ALTERNATIVE_GCC_ARCHIVE = alternative_system_libs.zip ;
-MakeLocate $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ;
-
-# the pseudo target all archive contents is attached to
-NotFile $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME) ;
-
-# prepare the script that initializes the shell variables
-local initVarsScript = <AlternativeGCCArchive>haiku-alternative-gcc-init-vars ;
-local script = $(initVarsScript) ;
-MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ;
-Always $(script) ;
-
-AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ;
-AddVariableToScript $(script) : addBuildCompatibilityLibDir
-       : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ;
-AddTargetVariableToScript $(script) : <build>copyattr ;
-AddTargetVariableToScript $(script) : <build>zip ;
-if $(HOST_RM_ATTRS_TARGET) {
-       AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs 
;
-} else {
-       AddVariableToScript $(script) : rmAttrs : rm ;
-}
-
-# create the other scripts
-local makeDirsScript = <AlternativeGCCArchive>haiku-alternative-gcc-make-dirs ;
-local copyFilesScript
-       = <AlternativeGCCArchive>haiku-alternative-gcc-copy-files ;
-MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ;
-
-CreateAlternativeGCCArchiveMakeDirectoriesScript $(makeDirsScript) ;
-CreateAlternativeGCCArchiveCopyFilesScript $(copyFilesScript) ;
-
-# build the archive
-
-BuildAlternativeGCCArchive $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) :
-       $(initVarsScript)
-       $(makeDirsScript)
-       $(copyFilesScript)
-;
-
-# remove the scripts we have generated
-RmTemps $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) :
-       $(initVarsScript)
-       $(makeDirsScript)
-       $(copyFilesScript)
-;
-
-NotFile haiku-alternative-gcc-archive ;
-Depends haiku-alternative-gcc-archive : $(HAIKU_ALTERNATIVE_GCC_ARCHIVE) ;
diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup
index 5099d52..59f8163 100644
--- a/build/jam/BuildSetup
+++ b/build/jam/BuildSetup
@@ -29,15 +29,6 @@ HAIKU_CONTAINER_GRIST on 
$(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME)
 HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME)
        = HAIKU_NET_BOOT_ARCHIVE_INSTALL_TARGETS ;
 
-# alternative gcc archive
-HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME
-       = haiku-alternative-gcc-archive-container ;
-HAIKU_CONTAINER_GRIST on $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME)
-       = AlternativeGCCArchive ;
-# HAIKU_INCLUDE_IN_CONTAINER_VAR -- update only mode not supported
-HAIKU_INSTALL_TARGETS_VAR on $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME)
-       = HAIKU_ALTERNATIVE_GCC_ARCHIVE_INSTALL_TARGETS ;
-
 # boot floppy
 HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME = haiku-boot-floppy-container ;
 HAIKU_CONTAINER_GRIST on $(HAIKU_FLOPPY_BOOT_IMAGE_CONTAINER_NAME)
@@ -151,13 +142,6 @@ if $(HAIKU_GCC_VERSION[1]) = 2 {
        HAIKU_GCC_HEADERS_DIR = [ FDirName $(HAIKU_TOP) headers build 
gcc-2.95.3 ] ;
 }
 
-# the subdirectory into which the alternative GCC libraries are to be installed
-if $(HAIKU_GCC_VERSION[1]) = 2 {
-       HAIKU_ALTERNATIVE_GCC_LIB_SUBDIR = gcc2 ;
-} else {
-       HAIKU_ALTERNATIVE_GCC_LIB_SUBDIR = gcc4 ;
-}
-
 # initial state for flags etc.
 HAIKU_C++ ?= $(HAIKU_CC) ;
 HAIKU_LINK = $(HAIKU_CC) ;
diff --git a/build/jam/FloppyBootImage b/build/jam/FloppyBootImage
index ea05ca5..a0f0c11 100644
--- a/build/jam/FloppyBootImage
+++ b/build/jam/FloppyBootImage
@@ -59,23 +59,28 @@ AddFilesToFloppyBootArchive system add-ons kernel busses ide
        : generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 legacy_sata 
it8211 ;
 AddFilesToFloppyBootArchive system add-ons kernel busses scsi
        : ahci ;
-AddFilesToFloppyBootArchive system add-ons kernel console : vga_text ;
+AddFilesToFloppyBootArchive system add-ons kernel console
+       : vga_text ;
 AddFilesToFloppyBootArchive system add-ons kernel file_systems
        : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
 AddFilesToFloppyBootArchive system add-ons kernel generic
        : $(ATA_ONLY)ata_adapter $(IDE_ONLY)ide_adapter locked_pool scsi_periph 
;
-AddFilesToFloppyBootArchive system add-ons kernel partitioning_systems
+AddFilesToFloppyBootArchive
+       system add-ons kernel partitioning_systems
        : intel session ;
-AddFilesToFloppyBootArchive system add-ons kernel interrupt_controllers
+AddFilesToFloppyBootArchive
+       system add-ons kernel interrupt_controllers
        : $(PPC_ONLY)openpic ;
 
 if $(USB_BOOT) = 1 {
-       AddFilesToFloppyBootArchive system add-ons kernel busses usb
+       AddFilesToFloppyBootArchive
+               system add-ons kernel busses usb
                : <usb>uhci <usb>ohci <usb>ehci ;
 }
 
 if $(TARGET_ARCH) = x86 {
-       AddFilesToFloppyBootArchive system add-ons kernel cpu : generic_x86 ;
+       AddFilesToFloppyBootArchive system add-ons kernel cpu
+               : generic_x86 ;
 }
 
 # drivers
@@ -89,7 +94,8 @@ if $(NET_BOOT) = 1 {
 }
 
 # kernel
-AddFilesToFloppyBootArchive system : <revisioned>kernel_$(TARGET_ARCH) ;
+AddFilesToFloppyBootArchive system
+       : <revisioned>kernel_$(TARGET_ARCH) ;
 
 # scripts and data files
 
@@ -103,13 +109,17 @@ if $(NET_BOOT) = 1 {
        # add-ons
        AddFilesToFloppyBootArchive system add-ons kernel network
                : stack socket ;
-       AddFilesToFloppyBootArchive system add-ons kernel network devices
+       AddFilesToFloppyBootArchive
+               system add-ons kernel network devices
                : $(SYSTEM_NETWORK_DEVICES) ;
-       AddFilesToFloppyBootArchive system add-ons kernel network 
datalink_protocols
+       AddFilesToFloppyBootArchive
+               system add-ons kernel network datalink_protocols
                : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
-       AddFilesToFloppyBootArchive system add-ons kernel network ppp
+       AddFilesToFloppyBootArchive
+               system add-ons kernel network ppp
                : $(SYSTEM_NETWORK_PPP) ;
-       AddFilesToFloppyBootArchive system add-ons kernel network protocols
+       AddFilesToFloppyBootArchive
+               system add-ons kernel network protocols
                : $(SYSTEM_NETWORK_PROTOCOLS) ;
 }
 
diff --git a/build/jam/HaikuCD b/build/jam/HaikuCD
index e88ba3b..25a49eb 100644
--- a/build/jam/HaikuCD
+++ b/build/jam/HaikuCD
@@ -8,13 +8,6 @@ HAIKU_CD = $(HAIKU_CD_NAME) ;
 HAIKU_CD_LABEL ?= $(HAIKU_DEFAULT_CD_LABEL) ;
 MakeLocate $(HAIKU_CD) : $(HAIKU_CD_DIR) ;
 
-# Detect a hybrid GCC2/GCC4 image.
-local isHybridBuild ;
-if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1
-               && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
-       isHybridBuild = 1 ;
-}
-
 # prepare the script that initializes the shell variables
 HAIKU_CD_INIT_VARIABLES_SCRIPT = <HaikuCD>haiku.cd-init-vars ;
 local script = $(HAIKU_CD_INIT_VARIABLES_SCRIPT) ;
diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage
index c5a8b03..6ab711f 100644
--- a/build/jam/HaikuImage
+++ b/build/jam/HaikuImage
@@ -47,14 +47,14 @@ SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc 
beep bzip2
        mkfifo mkfs mkindex mktemp modifiers mount mount_nfs mountvolume mv
        netcat netstat nl nohup notify nproc
        od open
-       passwd paste patch pathchk pc ping ping6 play playfile playsound playwav
-       pr prio printenv printf profile ps ptx pwd
+       package package_repo passwd paste patch pathchk pc ping ping6 pkgman 
play
+       playfile playsound playwav pr prio printenv printf profile ps ptx pwd
        query quit
        rc readlink ReadOnlyBootPrompt reindex release renice rlog rm rmattr
        rmindex rmdir roster route
        safemode screen_blanker screenmode screenshot sdiff setdecor settype
-       setversion setvolume seq sha1sum shar shred shuf shutdown sleep sort
-       spamdbm
+       setversion setvolume seq sha1sum sha256sum shar shred shuf shutdown 
sleep
+       sort spamdbm
        split stat strace stty su sum sync sysinfo
        tac tail tcpdump tcptester tee telnet telnetd test timeout top touch
        tput tr traceroute translate trash true truncate tsort tty
@@ -89,8 +89,8 @@ SYSTEM_LIBS =
        liblocale.so
        libmail.so libmedia.so libmidi.so libmidi2.so
        libnetwork.so
-       libpng.so
-       <revisioned>libroot.so libroot-addon-icu.so
+       libpackage.so libpng.so
+       <revisioned>libroot.so
        libscreensaver.so
        libtextencoding.so libtiff.so libtracker.so libtranslation.so
        libz.so
@@ -101,6 +101,7 @@ PRIVATE_SYSTEM_LIBS =
        libfluidsynth.so
        libilmimf.so
        liblpsolve55.so
+       libroot-addon-icu.so
 ;
 SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server mail_daemon
        media_addon_server media_server midi_server mount_server net_server
@@ -190,8 +191,8 @@ SYSTEM_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com 
$(X86_ONLY)atheros813x
 SYSTEM_ADD_ONS_BUS_MANAGERS =  $(ATA_ONLY)ata pci $(X86_ONLY)ps2 $(X86_ONLY)isa
        $(IDE_ONLY)ide scsi config_manager agp_gart usb firewire $(X86_ONLY)acpi
 ;
-SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs btrfs cdda exfat ext2 fat iso9660 nfs
-       attribute_overlay write_overlay ntfs reiserfs udf googlefs ;
+SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs bindfs btrfs cdda exfat ext2 fat iso9660 nfs
+       attribute_overlay write_overlay ntfs packagefs reiserfs udf googlefs ;
 
 # wifi firmware
 for driver in $(SYSTEM_ADD_ONS_DRIVERS_NET) {
@@ -232,7 +233,8 @@ AddFilesToHaikuImage system add-ons kernel busses scsi
        : ahci ;
 AddFilesToHaikuImage system add-ons kernel busses usb
        : <usb>uhci <usb>ohci <usb>ehci ;
-AddFilesToHaikuImage system add-ons kernel console : vga_text ;
+AddFilesToHaikuImage system add-ons kernel console
+       : vga_text ;
 AddFilesToHaikuImage system add-ons kernel debugger
        : <kdebug>demangle $(X86_ONLY)<kdebug>disasm
          <kdebug>invalidate_on_exit <kdebug>usb_keyboard <kdebug>run_on_exit ;
@@ -241,13 +243,16 @@ AddFilesToHaikuImage system add-ons kernel file_systems
 AddFilesToHaikuImage system add-ons kernel generic
        : $(ATA_ONLY)ata_adapter dpc $(IDE_ONLY)ide_adapter locked_pool mpu401
                scsi_periph <module>tty ;
-AddFilesToHaikuImage system add-ons kernel partitioning_systems
+AddFilesToHaikuImage
+       system add-ons kernel partitioning_systems
        : amiga_rdb apple efi_gpt intel session ;
-AddFilesToHaikuImage system add-ons kernel interrupt_controllers
+AddFilesToHaikuImage
+       system add-ons kernel interrupt_controllers
        : $(PPC_ONLY)openpic ;
 
 if $(TARGET_ARCH) = x86 {
-       AddFilesToHaikuImage system add-ons kernel cpu : generic_x86 ;
+       AddFilesToHaikuImage system add-ons kernel cpu
+               : generic_x86 ;
 }
 
 # drivers
@@ -276,10 +281,11 @@ AddDriversToHaikuImage ports              : usb_serial ;
 #AddDriversToHaikuImage power          : $(SYSTEM_ADD_ONS_DRIVERS_POWER) ;
 
 # kernel
-AddFilesToHaikuImage system : <revisioned>kernel_$(TARGET_ARCH) ;
+AddFilesToHaikuImage system
+       : <revisioned>kernel_$(TARGET_ARCH) ;
 
 # libs
-AddLibrariesToHaikuHybridImage system lib
+AddLibrariesToHaikuImage system lib
        : $(SYSTEM_LIBS) $(PRIVATE_SYSTEM_LIBS) ;
 
 # libnetwork.so replaces quite a few libraries
@@ -289,12 +295,12 @@ SYSTEM_LIBS_LIBNETWORK_ALIASES
 if $(HAIKU_GCC_VERSION[1]) = 2 {
        local lib ;
        for lib in $(SYSTEM_LIBS_LIBNETWORK_ALIASES) {
-               AddSymlinkToHaikuHybridImage system lib : libnetwork.so : $(lib)
-                       : : true ;
+               AddSymlinkToHaikuImage system lib
+                       : libnetwork.so : $(lib) ;
        }
 
-       AddSymlinkToHaikuHybridImage system lib : libbnetapi.so : libnetapi.so
-               : : true ;
+       AddSymlinkToHaikuImage system lib : libbnetapi.so
+               : libnetapi.so ;
 }
 
 
@@ -305,7 +311,8 @@ SYSTEM_LIBS_LIBGL_ALIASES
 if $(TARGET_ARCH) = x86 {
        local lib ;
        for lib in $(SYSTEM_LIBS_LIBGL_ALIASES) {
-               AddSymlinkToHaikuHybridImage system lib : libGL.so : $(lib) : : 
true ;
+               AddSymlinkToHaikuImage system lib
+                       : libGL.so : $(lib) ;
        }
 }
 
@@ -319,10 +326,12 @@ SYSTEM_LIBS_ALIASES =
 AddFilesToHaikuImage system servers : $(SYSTEM_SERVERS) ;
 
 # apps
-AddFilesToHaikuImage system                            : runtime_loader 
Deskbar Tracker ;
+AddFilesToHaikuImage system            : runtime_loader ;
+AddFilesToHaikuImage system            : Deskbar Tracker ;
 AddFilesToHaikuImage system bin                        : $(SYSTEM_BIN) 
consoled ;
 AddFilesToHaikuImage system apps               : $(SYSTEM_APPS) ;
-AddFilesToHaikuImage system preferences        : $(SYSTEM_PREFERENCES) ;
+AddFilesToHaikuImage system preferences
+       : $(SYSTEM_PREFERENCES) ;
 AddFilesToHaikuImage system demos              : $(SYSTEM_DEMOS) ;
 
 SEARCH on which = [ FDirName $(HAIKU_TOP) data bin ] ;
@@ -330,15 +339,18 @@ AddFilesToHaikuImage system bin                   : which 
;
 SEARCH on installoptionalpackage = [ FDirName $(HAIKU_TOP) data bin ] ;
 AddFilesToHaikuImage system bin                        : 
installoptionalpackage ;
 SEARCH on install-wifi-firmwares.sh = [ FDirName $(HAIKU_TOP) data bin ] ;
-AddFilesToHaikuImage system bin                        : 
install-wifi-firmwares.sh ;
+AddFilesToHaikuImage system bin
+       : install-wifi-firmwares.sh ;
 
+# TODO: remove!
 # Add the files to be used by installoptionalpackage.
 AddDirectoryToHaikuImage common data optional-packages ;
 local optional-pkg-files = OptionalBuildFeatures OptionalPackageDependencies
        OptionalPackages OptionalLibPackages ;
 for name in $(optional-pkg-files) {
        local file = [ FDirName $(HAIKU_TOP) build jam $(name) ] ;
-       AddFilesToHaikuImage common data optional-packages : $(file) ;
+       AddFilesToHaikuImage common data optional-packages
+               : $(file) ;
 }
 AddInstalledPackagesFileToHaikuImage ;
 
@@ -352,8 +364,9 @@ AddDirectoryToHaikuImage home mail draft ;
 AddDirectoryToHaikuImage home mail in ;
 AddDirectoryToHaikuImage home mail out ;
 
+AddSymlinkToHaikuImage home config settings : deskbar : be ;
 # Deskbar Application links
-AddDirectoryToHaikuImage home config be Applications ;
+AddDirectoryToHaikuImage home config settings deskbar Applications ;
 DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap CodyCam CDPlayer DeskCalc
        Devices DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Installer
        Magnify Mail MediaConverter MediaPlayer MidiPlayer People PoorMan
@@ -361,32 +374,33 @@ DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap 
CodyCam CDPlayer DeskCalc
 ;
 local linkTarget ;
 for linkTarget in $(DESKBAR_APPLICATIONS) {
-       AddSymlinkToHaikuImage home config be Applications
+       AddSymlinkToHaikuImage home config settings deskbar Applications
                : /boot/system/apps/$(linkTarget) : $(linkTarget) ;
 }
 
 # Deskbar Desktop applets links
-AddDirectoryToHaikuImage home config be Desktop\ applets ;
+AddDirectoryToHaikuImage home config settings deskbar Desktop\ applets ;
 DESKBAR_DESKTOP_APPLETS = LaunchBox NetworkStatus PowerStatus ProcessController
        Workspaces
 ;
 for linkTarget in $(DESKBAR_DESKTOP_APPLETS) {
-       AddSymlinkToHaikuImage home config be Desktop\ applets
+       AddSymlinkToHaikuImage home config settings deskbar Desktop\ applets
                : /boot/system/apps/$(linkTarget) : $(linkTarget) ;
 }
 
 # Deskbar Preferences links
-AddDirectoryToHaikuImage home config be Preferences ;
+AddDirectoryToHaikuImage home config settings deskbar Preferences ;
 DESKBAR_PREFERENCES = $(SYSTEM_PREFERENCES:B) ;
 for linkTarget in $(DESKBAR_PREFERENCES) {
-       AddSymlinkToHaikuImage home config be Preferences
-               : /boot/system/preferences/$(linkTarget) : $(linkTarget) ;
+       AddSymlinkToHaikuImage home config settings deskbar Preferences
+               : /boot/system/preferences/$(linkTarget)
+               : $(linkTarget) ;
 }
 
 # Deskbar Demo links
-AddDirectoryToHaikuImage home config be Demos ;
+AddDirectoryToHaikuImage home config settings deskbar Demos ;
 for linkTarget in $(SYSTEM_DEMOS) {
-       AddSymlinkToHaikuImage home config be Demos
+       AddSymlinkToHaikuImage home config settings deskbar Demos
                : /boot/system/demos/$(linkTarget) : $(linkTarget) ;
 }
 
@@ -431,14 +445,15 @@ local spellFiles = words geekspeak ;
 spellFiles = $(spellFiles:G=spell) ;
 SEARCH on $(spellFiles)
        = [ FDirName $(HAIKU_TOP) src apps mail ] ;
-AddFilesToHaikuImage system data spell_check word_dictionary : $(spellFiles) ;
+AddFilesToHaikuImage system data spell_check word_dictionary
+       : $(spellFiles) ;
 
 local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ;
 local etcFiles = inputrc profile ;
 etcFiles = $(etcFiles:G=etc) ;
 SEARCH on $(etcFiles) = [ FDirName $(etcDir) ] ;
 etcFiles += <etc>termcap <etc>sysless <etc>sysless.in ;
-AddFilesToHaikuImage common etc : $(etcFiles) ;
+AddFilesToHaikuImage common settings etc : $(etcFiles) ;
 
 local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ;
 profileFiles = $(profileFiles:G=profile-d) ;
@@ -477,9 +492,11 @@ local cannaDefault = [ Glob $(cannaDir)/default : *.canna 
*.gz ] ;
 local cannaDic = [ Glob $(cannaDir)/dic : *.cbp ] ;
 local cannaDicCanna = [ Glob $(cannaDir)/dic/canna
        : *.cld *.ctd *.cbd *.dir ] ;
-AddFilesToHaikuImage system data Canna default : $(cannaDefault) ;
+AddFilesToHaikuImage system data Canna default
+       : $(cannaDefault) ;
 AddFilesToHaikuImage system data Canna dic : $(cannaDic) ;
-AddFilesToHaikuImage system data Canna dic canna : $(cannaDicCanna) ;
+AddFilesToHaikuImage system data Canna dic canna
+       : $(cannaDicCanna) ;
 AddDirectoryToHaikuImage system data Canna dic group ;
 AddDirectoryToHaikuImage system data Canna dic user ;
 
@@ -487,14 +504,18 @@ local keymapFiles = [ Glob [ FDirName $(HAIKU_TOP) src 
data keymaps ]
        : *.keymap ] ;
 keymapFiles = $(keymapFiles:BG=keymap) ;
 AddFilesToHaikuImage system data Keymaps : $(keymapFiles) ;
-AddSymlinkToHaikuImage system data Keymaps : Swedish : Finnish ;
-AddSymlinkToHaikuImage system data Keymaps : Slovene : Croatian ;
-AddSymlinkToHaikuImage system data Keymaps : US-International : Brazilian ;
+AddSymlinkToHaikuImage system data Keymaps : Swedish
+       : Finnish ;
+AddSymlinkToHaikuImage system data Keymaps : Slovene
+       : Croatian ;
+AddSymlinkToHaikuImage system data Keymaps : US-International
+       : Brazilian ;
 
 local keyboardLayoutsDir
        = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ;
 local keyboardLayouts = [ Glob $(keyboardLayoutsDir) : [^.]* ] ;
-AddFilesToHaikuImage system data KeyboardLayouts : $(keyboardLayouts) ;
+AddFilesToHaikuImage system data KeyboardLayouts
+       : $(keyboardLayouts) ;
 
 local driverSettingsFiles = <driver-settings>kernel ;
 SEARCH on $(driverSettingsFiles)
@@ -515,7 +536,8 @@ SEARCH on $(postInstallFiles)
        = [ FDirName $(HAIKU_TOP) data common boot post_install ] ;
 SEARCH on <post-install>fresh_install
        = [ FDirName $(HAIKU_TOP) data common settings ] ;
-AddFilesToHaikuImage common boot post_install : $(postInstallFiles) ;
+AddFilesToHaikuImage common boot post_install
+       : $(postInstallFiles) ;
 AddFilesToHaikuImage common settings : <post-install>fresh_install ;
 
 # boot loader
@@ -538,20 +560,27 @@ AddBootModuleSymlinksToHaikuImage
 # add-ons
 AddFilesToHaikuImage system add-ons accelerants
        : $(SYSTEM_ADD_ONS_ACCELERANTS) ;
-AddFilesToHaikuHybridImage system add-ons opengl
-       : Mesa\ Software\ Renderer : : true ;
-AddFilesToHaikuHybridImage system add-ons Translators
-       : $(SYSTEM_ADD_ONS_TRANSLATORS) : : true ;
+AddFilesToHaikuImage system add-ons opengl
+       : Mesa\ Software\ Renderer ;
+AddFilesToHaikuImage system add-ons Translators
+       : $(SYSTEM_ADD_ONS_TRANSLATORS) ;
 AddFilesToHaikuImage system add-ons locale catalogs
        : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ;
-AddFilesToHaikuHybridImage system add-ons locale catalogs
-       : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) : : true ;
-AddFilesToHaikuImage system add-ons mail_daemon inbound_protocols : POP3 IMAP ;
-AddFilesToHaikuImage system add-ons mail_daemon outbound_protocols : SMTP ;
-AddFilesToHaikuImage system add-ons mail_daemon inbound_filters
+AddFilesToHaikuImage system add-ons locale catalogs
+       : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ;
+AddFilesToHaikuImage
+       system add-ons mail_daemon inbound_protocols
+       : POP3 IMAP ;
+AddFilesToHaikuImage
+       system add-ons mail_daemon outbound_protocols : SMTP ;
+AddFilesToHaikuImage
+       system add-ons mail_daemon inbound_filters
        : MatchHeader SpamFilter NewMailNotification ;
-AddFilesToHaikuImage system add-ons mail_daemon outbound_filters : Fortune ;
-AddFilesToHaikuImage system add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ;
+AddFilesToHaikuImage
+       system add-ons mail_daemon outbound_filters
+       : Fortune ;
+AddFilesToHaikuImage system add-ons media
+       : $(SYSTEM_ADD_ONS_MEDIA) ;
 AddFilesToHaikuImage system add-ons media plugins
        : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ;
 AddFilesToHaikuImage system add-ons Tracker
@@ -571,13 +600,15 @@ AddFilesToHaikuImage system add-ons kernel network
        : <net>notifications stack ;
 AddFilesToHaikuImage system add-ons kernel network devices
        : $(SYSTEM_NETWORK_DEVICES) ;
-AddFilesToHaikuImage system add-ons kernel network datalink_protocols
+AddFilesToHaikuImage
+       system add-ons kernel network datalink_protocols
        : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
 AddFilesToHaikuImage system add-ons kernel network ppp
        : $(SYSTEM_NETWORK_PPP) ;
 AddFilesToHaikuImage system add-ons kernel network protocols
        : $(SYSTEM_NETWORK_PROTOCOLS) ;
-AddFilesToHaikuImage system add-ons Print : $(SYSTEM_ADD_ONS_PRINT) ;
+AddFilesToHaikuImage system add-ons Print
+       : $(SYSTEM_ADD_ONS_PRINT) ;
 AddFilesToHaikuImage system add-ons Print transport
        : $(SYSTEM_ADD_ONS_PRINT_TRANSPORT) ;
 AddFilesToHaikuImage system add-ons Screen\ Savers
@@ -593,15 +624,17 @@ AddFilesToHaikuImage home config add-ons decorators :
 
 # create directories that will remain empty
 AddDirectoryToHaikuImage common bin ;
-AddDirectoryToHaikuImage common include ;
+AddDirectoryToHaikuImage common cache tmp ;
+AddDirectoryToHaikuImage common develop headers ;
 AddDirectoryToHaikuImage common lib ;
+AddDirectoryToHaikuImage common non-packaged ;
+AddDirectoryToHaikuImage common var empty ;
+AddDirectoryToHaikuImage common var log ;
 AddDirectoryToHaikuImage home Desktop ;
 AddDirectoryToHaikuImage home config bin ;
 AddDirectoryToHaikuImage home config lib ;
+AddDirectoryToHaikuImage home config non-packaged ;
 AddDirectoryToHaikuImage home mail ;
-AddDirectoryToHaikuImage common var empty ;
-AddDirectoryToHaikuImage common var log ;
-AddDirectoryToHaikuImage common cache tmp ;
 
 AddDirectoryToHaikuImage home config add-ons kernel drivers bin ;
 AddDirectoryToHaikuImage home config add-ons kernel drivers dev ;
@@ -688,49 +721,6 @@ if $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) {
 }
 
 
-#pragma mark - Alternative GCC Libraries
-
-
-# We build a zip archive containing the libraries built with the alternative
-# GCC and unzip onto our image. Building the archive is done by a sub-jam.
-include [ FDirName $(HAIKU_BUILD_RULES_DIR) AlternativeGCCArchive ] ;
-
-if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1
-               && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
-       # let another jam build a zip with the system libraries
-       rule InvokeSubJam target : directory : jamLine
-       {
-               DIRECTORY on $(target) = $(directory) ;
-               COMMAND_LINE on $(target) = $(jamLine) ;
-               local optionalPackages = $(HAIKU_ADDED_OPTIONAL_PACKAGES:J=/) ;
-               OPTIONAL_PACKAGES on $(target) = $(optionalPackages:E="") ;
-               Always $(target) ;
-               InvokeSubJam1 $(target) ;
-       }
-
-       actions InvokeSubJam1
-       {
-               cd $(DIRECTORY)
-               export HAIKU_IGNORE_USER_BUILD_CONFIG=1
-               export HAIKU_ADD_OPTIONAL_PACKAGES=$(OPTIONAL_PACKAGES)
-               export HAIKU_PRIMARY_GCC=$(HAIKU_GCC_VERSION[1])
-               $(JAM:E=jam) -q $(COMMAND_LINE) ;
-       }
-
-       local otherAlternativeSystemLibsZip
-               = <other-image>alternative_system_libs.zip ;
-       MakeLocate $(otherAlternativeSystemLibsZip)
-               : $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) ;
-
-       InvokeSubJam $(otherAlternativeSystemLibsZip)
-               : $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR)
-               : "haiku-alternative-gcc-archive" ;
-
-       # install the alternative libs in the right directory
-       ExtractArchiveToHaikuImage : $(otherAlternativeSystemLibsZip) ;
-}
-
-
 #pragma mark - User/Group Setup
 
 
@@ -778,13 +768,6 @@ HAIKU_INSTALL_DIR ?= $(HAIKU_DEFAULT_INSTALL_DIR) ;
 # the pseudo target all image contents is attached to
 NotFile $(HAIKU_IMAGE_CONTAINER_NAME) ;
 
-# Detect a hybrid GCC2/GCC4 image.
-local isHybridBuild ;
-if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1
-               && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
-       isHybridBuild = 1 ;
-}
-
 # prepare the script that initializes the shell variables
 HAIKU_IMAGE_INIT_VARIABLES_SCRIPT = <HaikuImage>haiku.image-init-vars ;
 local script = $(HAIKU_IMAGE_INIT_VARIABLES_SCRIPT) ;
diff --git a/build/jam/ImageRules b/build/jam/ImageRules
index b909035..ebbe599 100644
--- a/build/jam/ImageRules
+++ b/build/jam/ImageRules
@@ -195,7 +195,8 @@ rule AddFilesToContainer container : directoryTokens : 
targets : destName
                if $(catalogs) {
                        local signature
                                = [ on $(target) return 
$(HAIKU_CATALOG_SIGNATURE) ] ;
-                       AddFilesToHaikuImage system data locale catalogs 
$(signature)
+                       AddFilesToHaikuImage
+                               system data locale catalogs $(signature)
                                : $(catalogs) ;
                }
        }
@@ -302,7 +303,8 @@ rule AddDriversToContainer container : 
relativeDirectoryTokens : targets
        local directoryTokens = system add-ons kernel drivers dev
                $(relativeDirectoryTokens) ;
 
-       AddFilesToContainer $(container) : system add-ons kernel drivers bin
+       AddFilesToContainer $(container)
+               : system add-ons kernel drivers bin
                : $(targets) ;
 
        # If the image shall only be updated, we don't add any symlinks.
@@ -367,7 +369,8 @@ rule AddBootModuleSymlinksToContainer container : targets
                local name = $(target:BS) ;
                local linkTarget = [ FDirName /boot $(installDir:G=) $(name) ] ;
 
-               AddSymlinkToContainer $(container) : system add-ons kernel boot
+               AddSymlinkToContainer $(container)
+                       : system add-ons kernel boot
                        : $(linkTarget) : $(name) ;
        }
 }
@@ -672,6 +675,8 @@ rule AddSymlinkToHaikuImage directoryTokens : linkTarget : 
linkName
 {
        # AddSymlinkToHaikuImage <directory> : <link target> [ : <link name> ] ;
 
+       linkTarget = $(linkTarget:J=/) ;
+
        AddSymlinkToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(directoryTokens)
                : $(linkTarget) : $(linkName) ;
 }
@@ -704,7 +709,7 @@ rule AddHeaderDirectoryToHaikuImage dirTokens : dirName : 
alwaysUpdate
        # AddHeaderDirectoryToHaikuImage <dirTokens> : [ <dirName> ]
        #       : <alwaysUpdate> ;
 
-       CopyDirectoryToHaikuImage develop headers
+       CopyDirectoryToHaikuImage system develop headers
                : [ FDirName $(HAIKU_TOP) headers $(dirTokens) ]
                : $(dirName) : -x .svn : $(alwaysUpdate) ;
 }
@@ -822,6 +827,15 @@ rule InstallSourceArchive file : url
        }
 }
 
+rule InstallCommonPackage package : url
+{
+       # download archive file
+       local archiveFile = [ DownloadFile $(package) : $(url) ] ;
+
+       # copy onto image
+       ExtractArchiveToHaikuImage common packages : $(archiveFile) ;
+}
+
 rule InstallOptionalHaikuImagePackage package : url : dirTokens : isCDPackage
 {
        # download archive file
@@ -850,7 +864,7 @@ rule AddEntryToHaikuImageUserGroupFile file : entry
                Always $(file) ;
                MakeLocate $(file) : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
                BuildHaikuImageUserGroupFile $(file) ;
-               AddFilesToHaikuImage common etc : $(file) ;
+               AddFilesToHaikuImage common settings etc : $(file) ;
        }
 
        HAIKU_IMAGE_USER_GROUP_ENTRIES on $(file) = $(allEntries) ;
@@ -917,7 +931,8 @@ rule AddExpanderRuleToHaikuImage mimetype : extension : 
list : extract
                Exit "Invalid expander rule specification passed to 
AddExpanderRule." ;
        }
 
-       local entry = 
"\\\"$(mimetype)\\\"\\\t$(extension)\\\t\\\"$(list)\\\"\\\t\\\"$(extract)\\\"" ;
+       local entry
+               = 
"\\\"$(mimetype)\\\"\\\t$(extension)\\\t\\\"$(list)\\\"\\\t\\\"$(extract)\\\"" ;
        AddEntryToHaikuImageExpanderRuleFile <haiku-image>expander.rules
                : $(entry) ;
 }
@@ -930,7 +945,8 @@ rule AddInstalledPackagesFileToHaikuImage
        Always $(file) ;
        MakeLocate $(file) : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
        BuildHaikuImageInstalledPackagesFile $(file) ;
-       AddFilesToHaikuImage common data optional-packages : $(file) ;
+       AddFilesToHaikuImage common data optional-packages
+               : $(file) ;
 }
 
 actions BuildHaikuImageInstalledPackagesFile
@@ -957,7 +973,8 @@ rule AddLicenseToHaikuImage file : name : searchPath
                name = ;
        }
 
-       AddFilesToHaikuImage system data licenses : $(file) : $(name) ;
+       AddFilesToHaikuImage system data licenses : $(file)
+               : $(name) ;
 }
 
 
@@ -1116,138 +1133,9 @@ actions BuildNetBootArchive1
 }
 
 
-#pragma mark - Alternative GCC Archive rules
-
-
-rule AddDirectoryToAlternativeGCCArchive directoryTokens
-{
-       # AddDirectoryToAlternativeGCCArchive <directoryTokens>
-
-       return [ AddDirectoryToContainer
-               $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME) : 
$(directoryTokens) ] ;
-}
-
-rule AddFilesToAlternativeGCCArchive directory : targets : destName
-{
-       # AddFilesToAlternativeGCCArchive <directory> : <targets> [ : dest name 
]
-
-       AddFilesToContainer $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME)
-               : $(directory) : $(targets) : $(destName) ;
-}
-
-rule AddSymlinkToAlternativeGCCArchive directoryTokens : linkTarget : linkName
-{
-       # AddSymlinkToAlternativeGCCArchive <directory> : <link target>
-       #       [ : <link name> ] ;
-
-       AddSymlinkToContainer $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME)
-               : $(directoryTokens) : $(linkTarget) : $(linkName) ;
-}
-
-rule CopyDirectoryToAlternativeGCCArchive directoryTokens : sourceDirectory
-       : targetDirectoryName : excludePatterns : alwaysUpdate
-{
-       CopyDirectoryToContainer $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME)
-               : $(directoryTokens) : $(sourceDirectory) : 
$(targetDirectoryName)
-               : $(excludePatterns) : $(alwaysUpdate) ;
-}
-
-rule CreateAlternativeGCCArchiveMakeDirectoriesScript script
-{
-       CreateContainerMakeDirectoriesScript
-               $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME) : $(script) ;
-}
-
-rule CreateAlternativeGCCArchiveCopyFilesScript script
-{
-       CreateContainerCopyFilesScript
-               $(HAIKU_ALTERNATIVE_GCC_ARCHIVE_CONTAINER_NAME) : $(script) ;
-}
-
-rule BuildAlternativeGCCArchive archive : scripts
-{
-       # BuildAlternativeGCCArchive <archive> : <scripts>  ;
-
-       local mainScript = build_archive ;
-       SEARCH on $(mainScript) = [ FDirName $(HAIKU_TOP) build scripts ] ;
-
-       Depends $(archive) : $(mainScript) $(scripts) ;
-       BuildAlternativeGCCArchive1 $(archive) : $(mainScript) $(scripts) ;
-}
-
-actions BuildAlternativeGCCArchive1
-{
-       $(2[1]) $(1) $(2[2-])
-}
-
-
-#pragma mark - Haiku Hybrid Image rules
-
-
-rule AddFilesToHaikuHybridImage directory : targets : destName
-       : useABISubDir
-{
-       # AddFilesToHaikuHybridImage <directory> : <targets> : <destName>
-       #       : <useABISubDir>
-       #
-       # Convenience rule calling both AddFilesToHaikuImage and
-       # AddFilesToAlternativeGCCArchive.
-       #
-       # <useABISubDir>
-       #       if non-empty, specifies that an ABI subdirectory shall be 
appended to
-       #       <directory> for the alternative GCC archive.
-
-       local alternativeSubDir ;
-       if $(useABISubDir) {
-               alternativeSubDir = gcc$(HAIKU_GCC_VERSION[1]) ;
-       }
-
-       AddFilesToHaikuImage $(directory) : $(targets) : $(destName) ;
-       AddFilesToAlternativeGCCArchive $(directory) $(alternativeSubDir)
-               : $(targets) : $(destName) ;
-}
-
-rule AddSymlinkToHaikuHybridImage directoryTokens : linkTarget : linkName
-       : useSymlinkTargetABISubDir : useABISubDir
-{
-       # AddSymlinkToHaikuHybridImage <directoryTokens> : <linkTarget> : 
<linkName>
-       #       [ : <useSymlinkTargetABISubDir> [ :  <useABISubDir> ] ]
-       #
-       # Convenience rule calling both AddSymlinkToHaikuImage and
-       # AddSymlinkToAlternativeGCCArchive.
-       #
-       # <linkTarget>
-       #       Can be a list of components that will be joined to path 
inserting
-       #       "/"s inbetween.
-       # <useSymlinkTargetABISubDir>
-       #       If non-empty, specifies that an ABI subdirectory shall be 
inserted
-       #       into <linkTarget> (between the first and second component) for 
the
-       #       alternative GCC archive.
-       # <useABISubDir>
-       #       If non-empty, specifies that an ABI subdirectory part shall be 
appended
-       #       to the directory tokens for the alternative GCC archive.
-
-       local alternativeDirTokens = $(directoryTokens) ;
-       if $(useABISubDir) {
-               alternativeDirTokens += gcc$(HAIKU_GCC_VERSION[1]) ;
-       }
-
-       local alternativeLinkTarget = $(linkTarget) ;
-       if $(useSymlinkTargetABISubDir) {
-               alternativeLinkTarget = $(linkTarget[1]) 
gcc$(HAIKU_GCC_VERSION[1])
-                       $(linkTarget[2-]) ;
-       }
-       linkTarget = $(linkTarget:J=/) ;
-       alternativeLinkTarget = $(alternativeLinkTarget:J=/) ;
-
-       AddSymlinkToHaikuImage $(directoryTokens) : $(linkTarget) : $(linkName) 
;
-       AddSymlinkToAlternativeGCCArchive $(alternativeDirTokens)
-               : $(alternativeLinkTarget) : $(linkName) ;
-}
-
-rule AddLibrariesToHaikuHybridImage directory : libs
+rule AddLibrariesToHaikuImage directory : libs
 {
-       # AddLibraryToHaikuHybridImage <directory> : <libs>
+       # AddLibraryToHaikuImage <directory> : <libs>
        #
        # Installs libraries with the appropriate links onto the image.
        #
@@ -1257,12 +1145,10 @@ rule AddLibrariesToHaikuHybridImage directory : libs
                local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) 
] ;
                if $(abiVersion) {
                        local abiVersionedLib = $(lib).$(abiVersion) ;
-                       AddFilesToHaikuHybridImage $(directory)
-                               : $(lib) : $(abiVersionedLib) : true ;
-                       AddSymlinkToHaikuHybridImage $(directory)
-                               : $(abiVersionedLib) : $(lib) : : true ;
+                       AddFilesToHaikuImage $(directory) : $(lib) : 
$(abiVersionedLib) ;
+                       AddSymlinkToHaikuImage $(directory)     : 
$(abiVersionedLib) : $(lib) ;
                } else {
-                       AddFilesToHaikuHybridImage $(directory) : $(lib) : : 
true ;
+                       AddFilesToHaikuImage $(directory) : $(lib) ;
                }
        }
 }
diff --git a/build/jam/NetBootArchive b/build/jam/NetBootArchive
index 449674e..46b3a9b 100644
--- a/build/jam/NetBootArchive
+++ b/build/jam/NetBootArchive
@@ -50,18 +50,22 @@ AddFilesToNetBootArchive system add-ons kernel busses ide
        : generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 ;
 AddFilesToNetBootArchive system add-ons kernel busses scsi
        : ahci ;
-AddFilesToNetBootArchive system add-ons kernel console : vga_text ;
+AddFilesToNetBootArchive system add-ons kernel console
+       : vga_text ;
 AddFilesToNetBootArchive system add-ons kernel file_systems
        : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
 AddFilesToNetBootArchive system add-ons kernel generic
        : $(IDE_ONLY)ide_adapter $(ATA_ONLY)ata_adapter locked_pool scsi_periph 
;
-AddFilesToNetBootArchive system add-ons kernel partitioning_systems
+AddFilesToNetBootArchive
+       system add-ons kernel partitioning_systems
        : intel session ;
-AddFilesToNetBootArchive system add-ons kernel interrupt_controllers
+AddFilesToNetBootArchive
+       system add-ons kernel interrupt_controllers
        : $(PPC_ONLY)openpic ;
 
 if $(TARGET_ARCH) = x86 {
-       AddFilesToNetBootArchive system add-ons kernel cpu : generic_x86 ;
+       AddFilesToNetBootArchive system add-ons kernel cpu
+               : generic_x86 ;
 }
 
 # drivers
@@ -71,7 +75,8 @@ AddDriversToNetBootArchive disk virtual       : remote_disk ;
 AddDriversToNetBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
 
 # kernel
-AddFilesToNetBootArchive system : <revisioned>kernel_$(TARGET_ARCH) ;
+AddFilesToNetBootArchive system
+       : <revisioned>kernel_$(TARGET_ARCH) ;
 
 # scripts and data files
 
@@ -86,11 +91,13 @@ AddFilesToNetBootArchive system add-ons kernel network
        : <net>notifications stack ;
 AddFilesToNetBootArchive system add-ons kernel network devices
        : $(SYSTEM_NETWORK_DEVICES) ;
-AddFilesToNetBootArchive system add-ons kernel network datalink_protocols
+AddFilesToNetBootArchive
+       system add-ons kernel network datalink_protocols
        : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
 AddFilesToNetBootArchive system add-ons kernel network ppp
        : $(SYSTEM_NETWORK_PPP) ;
-AddFilesToNetBootArchive system add-ons kernel network protocols
+AddFilesToNetBootArchive
+       system add-ons kernel network protocols
        : $(SYSTEM_NETWORK_PROTOCOLS) ;
 
 # boot module links
diff --git a/build/jam/OptionalLibPackages b/build/jam/OptionalLibPackages
index ecaf225..a5d063a 100644
--- a/build/jam/OptionalLibPackages
+++ b/build/jam/OptionalLibPackages
@@ -2,15 +2,6 @@
 # It is directly included from HaikuImage -- all variables defined there can
 # be used
 
-# Detect a hybrid GCC2/GCC4 image and disable the checks for unavailable GCC4
-# packages. (It does not matter if a package was built with either compiler,
-# the system should have the respective other system libs.)
-local isHybridBuild ;
-if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1
-               && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
-       isHybridBuild = 1 ;
-}
-
 
 # Available Optional Lib Packages:
 #      AllegroLibs
@@ -65,7 +56,7 @@ if [ IsOptionalHaikuImagePackageAdded box2d ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package box2d available for $(TARGET_ARCH)" ;
        } else {
-               if $(HAIKU_GCC_VERSION[1]) >= 4 || $(isHybridBuild) {
+               if $(HAIKU_GCC_VERSION[1]) >= 4 {
                        InstallOptionalHaikuImagePackage
                                box2d-2.1.2-r1a3-r1a3-x86-gcc4-2011-05-26.zip
                                : 
$(baseURL)/lib/box2d-2.1.2-r1a3-x86-gcc4-2011-05-26.zip
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index 3f190a7..2a33a3d 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -2,15 +2,6 @@
 # It is directly included from HaikuImage -- all variables defined there can
 # be used
 
-# Detect a hybrid GCC2/GCC4 image and disable the checks for unavailable GCC4
-# packages. (It does not matter if a package was built with either compiler,
-# the system should have the respective other system libs.)
-local isHybridBuild ;
-if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) = 1
-               && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
-       isHybridBuild = 1 ;
-}
-
 
 # Available Optional Packages:
 #      ABI-compliance-checker  - tool for checking ABI compatibility between 
libs
@@ -99,7 +90,7 @@ local baseSourceURL = http://haiku-files.org/files/sources ;
 
 # ABI-compliance-checker
 if [ IsOptionalHaikuImagePackageAdded ABI-compliance-checker ] {
-       if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
+       if $(HAIKU_GCC_VERSION[1]) < 4 {
                Echo "No optional package ABI-compliance-checker for gcc2" ;
        } else {
                InstallOptionalHaikuImagePackage
@@ -114,12 +105,12 @@ if [ IsOptionalHaikuImagePackageAdded APR ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package APR available for $(TARGET_ARCH)" ;
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        apr-1.4.2-r1a3-x86-gcc4-2011-05-24.zip
                        : $(baseURL)/apr-1.4.2-r1a3-x86-gcc4-2011-05-24.zip
                        : : true ;
        } else {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        apr-1.4.2-r1a3-x86-gcc2-2011-05-17.zip
                        : $(baseURL)/apr-1.4.2-r1a3-x86-gcc2-2011-05-17.zip
                        : : true ;
@@ -132,12 +123,12 @@ if [ IsOptionalHaikuImagePackageAdded APR-util ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package APR-util available for 
$(TARGET_ARCH)" ;
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        apr-util-1.3.10-r1a3-x86-gcc4-2011-05-24.zip
                        : 
$(baseURL)/apr-util-1.3.10-r1a3-x86-gcc4-2011-05-24.zip
                        : : true ;
        } else {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        apr-util-1.3.10-r1a3-x86-gcc2-2011-05-17.zip
                        : 
$(baseURL)/apr-util-1.3.10-r1a3-x86-gcc2-2011-05-17.zip
                        : : true ;
@@ -149,10 +140,10 @@ if [ IsOptionalHaikuImagePackageAdded APR-util ] {
 if [ IsOptionalHaikuImagePackageAdded ArmyKnife ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package ArmyKnife available for 
$(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package ArmyKnife for gcc4" ;
        } else {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        armyknife-63-r1a3-x86-gcc2-2011-06-04.zip
                        : $(baseURL)/armyknife-63-r1a3-x86-gcc2-2011-06-04.zip ;
                AddSymlinkToHaikuImage home config be Applications
@@ -181,7 +172,7 @@ if [ IsOptionalHaikuImagePackageAdded BeAE ] {
                Echo "No optional package BeAE available for $(TARGET_ARCH)" ;
        } else {
                if $(HAIKU_GCC_VERSION[1]) >= 4 {
-                       InstallOptionalHaikuImagePackage 
+                       InstallOptionalHaikuImagePackage
                                beae-22-r1a3-x86-gcc4-2011-05-24.zip
                                : 
$(baseURL)/beae-22-r1a3-x86-gcc4-2011-05-24.zip ;
                } else {
@@ -199,7 +190,7 @@ if [ IsOptionalHaikuImagePackageAdded BeAE ] {
 if [ IsOptionalHaikuImagePackageAdded Beam ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package Beam available for $(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package Beam available for gcc4" ;
        } else {
                InstallOptionalHaikuImagePackage 
Beam-1.2alpha-x86-gcc2-2010-04-29.zip
@@ -216,7 +207,8 @@ if [ IsOptionalHaikuImagePackageAdded BeBook ] {
                : $(baseURL)/bebook_20081026.zip
                : system documentation ;
        AddSymlinkToHaikuImage home Desktop
-               : /boot/system/documentation/bebook/index.html : BeBook ;
+               : /boot/system/documentation/bebook/index.html
+               : BeBook ;
 }
 
 
@@ -224,7 +216,7 @@ if [ IsOptionalHaikuImagePackageAdded BeBook ] {
 if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package BeHappy available for $(TARGET_ARCH)" 
;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package BeHappy available for gcc4" ;
        } else {
                Echo "No optional package BeHappy available for gcc2" ;
@@ -236,14 +228,15 @@ if [ IsOptionalHaikuImagePackageAdded BeHappy ] {
 if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package BeOSCompatibility available for 
$(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package BeOSCompatibility available for gcc4" 
;
        } else {
                Echo "Warning: Adding BeOS compatibility symlinks. This will go 
away. Please fix your apps!" ;
                AddSymlinkToHaikuImage beos : ../system/apps ;
                AddSymlinkToHaikuImage beos : ../system/bin ;
-               AddSymlinkToHaikuImage beos : ../system/documentation ;
-               AddSymlinkToHaikuImage beos : ../common/etc ;
+               AddSymlinkToHaikuImage beos
+                       : ../system/documentation ;
+               AddSymlinkToHaikuImage beos : ../common/settings/etc ;
                AddSymlinkToHaikuImage beos : ../system/preferences ;
                AddSymlinkToHaikuImage beos : ../system ;
                AddDirectoryToHaikuImage var ;
@@ -257,7 +250,7 @@ if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] {
 if [ IsOptionalHaikuImagePackageAdded BePDF ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package BePDF available for $(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package BePDF available for gcc4" ;
        } else {
                InstallOptionalHaikuImagePackage
@@ -297,18 +290,21 @@ if [ IsOptionalHaikuImagePackageAdded Bluetooth ] {
        AddDriversToHaikuImage bluetooth : $(bluetoothDrivers) ;
        AddFilesToHaikuImage system servers : bluetooth_server ;
        AddFilesToHaikuImage system lib : libbluetooth.so ;
-       AddFilesToHaikuImage system add-ons kernel network protocols : l2cap ;
-       AddFilesToHaikuImage system add-ons kernel bluetooth : btCoreData hci ;
+       AddFilesToHaikuImage
+               system add-ons kernel network protocols : l2cap ;
+       AddFilesToHaikuImage system add-ons kernel bluetooth
+               : btCoreData hci ;
        AddFilesToHaikuImage system preferences : Bluetooth ;
-       AddFilesToHaikuImage system bin : bt_dev_info bt_discovery ;
+       AddFilesToHaikuImage system bin
+               : bt_dev_info bt_discovery ;
        AddSymlinkToHaikuImage home config be Preferences
                : /boot/system/preferences/Bluetooth ;
        if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ]
                && $(HAIKU_GCC_VERSION[1]) in 2 4 {
                local arch = $(TARGET_ARCH) ;
                local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
-               AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
-                       : /system/lib libbluetooth.so : : true ;
+               AddSymlinkToHaikuImage system develop lib
+                       : /system/lib libbluetooth.so ;
        }
 }
 
@@ -407,7 +403,7 @@ if [ IsOptionalHaikuImagePackageAdded Clockwerk ] {
 if [ IsOptionalHaikuImagePackageAdded CLucene ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package CLucene available for $(TARGET_ARCH)" 
;
-       } else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) < 4 {
                Echo "No optional package CLucene available for GCC2" ;
        } else {
                InstallOptionalHaikuImagePackage
@@ -517,39 +513,22 @@ if [ IsOptionalHaikuImagePackageAdded Development ] && 
$(TARGET_ARCH) = x86 {
 if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ]
                && $(TARGET_ARCH) = x86 {
        # gcc and binutils
-       if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) {
-               InstallOptionalHaikuImagePackage
-                       gcc-2.95.3-r1a3-x86-gcc2-2010-08-18.zip
-                       : $(baseURL)/gcc-2.95.3-r1a3-x86-gcc2-2010-08-18.zip ;
-       }
-
        if $(HAIKU_GCC_VERSION[1]) = 2 {
-               # symlink to the appropriate system/lib[/gcc2] folder
-               AddSymlinkToHaikuHybridImage
-                       develop abi x86 gcc2 tools gcc-2.95.3-haiku-100818 lib
-                       : /system/lib libstdc++.r4.so : : true ;
+               InstallCommonPackage gcc-2.95.3_110304-1.hpkg
+                       : $(baseURL)/gcc-2.95.3_110304.hpkg ;
+
+               # TODO: remove this when we have a mechanism to switch gcc via 
PATH
+               AddSymlinkToHaikuImage common settings develop tools
+                       : /boot/common/develop/tools/gcc-2.95.3-110304
+                       : current ;
        }
 
-       if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) {
+       if $(HAIKU_GCC_VERSION[1]) = 4 {
                InstallOptionalHaikuImagePackage
                        gcc-4.5.3-r1a3-x86-gcc4-2011-06-20.zip
                        : $(baseURL)/gcc-4.5.3-r1a3-x86-gcc4-2011-06-20.zip ;
        }
 
-       if $(HAIKU_GCC_VERSION[1]) = 4 {
-               # symlink cpp to g++'s headers
-               AddSymlinkToHaikuHybridImage develop abi x86 gcc4 headers
-                       : ../tools/current/include/g++ : cpp ;
-
-               # symlink to the appropriate system/lib[/gcc4] folder
-               local libs = libstdc++.so libsupc++.so ;
-               for lib in $(libs) {
-                       AddSymlinkToHaikuHybridImage
-                               develop abi x86 gcc4 tools 
gcc-4.5.3-haiku-110620 lib
-                               : /system/lib $(lib) : : true ;
-               }
-       }
-
        # other commonly used tools
        if $(HAIKU_GCC_VERSION[1]) >= 4 {
                InstallOptionalHaikuImagePackage
@@ -606,7 +585,8 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentJava ] {
                InstallOptionalHaikuImagePackage
                        jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip
                        : $(baseURL)/jamvm-1.5.4-r1a3-x86-gcc4-2011-06-08.zip ;
-               AddSymlinkToHaikuImage common bin : /boot/common/bin/jamvm : 
java ;
+               AddSymlinkToHaikuImage common bin
+                       : /boot/common/bin/jamvm : java ;
                InstallOptionalHaikuImagePackage
                        ecj-3.6.2-haiku-2011-06-08.zip
                        : $(baseURL)/ecj-3.6.2-haiku-2011-06-08.zip ;
@@ -622,11 +602,10 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && 
$(TARGET_ARCH) = x86 {
        }
 
        local arch = $(TARGET_ARCH) ;
-       local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
-       local abiDirTokens = develop abi $(arch) $(abi) ;
+       local developDirTokens = system develop ;
 
        # glue code
-       AddFilesToHaikuHybridImage $(abiDirTokens) lib :
+       AddFilesToHaikuImage $(developDirTokens) lib :
                <src!system!glue!arch!$(arch)>crti.o
                <src!system!glue!arch!$(arch)>crtn.o
                <src!system!glue>init_term_dyn.o
@@ -635,44 +614,31 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && 
$(TARGET_ARCH) = x86 {
        ;
 
        # kernel
-       AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ;
+       AddFilesToHaikuImage $(developDirTokens) lib : kernel.so : _KERNEL_ ;
 
        # additional libraries
        local developmentLibs = <revisioned>libroot_debug.so ;
-       AddFilesToHaikuHybridImage system lib : $(developmentLibs) : : true ;
+       AddFilesToHaikuImage system lib : $(developmentLibs) ;
 
        # library symlinks
        local lib ;
        for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) 
$(developmentLibs) {
-               AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
-                       : /system/lib $(lib:BS) : : true ;
+               AddSymlinkToHaikuImage $(developDirTokens) lib
+                       : /system/lib $(lib:BS) ;
                local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) 
] ;
                if $(abiVersion) {
                        local abiVersionedLib = $(lib:BS).$(abiVersion) ;
-                       AddSymlinkToHaikuHybridImage $(abiDirTokens) lib
-                               : /system/lib $(abiVersionedLib) : : true ;
+                       AddSymlinkToHaikuImage $(developDirTokens) lib
+                               : /system/lib $(abiVersionedLib) ;
                }
        }
 
        # static libraries
-       AddFilesToHaikuHybridImage $(abiDirTokens) lib : libncurses.a ;
-       AddFilesToHaikuHybridImage $(abiDirTokens) lib : liblocalestub.a ;
+       AddFilesToHaikuImage $(developDirTokens) lib : libncurses.a ;
+       AddFilesToHaikuImage $(developDirTokens) lib : liblocalestub.a ;
 
        # the POSIX error code mapper library
-       AddFilesToHaikuHybridImage $(abiDirTokens) lib : 
libposix_error_mapper.a ;
-
-       # symlinks for ABI abstraction
-       AddSymlinkToHaikuImage develop abi : $(arch)/$(abi) : current ;
-       AddSymlinkToHaikuImage develop lib : /boot/develop/abi/current/lib
-               : $(arch) ;
-       AddSymlinkToHaikuImage develop tools
-               : /boot/develop/abi/current/tools/current : gnupro ;
-       AddSymlinkToHaikuImage develop headers
-               : /boot/develop/abi/current/headers/cpp ;
-       AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
-               : /boot/common/lib : common : true ;
-       AddSymlinkToHaikuHybridImage $(abiDirTokens) library-paths
-               : /boot/home/config/lib : home : true ;
+       AddFilesToHaikuImage $(developDirTokens) lib : libposix_error_mapper.a ;
 
        # ABI independent stuff
 
@@ -688,7 +654,8 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && 
$(TARGET_ARCH) = x86 {
        ;
        SEARCH on $(makefileEngineFiles)
                = [ FDirName $(HAIKU_TOP) data develop ] ;
-       AddFilesToHaikuImage develop etc : $(makefileEngineFiles) ;
+       AddFilesToHaikuImage common develop etc
+               : $(makefileEngineFiles) ;
 
        # headers
        AddHeaderDirectoryToHaikuImage config ;
@@ -697,7 +664,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && 
$(TARGET_ARCH) = x86 {
        AddHeaderDirectoryToHaikuImage posix ;
 
        # create be -> os symlink for now
-       AddSymlinkToHaikuImage develop headers : os : be ;
+       AddSymlinkToHaikuImage $(developDirTokens) headers : os : be ;
 
        # BSD and GNU compatibility headers
        AddHeaderDirectoryToHaikuImage compatibility bsd : bsd ;
@@ -715,10 +682,8 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && 
$(TARGET_ARCH) = x86 {
        # cpp headers
        if $(HAIKU_GCC_VERSION[1]) = 2 {
                # GCC 2 only -- for GCC 4 they come with the DevelopmentBase 
package
-               CopyDirectoryToHaikuImage $(abiDirTokens) headers
-                       : [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
-               CopyDirectoryToAlternativeGCCArchive $(abiDirTokens) headers
-                       : [ FDirName $(HAIKU_TOP) headers cpp ] : : -x .svn ;
+               CopyDirectoryToHaikuImage $(developDirTokens) headers c++
+                       : [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 : -x 
.svn ;
        }
 }
 
@@ -783,9 +748,13 @@ if [ IsOptionalHaikuImagePackageAdded Fastdep ] {
 if [ IsOptionalHaikuImagePackageAdded friss ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package friss available for $(TARGET_ARCH)" ;
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
+               InstallOptionalHaikuImagePackage friss-0.5pre7-x86-gcc4.zip
+                       : $(baseURL)/friss-0.5pre7-x86-gcc4.zip
+                       : : true ;
        } else {
                if $(HAIKU_GCC_VERSION[1]) >= 4 {
-                       InstallOptionalHaikuImagePackage 
+                       InstallOptionalHaikuImagePackage
                                friss-24-r1a3-x86-gcc4-2011-05-31.zip
                                : 
$(baseURL)/friss-24-r1a3-x86-gcc4-2011-05-31.zip ;
                } else {
@@ -889,26 +858,14 @@ if [ IsOptionalHaikuImagePackageAdded ICU ] {
                        InstallOptionalHaikuImagePackage 
$(HAIKU_ICU_GCC_2_PACKAGE)
                                : $(baseURL)/$(HAIKU_ICU_GCC_2_PACKAGE)
                                : system lib ;
-                       if $(isHybridBuild) {
-                               # unzip gcc4 to gcc4 subdir
-                               InstallOptionalHaikuImagePackage 
$(HAIKU_ICU_GCC_4_PACKAGE)
-                                       : $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE)
-                                       : system lib gcc4 ;
-                       }
                } else {
                        # unzip gcc4
                        InstallOptionalHaikuImagePackage 
$(HAIKU_ICU_GCC_4_PACKAGE)
                                : $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE)
                                : system lib ;
-                       if $(isHybridBuild) {
-                               # unzip gcc2 to gcc2 subdir
-                               InstallOptionalHaikuImagePackage 
$(HAIKU_ICU_GCC_2_PACKAGE)
-                                       : $(baseURL)/$(HAIKU_ICU_GCC_2_PACKAGE)
-                                       : system lib gcc2 ;
                        }
                }
        }
-}
 
 
 # ICU-devel
@@ -921,9 +878,9 @@ if [ IsOptionalHaikuImagePackageAdded ICU-devel ] {
        for abiVersionedLib in $(HAIKU_ICU_LIBS) {
                abiVersionedLib = $(abiVersionedLib:G=) ;
                local lib = $(abiVersionedLib:B) ;
-               AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
-                       : /system/lib $(abiVersionedLib) : : true ;
-               AddSymlinkToHaikuHybridImage develop abi $(arch) $(abi) lib
+               AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
+                       : /system/lib $(abiVersionedLib) ;
+               AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
                        : $(abiVersionedLib) : $(lib) ;
        }
 }
@@ -991,7 +948,7 @@ if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
 if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package LibLayout available for 
$(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package LibLayout available for gcc4" ;
        } else {
                InstallOptionalHaikuImagePackage 
liblayout-1.4.0-gcc2-2009-03-08.zip
@@ -1005,11 +962,11 @@ if [ IsOptionalHaikuImagePackageAdded Libmng ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package Libmng available for $(TARGET_ARCH)" ;
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        libmng-1.0.10-r1a3-x86-gcc4-2011-05-24.zip
                        : 
$(baseURL)/lib/libmng-1.0.10-r1a3-x86-gcc4-2011-05-24.zip ;
        } else {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        libmng-1.0.10-r1a3-x86-gcc2-2011-05-18.zip
                        : 
$(baseURL)/lib/libmng-1.0.10-r1a3-x86-gcc2-2011-05-18.zip ;
        }
@@ -1041,7 +998,7 @@ if [ IsOptionalHaikuImagePackageAdded LibXSLT ] {
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                InstallOptionalHaikuImagePackage
                        libxslt-1.1.26-r1a3-x86-gcc4-2011-05-24.zip
-                       : 
$(baseURL)/libxslt-1.1.26-r1a3-x86-gcc4-2011-05-24.zip ;              
+                       : 
$(baseURL)/libxslt-1.1.26-r1a3-x86-gcc4-2011-05-24.zip ;
        } else {
                InstallOptionalHaikuImagePackage
                        libxslt-1.1.26-r1a3-x86-gcc2-2011-05-18.zip
@@ -1055,7 +1012,7 @@ if [ IsOptionalHaikuImagePackageAdded LibXSLT ] {
 if [ IsOptionalHaikuImagePackageAdded Links ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package Links available for $(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package Links available for gcc4" ;
        } else {
                InstallOptionalHaikuImagePackage Links.zip
@@ -1093,7 +1050,7 @@ if [ IsOptionalHaikuImagePackageAdded Man ] {
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                InstallOptionalHaikuImagePackage
                         man-1.6f-r1a3-x86-gcc4-2011-05-24.zip
-                       : $(baseURL)/man-1.6f-r1a3-x86-gcc4-2011-05-24.zip ;    
        
+                       : $(baseURL)/man-1.6f-r1a3-x86-gcc4-2011-05-24.zip ;
        } else {
                InstallOptionalHaikuImagePackage
                         man-1.6f-r1a3-x86-gcc2-2011-05-18.zip
@@ -1167,11 +1124,13 @@ if [ IsOptionalHaikuImagePackageAdded Neon ] {
 # NetFS network file system
 if [ IsOptionalHaikuImagePackageAdded NetFS ] {
        # userlandfs module
-       AddFilesToHaikuImage home config add-ons userlandfs : netfs ;
+       AddFilesToHaikuImage home config add-ons userlandfs
+               : netfs ;
 
        # servers
        AddFilesToHaikuImage system servers : netfs_server ;
-       AddFilesToHaikuImage system servers : authentication_server ;
+       AddFilesToHaikuImage system servers
+               : authentication_server ;
 
        # tools
        AddFilesToHaikuImage system bin : netfs_config ;
@@ -1197,10 +1156,10 @@ if [ IsOptionalHaikuImagePackageAdded NetFS ] {
 if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package NetSurf available for $(TARGET_ARCH)" 
;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package NetSurf available for gcc4" ;
        } else {
-               InstallOptionalHaikuImagePackage 
+               InstallOptionalHaikuImagePackage
                        netsurf-2.7-r1a3-x86-gcc2-2011-06-04.zip
                        : $(baseURL)/netsurf-2.7-r1a3-x86-gcc2-2011-06-04.zip ;
                AddSymlinkToHaikuImage home config be Applications
@@ -1213,7 +1172,7 @@ if [ IsOptionalHaikuImagePackageAdded NetSurf ] {
 if [ IsOptionalHaikuImagePackageAdded OCaml ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package OCaml available for $(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package OCaml available for gcc4" ;
        } else {
                InstallOptionalHaikuImagePackage
@@ -1309,11 +1268,11 @@ if [ IsOptionalHaikuImagePackageAdded Paladin ] {
                Echo "No optional package Paladin available for $(TARGET_ARCH)" 
;
        } else {
                if $(HAIKU_GCC_VERSION[1]) >= 4 {
-                       InstallOptionalHaikuImagePackage 
+                       InstallOptionalHaikuImagePackage
                                paladin-1.3-r1a3-x86-gcc4-2011-05-24.zip
                                : 
$(baseURL)/paladin-1.3-r1a3-x86-gcc4-2011-05-24.zip ;
                } else {
-                       InstallOptionalHaikuImagePackage 
+                       InstallOptionalHaikuImagePackage
                                paladin-1.3-r1a3-x86-gcc2-2011-05-18.zip
                                : 
$(baseURL)/paladin-1.3-r1a3-x86-gcc2-2011-05-18.zip ;
                }
@@ -1332,7 +1291,7 @@ if [ IsOptionalHaikuImagePackageAdded PCRE ] {
                Echo "No optional package PCRE available for $(TARGET_ARCH)" ;
        } else {
                if $(HAIKU_GCC_VERSION[1]) >= 4 {
-                       InstallOptionalHaikuImagePackage 
+                       InstallOptionalHaikuImagePackage
                                libpcre-8.12-r1a3-x86-gcc4-2011-05-24.zip
                                : 
$(baseURL)/libpcre-8.12-r1a3-x86-gcc4-2011-05-24.zip ;
                } else {
@@ -1503,7 +1462,7 @@ if [ IsOptionalHaikuImagePackageAdded TagLib ] {
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                InstallOptionalHaikuImagePackage
                        taglib-1.6.3-r1r3-x86-gcc4-2011-05-24.zip
-                       : $(baseURL)/taglib-1.6.3-r1r3-x86-gcc4-2011-05-24.zip 
;                
+                       : $(baseURL)/taglib-1.6.3-r1r3-x86-gcc4-2011-05-24.zip ;
        } else {
                InstallOptionalHaikuImagePackage
                        taglib-1.6.3-r1a3-x86-gcc2-2011-05-20.zip
@@ -1572,7 +1531,8 @@ if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
        local abi = gcc$(HAIKU_GCC_VERSION[1]) ;
 
        # kernel module
-       AddFilesToHaikuImage system add-ons kernel file_systems : userlandfs ;
+       AddFilesToHaikuImage system add-ons kernel file_systems
+               : userlandfs ;
 
        # server
        AddFilesToHaikuImage system servers : userlandfs_server ;
@@ -1583,7 +1543,7 @@ if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
                libuserlandfs_haiku_kernel.so
                libuserlandfs_fuse.so
        ;
-       AddFilesToHaikuHybridImage system lib : $(userlandfsLibs) : : true ;
+       AddFilesToHaikuImage system lib : $(userlandfsLibs) ;
 
        # development goodies
        if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] {
@@ -1597,8 +1557,6 @@ if [ IsOptionalHaikuImagePackageAdded UserlandFS ] {
                for lib in $(userlandfsLibs) {
                        AddSymlinkToHaikuImage develop abi $(arch) $(abi) lib
                                : /system/lib/$(lib:BS) ;
-                       AddSymlinkToAlternativeGCCArchive develop abi $(arch) 
$(abi) lib
-                               : /system/lib/$(arch)/$(lib:BS) ;
                }
 
                # FUSE headers
@@ -1650,7 +1608,7 @@ if [ IsOptionalHaikuImagePackageAdded Vision ] {
                        InstallOptionalHaikuImagePackage 
vision-908-r1a3-x86-gcc4-2011-06-07.zip
                                : 
$(baseURL)/vision-908-r1a3-x86-gcc4-2011-06-07.zip ;
                } else {
-                       InstallOptionalHaikuImagePackage 
+                       InstallOptionalHaikuImagePackage
                                vision-908-r1a3-x86-gcc2-2011-06-07.zip
                                : 
$(baseURL)/vision-908-r1a3-x86-gcc2-2011-06-07.zip ;
                }
@@ -1664,7 +1622,7 @@ if [ IsOptionalHaikuImagePackageAdded Vision ] {
 if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package WebPositive available for 
$(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) < 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) < 4 {
                Echo "No optional package WebPositive available for gcc2" ;
        } else {
                InstallOptionalHaikuImagePackage
@@ -1685,9 +1643,11 @@ if [ IsOptionalHaikuImagePackageAdded Welcome ] {
                : [ FDirName $(HAIKU_TOP) docs userguide ]
                : userguide : -x .svn ;
        AddSymlinkToHaikuImage home Desktop
-               : /boot/system/documentation/welcome/welcome_en.html : Welcome ;
+               : /boot/system/documentation/welcome/welcome_en.html
+               : Welcome ;
        AddSymlinkToHaikuImage home Desktop
-               : /boot/system/documentation/userguide/en/contents.html : User\ 
Guide ;
+               : /boot/system/documentation/userguide/en/contents.html
+               : User\ Guide ;
 }
 
 
@@ -1707,18 +1667,21 @@ if [ IsOptionalHaikuImagePackageAdded 
WifiFirmwareScriptData ] {
                        
http://bu3sch.de/b43/fwcutter/$(broadcomFWCutterArchive) ;
                local broadcomFWCutterFile = [ DownloadFile 
$(broadcomFWCutterArchive)
                        : $(broadcomFWCutterURL) ] ;
-               AddFilesToHaikuImage system data firmware broadcom43xx 
b43-fwcutter
+               AddFilesToHaikuImage
+                       system data firmware broadcom43xx b43-fwcutter
                        : $(broadcomFWCutterFile) ;
 
                # headers needed to compile firmware cutter
                local glibcDir = [ FDirName
                        $(HAIKU_TOP) src system libroot posix glibc ] ;
                local byteswapHeader = [ FDirName $(glibcDir) string byteswap.h 
] ;
-               AddFilesToHaikuImage system data firmware broadcom43xx 
b43-fwcutter
+               AddFilesToHaikuImage
+                       system data firmware broadcom43xx b43-fwcutter
                        : $(byteswapHeader) ;
                local bitByteswapHeader = [ FDirName
                        $(glibcDir) include arch x86 bits byteswap.h ] ;
-               AddFilesToHaikuImage system data firmware broadcom43xx 
b43-fwcutter bits
+               AddFilesToHaikuImage
+                       system data firmware broadcom43xx b43-fwcutter bits
                        : $(bitByteswapHeader) ;
 
                # file containing firmware
@@ -1732,7 +1695,8 @@ if [ IsOptionalHaikuImagePackageAdded 
WifiFirmwareScriptData ] {
                local marvelArchive = malo-firmware-1.4.tgz ;
                local marvelURL = http://www.nazgul.ch/malo/$(marvelArchive) ;
                local marvelFile = [ DownloadFile $(marvelArchive) : 
$(marvelURL) ] ;
-               AddFilesToHaikuImage system data firmware marvell88w8335
+               AddFilesToHaikuImage
+                       system data firmware marvell88w8335
                        : $(marvelFile) ;
        }
 }
@@ -1742,7 +1706,7 @@ if [ IsOptionalHaikuImagePackageAdded 
WifiFirmwareScriptData ] {
 if [ IsOptionalHaikuImagePackageAdded WonderBrush ] {
        if $(TARGET_ARCH) != x86 {
                Echo "No optional package WonderBrush available for 
$(TARGET_ARCH)" ;
-       } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) {
+       } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                Echo "No optional package WonderBrush available for gcc4" ;
        } else {
                InstallOptionalHaikuImagePackage WonderBrush-2.1.2.zip
diff --git a/build/jam/UserBuildConfig.ReadMe b/build/jam/UserBuildConfig.ReadMe
index d1c9eb1..f4032a7 100644
--- a/build/jam/UserBuildConfig.ReadMe
+++ b/build/jam/UserBuildConfig.ReadMe
@@ -137,14 +137,6 @@ AddOptionalHaikuImagePackages WonderBrush ;
 AddOptionalHaikuImagePackages WebPositive ;
 SuppressOptionalHaikuImagePackages SQLite ;
 
-# Don't add the libraries built with the alternative gcc version.
-# If the alternative gcc generated directory has been specified via the
-# configure option --alternative-gcc-output-dir, the libraries for the
-# alternative gcc version are added by default. Unsetting this variable 
disables
-# building and adding the libraries. Ignored, if --alternative-gcc-output-dir
-# was not specified.
-HAIKU_ADD_ALTERNATIVE_GCC_LIBS = 0 ;
-
 # Specify scripts that shall be run when populating the image/installation
 # directory. The "early" script is run before anything has been copied onto
 # the image/into the installation directory. The "late" script is run after
diff --git a/build/jam/UserBuildConfig.sample b/build/jam/UserBuildConfig.sample
index ba88a59..4a164b1 100644
--- a/build/jam/UserBuildConfig.sample
+++ b/build/jam/UserBuildConfig.sample
@@ -27,6 +27,3 @@
 
 # Add the optional package WonderBrush to the image.
 #AddOptionalHaikuImagePackages WonderBrush ;
-
-# Don't add the libraries built with the alternative gcc version.
-#HAIKU_ADD_ALTERNATIVE_GCC_LIBS = 0 ;
diff --git a/build/scripts/build_haiku_image b/build/scripts/build_haiku_image
index d6001f9..1d2aed0 100755
--- a/build/scripts/build_haiku_image
+++ b/build/scripts/build_haiku_image
@@ -163,19 +163,23 @@ extractFile()
        targetExtractedDir=$2
        extractedSubDir=$3
 
-       echo "Extracting $archiveFile ..."
-
        extractDir=$tmpDir/extract
        $rmAttrs -rf "$extractDir"
        mkdir -p "$extractDir"
 
        case "$archiveFile" in
                *.zip)
+                       echo "Extracting $archiveFile ..."
                        $unzip -q -d "$extractDir" "$archiveFile"
                        ;;
                *.tgz|*.tar.gz)
+                       echo "Extracting $archiveFile ..."
                        tar -C "$extractDir" -xf "$archiveFile"
                        ;;
+               *.hpkg)
+                       echo "Adding package $archiveFile ..."
+                       cp "$archiveFile" "$extractDir"
+                       ;;
                *)
                        echo "Unhandled archive extension in build_haiku_image 
extractFile()"
                        exit 1
diff --git a/configure b/configure
index a93bd04..d7b4e18 100755
--- a/configure
+++ b/configure
@@ -12,20 +12,6 @@ usage()
 
 Usage: $0 <options>
 options:
-  --alternative-gcc-output-dir <dir>
-                              Build a Haiku installation that supports running
-                              executables built with a gcc version incompatible
-                              with the primary gcc (e.g. gcc 2 executables 
under
-                              a gcc 4 Haiku or vice versa). <dir> specifies the
-                              output directory of the other gcc. The directory
-                              must already be fully configured.
-                              Note, that a sub-jam will be executed when
-                              building Haiku. When using a jam that is not
-                              simply invoked by "jam", the JAM build variable
-                              needs to be set accordingly.
-                              To disable building the alternative libraries
-                              the variable HAIKU_ADD_ALTERNATIVE_GCC_LIBS can 
be
-                              unset in the UserBuildConfig file.
   --build-cross-tools <build tools dir>
                               Assume cross compilation. <build tools dir>
                               defines the location of the build tools sources.
@@ -320,14 +306,12 @@ TARGET_PLATFORM=haiku
 HAIKU_USE_GCC_PIPE=0
 HAIKU_HOST_USE_32BIT=0
 HAIKU_HOST_USE_XATTR=0
-HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR=
-HAIKU_ADD_ALTERNATIVE_GCC_LIBS=0
 HOST_GCC_LD=`gcc -print-prog-name=ld`
 HOST_GCC_OBJCOPY=`gcc -print-prog-name=objcopy`
 SFDISK_BINARY=sfdisk
 HOST_SFDISK=$SFDISK_BINARY
 
-haikuRequiredLegacyGCCVersion="2.95.3-haiku-100818"
+haikuRequiredLegacyGCCVersion="2.95.3-110228"
 export haikuRequiredLegacyGCCVersion
        # version of legacy gcc required to build haiku
 
@@ -377,14 +361,6 @@ fi
 #
 while [ $# -gt 0 ] ; do
        case "$1" in
-               --alternative-gcc-output-dir)
-                       assertparam "$1" $#
-                       cd $2 || exit 1
-                       HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR=`pwd`
-                       HAIKU_ADD_ALTERNATIVE_GCC_LIBS=1
-                       cd $currentDir
-                       shift 2
-                       ;;
                --build-cross-tools) assertparam "$1" $#; buildCrossTools=$2; 
shift 2;;
                --build-cross-tools-gcc4)
                        assertparams "$1" 2 $#
@@ -558,8 +534,6 @@ HAIKU_DISTRO_COMPATIBILITY                  ?= 
"${HAIKU_DISTRO_COMPATIBILITY}" ;
 HAIKU_USE_GCC_PIPE                                     ?= 
"${HAIKU_USE_GCC_PIPE}" ;
 HAIKU_HOST_USE_32BIT                           ?= "${HAIKU_HOST_USE_32BIT}" ;
 HAIKU_HOST_USE_XATTR                           ?= "${HAIKU_HOST_USE_XATTR}" ;
-HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR       ?= ${HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR} ;
-HAIKU_ADD_ALTERNATIVE_GCC_LIBS         ?= ${HAIKU_ADD_ALTERNATIVE_GCC_LIBS} ;
 
 HAIKU_GCC_RAW_VERSION          ?= ${HAIKU_GCC_RAW_VERSION} ;
 HAIKU_GCC_MACHINE                      ?= ${HAIKU_GCC_MACHINE} ;
diff --git a/data/system/boot/SetupEnvironment 
b/data/system/boot/SetupEnvironment
index 0f3bd51..ad0a158 100644
--- a/data/system/boot/SetupEnvironment
+++ b/data/system/boot/SetupEnvironment
@@ -6,8 +6,10 @@
 export HOME=/boot/home
 export LC_CTYPE="en_US.UTF-8"
 
-BUILDHOME=/boot/develop
-BETOOLS="$BUILDHOME/tools/gnupro/bin"
+BUILDHOME=/boot/system/develop
+
+#TODO: fix this or drop it!
+BETOOLS="/boot/common/settings/develop/tools/current/bin"
 
 case `uname -m` in
 BePC|Intel|unknown)
@@ -20,7 +22,9 @@ BeMac|BeBox)
        BE_HOST_CPU=unknown
 esac
 
-BELIBRARIES="$BUILDHOME/abi/current/library-paths/common:$BUILDHOME/lib/$BE_HOST_CPU"
+BELIBRARIES="/boot/common/non-packaged/lib:/boot/common/lib:$BUILDHOME/lib"
+
+# not used by Haiku, but probably by legacy applications (BeIDE?)
 BH=$BUILDHOME/headers
 
BEINCLUDES="$BH;$BH/be;$BH/posix;$BH/glibc;$BH/cpp;$BH/be/app;$BH/be/device;$BH/be/interface;$BH/be/locale;$BH/be/media;$BH/be/midi;$BH/be/midi2;$BH/be/net;$BH/be/kernel;$BH/be/storage;$BH/be/support;$BH/be/game;$BH/be/opengl;$BH/be/drivers;$BH/gnu;$BH/be/mail;$BH/be/translation;$BH/be/devel;$BH/be/add-ons/graphics;$BH/be/be_apps/Deskbar;$BH/be/be_apps/NetPositive;$BH/be/be_apps/Tracker"
 
@@ -40,13 +44,13 @@ export BE_DEFAULT_CPLUS_FLAGS=""
 
 if [ "$SAFEMODE" != "yes" ]
 then
-       export 
PATH=.:$HOME/config/bin:/boot/common/bin:/bin:/boot/apps:/boot/preferences:/boot/system/apps:/boot/system/preferences:$BETOOLS
-       export 
LIBRARY_PATH="%A/lib:$HOME/config/lib:/boot/common/lib:/boot/system/lib"
-       export 
ADDON_PATH="%A/add-ons:$HOME/config/add-ons:/boot/common/add-ons:/boot/system/add-ons"
+       export 
PATH=.:$HOME/config/non-packaged/bin:$HOME/config/bin:/boot/common/non-packaged/bin:/boot/common/bin:/bin:/boot/apps:/boot/preferences:/boot/system/apps:/boot/system/preferences:$BETOOLS
+       export 
LIBRARY_PATH="%A/lib:$HOME/config/non-packaged/lib:$HOME/config/lib:/boot/common/non-packaged/lib:/boot/common/lib:/boot/system/lib"
+       export 
ADDON_PATH="%A/add-ons:$HOME/config/non-packaged/add-ons:$HOME/config/add-ons:/boot/common/non-packaged/add-ons:/boot/common/add-ons:/boot/system/add-ons"
 else
-       export 
PATH=.:/boot/common/bin:/bin:/boot/apps:/boot/preferences:/boot/system/apps:/boot/system/preferences:$BETOOLS
-       export LIBRARY_PATH="%A/lib:/boot/common/lib:/boot/system/lib"
-       export ADDON_PATH="%A/add-ons:/boot/common/add-ons:/boot/system/add-ons"
+       export 
PATH=.:/bin:/boot/apps:/boot/system/apps:/boot/system/preferences:$BETOOLS
+       export LIBRARY_PATH="%A/lib:/boot/system/lib"
+       export ADDON_PATH="%A/add-ons:/boot/system/add-ons"
 fi
 
 # media kit
diff --git a/headers/config/HaikuConfig.h b/headers/config/HaikuConfig.h
index 7c2b3b9..ca25ae7 100644
--- a/headers/config/HaikuConfig.h
+++ b/headers/config/HaikuConfig.h
@@ -9,6 +9,7 @@
 /* Determine the architecture and define macros for some fundamental
    properties:
    __HAIKU_ARCH                                        - short name of the 
architecture (used in paths)
+   __HAIKU_ARCH_ABI                            - name of ABI (as in package 
architecture)
    __HAIKU_ARCH_<arch>                 - defined to 1 for the respective 
architecture
    __HAIKU_ARCH_BITS                   - defined to 32/64 on 32/64 bit 
architectures
                                                                  (defaults to 
32)
@@ -19,25 +20,35 @@
 */
 #ifdef __INTEL__
 #      define __HAIKU_ARCH                                     x86
+#      if __GNUC__ == 2
+#              define __HAIKU_ARCH_ABI                 "x86_gcc2"
+#      else
+#              define __HAIKU_ARCH_ABI                 "x86"
+#      endif
 #      define __HAIKU_ARCH_X86                         1
 #      define __HAIKU_ARCH_PHYSICAL_BITS       64
 #elif __x86_64__
 #      define __HAIKU_ARCH                                     x86_64
+#      define __HAIKU_ARCH_ABI                         "x86_64"
 #      define __HAIKU_ARCH_X86_64                      1
 #      define __HAIKU_ARCH_BITS                        64
 #elif __POWERPC__
 #      define __HAIKU_ARCH                                     ppc
+#      define __HAIKU_ARCH_ABI                         "ppc"
 #      define __HAIKU_ARCH_PPC                         1
 #      define __HAIKU_BIG_ENDIAN                       1
 #elif __M68K__
 #      define __HAIKU_ARCH                                     m68k
+#      define __HAIKU_ARCH_ABI                         "m68k"
 #      define __HAIKU_ARCH_M68K                        1
 #      define __HAIKU_BIG_ENDIAN                       1
 #elif __MIPSEL__
 #      define __HAIKU_ARCH                                     mipsel
+#      define __HAIKU_ARCH_ABI                         "mipsel"
 #      define __HAIKU_ARCH_MIPSEL                      1
 #elif __ARM__
 #      define __HAIKU_ARCH                                     arm
+#      define __HAIKU_ARCH_ABI                         "arm"
 #      define __HAIKU_ARCH_ARM                         1
 #else
 #      error Unsupported architecture!
diff --git a/headers/os/BeBuild.h b/headers/os/BeBuild.h
index 678bf4a..991ef19 100644
--- a/headers/os/BeBuild.h
+++ b/headers/os/BeBuild.h
@@ -39,6 +39,8 @@
 #define B_HAIKU_ABI_GCC_2_BEOS                 0x00020001
 #define B_HAIKU_ABI_GCC_2_HAIKU                        0x00020002
 
+#define B_HAIKU_ABI_NAME                               __HAIKU_ARCH_ABI
+
 #if __GNUC__ == 2
 #      define B_HAIKU_ABI                                      
B_HAIKU_ABI_GCC_2_HAIKU
 #elif __GNUC__ == 4
diff --git a/headers/os/storage/FindDirectory.h 
b/headers/os/storage/FindDirectory.h
index f781447..e5550cf 100644
--- a/headers/os/storage/FindDirectory.h
+++ b/headers/os/storage/FindDirectory.h
@@ -29,6 +29,9 @@ typedef enum {
        B_SYSTEM_MEDIA_NODES_DIRECTORY,
        B_SYSTEM_SOUNDS_DIRECTORY,
        B_SYSTEM_DATA_DIRECTORY,
+       B_SYSTEM_DEVELOP_DIRECTORY,
+       B_SYSTEM_PACKAGES_DIRECTORY,
+       B_SYSTEM_HEADERS_DIRECTORY,
 
        /* Common directories, shared among all users. */
        B_COMMON_DIRECTORY                                      = 2000,
@@ -52,6 +55,19 @@ typedef enum {
        B_COMMON_SOUNDS_DIRECTORY,
        B_COMMON_DATA_DIRECTORY,
        B_COMMON_CACHE_DIRECTORY,
+       B_COMMON_PACKAGES_DIRECTORY,
+       B_COMMON_HEADERS_DIRECTORY,
+       B_COMMON_NONPACKAGED_DIRECTORY,
+       B_COMMON_NONPACKAGED_ADDONS_DIRECTORY,
+       B_COMMON_NONPACKAGED_TRANSLATORS_DIRECTORY,
+       B_COMMON_NONPACKAGED_MEDIA_NODES_DIRECTORY,
+       B_COMMON_NONPACKAGED_BIN_DIRECTORY,
+       B_COMMON_NONPACKAGED_DATA_DIRECTORY,
+       B_COMMON_NONPACKAGED_FONTS_DIRECTORY,
+       B_COMMON_NONPACKAGED_SOUNDS_DIRECTORY,
+       B_COMMON_NONPACKAGED_DOCUMENTATION_DIRECTORY,
+       B_COMMON_NONPACKAGED_LIB_DIRECTORY,
+       B_COMMON_NONPACKAGED_HEADERS_DIRECTORY,
 
        /* User directories. These are interpreted in the context
           of the user making the find_directory call. */
@@ -69,11 +85,25 @@ typedef enum {
        B_USER_SOUNDS_DIRECTORY,
        B_USER_DATA_DIRECTORY,
        B_USER_CACHE_DIRECTORY,
+       B_USER_PACKAGES_DIRECTORY,
+       B_USER_HEADERS_DIRECTORY,
+       B_USER_NONPACKAGED_DIRECTORY,
+       B_USER_NONPACKAGED_ADDONS_DIRECTORY,
+       B_USER_NONPACKAGED_TRANSLATORS_DIRECTORY,
+       B_USER_NONPACKAGED_MEDIA_NODES_DIRECTORY,
+       B_USER_NONPACKAGED_BIN_DIRECTORY,
+       B_USER_NONPACKAGED_DATA_DIRECTORY,
+       B_USER_NONPACKAGED_FONTS_DIRECTORY,
+       B_USER_NONPACKAGED_SOUNDS_DIRECTORY,
+       B_USER_NONPACKAGED_DOCUMENTATION_DIRECTORY,
+       B_USER_NONPACKAGED_LIB_DIRECTORY,
+       B_USER_NONPACKAGED_HEADERS_DIRECTORY,
 
        /* Global directories. */
        B_APPS_DIRECTORY                                        = 4000,
        B_PREFERENCES_DIRECTORY,
        B_UTILITIES_DIRECTORY,
+       B_PACKAGE_LINKS_DIRECTORY,
 
        /* Obsolete: Legacy BeOS definition to be phased out */
        B_BEOS_DIRECTORY                                        = 1000,
diff --git a/headers/private/libroot/directories.h 
b/headers/private/libroot/directories.h
new file mode 100644
index 0000000..e01504b
--- /dev/null
+++ b/headers/private/libroot/directories.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2011, Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef _LIBROOT_DIRECTORIES_H
+#define _LIBROOT_DIRECTORIES_H
+
+
+#define kGlobalBinDirectory                    "/bin"
+#define kGlobalEtcDirectory                    "/etc"
+#define kGlobalPackageLinksDirectory   "/package-links"
+#define kGlobalSystemDirectory                         "/system"
+#define kGlobalTempDirectory                   "/tmp"
+#define kGlobalVarDirectory                    "/var"
+
+#define kAppsDirectory                                         "/boot/apps"
+#define kPreferencesDirectory                  "/boot/preferences"
+
+#define kAppLocalAddonsDirectory               "%A/add-ons"
+#define kAppLocalLibDirectory                  "%A/lib"
+
+#define kVolumeLocalSystemKernelAddonsDirectory        "system/add-ons/kernel"
+#define kVolumeLocalCommonNonpackagedKernelAddonsDirectory     \
+       "common/non-packaged/add-ons/kernel"
+#define kVolumeLocalCommonKernelAddonsDirectory        "common/add-ons/kernel"
+#define kVolumeLocalUserNonpackagedKernelAddonsDirectory       \
+       "home/config/non-packaged/add-ons/kernel"
+#define kVolumeLocalUserKernelAddonsDirectory  "home/config/add-ons/kernel"
+
+#define kSystemDirectory                               "/boot/system"
+#define kSystemAddonsDirectory                         "/boot/system/add-ons"
+#define kSystemAppsDirectory                   "/boot/system/apps"
+#define kSystemBinDirectory                    "/boot/system/bin"
+#define kSystemDataDirectory                   "/boot/system/data"
+#define kSystemDevelopDirectory                "/boot/system/develop"
+#define kSystemLibDirectory                    "/boot/system/lib"
+#define kSystemPackagesDirectory               "/boot/system/packages"
+#define kSystemPreferencesDirectory    "/boot/system/preferences"
+#define kSystemServersDirectory                "/boot/system/servers"
+
+#define kCommonDirectory                               "/boot/common"
+#define kCommonAddonsDirectory                         "/boot/common/add-ons"
+#define kCommonBinDirectory                    "/boot/common/bin"
+#define kCommonDevelopToolsBinDirectory 
"/boot/common/develop/tools/current/bin"
+#define kCommonEtcDirectory                    "/boot/common/settings/etc"
+#define kCommonLibDirectory                    "/boot/common/lib"
+#define kCommonPackagesDirectory               "/boot/common/packages"
+#define kCommonSettingsDirectory               "/boot/common/settings"
+#define kCommonTempDirectory                   "/boot/common/cache/tmp"
+#define kCommonVarDirectory                    "/boot/common/var"
+#define kCommonLogDirectory                    "/boot/common/var/log"
+#define kCommonNonpackagedAddonsDirectory      
"/boot/common/non-packaged/add-ons"
+#define kCommonNonpackagedBinDirectory         "/boot/common/non-packaged/bin"
+#define kCommonNonpackagedLibDirectory         "/boot/common/non-packaged/lib"
+
+#define kUserDirectory                                         "/boot/home"
+#define kUserConfigDirectory                   "/boot/home/config"
+#define kUserAddonsDirectory                   "/boot/home/config/add-ons"
+#define kUserBinDirectory                              "/boot/home/config/bin"
+#define kUserLibDirectory                              "/boot/home/config/lib"
+#define kUserPackagesDirectory                 "/boot/home/config/packages"
+#define kUserSettingsDirectory                         
"/boot/home/config/settings"
+#define kUserNonpackagedAddonsDirectory 
"/boot/home/config/non-packaged/add-ons"
+#define kUserNonpackagedBinDirectory   "/boot/home/config/non-packaged/bin"
+#define kUserNonpackagedLibDirectory   "/boot/home/config/non-packaged/lib"
+
+
+#endif // _LIBROOT_DIRECTORIES_H
diff --git 
a/src/add-ons/input_server/filters/screen_saver/ScreenSaverFilter.cpp 
b/src/add-ons/input_server/filters/screen_saver/ScreenSaverFilter.cpp
index 90152c0..c7a1c4b 100644
--- a/src/add-ons/input_server/filters/screen_saver/ScreenSaverFilter.cpp
+++ b/src/add-ons/input_server/filters/screen_saver/ScreenSaverFilter.cpp
@@ -191,7 +191,7 @@ ScreenSaverFilter::_Invoke()
        BPath path;
        if (find_directory(B_SYSTEM_BIN_DIRECTORY, &path) != B_OK
                || path.Append("screen_blanker") != B_OK)
-               path.SetTo("/boot/system/bin/screen_blanker");
+               path.SetTo("/bin/screen_blanker");
        BEntry entry(path.Path());
        entry_ref ref;
        if (entry.GetRef(&ref) == B_OK 
diff --git 
a/src/add-ons/input_server/filters/shortcut_catcher/ParseCommandLine.cpp 
b/src/add-ons/input_server/filters/shortcut_catcher/ParseCommandLine.cpp
index 18048df..b7dbde0 100644
--- a/src/add-ons/input_server/filters/shortcut_catcher/ParseCommandLine.cpp
+++ b/src/add-ons/input_server/filters/shortcut_catcher/ParseCommandLine.cpp
@@ -16,16 +16,19 @@
 #include <string.h>
 
 
-#include <Roster.h>
-#include <List.h>
-#include <Entry.h>
 #include <Directory.h>
+#include <Entry.h>
+#include <FindDirectory.h>
+#include <List.h>
+#include <Path.h>
+#include <Roster.h>
+#include <String.h>
 #include <SupportKit.h>
 
 
 // This char is used to hold words together into single words...
 #define GUNK_CHAR 0x01
-#define PATHTOTRACKER "/boot/system/Tracker"
+#define PATHTOTRACKER "/system/Tracker"
 
 // Turn all spaces that are not-to-be-counted-as-spaces into GUNK_CHAR chars.
 static void
@@ -299,11 +302,14 @@ LaunchCommand(char** argv, int32 argc)
                        // Hack way to do this--really I should be able to do 
this by 
                        // sending a BMessage. But how? When I finally get my 
copy of the
                        // BeOS Bible, maybe then I'll find out.
-                       const char* trackerFile = PATHTOTRACKER;
-                       char* temp = new char[strlen(trackerFile) + 
strlen(argv[0]) + 10];
-                       sprintf(temp, "%s '%s'", trackerFile, argv[0]);
-                       system(temp);
-                       delete [] temp;
+                       BPath trackerPath;
+                       if (find_directory(B_SYSTEM_DIRECTORY, &trackerPath) != 
B_OK
+                               || trackerPath.Append("Tracker") != B_OK) {
+                               return B_ENTRY_NOT_FOUND;
+                       }
+                       BString cmd(trackerPath.Path());
+                       cmd << " '" << argv[0] << "'";
+                       system(cmd.String());
                        return B_NO_ERROR;
                } else {
                        // It's not a directory. Must be a file.
diff --git a/src/add-ons/kernel/debugger/hangman/hangman.c 
b/src/add-ons/kernel/debugger/hangman/hangman.c
index f77a7d6..231d004 100644
--- a/src/add-ons/kernel/debugger/hangman/hangman.c
+++ b/src/add-ons/kernel/debugger/hangman/hangman.c
@@ -5,6 +5,7 @@
 #      include <debug.h>
 #endif
 
+#include <directories.h>
 #include <OS.h>
 #include <image.h>
 #include <ctype.h>
@@ -26,7 +27,7 @@
 #define MAX_FAILS_BEFORE_BSOD 0
 
 #ifdef __HAIKU__
-#      define FORTUNE_FILE "/boot/system/data/fortunes/Fortunes"
+#      define FORTUNE_FILE kSystemDataDirectory "/fortunes/Fortunes"
 #else
 #      define FORTUNE_FILE "/etc/fortunes/default"
 #endif
diff --git a/src/add-ons/kernel/drivers/audio/ac97/auich/Jamfile 
b/src/add-ons/kernel/drivers/audio/ac97/auich/Jamfile
index 0b55856..26d6af1 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/auich/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/ac97/auich/Jamfile
@@ -1,7 +1,7 @@
 SubDir HAIKU_TOP src add-ons kernel drivers audio ac97 auich ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
-UsePrivateHeaders media ;
+UsePrivateHeaders libroot media ;
 SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) ] ;
 
diff --git a/src/add-ons/kernel/drivers/audio/ac97/auich/debug.c 
b/src/add-ons/kernel/drivers/audio/ac97/auich/debug.c
index 790b2a2..b3b4c67 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/auich/debug.c
+++ b/src/add-ons/kernel/drivers/audio/ac97/auich/debug.c
@@ -28,23 +28,32 @@
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
+
+
 #include <KernelExport.h>
+
 #include <stdio.h>
 #include <fcntl.h>
 #include <unistd.h>
+
+#include <directories.h>
 #include <OS.h>
+
 #include "debug.h"
 #include "auich.h"
 
+
 #if DEBUG > 0
-static const char * logfile="/boot/home/auich.log";
+static const char *logfile = kCommonLogDirectory "/auich.log";
 static sem_id loglock;
 #endif
 
+
 void debug_printf(const char *text,...);
 void log_printf(const char *text,...);
 void log_create(void);
 
+
 void debug_printf(const char *text,...)
 {
        char buf[1024];
@@ -57,6 +66,7 @@ void debug_printf(const char *text,...)
        dprintf(DRIVER_NAME ": %s",buf);
 }
 
+
 void log_create()
 {
 #if DEBUG > 0
@@ -68,6 +78,7 @@ void log_create()
 #endif
 }
 
+
 void log_printf(const char *text,...)
 {
 #if DEBUG > 0
@@ -92,4 +103,3 @@ void log_printf(const char *text,...)
        #endif
 #endif
 }
-
diff --git a/src/add-ons/kernel/drivers/audio/ac97/auvia/Jamfile 
b/src/add-ons/kernel/drivers/audio/ac97/auvia/Jamfile
index fb4c66c..9333f42 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/auvia/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/ac97/auvia/Jamfile
@@ -1,7 +1,7 @@
 SubDir HAIKU_TOP src add-ons kernel drivers audio ac97 auvia ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
-UsePrivateHeaders media ;
+UsePrivateHeaders libroot media ;
 SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) ] ;
 
diff --git a/src/add-ons/kernel/drivers/audio/ac97/auvia/debug.c 
b/src/add-ons/kernel/drivers/audio/ac97/auvia/debug.c
index 4b67b58..8bcc694 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/auvia/debug.c
+++ b/src/add-ons/kernel/drivers/audio/ac97/auvia/debug.c
@@ -28,23 +28,32 @@
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
+
+
 #include <KernelExport.h>
+
 #include <stdio.h>
 #include <fcntl.h>
 #include <unistd.h>
+
+#include <directories.h>
 #include <OS.h>
+
 #include "debug.h"
 #include "auvia.h"
 
+
 #if DEBUG > 0
-static const char * logfile="/boot/home/auvia.log";
+static const char *logfile = kCommonLogDirectory "/auvia.log";
 static sem_id loglock;
 #endif
 
+
 void debug_printf(const char *text,...);
 void log_printf(const char *text,...);
 void log_create(void);
 
+
 void debug_printf(const char *text,...)
 {
        char buf[1024];
@@ -57,6 +66,7 @@ void debug_printf(const char *text,...)
        dprintf(DRIVER_NAME ": %s",buf);
 }
 
+
 void log_create()
 {
 #if DEBUG > 0
@@ -68,6 +78,7 @@ void log_create()
 #endif
 }
 
+
 void log_printf(const char *text,...)
 {
 #if DEBUG > 0
@@ -92,4 +103,3 @@ void log_printf(const char *text,...)
        #endif
 #endif
 }
-
diff --git a/src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile 
b/src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
index 54259ce..c3c8889 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
@@ -1,7 +1,7 @@
 SubDir HAIKU_TOP src add-ons kernel drivers audio ac97 es1370 ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
-UsePrivateHeaders media ;
+UsePrivateHeaders libroot media ;
 SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
 
 KernelAddon es1370 :
diff --git a/src/add-ons/kernel/drivers/audio/ac97/es1370/debug.c 
b/src/add-ons/kernel/drivers/audio/ac97/es1370/debug.c
index 5fb661a..5a52fd1 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/es1370/debug.c
+++ b/src/add-ons/kernel/drivers/audio/ac97/es1370/debug.c
@@ -8,24 +8,33 @@
  *             Marcus Overhagen, marcus@xxxxxxxxxxxx
  *             Jerome Duval, jerome.duval@xxxxxxx
  */
+
+
 #include <KernelExport.h>
+
 #include <stdio.h>
 #include <string.h>
 #include <fcntl.h>
 #include <unistd.h>
+
+#include <directories.h>
 #include <OS.h>
+
 #include "debug.h"
 #include "es1370.h"
 
+
 #if DEBUG > 0
-static const char * logfile="/boot/home/es1370.log";
+static const char *logfile = kCommonLogDirectory "/es1370.log";
 static sem_id loglock;
 #endif
 
+
 void debug_printf(const char *text,...);
 void log_printf(const char *text,...);
 void log_create(void);
 
+
 void debug_printf(const char *text,...)
 {
        char buf[1024];
@@ -38,6 +47,7 @@ void debug_printf(const char *text,...)
        dprintf(DRIVER_NAME ": %s",buf);
 }
 
+
 void log_create()
 {
 #if DEBUG > 0
@@ -49,6 +59,7 @@ void log_create()
 #endif
 }
 
+
 void log_printf(const char *text,...)
 {
 #if DEBUG > 0
@@ -73,4 +84,3 @@ void log_printf(const char *text,...)
        #endif
 #endif
 }
-
diff --git a/src/add-ons/kernel/drivers/audio/ac97/ich/Jamfile 
b/src/add-ons/kernel/drivers/audio/ac97/ich/Jamfile
index e4df921..b086402 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/ich/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/ac97/ich/Jamfile
@@ -2,7 +2,7 @@ SubDir HAIKU_TOP src add-ons kernel drivers audio ac97 ich ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
-UsePrivateHeaders media ;
+UsePrivateHeaders libroot media ;
 
 KernelAddon ich_ac97 :
        ac97_multi.c
diff --git a/src/add-ons/kernel/drivers/audio/ac97/ich/debug.c 
b/src/add-ons/kernel/drivers/audio/ac97/ich/debug.c
index 6b9f979..d516f25 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/ich/debug.c
+++ b/src/add-ons/kernel/drivers/audio/ac97/ich/debug.c
@@ -25,14 +25,21 @@
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
+
+
 #include <KernelExport.h>
+
 #include <stdio.h>
 #include <fcntl.h>
 #include <unistd.h>
+
+#include <directories.h>
 #include <OS.h>
+
 #include "debug.h"
 #include "ich.h"
 
+
 void debug_printf(const char *text,...)
 {
        char buf[1024];
@@ -45,11 +52,12 @@ void debug_printf(const char *text,...)
        dprintf(DRIVER_NAME ": %s",buf);
 }
 
-#if DEBUG > 0
 
-static const char * logfile="/boot/home/ich_ac97.log";
+#if DEBUG > 0
+static const char *logfile = kCommonLogDirectory "/ich_ac97.log";
 static sem_id loglock;
 
+
 void log_create(void)
 {
        int fd = open(logfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
@@ -59,6 +67,7 @@ void log_create(void)
        close(fd);
 }
 
+
 void log_printf(const char *text,...)
 {
        int fd;
@@ -81,5 +90,4 @@ void log_printf(const char *text,...)
                snooze(150000);
        #endif
 }
-
 #endif
diff --git a/src/add-ons/kernel/drivers/audio/echo/24/Jamfile 
b/src/add-ons/kernel/drivers/audio/echo/24/Jamfile
index aa48416..2f4a938 100644
--- a/src/add-ons/kernel/drivers/audio/echo/24/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/echo/24/Jamfile
@@ -13,7 +13,7 @@ SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo 
generic DSP ;
 SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo generic ASIC ;
 
 UsePrivateHeaders [ FDirName kernel ]                  # For kernel_cpp.cpp
-       media ;
+       libroot media ;
 
 # set some additional defines
 SubDirCcFlags -DECHO_BEOS -DECHO24_FAMILY ;
diff --git a/src/add-ons/kernel/drivers/audio/echo/3g/Jamfile 
b/src/add-ons/kernel/drivers/audio/echo/3g/Jamfile
index ec9b38f..6a25fd1 100644
--- a/src/add-ons/kernel/drivers/audio/echo/3g/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/echo/3g/Jamfile
@@ -13,7 +13,7 @@ SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo 
generic DSP ;
 SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo generic ASIC ;
 
 UsePrivateHeaders [ FDirName kernel ]                  # For kernel_cpp.cpp
-       media ;
+       libroot media ;
 
 # set some additional defines
 SubDirCcFlags -DECHO_BEOS -DECHO3G_FAMILY ;
diff --git a/src/add-ons/kernel/drivers/audio/echo/debug.c 
b/src/add-ons/kernel/drivers/audio/echo/debug.c
index 1cb2b4f..2c183eb 100644
--- a/src/add-ons/kernel/drivers/audio/echo/debug.c
+++ b/src/add-ons/kernel/drivers/audio/echo/debug.c
@@ -28,21 +28,30 @@
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
+
+
 #include <KernelExport.h>
+
 #include <stdio.h>
 #include <fcntl.h>
 #include <unistd.h>
+
+#include <directories.h>
 #include <OS.h>
+
 #include "debug.h"
 
+
 #if DEBUG > 0
-static const char * logfile="/boot/home/"DRIVER_NAME".log";
+static const char *logfile = kCommonLogDirectory "/" DRIVER_NAME ".log";
 static sem_id loglock;
 #endif
 
+
 void debug_printf(const char *text,...);
 void log_printf(const char *text,...);
 
+
 void debug_printf(const char *text,...)
 {
        char buf[1024];
@@ -55,6 +64,7 @@ void debug_printf(const char *text,...)
        dprintf(DRIVER_NAME ": %s",buf);
 }
 
+
 void log_create()
 {
 #if DEBUG > 0
@@ -66,6 +76,7 @@ void log_create()
 #endif
 }
 
+
 void log_printf(const char *text,...)
 {
 #if DEBUG > 0
@@ -90,4 +101,3 @@ void log_printf(const char *text,...)
        #endif
 #endif
 }
-
diff --git a/src/add-ons/kernel/drivers/audio/echo/gals/Jamfile 
b/src/add-ons/kernel/drivers/audio/echo/gals/Jamfile
index 5719258..bc21b01 100644
--- a/src/add-ons/kernel/drivers/audio/echo/gals/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/echo/gals/Jamfile
@@ -13,7 +13,7 @@ SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo 
generic DSP ;
 SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo generic ASIC ;
 
 UsePrivateHeaders [ FDirName kernel ]                  # For kernel_cpp.cpp
-       media ;
+       libroot media ;
 
 # set some additional defines
 SubDirCcFlags -DECHO_BEOS -DECHOGALS_FAMILY ;
diff --git a/src/add-ons/kernel/drivers/audio/echo/indigo/Jamfile 
b/src/add-ons/kernel/drivers/audio/echo/indigo/Jamfile
index b797396..fe661cc 100644
--- a/src/add-ons/kernel/drivers/audio/echo/indigo/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/echo/indigo/Jamfile
@@ -13,7 +13,7 @@ SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo 
generic DSP ;
 SubDirHdrs $(HAIKU_TOP) src add-ons kernel drivers audio echo generic ASIC ;
 
 UsePrivateHeaders [ FDirName kernel ]                  # For kernel_cpp.cpp
-       media ;
+       libroot media ;
 
 # set some additional defines
 SubDirCcFlags -DECHO_BEOS -DINDIGO_FAMILY -DCARDBUS ;
diff --git a/src/add-ons/kernel/drivers/audio/emuxki/Jamfile 
b/src/add-ons/kernel/drivers/audio/emuxki/Jamfile
index d7ac8ab..f3f71b1 100644
--- a/src/add-ons/kernel/drivers/audio/emuxki/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/emuxki/Jamfile
@@ -2,7 +2,7 @@ SubDir HAIKU_TOP src add-ons kernel drivers audio emuxki ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
-UsePrivateHeaders media ;
+UsePrivateHeaders libroot media ;
 
 KernelAddon emuxki :
        ac97.c
diff --git a/src/add-ons/kernel/drivers/audio/emuxki/debug.c 
b/src/add-ons/kernel/drivers/audio/emuxki/debug.c
index f3dbc1d..349dbf0 100644
--- a/src/add-ons/kernel/drivers/audio/emuxki/debug.c
+++ b/src/add-ons/kernel/drivers/audio/emuxki/debug.c
@@ -28,23 +28,32 @@
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
+
+
 #include <KernelExport.h>
+
 #include <stdio.h>
 #include <fcntl.h>
 #include <unistd.h>
+
+#include <directories.h>
 #include <OS.h>
+
 #include "debug.h"
 #include "emuxki.h"
 
+
 #if DEBUG > 0
-static const char * logfile="/boot/home/emuxki.log";
+static const char *logfile = kCommonLogDirectory "/emuxki.log";
 static sem_id loglock;
 #endif
 
+
 void debug_printf(const char *text,...);
 void log_printf(const char *text,...);
 void log_create(void);
 
+
 void debug_printf(const char *text,...)
 {
        char buf[1024];
@@ -57,6 +66,7 @@ void debug_printf(const char *text,...)
        dprintf(DRIVER_NAME ": %s",buf);
 }
 
+
 void log_create()
 {
 #if DEBUG > 0
@@ -68,6 +78,7 @@ void log_create()
 #endif
 }
 
+
 void log_printf(const char *text,...)
 {
 #if DEBUG > 0
@@ -92,4 +103,3 @@ void log_printf(const char *text,...)
        #endif
 #endif
 }
-
diff --git a/src/add-ons/kernel/drivers/audio/module_driver/Jamfile 
b/src/add-ons/kernel/drivers/audio/module_driver/Jamfile
index 860bc21..b235108 100644
--- a/src/add-ons/kernel/drivers/audio/module_driver/Jamfile
+++ b/src/add-ons/kernel/drivers/audio/module_driver/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src add-ons kernel drivers audio module_driver ;
 
-UsePrivateHeaders media ;
+UsePrivateHeaders libroot media ;
 
 KernelAddon audio_module_driver :
        audio_module_driver.c

[ *** diff truncated: 3498 lines dropped *** ]


############################################################################

Commit:      bc93eff874d5240b252c388381dac84cb34f5821
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bc93eff
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 16:56:46 2011 UTC

Added BuildPlatformStaticLibraryPIC rule.

It works like BuildPlatformStaticLibrary, but generates position
independent code.

----------------------------------------------------------------------------

############################################################################

Commit:      bd9d1df3a00fe5bb03cb1941d3b7cfdc659294e0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bd9d1df
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 17:12:46 2011 UTC

Added very simple BLooper class to libbe_build.

----------------------------------------------------------------------------

############################################################################

Commit:      1044b2eb82b4644cfe261301a652c261b3168f26
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1044b2e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 17:14:23 2011 UTC

Added missing <StorageDefs.h> include.

----------------------------------------------------------------------------

############################################################################

Commit:      41f39d0dd67e999ce7d339726cfab5ea0d0ad6d5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=41f39d0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 17:15:14 2011 UTC

Removed obsolete TODO.

----------------------------------------------------------------------------

############################################################################

Commit:      5eedc38011960b59a07c8ef16a2c7f5ce1c3d72a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5eedc38
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 17:46:18 2011 UTC

Fixed printf() format related warnings.

----------------------------------------------------------------------------

############################################################################

Commit:      1cb2d5a467d5d56b1c219ea7f891db960df09a1e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1cb2d5a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 17:49:36 2011 UTC

Use fs_close_attr()/write_pos() instead of close()/pwrite().

This makes it easier to reuse the code on non-Haiku platforms.

----------------------------------------------------------------------------

############################################################################

Commit:      f1eeb32334a0d50d9f558095c85d99ff4316e219
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f1eeb32
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 17:58:24 2011 UTC

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
  64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.

----------------------------------------------------------------------------

############################################################################

Commit:      b795c9ce72dbd063cd30fcc051c7044153725d9f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b795c9c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:03:33 2011 UTC

Made the check for B_BUFFER_OVERFLOW more flexible.

----------------------------------------------------------------------------

############################################################################

Commit:      62fef8b3fc0c41f048133edbbdb2dec3b2d65c3c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=62fef8b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:05:01 2011 UTC

Added driver settings and find_directory() support.

find_directory() is a very simplified implementation, only supporting
what we currently need.

----------------------------------------------------------------------------

############################################################################

Commit:      e781b1b5a801e6fe2f364a302e3201458b07e58f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e781b1b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:21:53 2011 UTC

Open/close attribute support for xattrs backend

For the xattr/BSD (untyped) attribute backend implement fs_fopen_attr()
and fs_close_attr(). A new AttributeDescriptor is created. It is
currently used in write_pos() only.

----------------------------------------------------------------------------

############################################################################

Commit:      a7bcad8194c7e9b18c91195172324689fc841259
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a7bcad8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:28:14 2011 UTC

Updated to current Haiku version

----------------------------------------------------------------------------

############################################################################

Commit:      14c34be2e11541af33f8a19f620c66a28810acef
URL:         http://cgit.haiku-os.org/haiku/commit/?id=14c34be
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:30:06 2011 UTC

Fixed host build issues/warnings

----------------------------------------------------------------------------

############################################################################

Commit:      d451f7a329dc00c2bee7e7bd88ed24249dacd83c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d451f7a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:34:55 2011 UTC

Added several APIs to libbe_build/libshared_build

----------------------------------------------------------------------------

############################################################################

Commit:      0ee9bc97d0a35cb34ab5321c34997f20172a870b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0ee9bc9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:37:32 2011 UTC

Build libpackage for the build platform

----------------------------------------------------------------------------

############################################################################

Commit:      922e7ba1f3228e6f28db69b0ded8f86eb32dea17
URL:         http://cgit.haiku-os.org/haiku/commit/?id=922e7ba
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 18:38:09 2011 UTC

Build the package tool for the build platform

----------------------------------------------------------------------------

############################################################################

Commit:      efec892e2b29fa5ef58c89a261567ef819fc2c28
URL:         http://cgit.haiku-os.org/haiku/commit/?id=efec892
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 20:28:39 2011 UTC

Added .gitignore

----------------------------------------------------------------------------

############################################################################

Commit:      a1cada9784bda2472dcfc4c546bd0840b4ceeb4d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a1cada9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 20:53:44 2011 UTC

Fix x86_64 BuildConfig issues

* Resolve TODO: HOST_GCC_BASE_FLAGS should not be included in
  HOST_LDFLAGS. Enable adding "-fno-strict-aliasing -fno-tree-vrp"
  accordingly.
* Fix handling of HOST_PLATFORM_IS_64_BIT and HAIKU_HOST_USE_32BIT: The
  former does now state whether the platform is effectively treated as
  64 bit platform, i.e. it actually is 64 bit and the 32 bit mode is
  not enforced. HAIKU_HOST_USE_32BIT is now only set when the platform
  is actually 64 bit, but 32 bit mode is enforced.

----------------------------------------------------------------------------

############################################################################

Commit:      abd5edcb5f72f105fbbf7575750c8daa7b8f29de
URL:         http://cgit.haiku-os.org/haiku/commit/?id=abd5edc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 16 20:58:22 2011 UTC

libroot_build: fix error.ccp build

Since USES_BE_API is set by default on all libroot_build sources, the
error.cpp
was broken, since it wouldn't be exempt from the error mapping. Define
the
BUILDING_HAIKU_ERROR_MAPPER for it directly in the Jamfile, now.

----------------------------------------------------------------------------

############################################################################

Commit:      e272fb5dec8ed35de0ad8303f675c4d9602777c8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e272fb5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 17 12:53:57 2011 UTC

<build>package: attribute iteration, license dir

PackageWriterImpl:
* Iterate through attributes using fs_read_attr_dir() instead of
  readdir(). Makes it work correctly on the build platform.
* On the build platform look up the system licenses in their source
  directory rather than based on find_directory().

----------------------------------------------------------------------------

############################################################################

Commit:      9e3bdfb0efe4133551f924157f2df541afbf6a4c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9e3bdfb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 17 12:56:35 2011 UTC

Generalize some image rules

Pulled generalized *ToContainer versions out of several *ToHaikuImage
rules.

----------------------------------------------------------------------------

############################################################################

Commit:      355b8ba7553a58e35406084ea875f8f3f519a12b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=355b8ba
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 17 13:11:16 2011 UTC

Build a system Haiku package

* Create rules (build/jam/PackageRules) and a script,
  build_haiku_package, to build hpkg files.
* Move all rule invocations that copy files and created symlinks and
  directories in the "system" directory from HaikuImage to
  HaikuPackages, which creates a package "haiku.hpkg".
* build_haiku_image: Comment out adding the copyrights info to
  AboutSystem for the moment.

----------------------------------------------------------------------------

############################################################################

Commit:      93211f331fa18d566cedcbf86ea6554af074ad96
URL:         http://cgit.haiku-os.org/haiku/commit/?id=93211f3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 17 14:03:56 2011 UTC

PackageWriterImpl: Build platform symlink issues

On a non-Haiku build platform map openat(), fstat(), and
FileDescriptorCloser to _kern_open(), _kern_read_stat(), and
BuildFileDescriptorCloser respectively, so symlinks can be opened and
stat()ed.

----------------------------------------------------------------------------

############################################################################

Commit:      d1f40ef6361b4111a6601f42f41945f1418d1fea
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d1f40ef
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 17 23:47:59 2011 UTC

HaikuPackages: Remove the "system" path component

----------------------------------------------------------------------------

############################################################################

Commit:      dcdeed6176ea40e52a44f17be2573b6fed3946ba
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dcdeed6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 17 23:57:35 2011 UTC

AddDirectoryTo{HaikuImage,...} refactoring

Move common code from AddDirectoryToHaikuImage/AddDirectoryToPackage to
AddDirectoryToContainer. AddDirectoryToPackage was incorrect, using an
incorrect search directory for the attribute files.

----------------------------------------------------------------------------

############################################################################

Commit:      2bda1e84fe48b888d799bea8aeae9b1ba3f8a77f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2bda1e8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 18 00:19:53 2011 UTC

Package rule: introduce current package notion

The HaikuPackage rule now sets the variable
HAIKU_CURRENTLY_BUILT_HAIKU_PACKAGE to the given package and all
*ToPackage rules use that instead of a parameter. This saves passing the
package in each of those rule invocations.

----------------------------------------------------------------------------

############################################################################

Commit:      624b7c8958748bfdbf85da86488c6f94d1370b7b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=624b7c8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 18 00:48:38 2011 UTC

Add system package to image

----------------------------------------------------------------------------

############################################################################

Commit:      d11ea2b5edf78d1018b1149a57a593af50687920
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d11ea2b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 18 02:23:09 2011 UTC

Introduce BootVolume abstraction class

BootVolume is initialized from a root directory of a volume. It finds
the system directory, and -- not implemented yet -- mounts the system
package, if the system is packaged, replacing the system directory with
it. Adjusted several functionality (main(), the loader functions,
user_menu()) to use BootVolume instead of the root directory.

----------------------------------------------------------------------------

############################################################################

Commit:      8f583b27712d4c742f7d0f1123d968b8e8b868df
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8f583b2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 18 03:13:25 2011 UTC

Build fix

----------------------------------------------------------------------------

############################################################################

Commit:      898396ef61056cb047741a3fbc5533b418a65666
URL:         http://cgit.haiku-os.org/haiku/commit/?id=898396e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 11:41:05 2011 UTC

Increase boot loader heap size

We need more for packagefs support.

----------------------------------------------------------------------------

############################################################################

Commit:      abc3c57ba68a10c5754a2dd2bc91a7e378e75f13
URL:         http://cgit.haiku-os.org/haiku/commit/?id=abc3c57
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 11:43:24 2011 UTC

KernelLd rule: opt-out linking against libsupc++

Introduced HAIKU_NO_LIBSUPC++ variable on target to prevent linking
against libsupc++.

----------------------------------------------------------------------------

############################################################################

Commit:      9a8c1339ce802a820347b72eb509039affa9e96c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9a8c133
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 11:46:51 2011 UTC

Split package kit DataReader.cpp

Pull AttributeDataReader and FDDataReader implementations out of
DataReader.cpp into own source files. Thus we can avoid dependencies
(e.g. to fs_attr code) we don't need/want.

----------------------------------------------------------------------------

############################################################################

Commit:      2ef572b8fef32cd2a2201b4be563270858ae1b24
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2ef572b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 11:58:42 2011 UTC

ReaderImplBase::ParseStrings(): Avoid new[0]

----------------------------------------------------------------------------

############################################################################

Commit:      b232be5a4773acadb1957fc609f73430c13e4821
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b232be5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 12:05:11 2011 UTC

Boot loader build: add strerror,...

* Don't link against libsupc++ anymore. We use kernel_cpp.* instead.
* Link twice against boot_loader.a, so undefined symbols in FSs are
  resolved.

----------------------------------------------------------------------------

############################################################################

Commit:      305722379690bb207e9cfd76e8cf8d081bbaa5e9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3057223
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 12:07:53 2011 UTC

Add BReferenceable to boot loader

Also force include kernel_cpp.h, so it doesn't have to be included in
every file (still is included in most, though).

----------------------------------------------------------------------------

############################################################################

Commit:      cbc85916fb5c35022ba6e52eb5b55a93271b1fb6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cbc8591
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 12:20:04 2011 UTC

Add boot loader packagefs support

* Add pread().
* Add Node::ReadLink() to read a symbolic link path.
* Add Directory::LookupDontTraverse() and make Lookup() non-abstract.
  Lookup() is implemented via LookupDontTraverse() and Node::ReadLink().
* Adjust all FS implementations accordingly.
* Add a packagefs implementation. Unlike other FS implementations it
  isn't a pseudo-module, but provides a function to explicitly mount a
  package file (packagefs_mount_file()).
* Finish BootVolume::SetTo() implementation, mounting the package file
  and replacing fSystemDirectory.

Now the boot loader can load the kernel and boot modules from a packaged
system. The kernel boots up to the point where the boot volume is
mounted.

----------------------------------------------------------------------------

############################################################################

Commit:      533833f646106f4d14f8329ea7773b42c7e45682
URL:         http://cgit.haiku-os.org/haiku/commit/?id=533833f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 12:34:24 2011 UTC

Add kernel args boot volume "packaged" flag

* Add BOOT_VOLUME_PACKAGED boot volume message field name constant.
* register_boot_file_system():
  - Now takes a BootVolume& parameter.
  - If the boot volume is packaged, add that info to the boot volume
    message.

----------------------------------------------------------------------------

############################################################################

Commit:      441b85e1cc56ed04ee4dedbd37d98186ad0a1e74
URL:         http://cgit.haiku-os.org/haiku/commit/?id=441b85e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 13:29:22 2011 UTC

Assign node IDs to packagefs nodes

Fixes module loading. elf_load_image() checks the node ID to verify
whether an image was already loaded, so giving all nodes the same ID
only gets one image loaded. The IDs don't necessarily match the ones the
kernel packagefs assigns, which could be a problem later on.

----------------------------------------------------------------------------

############################################################################

Commit:      02b57b32a3ee6a799bc265d95d50f57ebc0886d9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=02b57b3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 14:44:43 2011 UTC

Bump boot loader heap size

----------------------------------------------------------------------------

############################################################################

Commit:      cb89356142930e4357e2419538cbc67751a331b4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cb89356
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 14:50:39 2011 UTC

Boot loader packagefs: Fix ".." lookups

* PackageDirectory::Lookup(): Support "." and ".." lookups.
* PackageLoaderContentHandler::HandleEntry(): If the entry doesn't have
  a parent directory, use the volume's root directory directly. This
  makes PackageVolume::AddNode() superfluous and also always passes a
  non-NULL parent directory to PackageNode::Init().

----------------------------------------------------------------------------

############################################################################

Commit:      6d7953ef0a99b6de4c11ebe85cc56691f82e664c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6d7953e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 14:53:20 2011 UTC

Add boot module symlink for packagefs

----------------------------------------------------------------------------

############################################################################

Commit:      ba65f946679a3171d2f7525a7a3be131e7f701c9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ba65f94
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 15:01:23 2011 UTC

Fix image rules wrt system/ relative entries

* Introduce on-container jam variable HAIKU_CONTAINER_SYSTEM_DIR_TOKENS
  containing the directory tokens relative to the container root to
  refer to system.
* Use the variable in *ToContainer rules that need to put something in
  system.
* AddFilesToContainer: Fix overlooked reference to AddFilesToHaikuImage.
* AddBootModuleSymlinksToContainer: Use relative symlinks. This avoids
  special-casing in the boot loader for packagefs.

----------------------------------------------------------------------------

############################################################################

Commit:      18e7d26c8d6e4cc9aba4efa9f7ff7ddf44335620
URL:         http://cgit.haiku-os.org/haiku/commit/?id=18e7d26
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 17:27:34 2011 UTC

Mount the /boot/system packagefs on boot

----------------------------------------------------------------------------

############################################################################

Commit:      8ba02058b949cc9b6145cefe22d9c7a8f55a2f44
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8ba0205
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 19:15:20 2011 UTC

Add atomic_*() functions to boot loader

----------------------------------------------------------------------------

############################################################################

Commit:      55a34b69f3a3c438254657da49205158793e21e3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=55a34b6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 20:14:09 2011 UTC

fs_write_attr(): Allow 0-length NULL buffer

----------------------------------------------------------------------------

############################################################################

Commit:      52e079692f1a43765ea6892b48cafcff96b88f37
URL:         http://cgit.haiku-os.org/haiku/commit/?id=52e0796
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 20:15:02 2011 UTC

write_pos(): Fix return value for attribute writes

----------------------------------------------------------------------------

############################################################################

Commit:      d971dfb68840b285396d046c1d116a3759997ce8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d971dfb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 20:16:51 2011 UTC

Nicer error output

----------------------------------------------------------------------------

############################################################################

Commit:      05384d694451618fcd24512e23e5248da8715742
URL:         http://cgit.haiku-os.org/haiku/commit/?id=05384d6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 20:17:32 2011 UTC

Changed architecture to x86_gcc2

This needs to be created dynamically somehow, but for the time being we
want things to work for gcc2 and x86 at least.

----------------------------------------------------------------------------

############################################################################

Commit:      f724ec0e1ee8b5420fa5df8c1660f029c570809d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f724ec0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 20:18:55 2011 UTC

ExtractArchive: Add hpkg support

----------------------------------------------------------------------------

############################################################################

Commit:      fdc30d62ceed10e2d68e8f14fdc43b2c2c27059d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fdc30d6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 20:34:39 2011 UTC

Fix gcc2 and ICU optional packages

* InstallOptionalHaikuImagePackage: In case of hpkg packages, copy them
  to the target directory, instead of extracting them.
* Correct gcc 2 package download URL.
* The ICU gcc 2 optional packages has been repackaged as hpkg. Use that.
  For gcc 4 things are broken, now.

----------------------------------------------------------------------------

############################################################################

Commit:      0d792bb3bb4b2009a9cdb1e07de63441522f0aca
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0d792bb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 21:55:14 2011 UTC

Fixed input server start fallback

After failing to start the input server by signature, the fallback
didn't append the input server name to the servers directory returned by
find_directory().

----------------------------------------------------------------------------

############################################################################

Commit:      d00bcc16079d008ee89ee4644a009d53e3798a8d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d00bcc1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 19 23:56:41 2011 UTC

Hard code "Public Domain" as acceptable license

----------------------------------------------------------------------------

############################################################################

Commit:      3f6ca2fdcab8c6c90a34dffc7a770e5ccc417c4d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3f6ca2f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 20 00:00:36 2011 UTC

Move remaining /boot/system contents into packages

* Build system: Create packages haiku-devel, haiku-welcome,
  haiku-userguide, and makefile-engine.
* The TimGMSoundFont and BeBook zip files have been repackaged as hpkg
  files.
* Adjust the optional package definitions accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      253e6eeb6a6f2de15c965f9eca18ea941cec84c7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=253e6ee
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 20 00:01:36 2011 UTC

Ignore build/user_config_headers

----------------------------------------------------------------------------

############################################################################

Commit:      9280379a7bf876ccde70040d6b7448b85c1e48f5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9280379
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 20 21:41:05 2011 UTC

Comment typo fixes

----------------------------------------------------------------------------

############################################################################

Commit:      3cc710798baa42c155dd2e5c4c75306755ae2fd7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3cc7107
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 20 22:43:30 2011 UTC

Replaced fs_mount::covers_vnode by Vnode::covers

Introduce a Vnode::covers field. It is currently only used for the root
node of an fs_mount, replacing fs_mount::covers_vnode.

----------------------------------------------------------------------------

############################################################################

Commit:      2e21fc543649e665507240f0803de9dddc26f152
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2e21fc5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 01:51:50 2011 UTC

Generalize use of Vnode::covered_by/covers

* Introduce Vnode flags for covered and covering. Can be used as a quick
  check when one doesn't already hold sVnodeLock.
* Rename resolve_mount_point_to_volume_root() to
  resolve_vnode_to_covering_vnode().
* Adjust all code that deals with transitions between mount points and
  volume root vnodes to generally support covered/covering vnodes.

----------------------------------------------------------------------------

############################################################################

Commit:      313e1e37f229242df626cb34f466d388590d62d9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=313e1e3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 13:37:54 2011 UTC

Add vfs_ prefix to resolve_vnode_to_covering_vnode()

----------------------------------------------------------------------------

############################################################################

Commit:      d61a8548f9d5efd322004bfd62c57e5a3891cdbf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d61a854
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 17:23:15 2011 UTC

Add support for bind-mounting directories

* Add support function vfs_get_mount_point(), so a file system can get
  its own mount point (i.e. the node it covers). Re-added
  fs_mount::covers_vnode for that purpose -- the root node isn't know to
  the VFS before the mount() hook returns.
* Add function vfs_bind_mount_directory() which bind-mounts a directory
  to another. The Vnode::covers/covered_by mechanism is used, so this
  isn't true bind-mounting, but sufficient for what we need ATM and
  cheaper as well. The vnodes connected thus aren't tracked yet, which
  is needed for undoing the connection when unmounting.
* get_vnode_name(): Don't use dir_read() to read the directory. Since we
  have already resolved vnode to the covered vnode, we don't want the
  dirents to be "fixed" to refer to the covering nodes. Such a vnode
  simply wouldn't be found.

----------------------------------------------------------------------------

############################################################################

Commit:      314cb5f13e717b5e4a7552a8ddbd18b5a66858d2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=314cb5f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 17:30:47 2011 UTC

Add support for shine-through directories

* packagefs_mount(): Initialize the fs_volume earlier, so it is more
  usuable in Volume::Mount().
* The new mount parameter "shine-through" can be used to specify which
  shine-through mode shall be used. Can be "system", "common", "home",
  and "none". Depending on the setting it is decided which directories
  of the underlying file system are bind-mounted on top of ours.
* Fix infinite loop in Volume::_RemovePackageContent().
* Use the RETURN_ERROR() macro in more places to help with debugging.

----------------------------------------------------------------------------

############################################################################

Commit:      51191b1d4c58624a8e3bf9846b2da88ff0b58315
URL:         http://cgit.haiku-os.org/haiku/commit/?id=51191b1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 17:31:17 2011 UTC

Remove debug output

----------------------------------------------------------------------------

############################################################################

Commit:      60043152eb2bd423a94fd780c15276027cbe5c6c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6004315
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 17:31:40 2011 UTC

Mount packagefs with "system" shine-through mode

----------------------------------------------------------------------------

############################################################################

Commit:      b478cc3fc5a9c5dbccc0da1ec450cbcf75d7b9b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b478cc3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 17:32:21 2011 UTC

Put TimGMSoundFont package in the right directory

----------------------------------------------------------------------------

############################################################################

Commit:      4ef5b631e77e9bca75a71c75f3eb06bd02920430
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4ef5b63
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 18:31:16 2011 UTC

Implement packagefs_get_vnode_name() hook

----------------------------------------------------------------------------

############################################################################

Commit:      9561ddca0f8e80582cd352f8f80b187bce7195ed
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9561ddc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 21:20:00 2011 UTC

remove_vnode(): Also consider covering vnode busy

----------------------------------------------------------------------------

############################################################################

Commit:      19c48aa4ae39e2b2ff84224e66b9f8e7b0280c3f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=19c48aa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 21:24:23 2011 UTC

fix_dirent(): Fix ref count leaks

* Only get an additional parent reference, when going to call
  vnode_path_to_vnode().
* Put the reference of the vnode vnode_path_to_vnode() returns.

----------------------------------------------------------------------------

############################################################################

Commit:      0be138ab2f4098d3910880c92f94de8f4c2ea0df
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0be138a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 21:26:23 2011 UTC

vfs_bind_mount_directory(): Fail if unmounting

----------------------------------------------------------------------------

############################################################################

Commit:      fe5928847a347b3a46eea68628388e60796e71db
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fe59288
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 21:31:48 2011 UTC

Completed vfs_bind_mount_directory() support

We don't need to explicitly track the covered/covering nodes per mount
after all. In fs_unmount() we iterate through all vnodes multiple times
anyway and can deal with the covers/covered_by vnodes there. Also, the
root vnode doesn't need to be handled specially anymore.

----------------------------------------------------------------------------

############################################################################

Commit:      5957270c72c705a132afc6280943f92297b34cc3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5957270
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 23:29:21 2011 UTC

Print the package version nicely

----------------------------------------------------------------------------

############################################################################

Commit:      6e6ca8c530399ac66a4ec670f34b32e39c0f2de3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6e6ca8c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 23:31:35 2011 UTC

Fix resolvable name

----------------------------------------------------------------------------

############################################################################

Commit:      ddabac20deacc7bef7a526d53a9856ec7c9d3d3a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ddabac2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 21 23:59:24 2011 UTC

Rename Package "name" property to "fileName"

----------------------------------------------------------------------------

############################################################################

Commit:      01102ee50e3e6ade8bdfe88b9a991ff42d01c364
URL:         http://cgit.haiku-os.org/haiku/commit/?id=01102ee
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 14:27:24 2011 UTC

WIP towards packagefs package links support

* Introduce Version class representing a version.
* Introduce Dependency and Resolvable class and add lists of either to
  Package.
* Parse package attributes and add dependencies and resolvables to
  Package.
* Add a mount type to Volume and add a respective mount parameter
  "mount-type" (values "system", "common", "home", "custom"). Also
  implies the shine-through type, if that's not given.
* Introduce class PackageFamily which groups equally named and versioned
  packages.
* Add class PackageFSRoot. Each instance represents a possible file
  system root (separate roots for different chroot environments). Tracks
  Volumes belonging to the same root and their packages.

----------------------------------------------------------------------------

############################################################################

Commit:      31cd721ebd3122eb93bd743213b0bc16b7997438
URL:         http://cgit.haiku-os.org/haiku/commit/?id=31cd721
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 14:33:17 2011 UTC

Change package and resolvable version

----------------------------------------------------------------------------

############################################################################

Commit:      4b5dbacdbfada68d3b4352cd666a04b504a4b77c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4b5dbac
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 14:35:05 2011 UTC

Make Volume::Read{Lock,Unlock} const

----------------------------------------------------------------------------

############################################################################

Commit:      22a808885bf961eeedecae46e972a592c07caea2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=22a8088
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 15:37:44 2011 UTC

Remove kernel_interface.cpp LeafNode dependency

Introduce abstract virtual Node::ReadSymlink() method that is now used
in packagefs_read_symlink() instead of casting to LeafNode.

----------------------------------------------------------------------------

############################################################################

Commit:      8ae81ef94eb2a0941bdde3cfa8b0ef01cfe38d73
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8ae81ef
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 17:41:56 2011 UTC

Kernel interface abstraction for attribute access

* Introduce interface AttributeCookie and currently only implementation
  UnpackingAttributeCookie. This is an interface for reading/stat()ing
  an attribute.
* Add abstract virtual Node::OpenAttribute() method that returns an
  AttributeCookie and implemented it for derived classes.
* In the kernel interface attribute hooks use AttributeCookie now. The
  attribute directory hooks are unchanged.

----------------------------------------------------------------------------

############################################################################

Commit:      fa9fde956eba228e0c7963621627190a0b087757
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fa9fde9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 19:22:47 2011 UTC

Remove unused Node fields

----------------------------------------------------------------------------

############################################################################

Commit:      b5ff7abceabdb1c2fa700c83dbfba0fce16ddb25
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b5ff7ab
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 19:23:55 2011 UTC

Remove unused LeafNode::SymlinkPath()

----------------------------------------------------------------------------

############################################################################

Commit:      3ad1037bcce52347c19b49ede50eeed8545e3cff
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3ad1037
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 19:28:35 2011 UTC

Move set_dirent_name() to Utils.h

----------------------------------------------------------------------------

############################################################################

Commit:      e807d80833d95840f9b2b529debd6f9de2558e2d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e807d80
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 20:01:59 2011 UTC

Attribute dir access kernel interface abstraction

* Introduce interface AttributeDirectoryCookie and currently only
  implementation UnpackingAttributeDirectoryCookie. This is an interface
  for reading/rewinding an attribute directory.
* Add abstract virtual Node::OpenAttributeDirectory() method that
  returns an AttributeDirectoryCookie and implement it for derived
  classes.
* In the kernel interface attribute directory hooks use
  AttributeDirectoryCookie now.

----------------------------------------------------------------------------

############################################################################

Commit:      e85e0ae85a25fe859f950b1218bf8cb8c7a56322
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e85e0ae
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 21:13:18 2011 UTC

Remove package related dependencies from Node

* Move package related methods from Node to new interface UnpackingNode.
* LeafNode and Directory derive from UnpackingNode now.
* Adjust Volume implementation accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      876a16a21e528ade35c5b4bfd3e10c0b835fe03a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=876a16a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 21:18:13 2011 UTC

Rename LeafNode to UnpackingLeafNode

----------------------------------------------------------------------------

############################################################################

Commit:      511b4fe8b36aaefb5a8a709d1b36ab9728dced76
URL:         http://cgit.haiku-os.org/haiku/commit/?id=511b4fe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 21:33:23 2011 UTC

Pull derived UnpackingDirectory out of Directory

Move all package specifics from now abstract Directory to new derived
class UnpackingDirectory and adjust the Volume implementation
accordingly. This concludes the Node/Directory refactoring. Neither
class is aware of packages anymore.

----------------------------------------------------------------------------

############################################################################

Commit:      5d5bdb495e4270c1826754e57e25e58816cce39a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5d5bdb4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 20:32:46 2011 UTC

Update copyright year

----------------------------------------------------------------------------

############################################################################

Commit:      5663e914c2970d0a7fa08c99347edb39c8cfd33f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5663e91
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 22:05:37 2011 UTC

UnpackingDirectory: Remove unnessary methods

Remove Read() and ReadSymlink() methods which are already implemented in
Directory.

----------------------------------------------------------------------------

############################################################################

Commit:      ffc66d8dd7ed88062eba71386d61e8b310f42d6d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ffc66d8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 23:04:32 2011 UTC

Specify mount type when mounting packagefs

----------------------------------------------------------------------------

############################################################################

Commit:      dce13a0a8cdc1fa99f47d2b1e0cc2f70aeb423a3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dce13a0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 23:08:18 2011 UTC

Node: Add setters for ID and parent

----------------------------------------------------------------------------

############################################################################

Commit:      b8a96de92993a211fef83f249dd815e7ffa0014d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b8a96de
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 23:08:33 2011 UTC

Add yet empty package-links directory

* Add PackageLinksDirectory Directory subclass. Currently not doing
  anything.
* PackageFSRoot: Create a PackageLinksDirectory.
* Volume: Add/remove the package links directory for the system volume.

----------------------------------------------------------------------------

############################################################################

Commit:      7e57d125231aa57c336d056bab12048ead402131
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7e57d12
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 23:20:41 2011 UTC

Move PackageFamily table to PackageLinksDirectory

----------------------------------------------------------------------------

############################################################################

Commit:      a2fc40be04897a8bd7be45e1e1a9296c5aab042f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a2fc40b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 23:37:49 2011 UTC

Move EmptyAttributeDirectoryCookie to own files

----------------------------------------------------------------------------

############################################################################

Commit:      05d7d4818e11f22044e134c680fe650347281481
URL:         http://cgit.haiku-os.org/haiku/commit/?id=05d7d48
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 23 23:42:26 2011 UTC

Add support function get_real_time()

----------------------------------------------------------------------------

############################################################################

Commit:      4031a32accd2bba7bca7c8e93494e95564ae3d60
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4031a32
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 00:15:56 2011 UTC

WIP: Create empty package links directories

* Rename PackageFamily to PackageLinkDirectory and derive from
  Directory.
* PackageLinksDirectory: Add the PackageLinkDirectory objects as
  children and remove the no longer needed hash table (we use the
  Directory's child hash table).

----------------------------------------------------------------------------

############################################################################

Commit:      3e7333b7c188f2193a1bc5109c101461f33197b9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3e7333b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 01:08:10 2011 UTC

Add package link directories to system volume

* Add PackageLinksListener interface. It is used by
  PackageLink[s]Directory to notify a listener about changes.
* Volume does now implement PackageLinksListener and recursively adds/
  removes package link directories.

This makes the package link directories appear at least. They are still
empty.

----------------------------------------------------------------------------

############################################################################

Commit:      1becdcc7c8711d12d309527c6c449b18c4765788
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1becdcc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 09:30:32 2011 UTC

Empty Node::VFS{Init(),Uninit}() implementations

----------------------------------------------------------------------------

############################################################################

Commit:      70c2780c73be60a9c2f23f722815966edca6ee3a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=70c2780
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 10:13:45 2011 UTC

PackageLinksDirectory::AddPackage(): Fix check

----------------------------------------------------------------------------

############################################################################

Commit:      1d8edd93e23d4450560e5c74c568172d70502344
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1d8edd9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 10:15:20 2011 UTC

Create self package link

----------------------------------------------------------------------------

############################################################################

Commit:      724fba1b0961158926033c3bf531f92483573590
URL:         http://cgit.haiku-os.org/haiku/commit/?id=724fba1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 10:42:16 2011 UTC

Add Node::Init() flags parameter

* Add Node::Init() flags:
  - NODE_FLAG_KEEP_NAME: Take over ownership of the name.
  - NODE_FLAG_CONST_NAME: Don't copy the name -- it's a constant that
    lives at least as long as the object.
* Remove Init() implementations in derived classes that just call the
  base class version.

----------------------------------------------------------------------------

############################################################################

Commit:      1382ade575e55b4bd819bb2b60f8dd1999d55758
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1382ade
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 10:47:15 2011 UTC

If none is given pick volume name by mount type

----------------------------------------------------------------------------

############################################################################

Commit:      fc009a29f39d2556096fb3f28536cb53d7c7bdbf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fc009a2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 11:18:55 2011 UTC

Fix NODE_FLAG_OWNS_NAME value

----------------------------------------------------------------------------

############################################################################

Commit:      5f80e51a9ea6c2bdc5c1db46bb55c55d0f8f9418
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5f80e51
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 11:26:34 2011 UTC

Fix Volume::_RemovePackageLinksNode()

Don't use _RemoveNode() as it also removes the node from its parent.

----------------------------------------------------------------------------

############################################################################

Commit:      77574d40ee12142c4c9572143f3a4ebbe9b896ee
URL:         http://cgit.haiku-os.org/haiku/commit/?id=77574d4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 11:30:08 2011 UTC

Init fSelfLink

----------------------------------------------------------------------------

############################################################################

Commit:      59acdf5045470885e5a17d4db4380915c9047a56
URL:         http://cgit.haiku-os.org/haiku/commit/?id=59acdf5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 11:31:21 2011 UTC

Volume: Remove all package contents on destruction

----------------------------------------------------------------------------

############################################################################

Commit:      fd6d5d5a51e055e88176262b2ef26097653b442c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fd6d5d5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 11:33:24 2011 UTC

Reordered methods to match declaration order

----------------------------------------------------------------------------

############################################################################

Commit:      83d5997db5b40b1eced3b99e29f83f5be8000d24
URL:         http://cgit.haiku-os.org/haiku/commit/?id=83d5997
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 11:36:49 2011 UTC

Add node monitoring for package link directories

----------------------------------------------------------------------------

############################################################################

Commit:      35eeebddc470b92183aaadaf3e791ccfc63b55fc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=35eeebd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun 24 23:59:46 2011 UTC

Missing locking when adding/removing package nodes

----------------------------------------------------------------------------

############################################################################

Commit:      cd81fea02d586348a71c12d152bf65751984be4f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cd81fea
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 00:32:32 2011 UTC

Fix package link updates/node monitoring

* PackageLinksListener: Rename methods from *Directory*() to *Node*()
  and change parameter to Node*. Also add a *Changed() method.
* PackageLinkDirectory: Update only when necessary and what is necessary
  (currently only the self link).

----------------------------------------------------------------------------

############################################################################

Commit:      38a7f76509ef229e8ebcabce002ee6fe5a13a5ca
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38a7f76
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 01:02:46 2011 UTC

Add TODOs regarding broken add/remove behavior

----------------------------------------------------------------------------

############################################################################

Commit:      9320567ed2407276a14f86ec44fbe088b13e8e1f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9320567
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 14:39:05 2011 UTC

WIP towards dependency package links

* Add ResolvableFamily and DependencyFamily classes for grouping equally
  named resolvables/dependencies.
* Add hash tables to PackageFSRoot to track resolvables and
  dependencies. That is done in {Add,Remove}Package.
* Resolvable does now have a list of Dependency objects, the ones it
  satisfies.

----------------------------------------------------------------------------

############################################################################

Commit:      5e972a60c3576edb5ae12cc6475ddda75fe9b4a5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5e972a6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 15:11:08 2011 UTC

Dependency: Add Package() getter

----------------------------------------------------------------------------

############################################################################

Commit:      8a8523274139fe2ef6088748d4023b915cbf2d46
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8a85232
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 15:11:33 2011 UTC

Add Dependency::ResolvableVersionMatches()

----------------------------------------------------------------------------

############################################################################

Commit:      0d7d1795a193cd6eb29838fb6e6db9fb685830fb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0d7d179
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 15:12:03 2011 UTC

Resolvable: Add Version() getter

----------------------------------------------------------------------------

############################################################################

Commit:      4081d37dec1f26c66421857dc8a835e465e6d296
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4081d37
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 15:13:07 2011 UTC

ResolvableFamily: Add ResolveDependency()

----------------------------------------------------------------------------

############################################################################

Commit:      bd66b7e67068edf56f2d1cf2bec7c3c4e654b25c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bd66b7e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 15:13:55 2011 UTC

Resolve dependencies to resolvables

----------------------------------------------------------------------------

############################################################################

Commit:      a39e95cd73139d85c43cbece88fa5ffa22e73129
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a39e95c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 16:28:38 2011 UTC

Move PackageLinkDirectory::Link to own file

And rename it to PackageLinkSymlink.

----------------------------------------------------------------------------

############################################################################

Commit:      dd9554ae693e18520e6345f261626f130786e030
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dd9554a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 16:32:06 2011 UTC

Add dependency package links

The links appear, but the dependency resolution doesn't seem to work
correctly yet.

----------------------------------------------------------------------------

############################################################################

Commit:      b143a5a86161569d1fddd77c4c38cd4a93164aef
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b143a5a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 16:46:03 2011 UTC

Notify when removing a package link directory

----------------------------------------------------------------------------

############################################################################

Commit:      5165b6b1d824e80008b09f1ff6319e41b20de09f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5165b6b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 25 17:05:10 2011 UTC

Fix adding order dependent dependency resolution

PackageFSRoot::_AddPackage(): When adding a resolvable which isn't known
yet, make sure all already added matching dependencies are resolved.

----------------------------------------------------------------------------

############################################################################

Commit:      835ecf5aca08b7b5334b6879659a833a06dfb281
URL:         http://cgit.haiku-os.org/haiku/commit/?id=835ecf5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 00:27:38 2011 UTC

Fix dependency resolution on resolvable removable

ResolvableFamily::RemoveResolvable(): Move the resolvable's dependencies
to the update list.

----------------------------------------------------------------------------

############################################################################

Commit:      2d132da8dc68c7ca9bd025c458ab46ff500b243e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2d132da
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 00:28:03 2011 UTC

Optional dependency resolution tracing

----------------------------------------------------------------------------

############################################################################

Commit:      c99aa60b785b10d0c43762168fc98cf14e0ce2b5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c99aa60
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 01:18:11 2011 UTC

Allow symlinks in the packages directory

----------------------------------------------------------------------------

############################################################################

Commit:      2a5bef01a30464638f2c3eee60c9bbe211dac7d8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2a5bef0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 01:20:58 2011 UTC

Volume:Mount(): Better failure output

Also use the FATAL() instead of the ERROR() macro, so something is
printed also with debugging disabled.

----------------------------------------------------------------------------

############################################################################

Commit:      c6739b6af04ae36ef758e7db7a1caca0471fc6ab
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c6739b6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 01:21:33 2011 UTC

Paranoia: Handle unknown mount type

----------------------------------------------------------------------------

############################################################################

Commit:      ecf2e3d34276e387b0deb276ce391395411c89cc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ecf2e3d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 01:33:38 2011 UTC

Cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      a83fe53dcebb1ea7b96f714ab8f51bae636a3823
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a83fe53
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 02:37:30 2011 UTC

Added default cookie Close() implementation

Added trivial implementation for AttributeCookie::Close() and
AttributeDirectoryCookie::Close() and removed the identical Close()
implementations in derived classes.

----------------------------------------------------------------------------

############################################################################

Commit:      59e76dbe414f32cc65320b605442f97eb60296c0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=59e76db
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 02:42:37 2011 UTC

Support for auto-generated package node attributes

* Add utility class AutoPackageAttributes and AttributeCookie subclass
  AutoPackageAttributeCookie.
* UnpackingAttributeCookie::Open() does now try to create a
  AutoPackageAttributeCookie, when it doesn't find the attribute in the
  PackageNode.
* Adjust UnpackingAttributeDirectoryCookie to also list auto-generated
  attributes.

Currently the only supported attribute is "SYS:PACKAGE", which is the
file name of the package containing the node.

----------------------------------------------------------------------------

############################################################################

Commit:      42ae64447ea23718ead67819e15454c931c1882b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=42ae644
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 23:45:06 2011 UTC

Fix printf() format string warnings

----------------------------------------------------------------------------

############################################################################

Commit:      5f039cf037b945f5efbaa790825496f9956ee25c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5f039cf
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 23:46:20 2011 UTC

Fix copy'n'paste error for minor version part

----------------------------------------------------------------------------

############################################################################

Commit:      ed6d59a9a983cb031077b6d541576fc8efec1cfd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ed6d59a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 23:53:01 2011 UTC

Introduce a pre-release version component

* The version string pattern is now:
  <major>[.<minor>[.<micro>]][-<pre>][-<release>]
* Introduce B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_PRE_RELEASE package
  attribute.
* Add "preRelease" field to BPackageVersionData.
* Add "preRelease" property to BPackageVersion and packagefs's Version.
* Adjust package reader and writer code accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      e1a393153da8a44f5e30f67e1276f88b2cf1ba16
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e1a3931
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 26 23:55:03 2011 UTC

Adjust system package versions

They all use package and provides version "R1-alpha3_pm-1", now.

----------------------------------------------------------------------------

############################################################################

Commit:      b85a2681d6cc4dfba1b85af54d780e463a69b04e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b85a268
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 00:29:27 2011 UTC

Coding style: Fix indentation

----------------------------------------------------------------------------

############################################################################

Commit:      3a56aaeeb9f478dff7ab161deade3a9e71acccc5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3a56aae
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:47:12 2011 UTC

BPackageResolvableData: Compatible version field

Add fields haveCompatibleVersion and compatibleVersion. This allows us
to have a minimum version a resolvable is backwards compatible with.

----------------------------------------------------------------------------

############################################################################

Commit:      c2f56ca020107fdff0c1148fb8429d3431e655c7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c2f56ca
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:48:00 2011 UTC

BPackageResolvable: Add compatibleVersion property

----------------------------------------------------------------------------

############################################################################

Commit:      22e1ec0e3064a91643db5e4a62a2e35ffb3a9f11
URL:         http://cgit.haiku-os.org/haiku/commit/?id=22e1ec0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:49:12 2011 UTC

Add package attribute for compatible version

----------------------------------------------------------------------------

############################################################################

Commit:      2db69df113612ae80e37d3d0fee6657ea4a60d50
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2db69df
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:53:12 2011 UTC

Support for parsing the compatible version

In the .PackageInfo the compatible version for a resolvable can
optionally be given after the resolvable version via
"'compat[ible]' '>=' <version>".

----------------------------------------------------------------------------

############################################################################

Commit:      b2709d8a0abeca4e08ed63d2f421ffac320e1a29
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b2709d8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:57:25 2011 UTC

Write resolvable compatible version to the package

To avoid a clash with the regular version or an extra attribute level we
use the "package:provides.compatible" package attribute instead of
"package:version.major".

----------------------------------------------------------------------------

############################################################################

Commit:      ee9c9351a721c98f43475854643a3a192af763b5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ee9c935
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:58:18 2011 UTC

Support for reading compatible version attribute

----------------------------------------------------------------------------

############################################################################

Commit:      71120ca73d3d16c1256dc57de00cfc0832b1b637
URL:         http://cgit.haiku-os.org/haiku/commit/?id=71120ca
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:58:58 2011 UTC

Print the resolvables' compatible version

----------------------------------------------------------------------------

############################################################################

Commit:      89f1807be6ffdd03aa60603326aad9bfc6303619
URL:         http://cgit.haiku-os.org/haiku/commit/?id=89f1807
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:59:27 2011 UTC

Add compatible version support to packagefs

----------------------------------------------------------------------------

############################################################################

Commit:      2ae9a147cac20560d6d0445e8ddf1a31c3f04e26
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2ae9a14
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 01:59:55 2011 UTC

Declare the system package as backwards compatible

----------------------------------------------------------------------------

############################################################################

Commit:      ba1bc0a4ffb6bbaca8257ccad75e80b08020f4ac
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ba1bc0a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 02:07:16 2011 UTC

Small cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      acdcba84ec9426c2d9cad20360f922d519cd1a25
URL:         http://cgit.haiku-os.org/haiku/commit/?id=acdcba8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 02:31:40 2011 UTC

Remove "copyright" and "license" keywords

There's "copyrights" and "licenses" which can be used.

----------------------------------------------------------------------------

############################################################################

Commit:      78ceed51225d370576ae9f460d935b66fcc4c748
URL:         http://cgit.haiku-os.org/haiku/commit/?id=78ceed5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 02:34:10 2011 UTC

Allow single-element string/flag lists without []

As syntactic sugar string and flag lists no longer need to be enclosed
in brackets when they have exactly one element.

----------------------------------------------------------------------------

############################################################################

Commit:      36145114ae7f4d412ba7e34b13b1fd282c3c0e54
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3614511
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 02:35:50 2011 UTC

Adjust "copyright"/"licenses" fields

Use the plural keyword name and omit brackets when only one element is
specified.

----------------------------------------------------------------------------

############################################################################

Commit:      2ec6e02711808ba732299d5d5f1ac074b774b282
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2ec6e02
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 04:22:44 2011 UTC

Small cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      eadc3c844da335809e728635ff76a298a9d0d999
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eadc3c8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 04:50:39 2011 UTC

Add architecture property to Package

----------------------------------------------------------------------------

############################################################################

Commit:      ba926f35547e9e75613ad35f8b7901e9e7845a62
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ba926f3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 04:51:02 2011 UTC

Extract architecture from package file

----------------------------------------------------------------------------

############################################################################

Commit:      7e346f16778a21926ca172008241d52f9f517222
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7e346f1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 04:51:40 2011 UTC

Include architecture in package links dir names

----------------------------------------------------------------------------

############################################################################

Commit:      91698de99472aeb71a48fe1428acc8e24aaf2c8a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=91698de
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 17:12:35 2011 UTC

Make .PackageInfo more driver-settings-ish

* Use braces instead of brackets for lists.
* Semicolons and newlines separate items now. Remove handling for comma.
* Allow '\'' as quotation character.
* Remove assignment after variable name.

This should make the .PackageInfo format driver settings compatible, but
not vice versa. It is still stricter.

----------------------------------------------------------------------------

############################################################################

Commit:      1feaa8ab7e7ea62930d1e74ea7dfad3c32576fc4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1feaa8a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 17:12:58 2011 UTC

Adjust to changed .PackageInfo format

----------------------------------------------------------------------------

############################################################################

Commit:      941ec459132d16fe7a373841a054aa78063dbcd9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=941ec45
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 27 23:04:26 2011 UTC

Don't include architecture in package links names

This reverts commit a491e591c86cec4b2ce52df86f7b0d32545b4169.

----------------------------------------------------------------------------

############################################################################

Commit:      430689a68858ddd6dc4ac36394fd924abd5ed143
URL:         http://cgit.haiku-os.org/haiku/commit/?id=430689a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 14:54:56 2011 UTC

Move hpkgBaseURL definition before its first use

----------------------------------------------------------------------------

############################################################################

Commit:      ee453e8bbccd77988e5c422a4e3d76058bd95fb2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ee453e8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 15:24:34 2011 UTC

Add url and sourceURL properties to BPackageInfo

Also extend the parser to accept "url" and "source-url" attributes.

----------------------------------------------------------------------------

############################################################################

Commit:      8b684dd3630305ea03495f39e3a1bf62a94ba6d6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8b684dd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 15:25:18 2011 UTC

Add URL/source URL hpkg package attributes

----------------------------------------------------------------------------

############################################################################

Commit:      122597e0ba4eaa94aea0b1197e1f42d659a5f3ea
URL:         http://cgit.haiku-os.org/haiku/commit/?id=122597e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 15:44:13 2011 UTC

Simplify BPackageInfo::Parser::_Parse()

This also fixes the memory leak due to the previously used on-stack
BObjectLists not having been defined owning the elements.

----------------------------------------------------------------------------

############################################################################

Commit:      d4701a292100473ababbd936b01c5dc3de2e135d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d4701a2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 16:01:14 2011 UTC

Simplify BPackageInfo::Parser::_Parse() further

* Match the attribute in a loop, use an attribute ID switch, do the
  "seen" checks without the switch.
* Explicitly handle the case when encountering an unknown attribute.

----------------------------------------------------------------------------

############################################################################

Commit:      28268808d8e956d3536ed04b2ce44a8c07a9be63
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2826880
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 16:15:36 2011 UTC

Change source URL package info attribute name

Use "-" instead of "_".

----------------------------------------------------------------------------

############################################################################

Commit:      116852fecb4dc982b2f3581a9f65ff290ae79e3f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=116852f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 16:16:18 2011 UTC

Support package info [source] URL attributes

----------------------------------------------------------------------------

############################################################################

Commit:      1bcc0f6e4a895e130db7cedabc178edfe78d777e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1bcc0f6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 28 18:57:30 2011 UTC

.OPD -> .PackageInfo conversion tool

----------------------------------------------------------------------------

############################################################################

Commit:      1ef35574eb72074ae996c537d7ff26743c6844da
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1ef3557
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jun 29 22:04:54 2011 UTC

package extract: Delay setting node permissions

In HandleEntry() create the file/directory with sufficient permissions
for the user and set the archived permissions in HandleEntryDone(). This
makes sure child attributes and entries can be created.

----------------------------------------------------------------------------

############################################################################

Commit:      df18eb8718898fb7e41b9e08e213a5ea36ee137f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=df18eb8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jun 29 22:05:19 2011 UTC

Fix gcc 2 build by making Parser a friend

----------------------------------------------------------------------------

############################################################################

Commit:      64b8c37680d22e49337f52a51bff26bfdc5f1811
URL:         http://cgit.haiku-os.org/haiku/commit/?id=64b8c37
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 16:36:06 2011 UTC

Move post install files to system package

----------------------------------------------------------------------------

############################################################################

Commit:      d3deb18a2d468668e73595b3f2516abdeb4beeb8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d3deb18
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 16:36:17 2011 UTC

Repackage default optional packages as hpkg files

----------------------------------------------------------------------------

############################################################################

Commit:      775b8d7afd5380fc018b198df853a39c22885231
URL:         http://cgit.haiku-os.org/haiku/commit/?id=775b8d7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 17:05:28 2011 UTC

_kern_read_link() ignored the path

----------------------------------------------------------------------------

############################################################################

Commit:      18d457f8b22dca3069a9e9b7c9701f4c040093b9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=18d457f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 17:06:47 2011 UTC

Add helper is_unknown_or_system_descriptor()

----------------------------------------------------------------------------

############################################################################

Commit:      4dbc2457985f94d2aa46668739f73231b4b2edfb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4dbc245
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 17:17:17 2011 UTC

Wrap POSIX FD functions in libroot_build

This makes opening symlinks work universally in the build system tools.
Two mechanisms have been implemented, both of which don't always work.
The first is remapping via preprocessor macros. This fails where equally
named methods are used (e.g. STL fstream::open()). The other is using
hidden functions in the new libroot_build_function_remapper.a that is
linked into everything that is linked against libroot_build.so. This one
fails for functions that are defined inline in headers (Linux/glibc does
that). Together they seem to cover our build system needs ATM.

----------------------------------------------------------------------------

############################################################################

Commit:      e954868b707861fe2dcc53c053ac5600134eec5c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e954868
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 17:18:21 2011 UTC

Disable function remapping via macros

STL fstream::open() is used, so the macros break the build.

----------------------------------------------------------------------------

############################################################################

Commit:      bd530a0800c184d4fcc0091fa4c7949697e58b1d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bd530a0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 17:19:03 2011 UTC

Remove the build platform work-arounds

----------------------------------------------------------------------------

############################################################################

Commit:      a6e73cb9e8addfe832c064bfcb68067f1c2fa3eb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a6e73cb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 17:23:45 2011 UTC

Remove installoptionalpackage

----------------------------------------------------------------------------

############################################################################

Commit:      075913f32d78b62c8b9ea13c7834515ae83fa482
URL:         http://cgit.haiku-os.org/haiku/commit/?id=075913f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 18:28:07 2011 UTC

Move gutenprint data files to system

----------------------------------------------------------------------------

############################################################################

Commit:      78c665f2c3ba57d4e7758d99f8a8123aed64a81e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=78c665f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 18:42:48 2011 UTC

lpe symlink is in the pe package now

----------------------------------------------------------------------------

############################################################################

Commit:      80399d67d31da6137f876a5edabc198c1d30f885
URL:         http://cgit.haiku-os.org/haiku/commit/?id=80399d6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 18:59:07 2011 UTC

Don't create empty non-writable common directories

----------------------------------------------------------------------------

############################################################################

Commit:      b0533d66a71485d56a53b8af672974617e3e4684
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b0533d6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 18:59:22 2011 UTC

Add missing "cache" shine-through directory

----------------------------------------------------------------------------

############################################################################

Commit:      57af7489207c9c9cd504ecdf221b1f59caee170e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=57af748
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 19:00:22 2011 UTC

Also mount "common" packagefs on boot

----------------------------------------------------------------------------

############################################################################

Commit:      00043b5320954b88725e2379e7e590add246a304
URL:         http://cgit.haiku-os.org/haiku/commit/?id=00043b5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 19:07:03 2011 UTC

Use InstallOptionalHaikuImagePackage for gcc too

----------------------------------------------------------------------------

############################################################################

Commit:      dfa6888fb2b5ed76fbb533486b2d3828809523a2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dfa6888
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 19:07:22 2011 UTC

Remove InstallCommonPackage rule

----------------------------------------------------------------------------

############################################################################

Commit:      fd0e9e33d0ff6487625877af16dfd6a076762fc7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fd0e9e3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 20:39:03 2011 UTC

Fix bison hpkg package name

----------------------------------------------------------------------------

############################################################################

Commit:      4cf5f9293fa9bd941c1cf1072042b90d11e4f5d3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4cf5f92
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 19:33:43 2011 UTC

Cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      5b486787aac2318368f6cd3eb624eebb28e9ed94
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5b48678
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 23:36:46 2011 UTC

Improve FileDescriptorCloser

* Add SetTo()/Unset() methods and no-argument constructor.
* Detach() returns the FD now.

----------------------------------------------------------------------------

############################################################################

Commit:      bfbb410d1a0c26a5c39fbaeb10bfbd69ccf0cb1a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bfbb410
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 23:37:48 2011 UTC

BPackageInfo::ReadFromConfigFile() BFile& version

----------------------------------------------------------------------------

############################################################################

Commit:      4512e8d5669716c2d0e41f6f117cb86635482ebc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4512e8d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 23:41:28 2011 UTC

Add optional FD parameter to AddEntry()

If a FD is specified, instead of using the file with the given the FD is
used. Allows for adding entries without first copying them into the
directory structure.

----------------------------------------------------------------------------

############################################################################

Commit:      6707be54030e82f4e1a3ad38cdce7d1522f61cb1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6707be5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 23:42:23 2011 UTC

Add create -i option for specifying a package info

----------------------------------------------------------------------------

############################################################################

Commit:      32081667b118ca5603e9036ad18ef8161c34386a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3208166
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 23:42:47 2011 UTC

Make use of package create -i option

----------------------------------------------------------------------------

############################################################################

Commit:      55191c9ac9883365c93d4e5cdf3e54a4e46d0366
URL:         http://cgit.haiku-os.org/haiku/commit/?id=55191c9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 30 23:51:34 2011 UTC

Remove debug output

----------------------------------------------------------------------------

############################################################################

Commit:      4f5d405e3468ab70499b2a31542817136fd9dd9a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4f5d405
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  1 00:21:28 2011 UTC

Add package extract -i option

Allows to specify an alternate location for the .PackageInfo.

----------------------------------------------------------------------------

############################################################################

Commit:      5845e7916997e8c231a89daf5a5bacdc9f4211d9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5845e79
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  1 00:39:57 2011 UTC

Missing include

----------------------------------------------------------------------------

############################################################################

Commit:      4796acbc8c8fa3a5325a27722746b999009988d1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4796acb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  1 02:26:23 2011 UTC

Support for extracting only specified entries

----------------------------------------------------------------------------

############################################################################

Commit:      52232dbf43ef8347f3b2c18a294f0068ed9453d7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=52232db
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  1 02:29:34 2011 UTC

Print relative paths in error messages

----------------------------------------------------------------------------

############################################################################

Commit:      285f4a321ab6fbfc7988f37ef3ef9b64f0aadbc4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=285f4a3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  1 22:32:35 2011 UTC

Remove debug output

----------------------------------------------------------------------------

############################################################################

Commit:      697b9545b17b6a29237523f6e5aac14a1cab5684
URL:         http://cgit.haiku-os.org/haiku/commit/?id=697b954
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  2 00:29:40 2011 UTC

BLowLevelPackageContentHandler interface extension

HandleAttributeDone(): Add parentToken parameter.

----------------------------------------------------------------------------

############################################################################

Commit:      82af91fb0ecc92d000d8be513d71353961bffd71
URL:         http://cgit.haiku-os.org/haiku/commit/?id=82af91f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  2 02:49:49 2011 UTC

SubPathAdder: Check for overflows, omit initial /

----------------------------------------------------------------------------

############################################################################

Commit:      ffa2b2104bfa68250f1308b0d8f74b9b5ee35d55
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ffa2b21
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  2 02:50:51 2011 UTC

PackageWriterImpl::_AddEntry(): Improve output

Print the relative path instead of only the leaf name.

----------------------------------------------------------------------------

############################################################################

Commit:      eb601f803e1d79c98d7cb2367e13f70aceafce56
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eb601f8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  2 16:06:40 2011 UTC

Move Debugger's Array class to headers/shared

----------------------------------------------------------------------------

############################################################################

Commit:      5518472255ef10b5b03d30a8d2115cffa3a8dfa6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5518472
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 01:55:30 2011 UTC

Declare Array destructor inline

----------------------------------------------------------------------------

############################################################################

Commit:      85759ab92f9ad360b2c840d200048e9bb8839f01
URL:         http://cgit.haiku-os.org/haiku/commit/?id=85759ab
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 01:57:51 2011 UTC

Add RangeArray utility class

Templatized class for managing a set of sorted non-overlapping integer
ranges. Merges and splits ranges as necessary.

----------------------------------------------------------------------------

############################################################################

Commit:      fce74facea3cb8d6b156d0e3e5b3f466e5e41bd1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fce74fa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 01:58:19 2011 UTC

Add Array.h and RangeArray.h build headers

----------------------------------------------------------------------------

############################################################################

Commit:      b3211314fce9f0147e7743259826ce062bac9b02
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b321131
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:00:23 2011 UTC

Define IDs for package section

----------------------------------------------------------------------------

############################################################################

Commit:      97aabbede911b549e50d7ad753b4755d5c8d85a7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=97aabbe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:07:47 2011 UTC

Add BLowLevelPackageContentHandler section hooks

* Add hooks HandleSectionStart() and HandleSectionEnd(). They are
  invoked to bracket package file section, so the handler can
  discriminate which section the attributes belong to.
  HandleSectionStart() features a return parameter _handleSection, which
  allows to handler to pick which sections it wants to handle.
* "package dump" does now print the section names.

----------------------------------------------------------------------------

############################################################################

Commit:      c83c5423aa8375a9ba51ae600f0cd365f1042966
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c83c542
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:08:40 2011 UTC

Add PackageReaderImpl heapOffset/Size getters

----------------------------------------------------------------------------

############################################################################

Commit:      abbeb15ac4f2b6524852c09a35db7b3b90b0cd3c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=abbeb15
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:13:12 2011 UTC

Move RegisterPackageInfo() to Finish()

----------------------------------------------------------------------------

############################################################################

Commit:      04258e474118bc6d00e704d058723aec6fcf193f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=04258e4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:15:24 2011 UTC

Use fHeapOffset instead of sizeof(hpkg_header)

----------------------------------------------------------------------------

############################################################################

Commit:      7b6bcdb146b8ac24ef3569fcb152627f724e156c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7b6bcdb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:20:35 2011 UTC

Write uncompressed package attributes if necessary

When compression doesn't save space, using it nonetheless results in a
file that the reader complains about. So we fall back to writing an
uncompressed package attributes section in such a case.

The same still needs to be done for the TOC section.

----------------------------------------------------------------------------

############################################################################

Commit:      327b38d69c8d9a128c64d0535f15b0274b51c51b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=327b38d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:26:54 2011 UTC

Add support for adding/updating package entries

Add flags parameter to BPackageWriter::Init() (and the private
implementation classes) to indicate that an existing package file shall
be updated instead of created. Currently that always happens in-place.

----------------------------------------------------------------------------

############################################################################

Commit:      1bd38c43184fef526026c8c9d93ded7d1c9ff635
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1bd38c4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:29:33 2011 UTC

Move PackageWriterListener to separate file

----------------------------------------------------------------------------

############################################################################

Commit:      35f8c67c17d5a35756ef419d51c640fa9eea4cdc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=35f8c67
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:31:30 2011 UTC

Move directory iteration helper to own file

----------------------------------------------------------------------------

############################################################################

Commit:      c1b5ec4065becc1c7bb35390ac88800de9012e34
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c1b5ec4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:31:59 2011 UTC

Add "package add" command.

----------------------------------------------------------------------------

############################################################################

Commit:      6f785748aa1fef5bb193e17ff243794250004ac6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6f78574
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 02:46:26 2011 UTC

Write uncompressed package file TOC, if necessary

----------------------------------------------------------------------------

############################################################################

Commit:      cc3f28c0b5237b9afc9a26ebc90aed6e50c2dc32
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cc3f28c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 06:28:32 2011 UTC

PackageWriterImpl::_MoveHeapChunk(): better output

----------------------------------------------------------------------------

############################################################################

Commit:      f79277d0e707ed8ec4d2349108d17b99a2287488
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f79277d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 06:31:19 2011 UTC

Fix "package add" heap compacting

PackageWriterImpl::_CompactHeap(): Incorrectly used fHeapEnd instead of
the heap size. So the last copied chunk was too large.

----------------------------------------------------------------------------

############################################################################

Commit:      161d45feb55fde0e00e3e065ddd800529bdd1074
URL:         http://cgit.haiku-os.org/haiku/commit/?id=161d45f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 06:44:19 2011 UTC

Support for package "update" build profile action

* Add global HAIKU_PACKAGES_UPDATE_ONLY build system variable, which is
  set for the "update" and "update-all" build profile actions.
* Change the HAIKU_INCLUDE_IN_CONTAINER_VAR variable on packages to
  HAIKU_INCLUDE_IN_PACKAGES for all packages. The variable is also
  set for the "update" and "update-all" build profile actions.
* Introduce HAIKU_CONTAINER_INHERIT_UPDATE_VARIABLE on container
  variable. If set, the contained variable will be set on the container
  when one or more files in it are updated. It is set on packages so an
  update of a file in a package causes the package to be updated in the
  image.
* Introduce HAIKU_CONTAINER_ALWAYS_CREATE_DIRECTORIES on container
  variable. If set, directories will be created also in update mode. It
  is set on packages.

----------------------------------------------------------------------------

############################################################################

Commit:      204261b63a8cad0629912a9cecfe982b4b78ae44
URL:         http://cgit.haiku-os.org/haiku/commit/?id=204261b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 07:06:10 2011 UTC

AddFilesToContainer: avoid unnecessary work

* If after filtering the list of targets is empty, return.
* Get the directory only afterwards.

----------------------------------------------------------------------------

############################################################################

Commit:      319b1a7b3b488f5a6621e9888564e5f42051f096
URL:         http://cgit.haiku-os.org/haiku/commit/?id=319b1a7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 07:10:27 2011 UTC

Don't add directories explicitly to packages

Directories are added implicitly when entries are added, so there's no
need to add those directories. Directories without content don't need to
be added either, since due to the read-only nature of packages they will
remain empty.

----------------------------------------------------------------------------

############################################################################

Commit:      fd03be4838549e6e44627471b7692fc6a75ccf33
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fd03be4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 07:12:57 2011 UTC

ExtractArchiveToContainer: Add update support

Add an alwaysUpdate parameter like the ExtractArchiveTo{Image,Package}
rules have and do the handling in the base rule.

----------------------------------------------------------------------------

############################################################################

Commit:      5e2b65028135d2f4f0d9051002476ff12593c4b4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5e2b650
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 07:28:30 2011 UTC

Update support for update-* targets

Set HAIKU_PACKAGES_UPDATE_ONLY and HAIKU_INCLUDE_IN_PACKAGES when one of
the pre-build-profile update-* targets are used.

----------------------------------------------------------------------------

############################################################################

Commit:      b059c5e4fce866ea79969342bbe385b324be94ed
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b059c5e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 07:29:24 2011 UTC

Add PropagateContainerUpdateTargetFlags rule

It propagates the HAIKU_INCLUDE_IN_IMAGE and HAIKU_INCLUDE_IN_PACKAGES
variables from one target to another.

----------------------------------------------------------------------------

############################################################################

Commit:      c9c6e365376258f4f29d474675c37f7e4ca75498
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c9c6e36
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 07:30:54 2011 UTC

Use PropagateContainerUpdateTargetFlags rule

Propagate all update variables in CopySetHaikuRevision and for the
kernel pseudo target.

----------------------------------------------------------------------------

############################################################################

Commit:      3095cb1bc9f5d9bafa4b5d2ead76449c99567c4a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3095cb1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 08:28:03 2011 UTC

Remove copy'n'paste left-over

----------------------------------------------------------------------------

############################################################################

Commit:      718fba99c819b419a8eccff713a3ff71b44a2ecb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=718fba9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 08:33:12 2011 UTC

PackageWriterImpl::_AddEntry(): Fix update logic

* Don't only look up the entry attribute when the entry is implicit.
  Look it up, when it is a directory instead. This aligns it the logic
  with _UpdateCheckEntryCollisions().
* When the entry attribute exits and the entry is not implicit, add file
  attributes, but not stat data. This also aligns the logic with
  _UpdateCheckEntryCollisions(), which removes colliding attributes, but
  keeps stat data.

----------------------------------------------------------------------------

############################################################################

Commit:      76ca98339d0b98f4f3c17c510ddcf134bb001cab
URL:         http://cgit.haiku-os.org/haiku/commit/?id=76ca983
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  3 09:24:56 2011 UTC

Postpone setting gBootDevice until after packagefs

The modules code uses gBootDevice as an indicator that modules can be
loaded from the boot volume. This is not the case until packagefs has
been mounted, though, so we postpone setting gBootDevice.

----------------------------------------------------------------------------

############################################################################

Commit:      b750c6bf71ae381ed7f6d84585dd8009f35fe300
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b750c6b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  4 16:48:47 2011 UTC

Fix Dependency version comparisons

----------------------------------------------------------------------------

############################################################################

Commit:      a77ad30938d369e45cb172ec6a5d718d78e61ec6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a77ad30
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  4 16:49:13 2011 UTC

Fix loading the resolvable compatible version

----------------------------------------------------------------------------

############################################################################

Commit:      b5831cdf17727e08d6c1e6d28ded5d9a5275d844
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b5831cd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  4 17:53:24 2011 UTC

Disable WonderBrush until repackaged

----------------------------------------------------------------------------

############################################################################

Commit:      b489481920ca9974bae86b70871f1757e7a31db6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b489481
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  4 17:53:44 2011 UTC

Create /boot/apps and /boot/preferences symlinks

----------------------------------------------------------------------------

############################################################################

Commit:      7210d7aa5879a9aa5ede74478cd544e6f377239d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7210d7a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 20:25:12 2011 UTC

Create a generalized version of BFS's query code

The new version is templatized over a QueryPolicy which provides the
interface to the file system specifics.

----------------------------------------------------------------------------

############################################################################

Commit:      44de97031e45b987ab2adb473b1a9e42adf2782c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=44de970
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 20:45:06 2011 UTC

Add TwoKeyAVLTree to kernel utils

This is a tree implementation with elements with primary and secondary
key. The code is a cleaned up version of ramfs's implementation. ramfs
doesn't use this version yet.

----------------------------------------------------------------------------

############################################################################

Commit:      67f11c47a76f21dab107649cf072ab919e0dd1ba
URL:         http://cgit.haiku-os.org/haiku/commit/?id=67f11c4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 20:49:07 2011 UTC

Add a global node listener mechanism

----------------------------------------------------------------------------

############################################################################

Commit:      804a92da7afe1a970f88ac11f0fc374635fc56f7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=804a92d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 20:55:24 2011 UTC

Add Index base class and index table in Volume

----------------------------------------------------------------------------

############################################################################

Commit:      3897e7298eabe1bfe7faf8f12c9f865863938938
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3897e72
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 20:57:29 2011 UTC

Add NameIndex class and create instance in Volume

----------------------------------------------------------------------------

############################################################################

Commit:      a3f976768e5b4e7678827775c817fd1f38950304
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a3f9767
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 20:58:58 2011 UTC

Add Query class and query management in Volume

----------------------------------------------------------------------------

############################################################################

Commit:      b8dae0fe7be1feb1cb982f6fcbae3fe7bc29cd10
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b8dae0f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 20:59:48 2011 UTC

Implement query FS hooks, add empty index FS hooks

----------------------------------------------------------------------------

############################################################################

Commit:      216ba45933836b446b7faf6880d6210dcf6305c3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=216ba45
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  5 21:00:02 2011 UTC

Automatic whitespace cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      d612248dcf6c31901ed9961db65171caeafe3729
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d612248
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jul  6 12:58:08 2011 UTC

Cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      20b22dfc3d24ba812ceeaff56c701bdc26d49ba3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=20b22df
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 05:46:22 2011 UTC

AVLTree: Add Previous()/Next()

----------------------------------------------------------------------------

############################################################################

Commit:      0c19263c85c5bdc6742227dc8311e0d83f476ec5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c19263
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 05:48:09 2011 UTC

AVLTreeMap/TwoKeyAVLTree: More access to nodes

both:
* Add Previous()/Next().
* Add Insert() version that returns a Node* instead of an Iterator.
* Add Remove() version that takes a Node* instead of a key.

TwoKeyAVLTree:
* Add GetIterator() version that takes an additional Node*, i.e.
  initializing an iterator to point to the node.
* Add Iterator::CurrentNode().

----------------------------------------------------------------------------

############################################################################

Commit:      9811f22cabcc8708113e833ddde6748d9435f66a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9811f22
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 05:59:09 2011 UTC

QueryParser: Explicitly suspend/resume iterators

Extended policy by IndexIteratorSuspend() and IndexIteratorResume()
methods that are invoked for the index iterator by Query::GetNextEntry()
after entering respectively before exiting.

----------------------------------------------------------------------------

############################################################################

Commit:      747578cd93d7220c99fd704d442477dab2e360b4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=747578c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 06:01:44 2011 UTC

Fix NameIndexPrimaryKeyCompare

It was actually returning whether the names where not equal.

----------------------------------------------------------------------------

############################################################################

Commit:      32ad4ceefb2f3f933396654817a4d2f361716cc8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=32ad4ce
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 06:06:16 2011 UTC

Simplify [Abstract]IndexIterator interface

* Remove Current() and Previous() and add a HasNext() instead.
* Reimplement NameIndexIterator. It directly works with tree nodes
  instead of using an iterator, now.

----------------------------------------------------------------------------

############################################################################

Commit:      49d2f608d49b268db9136c8acbd328842bfee891
URL:         http://cgit.haiku-os.org/haiku/commit/?id=49d2f60
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 06:10:15 2011 UTC

Name::Index(): Fix initialization order

Add the node listener directly after calling the base class Init().
Otherwise, on error, the we could try to remove the listener although it
wasn't added in the first place.

----------------------------------------------------------------------------

############################################################################

Commit:      fb88975a7b9c3a7a3ef2bf9025ae83c73e859a2c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fb88975
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 06:12:28 2011 UTC

~NameIndex(): Make more robust

Remove the listener only, if it was registered.

----------------------------------------------------------------------------

############################################################################

Commit:      9b2a17084229a86d31dc4537132f5eb33c405f4d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9b2a170
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 06:30:21 2011 UTC

PackageLinkSymlink: Init fLinkPath in constructor

----------------------------------------------------------------------------

############################################################################

Commit:      773005292a36c2a1f7cd1eed4fe3a7ca8fc95559
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7730052
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 06:38:02 2011 UTC

NodeListener::NodeChanged(): Provide old value

* Add interface OldNodeAttributes an instance of which is passed to
  NodeListener::NodeChanged() to provide the old attribute values
  (currently only modification time and file size).
* Also extend PackageLinksListener::PackageLinkNodeChanged() with a
  OldNodeAttributes parameter.
* Add OldNodeAttributes implementations for PackageLinkSymlink (inner
  class OldAttributes) and UnpackingNode (OldUnpackageNodeAttributes).

----------------------------------------------------------------------------

############################################################################

Commit:      a3463d19323e5ff7a4f6b8c1313f1dd1978311e4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a3463d1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 07:20:15 2011 UTC

Refactor NameIndexIterator into template class

Create template class GenericIndexIterator from NameIndexIterator.

----------------------------------------------------------------------------

############################################################################

Commit:      46368f46f38f02c06c1cf7e0f51b189ccab987c1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=46368f4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 09:26:38 2011 UTC

Small cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      a058fbe8a1707e6e3ccaa79002ad29bf18531b71
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a058fbe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 09:27:33 2011 UTC

TwoKeyAVLTree: Add FindFirstClosest()

----------------------------------------------------------------------------

############################################################################

Commit:      144129434f20eb579fed296518503762fa2ac277
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1441294
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 09:30:06 2011 UTC

GenericIndexIterator: Fix NameIndex dependency

Next() was still copying the name. Add a GetNodeValue() method to the
policy that fetches the value instead.

----------------------------------------------------------------------------

############################################################################

Commit:      078007398465dad201100c17bb87243c0e7f6340
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0780073
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 09:34:31 2011 UTC

GenericIndexIterator::SetTo(): Find fuzzily

Use TwoKeyAVLTree::FindFirstClosest() instead of FindFirst(), so, if the
value isn't in the index, we find the closest greater value. That's the
semantics Index::InternalFind() is expected to have.

----------------------------------------------------------------------------

############################################################################

Commit:      0209c404dc03c2a2df4f29f54c6957aa4b11370c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0209c40
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 09:37:22 2011 UTC

Add comment

----------------------------------------------------------------------------

############################################################################

Commit:      d56e19fb9e8beaa316c8aea36a087bcdb48190c5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d56e19f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 09:39:49 2011 UTC

GenericIndexIterator: Add node change helpers

Add NodeChangeBegin()/NodeChangeEnd() methods that can be used by the
index when the respective node attribute has changed. They make sure
that the iterator doesn't move with the node, should it be inserted into
the index at a different position.

----------------------------------------------------------------------------

############################################################################

Commit:      d35565bed0f5c64aa02e5e69b5ffa3ae7bd484e8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d35565b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 09:42:31 2011 UTC

Add size index support

* Add class SizeIndex.
* Create and add an instance of it in Volume mount.

----------------------------------------------------------------------------

############################################################################

Commit:      8c8e925a0a897fb727e97c9a931a3138de5cf29b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8c8e925
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 11:02:07 2011 UTC

QueryParser: The last_modified index is time_t

* Changed value type from B_INT64_TYPE to B_INT32_TYPE.
* Changed QueryPolicy::NodeGetLastModifiedTime() return value from
  bigtime_t to time_t.

----------------------------------------------------------------------------

############################################################################

Commit:      a5d15ca28bd045817e8b9af4c11dfe1f818ec73c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a5d15ca
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 11:02:33 2011 UTC

Removed left-over commented code

----------------------------------------------------------------------------

############################################################################

Commit:      0c63c7738a1b281eb4232cc7f7a323436b09b63b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c63c77
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 11:03:30 2011 UTC

Add last modified index support

* Add class LastModifiedIndex.
* Create and add an instance of it in Volume::Mount().

----------------------------------------------------------------------------

############################################################################

Commit:      28559a4e2403ac6be2899b7c6faad0cff855db82
URL:         http://cgit.haiku-os.org/haiku/commit/?id=28559a4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 13:27:30 2011 UTC

Build fix

----------------------------------------------------------------------------

############################################################################

Commit:      3877a7f4a001e7a9fad0215a5694a1cc7ec0e397
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3877a7f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 13:31:12 2011 UTC

AVLTreeMap fixes

* AVLTreeMap::_GetKey(): Change return type from const Key& to Key, so
  the strategy can do that as well and doesn't have have a Key object in
  the node.
* Fix the Auto strategy: It was using the undefined _GetKey() instead
  of GetKey().

----------------------------------------------------------------------------

############################################################################

Commit:      01f7f92aef0dada1afd9c57366e3358c309dd825
URL:         http://cgit.haiku-os.org/haiku/commit/?id=01f7f92
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 13:33:05 2011 UTC

Move helper function out of QueryParser.h

They live in the new QueryParserUtils.{h,cpp} now.

----------------------------------------------------------------------------

############################################################################

Commit:      901749cff25f1019b3442c436799d2c9ec631230
URL:         http://cgit.haiku-os.org/haiku/commit/?id=901749c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  7 13:40:04 2011 UTC

Remove TwoKeyAVLTree from kernel utils again

It's not ready for shared use yet.

----------------------------------------------------------------------------

############################################################################

Commit:      3e29244600395a0cea91cfc0a0323016fc0f3253
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3e29244
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 13:37:46 2011 UTC

Move B_MIME_STRING_TYPE to <TypeConstants.h>

----------------------------------------------------------------------------

############################################################################

Commit:      a52387c6690ca89344eb5f7df393efc65a9b70d8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a52387c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 13:38:14 2011 UTC

compareKeys(): Also handle B_MIME_STRING_TYPE

----------------------------------------------------------------------------

############################################################################

Commit:      278925246f89909a7803dd0b5734f6207a2bdb92
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2789252
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 13:41:28 2011 UTC

Remove unused PackageNodeAttribute::fParent

----------------------------------------------------------------------------

############################################################################

Commit:      51ee03beadbf26f9485e5dde936e09737e18c466
URL:         http://cgit.haiku-os.org/haiku/commit/?id=51ee03b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 13:42:24 2011 UTC

QueryPolicy::NodeGetAttribute(): Get the type too

----------------------------------------------------------------------------

############################################################################

Commit:      4d67e7847b2c58d8c6654f0b67fa27ccd7fdddb1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4d67e78
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 13:46:34 2011 UTC

More abstraction in GenericIndexIterator

* Move tree node operations to a subpolicy TreePolicy.
* Add a GenericIndexIteratorTreePolicy templatized over the policy,
  implementing the tree policy for the standard indices.

----------------------------------------------------------------------------

############################################################################

Commit:      55b969b13bfbfba814aea0c961cae29825083ee6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=55b969b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 14:14:46 2011 UTC

Attribute index support for non-special attributes

* Add AttributeIndex class.
* Each attribute does now have an attribute index cookie. The new
  attribute index service methods Node::IndexAttribute() and
  IndexCookieForAttribute() create+set/retrieve the cookie. The cookie
  is actually the attribute index's tree node.
* Add OldNodeAttribute::IndexCookieForAttribute() so the cookie is
  available when the node changes.

----------------------------------------------------------------------------

############################################################################

Commit:      061337ba5f903fedea109ad526c68cc7238254ff
URL:         http://cgit.haiku-os.org/haiku/commit/?id=061337b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 14:15:14 2011 UTC

Create a "BEOS:APP_SIG" index by default

----------------------------------------------------------------------------

############################################################################

Commit:      4006e483694cb960a25d1a95b76ea2209265d217
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4006e48
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 21:32:56 2011 UTC

Check key length, if index keys are fixed length

----------------------------------------------------------------------------

############################################################################

Commit:      ac6706807e872a28ea43f6fabf83d57e02996aa0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ac67068
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 21:33:29 2011 UTC

Remove superfluous checks

----------------------------------------------------------------------------

############################################################################

Commit:      29ee8957577e434b32d37ec895d7b8125e83a9a5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=29ee895
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 21:35:17 2011 UTC

Remove references in index iterator interface

This avoids checks.

----------------------------------------------------------------------------

############################################################################

Commit:      7915349914fe5980f72f721a89c9b207257f6c85
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7915349
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 21:35:33 2011 UTC

Remove unused IndexIterator constructor

----------------------------------------------------------------------------

############################################################################

Commit:      bf208087106a127859987f74c5cffc71bb49bba1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bf20808
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 22:11:06 2011 UTC

Add set_dirent_name() without name length parameter

----------------------------------------------------------------------------

############################################################################

Commit:      139bd32c025a1ae8396e5ef9ec0eca7dbb4c1e86
URL:         http://cgit.haiku-os.org/haiku/commit/?id=139bd32
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 22:12:10 2011 UTC

Implement packagefs index (dir) hooks

----------------------------------------------------------------------------

############################################################################

Commit:      207a28efee1701840febf7bb71cfee559160641c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=207a28e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 22:53:18 2011 UTC

Declare packagefs persistent

Besides that it is kind of correct, it also makes tracker queries work
correctly.

----------------------------------------------------------------------------

############################################################################

Commit:      c98a59c6538ce5a7d0072d1bc563bf2d202a9a9d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c98a59c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  8 22:56:18 2011 UTC

Don't show packagefs on desktop or in disks window

More generally: Any volume that is mounted at a directory of a
persistent volume is not shown on the desktop or the disks window any
longer.

----------------------------------------------------------------------------

############################################################################

Commit:      e94674ce75da4a1795cbe9ca098dee419fb2b3e9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e94674c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 10 12:32:02 2011 UTC

cmake 2.8.5 optional package repackaged as hpkg

----------------------------------------------------------------------------

############################################################################

Commit:      70de928ed8a7bda307dd4aaf814991ce311f30ec
URL:         http://cgit.haiku-os.org/haiku/commit/?id=70de928
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 10 12:58:39 2011 UTC

Move <directories.h> to headers/private/system

----------------------------------------------------------------------------

############################################################################

Commit:      e96cbb12b42bf1511d39b5f2fb41c722aeefa937
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e96cbb1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 10:21:00 2011 UTC

Update cmake package, create doxygen package

----------------------------------------------------------------------------

############################################################################

Commit:      3773b4751472f62d68a29116ac9c1508ef7b2a63
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3773b47
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 10:24:52 2011 UTC

Tracker: Sort volumes like folders

Volumes no longer have a higher sorting priority than folders when "sort
folders first" is enabled.

----------------------------------------------------------------------------

############################################################################

Commit:      407c09e2d9f356e5a69b40091c0c64c088ec7606
URL:         http://cgit.haiku-os.org/haiku/commit/?id=407c09e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 10:29:40 2011 UTC

Create /packages symlink on boot

Rename the package links directory from /package-links to just /packages
and create it when booting.

----------------------------------------------------------------------------

############################################################################

Commit:      a0f63477842603c41892e788d432adda6cb92a0d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a0f6347
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 11:50:05 2011 UTC

Fix location of the Deskbar menu symlinks

----------------------------------------------------------------------------

############################################################################

Commit:      e6067d0cf4bd9f945aaf276e0d417c18340ef53e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e6067d0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 11:51:07 2011 UTC

Change Haiku package name to lower case

----------------------------------------------------------------------------

############################################################################

Commit:      d7227dfa9e644112f7019d94b4611da400c6c884
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d7227df
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 11:55:35 2011 UTC

BPackageWriter: Add SetCheckLicenses()

The default is still "true", but now it is possible to disable the
license check.

----------------------------------------------------------------------------

############################################################################

Commit:      f19957b8e5311ffc5b802032e4f24cdda81f9b50
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f19957b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 12:00:55 2011 UTC

Add a package info "install-path" attribute

The attribute is intended for simplifying package building. The
package's install path will be used for the package's .self package
symlink, allowing installation to a temporary directory when building
the package.

----------------------------------------------------------------------------

############################################################################

Commit:      6f0f81ef9b73e662fb4cb70c3cc6dcff52fe2bf5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6f0f81e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 12:02:37 2011 UTC

Add options -b and -I to package command

* With -b building a build package can be requested. It will be empty
  save for the .PackageInfo. No license check is performed.
* -I allows to specify an install path.

----------------------------------------------------------------------------

############################################################################

Commit:      48a8980c43ecf127e6a87e92261671b2a4820176
URL:         http://cgit.haiku-os.org/haiku/commit/?id=48a8980
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 12:03:15 2011 UTC

Add install path support to packagefs

----------------------------------------------------------------------------

############################################################################

Commit:      437651ffccae7aea235b5d9bb34d63071609e625
URL:         http://cgit.haiku-os.org/haiku/commit/?id=437651f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 12:24:50 2011 UTC

Force package names and versions to lower case

----------------------------------------------------------------------------

############################################################################

Commit:      15e694e535dbb1d20370a0bd6c31b3d1d69039b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=15e694e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 18:32:09 2011 UTC

Add UnpackingNode::IsOnlyPackageNode()

It returns whether the given package node is the only package node
attached to that node.

----------------------------------------------------------------------------

############################################################################

Commit:      0c7ef631d8f7bd5ddc951991882c383a6223a85f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c7ef63
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 18:35:50 2011 UTC

Notify earlier when removing a package node

Volume::_RemovePackageNode(): Notify listeners before removing the last
package node from the node, . This prevents the size/last modified
indices from not finding the node anymore, since the node would return
a default value instead of the value it was added to the index with.

----------------------------------------------------------------------------

############################################################################

Commit:      f642202ae81d265a891ab77659c566f57b376cc9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f642202
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 11 18:42:48 2011 UTC

Updated gcc 2.95.3 package

The /boot/common include paths are now built in.

----------------------------------------------------------------------------

############################################################################

Commit:      30ab13397ba65e2454ee4bb971565fe8457a34e5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=30ab133
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul 12 23:44:21 2011 UTC

Handle the newer package attributes

----------------------------------------------------------------------------

############################################################################

Commit:      c3057c3f039fe2f857ed7490d4db5a80d5239109
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c3057c3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul 12 23:44:57 2011 UTC

Initialize BRepositoryInfo::fInitStatus

----------------------------------------------------------------------------

############################################################################

Commit:      c71072069bc544f6f2553f7fd400cbec6de28770
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c710720
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul 12 23:50:00 2011 UTC

GetRepositoryCache/Config(): return valid entry

Always create the common repository cache/config paths so the BEntry
that is returned is valid at least. Fixes BRefreshRepositoryRequest
failing when the common repository cache path didn't exist yet.

----------------------------------------------------------------------------

############################################################################

Commit:      f19b93ff219652717c42346226293e4a69356d42
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f19b93f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 15 10:57:52 2011 UTC

Missing newline in error message

----------------------------------------------------------------------------

############################################################################

Commit:      61b0ae0f392ca84df38696c8e4accbada4298afb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=61b0ae0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 15 11:03:22 2011 UTC

Implement more virtuals in Node and Directory

* Node: Add default implementations for UserID(), GroupID(),
  OpenAttributeDirectory(), and OpenAttribute().
* Directory: Add default implementations for Mode() and FileSize().
* Remove the respective hook implementations in the PackageLink*
  classes.

----------------------------------------------------------------------------

############################################################################

Commit:      3ac7efb860e745099a453541f124f7549c78cdc9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3ac7efb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 15 11:03:56 2011 UTC

Fix debug output

----------------------------------------------------------------------------

############################################################################

Commit:      f361dbbe9974869b65d743f2d9b6dc469639d7e3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f361dbb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 15 11:06:28 2011 UTC

Fix notifications when adding package link dir

When adding a new package link directory, the volume would only be
notified about the addition of the directory itself, not of the addition
of its contents. Add a new PackageLinkDirectory::NotifyDirectoryAdded()
which does the whole job and use it in
PackageLinksDirectory::AddPackage().

----------------------------------------------------------------------------

############################################################################

Commit:      6c9fa4613647c05d1cbf4e86e0a9311cc0b04eb0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6c9fa46
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 15 11:21:26 2011 UTC

Fix handling of shine-through directories

* Add a new class ShineThroughDirectory for shine-through directories
  instead of using UnpackingDirectory.
* Split up setting up the shine-through directories in two steps. First
  the directories are only created. That happens before adding the
  initial package domains. After publishing the root node we bind the
  shine-through directories to the underlying directories.
* This makes adding a package directory with the same name as a
  shine-through directory fail in _AddPackageNode() as originally
  intended. Since we no longer want it to fail -- the package daemon
  will copy the files in the respective directories as part of the
  activation process -- we simply skip the directory now. Adjust
  _AddPackageNode() and _AddPackageContentRootNode() accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      5bc695204984ddd2ba5da212f71eaa8d7db2dafd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5bc6952
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 15 11:22:28 2011 UTC

Add error output in case of invalid compression ID

----------------------------------------------------------------------------

############################################################################

Commit:      abf1023d31bdf9f17a696c8730365eba6b44bda2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=abf1023
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 15 11:23:30 2011 UTC

Handle the newer package attributes

This unbreaks reading repository cache files using the respective
attributes.

----------------------------------------------------------------------------

############################################################################

Commit:      5a54e156e5b96ef240ce432a09f18dea364dcd47
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5a54e15
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 11:51:50 2011 UTC

Add HashValue() methods to BString

----------------------------------------------------------------------------

############################################################################

Commit:      10e1bc52678bd81eb2c9dd1de8661ecef0d22ee0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=10e1bc5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 12:02:49 2011 UTC

BRepositoryCache: Add iteration, etc.

* Remove InitCheck() and the initializing constructor.
* Rename PackageCount() to CountPackages().
* Use BOpenHashTable instead of HashMap for the internal PackageMap.
* Allow multiple packages with the same name. Equally named packages are
  in a singly linked list after the first package with that name.
* Add an Iterator inner class and a GetIterator() method, so one can now
  iterate through the packages in the repository.

----------------------------------------------------------------------------

############################################################################

Commit:      d0c417848b2a5b665578911e6acb3593bed8d0e8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d0c4178
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 13:59:49 2011 UTC

BString::Private class to access BString internals

----------------------------------------------------------------------------

############################################################################

Commit:      808a51161a479ea97517b4a3e57a27e684970007
URL:         http://cgit.haiku-os.org/haiku/commit/?id=808a511
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 14:00:20 2011 UTC

Add a BStringList class

----------------------------------------------------------------------------

############################################################################

Commit:      2021c9842e1e61a3bf0f6550725ec3baf53d44b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2021c98
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 14:36:36 2011 UTC

Use BStringList in package kit

Replace all instances of BObjectList<BString> by BStringList.

----------------------------------------------------------------------------

############################################################################

Commit:      f195cdc8c0274c685edc51cc0513d6066da49fd6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f195cdc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 19:45:56 2011 UTC

Removed left-over code

----------------------------------------------------------------------------

############################################################################

Commit:      db9a50a2c6ecaf7ce4d89595968cfaac2dc5885f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=db9a50a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 21:11:25 2011 UTC

Pull class BPackageInfoSet out of BRepositoryCache

----------------------------------------------------------------------------

############################################################################

Commit:      99ee453ff8ef9697a3755cee30dff7f0e01f37f1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=99ee453
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 21:11:48 2011 UTC

find_directory(): Fix package links path

----------------------------------------------------------------------------

############################################################################

Commit:      10b8f702768b083af8107f4418fdc910151d6d09
URL:         http://cgit.haiku-os.org/haiku/commit/?id=10b8f70
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 21:15:16 2011 UTC

Add class BPackageInfoContentHandler

A BPackageContentHandler subclass that initializes a BPackageInfo from
the read package attributes. Pulled out of RepositoryWriterImpl's
PackageContentHandler.

----------------------------------------------------------------------------

############################################################################

Commit:      8c29f587282dbe71860169bfe1c9832c659f14c0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8c29f58
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 16 21:19:00 2011 UTC

Add BPackageRoster::GetActivePackages()

The implementation is temporary. Currently it reads through the packages
in the respective packages directory and checks against the package
links. Once package activation is tracked explicitly we'll use the
activation file/directory.

----------------------------------------------------------------------------

############################################################################

Commit:      e99df3a512431f30e07187454953b5d8f1a6b6e5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e99df3a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 17 00:52:26 2011 UTC

Fix build due to <directories.h> move

Apparently I should have done a complete rebuild after moving
directories.h from headers/private/libroot to .../system, since a lot of
stuff didn't build anymore.

----------------------------------------------------------------------------

############################################################################

Commit:      b55bd1da251d647c19080b5334860d72910563fa
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b55bd1d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 17 15:09:23 2011 UTC

configure: Update required gcc 2 version

----------------------------------------------------------------------------

############################################################################

Commit:      8212d04704240401e328b789d4a9284873a63c10
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8212d04
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 18 19:04:33 2011 UTC

Repackage BeZillaBrowser as hpkg

----------------------------------------------------------------------------

############################################################################

Commit:      d5c52ccd3933b426a48c1b40b1c3ca42f4bdf4ba
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d5c52cc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jul 20 22:31:34 2011 UTC

Fix typo

----------------------------------------------------------------------------

############################################################################

Commit:      25d31cc472a552a1f5dfa15f4ee0a267ea521907
URL:         http://cgit.haiku-os.org/haiku/commit/?id=25d31cc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jul 20 22:35:35 2011 UTC

Fix package removal with skipped directories

Volume::_RemovePackageContentRootNode(): Check whether a directory
corresponding to the package directory does actually exist. This might
not be the case when the package directory has been skipped due to
clashing with a shine-through directory. Would crash in this case.

----------------------------------------------------------------------------

############################################################################

Commit:      72796728e3a5318a4963cacbaaf3c2ea9e8975b5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7279672
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 21 01:56:23 2011 UTC

Fix node handling on package addition/removal

* UnpackingLeafNode: Add a fFinalPackageNode attribute. It is set when
  the node is about to be removed and will point to the node's previous
  head package node and be used in its stead. From the perspective of
  the FS hooks this leaves the node in an unchanged state.
* Unpacking[Leaf,Directory]Node:
  - Add WillBeFirstPackageNode(), returning whether the given package
    node would become the head package node when added.
  - Add PrepareForRemoval() which removes all package nodes. In case of
    UnpackingLeafNode it also sets fFinalPackageNode.
  - Add CloneTransferPackageNodes(). It is only implemented for
    UnpackingLeafNode. It clones the node, transfers all package nodes
    to the clone and sets fFinalPackageNode on this node.
* Volume::_{Add,Remove}PackageNode(): Solved the following TODO: When a
  package is added or removed and a file present in both the
  added/removed package and another package with the version in the
  former having precedence, we have to remove the node (leaving it
  unchanged) and replace it by a new node. This prevents clients having
  the node opened or mapped from suddenly seeing different data. It also
  fixes unbalanced calls to PackageNode::VFSInit()/VFSUninit() which
  would result in file descriptors to package files being leaked.

----------------------------------------------------------------------------

############################################################################

Commit:      c6a11edc9f5a8436fc2a8b1add0df53995ffc8eb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c6a11ed
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 21 15:43:33 2011 UTC

Fix removing dependencies on package removal

The dependencies must also be dissociated from the resolvables they have
been resolved to.

----------------------------------------------------------------------------

############################################################################

Commit:      b779a874a894cf1fff94aef1819fdcd6979420b6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b779a87
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 21 17:05:50 2011 UTC

Node: Keep track of VFS init status

* Node::VFSInit() and VFSUninit() set/clear the new node flag
  NODE_FLAG_KNOWN_TO_VFS. They need to be called by overriding methods,
  now.
* Add Node::IsKnownToVFS() which returns the VFS init status.

----------------------------------------------------------------------------

############################################################################

Commit:      7723ae9df290e2e6f62e84fa9a75bdf8f9e620f9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7723ae9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 21 18:28:01 2011 UTC

Volume::_RemoveNodeAndVNode(): Squash TODO

Only get/remove/put the vnode when the node is actually known to the
VFS. This does not only save unnecessary work, it also solves a
(temporary) deadlock -- at least partially. If another thread caused a
call to our get_vnode() hook just before, it would block on the volume
lock we're holding when adding/removing packages. The vnode would be
marked busy until the other thread's request was fulfilled and our call
to get_vnode() would block until timing out. Now we're calling
get_vnode() only, if we already know that the VFS already has a valid
vnode.

There still remains a race condition. If the VFS discards the vnode
right before we call get_vnode(), we essentially have the same situation
as before (i.e. us calling get_vnode() although the vnode is no longer
known to the VFS) with the same potential problem. For a real solution
we need a get_vnode() variant which can be told not to block.

----------------------------------------------------------------------------

############################################################################

Commit:      19ae20e67e91fc09cc9fc5c0e60e21e24e7a53eb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=19ae20e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Nov  5 16:00:01 2011 UTC

Merge branch 'master' into pm-flat

Conflicts:
        build/jam/HaikuImage
        build/jam/OptionalBuildFeatures
        build/jam/OptionalPackages
        build/jam/UserBuildConfig.sample
        data/bin/installoptionalpackage
        src/apps/deskbar/DeskbarMenu.cpp
        src/servers/debug/DebugServer.cpp
        src/system/kernel/fs/vfs.cpp

----------------------------------------------------------------------------

############################################################################

Commit:      c1ef23b188f363e95cc320103df70793a6fb3097
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c1ef23b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Nov  5 16:20:45 2011 UTC

PackageLinkDirectory::_Update(): Don't unlock after delete

When using an AutoLocker on an object, the lock must be released
explicitly before releasing the last certain reference to that object.

----------------------------------------------------------------------------

############################################################################

Commit:      403bb7a568488f266b917f84f82381d3a342f0f5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=403bb7a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Mar 27 19:11:38 2013 UTC

haiku package info: declare a few provided commands

sh, awk, wget, etc. are currently provided by haiku.hpkg. Declare
them accordingly, since they are already referenced by some
HaikuPorts packates. For the generic ones ("sh", "awk") I've used
version 0.0.0 for the time being; we may need to reconsider that.

----------------------------------------------------------------------------

############################################################################

Commit:      4e87ae1bbe89b24986fc1deab35d4dc0ad2cc5a2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4e87ae1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Mar 27 21:17:41 2013 UTC

Repackaged xz-utils package

It is now declared with architecture x86_gcc2, though it probably
has been built with gcc4. That issue has to be solved for real
eventually, since the package resolver won't allow mixing of gcc2
and gcc4 packages.

----------------------------------------------------------------------------

############################################################################

Commit:      71051342011e696954083d95c00a9402d0ba22b5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7105134
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Mar 28 00:17:37 2013 UTC

haiku package info: Add more provided resolvable

Also add a compat version to a few.

----------------------------------------------------------------------------

############################################################################

Commit:      90692f47f7132ef806aef9e210684520d91f2a4f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=90692f4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Mar 28 00:20:23 2013 UTC

Rebuilt packages required for bootstrapping

----------------------------------------------------------------------------

############################################################################

Commit:      dd60d4eef66f09888d14f599592956143c02a2a3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dd60d4e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Mar 28 12:16:41 2013 UTC

OptionalPackages: Fix CVS URL

Due to a copy'n'paste error the curl package was used. While at it,
use the rebuilt package.

----------------------------------------------------------------------------

############################################################################

Commit:      a8026c5f5771f8b1e51a4ec38fdde3366bf0f6dc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a8026c5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Mar 28 12:18:21 2013 UTC

haiku package info: List zlib in provides

----------------------------------------------------------------------------

############################################################################

Commit:      e3926e56694a5c5bd72ebfb99eaeb31d71649f94
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e3926e5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Mar 28 13:18:47 2013 UTC

haiku package info: Fix zlib provides declaration

----------------------------------------------------------------------------

############################################################################

Commit:      3f986502fd1231831200038bbf5f75f1ef1c82ea
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3f98650
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Mar 29 02:09:20 2013 UTC

Rebuilt packages for subversion and its dependencies

----------------------------------------------------------------------------

############################################################################

Commit:      999234242738bc3a6cb67500736da110ba87f6d8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9992342
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Mar 29 19:44:12 2013 UTC

package_repo: command_create(): Fix argument count check

----------------------------------------------------------------------------

############################################################################

Commit:      10efbe6c5e9350b8683d5b79ca6b9c75d61131a2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=10efbe6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Mar 29 20:09:20 2013 UTC

BRepositoryInfo::SetTo(): driver settings unloaded too early

The string pointers retrieved from the driver settings are only valid until
the settings handle is freed. The were also used afterwards, though.

----------------------------------------------------------------------------

############################################################################

Commit:      479ca8169c85621dda097bebe337bcc373eba68f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=479ca81
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  1 00:25:37 2013 UTC

Beginnings of the PackageKit dependency solver

Not functional (or tested) yet. The libsolv setup for a somewhat
simplified installation case should be more or less complete, though.
The solution conversion to to-be-created Haiku data structures and the
handling of problems is still missing, though.

----------------------------------------------------------------------------

############################################################################

Commit:      0816749e41c0757e4e3269e18ffc333b64deb1c8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0816749
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  1 23:06:33 2013 UTC

package_repo: Removes dependency to package

* Move StandardErrorOutput to libpackage and into proper namespace to
  avoid "package_repo" having to reuse the "package" source file.
* package_repo: Fix incorrect includes of "package.h".

----------------------------------------------------------------------------

############################################################################

Commit:      df65c3118a17089b20f3f9bf22b59988ddf7bc1c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=df65c31
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  1 23:17:25 2013 UTC

Add BNoErrorOutput to package kit

----------------------------------------------------------------------------

############################################################################

Commit:      dfb5fa8ba3da4fe01df1cab7a233b9ce145c06ac
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dfb5fa8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  1 23:18:16 2013 UTC

Add convenience methods BPackageInfo::ReadFromPackageFile()

----------------------------------------------------------------------------

############################################################################

Commit:      7c293958240a164ff48f2f0b5f3641ffe7e2eee9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7c29395
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  2 17:06:56 2013 UTC

Add some missing build headers

----------------------------------------------------------------------------

############################################################################

Commit:      bcdf4924048db31db99f55626fd4ce735cc1fff1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bcdf492
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  2 17:17:46 2013 UTC

Simplify/fix the ExtractArchive rule and friends

* The call to the dummy actions isn't needed
* The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that.
  The directory has to be the main target, since ExtractArchive is
  potentially invoked multiple times with different extracted file
  targets and the Extract*Archive1 is only invoked the first time.
  Tested only with the HPKG actions, but they others should work as
  well.

----------------------------------------------------------------------------

############################################################################

Commit:      04d1edefe25bfa40ba2360e596189281739bd649
URL:         http://cgit.haiku-os.org/haiku/commit/?id=04d1ede
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  2 17:24:22 2013 UTC

Fix the libpackage_build build

* The recently introduced {No,Standard}ErrorOutput.cpp were still
  missing.
* Add hack to allow building more correctly on Haiku. We were using
  the installed package kit headers, not the ones from the working
  directory.

----------------------------------------------------------------------------

############################################################################

Commit:      fc75f2df0c666dcc61be83c4facdd3132340c2fb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fc75f2d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  2 17:27:29 2013 UTC

<build>package: Fix build

* StandardErrorOutput.cpp no longer exists (respectively has been moved
  to libpackage).
* Add hack to allow building more correctly on Haiku. We were using
  the installed package kit headers, not the ones from the working
  directory.

----------------------------------------------------------------------------

############################################################################

Commit:      dd6ec1de82028af2d1a7bd0d8d2c7a6ba5cbbb34
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dd6ec1d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  2 17:31:06 2013 UTC

Add libsolv build feature

----------------------------------------------------------------------------

############################################################################

Commit:      a3dd6caf55b8862747542069f3bf116e92723eab
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a3dd6ca
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 02:06:26 2013 UTC

Add public package version parsing API

* BPackageVersion: Add respective constructor and SetTo().
* BPackageInfo: Add static ParseVersionString() utility method. It's
  only there because the parser lives in the BPackageInfo
  implementation.

----------------------------------------------------------------------------

############################################################################

Commit:      2d0563f357e1e6958b853d6bb90deefd1a266c54
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2d0563f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 02:09:23 2013 UTC

Fix BPackageResolvableExpression::ToString()

The operator was inserted as a number.

----------------------------------------------------------------------------

############################################################################

Commit:      1a4d020daf80d0b0c30062530cf735ce46dc7dba
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1a4d020
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 02:15:57 2013 UTC

Flesh out the package kit solver API quite a bit more

* Reorganize things a bit:
  - BSolver is now an abstract base class.
  - A libsolv based implementation, LibsolvSolver, lives in a new
    add-on, which is loaded lazily.
  - Get rid of libpackage_solver. Save for LibsolvSolver everything
    is moved to libpackage.
  - This is a nicer solution for the cyclic dependency caused by
    libsolv (libsolvext to be precise) using the package kit for
    reading repositories and package files.
* Add a solver result data structure and and an accessor the solver.
* Add problem reporting support to the solver. There aren't data
  structures for the problem solutions yet and support for selecting
  solutions and re-solving is missing as well.

----------------------------------------------------------------------------

############################################################################

Commit:      1acf2be80dd9d6409fd3a4f6d304896fb9aeb286
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1acf2be
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 02:32:50 2013 UTC

pkgman: Add command resolve-build-dependencies

This is a service command for haikuporter. It resolves the dependencies
for a package to be built and lists them, so that haikuporter can
prepare the build environment accordingly.

The implementation isn't quite finished yet. Currently the packages are
printed only with name and version, while it would probably be more
helpful to print the path of the package file. Also, the package itself
(respectively a dummy package) is printed as well.

----------------------------------------------------------------------------

############################################################################

Commit:      07a4d4e370d8edcd84e8c36b8f7eee1c88d60858
URL:         http://cgit.haiku-os.org/haiku/commit/?id=07a4d4e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 15:57:16 2013 UTC

BSolverRepository: Add SetPriority()

----------------------------------------------------------------------------

############################################################################

Commit:      19f3eaaee692a5edc59cb453540489a132c43b69
URL:         http://cgit.haiku-os.org/haiku/commit/?id=19f3eaa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 15:58:27 2013 UTC

pkgman: Simplify and rename resolve-build-dependencies

* Now it only gets a package (info) file and a single list of
  repository directories, optionally with priority, and resolves the
  package's dependencies. The more complex two resolving steps it did
  before can just as well be done by haikuporter, and this way the
  command is more flexible.
* Rename to resolve-dependencies.
* Some TODOs still remain.

----------------------------------------------------------------------------

############################################################################

Commit:      65502bbe88c4686bdefbc5d646b9b681e1c49743
URL:         http://cgit.haiku-os.org/haiku/commit/?id=65502bb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 16:42:20 2013 UTC

BSolver: Add VerifyInstallation()

... and implement it in LibsolvSolver.

----------------------------------------------------------------------------

############################################################################

Commit:      749884283a72b650748d830648d31eea78b6b7d3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7498842
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 16:44:14 2013 UTC

pkgman resolve-dependencies: Verify result

* Make sure that the computed dependencies don't themselves depend on
  the specified package.
* Print only the actual dependencies, not the specified package.

----------------------------------------------------------------------------

############################################################################

Commit:      a8b832bf461cc0a4325302d929067c19f4e7aedf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a8b832b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 17:06:47 2013 UTC

BSolverRepository::AddPackage(): Add optional return parameter

... returning the added BSolverPackage object.

----------------------------------------------------------------------------

############################################################################

Commit:      4b8aabfac92bcc9be71cf861df8ec83e1a84d944
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4b8aabf
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 17:09:38 2013 UTC

pkgman resolve-dependencies: Print package paths

... instead of package name and version. The command should now
work as required by haikuporter.

----------------------------------------------------------------------------

############################################################################

Commit:      046f1c437811594ba60a462b9d4e423f7fac5528
URL:         http://cgit.haiku-os.org/haiku/commit/?id=046f1c4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 18:11:11 2013 UTC

pkgman resolve-dependencies: Avoid code duplication

----------------------------------------------------------------------------

############################################################################

Commit:      7216c8944d01a0800e11a2e9f8d04ef307957f91
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7216c89
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 18:14:54 2013 UTC

pkgman resolve-dependencies: Improve usage text formatting

----------------------------------------------------------------------------

############################################################################

Commit:      1add554a832a5fdd2bb26692115fd116afecf60c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1add554
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr  3 19:04:55 2013 UTC

Make LibSolv a mandatory package

... so it is actually installed on the image.

----------------------------------------------------------------------------

############################################################################

Commit:      6d04dfb7a999afa6da39dcfd4aeac6dc22e5311f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6d04dfb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr  4 09:24:39 2013 UTC

bindfs: Fix double deletion of root node on unmount

The VFS calls the FS's put_vnode() for all nodes, including the root
node, prior to calling unmount().

----------------------------------------------------------------------------

############################################################################

Commit:      ce1d0481833eaa6aa22e1006e92602db3ed33f97
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ce1d048
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr  4 20:25:23 2013 UTC

packagefs: Fix adding package links twice to volume

PackageLinkDirectory::NotifyDirectoryAdded() first notified the listener
(Volume) about the directory itself, then about the links it contained.
Since Volume adds the nodes recursively, the latter were added twice,
resulting in a corrupted ID hash table.

----------------------------------------------------------------------------

############################################################################

Commit:      dedc1369e1d745b0a678df432d6131893290cfd2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dedc136
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr  4 22:17:22 2013 UTC

packagefs: Acquire missing reference for the root dir

We need one for the ID table and one for the volume itself.

----------------------------------------------------------------------------

############################################################################

Commit:      c7382d4c9d83304e44e8672caaf71895715efd62
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c7382d4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr  4 22:20:32 2013 UTC

packagefs: Acquire missing reference for shine-through dirs

Since we publish shine-through directories directly to the VFS, we need
to acquire an additional reference, because we release a reference when
a node is put.

----------------------------------------------------------------------------

############################################################################

Commit:      05940bc51417d34f7cb78bd1f2253d305320c563
URL:         http://cgit.haiku-os.org/haiku/commit/?id=05940bc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr  4 22:31:51 2013 UTC

packagefs: Fix handling of package-links directory on unmount

* Volume::_RemovePackageLinksDirectory(): We don't want to call
  _RemovePackageLinksNode(). Besides that the ID hash table has already
  been emptied before and we would thus release a reference to the node
  erroneously, the method doesn't do anything we want anyway. We don't
  want any children to be removed, since we have unregistered the
  volume's packages already (which removes the respective package link
  directories); the remaining ones are from other volumes and not ours
  to remove.
* PackageFSRoot: Release a reference to the package links directory in
  the destructor. We create the directory in Init() after all and no one
  else takes over ownership.

----------------------------------------------------------------------------

############################################################################

Commit:      ce577d8db0580112cd8dcd60a1c6110f624a3d2a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ce577d8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr  5 14:50:20 2013 UTC

packagefs: AttributeIndex: Support duplicates correctly

The tree comparisons didn't allow for different Nodes having the same
attribute value. Therefore only the first node would be added and later
we would try to remove a node not actually in the tree, leading to a
crash.

packagefs seems to finally unmount cleanly, now.

----------------------------------------------------------------------------

############################################################################

Commit:      d4823423996b12ff7332be5dcf97c35c295129a2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d482342
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr  5 14:58:50 2013 UTC

VM: Fix vm_block_address_range() area protection

B_ALREADY_WIRED, which was erroneously passed for the area protection
parameter to map_backing_store(), has the value 7 which implies user
readable and writable. Hence the address ranges around 0xdeadbeef and
0xcccccccc could actually be read and written from anywhere.

----------------------------------------------------------------------------

############################################################################

Commit:      259046a38810367985e7e9f89b90d769eb6380ce
URL:         http://cgit.haiku-os.org/haiku/commit/?id=259046a
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Apr  5 16:31:58 2013 UTC

Fix build without xattrs being used

* need to invoke fs_fopen_attr() instead of fs_open_attr()

----------------------------------------------------------------------------

############################################################################

Commit:      daf7cb41c4973f4cd5108bd90bdffc0e6a33c91b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=daf7cb4
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Apr  5 16:34:28 2013 UTC

Bring back libroot_build.a for now.

* the corresponding TODO has to be dealt with at a later stage

----------------------------------------------------------------------------

############################################################################

Commit:      5b6fb78c407a1c15a6793e9009857d4dedfc331d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5b6fb78
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr  5 16:44:12 2013 UTC

VFS: _kern_open_dir(): Fix NULL path case

It would create an empty path buffer and pass that on to dir_open(),
which accepts NULL, but not empty paths.

----------------------------------------------------------------------------

############################################################################

Commit:      91586bd3b651574c9f0d3010567d4bcc40f4c092
URL:         http://cgit.haiku-os.org/haiku/commit/?id=91586bd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr  5 16:52:09 2013 UTC

packagefs: Fix handling of package domain paths

* The package directory path specified when mounting must be interpreted
  in the caller's I/O context. We did always interpret it in the
  kernel's I/O context, so that a relative path or a path in a chroot
  environment wouldn't work correctly. Now opening the directory is done
  in PackageDomain::Init() where we can at least guess the path's
  origin.
* We also normalize the path, though merely to get more conclusive debug
  output, since after opening the directory the path isn't used for
  anything else anymore.
* Make the "packages" mount parameter optional. If not specified, use
  the "packages" folder at our mount point.

----------------------------------------------------------------------------

############################################################################

Commit:      0c6927b5d7c8f73abd7663168f5f437b39661c6c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c6927b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr  6 02:26:40 2013 UTC

packagefs: Add ioctl to get basic volume information

Also rename the MountType enum and members, since they are no longer
packagefs private.

----------------------------------------------------------------------------

############################################################################

Commit:      26296b0aa4ddcc1b8baf1e6c380d0f8634730068
URL:         http://cgit.haiku-os.org/haiku/commit/?id=26296b0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr  6 02:29:34 2013 UTC

Add the humble beginnings of the package daemon

It doesn't really do anything yet save for tracking what packagefs
volumes are mounted and unmounted.

----------------------------------------------------------------------------

############################################################################

Commit:      2d8ec1d502634cf7d3fffc50bae54c5019a807fd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2d8ec1d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr  6 21:30:18 2013 UTC

Add the obvious node_ref constructor

----------------------------------------------------------------------------

############################################################################

Commit:      27197fd74b19289e5a6dd5a344a66c18259324d8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=27197fd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 09:38:03 2013 UTC

packagefs Package: Add getters for device and node ID

----------------------------------------------------------------------------

############################################################################

Commit:      e85e9dadda48ba707367595e2aa93dc8f9f78054
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e85e9da
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 09:45:47 2013 UTC

packagefs: Move the package loading code to Package

* Volume::_LoadPackage() -> Package::Load()
* Volume::_DomainEntryCreated(): Pull a bit of code into a new
  _LoadPackage() method for reuse.

----------------------------------------------------------------------------

############################################################################

Commit:      17bb54dc38958fa7fc945346b3799350fc25e5b3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=17bb54d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 09:53:50 2013 UTC

packagefs: ioctls for getting and changing package activation

* Add PACKAGE_FS_OPERATION_GET_PACKAGE_INFOS which returns the node refs
  of all packages activated.
* Add PACKAGE_FS_OPERATION_CHANGE_ACTIVATION to activate/deactivate
  multiple packages.

----------------------------------------------------------------------------

############################################################################

Commit:      3d53bd473b49aa91a9611dfe6500492500e1e8c6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3d53bd4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 10:02:18 2013 UTC

package daemon: Add package monitoring and de-/activation

* packagefs: Disable (comment out) node monitoring of the packages
  directory.
* package daemon:
  - When a packagefs volume is added load the respective packages
    directory and get from the volume which of the packages are
    activated.
  - Add node monitoring for the packages directory and
    activate/deactivate packages as packages are added/removed.

----------------------------------------------------------------------------

############################################################################

Commit:      af5c10ab19555126fc60d7766330ba1cc789cf52
URL:         http://cgit.haiku-os.org/haiku/commit/?id=af5c10a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 10:21:54 2013 UTC

packagefs: Remove the packages directory node monitoring

----------------------------------------------------------------------------

############################################################################

Commit:      6978941aac85ea329a8552253f384924dcccd1b3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6978941
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 10:57:15 2013 UTC

packagefs: Remove support for multiple package domains per volume

That also get rid of the job stuff and the package loader thread.

----------------------------------------------------------------------------

############################################################################

Commit:      71364193839bcbefb2df5223133f901e25c3a99f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7136419
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 21:59:43 2013 UTC

Add shared PthreadMutexLocker, an AutoLocker for pthread_mutex_t

----------------------------------------------------------------------------

############################################################################

Commit:      8fb3930a4290eb1156bbe53fba7947b0cd2be237
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8fb3930
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr  7 22:05:51 2013 UTC

package daemon: Make all work with the packages asynchronous

There's now a worker thread per Root that does all the work that can
take time. Node monitoring notifications received in the main thread are
just pushed into the worker's job queue, so the application looper
remains responsive.

----------------------------------------------------------------------------

############################################################################

Commit:      9e4096146fa5a20df2fc06301683853029851163
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9e40961
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 13:19:11 2013 UTC

package daemon: Add a Listener interface for Volume

* This way, Volume doesn't have to know Root.
* Suppress listener notifications for node monitoring events when there
  are were already events pending.

----------------------------------------------------------------------------

############################################################################

Commit:      91a9b5f2765833cec3bfeda5f4962f45931dbe9d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=91a9b5f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 13:21:26 2013 UTC

package daemon: Volume: Make sure move entry events don't get split

----------------------------------------------------------------------------

############################################################################

Commit:      379131d97d1bda4b50a0a384c36abd239783cc83
URL:         http://cgit.haiku-os.org/haiku/commit/?id=379131d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 13:44:31 2013 UTC

BString: Add StartsWith() and EndsWith() methods

----------------------------------------------------------------------------

############################################################################

Commit:      def92c01eec2711ecf3bc42c64d92be7c90c650f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=def92c0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 13:45:47 2013 UTC

packagefs/daemon: Ignore packages/ entries without .hpkg suffix

----------------------------------------------------------------------------

############################################################################

Commit:      bb88feaa3a3c83e4a0f6b3de355ecb57b426f4cc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bb88fea
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 15:44:43 2013 UTC

PackageFSActivationChangeRequest: Make items array 0 sized

That's more convenient to use and the actual size of an item is variable
anyway.

----------------------------------------------------------------------------

############################################################################

Commit:      2508cd615fdcbdefcf8b913a5ef23a267499d924
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2508cd6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 15:45:24 2013 UTC

packagefs: Volume::_ChangeActivation(): Check 0 request size

----------------------------------------------------------------------------

############################################################################

Commit:      ebbefc0151ffae360647cf2ee50a5b28c63bda80
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ebbefc0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 15:49:14 2013 UTC

package daemon: Root: Use a common job for volume work

Add VolumeJob which, besides the Volume, takes a Root method to be
invoked. That allows to replace the specific job classes by simple
methods.

----------------------------------------------------------------------------

############################################################################

Commit:      a6c7f5e33c2a4e8596b2901d2fbecdd579d47b36
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a6c7f5e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 17:06:18 2013 UTC

package daemon: De/-activate all changed packages together

* We first process the node monitoring events, collecting the required
  package activation changes, then apply all changes together.
* Change the PackageFSActivationChangeItem/-Request structs. The former
  is no longer variable in size, which makes it easier to work with.

----------------------------------------------------------------------------

############################################################################

Commit:      1047e84f39654c67e966afd0b41d3488d8d9b09d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1047e84
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr  8 18:53:32 2013 UTC

package daemon: Volume::InitPackages(): Fix error case

Don't assign fListener, when starting node monitoring fails.

----------------------------------------------------------------------------

############################################################################

Commit:      5e01af3199254d0f5fd666b32b073a5283230021
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5e01af3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  9 15:24:27 2013 UTC

package kit: Add data structures for problem solutions

... and add the problem solutions in LibsolvSolver.

----------------------------------------------------------------------------

############################################################################

Commit:      4b3ca457b640c8759328c93aa9333f960de33196
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4b3ca45
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  9 16:55:07 2013 UTC

BSolverProblemSolution: Fix ToString() template strings

----------------------------------------------------------------------------

############################################################################

Commit:      92b6d58598fb09b38150027f6cbfa38fd5fb53e6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=92b6d58
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  9 17:51:10 2013 UTC

package daemon: Check volume package dependencies initially

Dumps the result (i.e. found problems and solutions) to the syslog.
Eventually the user should be asked what to do when inconsistencies are
encountered.

----------------------------------------------------------------------------

############################################################################

Commit:      19a268a459bb8a117f42937901532ef3b117a8d7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=19a268a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  9 18:07:46 2013 UTC

Update libiconv and sqlite packages

The new package files haven't been rebuilt, just repackaged. Only small
details in the package-info changed.

----------------------------------------------------------------------------

############################################################################

Commit:      a96531fc511e210c34cb054310b61b560a82a06c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a96531f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  9 20:12:22 2013 UTC

package daemon: On changes write a file with the active packages

----------------------------------------------------------------------------

############################################################################

Commit:      19dc1d084f13bed77863dd1be56e846c314dd546
URL:         http://cgit.haiku-os.org/haiku/commit/?id=19dc1d0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  9 21:26:56 2013 UTC

packagefs: Use the package activation file

If the file exists load only the packages specified in it. If it doesn't
exist or any kind of error occurs, fall back to loading all packages in
the packages directory.

----------------------------------------------------------------------------

############################################################################

Commit:      40cbf171efee048cd28a69e791b2ebac38cad3c2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=40cbf17
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr  9 21:35:57 2013 UTC

packagefs: don't dup() the packages directory FD

Volume::_AddInitialPackagesFromDirectory(): Use openat() instead of
dup() to get a FD for the packages directory. Currently our fdopendir()
implementation doesn't use it directly anyway, but in theory it could
and would then change the state of the original FD.

----------------------------------------------------------------------------

############################################################################

Commit:      50888ebdc02b3d14e775206e0abb4d2a64cb9580
URL:         http://cgit.haiku-os.org/haiku/commit/?id=50888eb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 10 10:58:12 2013 UTC

BSolverRepository: Add a change count

... so we can easily check whether the repository has changed since the
last time we used it.

----------------------------------------------------------------------------

############################################################################

Commit:      483d49968d847843721d7e0c3a043327fc29955b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=483d499
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 10 11:20:38 2013 UTC

LibsolvSolver: Make repeated use of object possible

* _Solve(): Clean up the old solver before creating a new one.
* _AddRepositories(): Don't do anything, if the repositories haven't
  changed.

----------------------------------------------------------------------------

############################################################################

Commit:      5776551d3dfa5c88bdebd65fd211aaebbb91e525
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5776551
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 10 12:41:30 2013 UTC

pkgman: Move some classes into own file for reuse

Namely RepositoryBuilder and PackageInfoErrorListener.

----------------------------------------------------------------------------

############################################################################

Commit:      1a34656b57ddfb178fe00903e74ad24882d83bc6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1a34656
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 10 22:36:10 2013 UTC

BPackageVersion: Make version string constructor explicit

----------------------------------------------------------------------------

############################################################################

Commit:      6c6460e1f644e5b48e7fc4528d33219fe13f270e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6c6460e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 10 22:37:25 2013 UTC

BPackageInfo: Add GetConfigString() and ToString()

----------------------------------------------------------------------------

############################################################################

Commit:      b254217a09a45fe317ae8b8e9ad9a8ddfc3df4b0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b254217
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 10 22:59:48 2013 UTC

package daemon: Properly qualify private package headers

... instead of adding the private package header directory to the
include paths.

----------------------------------------------------------------------------

############################################################################

Commit:      62f7022a8294bbd5407826c0bb8b071975ed90d5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=62f7022
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 00:03:25 2013 UTC

package kit: get active packages list from daemon

* daemon: Implement private message protocol to retrieve the active
  packages.
* BPackageRoster::GetActivePackages(): Get the active packages list
  from the daemon.

----------------------------------------------------------------------------

############################################################################

Commit:      a78a2540a820ca541177fce1d454d3aa7073715c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a78a254
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 15:21:27 2013 UTC

LibsolvSolver: Fix the lazy re-/initialization

* _Init() was a bit too enthusiastic, throwing really everything away.
  So, after calling it at the beginning of _AddRepositories() there
  wouldn't be any repositories anymore.
* Rename _Init() to _InitPool() to make its purpose clearer.
* Pull a _CleanupPool() out of _Cleanup() that only deletes the pool
  and anything depending on it.
* RepositoryInfo::HasChanged(): Always consider changed when there's no
  libsolv repo yet.

----------------------------------------------------------------------------

############################################################################

Commit:      fc57db481fa36695457bc355ca9710c91d53ab1d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fc57db4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 15:30:08 2013 UTC

BSolver/LibsolvSolver: Add FindPackages()

Given a search string it finds all matching packages.

----------------------------------------------------------------------------

############################################################################

Commit:      789867563ad6e4730b470bfe2b8b7314aa671756
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7898675
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 15:32:17 2013 UTC

pkgman RepositoryBuilder: Add BRepositoryConfig constructor

----------------------------------------------------------------------------

############################################################################

Commit:      dd46d9816332a8936534aeeb26613c5269b75a6a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dd46d98
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 15:33:23 2013 UTC

pkgman: Add "search" command

----------------------------------------------------------------------------

############################################################################

Commit:      eb13a353e39799c58dd2a8704e8553ba18a7b1d3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eb13a35
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 15:44:58 2013 UTC

Rename "packages" subdir "config" to "administrative"

... to avoid the impression that it contains something the user can
play with.

----------------------------------------------------------------------------

############################################################################

Commit:      663e351cb468e889ffcd08c07fc867b3002a1c91
URL:         http://cgit.haiku-os.org/haiku/commit/?id=663e351
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 21:36:12 2013 UTC

BSolver/pkgman: Support for searching in provides

* BSolver/LibsolvSolver:
  * Add B_FIND_IN_NAME and make searching in the names explicit.
  * Add B_FIND_IN_PROVIDES to search the packages' provides list.
* pkgman: Also search in provides.

----------------------------------------------------------------------------

############################################################################

Commit:      01758ed3323e22359f685ffb37ef42a3b856fd66
URL:         http://cgit.haiku-os.org/haiku/commit/?id=01758ed
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 22:21:49 2013 UTC

Rework SolverPackageSpecifier

* It no longer consists of a BPackageResolvableExpression and a
  repository. Instead it can now either refer to a package directly or
  consist of a search string.
* SolverPackageSpecifierList: Add AppendSpecifier() convenience
  versions.
* Adjust LibsolvSolver and pkgman accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      38e528bbc1c368456c8b8a94d6f21081934cc4f9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38e528b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 11 23:48:53 2013 UTC

pkgman: C++-ify the command handling

There's now a Command class that must be derived and registered with
a CommandManager, all simplified by a REGISTER_COMMAND macro. That gets
rid of the print_command_usage_and_exit() function copy for every
command, moves the short usage texts to the command implementations,
and avoids any repetition of the command name. When implementing a new
command only a new source file needs to be created, nothing else needs
to be touched.

----------------------------------------------------------------------------

############################################################################

Commit:      115eae73712eb0cc26ffba34235383d3c2a1a080
URL:         http://cgit.haiku-os.org/haiku/commit/?id=115eae7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 12 10:27:32 2013 UTC

LibsolvSolver::Install(): Fix broken B_PACKAGE case

----------------------------------------------------------------------------

############################################################################

Commit:      334a5a566c49d247cd8b4491cd3c94748f7df18b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=334a5a5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 12 11:42:27 2013 UTC

BSolverRepository: Change priority from uint8 to int32

This allows us to specifies priorities below and above the user
definable range.

----------------------------------------------------------------------------

############################################################################

Commit:      71293f8b03be4d9d14d32a134ac5177e62187728
URL:         http://cgit.haiku-os.org/haiku/commit/?id=71293f8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 12 12:21:08 2013 UTC

BSolverPackageSpecifier: Fix string constructor

----------------------------------------------------------------------------

############################################################################

Commit:      0d8ed3f2a8f240750c15e9dfec09fb2e20b7160a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0d8ed3f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 12 12:21:54 2013 UTC

BSolver::Install(): Add optional unmatched specifier return param

----------------------------------------------------------------------------

############################################################################

Commit:      0d50fa87ec909d6d81190d187596163264c59d94
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0d50fa8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 12 13:29:50 2013 UTC

pkgman: Add beginnings of the "install" command

So far it only solves the dependencies and prints the result. No
problem handling, no actual installation.

----------------------------------------------------------------------------

############################################################################

Commit:      82ce8682f25a392be5c06a5a6cf534f5bb962c4a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=82ce868
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 13 00:04:00 2013 UTC

Add missing build header Referenceable.h

----------------------------------------------------------------------------

############################################################################

Commit:      711a2a6eea557acfd3b0737ec428334ef40155b9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=711a2a6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 13 00:08:43 2013 UTC

BPackageInfoSet: Add copy constructor, assignment operator

* Implement copy-on-write support.
* Add copy constructor and assignment operator.
* Remove Init(). Initialize lazily instead. Since AddInfo() can fail
  and we check initialization anyway, there's no point in having an
  explicit Init(). Given that there was only one invocation of Init()
  in the package kit and its users, it was very likely missing in some
  places.
* Fix a few places where we ignored that the PackageMap actually
  contains lists of PackageInfo objects.

----------------------------------------------------------------------------

############################################################################

Commit:      bbb2dc237a6a82b22dc0a93542078e39b2046d17
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bbb2dc2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 13 12:39:35 2013 UTC

Add BReferenceable to libbe_build

Unbreaks the build on non-Haiku build platforms

----------------------------------------------------------------------------

############################################################################

Commit:      8a4ebe2c469333d0cabc9a9a6d353d4b42f61d6c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8a4ebe2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 14 12:09:11 2013 UTC

Make BPackageInfo archivable

----------------------------------------------------------------------------

############################################################################

Commit:      b2d96da589896ed9ebb2524f873e9fc0baa650ec
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b2d96da
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 14 14:47:01 2013 UTC

BPackageInfoSet::Iterator: Fix NULL pointer dereference

Since the BPackageInfoSet's map is created lazily, it can be NULL when
an Iterator is constructed.

----------------------------------------------------------------------------

############################################################################

Commit:      d7d9497e31047e9cf1c486865d6cbb7df3441487
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d7d9497
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 14 14:50:30 2013 UTC

Add BInstallationLocationInfo

----------------------------------------------------------------------------

############################################################################

Commit:      e6216e372af01cc90339fe7afb70c113c99974bd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e6216e3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 14 15:04:33 2013 UTC

Implement getting a BInstallationLocationInfo

* Rename PackageDaemonDefs.h to DaemonDefs.h.
* Replace the MESSAGE_GET_PACKAGES by the new
  B_MESSAGE_GET_INSTALLATION_LOCATION_INFO, which not only returns the
  packages, but also other information about the installation location.
* daemon: Volume: Implement a change count which is bumped whenever
  packages are activated/deactivated/added/removed. Cache the reply
  for a location info request, using the change count to check whether
  it is still up-to-date.
* Add private BDaemonClient for communication with the daemon.
* BRoster:
  - Add GetInstallationLocationInfo() using BDaemonClient.
  - Reimplement GetActivePackages(), using
    GetInstallationLocationInfo().

----------------------------------------------------------------------------

############################################################################

Commit:      bd59e0d00d58dadd5b5e0749b7edda0aefe61efe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bd59e0d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 15 22:01:02 2013 UTC

BPackageInfo: Fix Linux build

... including an actual bug (operator "|" instead of "||").

----------------------------------------------------------------------------

############################################################################

Commit:      202c1daaed2556eaccea80643e58d498594f2506
URL:         http://cgit.haiku-os.org/haiku/commit/?id=202c1da
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 15 22:05:19 2013 UTC

BPackageVersion: Rename property release to revision

* ... to avoid confusion with the preRelease property. It's also called
  "revision" in the HaikuPorts recipes.
* Update libsolv package. Was necessary due to the BPackageVersion
  change, but also includes a few more changes.

----------------------------------------------------------------------------

############################################################################

Commit:      e7563b87c715320be9d10225ceff110844e84a90
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e7563b8
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Apr 16 09:18:44 2013 UTC

Updated several base packages

----------------------------------------------------------------------------

############################################################################

Commit:      6185f6e7cc2c1df89a32b9fc82a315b69ae98629
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6185f6e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 16 11:45:33 2013 UTC

Fix libtool file name

----------------------------------------------------------------------------

############################################################################

Commit:      88f22c9768e3a7d5bd439800b2f6d479a369d745
URL:         http://cgit.haiku-os.org/haiku/commit/?id=88f22c9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 16 12:39:31 2013 UTC

InstallOptionalHaikuImagePackage: Remove first parameter

Instead deduce the file name from the URL. A long overdue change. Avoids
unnecessary name duplication, which only led to errors.

----------------------------------------------------------------------------

############################################################################

Commit:      4210ed011a39e4e1b3fcba4c7c0d18844b4b3522
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4210ed0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 14 23:36:59 2013 UTC

Fix BMessage::GetInfo() return value check

Since B_OK is 0, the change doesn't affect the semantics.

----------------------------------------------------------------------------

############################################################################

Commit:      8d85f8e41e831cbfe7cce55716be763b6d939ef3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8d85f8e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 16 15:05:06 2013 UTC

Update libsolv package

The Haiku repository support has been upstreamed and the maintainer,
Michael Schroeder, has fixed and improved a few things.

----------------------------------------------------------------------------

############################################################################

Commit:      caba55ee61b631944493d91212a89f6a0360ee0f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=caba55e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 16 18:34:52 2013 UTC

Revert to previous libsolv package

In the latest one the version comparison is broken.

----------------------------------------------------------------------------

############################################################################

Commit:      a8b23e3ecf784de00897f3a4840e38f08e79f8fd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a8b23e3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 16 18:43:20 2013 UTC

pkgman resolve-dependencies: Allow specifying multiple packages

----------------------------------------------------------------------------

############################################################################

Commit:      ceb18a3777b38ce6a97e5bcd15d3c57731b39e76
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ceb18a3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 12:35:59 2013 UTC

packagefs: Fix typo in debug output

----------------------------------------------------------------------------

############################################################################

Commit:      d0367de056d3aa4c9c9f3c4d19f4233899a33f0d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d0367de
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 12:38:24 2013 UTC

packagefs: Switch to new rule for pre-release version part

----------------------------------------------------------------------------

############################################################################

Commit:      defc1f774aceb747e6d6b7e3a63b5258cfd345ed
URL:         http://cgit.haiku-os.org/haiku/commit/?id=defc1f7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 12:41:27 2013 UTC

BPackage{Version,Info}: Switch to new pre-release rule

Also add several checks in the package-info parser to enforce the
<alphanum_underscore> requirement of package/resolvable names and
version components.

----------------------------------------------------------------------------

############################################################################

Commit:      7b2d06214738875b3da5a19cfebabec7f9d7ace6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7b2d062
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 12:43:15 2013 UTC

Enforce current package rules for packages built from tree

* Replace '-' in package name by '_'.
* Use new '[...]' notation for pre-release version component.

----------------------------------------------------------------------------

############################################################################

Commit:      5e6adff9893e2566c886da1f46159967a93b15c5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5e6adff
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 13:12:04 2013 UTC

BPackageVersion::ToString(): Return empty string, if invalid

----------------------------------------------------------------------------

############################################################################

Commit:      7fa369956e1b30f61679ae5552b5f018a9e76578
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7fa3699
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 13:52:57 2013 UTC

BOpenHashTable::Clear(): Set fItemCount to 0

If not empty, the count would afterwards be out of sync with reality.

----------------------------------------------------------------------------

############################################################################

Commit:      b7c89d42a67fa5b8d9087f0ab2948e286b335cf7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b7c89d4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 15:44:28 2013 UTC

packagefs: Use '~' as pre-release separator

"[...]" turns out to be not so good an idea after all. In the shell it
would require escaping.

----------------------------------------------------------------------------

############################################################################

Commit:      9d81dc7655a984ce6dd0d79878215fe4d5748da6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9d81dc7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 15:48:25 2013 UTC

BPackage{Info,Version}: Switch to '~' as pre-release separator

Also allow '.' in the pre-release string (as in "alpha4.1") and in
package and resolvable names.

----------------------------------------------------------------------------

############################################################################

Commit:      06b4ebe51c4eb83f00f912cf88fe13a41e5d9a6d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=06b4ebe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 15:50:06 2013 UTC

package-infos in tree: use '~' as pre-release separator

----------------------------------------------------------------------------

############################################################################

Commit:      ea8b5c257d37d7dacc221a3535548d03edfa3871
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ea8b5c2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 16:43:47 2013 UTC

BPackageInfo parser: Allow '.' in micro version component

Otherwise we'd have to encode e.g. "cvs-1.12.13.1" differently.

----------------------------------------------------------------------------

############################################################################

Commit:      b50e5e330702837e70cb1a1ef04d37aacf327fa3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b50e5e3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 23:31:47 2013 UTC

package[_repo]: Print version correctly

Use BPackageVersion::ToString() instead of assembling the version
string manually. This fixes the incorrect pre-release separator.

----------------------------------------------------------------------------

############################################################################

Commit:      f16dbba4422edc0a409b8e781bbb3608ccd61e45
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f16dbba
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 18 23:34:26 2013 UTC

Update libsolv package

----------------------------------------------------------------------------

############################################################################

Commit:      cba60307b80a1b91619960b7b9dcf30745c8370a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cba6030
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 19 14:04:27 2013 UTC

BPackageInfo::Parser: Relax package/resolvable name rules

Now we allow any character but '-', '/', and whitespace.

----------------------------------------------------------------------------

############################################################################

Commit:      00b5554e118bf70414d455dbaa6a4ce4d5eaea6a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=00b5554
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 19 14:06:11 2013 UTC

pkgman: Print correct error when parsing package info failed

----------------------------------------------------------------------------

############################################################################

Commit:      3c6784e95caa334caa98f6f61b0d08385fa21e0b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3c6784e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 19 14:21:42 2013 UTC

BPackageInfo::Parser: Be a bit stricter wrt. names after all

Also disallow the operator characters in names.

----------------------------------------------------------------------------

############################################################################

Commit:      cf0a957ff6c0dea52e5790a67a8fd6a179e77fe2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cf0a957
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 19 22:29:24 2013 UTC

BMessage: Add {Add,Find}Strings()

They add a BStringList to/extract it from a B_STRING_TYPE field.

----------------------------------------------------------------------------

############################################################################

Commit:      7a27bcd1132c79d60658b7424990b1ad632886a9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7a27bcd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 19 22:33:13 2013 UTC

BPackageInfo: Make use of BMessage::{Add,Find}Strings()

----------------------------------------------------------------------------

############################################################################

Commit:      85d2badf007cb152215485db7916578ed6700504
URL:         http://cgit.haiku-os.org/haiku/commit/?id=85d2bad
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 19 23:28:18 2013 UTC

package daemon: Add support for activation change request

* daemon: Handle new request B_MESSAGE_COMMIT_TRANSACTION. It activates
  and deactivates given sets of packages. The new packages must be
  placed in a directory in the administrative directory. The daemon
  moves them to the packages directory and the deactivated packages to
  a subdirectory it creates. It also save the old activation state
  there.
* Add private BActivationTransaction, describing an activation change
  transaction.
* BDaemonClient: Add CommitTransaction(), which sends a given
  BActivationTransaction as a B_MESSAGE_COMMIT_TRANSACTION request to
  the daemon.

Completely untested yet.

----------------------------------------------------------------------------

############################################################################

Commit:      f71be99bd913f8cc8aab59b97f656dec32f06837
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f71be99
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 11:26:34 2013 UTC

BRequest: Add Process()

The method creates the initial jobs for the request and processes the
jobs from the job queue until empty or an error occurs.

----------------------------------------------------------------------------

############################################################################

Commit:      e0d4161d42a235f3e365787ee0470fc61c8e668d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e0d4161
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 11:28:36 2013 UTC

pkgman: Make use of BRequest::Process()

----------------------------------------------------------------------------

############################################################################

Commit:      74233e2c8884cbfe4faaea10f37f44b3d7f56dd8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=74233e2
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Apr 20 13:16:00 2013 UTC

Re-apply cf0a957 for the build-version of libbe.

* fixes build on non-Haiku platforms

----------------------------------------------------------------------------

############################################################################

Commit:      bab6caf3e07bf21d88a5dff857f8ccc7b96e9c0e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bab6caf
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Apr 20 13:32:19 2013 UTC

Another lap of updating base packages:

* binutils has now been split off gcc
* adjusted other packages to new naming scheme

----------------------------------------------------------------------------

############################################################################

Commit:      e2678ec0413faa7cdf17c8ae57e4d74a109336cb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e2678ec
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 12:01:32 2013 UTC

pkgman refresh: Include the repository name in error message

----------------------------------------------------------------------------

############################################################################

Commit:      2e3f5000e34297071e630ab70303026715021e31
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2e3f500
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 15:15:50 2013 UTC

package daemon: Fix check in Volume::_PackagesEntryCreated()

----------------------------------------------------------------------------

############################################################################

Commit:      a3b1c7b96e47e5129c83a5dae6e3b17d1ad06b19
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a3b1c7b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 15:29:06 2013 UTC

package daemon: Volume::_WriteActivationFile(): Init _entry

----------------------------------------------------------------------------

############################################################################

Commit:      be8f5e00f136fdc45f58c4a1c4d802eac9a6e96c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=be8f5e0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:10:21 2013 UTC

BPackageInfo: Add CanonicalFileName()

The name of the package file is not part of the package-info.
CanonicalFileName() constructs the name the file should have (not
enforced anywhere (yet)).

----------------------------------------------------------------------------

############################################################################

Commit:      4ea7f45bc5d8ac2936c0c498fd3fc0a45f375f19
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4ea7f45
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:12:40 2013 UTC

BRequest: Change attribute protection from private to protected

Particularly fInitStatus is of interest for derived classes.

----------------------------------------------------------------------------

############################################################################

Commit:      e14b247176d56b1ddaa4a5efa46ca3c60f33a093
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e14b247
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:16:17 2013 UTC

Add StringChecksumAccessor

A ChecksumAccessor implementation for an already known checksum.

----------------------------------------------------------------------------

############################################################################

Commit:      cca3f3b7431cf5e22fa612b171d04933197af3a9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cca3f3b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:18:41 2013 UTC

package daemon: Fix Volume::_WriteActivationFile()

* Wasn't using the toActivate and toDeactivate parameters, but the
  attributes. Thus failed when called from the
  CommitTransactionHandler.
* Volume::_ChangePackageActivation(): Fix debug output.

----------------------------------------------------------------------------

############################################################################

Commit:      69a53ac5b488d6562ebf75b98f143000ba70d623
URL:         http://cgit.haiku-os.org/haiku/commit/?id=69a53ac
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:22:34 2013 UTC

Add DownloadFileRequest

Downloads a file and optionally checks its checksum.

----------------------------------------------------------------------------

############################################################################

Commit:      6a1430716c8746b3a044bb65fb1849e906ae0453
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6a14307
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:24:28 2013 UTC

BDaemonClient: Add support for creating activation transactions

* BActivationTransaction:
  - Remove non-trivial constructor.
  - Remove package list parameters from SetTo().
  - Add AddPackageTo{Dea,A}ctivate().
* BDaemonClient:
  - Add CreateTransaction(). It creates a transaction directory and
    initializes a BActivationTransaction. Packages to de-/activate have
    to be added afterwards.
  - Add BCommitTransactionResult::FullErrorMessage().

----------------------------------------------------------------------------

############################################################################

Commit:      eee120f9871cf6f4a1251be97a6a0dc3a4d91a87
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eee120f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:31:32 2013 UTC

pkgman install: Complete basic functionality

Download package files to install from the respective repositories and
use BDaemonClient to perform the package de-/activation. Still missing
is the interactive problem solution support.

----------------------------------------------------------------------------

############################################################################

Commit:      7c092d4d865eb53029c28fb5b1ddfbbada85899f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7c092d4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 23:44:21 2013 UTC

Add build profile action update-packages

Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>",
i.e. it makes sure all hpkgs that are supposed to be in the image are
rebuilt respectively downloaded and copied to the image. It doesn't
remove old packages nor the activation files -- that still has to be
done manually.

----------------------------------------------------------------------------

############################################################################

Commit:      adc49c411a101e1372d77d95c3473cdbd5dace06
URL:         http://cgit.haiku-os.org/haiku/commit/?id=adc49c4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 19:47:35 2013 UTC

pkgman install: better out-of-memory error messages

----------------------------------------------------------------------------

############################################################################

Commit:      ec41ff587ff27f05dd852cd58a91bcb70043be41
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ec41ff5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 20 22:36:31 2013 UTC

pkgman install: Refresh repositories first

----------------------------------------------------------------------------

############################################################################

Commit:      8e6c3631a3e6deca3ca008bbce20bf30ec616d63
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8e6c363
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 00:46:26 2013 UTC

BSolver/LibsolvSolver: Add problem solution selection support

... and re-solving.

----------------------------------------------------------------------------

############################################################################

Commit:      2f028e9a2dc4b33ecac66d8fd491244a02d0f677
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2f028e9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 00:47:51 2013 UTC

pkgman install: Add problem solution selection support

----------------------------------------------------------------------------

############################################################################

Commit:      7466fa2d4901461dea3fc89a9229e0e04707124a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7466fa2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 08:36:19 2013 UTC

pkgman install: Simplify transaction creation

----------------------------------------------------------------------------

############################################################################

Commit:      c128275ede0f0441de54a0f0c8bab9af7ea7460d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c128275
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 10:29:41 2013 UTC

<Archivable.h>: Fix conflict with BPackageKit::BPrivate

... when "using BPackageKit::BPrivate".

----------------------------------------------------------------------------

############################################################################

Commit:      3ac0de3b1fac18912d6cb7758b502468e3802ee9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3ac0de3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 10:31:29 2013 UTC

pkgman: Refactoring -> PackageManager

Move common and reusable functionality from "search" and "install" to
new PackageManager class.

----------------------------------------------------------------------------

############################################################################

Commit:      de62d76176c323928d2b97bc667f39850727aa1f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=de62d76
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 10:48:39 2013 UTC

BSolver/LibsolvSolver: Add Uninstall()

Also fix incorrect check in LibsolvSolver::GetResult().

----------------------------------------------------------------------------

############################################################################

Commit:      8ba41d628c0ba3fd9f694562dc8b494fbfc220f7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8ba41d6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 10:50:31 2013 UTC

pkgman install: Fix typo in usage text

----------------------------------------------------------------------------

############################################################################

Commit:      df2685d885f3b940bc04b1cf5f39511ce6750ddf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=df2685d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 10:52:06 2013 UTC

pkgman: Add "uninstall" command

----------------------------------------------------------------------------

############################################################################

Commit:      458a86aacb49b152f65b810140295477d49f2f31
URL:         http://cgit.haiku-os.org/haiku/commit/?id=458a86a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 11:11:53 2013 UTC

pkgman: Organize commands by category

----------------------------------------------------------------------------

############################################################################

Commit:      212c636f4181a2b3a05fbfaa45e016b6c2e3aaa6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=212c636
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 11:55:38 2013 UTC

BSolver/LibsolvSolver: Add Update()

----------------------------------------------------------------------------

############################################################################

Commit:      a5999f6ff7fbadb4f8cc94f5e4283dacbf231a59
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a5999f6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 21 11:56:21 2013 UTC

pkgman: Add "update" command

----------------------------------------------------------------------------

############################################################################

Commit:      5c01289f68d67772de21aa97655f420a0044b50e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5c01289
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 21 21:22:19 2013 UTC

Adjust configure script to changed compiler version

----------------------------------------------------------------------------

############################################################################

Commit:      4b303759d29f2ec2aa8ffb04c239bc071b4b3c7a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4b30375
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 21 22:50:01 2013 UTC

Update prerequired packages with current versions.

----------------------------------------------------------------------------

############################################################################

Commit:      86b3c7a4168ea52eb05587f83b6985b1ee9249af
URL:         http://cgit.haiku-os.org/haiku/commit/?id=86b3c7a
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 21 22:56:02 2013 UTC

Drop symlink common/develop/tools/current

* drop the symlink itself (system development tools are now symlinked
  from /boot/common/bin directly)
* remove that symlink from PATH

----------------------------------------------------------------------------

############################################################################

Commit:      083234daa2c6473bc11c03a46e8a8a5d73ca9000
URL:         http://cgit.haiku-os.org/haiku/commit/?id=083234d
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 21 23:00:36 2013 UTC

Drop legacy scripts 'cc' and 'c++'

* no longer put compiler wrappers onto image
* removed corresponding environment variables

----------------------------------------------------------------------------

############################################################################

Commit:      5be84d5f004d43bc5f245d6fa19b1327c8ee0fbe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5be84d5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 22 11:50:44 2013 UTC

Update yasm package

----------------------------------------------------------------------------

############################################################################

Commit:      237127fbe4071abea20f3e5005f5a1e549f12788
URL:         http://cgit.haiku-os.org/haiku/commit/?id=237127f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 22 16:05:40 2013 UTC

Fix _user_entry_ref_to_path() in chroot

* Add "bool kernel" parameter to vfs_entry_ref_to_path(), so it can be
  specified for which I/O context the entry ref shall be translated.
* _user_entry_ref_to_path(): Use the calling team's I/O context instead
  of the kernel's. Fixes the bug that in a chroot the syscall would
  return a path for outside the chroot.

----------------------------------------------------------------------------

############################################################################

Commit:      ef40a60ae86e3496a2c874a6a6b351ab3c2566d3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ef40a60
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 22 17:09:41 2013 UTC

Update Vision package

----------------------------------------------------------------------------

############################################################################

Commit:      dbcaf9ee61fdc79bd664dab45ff3fecbac2fd965
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dbcaf9e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 22 18:35:41 2013 UTC

Update WQY-MicroHei package

----------------------------------------------------------------------------

############################################################################

Commit:      d6a80eb12240d2234e4009cbb382d84b780f71d5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d6a80eb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 22 19:58:17 2013 UTC

Add private headers to haiku_devel package

Also include the freebsd_network and freebsd_wlan headers. Their final
location and which of them to include in the first place might need some
adjustments.

----------------------------------------------------------------------------

############################################################################

Commit:      60ac56d3fa689794789a2fc73abe08cafb23b4f7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=60ac56d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 22 20:29:06 2013 UTC

Update wpa_supplicant package

----------------------------------------------------------------------------

############################################################################

Commit:      15565a06d446918906f0b0329efe486838cd3148
URL:         http://cgit.haiku-os.org/haiku/commit/?id=15565a0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 22 21:57:28 2013 UTC

Repackaged WonderBrush zip as HPKG

----------------------------------------------------------------------------

############################################################################

Commit:      78d1b920ed6c3994fe5c9d36abeff56b0b7da8f4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=78d1b92
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Apr 23 11:31:02 2013 UTC

Adjust pkgman to consider symlinks to both package-infos and packages.

----------------------------------------------------------------------------

############################################################################

Commit:      89804230e16cd49bf6c506e1315553035e63c6ea
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8980423
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 23 17:49:21 2013 UTC

Override File actions to be whitespace-safe

----------------------------------------------------------------------------

############################################################################

Commit:      0d452c8f34013b611a54c746a71c05e28796eae2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0d452c8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 23 17:53:25 2013 UTC

Remove the TrackerNewTemplates optional package

Instead add the files to the tree and generate the resulting files on
the fly. This also avoids the undesired attributes the files in the
package had.

----------------------------------------------------------------------------

############################################################################

Commit:      f3b11fcb9d1100868ed938afcf9dbf812ea01c93
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f3b11fc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 23 18:49:06 2013 UTC

Update p7zip package

----------------------------------------------------------------------------

############################################################################

Commit:      e49c7394ef9cf5b080e8c717553a52e244a68a8e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e49c739
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 23 21:07:34 2013 UTC

Update groff optional package to hpkg

----------------------------------------------------------------------------

############################################################################

Commit:      ffeecbcc87d8ebf8abd4c1395fcf63f8645415ed
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ffeecbc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 24 11:05:54 2013 UTC

Add more provides to haiku[_devel].hpkg

----------------------------------------------------------------------------

############################################################################

Commit:      3f85cfc1322254c2be3b8ef4aa54ea39616e91ed
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3f85cfc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 24 12:55:03 2013 UTC

Add a few missing directory_which constants

----------------------------------------------------------------------------

############################################################################

Commit:      f7d5bd46d78af12f42fd9bd7c524eda17ce17dc4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f7d5bd4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 24 13:10:55 2013 UTC

finddir: Print more useful message in error case

----------------------------------------------------------------------------

############################################################################

Commit:      3b5cb3253307909f6bf5a6b29c3d2f081008ac62
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3b5cb32
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 24 13:11:16 2013 UTC

find_directory(): Actually handle the new constants

----------------------------------------------------------------------------

############################################################################

Commit:      4b42e1a6bec76cc3e890f254f74c67ddf6eadf3f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4b42e1a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 24 14:05:05 2013 UTC

Update man optional package to hpkg

----------------------------------------------------------------------------

############################################################################

Commit:      ad1d8a9d0136e8f7aa3e7816a7f74ef6bb167de5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ad1d8a9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Apr 24 20:35:49 2013 UTC

Remove ncurses from the haiku_devel package

Besides that this version is very old, eventually we want to outsource
ncurses anyway.

----------------------------------------------------------------------------

############################################################################

Commit:      db88e4417b9247dd8021108296930f974bf35bcc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=db88e44
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 25 01:38:32 2013 UTC

Add ncurses optional package

----------------------------------------------------------------------------

############################################################################

Commit:      8e452bcfc774196f96da51880b5c77d860c425b3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8e452bc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 25 15:59:02 2013 UTC

Update gcc, ncurses, and nano packages

----------------------------------------------------------------------------

############################################################################

Commit:      44f60330e1abc910883e463b3331c4d952807a59
URL:         http://cgit.haiku-os.org/haiku/commit/?id=44f6033
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 25 16:00:08 2013 UTC

SetupEnvironment: Remove BELIBRARIES

It is no longer needed with the current gcc 2 package.

----------------------------------------------------------------------------

############################################################################

Commit:      13321f4d4b7760bf58faec2b2ffef234a99631ab
URL:         http://cgit.haiku-os.org/haiku/commit/?id=13321f4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 25 22:03:31 2013 UTC

Update sqlite package

----------------------------------------------------------------------------

############################################################################

Commit:      603c7647a0a04f729a15d118e308c91aa23bdd86
URL:         http://cgit.haiku-os.org/haiku/commit/?id=603c764
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 25 23:39:55 2013 UTC

Update openssl package

----------------------------------------------------------------------------

############################################################################

Commit:      4d6fe712e00933ce87a40731bc8f8eadacb18261
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4d6fe71
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Apr 25 23:40:34 2013 UTC

Update sqlite package (fix pkgconfig)

----------------------------------------------------------------------------

############################################################################

Commit:      e25f5f75e8c0fba577b8785e8affc1fddaf1c5d1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e25f5f7
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Apr 26 14:28:07 2013 UTC

Update required version of legacy compiler in configure

----------------------------------------------------------------------------

############################################################################

Commit:      4e8a27c90f682fb4de0df8b8263f4d8eb40692a3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4e8a27c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 26 14:30:00 2013 UTC

Update libxml2 package

----------------------------------------------------------------------------

############################################################################

Commit:      d26ca29d7559451d836caedfd7fa4dfafe9af606
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d26ca29
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Apr 26 22:19:18 2013 UTC

Update mkdepend package

----------------------------------------------------------------------------

############################################################################

Commit:      b87aa11726e42b170f07dc9b55bf8e9604226326
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b87aa11
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 27 00:57:17 2013 UTC

Update ncurses package

It now includes both the wchar and the non-wchar libraries.

----------------------------------------------------------------------------

############################################################################

Commit:      6ff8ef530d0b824b73be01005412d2b01bc612af
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6ff8ef5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 27 01:12:50 2013 UTC

Add libedit package

----------------------------------------------------------------------------

############################################################################

Commit:      abfcf6aa3fd2cdd4cb65196a7c4909f61eb8a593
URL:         http://cgit.haiku-os.org/haiku/commit/?id=abfcf6a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Apr 27 01:13:37 2013 UTC

Fix copy and paste error in NCurses optional package section

----------------------------------------------------------------------------

############################################################################

Commit:      c704b139ee161a954250cdf14d809807d67eead3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c704b13
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 28 00:25:01 2013 UTC

Update packages libtool, texinfo, sed, tar

----------------------------------------------------------------------------

############################################################################

Commit:      8aa0b0d7928ea2bd8e62917e3e79dbf5e6ae503f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8aa0b0d
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 28 00:40:13 2013 UTC

Update packages apr, apr_util, curl, flex, jam, libpcre and Pe.

----------------------------------------------------------------------------

############################################################################

Commit:      4521d4c6c7111c68cbbbb4889a0f257548de3ca3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4521d4c
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 28 12:11:17 2013 UTC

Updated package for Pe (lpe symlink was borked).

----------------------------------------------------------------------------

############################################################################

Commit:      212cb7333a3d7d583db21e258de72f52ae1f10f1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=212cb73
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 28 12:39:58 2013 UTC

packagefs: Fix deadbeef when using a file after package removal

When closing a file whose package had been removed,
PackageFile::VFSUninit() would crash due to calling Package::Close() on
an already destroyed Package object. PackageNode does now hold a
reference to the package between VFSInit() and VFSUninit().

----------------------------------------------------------------------------

############################################################################

Commit:      49da4a2d47649eb78d923de9f23795ab4a1b0e46
URL:         http://cgit.haiku-os.org/haiku/commit/?id=49da4a2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 28 17:21:12 2013 UTC

Update cmake and libsolv packages

----------------------------------------------------------------------------

############################################################################

Commit:      3cd00599c8c42e2fa48bd8890adf7b12fc3dad37
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3cd0059
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 28 17:56:49 2013 UTC

Update packages for CARootCertificates, curl, BePDF

----------------------------------------------------------------------------

############################################################################

Commit:      d28741462809e47e61b24d35735ab923fabb2863
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d287414
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Apr 28 21:50:46 2013 UTC

Update BeBook package and fix URL of BePDF package.

----------------------------------------------------------------------------

############################################################################

Commit:      bd3c533887006582a8d64f54b5f95706ab4146c5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bd3c533
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 28 23:03:19 2013 UTC

Update openssh package

----------------------------------------------------------------------------

############################################################################

Commit:      0302ce8180857193a39eaeca936085fdc306fa42
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0302ce8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Apr 28 23:43:01 2013 UTC

Update bzip2 package

----------------------------------------------------------------------------

############################################################################

Commit:      e17463fed22edbca4eb0ada0340b334777a46fce
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e17463f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 09:44:34 2013 UTC

Update gettext package

----------------------------------------------------------------------------

############################################################################

Commit:      87a36d222790146939fc4d26960101e6a5bc5252
URL:         http://cgit.haiku-os.org/haiku/commit/?id=87a36d2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 13:31:13 2013 UTC

PackageFSMountType: Add *_ENUM_COUNT

----------------------------------------------------------------------------

############################################################################

Commit:      58081381ea065528589e828d290d8643526cd64e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5808138
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 13:38:34 2013 UTC

packagefs: Add a .settings package symlink

It points to the settings directory appropriate for global settings.
When a package is installed in ~/config, we cannot use the settings/
subdirectory for global settings, since then the files could clash with
equally named user specific settings files (e.g. in case of
ssh/known_hosts). So we use ~/config/settings/global for global
settings instead.

----------------------------------------------------------------------------

############################################################################

Commit:      5d41bc9af9a872e54abc29fc14fe0120c586e42b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5d41bc9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 14:13:03 2013 UTC

Add AddPackageFilesToHaikuImage rule

----------------------------------------------------------------------------

############################################################################

Commit:      4fd280ddfa2f999654dfe20d9a7980c84c0108a0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4fd280d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 14:15:39 2013 UTC

Simplify use of InstallOptionalHaikuImagePackage

When invoked for a hpkg only the installation location (i.e. "common"
or "system") has to be specified now and "common" is the default. The
rule uses AddPackageFilesToHaikuImage now.

----------------------------------------------------------------------------

############################################################################

Commit:      ece8449668c88aaf2cf351842830aaa51c30723c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ece8449
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 15:57:37 2013 UTC

Pimp up AddTargetVariableToScript to support a list of targets

----------------------------------------------------------------------------

############################################################################

Commit:      c10119fa42bc5c182b6e7de59c1a190d255c3a56
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c10119f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 17:32:23 2013 UTC

BStringList: Add Join()

----------------------------------------------------------------------------

############################################################################

Commit:      330cb41ef54abf8a8a3a83e0853b473091a62b55
URL:         http://cgit.haiku-os.org/haiku/commit/?id=330cb41
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 17:33:51 2013 UTC

package list: Add option "-p"

It prints just a list of paths for all entries.

----------------------------------------------------------------------------

############################################################################

Commit:      e0f7f688f15c7b5d99a2313b8715743ff248e8c4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e0f7f68
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 17:38:29 2013 UTC

Extract packages' settings dir to common/settings in image

That's a somewhat crude initial approach to installing the default
settings of packages when building the image.

----------------------------------------------------------------------------

############################################################################

Commit:      bbd4272be7c99845a49b15e7a53afb7b5f0118c1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bbd4272
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 20:35:16 2013 UTC

Add passwd, login to the provides of haiku.hpkg

----------------------------------------------------------------------------

############################################################################

Commit:      f803a8a6cb003826b4d993af01fbc920d0be75c4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f803a8a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 21:46:16 2013 UTC

packagefs: Fix .settings package link for install path case

----------------------------------------------------------------------------

############################################################################

Commit:      c476e9a3681824a3279dafbb9104572704e876c8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c476e9a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Apr 29 22:40:09 2013 UTC

Update openssh package

----------------------------------------------------------------------------

############################################################################

Commit:      7cbdf4f0231a0901bd1a18c3be8cc267f2e9c3e6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7cbdf4f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Apr 30 20:50:18 2013 UTC

Update packages for several ports

* apr
* apr_util
* curl
* expat
* libxml2
* ncurses
* neon
* pcre
* subversion

This corrects the use of develop/lib paths and a few other things.

----------------------------------------------------------------------------

############################################################################

Commit:      6c6d6490bfa0b6cff6d018e86db189e412abc82d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6c6d649
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  1 00:01:44 2013 UTC

ExtractArchive rule: Allow the directory to have a grist

----------------------------------------------------------------------------

############################################################################

Commit:      98a0dd5fd86042f9c736e26d3e3637953fe177a2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=98a0dd5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  1 00:02:56 2013 UTC

Update ICU packages

We extract both packages to the same directory now, since the icu_devel
package depends on the base package and contains relative symlinks to
the libraries. ATM that isn't really relevant, since we link directly
against the libraries from the base package, but we might want to
change that eventually.

----------------------------------------------------------------------------

############################################################################

Commit:      0c661892d459501ef82b1ccd88c7ea4b0c24fc20
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c66189
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  1 00:08:43 2013 UTC

BPackageInfo::Parser: Fix error output

The "=" operator isn't actually allowed in a resolvable expression. It
has to be "==" instead.

----------------------------------------------------------------------------

############################################################################

Commit:      a82e49aeb04f5c4829ba6dea9f6917b3bf62c7fe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a82e49a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  2 15:18:12 2013 UTC

Update cdrtools and keymapswitcher packages

----------------------------------------------------------------------------

############################################################################

Commit:      6b1789577abf5f62292b5535e13a71a804b38a6a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6b17895
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May  3 13:47:11 2013 UTC

Update/add packages for readline, cvs, doxygen, python,

... and timgmsoundfont.

----------------------------------------------------------------------------

############################################################################

Commit:      0d6e9506393b3c600e52128d956640db020d2ced
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0d6e950
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May  3 23:02:44 2013 UTC

Update mercurial and python packages

----------------------------------------------------------------------------

############################################################################

Commit:      25a7b01d15612846f332751841da3579db313082
URL:         http://cgit.haiku-os.org/haiku/commit/?id=25a7b01
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 13:02:57 2013 UTC

Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
  needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
  is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
  package instead.

Conflicts:
        .gitignore
        build/jam/BuildSetup
        build/jam/FileRules
        build/jam/FloppyBootImage
        build/jam/HaikuImage
        build/jam/ImageRules
        build/jam/KernelRules
        build/jam/NetBootArchive
        build/jam/OptionalBuildFeatures
        build/jam/OptionalLibPackages
        build/jam/OptionalPackageDependencies
        build/jam/OptionalPackages
        build/scripts/build_haiku_image
        configure
        data/bin/installoptionalpackage
        data/system/boot/Bootscript
        headers/os/app/Message.h
        headers/os/package/PackageInfo.h
        headers/os/package/PackageInfoAttributes.h
        headers/os/package/PackageInfoSet.h
        headers/os/package/PackageRoster.h
        headers/os/package/PackageVersion.h
        headers/os/package/hpkg/PackageInfoAttributeValue.h
        headers/os/storage/FindDirectory.h
        headers/os/storage/Node.h
        headers/os/support/StringList.h
        headers/private/system/directories.h
        src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
        src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
        src/add-ons/kernel/file_systems/packagefs/Jamfile
        src/add-ons/kernel/file_systems/packagefs/Package.cpp
        src/add-ons/kernel/file_systems/packagefs/Package.h
        src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
        src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
        src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
        src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
        src/add-ons/kernel/file_systems/packagefs/PackageNode.h
        src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
        src/add-ons/kernel/file_systems/packagefs/Version.cpp
        src/add-ons/kernel/file_systems/packagefs/Version.h
        src/add-ons/kernel/file_systems/packagefs/Volume.cpp
        src/add-ons/kernel/file_systems/packagefs/Volume.h
        src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
        src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
        src/apps/deskbar/BarApp.cpp
        src/apps/deskbar/BarMenuBar.cpp
        src/apps/deskbar/BarMenuBar.h
        src/apps/deskbar/BarView.cpp
        src/apps/deskbar/BarView.h
        src/apps/deskbar/BarWindow.cpp
        src/apps/deskbar/BarWindow.h
        src/apps/deskbar/DeskbarMenu.cpp
        src/apps/deskbar/DeskbarMenu.h
        src/apps/deskbar/DeskbarUtils.cpp
        src/apps/deskbar/DeskbarUtils.h
        src/apps/deskbar/ExpandoMenuBar.cpp
        src/apps/deskbar/ExpandoMenuBar.h
        src/apps/deskbar/TeamMenu.cpp
        src/apps/processcontroller/ProcessController.cpp
        src/apps/remotedesktop/RemoteDesktop.cpp
        src/bin/bash/config-top.h
        src/bin/finddir.c
        src/bin/package/Jamfile
        src/bin/package/command_add.cpp
        src/bin/package/command_create.cpp
        src/bin/package/command_list.cpp
        src/bin/package_repo/command_list.cpp
        src/bin/pkgman/command_refresh.cpp
        src/build/libbe/support/Jamfile
        src/build/libpackage/Jamfile
        src/build/libroot/Jamfile
        src/build/libroot/fs.cpp
        src/build/libroot/remapped_functions.h
        src/kits/locale/MutableLocaleRoster.cpp
        src/kits/opengl/GLRendererRoster.cpp
        src/kits/package/PackageInfo.cpp
        src/kits/package/PackageInfoSet.cpp
        src/kits/package/PackageRoster.cpp
        src/kits/package/PackageVersion.cpp
        src/kits/package/RepositoryCache.cpp
        src/kits/package/hpkg/PackageWriterImpl.cpp
        src/kits/package/hpkg/ReaderImplBase.cpp
        src/kits/package/hpkg/WriterImplBase.cpp
        src/kits/print/PrintTransport.cpp
        src/kits/print/Printer.cpp
        src/kits/screensaver/ScreenSaverRunner.cpp
        src/kits/support/StringList.cpp
        src/kits/tracker/ContainerWindow.cpp
        src/kits/tracker/DeskWindow.cpp
        src/kits/tracker/PoseView.cpp
        src/libs/print/libprint/Transport.cpp
        src/preferences/printers/AddPrinterDialog.cpp
        src/preferences/screensaver/ScreenSaverWindow.cpp
        src/servers/debug/DebugServer.cpp
        src/servers/input/AddOnManager.cpp
        src/servers/media_addon/MediaAddonServer.cpp
        src/system/boot/Jamfile
        src/system/boot/loader/Jamfile
        src/system/boot/loader/loader.cpp
        src/system/boot/loader/vfs.cpp
        src/system/kernel/fs/vfs.cpp
        src/system/kernel/fs/vfs_boot.cpp
        src/system/libroot/os/find_directory.cpp
        src/system/runtime_loader/runtime_loader.cpp
        src/tools/package/Jamfile

----------------------------------------------------------------------------

############################################################################

Commit:      d0e6e17436620b80da30381387599df3bd5e54d9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d0e6e17
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 13:04:08 2013 UTC

rule KernelStaticLibrary: Fix comment

----------------------------------------------------------------------------

############################################################################

Commit:      2bf492b64bad5dcaa62b23362557917f308c0e94
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2bf492b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 13:05:06 2013 UTC

Add optional package Man to alpha, nightly release profiles

----------------------------------------------------------------------------

############################################################################

Commit:      bcbf22a316baf9c159b286ca774b27b21102b53f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bcbf22a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 16:01:12 2013 UTC

x86[-64]: Fix arch_cpu_user_strlcpy() for small buffers

The case for small buffers was broken, since scasb operates on edi/rdi,
not esi/rsi.

----------------------------------------------------------------------------

############################################################################

Commit:      b38b2796499442bd9daf4f75347f50c51e980c47
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b38b279
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 16:25:31 2013 UTC

Move package definitions to their own files

----------------------------------------------------------------------------

############################################################################

Commit:      bc07db8f0afd325e38f1c8a17cdf3aea2d62c12d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bc07db8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 16:31:02 2013 UTC

Declare more package dependencies

Probably still a lot missing, but we want to get rid of the file soon,
anyway.

----------------------------------------------------------------------------

############################################################################

Commit:      6fa5d4a7c610e00d6ff5b5a36ad013bffa42f1dc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6fa5d4a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 16:46:25 2013 UTC

Add liblocale symlink until packages have been rebuilt

----------------------------------------------------------------------------

############################################################################

Commit:      5be0b187f5090f01624b6f33fe7782974653b25a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5be0b18
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun May  5 17:30:29 2013 UTC

Drop provides-declarations for commands that are no longer provided

----------------------------------------------------------------------------

############################################################################

Commit:      415f42489f6efbac8edaa154f9e8ded5ab25bf35
URL:         http://cgit.haiku-os.org/haiku/commit/?id=415f424
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 19:04:11 2013 UTC

Fix bash's default value for PATH

----------------------------------------------------------------------------

############################################################################

Commit:      b923a5072e297db5a6c5eb51cf8a3bd4871ad8ae
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b923a50
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May  5 20:11:55 2013 UTC

Fix merge defect in ICU optional package declaration

----------------------------------------------------------------------------

############################################################################

Commit:      4bee3d6fb9b62a1ca1c508b263d037df6b863e57
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4bee3d6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May  6 02:31:27 2013 UTC

Add more rules to simplify dealing with build features

* Introduce the notion of build feature attributes and add rules
  SetBuildFeatureAttribute and BuildFeatureAttribute to set respectively
  get a build feature attribute.
* Add rule ExtractBuildFeatureArchives to download and extract archives
  and set build feature attributes to extracted entries.
* Add rule UseBuildFeatureHeaders as a shorthand for getting a build
  feature attribute and adding it as a system header search directory.

----------------------------------------------------------------------------

############################################################################

Commit:      7c6bff17340e2f6697a22f1ce56c18fa009d4d2e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7c6bff1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May  6 02:37:18 2013 UTC

Complete outsourcing of zlib

* Add optional packages Zlib and Zlib-devel.
* Simplify the build feature section for zlib and also extract the
  source package.
* Replace all remaining references to the zlib instance in the tree and
  remove it.

----------------------------------------------------------------------------

############################################################################

Commit:      9abd3e6f53602c5fc3ad5676992bc27d40640e1b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9abd3e6
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon May  6 18:01:40 2013 UTC

Fix race condition during build of some file systems.

* make sure the zlib package is available before trying to use zlib.h

----------------------------------------------------------------------------

############################################################################

Commit:      853b8a4de57bf2c55455bbcb45f759319da1e5be
URL:         http://cgit.haiku-os.org/haiku/commit/?id=853b8a4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May  6 05:20:11 2013 UTC

CreateAppMetaMimeThread: Use open_type()

... instead of constructing the MIME type file path manually.

----------------------------------------------------------------------------

############################################################################

Commit:      eef74ff29879ac29d794c1f6052f75695377e362
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eef74ff
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May  6 17:55:06 2013 UTC

Remove packages Zlib[-devel] from ReleaseBuildProfiles

Instead add Zlib as a mandatory package and Zlib-devel as a Development
dependency.

----------------------------------------------------------------------------

############################################################################

Commit:      fa5dff5529d819291e62ac867fca3d27a527cbad
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fa5dff5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 00:38:55 2013 UTC

Replace various boolean rule parameters by flags

Instead of the boolean alwaysUpdate, isCDPackage, and stripDebugSymbols
parameters use a uniform flags parameter which can contain any of the
respectively supported flags (alwaysUpdate, cdPackage,
stripDebugSymbols, !stripDebugSymbols).

----------------------------------------------------------------------------

############################################################################

Commit:      d6a6e2c811bf9f4f30c8000b54a199e57d8a25ed
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d6a6e2c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 01:13:37 2013 UTC

rule CopyDirectoryToContainer: Add flags isTarget

The flags indicates that the passed sourceDirectory is a target, not a
path.

----------------------------------------------------------------------------

############################################################################

Commit:      e387e24faa576987379b6d5b9da4dd054a9d7589
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e387e24
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 02:06:20 2013 UTC

Move MIME DB creation from build_haiku_image to jam build system

* build_haiku_image: Remove MIME DB creation code.
* Rename beos_mime source directory to mime_db.
* Add rules to build the MIME DB in the source directory's jamfile.
* Add MIME DB directory to haiku.hpkg in data/mime_db.

----------------------------------------------------------------------------

############################################################################

Commit:      38e3973ecf429e27da158c823369f47f4addf869
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38e3973
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 02:12:57 2013 UTC

Add private class BMergedDirectory to storage kit

An arbitrary number of directories can be added, which the implemented
BEntryList interface presents as a single merged entry list. Three
different merge policies are supported which define how entries that
appear in more than one directory are treated.

----------------------------------------------------------------------------

############################################################################

Commit:      59a653b51cdae6a8f87db8cb68c86998b48bfc62
URL:         http://cgit.haiku-os.org/haiku/commit/?id=59a653b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 02:43:15 2013 UTC

Support multiple MIME DB directories

Each installation location (system, common, common/non-packaged,
~/config, ~/config/non-package) can now have a read-only data/mime_db
directory. ~/config/settings/beos_mime is now named mime_db as well. The
contents of all directories makes up the MIME DB. Entries in more
specific locations shadow entries in more general locations. Only the
directory in ~/config/settings is where the registrar writes changes to.

The new layout allows packages to contribute entries to the MIME DB by
simply providing the respective files in data/mime_db. Consequently the
user settings directory is supposed to contain only the things the user
has actually changed.

Seems to work fine as far as tested. A few issues, though:
* The registrar doesn't monitor the directories yet, so it doesn't
  notice entry changes due to package de-/activation.
* ATM it is not possible to remove a MIME type that is not in the user
  settings directory, although the FileTypes GUI suggests that it is.
  We'd have to work with white-outs, since we cannot remove the files in
  the data/mime_db directories. Or, alternatively, the API has to be
  extended and the FileTypes GUI adjusted to disable the "Remove" button
  in such a case.

----------------------------------------------------------------------------

############################################################################

Commit:      f8d6e1f9387ce12626c411909c00f9dfdf2f4e3e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f8d6e1f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 13:22:30 2013 UTC

mimeset: Style update

----------------------------------------------------------------------------

############################################################################

Commit:      937b6e0f7f452391c5d6d46ad76d2e1fc36450e9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=937b6e0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 14:18:29 2013 UTC

pkgman resolve-dependencies: Remove bogus option

----------------------------------------------------------------------------

############################################################################

Commit:      a625f557c5c896b64b535f95be155fbba2a00b88
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a625f55
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 14:24:34 2013 UTC

mimeset: Change options style

* Use "--" prefix for long options and switch to getopt parsing. There's
  still compatibility support for "-apps" and "-all", but they are
  considered obsolete, now.
* Add short options "-a" for "--apps", "-A" for "--all", and "-h" for
  "--help".

----------------------------------------------------------------------------

############################################################################

Commit:      9cda9c9905397675aec87ebc6bc9287df3ca2264
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9cda9c9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 15:54:29 2013 UTC

Move MIME DB code back from registrar to src/kits/storage/mime

* Together with database_{access,support}.cpp it is built into a static
  library.
* Add new interfaces MimeSniffer and Database::NotificationListener for
  plugging in registrar specific functionality (the sniffer add-on
  support and the notification mechanism).

----------------------------------------------------------------------------

############################################################################

Commit:      b94857b322093c296230a18d47f6a98a2896b062
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b94857b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 21:15:36 2013 UTC

Refactor MIME DB access

* Add class DatabaseLocation. It contains a list of the MIME DB
  directory paths plus methods to access type files.
* Move all low-level MIME DB access functions from
  database_{support,access} to DatabaseLocation. All code that formerly
  used those now requires a DatabaseLocation object. In BMimeType and in
  the registrar the default object is used, but the low-level classes
  can now be reused with different locations.
* Move get_icon_data() from database_access to database_support and
  delete the former, which is now empty.

----------------------------------------------------------------------------

############################################################################

Commit:      b6a89f410eb68626663104bd9687830504634cb9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b6a89f4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May  7 23:08:16 2013 UTC

Pull class AppMetaMimeCreator out of CreateAppMetaMimeThread

Instead of using a BMimeType to set the MIME type properties, it
operates directly on the Database object, though.

----------------------------------------------------------------------------

############################################################################

Commit:      dcb215886225f014599c152c2ebaf78be647710f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dcb2158
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  8 02:26:00 2013 UTC

storage/mime: Some host platform build fixes

----------------------------------------------------------------------------

############################################################################

Commit:      ed92790ce5832ef5431c1b36840900cb81186f08
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ed92790
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  8 02:28:31 2013 UTC

mime/Database::Install(): Fix subtype without supertype case

If the supertype directory for a given subtype didn't exist yet, the
method would fail.

----------------------------------------------------------------------------

############################################################################

Commit:      57a7a6b9168931a2f209327bc40959a016ca8bb2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=57a7a6b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  8 02:29:18 2013 UTC

mime/database_support: Make buildable for host platform

----------------------------------------------------------------------------

############################################################################

Commit:      d0815ca03b474657ea161f5d3783b458c899a947
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d0815ca
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  8 02:39:56 2013 UTC

Add private MIME DB classes to libbe_build

* This pulls in some more stuff, like libicon and agg which are also
  included in libbe_build, now.
* Update a few libbe_build classes and headers needed to get things
  building.
* This likely breaks the <build>mimeset build on Haiku.

----------------------------------------------------------------------------

############################################################################

Commit:      9ea1940c48f96fb923fe654792d5372ab800ef7c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9ea1940
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  8 02:51:48 2013 UTC

mimeset: WIP to support custom MIME DB directories

Add option -m/--mimedb for specifying one or more directories to be
used as the MIME DB instead of the system MIME DB. Currently only works
with --apps and only non-recursive.

When fully implemented the new feature will be used in the build system
and on Haiku when building packages to generated the MIME DB entries for
applications, so those can be included in the same package. Furthermore
it will be possible to use the MIME DB the build system already
generates to identify files before packaging them.

----------------------------------------------------------------------------

############################################################################

Commit:      865ab2816de47da3e2d82a3ef808d03d69fe1436
URL:         http://cgit.haiku-os.org/haiku/commit/?id=865ab28
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  8 23:37:23 2013 UTC

Pull class MimeInfoUpdater out of UpdateMimeInfoThread

* Pull out base class MimeEntryProcessor out of AppMetaMimeCreator.
* Pull class MimeInfoUpdater out of UpdateMimeInfoThread and derive it
  from MimeEntryProcessor.
* MimeInfoUpdater: Instead of BMimeType::GuessMimeType(), use
  Database::GuessMimeType() directly.

----------------------------------------------------------------------------

############################################################################

Commit:      c92c12d71ae1ef4eb25e7d81011a4544b8b234a0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c92c12d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May  8 23:39:54 2013 UTC

libroot_build: Fix incorrect skipDot check in find_dir_entry()

Would result in the _kern_open_parent_dir() failing for "/" and maybe in
other cases as well.

----------------------------------------------------------------------------

############################################################################

Commit:      00090d290d61b06dc60dc91e2b4d9f90f638dd22
URL:         http://cgit.haiku-os.org/haiku/commit/?id=00090d2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:14:35 2013 UTC

boot loader: print max heap usage info before entering kernel

----------------------------------------------------------------------------

############################################################################

Commit:      f132bdfe9f0a7e132d1b93e5c117f384ae0527c4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f132bdf
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:16:53 2013 UTC

boot loader: Add 256 KB additional heap

packagefs is using quite a bit additional memory for the MIME DB
entries and with all files identified.

----------------------------------------------------------------------------

############################################################################

Commit:      5fb334831939c75dd29eb50e7f79e90876764a49
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5fb3348
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:18:46 2013 UTC

MimeEntryProcessor: Add DoRecursively()

While Do() only process the specified entry, DoRecursively() also
recurses into directories.

----------------------------------------------------------------------------

############################################################################

Commit:      baadb2595539f998a8b113c1444293e67ffcd5b3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=baadb25
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:19:25 2013 UTC

Add te MimeInfoUpdater to libbe_build

----------------------------------------------------------------------------

############################################################################

Commit:      0c61965f2b7d83b6b985ec1cb376f7673cd93682
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c61965
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:22:24 2013 UTC

mimeset: Complete custom mime DB support

* Don't require the first MIME DB directory to exist anymore. Database
  creates it anyway.
* Make use of MimeInfoUpdater to support updating MIME info with a
  custom MIME DB.
* Make use of MimeEntryProcessor::DoRecursively() to support recursive
  operation with a custom MIME DB.

----------------------------------------------------------------------------

############################################################################

Commit:      fa4511f61bf27d6728a406b24a61d75a7bc172c4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fa4511f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:29:53 2013 UTC

AddDriversToContainer: Handle duplicate invocations

Since the same driver can be added in more than one category, in a few
cases AddDriversToContainer was invoked twice for the same target. Avoid
adding the driver twice to add-ons/kernel/drivers/bin in such a case.
Didn't really cause any problem, but no need to copy the file twice.

----------------------------------------------------------------------------

############################################################################

Commit:      f666576f6240faa2f83f16bb01cd0dd61fab272d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f666576
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:30:19 2013 UTC

CopyDirectoryToContainer: fix typo in comment

----------------------------------------------------------------------------

############################################################################

Commit:      518840e305b44986a28aff2db042a932bf2fd650
URL:         http://cgit.haiku-os.org/haiku/commit/?id=518840e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:38:10 2013 UTC

Complete MIME related support for image/package creation

* Update MimeSet rule to use the MIME DB the build system creates.
* Add CreateAppMimeDBEntries rule and call it from Link for targets that
  might be applications that need to be registered with the MIME DB. For
  the target the rule is invoked with it creates a directory into which
  the entries for the types to be registered are written. The directory
  is associated with the target via the HAIKU_MIME_DB_ENTRIES variable.
* AddFilesToContainer: If a target is added that has MIME DB entries,
  also add those to the container.
* build_haiku_package: Call mimeset for the package contents.

----------------------------------------------------------------------------

############################################################################

Commit:      bbd98073f9afd33feaa270581da7a558ff14ffcd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bbd9807
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:41:39 2013 UTC

Remove update_mime_info() support from libbe_build

It was there only for <build>mimeset, which is now always invoked with a
custom MIME DB and thus won't use the function anymore. We could
actually easily implement it using MimeInfoUpdater, if the MIME DB
directory the build system generates was compiled in.

----------------------------------------------------------------------------

############################################################################

Commit:      327299814729dc0b70df70fe1c80f745272d8292
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3272998
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 01:43:58 2013 UTC

Remove the no longer needed mime_update.sh post install script

----------------------------------------------------------------------------

############################################################################

Commit:      0c53204ecc20b6e2fe5af7db5e75959a98d29c0b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c53204
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 15:57:09 2013 UTC

JPEGTranslator: Add missing jpeg headers dependency

----------------------------------------------------------------------------

############################################################################

Commit:      204dee708a999d5a71d0cb9497650ee7cef85d0a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=204dee7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 16:08:55 2013 UTC

Use libbe_build also on Haiku

This means the build tools will no longer be built against the host
platform's libbe, which avoids compatibility problems -- e.g. an
older Haiku host libbe may not have certain features the build tools
require -- and also makes the build behave more similiar on Haiku and
other platforms. The host libroot dependency still remains and is not
easy to get rid of.

Also remove some bits of BeOS/Dano/Zeta build support.

----------------------------------------------------------------------------

############################################################################

Commit:      826a109f96dbd877c8270c00f402671fb81854aa
URL:         http://cgit.haiku-os.org/haiku/commit/?id=826a109
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 19:10:37 2013 UTC

MimeInfoUpdater: Fix is_shared_object_mime_type()

The comparison must be case insensitive.

----------------------------------------------------------------------------

############################################################################

Commit:      3271dcd7f61df278868069774c91a0f13a7f84fd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3271dcd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May  9 19:36:31 2013 UTC

Update be_book and vision packages

----------------------------------------------------------------------------

############################################################################

Commit:      8a916d87528ef32e0ce675a00377aa95842e33cf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8a916d8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 07:16:58 2013 UTC

Don't create most empty installation dirs in home/config

Create them in home/config/non-packaged instead.

----------------------------------------------------------------------------

############################################################################

Commit:      a085e81e62d7a860f809b4fb7c7bf5654c396985
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a085e81
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 07:35:06 2013 UTC

Move ~/config/boot to ~/config/settings/

----------------------------------------------------------------------------

############################################################################

Commit:      0bfcf7312a3271700df884e10149fa16cf4ba1fe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0bfcf73
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 07:56:47 2013 UTC

Move deskbar menu directory to ~/config/settings/deskbar/menu

Also remove the "be" symlink in ~/config/settings.

----------------------------------------------------------------------------

############################################################################

Commit:      85bf48fea593e303019d6bb1265b230a4bd0542b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=85bf48f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 12:37:27 2013 UTC

packagefs: Remove no longer working userland build support

----------------------------------------------------------------------------

############################################################################

Commit:      1e7416d9b3846396e2f7d6552e37d72664cd6853
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1e7416d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 13:13:35 2013 UTC

packagefs: Organize sources into subdirectories

----------------------------------------------------------------------------

############################################################################

Commit:      1848fdc329604d5d5ea7cb4450b0913a2510b906
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1848fdc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 21:17:55 2013 UTC

util/khash: Add hash_hash_string_part()

----------------------------------------------------------------------------

############################################################################

Commit:      d07c930c1eb710289922edd3abf5244c259a86c6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d07c930
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 21:31:36 2013 UTC

packagefs: Share string instances globally

Introduce a class String which refers to shared private data that is
registered in a global hash table (in class StringPool) and use the
class consequently. This eliminates duplicate allocations for the same
string and also speeds up tests for equality. There's quite a bit
overhead for the management structures (apparently even more than for
the string data itself), but due to almost all strings being used
multiple times this still almost halves the memory usage for string
data.

----------------------------------------------------------------------------

############################################################################

Commit:      3c94ecf6b4c440fe976473d4bd54bc67fc203388
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3c94ecf
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 21:32:21 2013 UTC

packagefs: Move NodeListener to nodes/

----------------------------------------------------------------------------

############################################################################

Commit:      c663ca2171fe8fee125a8d1fd64500b0deb5e814
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c663ca2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 11 22:18:19 2013 UTC

Merge branch 'master' into package-management

Conflicts:
        build/jam/HaikuImage
        src/system/kernel/arch/x86/64/arch.S

----------------------------------------------------------------------------

############################################################################

Commit:      bfc4df839f4ddce7367eba88a940ac5a84dde40d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bfc4df8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 12 21:30:52 2013 UTC

Merge remote-tracking branch 'haiku/master' into package-management

----------------------------------------------------------------------------

############################################################################

Commit:      dff45dfced3242bca17ded2b0be5937d73fb7713
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dff45df
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun May 19 19:35:39 2013 UTC

Updated version of compiler to match BuildtoolsPM

----------------------------------------------------------------------------

############################################################################

Commit:      773318958f9c126e067bc7219fa157c291963aff
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7733189
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun May 19 21:30:23 2013 UTC

Add new package haiku_cross_devel.hpkg

* This package is meant for providing haikuporter with a development
  environment for building cross packages.

----------------------------------------------------------------------------

############################################################################

Commit:      f7712caf68c3d50c3004a7de66f4db2d5993fa56
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f7712ca
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon May 20 09:27:42 2013 UTC

Update package-infos to match current Haiku version

* additionally, unify packager (to "The Haiku build system")

----------------------------------------------------------------------------

############################################################################

Commit:      7e7232aca848f3cf15607ee48864fc57954c1825
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7e7232a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 16:21:41 2013 UTC

Update cmake and libsolv packages

----------------------------------------------------------------------------

############################################################################

Commit:      171fd58c4b47c2da9cf13b7e501d3661d4a98e42
URL:         http://cgit.haiku-os.org/haiku/commit/?id=171fd58
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 12 23:04:52 2013 UTC

package kit: some fixes for multi-version support

* Use enums/constants/functions instead of preprocessor macros.
* Missing include in PackageInfoAttributeValue.h.
* PackageReaderImpl::Init(): Check version before header size and
  return B_MISMATCHED_VALUES instead of B_BAD_DATA, if the version
  doesn't match. This allows callers to determine the condition and
  try a reader for a different version. A more flexible interface for
  that case would be nice, but since we want to support the old package
  version only temporarily, the current solution should be good enough.

----------------------------------------------------------------------------

############################################################################

Commit:      7575abbca279c0f86e5c6d51a8d854d585c8de03
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7575abb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 12 23:29:06 2013 UTC

Clone read support functionality for HPKG format version 1

It uses sub-namespace BPackage::BHPKG::V1. Unlike the one for the
current format version, the V1 version of BPackageInfoContentHandler
lives in BHPKG(::V1) sub-namespace and is private.

----------------------------------------------------------------------------

############################################################################

Commit:      fc0cec5396a712166c6184010e2dba2e501abb35
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fc0cec5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 12 23:37:28 2013 UTC

Bump HPKG format version

----------------------------------------------------------------------------

############################################################################

Commit:      ab5755a84a882ef210e8ba21b50c34d61a571cd5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ab5755a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 00:38:59 2013 UTC

packagefs: PackageLeafNode: remove superfluous declaration

----------------------------------------------------------------------------

############################################################################

Commit:      dd0b33cb6330ac9c9e8430d2a8f94396474c8128
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dd0b33c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 00:40:24 2013 UTC

BPackageInfo: Support reading both HPKG format versions

----------------------------------------------------------------------------

############################################################################

Commit:      b5786b0f6879010455272cfeed0668e8d259048c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b5786b0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 00:46:37 2013 UTC

BPackageDataReader: Remove unused Size(), BlockSize()

----------------------------------------------------------------------------

############################################################################

Commit:      175ff8ec773647be2b9ca4c1e1de9c183088ab1c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=175ff8e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 00:52:10 2013 UTC

package kit: Add BAbstractBufferedDataReader

It doesn't do much in terms of buffering, but defines an interface
buffered readers can implement, namely the additional
ReadDataToOutput() which currently BPackageDataReader specifies.

----------------------------------------------------------------------------

############################################################################

Commit:      2c32402da583cbd0a091a08308237592679c05c4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2c32402
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 01:10:09 2013 UTC

package kit: internalize BPackageDataReader

It is no longer public (or even private) API. BPackageDataReaderFactory
returns a BAbstractBufferedDataReader instead. The advantage is that
the latter doesn't have hpkg format specific dependencies.

----------------------------------------------------------------------------

############################################################################

Commit:      11cecf980b5ee6a21563a7e78d4f2238a8b4d90f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=11cecf9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 03:39:02 2013 UTC

packagefs: Add support for hpkg format V1

* Add union-like class PackageData which wraps the V1 and V2
  BPackageData classes.
* GlobalFactory: Create a data reader depending on the data format
  version.
* Package: Add a loader for V1 format and try that, if the other one
  fails.

----------------------------------------------------------------------------

############################################################################

Commit:      9172ffdb069412131d17ff731280f6f5802b52a0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9172ffd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 14:43:44 2013 UTC

package list/extract: Add support for hpkg format V1

----------------------------------------------------------------------------

############################################################################

Commit:      df29539688df25133e4f9decc5da7b1045dc1850
URL:         http://cgit.haiku-os.org/haiku/commit/?id=df29539
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 15:43:31 2013 UTC

Remove resolvable provides type

* Remove BPackageResolvableType and respective property from
  BPackageResolvable.
* Remove package attribute B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES_TYPE.

----------------------------------------------------------------------------

############################################################################

Commit:      7adfd76b17adc78b0646a835711d3cd935bfb02b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7adfd76
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 13 19:02:30 2013 UTC

Add "base package" package attribute

----------------------------------------------------------------------------

############################################################################

Commit:      0ee1651856a4364bfa7ffd10f796baf35fb524d3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0ee1651
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 14 16:59:57 2013 UTC

Rename BBlockBufferCache and friends to *Pool*

Also move BBlockBufferPoolNoLock into BHPKG namespace with the other
classes. Not sure why it wasn't there before.

----------------------------------------------------------------------------

############################################################################

Commit:      21ee6d5cdce51e891eebc0b28efe8aad631bfc1c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=21ee6d5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 14 17:03:34 2013 UTC

Some comment updates

----------------------------------------------------------------------------

############################################################################

Commit:      16e5e5e4ec65faf8dcb0b7f7918a890c41a3960d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=16e5e5e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 18 01:55:39 2013 UTC

Some *DataReader improvements

* BFDDataReader: Add SetFD().
* BBufferDataReader: Derive from BAbstractBufferedDataReader.

----------------------------------------------------------------------------

############################################################################

Commit:      1f633814fa347b0bd822f683af731615df600347
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1f63381
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 18 02:11:01 2013 UTC

hpkg format: compress the whole heap

Instead of handling compression for individual file/attribute data we
do now compress the whole heap where they are stored. This
significantly improves compression ratios. We still divide the
uncompressed data into 64 KiB chunks and use a chunk offset array for
the compressed chunks to allow for quick random access without too much
overhead. The tradeoff is a limited possible compression ratio -- i.e.
we won't be as good as tar.gz (though surprisingly with my test
archives we did better than zip).

The other package file sections (package attributes and TOC) are no
longer compressed individually. Their uncompressed data are simply
pushed onto the heap where the usual compression strategy applies. To
simplify things the repository format has been changed in the same
manner although it doesn't otherwise use the heap, since it only stores
meta data.

Due to the data compression having been exposed in public and private
API, this change touches a lot of package kit using code, including
packagefs and the boot loader packagefs support. The latter two haven't
been tested yet. Moreover packagefs needs a new kind of cache so we
avoid re-reading the same heap chunk for two different data items it
contains.

----------------------------------------------------------------------------

############################################################################

Commit:      18b19ba49d6a9f234818042c6b62c6661a0dc247
URL:         http://cgit.haiku-os.org/haiku/commit/?id=18b19ba
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 18 23:00:36 2013 UTC

ZlibCompressor: Allow setting the compression level

----------------------------------------------------------------------------

############################################################################

Commit:      796343ed73b1707ed97e91e22b72b8ca81bcdbad
URL:         http://cgit.haiku-os.org/haiku/commit/?id=796343e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 18 23:07:08 2013 UTC

Allow specifying the compression level for package creation

* Introduce BPackageWriterParameters which comprises all parameters
  for package creation, currently flags and compression level. Such an
  object can be passed to BPackageWriter::Init() and is passed on to
  PackageWriterImpl and WriterImplBase.
* PackageFileHeapWriter: Add compressionLevel property and pass the
  value on to ZlibCompressor.
* package add/create: Add options -0 ... -9 to specify the compression
  level to be used.

----------------------------------------------------------------------------

############################################################################

Commit:      06f5437c21c0c849d0cbd16a2a7444182c50ba01
URL:         http://cgit.haiku-os.org/haiku/commit/?id=06f5437
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 18 23:48:53 2013 UTC

Add HAIKU_PACKAGE_COMPRESSION_LEVEL build variable

It allows to control the compression level used for package creation
and update. The default (9) is *very* slow, so developers may want to
use a smaller level during the regular development process to keep
turn-around times low.

----------------------------------------------------------------------------

############################################################################

Commit:      96af1d283c9e144a5c0596ab1200dbc5abfccf9e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=96af1d2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 19 00:57:41 2013 UTC

PackageFileHeapWriter: Small style fix

----------------------------------------------------------------------------

############################################################################

Commit:      172f25fdda75f2ab92089511c89f0ee37483504e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=172f25f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 19 00:58:08 2013 UTC

PackageWriterImpl: Fix reading the package-info in update mode

----------------------------------------------------------------------------

############################################################################

Commit:      520a7a76c7c6528f654a4e9a6d0d291df63e7532
URL:         http://cgit.haiku-os.org/haiku/commit/?id=520a7a7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 19 02:30:56 2013 UTC

PackageFileHeapAccessorBase: small refactoring

* Pull method DecompressChunkData() out of ReadAndDecompressChunkData()
  for potential reuse.
* Also fix/improve some error output strings.

----------------------------------------------------------------------------

############################################################################

Commit:      b05413ed784e0a3822a2549dda19c799e232fa9e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b05413e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 19 02:32:39 2013 UTC

PackageFileHeapWriter: Fix update case

* Pull _UnwriteLastPartialChunk() out of Reinit() for reuse.
* _UnwriteLastPartialChunk(): fPendingDataSize wasn't set.
* _PushChunks(): Some simplifications for clarity.
* ChunkBuffer/RemoveDataRanges(): Use data reading and decompression
  methods provided by our base class instead of duplicating the
  implementation.
* RemoveDataRanges():
  - _FlushPendingData() before starting, so we don't ignore the pending
    data and _UnwriteLastPartialChunk() when done, so a partial chunk
    is read back into the pending data buffer.
  - fUncompressedHeapSize wasn't reset before the main processing loop,
    thus resulting in an erroneous size later on.

----------------------------------------------------------------------------

############################################################################

Commit:      d03ac965a23ea05a1a771a4e80c5d15f7f042ce4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d03ac96
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 19 08:44:11 2013 UTC

ReaderImplBase: Fix gcc 4 build

----------------------------------------------------------------------------

############################################################################

Commit:      88adb4a8e7d20cd9b2a1b8471c3b0391323a9324
URL:         http://cgit.haiku-os.org/haiku/commit/?id=88adb4a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 19 08:47:44 2013 UTC

PackageFileHeapWriter: Add error message

... in case compression fails unexpectedly.

----------------------------------------------------------------------------

############################################################################

Commit:      5d3de03be532ae60e82fa3d059683c2e082c7af0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5d3de03
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 19 08:55:14 2013 UTC

libroot_build: Fix fs_read_attr() in fs_attr_untyped.cpp

* With a specified buffer size smaller than the attribute size the
  function would fail with ERANGE on Linux although it should just read
  as much as possible. Now we always read into our temporary data buffer
  with the full buffer size.
* Fix return value in case pos is > 0. pos must be subtracted from the
  bytes actually read.

----------------------------------------------------------------------------

############################################################################

Commit:      521545f7fbee52f5c7db523dc63100be8726ff72
URL:         http://cgit.haiku-os.org/haiku/commit/?id=521545f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 12:22:39 2013 UTC

Add padding in HPKG/HPKR headers

... so that the different alignment on 32 and 64 bit machines doesn't
change the layout.

----------------------------------------------------------------------------

############################################################################

Commit:      1559102fe7248296e5bb257d63123c0808d01d9d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1559102
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 12:25:31 2013 UTC

ReaderImplBase: Fix strings subsection validity check

A strings section with 0 strings is still 1 byte long. Also improve the
error output in the error case.

----------------------------------------------------------------------------

############################################################################

Commit:      14713507a31100b854d30e182de5cef52f1ca8ca
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1471350
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 12:45:13 2013 UTC

packagefs: Fix debug build

----------------------------------------------------------------------------

############################################################################

Commit:      5261923e877d1637aea41ab878af97d49d70fd69
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5261923
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 17:07:46 2013 UTC

Add dvprintf()

----------------------------------------------------------------------------

############################################################################

Commit:      760dee16d194b0248ee1d6e3b71e968bb774429c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=760dee1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 17:09:20 2013 UTC

packagefs: Add va-args version ERRORV() to DebugSupport

----------------------------------------------------------------------------

############################################################################

Commit:      2a6f1725c648a566ce51c4894b902a13ed4c11eb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2a6f172
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 17:10:09 2013 UTC

packagefs: Resolve error output TODOs

----------------------------------------------------------------------------

############################################################################

Commit:      bfa408d70a19a54976f211afc0fb9df014d2c1a4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bfa408d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 17:10:46 2013 UTC

packagefs: PackageData: Fix copy and paste error

----------------------------------------------------------------------------

############################################################################

Commit:      01c03710f0acd6384a3d98b09bcc1063d4f3f66d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=01c0371
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 17:30:54 2013 UTC

BuildHaikuPackage rule: Add grist to package info file

... to avoids clashes with equally named targets.

----------------------------------------------------------------------------

############################################################################

Commit:      64bb883062f91b5c21ec1003774391c1964e244e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=64bb883
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 17:37:40 2013 UTC

Support booting with a packaged boot loader

* Add new package haiku_loader.hpkg and move haiku_loader there. The
  package is built without compression, so that the stage 1 boot loader
  has a chance of loading it.
* Adjust the stage 1 boot loader to load the haiku_loader package and
  relocate the boot loader code accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      d59e0feb59b92ca19ecda2935369fd0fcc5a4f56
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d59e0fe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 18:15:59 2013 UTC

package: Suppress version mismatch errors where V1 is supported

* Add flags parameter to Init() of BPackageReader and friends.
* Introduce flag B_HPKG_READER_DONT_PRINT_VERSION_MISMATCH_MESSAGE and
  don't print a version mismatch error when given.
* package extract/list: Use the new flag.

----------------------------------------------------------------------------

############################################################################

Commit:      b814feabd7292f7024f559f5b2c50084b6eec733
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b814fea
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 20:54:59 2013 UTC

packagefs: PackageFile::DataAccessor: Avoid unnecessary locking

... in case of version 2 package files.

----------------------------------------------------------------------------

############################################################################

Commit:      c3bd329fa27d34588a31ec8c61f2a78e41b9c968
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c3bd329
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 22:36:51 2013 UTC

PackageFileHeapAccessorBase: Fix error output

----------------------------------------------------------------------------

############################################################################

Commit:      69a1f1f53f7167363b17eeba6141b92bd8dfd4d3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=69a1f1f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 20 22:41:31 2013 UTC

packagefs: Fix attribute indexing

Since the package nodes' attributes are indexed before the VFS has
accessed any of its nodes, the package wasn't open and reading the
attribute data would fail. We do now open the package explicitly in
UnpackingAttributeCookie::IndexAttribute(). Moreover, as an
optimization, we also open the package in Volume::_AddPackageContent(),
so the package file isn't repeatedly opened and closed as its nodes are
being registered.

----------------------------------------------------------------------------

############################################################################

Commit:      46122852f1dfbbf4bac6f5a634452ff90c5635ce
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4612285
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 21 17:42:57 2013 UTC

packagefs: Add caching for the package file heap reader

* ReaderImplBase:
  - Add virtual CreateCachedHeapReader() which can create a cached
    reader based on the given heap reader.
  - Rename HeapReader() to RawHeapReader() and add HeapReader() for the
    cached heap reader.
  - Add DetachHeapReader() to allow a clients to remove the heap
    reader(s) after deleting the ReaderImplBase object.
* packagefs:
  - Add CachedDataReader class, which wraps a given
    BAbstractBufferedDataReader and provides caching for it using a
    VMCache. The implementation is based on the IOCache implementation.
  - Use CachedDataReader to wrap the heap reader. For file data that
    means they are cached twice -- in the heap reader cache and in the
    file cache -- but due to the heap reader using a VMCache as well,
    the pages will be recycled automatically anyway. For attribute data
    the cache should be very helpful, since they weren't cached at all
    before.

----------------------------------------------------------------------------

############################################################################

Commit:      bc306e210fdad4d7c6d7fe2ecd17177627f0e503
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bc306e2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 21 21:20:51 2013 UTC

Declare some string constants actually const

----------------------------------------------------------------------------

############################################################################

Commit:      5dae1541d63974a6e2011553e9de484a0495414a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5dae154
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 21 21:21:06 2013 UTC

Add "source" package architecture

----------------------------------------------------------------------------

############################################################################

Commit:      47039b852eeebb91396d19e0f9313cf23bf535ee
URL:         http://cgit.haiku-os.org/haiku/commit/?id=47039b8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 21 22:20:13 2013 UTC

Package/repository file format: Add a minor version header field

* Add minor_version to hpkg_header and hpkg_repo_header and make
  heap_compression uint16.
* If the minor version of a package/repository file is greater than the
  current one unknown attributes are ignored without error. This allows
  introducing new harmless attributes without making the resulting files
  unreadable for older package kit versions.

----------------------------------------------------------------------------

############################################################################

Commit:      bac0bb2e8f4278b3d2b706e983bd8817aea09cc0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bac0bb2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 21 22:20:50 2013 UTC

RepositoryWriterImpl: Write the heap fields in the header

----------------------------------------------------------------------------

############################################################################

Commit:      4ffb9234137d9a173489d3158cf4180d07bf0ac3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4ffb923
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 23 19:07:08 2013 UTC

PackageFileHeapWriter::RemoveDataRanges(): Fix empty heap check

----------------------------------------------------------------------------

############################################################################

Commit:      5497f08e5e4dc400f4425519a87bbe388d68336b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5497f08
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 23 19:17:29 2013 UTC

hpkg attribute tags: use 7 bits for attribute ID

ATM the 6 bits suffice, but there isn't that much headroom.

----------------------------------------------------------------------------

############################################################################

Commit:      fe707a23fc6dc0bccb3e80201bf3e4146dcde74e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fe707a2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 23 19:29:18 2013 UTC

hpkg format: Add attributes for declaring settings files

Global and user settings files can be declared. For global ones an
update policy can be specified. If not specified, the settings file is
not included in the package, but created by the program (or user) later.
If an update type is specified, it defines what to do with the settings
file when updating the package to a newer version.

User settings files are never included in the package; they are always
created by the program or the user. If the package contains a template/
default settings file, it can be declared, but for informative purposes
only.

----------------------------------------------------------------------------

############################################################################

Commit:      a8de2761c70d71d57ee17373eafac58bfd6ac8b8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a8de276
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 23 20:55:02 2013 UTC

Move package attribute ID definitions to a separate file

... <package/hpkg/PackageAttributes.h>, which also defines other
properties (name and type) for each attribute. It does so via a macro
that the caller can define to generate whatever code is desired.

----------------------------------------------------------------------------

############################################################################

Commit:      79d5ddb77bd498e2975ceed8360c06cf709ff618
URL:         http://cgit.haiku-os.org/haiku/commit/?id=79d5ddb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 23 20:59:40 2013 UTC

ReaderImplBase: Verify that the attribute type matches

... the one expected for the respective attribute. Before it was
possible that e.g. a uint was read and then interpreted as a
const char*, if a string was expected for that attribute.

----------------------------------------------------------------------------

############################################################################

Commit:      6da0ce6ff206b501faa6972d44225c5d2e7469dc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6da0ce6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 23 21:16:21 2013 UTC

Move package info parser to its own file

----------------------------------------------------------------------------

############################################################################

Commit:      daa10fc3a5ab0fe0666ec8e72742cfa60df7e990
URL:         http://cgit.haiku-os.org/haiku/commit/?id=daa10fc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 23 21:23:26 2013 UTC

Move package info string builder to its own header

----------------------------------------------------------------------------

############################################################################

Commit:      bf88057b2677464ca46f3ab38333da024bfa7831
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bf88057
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 01:07:53 2013 UTC

ReaderImplBase: Fix copy and paste oversight

----------------------------------------------------------------------------

############################################################################

Commit:      8698ee4521d87bc735d569fcdf118b8738f8a9a8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8698ee4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 01:08:16 2013 UTC

BStringList: Declare Join() const

----------------------------------------------------------------------------

############################################################################

Commit:      c82776b2fabe0e546e213495e53cef22a8afb6a6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c82776b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 01:08:28 2013 UTC

BString: Add Split()

----------------------------------------------------------------------------

############################################################################

Commit:      0f4e11e75c244fd61da150011f1eae5fe79fc2a9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0f4e11e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 01:11:18 2013 UTC

hpkg format: Add attributes for declaring users and groups

----------------------------------------------------------------------------

############################################################################

Commit:      927e0708696896ff1f96f7113ebbad57a32e3300
URL:         http://cgit.haiku-os.org/haiku/commit/?id=927e070
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 01:38:37 2013 UTC

WriterImplBase: Some simplifications

... using the recently introduced _AddStringAttribute[IfNotEmpty]().

----------------------------------------------------------------------------

############################################################################

Commit:      c0ab14096139c4e72a501bc6e82ab92d0e9e48f3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c0ab140
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 21:46:22 2013 UTC

hpkg format: Add attribute for declaring post install scripts

----------------------------------------------------------------------------

############################################################################

Commit:      a11b0003ecee864899a0b54f8d403e0026ac3783
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a11b000
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 21:56:26 2013 UTC

packagefs: CachingPackageReader: Don't delete cached heap reader

... in destructor. After we create it, it belongs to the super class and
is destroyed by it.

----------------------------------------------------------------------------

############################################################################

Commit:      a3e070a7ff2a735abf31947289f8e73b7c388c8f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a3e070a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 22:20:55 2013 UTC

WriterImplBase: Add _AddStringAttributeList()

... and simplify some code by using it.

----------------------------------------------------------------------------

############################################################################

Commit:      38a0419a729fde595309fe504442e55adc3d0e4a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38a0419
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 23:01:05 2013 UTC

package info parser: improve parse error column numbers

Assume 4 column tab stops and compute the column numbers accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      a98dd49a6b8f7a267dbbade3694ec88072785f5e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a98dd49
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 23:10:25 2013 UTC

package info parser: allow escaping of new lines

So we can break long lines without changing the semantics.

----------------------------------------------------------------------------

############################################################################

Commit:      e2f30519ab5b526d1e5b603f847c4fc3d18af111
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e2f3051
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 24 23:55:36 2013 UTC

hpkg format: user big endian for chunk sizes

----------------------------------------------------------------------------

############################################################################

Commit:      3da422ad05c1cf00bf02707d3b1bd4accdc0c378
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3da422a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat May 25 00:38:52 2013 UTC

libroot_build: Fix issues with attribute FD for symlink

AttributeDescriptor: Don't use dup() directly. Check, if the given FD is
one we track and clone it respectively. This allows use with symlink FDs
which we have to fake on Linux (since symlinks cannot be opened). Fixes
extraction of packages containing symlinks with attributes.

----------------------------------------------------------------------------

############################################################################

Commit:      a196160c9ac91dd51968938c3d1d2c2e2f29c850
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a196160
Author:      Matt Madia <mattmadia@xxxxxxxxx>
Date:        Sat May 25 17:23:40 2013 UTC
Committer:   Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Commit-Date: Sat May 25 17:41:18 2013 UTC

On FreeBSD, "<malloc.h> has been replaced by <stdlib.h>"

----------------------------------------------------------------------------

############################################################################

Commit:      75c10de291a042a516805dc46a36b3d7f2890b0e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=75c10de
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun May 26 23:05:58 2013 UTC

libroot_build _kern_read_dir(): reset errno before readdir()

Since we're checking errno when readdir() didn't return an entry, we
need to reset it before, or we might see a spurious error value.

----------------------------------------------------------------------------

############################################################################

Commit:      badd403c5e5bb6f1e5fefd943dfea96e356caac8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=badd403
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon May 27 02:27:26 2013 UTC

Update grep package

----------------------------------------------------------------------------

############################################################################

Commit:      56b43eca036445983248a14b9c5343518d3cccb3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=56b43ec
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 28 00:44:13 2013 UTC

BPackageInfoContentHandler: Handle new attributes

Also add respective *Data constructors to BUser, BUserSettingsFileInfo,
and BGlobalSettingsFileInfo.

----------------------------------------------------------------------------

############################################################################

Commit:      b361d03f9384368625fd22108f2496807912b364
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b361d03
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue May 28 01:07:29 2013 UTC

haiku.hpkg package info: zlib is a separate package

----------------------------------------------------------------------------

############################################################################

Commit:      e63bdfec7505fe241e7845a487c6ba029d44fc81
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e63bdfe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed May 29 00:24:54 2013 UTC

Rename post_install dir to post-install

----------------------------------------------------------------------------

############################################################################

Commit:      30c2352188a17adfe1698a094b25c9ada9a687c9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=30c2352
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed May 29 22:19:40 2013 UTC

Adjust buildscript for gcc4 to configure with a sysroot.

----------------------------------------------------------------------------

############################################################################

Commit:      7ea6bb13059c8754fcd6a7594a826e09d0510bd9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7ea6bb1
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed May 29 22:21:25 2013 UTC

Add c++-libs to haiku_cross_devel.hpkg

----------------------------------------------------------------------------

############################################################################

Commit:      7b2016c8afac9fef49a2c78c119286691736db72
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7b2016c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu May 30 21:50:55 2013 UTC

Update libsolv package

----------------------------------------------------------------------------

############################################################################

Commit:      ba96552b6a796adbc66613492d4b6658b2e8ce16
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ba96552
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 31 20:37:13 2013 UTC

Support extracting archives to the packages we build

* BuildHaikuPackage rule: Create the script that contains the extraction
  commands.
* build_haiku_package: Add extractFile() function (stripped down version
  from build_haiku_image).

In build_haiku_image the functionality was mainly used to extract the
optional packages, which is no longer done. We still need it e.g. for
the Wifi firmware packages that want to be extracted.

----------------------------------------------------------------------------

############################################################################

Commit:      fa962e60082cdf103ebeaee07869749cdddee828
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fa962e6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 31 20:45:06 2013 UTC

build_haiku_package: Print some progress info

Remove the output in extractFile(), though. The extracted packages are
so small that it doesn't matter anymore.

----------------------------------------------------------------------------

############################################################################

Commit:      118028674c77ec4ba5725a097dfbc9fd99b181b8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1180286
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri May 31 22:31:37 2013 UTC

Fix reading attributes of directories

When reading an attribute of a directory there was no guarantee that the
underlying package would be open. When it wasn't reading an attribute
would fail, unless the attribute data were already cached. The reasons
for this are:
* UnpackingDirectory didn't forward the {Init,Uninit}VFS() calls to the
  underlying PackageDirectory.
* Only PackageFile was actually opening the package in InitVFS().

Now we forward the {Init,Uninit}VFS() calls in all cases -- even in
{Add,Remove}PackageNode(), when the active package node changes -- and
opening/closing the package is now done in
PackageNode::{Init,Uninit}VFS().

----------------------------------------------------------------------------

############################################################################

Commit:      d055934e36da802abd3958d0e7172bd5d666240a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d055934
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun  1 00:40:08 2013 UTC

QueryParser: Fix some debug macros

----------------------------------------------------------------------------

############################################################################

Commit:      10e9f49914cc9e447f8248126c28fa2bf08e9f3a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=10e9f49
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun  1 01:58:11 2013 UTC

QueryParser: Equation::Match(): Fix generic attribute case

Init size to the buffer size before passing it to
QueryPolicy::NodeGetAttribute(). Since size was 0 by default, we would
only read 0 length data.

----------------------------------------------------------------------------

############################################################################

Commit:      b23d504796788536d66b523a2b5a3359691b3b2b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b23d504
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun  1 02:04:25 2013 UTC

packagefs: UnpackingAttributeCookie: Open package

... when reading non-inline attribute data. Generally the package should
already have been opened by the PackageNode owning the attribute (in
InitVFS()), but that isn't the case for queries, which can read
attributes from entirely unsuspecting nodes.

Together with the QueryParser fix that should fix queries involving
non-indexed attributes.

----------------------------------------------------------------------------

############################################################################

Commit:      28fd71c58667bdf69bfd211dfaabb0fca945eb71
URL:         http://cgit.haiku-os.org/haiku/commit/?id=28fd71c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun  1 20:18:53 2013 UTC

Installer: CopyEngine: Remove some debug/uncommented code

----------------------------------------------------------------------------

############################################################################

Commit:      fb5f0bb1c75c2a7a41f8936d028ebaa7eb7e84d0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fb5f0bb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 12:37:31 2013 UTC

Installer: Move path string constants to new InstallerDefs.h/cpp

----------------------------------------------------------------------------

############################################################################

Commit:      a601eaa9e12f36ea05aeea5f2997c76bb591e2ad
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a601eaa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 12:43:02 2013 UTC

Installer: Remove "/boot/var" directory check

The PM Haiku Installer doesn't need support installing ancient Haiku
versions.

----------------------------------------------------------------------------

############################################################################

Commit:      c2be967eb9044dd6a57f8ce0f0fde28c3e2e8ab9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c2be967
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 13:16:26 2013 UTC

Installer: CopyEngine: Externalize decision making

* Add interface EntryFilter, an instance of which can be passed to the
  CopyEngine. The object is asked whether to copy entries/clobber
  directories.
* Move the _ShouldCopyEntry()/_ShouldClobberFolder() code to new
  WorkerThread::EntryFilter.

----------------------------------------------------------------------------

############################################################################

Commit:      e8eb6ae212738836c9a16c463c8aed3cdf23f72e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e8eb6ae
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 13:22:20 2013 UTC

Installer: WorkerThread::_PerformInstall(): get rid of goto

----------------------------------------------------------------------------

############################################################################

Commit:      348d9eac3b8a59123dcfa04848a42e304a15929d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=348d9ea
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 13:42:29 2013 UTC

Installer: WorkerThread: Remove InstallerWindow dependency

* Move message constants to InstallerDefs.h.
* Determine the source and target partition ID already in
  InstallerWindow and pass those to WorkerThread instead of fiddling
  with menu items in _PerformInstall(). And instead of the window object
  pass a messenger to the constructor.

----------------------------------------------------------------------------

############################################################################

Commit:      ba6f7c8c42038755c9017ae014859d016b072580
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ba6f7c8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 14:16:45 2013 UTC

Installer: CopyEngine: Pass relative path to EntryFilter

... instead of the file name.

----------------------------------------------------------------------------

############################################################################

Commit:      f4953ba541417f59c4310ea6b6ccf68cb86a3258
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f4953ba
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 14:30:25 2013 UTC

Installer: WorkerThread::EntryFilter: Use path map

... instead of implicit comparisons.

----------------------------------------------------------------------------

############################################################################

Commit:      6c36ad168e98c010774f57970c7deb03e9b98403
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6c36ad1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun  2 17:11:39 2013 UTC

Installer: Restrict entry filter to files from the BFS volume

We generally want to skip the contents of the packagefs volumes (save
for the shine-through directories). That makes Installer usable again.
In what direction we want to develop it (e.g. integrate some PM support,
so that a subset of packages can be selected) needs further discussion.

----------------------------------------------------------------------------

############################################################################

Commit:      59e2e2f3a7a7deb5f68a552c5327e54949ed0e80
URL:         http://cgit.haiku-os.org/haiku/commit/?id=59e2e2f
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon Jun  3 22:24:37 2013 UTC

Adjust handling of package infos.

* add HAIKU_PACKAGING_ARCH, which is set to the target packaging 
  architecture
* introduce support for generic package infos, which are package infos
  that are the same for all architectures, except for the declaration
  of the package architecture itself
* move package info files underneath architecture-specific or generic
  folder

----------------------------------------------------------------------------

############################################################################

Commit:      02783d54bdb13f44e6d9d03e9f9ee206e7521872
URL:         http://cgit.haiku-os.org/haiku/commit/?id=02783d5
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon Jun  3 22:27:00 2013 UTC

Add new package haiku_cross_devel_wrapper.

* this package wraps the haiku_cross_devel package (i.e. it contains
  that package in /develop/cross)
* the wrapper package is meant to be installed into the system 
  hierarchy, from where haikuporter will fetch the contained package
  when needed

----------------------------------------------------------------------------

############################################################################

Commit:      eeddc9fd26f6f0eefec9fb16fda673111069340e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eeddc9f
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Jun  4 12:25:34 2013 UTC

Fix paths in haiku_cross_devel packages.

* since this is now meant to be installed into an architecture-specific
  (sysroot-)folder, we need to drop the architecture-specific subpaths

----------------------------------------------------------------------------

############################################################################

Commit:      c915f7bafad9adf64b928a37b37c9a994c57c183
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c915f7b
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Jun  4 15:16:01 2013 UTC

Fix haiku_cross_devel package(s).

* those packages need to be installed on any system that wants to build
  for the respective target architecture, so they need to have the
  package architecture 'any'
* adjust to not require 'haiku', as that isn't needed and wouldn't be
  available either
* use concatenation by macro to inject the target architecture into the
  provides definition

----------------------------------------------------------------------------

############################################################################

Commit:      25601cfaf7debf15be06b0eaac47fbc8da7ca57b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=25601cf
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Jun  4 15:16:47 2013 UTC

Minor fix: extend copyright in all package infos to 2013.

----------------------------------------------------------------------------

############################################################################

Commit:      872e7aa2a66c6d843335d42e6412e1236c445e19
URL:         http://cgit.haiku-os.org/haiku/commit/?id=872e7aa
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Jun  4 20:37:59 2013 UTC

Rename haiku_cross_devel packages.

* haiku_cross_devel is now haiku_cross_devel_sysroot
* haiku_cross_devel_wrapper is now haiku_cross_devel

----------------------------------------------------------------------------

############################################################################

Commit:      a532c573089b05f272107ed5620734671420891e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a532c57
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun  4 21:36:46 2013 UTC

Remove /boot/{apps,preferences} symlinks

And adjust all remained occurrence in the tree accordingly (->
/boot/common/{apps,preferences}).

----------------------------------------------------------------------------

############################################################################

Commit:      fa374ad4c33169338db9d1319e91601f9be25476
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fa374ad
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun  4 21:37:53 2013 UTC

Remove config.log files

----------------------------------------------------------------------------

############################################################################

Commit:      48581f98911f829490237745506a0f06da5645c0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=48581f9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun  4 21:59:37 2013 UTC

FHaikuPackageGrist: Avoid potential package name clashes

----------------------------------------------------------------------------

############################################################################

Commit:      a6e03f41d2fecea709a4419eb002dca0a3af48db
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a6e03f4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun  4 22:00:47 2013 UTC

find_directory(): Fix B_{APPS,PREFERENCES}_DIRECTORY paths

----------------------------------------------------------------------------

############################################################################

Commit:      99380098107c8dacffc08207f6eca30b355eceb6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9938009
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun  4 22:18:23 2013 UTC

add_catalog_entry_attributes.sh: Remove optional directory

----------------------------------------------------------------------------

############################################################################

Commit:      0050b4b4521cdb9dee167ff687f426d3eea33ec5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0050b4b
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Jun  5 16:11:46 2013 UTC

Runtime loader: don't fall back to OS-ABI directories.

* when an executable with a different ABI is being loaded and some
  needed image isn't found, don't retry using the standard ABI folders
  of the system - those are now considered incompatible

----------------------------------------------------------------------------

############################################################################

Commit:      729c6333ad7b947c756ba61070c2b75540525b8e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=729c633
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Jun  5 16:31:13 2013 UTC

Runtime loader: rename compatibilitySubDir to abiSpecificSubDir.

----------------------------------------------------------------------------

############################################################################

Commit:      8944824d1c564229e7bc40ed32a727363306c4c8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8944824
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jun  5 22:08:31 2013 UTC

rm_attrs: Fix for parameters with whitespace

----------------------------------------------------------------------------

############################################################################

Commit:      4489c88b61bd4b70ff3a91d24ef5a0088e9c4691
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4489c88
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jun  5 22:16:28 2013 UTC

hpkg format: Generalize user/global settings file attributes

* For all identifiers: Rename global settings file to global writable
  file. We want to use the respective attribute also for other writable
  files, not only settings files.
* User settings file/global writable file info/attribute: Add
  isDirectory property/child attribute. This allows declaring global/
  user settings directories associated with the package.

----------------------------------------------------------------------------

############################################################################

Commit:      a266b57a9ac5ffcb1593511cd2a10aa2fb7c2f23
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a266b57
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jun  5 22:49:53 2013 UTC

ReaderImplBase: Handle new ...IS_WRITABLE_DIRECTORY attribute

----------------------------------------------------------------------------

############################################################################

Commit:      280b7cb63abaa3f6132a37a3ce7ad994f2ec7b52
URL:         http://cgit.haiku-os.org/haiku/commit/?id=280b7cb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 00:01:46 2013 UTC

libroot_build: Improve/fix get_path()

In fs_attr_generic() get_path() is used with a symlink FD, which didn't
work at all. Handle symlink descriptors explicitly now.

----------------------------------------------------------------------------

############################################################################

Commit:      01176bd9449695959a87ceb51e41a1c292b5716f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=01176bd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 00:03:16 2013 UTC

Add basic BUuid class

ATM it's only able to generate random UUIDs.

----------------------------------------------------------------------------

############################################################################

Commit:      bc96e8f30cd209672c33293f0e5c71e81027d3e2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bc96e8f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 00:27:48 2013 UTC

Add more robust generic attribute emulation variant

The new configure option "--use-xattr-ref" enables an xattr assisted
variant of the generic attribute emulation. Instead of using the inode
ID of a node to identify its attribute directory, we use a reasonably
unique random 128 bit number, which we generate and attach as an
attribute to the node. This way, when a node changes its inode ID
(defragmentation?) or the inode ID of a removed node with a left-over
attribute directory is reused, attributes won't get mixed up.

The old method is still used for symlinks (since on Linux only
priviledged users can write attributes on symlinks), but those usually
only have a rather boring BEOS:TYPE attribute, so mix-ups wouldn't be
that problematic anyway.

----------------------------------------------------------------------------

############################################################################

Commit:      69de9c6e3c1daea8faa57c9351d84e671a64222d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=69de9c6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 13:17:42 2013 UTC

MIME DB build: Fix name clashes

* Make grist for subtype source files unique.
* Our MakeLocate only appends to LOCATE, so we have to call it before
  ResComp, if we want a different location.

----------------------------------------------------------------------------

############################################################################

Commit:      52a43b19ff0924d7320ffea06f6902b3eda7e504
URL:         http://cgit.haiku-os.org/haiku/commit/?id=52a43b1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 13:31:03 2013 UTC

MakeLocate rule: Avoid directory dependency, if already located

Only create the directory dependency for a target, if that's where the
target will actually end up. If it has already been located before, do
nothing.

----------------------------------------------------------------------------

############################################################################

Commit:      3b8f8e0caa14ee1f6f55f08d562de1bb800871e9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3b8f8e0
Author:      Siarzhuk Zharski <zharik@xxxxxx>
Date:        Sat May 25 14:00:53 2013 UTC
Committer:   Ingo Weinhold <ingo_weinhold@xxxxxx>
Commit-Date: Fri Jun  7 21:39:57 2013 UTC

ICNS/JPEGTranslators: add Jamfile deps to lib headers

* Add Jamfile dependency to LIBPNG headers on icns_png.c;
* Add Jamfile dependency to LIBJPEG headers on JPEGTranslator.cpp
  be_jdatasrc.c

Conflicts:
        src/add-ons/translators/jpeg/Jamfile

----------------------------------------------------------------------------

############################################################################

Commit:      3dadb47f21b32879080dd4baa39a6b0cf49d270a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3dadb47
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 22:04:45 2013 UTC

boot loader tarfs: Declare dependency to zlib package

----------------------------------------------------------------------------

############################################################################

Commit:      c80c7982c8fe0b371196e870a94a910258652891
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c80c798
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 22:18:28 2013 UTC

boot packagefs: Fix zlib dependency declaration

----------------------------------------------------------------------------

############################################################################

Commit:      444b035d5d092de6b04cbb08706ba543d962993c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=444b035
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 22:20:24 2013 UTC

BuildHaikuPackage rule: Locate extract script

Missed that when adding the script. Therefore it would be created in the
current directory and when building multiple packages concurrently the
script would be overwritten.

----------------------------------------------------------------------------

############################################################################

Commit:      beeaf379b101ed72a6d57941703d0638bd088deb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=beeaf37
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jun  7 22:55:12 2013 UTC

HaikuDevel: Fix copying the build feature headers

We have to use actual targets that cause the respective download and
extract the packages. Otherwise the build fails when the packages
haven't been extracted yet.

----------------------------------------------------------------------------

############################################################################

Commit:      a1832a0e834915517b865fd83ee35ade883be468
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a1832a0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 11 13:23:18 2013 UTC

<resolv.h>: Make self-contained

----------------------------------------------------------------------------

############################################################################

Commit:      7b6d45c94231c30cd3ce280307269b5dc2367e22
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7b6d45c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 11 17:34:47 2013 UTC

LibsolvSolver: Use Solvable only where necessary

repo_internalize() apparently reorganizes the storage for Solvable
objects so that our fSolvablePackages and fPackageSolvables maps could
contain invalid pointers. Now the maps use the solvables' ID instead.
Also use the IDs instead of the Solvable objects in most other places,
which in some cases even simplifies the code a bit.

----------------------------------------------------------------------------

############################################################################

Commit:      c625c5fd36fe4894ec9967db23e09f4edc4cc1f3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c625c5f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jun 12 12:38:16 2013 UTC

<langinfo.h>/<select.h>: don't use C++ comments

----------------------------------------------------------------------------

############################################################################

Commit:      c46f5969b71728cfdb2d80f753a6d02dc2ceb39c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c46f596
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 13:08:57 2013 UTC

Update zlib, gettext, libiconv, ncurses packages

----------------------------------------------------------------------------

############################################################################

Commit:      5ce950ae760a295b454c15671ca040f8918c9ea2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5ce950a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 14:42:36 2013 UTC

BuildFeature: missing ";"

----------------------------------------------------------------------------

############################################################################

Commit:      ebb78dd9b70b96e75a2763014c579e3973f3179b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ebb78dd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 14:43:40 2013 UTC

Update openssl package

Also use the new build feature rules

----------------------------------------------------------------------------

############################################################################

Commit:      178da21ad1d5d80be61167ab264aeab773b48cb9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=178da21
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 15:07:19 2013 UTC

Update icu package

Also use the new build feature rules.

----------------------------------------------------------------------------

############################################################################

Commit:      e97e4b74a062e577778a8012673e95290bb18dea
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e97e4b7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 16:46:34 2013 UTC

Update glu and mesa package

Also use the new build feature rules.

----------------------------------------------------------------------------

############################################################################

Commit:      14d5e307b44211346880ca8255162dbd5dd773ff
URL:         http://cgit.haiku-os.org/haiku/commit/?id=14d5e30
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 19:31:44 2013 UTC

Update ffmpeg package and its requirements

Also make use of new build feature rules.

----------------------------------------------------------------------------

############################################################################

Commit:      e2c74e414c67463c2feadce97df7b2c2eb8a25f7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e2c74e4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 19:34:05 2013 UTC

Remove unused MikMod build feature

----------------------------------------------------------------------------

############################################################################

Commit:      29f8805f6c70f1c819eb58ac2220647d8e40d6e7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=29f8805
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 20:06:29 2013 UTC

Update freetype package

Also use the new build feature rules

----------------------------------------------------------------------------

############################################################################

Commit:      e9f440fdfdc4a2872dca8cb12928c6c3a9f118d8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e9f440f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 20:48:00 2013 UTC

Update libpng package

Also make use of new build feature rules

----------------------------------------------------------------------------

############################################################################

Commit:      e4bd005daf2e3e3c7cb4dfa38e9bde7a578f08e0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e4bd005
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:10:37 2013 UTC

Update jpeg package

* Also make use of new build feature rules.
* Since the hacky long_jump_buffer field has been removed from the
  jpeg_error_mgr struct in the new package, the structure is now
  wrapped in the JPEGTranslator code to achieve the same behavior.

----------------------------------------------------------------------------

############################################################################

Commit:      1d14716b9f03839beb3271886b1e32b6aa450e41
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1d14716
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:23:35 2013 UTC

Some renaming of zlib related jam variables

----------------------------------------------------------------------------

############################################################################

Commit:      a20eb7f497fd5789baee973d9f381d155c231951
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a20eb7f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:33:23 2013 UTC

Update libsolv package

Also make use of new build feature rules.

----------------------------------------------------------------------------

############################################################################

Commit:      12629b106ee37df7495eb9e3b463bd2119762867
URL:         http://cgit.haiku-os.org/haiku/commit/?id=12629b1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:46:43 2013 UTC

Update expat package

----------------------------------------------------------------------------

############################################################################

Commit:      de2188e9647102dd73933c219589481ae3871e01
URL:         http://cgit.haiku-os.org/haiku/commit/?id=de2188e
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Jun 14 14:04:26 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/7824

Fix #7824: failure to build a cross-compiler on Haiku.

* force creation of a cross-compiler for both gcc2 and gcc4 when
  building on Haiku (by suffixing the build and host machine with
  '_buildhost')
(cherry picked from commit df69e209bbacd07fdfea9d9efcfc8e1c0dfedaa0)

Conflicts:
        build/scripts/build_cross_tools_gcc4

----------------------------------------------------------------------------

############################################################################

Commit:      49f8422a0dfa93243c407350a5795fcc6ddcd611
URL:         http://cgit.haiku-os.org/haiku/commit/?id=49f8422
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Jun 14 14:07:06 2013 UTC

Remove whole sys-include folder when cross-compiler has been built.

* at least for gcc2, we used to leave the 'os' subfolder in there,
  which may have caused problems when Haiku's headers have changed
  since the last time the compiler was built.
(cherry picked from commit 92bb2fb33e2d0f4aa766be095057fe63ff17bc8e)

----------------------------------------------------------------------------

############################################################################

Commit:      46792e599765a3328bbced7fd1ce4651b5b3382b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=46792e5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 15 21:03:05 2013 UTC

Update basic development packages

----------------------------------------------------------------------------

############################################################################

Commit:      8d1a9545a9c775824176fa8bf8dc6d57fc3337d4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8d1a954
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 16 01:54:50 2013 UTC

Update apr[_util], be_book, bepdf, jam packages

----------------------------------------------------------------------------

############################################################################

Commit:      0ac19e7d423e3325f383661df30de0da265dc46b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0ac19e7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 17 17:18:05 2013 UTC

Update several packages

* bzip2
* ca_root_certificates
* cdrtools
* cmake
* ctags
* curl
* cvs
* doxygen
* freetype
* git
* groff
* libsolv
* man
* nano
* readline
* sqlite
* python

----------------------------------------------------------------------------

############################################################################

Commit:      98c399b8c8027ac334173d0ec4a72b4c3453629a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=98c399b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 17 19:06:31 2013 UTC

Update packages keymapswitcher, libedit, libxml2, libpcre

----------------------------------------------------------------------------

############################################################################

Commit:      676cc5aafe96a84f9fc452490ec56547264ec9d7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=676cc5a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 17 19:22:28 2013 UTC

Update packages mercurial, mkdepend

----------------------------------------------------------------------------

############################################################################

Commit:      e31d588184b83bb5cc7a1a527b5ef35c5af8a78f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e31d588
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 18 03:06:54 2013 UTC

Update several packages

* neon
* openssh
* p7zip
* pe
* subversion
* tar
* timgmsoundfont
* wonderbrush

----------------------------------------------------------------------------

############################################################################

Commit:      7f453e3b5f7dbfa8b056507086c3983ed5bba8b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7f453e3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 18 09:29:00 2013 UTC

Update packages vision, wpa_supplicant, wqy_microhei, yasm

----------------------------------------------------------------------------

############################################################################

Commit:      56c3ef1d732569b59024d6f326c8c1c4ff803b7d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=56c3ef1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 18 09:32:23 2013 UTC

Disable xz-utils optional package for gcc 2

----------------------------------------------------------------------------

############################################################################

Commit:      01293f6a5dcb826918cf4f13e71c3ac9801ff46e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=01293f6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 18 09:40:12 2013 UTC

OptionalPackages: fix syntax errors

----------------------------------------------------------------------------

############################################################################

Commit:      b6163fd2aea49172136e6aabebbfb6682fbf1fa6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b6163fd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jun 18 09:57:29 2013 UTC

Update openssh package

----------------------------------------------------------------------------

############################################################################

Commit:      2551c12bec0f67a667864aae6892a2ad921928ec
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2551c12
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jun 19 03:07:27 2013 UTC

Update wonderbrush package

----------------------------------------------------------------------------

############################################################################

Commit:      b4dc51b39a386ce40c37df5c28c9b1540965e5f3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b4dc51b
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Jun 23 09:45:38 2013 UTC

Fix behaviour of towlower(), towupper() and towctrans():

* all those functions need to return the given wc unchanged in case of
  error, not 0
* towctrans() didn't actually look at the requested transition, but 
  always acted as if _ISlower was given

----------------------------------------------------------------------------

############################################################################

Commit:      51bce887cd38b778c88e083c2d7ec21203caccfa
URL:         http://cgit.haiku-os.org/haiku/commit/?id=51bce88
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Jun 23 14:43:23 2013 UTC

Fix behaviour of localtime(), gmtime() and mktime().
    
* In case the locale backend could not be loaded, these functions (and
  their reentrant counterparts) just returned an error. So we reactivate
  parts of the BSD-/Olson-implementation in localtime_fading_out.c in
  order to use them as fallback.
* Cleanup localtime_fading_out.c (remove a lot of unused cruft).

----------------------------------------------------------------------------

############################################################################

Commit:      ece582547a43df2c2009900ac638fecb97c71d9c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ece5825
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Jun 23 15:01:12 2013 UTC

Improve robustness of asctime() and asctime_r().

* Return NULL and set EINVAL if the given tm pointer is NULL. This 
  isn't mandated by the POSIX base specs, but it just makes sense.

----------------------------------------------------------------------------

############################################################################

Commit:      105511275e00602f982f593afea9f65c6bd075e9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1055112
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 01:41:36 2013 UTC

Move PUuid from shared to support

----------------------------------------------------------------------------

############################################################################

Commit:      535207ae9a3e759ac960379905a5e1661174eb7c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=535207a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 03:52:07 2013 UTC

BPoseView::AddPosesTask(): fix count checks

In case GetNextDirents() returned an error, the wrong blocks were
executed.

----------------------------------------------------------------------------

############################################################################

Commit:      2752612bc60b08174c98181b33b7be3a7b93c3e3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2752612
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 03:52:45 2013 UTC

BMergedDirectory::GetNextDirents(): fix end-of-list return value

----------------------------------------------------------------------------

############################################################################

Commit:      5fa3519dece47e6f9b519e56df643e52642b2fa6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5fa3519
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 08:28:12 2013 UTC

BString::Private: Add IsShareable()

----------------------------------------------------------------------------

############################################################################

Commit:      62b0b64124aa1eb9007ecbeae69938e99aeae4d6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=62b0b64
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 08:30:08 2013 UTC

BStringList::Add(): fix ref counting problem

Handle the case that the private data of the given string is not
shareable.

----------------------------------------------------------------------------

############################################################################

Commit:      6ca95bd81343ac9be3836d112cf5e079a6e6ff9f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6ca95bd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 11:46:56 2013 UTC

PathMonitor.cpp: some style cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      ad1875fd705fe89064bcc91788ab4a05d14bf59d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ad1875f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 11:48:21 2013 UTC

BPathMonitor: use pthread_once for initialization

----------------------------------------------------------------------------

############################################################################

Commit:      77ca66cdb7b44669fc03e80e084234bee21bfd0e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=77ca66c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 11:59:22 2013 UTC

BPathMonitor: make the node watching mechanism configurable

Add inner class BWatchingInterface and method SetWatchingInterface().
This abstracts the calls to watch_node() and stop_watching(), thus
making it possible to use the path monitor in Tracker.

----------------------------------------------------------------------------

############################################################################

Commit:      ddd775f5ac1bf7dee15dd492500b50b935b71935
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ddd775f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 20 12:58:34 2013 UTC

BPoseView::FSNotification(): fix issue in debug build

----------------------------------------------------------------------------

############################################################################

Commit:      3209bc40c523d63e98d635ae302df6bece0966d3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3209bc4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 22 11:41:48 2013 UTC

BPathMonitor: PathHandler::_NotifyTarget(): simplify

* Add optional entry_ref return parameter to _HasFile().
* Simplify _NotifyTarget() by using _HasDirectory() and _HasFile().

----------------------------------------------------------------------------

############################################################################

Commit:      8d572c926432f2e29b3ffe88576a64ba731772a4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8d572c9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 22 14:40:32 2013 UTC

Add class NotOwningEntryRef

A entry_ref subclass that avoids cloning the entry name.

----------------------------------------------------------------------------

############################################################################

Commit:      7b198d812e45dfdaf08d5660fec27b3b4acf2a6f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7b198d8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 23 11:01:09 2013 UTC

B_WATCH_FOLDERS_ONLY -> B_WATCH_DIRECTORIES_ONLY

Stick to the nomenclature generally used in the public API.

----------------------------------------------------------------------------

############################################################################

Commit:      38afe232de0aba455fb21897ac8a739dd5793e52
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38afe23
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 23 11:12:38 2013 UTC

BPathMonitor: pass BMessenger by reference

----------------------------------------------------------------------------

############################################################################

Commit:      cb4a05cfdf59c3645e0e09e3cf154204e1a28c41
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cb4a05c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jun 24 08:52:07 2013 UTC

Missed B_WATCH_FOLDERS_ONLY occurrence

----------------------------------------------------------------------------

############################################################################

Commit:      3e8daeb7bc9c99f4858c072638b11f8fc9c7c220
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3e8daeb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 27 19:13:08 2013 UTC

Add BMessenger::HashValue()

----------------------------------------------------------------------------

############################################################################

Commit:      1eda8517f126fed1af44d199a9c06d6f4584ac8d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1eda851
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 27 19:14:11 2013 UTC

BOpenHashTable: Add IsEmpty()

----------------------------------------------------------------------------

############################################################################

Commit:      0d603ac65ca118bfc02ea8ec34ef74f93c5fc956
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0d603ac
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 27 19:21:42 2013 UTC

Fix node monitoring slot accounting for stop_watching()

NodeMonitorService::RemoveUserListeners() didn't decrement
io_context::num_monitors when removing a listener, so limit checks
would be off afterwards.

----------------------------------------------------------------------------

############################################################################

Commit:      8c974aa8006f2f33f6b14563bda5a14f5bcc412d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8c974aa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 27 19:22:02 2013 UTC

node monitor: add TODO regarding the syscalls

----------------------------------------------------------------------------

############################################################################

Commit:      cc4d194aeb41c48a4f7b7d00e3715f2f65a8af2c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cc4d194
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 27 19:37:08 2013 UTC

Add test suite for BPathMonitor

749 / 1504 tests fail

----------------------------------------------------------------------------

############################################################################

Commit:      04382d496e445d90a3aab7c8752ee9cb59825035
URL:         http://cgit.haiku-os.org/haiku/commit/?id=04382d4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 27 19:46:29 2013 UTC

BPathMonitor: rewrite

This resolves all issues the test suite uncovered. It should also deal
with hard links correctly, though that hasn't been tested. Still
unsupported are:
* changes due to mounting/unmounting a volume,
* tracking of symlinks in the path components.

----------------------------------------------------------------------------

############################################################################

Commit:      c143884fdf03ec3a8b7a89c88baa477f8629395c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c143884
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 27 19:54:43 2013 UTC

Use incorrect use of BPathMonitor in input/midi/net server

The B_ENTRY_* constants aren't valid watch flags.

----------------------------------------------------------------------------

############################################################################

Commit:      b5b9388a28b0d3af1993145f34833ce77015151c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b5b9388
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 29 11:42:00 2013 UTC

Add C++ API for driver settings

Copied from the userlandfs utility classes, adjusted coding style, did
some renaming and small interface changes.

----------------------------------------------------------------------------

############################################################################

Commit:      e19f9091cd5c744b6bd3fe5f7f16a8eb56e6ef12
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e19f909
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 29 11:44:08 2013 UTC

BPathMonitor: add "from path" to B_ENTRY_MOVED notifications

----------------------------------------------------------------------------

############################################################################

Commit:      de85051c81a74f82d86cc82ec25ead5374a83844
URL:         http://cgit.haiku-os.org/haiku/commit/?id=de85051
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 29 11:58:10 2013 UTC

BPoseView::AttributeChanged(): additional check in icon case

Model::AttrChanged() requires the model to be open and so does
IconCache::IconChanged(), so add the check. Not sure if the block is
ever executed now (or ever worked before). This does at least prevent
asserts being triggered when compiled with debugging enabled.

----------------------------------------------------------------------------

############################################################################

Commit:      1c29b26e7c7eb94ee125315eca5a94265f613420
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1c29b26
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 29 12:34:19 2013 UTC

Add virtual directory feature to Tracker

Similar to stored queries, files of the virtual directory type behave
like directories -- i.e. they open in a list-mode Tracker window and
show up as an item with submenu in navigation menus. The file itself is
a plain text file in driver settings format. It can have an arbitrary
number of "directory" entries, which specify the paths of (actual)
directories for which the virtual directory provides a merged view. The
view will not show duplicate entries. For non-directory entries the
first one encountered (according to the order the directory paths are
specified in the file) will be shown. A subdirectory entry will again
behave like a virtual directory.

The support in Tracker isn't perfect yet. I'm afraid major refactoring
would be necessary to get it there.

The virtual directory file type uses a differently colored version of
the folder icon. Alternatives welcome.

----------------------------------------------------------------------------

############################################################################

Commit:      dbd97804ea0ef2e690880db13424a02fee4478f1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dbd9780
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 29 12:35:16 2013 UTC

SetType rule: add optional type parameter

If not specified the executable MIME type is used as before.

----------------------------------------------------------------------------

############################################################################

Commit:      26ea70667a0c3c6274e6bbe91646a74b59a9e8b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=26ea706
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 29 12:57:56 2013 UTC

Deskbar: use a virtual directory for the user-configurable menu

* Deskbar now uses ~/config/settings/deskbar/menu_entries for its menu,
  falling back to /system/data/deskbar/menu_entries, when the former
  doesn't exist. The latter always exists and is a virtual directory
  merging the deskbar/menu subdirectories of ~/config/settings/ and
  <any installation location>/data/. So, if a package provides a
  deskbar menu symlink, it is added automatically when the package is
  activated. The user can add own menu items by putting stuff into
  ~/config/settings/deskbar/menu/, only use their own organization by
  symlinking it to menu_entries, or do fun stuff by making menu_entries
  a customized virtual directory.
* HaikuImage: No longer create any deskbar menu symlinks in the user's
  settings directory. Instead add them to the Haiku package.
* OptionalPackages: At least for the optional packages that do have
  hpkgs, no longer create deskbar menu symlinks in the user's settings
  directory.
* Move all Deskbar settings files to ~/config/settings/deskbar/ and
  drop the "Deskbar_" prefix.

----------------------------------------------------------------------------

############################################################################

Commit:      94307089f9388a229705cde79465b9b319033f62
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9430708
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 30 09:49:40 2013 UTC

Update packages ffmpeg, openssh, p7zip

----------------------------------------------------------------------------

############################################################################

Commit:      2cf916cbe2e43b8e562b87f43ba8b69584d5c785
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2cf916c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jun 29 16:28:06 2013 UTC

ExpanderRules: Coding style update

Also makes the ExpanderRule getters const. No other functional change.

----------------------------------------------------------------------------

############################################################################

Commit:      301f4b463a2125f77ed0acfe708050da9cc67368
URL:         http://cgit.haiku-os.org/haiku/commit/?id=301f4b4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 30 11:29:48 2013 UTC

Expander: also read rules from data directories

* ExpanderSettings: Use a settings directory "expander" and rename
  settings file to "settings".
* ExpanderRules: Read expander rules from "rules" files in the settings
  directory, then from files in expander/rules subdirectories of the
  installation location data directories, and finally add the built-in
  rules. This allows packages to provide expander rules (as already
  done by the p7zip package).
* OptionalPackages: Remove AddExpanderRuleToHaikuImage invocations.
* ImageRules: Remove Expander rule file related rules.

----------------------------------------------------------------------------

############################################################################

Commit:      2a24174d9be832990bf61ab6f8ed04879383396f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2a24174
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 30 11:46:56 2013 UTC

Clock: TOffscreenView: small cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      4c851c295dedb069b942ef8a9964c2680d9aadab
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4c851c2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 30 11:51:49 2013 UTC

Clock: fix crash when resources could not be loaded

----------------------------------------------------------------------------

############################################################################

Commit:      207389a06042e383ae5e15f37adda190e1e04ab6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=207389a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 30 12:05:22 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9843

BResources::SetTo(): try opening read-only on error

Fixes #9843.

----------------------------------------------------------------------------

############################################################################

Commit:      ff2e520912416877692e36bb130608d1a92df078
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ff2e520
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 30 16:59:11 2013 UTC

Remove the old "CVS" package rules

... and all their invocations.

----------------------------------------------------------------------------

############################################################################

Commit:      5a7d7bc5ddf4ca5ec9797e24f07f1b313eed4e8e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5a7d7bc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jun 30 17:01:37 2013 UTC

Remove *Kit pseudo targets from root Jamfile

----------------------------------------------------------------------------

############################################################################

Commit:      178d2f9fb9b9c8d03bd220e5be0564b0bc74ff02
URL:         http://cgit.haiku-os.org/haiku/commit/?id=178d2f9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  1 11:26:29 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9846

Expander: create settings directory, if necessary

Fixes #9846.

----------------------------------------------------------------------------

############################################################################

Commit:      8d5ae262dc8bb1c3912dd0a717628065804df2bb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8d5ae26
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  1 11:54:56 2013 UTC

Add MIME type for Haiku packages

Doesn't have an icon yet (hint, hint! :-)).

----------------------------------------------------------------------------

############################################################################

Commit:      4f82f6fa7225e5622544bc205e55da4c7ad33566
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4f82f6f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  1 11:55:16 2013 UTC

Add Expander rule for Haiku package

----------------------------------------------------------------------------

############################################################################

Commit:      c09ec54a59c4514e55e256a2fcfc65ee5852060f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c09ec54
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  1 12:17:51 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9845

Fix MIME type creation error

DatabaseLocation::OpenOrCreateType(): BNode::WriteAttr() returns the
number of bytes written, not just an error code., so we erroneously
reported an error on success.

Fixes the first part of #9845.

----------------------------------------------------------------------------

############################################################################

Commit:      a85e46496d237d2d8cbc980b120e5b2090e507c0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a85e464
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jul  3 21:13:09 2013 UTC

package_repo: fix printf() format strings

----------------------------------------------------------------------------

############################################################################

Commit:      87e22aa8650b8704339cb7707d49719802374c5b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=87e22aa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jul  3 21:14:31 2013 UTC

Make package_repo buildable for the build host

----------------------------------------------------------------------------

############################################################################

Commit:      2ebcd86dfe64e3c44c30350b3bc83228eeb2b8d4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2ebcd86
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jul  3 21:19:00 2013 UTC

Add configure option --host-only

When specified, the build will be configured for building build host
tools only.

----------------------------------------------------------------------------

############################################################################

Commit:      2f5551ec2a9570c010306a563a29b64e9dcd292b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2f5551e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 07:37:26 2013 UTC

libroot_build: make path normalization more robust

In case we don't have read permission for an ancestor directory, we try
to guess the path from the CWD.

----------------------------------------------------------------------------

############################################################################

Commit:      fd28164da0fc4bb89fc22731e0c63957d4aafe93
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fd28164
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 10:13:21 2013 UTC

Also allow source packages in a repository for any architecture

----------------------------------------------------------------------------

############################################################################

Commit:      3c3dd841a7d5686c53414606648eb0197a74f3cd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3c3dd84
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 10:36:55 2013 UTC

RepositoryWriterImpl::_AddPackage(): more info in error messages

----------------------------------------------------------------------------

############################################################################

Commit:      32086850f743723b9d818d6d434bddb85f5d90f3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3208685
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 10:51:26 2013 UTC

Add HPKG to Expander's supported types

----------------------------------------------------------------------------

############################################################################

Commit:      695a1b248a193f9a403d76d3b32666240ee76fcc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=695a1b2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 14:37:24 2013 UTC

repository writer: fix use of incorrect header size

The header size of the package file header was used, which resulted in
broken repository files.

----------------------------------------------------------------------------

############################################################################

Commit:      69f67e6de6fce8d776b8fdeacc2ad6c7c3d8dd91
URL:         http://cgit.haiku-os.org/haiku/commit/?id=69f67e6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 17:00:39 2013 UTC

BRepositoryInfo: make sure fInitStatus is always set correctly

----------------------------------------------------------------------------

############################################################################

Commit:      c8928835c5938e7bb2372f56042af4446f0dc73f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c892883
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 17:02:10 2013 UTC

BRepositoryCache: use BStandardErrorOutput

----------------------------------------------------------------------------

############################################################################

Commit:      6a7e3406bebcb6d4345df91064a734ef2887bd45
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6a7e340
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 17:03:03 2013 UTC

BSolverRepository: fix gcc 4 build

----------------------------------------------------------------------------

############################################################################

Commit:      383cd08d725850342bd5129a2106d53a591540e5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=383cd08
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 17:04:03 2013 UTC

BSolverRepository: add SetTo(const BRepositoryCache&)

----------------------------------------------------------------------------

############################################################################

Commit:      17d00ecd27a24c8d3039bb2672d93d83ccdbf672
URL:         http://cgit.haiku-os.org/haiku/commit/?id=17d00ec
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 17:06:57 2013 UTC

pkgman: RepositoryBuilder: add BRepositoryCache c'tor

----------------------------------------------------------------------------

############################################################################

Commit:      e85334022eac93e41fc48b61784336b25ea2bbc3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e853340
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul  4 17:20:14 2013 UTC

Repository file format: group attributes of a package

* Introduce new package attribute B_HPKG_ATTRIBUTE_ID_PACKAGE (valid
  only in a repository file) to group the attributes belonging to a
  package.
* BRepositoryContentHandler:
  - No longer derive from BPackageContentHandler.
  - Add hooks HandlePackage() and HandlePackageDone() that bracket the
    attributes for a package. This is more explicit and robust than
    handlers having to guess when one package ended and the next began.
* BRepositoryCache: Make use of BPackageInfoContentHandler. No need to
  duplicate the code for reading a package info from package info
  attributes.

----------------------------------------------------------------------------

############################################################################

Commit:      bf5b4b25c89566b65fb92634fd3be32e1755bfcd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bf5b4b2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 07:58:37 2013 UTC

package_repo list: add missing cases

It probably would be better to share code with package's list, since it
is very similar.

----------------------------------------------------------------------------

############################################################################

Commit:      001e9064e047cf92879745e62ef50727af7417d7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=001e906
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 07:59:34 2013 UTC

LibsolvSolver: missing include

----------------------------------------------------------------------------

############################################################################

Commit:      43d96d8f7a57abfa1af976bdecbe0ef29693a6d1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=43d96d8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 08:09:38 2013 UTC

haiku package-info: fix some provides/requires

----------------------------------------------------------------------------

############################################################################

Commit:      98c6dfa41e20c57edf426197a8d9aab6223a59fd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=98c6dfa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 08:51:42 2013 UTC

Switch build system from optional package to repositories

* Build libsolv and the dependency solver part of the package kit for
  the build platform.
* Add build tool get_package_dependencies. Given a list of package files
  and a list of repository files it determines the additional packages
  that need to be retrieved from the repositories and prints their URLs.
* Add rules to work with external repositories in the build system
  (build/jam/RepositoryRules):
  - PackageRepository declares an external repository with all its
    packages. The URL of the repository file isn't specified. It is
    computed from a given base URL and the SHA256 hash of the list of
    package files.
  - GeneratedRepositoryPackageList generates a file containing the file
    names of all packages in a repository.
  - IsPackageAvailable returns whether a package is available in any
    repository.
  - PackageURL returns the URL for a package.
* Declare the HaikuPorts repository for x86_gcc2
  (build/jam/repositories/HaikuPorts/x86_gcc2).
* Add rule AddHaikuImagePackages to add a package to the image and rule
  IsHaikuImagePackageAdded to determine whether a package has been
  added.
* OptionalPackages: Remove all entries that just downloaded and
  installed an external package. AddHaikuImagePackages can be used
  instead and is used in the remaining entries. Also move the remaining
  optional package dependency declarations from
  OptionalPackageDependencies here.
* ExtractBuildFeatureArchives: Instead of the URL parameter a package
  name must be specified now. This allows to simplify BuildFeatures
  significantly, since there's no dealing with URLs anymore. "if" out
  the entries that aren't supported yet.
* build_haiku_image: For the packages installed in system and common
  resolve their dependencies and download and install them as well.

----------------------------------------------------------------------------

############################################################################

Commit:      812baf3925b9f8436d531ffe07441ce65c766a23
URL:         http://cgit.haiku-os.org/haiku/commit/?id=812baf3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 10:14:33 2013 UTC

libsolv_build: declare missing dependency

----------------------------------------------------------------------------

############################################################################

Commit:      bd915d9f53216d1998effadf1d8ef25eafdc67a6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bd915d9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 11:16:08 2013 UTC

BSolver: fix build host build for gcc 2

gcc 2 doesn't support the weakref attribute. Rather use the regular
(target) method to initialize sCreateSolver instead (pthread once,
dlopen()). Since we know that we're on Haiku, that doesn't add any
dependencies that aren't available anyway.

----------------------------------------------------------------------------

############################################################################

Commit:      a65099bbe401707176af28aee5547b19624d169c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a65099b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 11:23:48 2013 UTC

libsolv_build: fix build on gcc 2 Haiku

* Fix the "UseHeaders" invocation for libsolvext to use the correct
  directory.
* Reorder things slightly, merely for aesthetical reasons.

----------------------------------------------------------------------------

############################################################################

Commit:      1faf74732d88a2c8004240bb59661e2e738c9fa2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1faf747
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 11:26:12 2013 UTC

Update packages binutils, gcc, add missing bepdf source package

----------------------------------------------------------------------------

############################################################################

Commit:      fdf111aa575d03298a825a7b8c109ba3ea7f85b0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fdf111a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 11:45:25 2013 UTC

libsolvext requires libz

----------------------------------------------------------------------------

############################################################################

Commit:      4dd0ed48e3dd486d3f2e8c15eeb90466cd5b0229
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4dd0ed4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 11:53:25 2013 UTC

BSolver: fix for gcc 2

Missed one #if, so sCreateSolver was never initialized.

----------------------------------------------------------------------------

############################################################################

Commit:      f0273200d4b0ef6ba89e452dc4868016a3c17c2a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f027320
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 12:06:15 2013 UTC

devel packages for mandatory packages must be in system as well

----------------------------------------------------------------------------

############################################################################

Commit:      458b56a68ca61218c1bd077ff1296ef73dfdedc5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=458b56a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 12:07:38 2013 UTC

Also install the be_book package in system

----------------------------------------------------------------------------

############################################################################

Commit:      627626afd42f920d0330655d967ce712e4706396
URL:         http://cgit.haiku-os.org/haiku/commit/?id=627626a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul  5 12:26:30 2013 UTC

GeneratedRepositoryPackageList: defeat localization

Set LC_ALL=C, so "sort" produces useful results.

----------------------------------------------------------------------------

############################################################################

Commit:      4174191272b0123a0d66fd23074acc26865b59bc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4174191
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:08:29 2013 UTC

BPackageInfo: fix range check in c'tor

----------------------------------------------------------------------------

############################################################################

Commit:      a28a0ac6b20d7f32254523b9c425527c0832b634
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a28a0ac
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:09:08 2013 UTC

BPackageInfo::_ExtractUsers(): fix no group case

----------------------------------------------------------------------------

############################################################################

Commit:      3758560637f4994ab09062c5e4a7a010b108f751
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3758560
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:10:10 2013 UTC

BuildSetup: remove obsolete dir variables

----------------------------------------------------------------------------

############################################################################

Commit:      30cdb26b5fa1f6de8537fefdc0fb5be85e07259b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=30cdb26
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:11:18 2013 UTC

Add BDriverSettings to libbe_build

----------------------------------------------------------------------------

############################################################################

Commit:      ee64a0a6db4b838e7c644f17f41dfb0ced743d29
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ee64a0a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:13:54 2013 UTC

BRepositoryConfig::SetTo(): fix use after deallocation

The strings retrieved from the driver settings were used after
unload_driver_settings(). Use BDriverSettings which also simplifies
things quite a bit.

----------------------------------------------------------------------------

############################################################################

Commit:      bbd644b00b69e3520cffa37a363f1c36bf885bc3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bbd644b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:15:39 2013 UTC

libsolv_build: add support for building on FreeBSD

Also fail immediately when an unsupported platform is encountered.

----------------------------------------------------------------------------

############################################################################

Commit:      2a5d0aafa6290c153744386ada7000191b7b868f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2a5d0aa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:17:15 2013 UTC

configure: set new variable HOST_SHA256

sha256sum and sha256 are detected.

----------------------------------------------------------------------------

############################################################################

Commit:      46686fe6c025b159796d9bdf2c1956173777b704
URL:         http://cgit.haiku-os.org/haiku/commit/?id=46686fe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:19:38 2013 UTC

Download*File rules: add optional source target

If specified the path to the source target can be used in the URL via
"$source".

----------------------------------------------------------------------------

############################################################################

Commit:      531a3d42bc3351d7bf7892a33529106fa580866c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=531a3d4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:19:51 2013 UTC

Add rule ChecksumFileSHA256

----------------------------------------------------------------------------

############################################################################

Commit:      f4e265d53ceb0ec56bdcf7f68595903330a79b5e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f4e265d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:21:47 2013 UTC

Add build tool create_repository_config

Given a repository base URL and a repository info, it creates a
repository config file.

----------------------------------------------------------------------------

############################################################################

Commit:      d72ce06673197dbd21336ca8f5618d98487001c8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d72ce06
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:29:51 2013 UTC

Adjust to changed HaikuPorts repository layout

The package kit actually requires the files "repo", "repo.info",
"repo.sha256" to be located under the repository base URL, so the
approach to name the repository file "repo-<hash>" doesn't work.
Now there's a directory "<hash>" which contains the files.

This commit moves the computation of the hash and downloading the
repository file from the build_haiku_image script to the jam build
system. The repo.info is also downloaded and a repository config file
is generated.

----------------------------------------------------------------------------

############################################################################

Commit:      2afaeda8b78f954f17a93da69c133cf93dae46b5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2afaeda
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 00:31:31 2013 UTC

Copy repository config files to the image

... to common/settings/package-repositories. This way the used
repositories are already known to pkgman.

----------------------------------------------------------------------------

############################################################################

Commit:      3942ca0d5edd79e23886294b36b75e14fded4bfb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3942ca0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 10:19:46 2013 UTC

configure: fix sha256sum/sha256 checks

----------------------------------------------------------------------------

############################################################################

Commit:      600620e7907793cd45550fac400f825690737ab0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=600620e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 15:48:03 2013 UTC

package_daemon: create the administrative dir when mounted

----------------------------------------------------------------------------

############################################################################

Commit:      014eed80e289c2bbc187ac91bb7b3a35560a971f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=014eed8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 16:06:02 2013 UTC

Change repository directory layout

* Under the base URL there are supposed to be the repository files and a
  subdirectory "packages".
* Fix the repository URL related confusion introduced earlier. The URL
in
  the repository info (and thus in the repository file) is supposed to
  be the base URL for the repository. It is not a (potentially)
  different base URL for the package files. Package and repository
  files were supposed to live in the same directory. Now, by requiring
  the package files to live in a subdirectory -- which can also be a
  symlink -- we gain some flexibility.
  The URL in the repository config is usually the same as the in the
  repository info, unless it refers to a mirror site. This allows for
  mirrors to copy the original repository verbatim.
* Remove the PackageURL rule and introduce a DownloadPackage rule
  instead. The URL for a package file cannot be computed in the jam
  parsing phase anymore, as it contains the hash value of the package
  list.
* BRepositoryConfig: Add PackagesURL() for convenience.

----------------------------------------------------------------------------

############################################################################

Commit:      056e9bb6206161f4974a4e35bd8eb3b64913505d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=056e9bb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul  6 16:06:22 2013 UTC

Add some more packages to the HaikuPorts repository

----------------------------------------------------------------------------

############################################################################

Commit:      e8c5236a9ce57f3f8f0c879b734e2d2a64617743
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e8c5236
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 08:44:43 2013 UTC

Move image definition jamfiles to build/jam/images

----------------------------------------------------------------------------

############################################################################

Commit:      2bab2851aa2b67798f34ea35b8b6c04e6a0afba4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2bab285
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 08:49:20 2013 UTC

Remove OptionLibPackages

----------------------------------------------------------------------------

############################################################################

Commit:      7418499c4a7fd35289aea835235a961e5cf6b1eb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7418499
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 09:14:28 2013 UTC

Remove more optional package related left-overs

----------------------------------------------------------------------------

############################################################################

Commit:      db11a1104ce48fd3af3b6715beebe211affc2874
URL:         http://cgit.haiku-os.org/haiku/commit/?id=db11a11
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 10:32:45 2013 UTC

Move common image building code to HaikuImageCommon

----------------------------------------------------------------------------

############################################################################

Commit:      7aa46ed97da819b9b98b17f329eed24b1044a3b5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7aa46ed
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 11:21:26 2013 UTC

Move common image building code to HaikuImageCommon

----------------------------------------------------------------------------

############################################################################

Commit:      78f4c163d452af17d253dfa1ac3556d340088f5f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=78f4c16
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 11:45:38 2013 UTC

Beginnings of support for building a bootstrap Haiku image

Copy:
* packages: Haiku -> HaikuBootstrap
* images: HaikuImage -> HaikuImageBootstrap
... and remove some unncessary content.

Setting the jam variable HAIKU_BOOTSTRAP_BUILD enables using the
bootstrap files.

----------------------------------------------------------------------------

############################################################################

Commit:      ec945b7f0d11df7e0d2f0bdd0ef676aa0d1e96a8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ec945b7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 12:21:51 2013 UTC

ReleaseBuildProfiles -> Default*, add bootstrap profiles

----------------------------------------------------------------------------

############################################################################

Commit:      c01380b1b7e3c6ac4d27c73dd1b2dee290cb8b5e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c01380b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 13:02:29 2013 UTC

Move package info pre-processing to jam build system

Also, pre-process all package infos (not only the generic ones) and
define the macro HAIKU_BOOTSTRAP_BUILD, if building a package for a
bootstrap image.

----------------------------------------------------------------------------

############################################################################

Commit:      2f3dc946cdc724c545803c24f33140025c26ea4b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2f3dc94
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul  7 13:02:57 2013 UTC

haiku package info: drop some requires in bootstrap mode

----------------------------------------------------------------------------

############################################################################

Commit:      7e78b434f4cb9bfc5b2f676a3c6033d77c3f9df0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7e78b43
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  8 12:01:00 2013 UTC

Merge remote-tracking branch 'haiku/master' into package-management

Conflicts:
        build/jam/HaikuImage
        build/jam/OptionalPackageDependencies
        build/jam/OptionalPackages
        build/scripts/build_cross_tools_gcc4
        src/add-ons/translators/icns/Jamfile
        src/add-ons/translators/jpeg/Jamfile

----------------------------------------------------------------------------

############################################################################

Commit:      0361a1da73a964be9d432cab0e123a51b37a3b34
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0361a1d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul  8 15:12:36 2013 UTC

Debugger: ElfFile::_CheckRange(): fix check

----------------------------------------------------------------------------

############################################################################

Commit:      276c321bcdd0a579d3584198b1b41d95afc8275b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=276c321
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  9 18:24:57 2013 UTC

BPackageInfo::Parser::_ParseFlags(): fix indentation

----------------------------------------------------------------------------

############################################################################

Commit:      0e9ec703dd88ade7b1adc8d28a3bec4484bcd63c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0e9ec70
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul  9 19:41:45 2013 UTC

package info parser: improve string parsing

* Instead of two string token types (TOKEN_WORD, TOKEN_QUOTED_STRING),
  there's now only one (TOKEN_STRING). Whether the string meets the
  criteria is checked where needed. In most cases the check was already
  done or not necessary anyway.
* Strings can now consist of an arbitrary sequence of quoted and
  unquoted strings and escaping is also supported in unquoted string
  segments.
* Among other things this fixes incorrect restrictions for resolvable
  names and should also make quoting paths superfluous (unless they
  contain separator characters).

----------------------------------------------------------------------------

############################################################################

Commit:      f20d944bea5adc68ea7101792a8c26853e872325
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f20d944
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 11 11:48:22 2013 UTC

Update packages grep, ncurses, sed, tar

----------------------------------------------------------------------------

############################################################################

Commit:      3e582896286875a36309113141ecc155b83debac
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3e58289
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 11 12:00:34 2013 UTC

DownloadLocatedFile: fix use with older wget version

The option "--no-use-server-timestamps" is apparently newer than
Haiku's wget.

----------------------------------------------------------------------------

############################################################################

Commit:      4387d6b33f5d5668f496c528637cf6ebd1a4fdc9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4387d6b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 11 16:09:03 2013 UTC

Merge remote-tracking branch 'remotes/haiku/master' into package-management

----------------------------------------------------------------------------

############################################################################

Commit:      38f07871cec91f100c3cfa75f89b7daf05d2cf43
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38f0787
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 12 11:27:56 2013 UTC

rule AddRepositoryPackages: add debugInfoPackage parameter

It works just like the sourcePackages parameter.

----------------------------------------------------------------------------

############################################################################

Commit:      916e7e75a3308431155d900cf847693ea3d3ef58
URL:         http://cgit.haiku-os.org/haiku/commit/?id=916e7e7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 12 11:28:17 2013 UTC

Add debug info packages to HaikuPorts repository

----------------------------------------------------------------------------

############################################################################

Commit:      ed156ea6c830aad9386342372bfcaf743a853663
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ed156ea
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 13 14:24:03 2013 UTC

package[_repo] list: reduce code duplication

Introduce helper class PackageInfoPrinter that does the printing and is
used by both commands.

----------------------------------------------------------------------------

############################################################################

Commit:      4e6141b823043abc3e48acb48e45e43b8fa680fe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4e6141b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 13 14:25:15 2013 UTC

package list: add option '-i' to list only the meta info

----------------------------------------------------------------------------

############################################################################

Commit:      4ce282c7cc1e57d73459881ecb6c913c1f25a65d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4ce282c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 13 15:03:44 2013 UTC

package list: also support package info files

----------------------------------------------------------------------------

############################################################################

Commit:      03d70b4e58f04e54ed9d76a072a0b66750f7037c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=03d70b4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Jul 13 19:17:02 2013 UTC

Add package architecture constant for x86-64

----------------------------------------------------------------------------

############################################################################

Commit:      ebb857698e1b20d080d3906a0cc0691e39ed2b22
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ebb8576
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Jul 15 14:34:41 2013 UTC

Update bootstrap image/package

Should have been part of the recent merge.

----------------------------------------------------------------------------

############################################################################

Commit:      983aba29833ee0d76d98c4e7e94990bd908391d5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=983aba2
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon Jul 15 15:32:44 2013 UTC

Adjust configure script to new version of legacy compiler.

----------------------------------------------------------------------------

############################################################################

Commit:      579f1dbca962a2a03df54f69fdc6e9423f91f20e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=579f1db
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul 16 23:00:01 2013 UTC

_G_config.h: don't include <cstddef>

<stddef.h> is just fine and it doesn't break the use of libroot headers
when compiling something with -nostdinc++ (in C++ mode).
Not particularly important, but this gets compiling the libio C++ stuff
when building a native gcc a bit further. It still fails, since our
<printf.h> header is actually not usable (it includes <features.h>,
which is not available in Haiku) -- something we should fix eventually.

----------------------------------------------------------------------------

############################################################################

Commit:      111204e0d9d0bbffc9a717d472aef686cca66cf6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=111204e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul 16 23:02:40 2013 UTC

build_cross_tools: make the cross compiler more reuse friendly

----------------------------------------------------------------------------

############################################################################

Commit:      4ddd7f8c9414afc9725cec448a9b701167f18d6f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4ddd7f8
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Jul 17 16:07:56 2013 UTC

Make public glibc header printf.h usable.

----------------------------------------------------------------------------

############################################################################

Commit:      21b3820e86796176dcb894fbf60daaf1574d5575
URL:         http://cgit.haiku-os.org/haiku/commit/?id=21b3820
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 19 13:13:25 2013 UTC

Add libbsd to cross devel package

----------------------------------------------------------------------------

############################################################################

Commit:      fc8967f1a6ae896205bf4e59a1db2f26ae168a04
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fc8967f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Jul 19 23:01:21 2013 UTC

Determine HAIKU_CPU and HAIKU_PACKAGING_ARCH in configure

... instead of in BuildSetup.

----------------------------------------------------------------------------

############################################################################

Commit:      67e84002a1f97e4f853f89c0fe41ad358c7389c8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=67e8400
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 01:12:45 2013 UTC

rule ExtractBuildFeatureArchives: implement placeholders

Add support for placeholders in the attribute values. The values of the
currently supported placeholders depend on the package file name
(package version, actual package and port name, etc.).

----------------------------------------------------------------------------

############################################################################

Commit:      d1fe5b98d9db39ae386988e85abf201db029c53d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d1fe5b9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 01:13:58 2013 UTC

BuildFeature: get rid of hard-coded package versions

... using the new placeholder feature of ExtractBuildFeatureArchives.

----------------------------------------------------------------------------

############################################################################

Commit:      b9eec5192d6b6282a2bf5284e8c4121d0a29f09d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b9eec51
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 01:20:26 2013 UTC

Include DefaultBuildProfiles earlier

DefaultBuildProfiles is now included earlier (right after BuildSetup).
This allows us to set HAIKU_BOOTSTRAP_BUILD earlier, so it can be used
for the repository selection. The actual build profile definitions,
which cannot be done that early, live in the rule
DefineDefaultBuildProfiles, which is invoked where the file was
previously included.

----------------------------------------------------------------------------

############################################################################

Commit:      33f23ea80f263d13f706be43e02bee7de752db87
URL:         http://cgit.haiku-os.org/haiku/commit/?id=33f23ea
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 01:34:35 2013 UTC

Remove more stuff from the Haiku bootstrap packages/image

Namely GL/Mesa and libtiff.

----------------------------------------------------------------------------

############################################################################

Commit:      e173a1ec1c0c1f48e355f3cbc34c0114e336ff88
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e173a1e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 02:10:48 2013 UTC

Integrate building the HaikuPorts bootstrap packages

* Add configure option --bootstrap which allows specifying the
  haikuporter and HaikuPorts repository paths.
* Add rules for supporting a second repository type. The
  PackageRepository rule is now private and RemotePackageRepository is
  used for remote repositories. The new BootstrapPackageRepository rule
  is for defining a bootstrap repository (there will probably be only
  the HaikuPorts cross repository) whose packages can be built as needed
  via haikuporter.
* Rename DownloadPackage to FetchPackage.
* Define repository HaikuPortsCross.
* HaikuCrossDevel package(s): There are now two sets of packages: A
  "stage1" set with the same content as before and a final set
  additionally containing the libraries libbe, libnetwork, libpackage.
  Those are needed for building the libsolv bootstrap package while for
  building them we need other bootstrap packages (ICU, libz).

This is basically all that's required to build a bootstrap Haiku
completely from sources, with a few caveats:
* There's no ICU bootstrap recipe yet (so one has to cheat and use the
  prebuilt package ATM).
* Probably doesn't work on Haiku yet (tested on Linux only).
* A 32 bit environment must be used (otherwise building the gcc 2
  bootstrap package fails).
* Building with multiple jobs doesn't work yet, since haikuporter uses
  common directories for building different packages and there's no
  explicit serialization yet.
* Haven't tested the resulting image save for booting it. So it probably
  needs a bit more work before it can actually build the final
  HaikuPorts packages.

----------------------------------------------------------------------------

############################################################################

Commit:      a7ab22a0c034d063575a94fa8586577459e4db5f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a7ab22a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 16:23:45 2013 UTC

HaikuPortsCross repository: icu_bootstrap is now available

----------------------------------------------------------------------------

############################################################################

Commit:      7b2174a27d37d8f688af54e482fc906d019aa50a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7b2174a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 17:39:06 2013 UTC

BootstrapPackageRepository: serialize package creation

Since haikuporter uses a common directory for building the ports, we
can't build them concurrently. This makes jamming with multiple jobs
safe again.

----------------------------------------------------------------------------

############################################################################

Commit:      26b0aa1ccddf394789049560f309f3c55991242d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=26b0aa1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 19:34:02 2013 UTC

HaikuPortsCross repository: fix binutils, gcc revision mismatch

I don't think it makes that much sense to increment the revisions in
the cross recipes anyway, since there isn't any actual package
repository.

----------------------------------------------------------------------------

############################################################################

Commit:      81bd962f27060fbeb7e56317b46bae0a369c25ce
URL:         http://cgit.haiku-os.org/haiku/commit/?id=81bd962
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 21 21:58:37 2013 UTC

Add haikuporter and python to Haiku bootstrap image

----------------------------------------------------------------------------

############################################################################

Commit:      48b1ed424227095ac7e4c67074ff4681601dc3eb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=48b1ed4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul 23 20:44:32 2013 UTC

Add all bootstrap packages in DefaultBuildProfiles

* Don't handle the bootstrap case in the main Jamfile. Add all bootstrap
  packages to the image in the profile definition. That's less
  confusing, hopefully.
* Add the missing bootstrap packages (ncurses*, libtool_libltdl). The
  would normally be added in build_haiku_image when the package
  dependencies are resolved, but we don't do that for the bootstrap
  image, since we intentionally leave some dependencies out (e.g. perl)
  because they can be built.

----------------------------------------------------------------------------

############################################################################

Commit:      5bb173cf50029056151c04016af2793a6ec26596
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5bb173c
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Jul 24 19:24:07 2013 UTC

Add STXT-translator to the bootstrap image

* without this, StyledEdit wouldn't work

----------------------------------------------------------------------------

############################################################################

Commit:      e2732c07a833f2fd3bfe38a285202f4f0d501abd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e2732c0
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Jul 25 20:52:09 2013 UTC

Fix 'package extract' with multiple explicit entries

* before adding a child to a parent entry, we need to check if the
  parent already contains that child, as otherwise duplicate children 
  with identical names would be added, which in turn messes up the
  handling of the entries that are to be extracted

----------------------------------------------------------------------------

############################################################################

Commit:      ef57df3d81efabe336b76734d2897418c3ad8098
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ef57df3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Jul 24 22:31:25 2013 UTC

configure: remove BeOS support

Likely doesn't work anymore anyway.

----------------------------------------------------------------------------

############################################################################

Commit:      c0e8cc1a1368c6cc99ddf1c76f8826cd5a598fd2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c0e8cc1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jul 25 21:52:11 2013 UTC

configure: prepare for hybrid support

The goal is to do hybrid builds in a single jam (instead of calling a
sub-jam to build parts with the secondary tool chain). This changeset
adds support to configure to prepare multiple tool chains.

configure:
* Merge option --build-cross-tools-gcc4 into --build-cross-tools. The
  option does now always require a packaging architecture parameter,
  i.e. x86_gcc2 for the legacy tool chain.
* Multiple occurrences of the --build-cross-tools and
  --cross-tools-prefix options are allowed. The first one specifies the
  primary tool chain, the subsequent ones the secondary tool chains.
* All architecture dependent jam variables are now suffixed with the
  name of the packaging architecture. The new HAIKU_PACKAGING_ARCHS
  contains the packaging architectures for the prepared tool chains. The
  first element is for the primary tool chain.
* No longer generate a separate libgccObjects file. Just put the
  respective variable into BuildConfig as well.

build_cross_tools[_gcc4]:
* Replace the <haiku output dir> parameter by a <install dir>
  parameter. This allows to create different cross-tools directories.
  They are simply suffixed by the packaging architecture.

Jamrules:
* For the moment map the variables for the primary tool chain to the
  respective suffix-less variables, so that everything still works as
  before.

The next step is to actually support the secondary tool chains in the
jam build system. This will require quite a bit more butchering, though.

----------------------------------------------------------------------------

############################################################################

Commit:      0c59a38ecd83b6775b950326054f3a091aebb612
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c59a38
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Jul 26 13:11:09 2013 UTC

Drop debug leftover.

----------------------------------------------------------------------------

############################################################################

Commit:      13dc541c25e90d8f38f2c78a8e1a89a3c2e52c66
URL:         http://cgit.haiku-os.org/haiku/commit/?id=13dc541
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Jul 28 16:15:31 2013 UTC

libroot: os/arch: remove unsupported architectures

----------------------------------------------------------------------------

############################################################################

Commit:      30f0d45ff7d899803c23ec06e337d77f2b122a09
URL:         http://cgit.haiku-os.org/haiku/commit/?id=30f0d45
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Jul 30 16:47:01 2013 UTC

Remove unused Haiku64Image

----------------------------------------------------------------------------

############################################################################

Commit:      159663cebabbc8dcd94c2f64f110ca2536cf24fc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=159663c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug  1 06:53:06 2013 UTC

Remove no longer needed HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES

----------------------------------------------------------------------------

############################################################################

Commit:      b0944c78b074a8110bd98e060415d0e8f38a7f65
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b0944c7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug  1 06:51:16 2013 UTC

More work towards hybrid support

* All packaging architecture dependent variables do now have a
  respective suffix and are set up for each configured packaging
  architecture, save for the kernel and boot loader variables, which
  are still only set up for the primary architecture.
  For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
  and TARGET_LIBSTDC++ are set to the respective values for the primary
  packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
  multiple packaging architectures. Generally the respective targets are
  (additionally) gristed with the packaging architecture. For libraries
  the additional grist is usually omitted for the primary architecture
  (e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
  Jamfiles for targets built only for the primary architecture don't
  need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
  cross devel package as well as for libbe (untested).

----------------------------------------------------------------------------

############################################################################

Commit:      833b6688aac53531af3e0099f96a4b9e3acba5f5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=833b668
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug  3 03:26:25 2013 UTC

cross devel hpkg: use suffix/subdir for secondary arch

* Libraries for a secondary architectures must be placed in a respective
  subdir.
* Add a suffix to the package name when building for a secondary
  architecture. Looks a bit weird
  ("haiku_cross_devel_sysroot_x86_gcc_x86.hpkg"), but is consistent.

----------------------------------------------------------------------------

############################################################################

Commit:      f975dc63f1238bdd4876f891b0ba9eaa255f59f7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f975dc6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug  3 03:29:15 2013 UTC

build_cross_tools_gcc4: move sysroot dir into install dir

This allows us to sneak in system include and library search dirs in
haikuporter without doing anything outside the cross tools dir.

----------------------------------------------------------------------------

############################################################################

Commit:      68ccc98930468839bf6b5fd2266a9a13953d13df
URL:         http://cgit.haiku-os.org/haiku/commit/?id=68ccc98
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug  4 15:20:56 2013 UTC

Build the cross gcc for the secondary arch as such

Pass --enable-hybrid-secondary to gcc's configure when building it as
a secondary compiler. Doesn't make a difference for building Haiku
itself, but makes it easier to match the Haiku cross devel package with
the compiler when building bootstrap packages with haikuporter.

gcc 4 only ATM.

----------------------------------------------------------------------------

############################################################################

Commit:      f30881d7fed2e9b5d60e6090af97c7516c7b3877
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f30881d
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Aug  4 18:50:07 2013 UTC

Replace makeinfo_bootstrap with texinfo_bootstrap.

* using texinfo_bootstrap has the advantage of allowing implicit
  mapping between _bootstrap packages and the corresponding 
  non-bootstrap packages

----------------------------------------------------------------------------

############################################################################

Commit:      d31a50eef768be42588772f94a101e28c8b6415c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d31a50e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug  4 22:17:46 2013 UTC

Move build feature rules to separate file

----------------------------------------------------------------------------

############################################################################

Commit:      57190167ef0cc0a413c011b445ad9e08b568b352
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5719016
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug  4 22:25:30 2013 UTC

Fix usage of obsolete HAIKU_BUILD_FEATURE_OPENSSL_ENABLED

----------------------------------------------------------------------------

############################################################################

Commit:      de799f73c059c6ea5ac62a4545e244c38f70c99b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=de799f7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 04:37:56 2013 UTC

MultiArch* rule: support optional architecture parameter

----------------------------------------------------------------------------

############################################################################

Commit:      f7d5e4c647a7cb317eade01979fbc358bb8e68bb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f7d5e4c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 04:39:10 2013 UTC

ArchitectureSetup: fix library map for secondary arch

The libraries where resolved to the library targets for the primary
architecture.

----------------------------------------------------------------------------

############################################################################

Commit:      a36a1666321e745015b44de49ed74d6109111282
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a36a166
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 04:39:41 2013 UTC

MergedDirectory: missing include

----------------------------------------------------------------------------

############################################################################

Commit:      7bd562abc946385d255e54cdee7b27e14c49e8c8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7bd562a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 04:41:53 2013 UTC

lib{network,package,shared,agg,icon}: secondary arch support

----------------------------------------------------------------------------

############################################################################

Commit:      93cfb722707a5870dc99fefe0c05dff0ca4e966f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=93cfb72
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 05:09:45 2013 UTC

build features/bootstrap repo: support secondary arch

* Add rule FSplitPackageName. It splits a package name into port name
  and package suffix.
* FSetConditionsHold: Rename to FConditionsHold and replace the set
  parameter by a predicate rule parameter, thus adding more flexibility.
* FIsBuildFeatureEnabled: Use the faster check.
* Add rule FQualifiedBuildFeatureName. Given a build feature name, it
  prepends the current packaging architecture to yield a qualified
  feature name. Is used by the other build feature rules so that the
  same build feature can be configured differently for each arch.
* ExtractBuildFeatureArchives: The supplied list is now filtered via
  FFilterByBuildFeatures, allowing for build feature conditions in the
  list.
* Add rule InitArchitectureBuildFeatures. It is called early for each
  configured architecture, setting up some basic build features for it.
  "primary" is set for the primary architecture and a "secondary_<arch>"
  is set for each secondary architecture.
* BuildFeatures: Add secondary architecture support: Use the correct
  paths for libraries and headers (subdir for secondary architecture)
  and configure the icu and zlib sources only for the primary
  architecture.
* BootstrapPackageRepository: The package lists are now filtered via
  FFilterByBuildFeatures, allowing for build feature conditions in the
  lists.
* IsPackageAvailable, FetchPackage: Add secondary architecture support.
* HaikuPortsCross/x86_gcc2: Add icu and zlib x86 secondary packages.

The second stage Haiku cross devel package for the secondary
architecture can now be built.

----------------------------------------------------------------------------

############################################################################

Commit:      b2b6052e4075d5137bace6f851f0e26eebb4b600
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b2b6052
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 16:52:33 2013 UTC

ArchitectureSetup: fix library name map

It's too early to use the MultiArch* rules yet, since the TARGET_*
variables haven't been initialized yet.

----------------------------------------------------------------------------

############################################################################

Commit:      0b171ae44a83e009f91b5e769acfffaeb73767a1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0b171ae
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon Aug  5 19:36:25 2013 UTC

Fix two problems when building without secondary architecture.

----------------------------------------------------------------------------

############################################################################

Commit:      d20975d920acd45775064d3181c7aa0d94e77c95
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d20975d
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon Aug  5 19:44:12 2013 UTC

Fix negated predicate relating to input_server.

* without a secondary arch, jam would complain about not knowing how
  to build <x86_gcc>input_server

----------------------------------------------------------------------------

############################################################################

Commit:      69c69a7d2a3ee59d9d989d309bc160cf5bef5090
URL:         http://cgit.haiku-os.org/haiku/commit/?id=69c69a7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 21:19:24 2013 UTC

Replace build system vars [PRIVATE_]SYSTEM_LIBS by rules

... HaikuImageGetSystemLibs and HaikuImageGetPrivateSystemLibs.

----------------------------------------------------------------------------

############################################################################

Commit:      e9a0ad7c4d131d222f0ee86ad7ef386858b7023f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e9a0ad7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 21:20:36 2013 UTC

Remove SYSTEM_LIBS*_ALIASES build variables

----------------------------------------------------------------------------

############################################################################

Commit:      779b940a74bcdc32f3feefd9b1f93067808a34e4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=779b940
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 21:23:48 2013 UTC

PreprocessPackageInfo: define macro for secondary architecture

----------------------------------------------------------------------------

############################################################################

Commit:      c591ff14a109d9af2497fcd50886aa867391374c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c591ff1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 21:24:28 2013 UTC

Support building libpackage-add-on-libsolv.so for secondary arch

----------------------------------------------------------------------------

############################################################################

Commit:      8a2643daee34659df91d82e6a75b61ded68b21b0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8a2643d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 22:37:33 2013 UTC

libtracker: VirtualDirectoryManager::_RemoveDirectory(): typo

Should have caused infinite recursion when the directory still had
children.

----------------------------------------------------------------------------

############################################################################

Commit:      040a81419dda83d1014e9dc94936a4cb3f027303
URL:         http://cgit.haiku-os.org/haiku/commit/?id=040a814
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 22:39:13 2013 UTC

Add node_ref::operator <

Moved from VirtualDirectoryManager. Defining the operator static doesn't
work with gcc 4 and it's useful to have globally available anyway.

----------------------------------------------------------------------------

############################################################################

Commit:      225b6382637a7346d5378ee45a6581b4e2616055
URL:         http://cgit.haiku-os.org/haiku/commit/?id=225b638
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 22:41:36 2013 UTC

Support building most system libraries for secondary arch

Also adjust the HaikuImageGet[Private]SystemLibs rules to support to
return the library targets matching the current architecture.

----------------------------------------------------------------------------

############################################################################

Commit:      db16bcba41baeb142cbe70703698d9cdfeb8654e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=db16bcb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug  5 22:47:51 2013 UTC

Add package definition HaikuSecondaryBootstrap

A haiku_<arch>.hpkg package is produced for each secondary architecture.

----------------------------------------------------------------------------

############################################################################

Commit:      85eed25cddc53c6622ebc26ddb80806c6b0302c3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=85eed25
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 01:24:14 2013 UTC

AddHaikuImagePackages/IsHaikuImagePackageAdded: 2ndary arch fix

For the secondary architecture the same specified package name means a
different package, so we need to use the mapped name IsPackageAvailable
returns.

----------------------------------------------------------------------------

############################################################################

Commit:      2f2f43699c829d7adea722ba2e65edc5f5d607f5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2f2f436
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 01:28:16 2013 UTC

package info haiku_secondary: fix description

Using the C preprocessor doesn't work particularly well. The
replacements are rather unhandy.

----------------------------------------------------------------------------

############################################################################

Commit:      096c687ea3b249a1f6050999f03c0459b751f6b2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=096c687
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 01:29:51 2013 UTC

HaikuDevel: a few simplifications

----------------------------------------------------------------------------

############################################################################

Commit:      b4d3e055a98b366b0f3d556873f97a9e0d6457b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b4d3e05
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 01:32:48 2013 UTC

Add HaikuDevelSecondary package definition

It defines the haiku devel package for a secondary architecture
(haiku_<arch>_devel.hpkg).

----------------------------------------------------------------------------

############################################################################

Commit:      cade865ddec81edc3fce1b8d8d68ef84eecf4e1b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cade865
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 01:33:36 2013 UTC

Add secondary arch haiku [devel] packages to image

----------------------------------------------------------------------------

############################################################################

Commit:      d1251475e2aad18836353e1833887171e2ddb632
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d125147
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 01:37:22 2013 UTC

Add the missing secondary arch bootstrap packages

The Haiku bootstrap image is now built with (hopefully) all required
primary and secondary architecture packages. The runtime loader is still
resisting our wish to run secondary architecture programs, though.

----------------------------------------------------------------------------

############################################################################

Commit:      bddca41824861df4c978b347099dd46ad4b14193
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bddca41
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 01:45:06 2013 UTC

runtime loader: fix secondary arch search paths

----------------------------------------------------------------------------

############################################################################

Commit:      384230184efa82a55ab235fc738226775793195c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3842301
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 02:11:44 2013 UTC

Filter package infos through sed

%HAIKU_PACKAGING_ARCH% and %HAIKU_SECONDARY_PACKAGING_ARCH% in the
package infos are replaced before filtering them through the C
preprocessor.

----------------------------------------------------------------------------

############################################################################

Commit:      c965ee60b5656a5ef749adfdacd64918adee6cf5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c965ee6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 21:02:10 2013 UTC

bootstrap image: build needed source packages and add them

* IsPackageAvailable, FetchPackage: Add flags parameter. The only
  flag supported ATM is nameResolved, indicating that the specified
  package name does not need to be resolved with respect to a secondary
  architecture anymore.
* Add build profile action "build-package-list". As an argument the
  file to which the list of all packages needed for the image is
  written. The rule BuildHaikuImagePackageList implements the action.
* BuildBootstrapRepositoryConfig: Does now require the variable
  HAIKU_REPOSITORY_TREE_PATH to be set on the config file target instead
  of hard-coding the path. Allows reuse of the actions.
* Add rules BuildHaikuPortsSourcePackageDirectory and
  BuildHaikuPortsRepositoryConfig. The former builds all HaikuPorts
  source packages needed to build the packages for an alpha image. The
  latter generates a haikuports.conf file for use on the bootstrap
  Haiku.
* HaikuImageBootstrap: Add directory /boot/home/haikuports which
  contains a subdirectory with the source packages and a
  haikuports.conf.

----------------------------------------------------------------------------

############################################################################

Commit:      00979660d943e20f65a39fae67f020f2da1a1681
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0097966
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug  6 22:10:39 2013 UTC

haiku_devel_secondary package info: fix provides

----------------------------------------------------------------------------

############################################################################

Commit:      394c099f62eba6ccbc671d28308c7e36d78d09a6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=394c099
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug  7 00:09:37 2013 UTC

build_cross_tools_gcc4: use --with-hybrid-secondary

----------------------------------------------------------------------------

############################################################################

Commit:      f81fbb0b59c775851241b42040f2642fb0a02e78
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f81fbb0
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Aug  7 11:42:16 2013 UTC

Adjust to renamed option of haikuporter.

----------------------------------------------------------------------------

############################################################################

Commit:      47fd9e6dc6303f57ed1160953dfc3f0859140420
URL:         http://cgit.haiku-os.org/haiku/commit/?id=47fd9e6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 07:52:10 2013 UTC

rule AddLibrariesToContainer: fix for gristed libraries

----------------------------------------------------------------------------

############################################################################

Commit:      f51bf7d93299137bec37c273dab34531c63db3b0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f51bf7d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 07:53:03 2013 UTC

Support building more libraries for secondary architecture

----------------------------------------------------------------------------

############################################################################

Commit:      393c223bcfbc4491ef9b6820e493ab47ebe2e889
URL:         http://cgit.haiku-os.org/haiku/commit/?id=393c223
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 07:54:42 2013 UTC

HaikuPorts/x86_gcc2: add x86 packages, add/update packages

----------------------------------------------------------------------------

############################################################################

Commit:      271e9484edaefffa11528782abf3734888153a5c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=271e948
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 07:58:11 2013 UTC

Build secondary architecture Haiku package for regular image

Also add secondary architecture packages to image.

----------------------------------------------------------------------------

############################################################################

Commit:      a94f6aab7bd27a5ac71c005cec2ccc80ccd1d422
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a94f6aa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 12:55:29 2013 UTC

Image rules: filter packages list via FFilterByBuildFeatures

AddPackageFilesToHaikuImage, AddHaikuImagePackages: For convenience
filter the given package file/package list through
FFilterByBuildFeatures.

----------------------------------------------------------------------------

############################################################################

Commit:      00b8bfde15b28636eced339c15c9426095009562
URL:         http://cgit.haiku-os.org/haiku/commit/?id=00b8bfd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 12:58:21 2013 UTC

EnableBuildFeatures: deal with duplicate invocations

----------------------------------------------------------------------------

############################################################################

Commit:      dd0bd440d545bef593971491310a7aee54ee2223
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dd0bd44
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 13:02:02 2013 UTC

BuildFeatures: print the packaging arch in error messages

----------------------------------------------------------------------------

############################################################################

Commit:      39f7d0075d28e0c3cad9606c105b0101477fb81e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=39f7d00
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 13:03:14 2013 UTC

HaikuPorts/x86_gcc2: add haikuwebkit and xz_utils

----------------------------------------------------------------------------

############################################################################

Commit:      4f57a2bd1a9266b34f2e5aab539dfc7f162679b4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4f57a2b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 13:03:49 2013 UTC

DefineDefaultBuildProfiles: simplify things a bit

----------------------------------------------------------------------------

############################################################################

Commit:      2910d9a7e043b6d84e7b2c831ac66f51ca2a776f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2910d9a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 13:04:48 2013 UTC

PreprocessPackageInfo: add substitution

... HAIKU_SECONDARY_PACKAGING_ARCH_SUFFIX. It's "_<arch>" for a
secondary architecture and "" for the primary one.

----------------------------------------------------------------------------

############################################################################

Commit:      1c9bc2064637946ef47a8125c244af48efd58201
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1c9bc20
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 13:05:51 2013 UTC

BuildFeatures: re-add webkit build feature

----------------------------------------------------------------------------

############################################################################

Commit:      555b02d34587e4d5b3295771b00cf48859e1c776
URL:         http://cgit.haiku-os.org/haiku/commit/?id=555b02d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 10 13:06:55 2013 UTC

Add webpositive package to image

----------------------------------------------------------------------------

############################################################################

Commit:      b57470a2179ca208ea910422db1ab2881575b69d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b57470a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug 12 13:53:50 2013 UTC

Remove setgcc

----------------------------------------------------------------------------

############################################################################

Commit:      483b28e478b142d429975d49e805afcc03a32b0d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=483b28e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug 12 15:18:02 2013 UTC

Add option --target-arch

On Haiku it allows to specify the target architecture to build for
using one of the installed native compilers.

----------------------------------------------------------------------------

############################################################################

Commit:      4e822fec6f974a956051e19e8c00eedc97eb0471
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4e822fe
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug 12 15:20:36 2013 UTC

HaikuPorts/x86_gcc2: Update gcc and binutils

Also add secondary architecture packages.

----------------------------------------------------------------------------

############################################################################

Commit:      f56958c140a47e37386b366dbbc2650d527a15bc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f56958c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug 12 15:23:20 2013 UTC

Add development packages for the secondary architecture

----------------------------------------------------------------------------

############################################################################

Commit:      4c6b3efc91da7aa26b2d20c30f3c17b98465d5dc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4c6b3ef
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Mon Aug 12 12:45:41 2013 UTC

Increase size of bootstrap image to 4 GB.

* 1 GB isn't enough to build the basic set

----------------------------------------------------------------------------

############################################################################

Commit:      3ea37257df7cd79558febd2f72014335af590ffb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3ea3725
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 05:12:47 2013 UTC

haiku_devel* package infos: add compat version and base package

----------------------------------------------------------------------------

############################################################################

Commit:      7ff288ed5116a0626a45c3d5b46c161e082fb750
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7ff288e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 05:15:05 2013 UTC

packagefs: fix dependency resolution without compat version

----------------------------------------------------------------------------

############################################################################

Commit:      623331eed56d387e30d653513a09dc47cffec3ba
URL:         http://cgit.haiku-os.org/haiku/commit/?id=623331e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 05:15:42 2013 UTC

packages: PackageFSRoot: fix, improve, add debug output

----------------------------------------------------------------------------

############################################################################

Commit:      b8ab901eeb0ce0eaa403182780268ffd69acf3c9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b8ab901
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 12:17:52 2013 UTC

packagefs: replace ':' with '~' in the package link names

Otherwise paths containing those symlinks cannot be used in colon
separated search path lists.

----------------------------------------------------------------------------

############################################################################

Commit:      86233b1067c8868bdbfdf13beec31795476284ec
URL:         http://cgit.haiku-os.org/haiku/commit/?id=86233b1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 11:46:26 2013 UTC

HaikuPorts: update several packages

... and add some missing devel packages.

----------------------------------------------------------------------------

############################################################################

Commit:      998ef890654e102c89634fbc9e40eb605878542f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=998ef89
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 12:43:29 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9921

package daemon: Volume: fix package removal after transaction

Volume::_ChangePackageActivation(): Refactoring oversight:
fPackagesToBeDeactivated was still used instead of the
packagesToDeactivate parameter, so the packages wouldn't be removed from
the hash tables when invoked from the CommitTransactionHandler. Fixes
#9921.

----------------------------------------------------------------------------

############################################################################

Commit:      37cfff1f04388b62c3a7453aa4cc0e81b4c0978c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=37cfff1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 13:31:22 2013 UTC

build_haiku_image: filter duplicate packages

Resolving the package dependencies for system might yield packages that
are already given for common. Filter those out of the list for common
before resolving the common dependencies.

----------------------------------------------------------------------------

############################################################################

Commit:      ce76b7e202b1141bdc0a1989bfce9ac27bcbc7aa
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ce76b7e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 13 19:30:30 2013 UTC

Fix strrchr()

* For the comparison cast the character parameter to char as required
  by the spec.
* Fix broken handling of strrchr(..., 0). It is supposed to return a
  pointer to the end of the string. It did return a pointer to the
  start.

----------------------------------------------------------------------------

############################################################################

Commit:      9a19dcd7cbf017f69be90dc75e73f6b89afbbd39
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9a19dcd
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 14 08:13:56 2013 UTC

pkgman search: '-i' option wasn't handled

----------------------------------------------------------------------------

############################################################################

Commit:      f73d05a79b96bf945010ef04a0813ac67c4ab386
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f73d05a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 14 08:14:16 2013 UTC

HaikuPorts/x86_gcc2: Update git packages

----------------------------------------------------------------------------

############################################################################

Commit:      64264fa6acd1d75c177bf8c8befa96d7dc61644a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=64264fa
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:10:31 2013 UTC

Use Objects instead of KernelObjects

Should we actually require differently built glue code for the kernel or
kernel add-ons, which should build a separate set.

----------------------------------------------------------------------------

############################################################################

Commit:      13f2fbbd9ef7a7b6cc8f3257e3840bc6911a2e39
URL:         http://cgit.haiku-os.org/haiku/commit/?id=13f2fbb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:12:35 2013 UTC

Add build variable HAIKU_PORTER_CONCURRENT_JOBS

It can be set to the number of jobs specified on the haikuporter
command line. Speeds up the bootstrap build quite a bit.

----------------------------------------------------------------------------

############################################################################

Commit:      24796718b99aff208846310dd982c5c41d5e7eff
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2479671
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:20:35 2013 UTC

Bootstrap Haiku image: add source for more required packages

* Introduce build variable HAIKU_IMAGE_ADDITIONAL_PACKAGES which can be
  set to add additional packages to the image.
* Use HAIKU_IMAGE_ADDITIONAL_PACKAGES to support specifying a list of
  additional packages via the build-package-list build profile action.
* Add htmldoc and texi2html when building the list of the packages for
  which we need source packages when building the bootstrap Haiku image.
  We don't want them on the regular image, but they are needed to build
  some packages that are on it.

----------------------------------------------------------------------------

############################################################################

Commit:      77b9f01f9b158196cb2faef5a36b09eb21175356
URL:         http://cgit.haiku-os.org/haiku/commit/?id=77b9f01
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:21:06 2013 UTC

Add a few standard build tools to the Development meta package

----------------------------------------------------------------------------

############################################################################

Commit:      418071ba652c9c3a2a2d664f9e228e0bcb8cb499
URL:         http://cgit.haiku-os.org/haiku/commit/?id=418071b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:22:42 2013 UTC

MIME DB support: avoid static initialization order issue

----------------------------------------------------------------------------

############################################################################

Commit:      145189e61a3bc9f433e045df7ee88274f88eb727
URL:         http://cgit.haiku-os.org/haiku/commit/?id=145189e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:23:19 2013 UTC

packagfs: fix header order

----------------------------------------------------------------------------

############################################################################

Commit:      f6e836d616f7fc8cd3d6536d4f7e33cf27bb0873
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f6e836d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:29:16 2013 UTC

packagefs: PackageNode: fix protection issue

Only gcc 2 allows us to use a pointer to a protected method as a
template argument.

----------------------------------------------------------------------------

############################################################################

Commit:      536ff120f0a77b26b7abce87295661d49ba1ec4b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=536ff12
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:30:52 2013 UTC

pkgman: missing include

----------------------------------------------------------------------------

############################################################################

Commit:      464ee61f45db818926c18542bc7497e5d5769578
URL:         http://cgit.haiku-os.org/haiku/commit/?id=464ee61
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:31:24 2013 UTC

pkgman: link against needed libstdc++

----------------------------------------------------------------------------

############################################################################

Commit:      987d25a40cf7600f79f5abd0c542140d3b5fa217
URL:         http://cgit.haiku-os.org/haiku/commit/?id=987d25a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 17 07:31:57 2013 UTC

build_cross_tools: use --with-hybrid-secondary when needed

----------------------------------------------------------------------------

############################################################################

Commit:      4ddd2c75dc73acba4297ea87b383b6504101011a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4ddd2c7
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Aug 21 14:30:39 2013 UTC

Don't try to build xz_utils for a mere gcc2 system.

----------------------------------------------------------------------------

############################################################################

Commit:      a5101559b58dec543441a0a8811b30912ed72c59
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a510155
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 21 07:12:59 2013 UTC

packagefs: PackageFSRoot: fix variable redeclaration

----------------------------------------------------------------------------

############################################################################

Commit:      b35337eb1e109ac808549a4f12140924852caa85
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b35337e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 21 14:32:17 2013 UTC

Add repositories for x86

Almost complete. bepdf is still missing, since it doesn't build with gcc
4 and a few source packages are missing as well (binutils and gcc
because haikuporter doesn't build them correctly ATM, mesa due to an
oversight).

----------------------------------------------------------------------------

############################################################################

Commit:      cc91b333bede32fbf9dc43e1f21d609e89b2d3fa
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cc91b33
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 21 14:32:34 2013 UTC

configure: update required legacy compiler version

----------------------------------------------------------------------------

############################################################################

Commit:      5657c5eaa59832bf1fa4f1e08e9ed59796ce018f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5657c5e
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Aug 21 16:00:13 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9928

Fix #9928: broken printf specifiers "%La" and "%LA"

* fix unitialized variables in __printf_fphex() in case of architectures
  without support for long double - this triggered unreliable results
  or crashes when using %La or %La on x86
* activate long double implementation in use for x86_64 for x86, too,
  as they share the long double format
(cherry picked from commit d1716b277cbaf2b4265728d559b819d73330c1ef)

----------------------------------------------------------------------------

############################################################################

Commit:      86de8c37b5bc2266be9f61eb8cb07c932c11625d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=86de8c3
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 22 10:31:48 2013 UTC

Use GNU make also for building gcc 2

Should fix the build on {Free,Open}BSD.

----------------------------------------------------------------------------

############################################################################

Commit:      648a97f71641004492c290b53b5cfc8db172c2a1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=648a97f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 22 13:49:34 2013 UTC

HaikuPortsCross: update gcc package versions

----------------------------------------------------------------------------

############################################################################

Commit:      82655a51883277c3829eefd248eb384df145ba7d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=82655a5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 22 15:58:42 2013 UTC

HaikuPorts/x86[_gcc2]: update gcc packages

----------------------------------------------------------------------------

############################################################################

Commit:      abf4b0f6a0ef0029bbacbb79d8a6d9b7e83b3a8b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=abf4b0f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Aug 23 11:31:51 2013 UTC

HaikuPorts/x86: add some missing source packages

----------------------------------------------------------------------------

############################################################################

Commit:      f5821a1aee77d3b9a979b42c68a79e50b5ebaefe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f5821a1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 13:09:27 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9927

Set file type of Tracker New templates correctly

Fixes #9927.

----------------------------------------------------------------------------

############################################################################

Commit:      ab9a1179187625603394b817a104471ef6d3aa14
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ab9a117
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 15:02:05 2013 UTC

package kit: JobQueue::Pop() fix invalid iterator access

----------------------------------------------------------------------------

############################################################################

Commit:      c33daf26ea9f29d5b9e980c8c04322e88c7bbc98
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c33daf2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 15:05:00 2013 UTC

package kit: fix JobQueue::_RemoveDependantJobsOf()

* Delete the right job (the removed dependant job).
* Sever the depencency link between the jobs or the next iteration of
  the loop would process the same job again.

----------------------------------------------------------------------------

############################################################################

Commit:      03191ec5afc690881b227d4dd8d2d0f191a354c4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=03191ec
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 15:06:30 2013 UTC

pkgman: make JobStateListener a bit more flexible

Flags can be passed to the constructor to specify whether to exit() when
a job failed/was aborted.

----------------------------------------------------------------------------

############################################################################

Commit:      8f9efca9a673d62f43e4ae26a153337a25b22ce3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8f9efca
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 15:09:41 2013 UTC

pkgman: PackageManager: no longer auto-exit() when a job fails

This way search and uninstall no longer fail when there's no connection
to the internet.

----------------------------------------------------------------------------

############################################################################

Commit:      0214aefd58d6ccca6fb2a7f6c6c7b57f858f422f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0214aef
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 15:19:14 2013 UTC

pkgman search: add -a/--all

Can be specified instead of a search string. Lists all packages.

----------------------------------------------------------------------------

############################################################################

Commit:      e64db4da44a5c23edf1e8c91c46e6d37072b3de1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e64db4d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 16:23:11 2013 UTC

Also mount the packagefs at ~/config

----------------------------------------------------------------------------

############################################################################

Commit:      f118c41467a62881ec1ae0ba61fecbbc43cf4048
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f118c41
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 16:41:29 2013 UTC

pkgman [un]install: fix option '-H'

----------------------------------------------------------------------------

############################################################################

Commit:      c4ce29a67e9a5ae0470260a941d54ad002a29802
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c4ce29a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Aug 25 16:41:56 2013 UTC

pkgman search: enable search in ~/config

----------------------------------------------------------------------------

############################################################################

Commit:      8b26ef6779119ba64f5de3ce47ea4cac154ab4e8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8b26ef6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug 26 10:57:41 2013 UTC

pkgman: PackageManager: Use flags instead of bools in ctor

----------------------------------------------------------------------------

############################################################################

Commit:      ce4f36769285c1c491491dac6a909c76b7d761ad
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ce4f367
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug 26 11:03:12 2013 UTC

pkgman: auto-refresh repositories only for update/install

----------------------------------------------------------------------------

############################################################################

Commit:      a1e681690c19a50d6c61e6c8bd98d6af4be146d4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a1e6816
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Aug 26 14:38:50 2013 UTC

Rework rule CopySetHaikuRevision

* Remove support for VCSs other than git.
* Make the haiku-revision file a regular build target and make sure it
  is built only once.
* Make determine_haiku_revision an actual shell script and simplify
  it a bit.

----------------------------------------------------------------------------

############################################################################

Commit:      1af14947fda3400fb889a0d6b35c811093d3b773
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1af1494
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Aug 27 21:26:54 2013 UTC

Add missing case for x86_64 as host CPU architecture.

----------------------------------------------------------------------------

############################################################################

Commit:      eb658691e97d877f640e808fdb637e5d335acd69
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eb65869
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Aug 27 21:27:37 2013 UTC

Add definitions for x86_64 repositories and package infos.

----------------------------------------------------------------------------

############################################################################

Commit:      af0200d6ef8503f111ec448dad8c7867ca0ea301
URL:         http://cgit.haiku-os.org/haiku/commit/?id=af0200d
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Aug 27 21:28:39 2013 UTC

Fix build problem in glue code for x86_64.

----------------------------------------------------------------------------

############################################################################

Commit:      be3833c9a41fbd09c1a4fa8c458f5cae5ff792ee
URL:         http://cgit.haiku-os.org/haiku/commit/?id=be3833c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 21:44:52 2013 UTC

BString: Add SetToFormatVarArgs()

----------------------------------------------------------------------------

############################################################################

Commit:      39d0e79f2be67f6da2843db3695257a7a93fd7d7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=39d0e79
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 21:45:12 2013 UTC

copyattr: Fix error output

----------------------------------------------------------------------------

############################################################################

Commit:      48e17c15bc9609307dc7341b357174f34b4f2f57
URL:         http://cgit.haiku-os.org/haiku/commit/?id=48e17c1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 22:11:11 2013 UTC

BPackageResolvableExpression: Add Matches()

Checks if the given BPackageResolvable respectively the BPackageVersion
pair satisfies the expression.

----------------------------------------------------------------------------

############################################################################

Commit:      bc0491ae52c1b1375129de52d96fc5698671ff46
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bc0491a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 22:12:11 2013 UTC

BPackageInfo: Add Matches()

Checks whether the package satisfies the given
BPackageResolvableExpression.

----------------------------------------------------------------------------

############################################################################

Commit:      617be97d8e2628f297d7308737039c05545c7115
URL:         http://cgit.haiku-os.org/haiku/commit/?id=617be97
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 22:20:44 2013 UTC

Add private storage kit class BCopyEngine

It provides the functionality to copy file system entries (also
recursively). The code originates from the copyattr sources. Some
copyattr specific functionality has been removed and the code has been
adjusted for library use (i.e. no exit()s or fprintf()s). An optional
controller object can be set to customize the behavior.

----------------------------------------------------------------------------

############################################################################

Commit:      90f9f1392b5bac87c6333ec9627eda462035617d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=90f9f13
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 22:35:37 2013 UTC

pkgman install: Add base package support

If any of the packages to install has requires a base package, that is
installed in a more general installation location, we copy the package
to the target installation location. Ideally we'd hard-link, but BFS
doesn't support that. Symlinks would be a small nightmare to maintain.

We might want to choose the installation location intelligently
depending on the base package requirement -- e.g. install curl_devel in
system rather than common, since curl is installed in system -- so we
can avoid duplicating packages.

----------------------------------------------------------------------------

############################################################################

Commit:      3db97b7688ee053129f5ba4fca434a40e7ff6f69
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3db97b7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 22:35:57 2013 UTC

Enable -Werror for package_repo and pkgman

----------------------------------------------------------------------------

############################################################################

Commit:      106d4015f20b51d3cc036588e8927d1a6bea56f8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=106d401
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 22:46:12 2013 UTC

rule ArchitectureSetup: Remove superfluous arch macro definition

The macro for the architecture is already defined by the compiler.

----------------------------------------------------------------------------

############################################################################

Commit:      86297ca0ffd327e9c0e4950b868ebc674f410734
URL:         http://cgit.haiku-os.org/haiku/commit/?id=86297ca
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 23:07:17 2013 UTC

actions DownloadLocatedFile: fail, if wget fails

----------------------------------------------------------------------------

############################################################################

Commit:      92693623e2f91febd6432d918f82d094954688f4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9269362
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Aug 27 23:08:15 2013 UTC

package daemon: DebugSupport.h: fix (64 bit) printf() formats

----------------------------------------------------------------------------

############################################################################

Commit:      2ada08d23a58ec0ea4459e0ec8c31f10142270c9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2ada08d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 28 01:22:34 2013 UTC

LibsolvSolver: Automatic whitespace cleanup

----------------------------------------------------------------------------

############################################################################

Commit:      682bf414dac2b5f48e498efe0b77671d028bebc6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=682bf41
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 28 10:43:42 2013 UTC

BSolverRepository: make polymorphic

----------------------------------------------------------------------------

############################################################################

Commit:      220b5e1f29ab8b428b4a4aa13637fa80c5f57049
URL:         http://cgit.haiku-os.org/haiku/commit/?id=220b5e1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 28 10:44:14 2013 UTC

BSolverRepository: Add {Remove,Delete}Package()

----------------------------------------------------------------------------

############################################################################

Commit:      75d15eb4c28f63d038c43325dcfa0f71df6211a6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=75d15eb
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 28 10:47:58 2013 UTC

BSolver: Extend FindPackages() functionality

* Add flag B_FIND_INSTALLED_ONLY to only return installed packages.
* Add FindPackages() version that finds packages like Install() or
  Uninstall() do.

----------------------------------------------------------------------------

############################################################################

Commit:      89cb0015110ee685f9f53debfde366626d1b0d3b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=89cb001
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 28 10:55:47 2013 UTC

BSolver::VerifyInstallation(): Add flags parameter

Only flag ATM is B_VERIFY_ALLOW_UNINSTALL. It tells to solver to suggest
uninstalling packages when necessary instead of considering such a case
a problem.

----------------------------------------------------------------------------

############################################################################

Commit:      3381a1bf81eb9d0c21e37cb031ab4b436294cbdf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3381a1b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 28 11:14:02 2013 UTC

pkgman uninstall: improve correctness

... with respect to inter-installation-location dependencies. E.g.
uninstalling a package from common should only uninstall packages
depending on it, when system doesn't still provide those dependencies.

We don't consider uninstalling packages from more specific installation
locations when dependencies are uninstalled from a more general one yet.

----------------------------------------------------------------------------

############################################################################

Commit:      03aa9653d08498b5def5a11f4cd06a4bdbd146ce
URL:         http://cgit.haiku-os.org/haiku/commit/?id=03aa965
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Aug 28 07:40:46 2013 UTC

Move UsePrivateSystemHeaders into arch-specific block.

----------------------------------------------------------------------------

############################################################################

Commit:      71046951f8e94f9a1264eb11442052ac7aa4535c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7104695
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Aug 28 21:32:30 2013 UTC

Fix build of pkgman on x86_64 by use of B_PRI... define.

----------------------------------------------------------------------------

############################################################################

Commit:      1e6177c22e993fc30de9b612cd533aef7bedb431
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1e6177c
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Aug 29 20:06:12 2013 UTC

Fix broken build of package kit (due to warnings) for x86_64.

----------------------------------------------------------------------------

############################################################################

Commit:      d1246f33f039518f5c62953007d8fd522ace94e7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d1246f3
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Aug 29 20:24:36 2013 UTC

Drop use of non-existing variable in KernelAddon rule.

* TARGET_KERNEL_PIC_FLAGS was probably meant to be 
  TARGET_KERNEL_PIC_CCFLAGS at the time this had been added in 2005.
  As correcting the name would mean that kernel add-ons would be 
  compiled such that they wouldn't be position independent, dropping
  the variable makes more sense (which is just a cleanup and doesn't 
  change anything due to that variable being always empty)

----------------------------------------------------------------------------

############################################################################

Commit:      c5c787ea417c1a1c9f0fdb7ef3a5b807521f0093
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c5c787e
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Aug 29 20:33:01 2013 UTC

Fix build problems of btrfs and packagefs for x86_64.

* Both filesystems used to link to a static kernel-zlib, which 
  was being built with -fno-pic. This doesn't work on x86_64 as the 
  filesystem add-ons are meant to be relocatable, which requires their 
  code to be compiled as position independent.
  Solve that by moving zlib into the kernel, so any add-on can just use
  it from there (packagefs is mandatory, so we can't really do without 
  zlib anyway).

----------------------------------------------------------------------------

############################################################################

Commit:      c92aabd43433dfb3d5d26a1dec315693a94d9ec2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c92aabd
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Aug 29 21:11:14 2013 UTC

Fix build of pkgman with gcc2.

* I have no idea why, but gcc2 considers BSolverRepository* and
  PackageManager::InstalledRepository* as distinct pointer types, which
  it doesn't like to compare without a cast. Circumvent by static 
  casting to BSolverRepository*.

----------------------------------------------------------------------------

############################################################################

Commit:      a54a50b48e316421f2735e9c46219164e16dd8cd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a54a50b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Aug 28 13:27:09 2013 UTC

pkgman: add support for [un]installing/updating in system

----------------------------------------------------------------------------

############################################################################

Commit:      7af664c9d83ad7cc1d9f765833e49a2f492800fc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7af664c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 29 20:32:55 2013 UTC

LibsolvSolver: change handling of fInstalledRepository

We update/set it in _AddRepositories() instead of in AddRepository(). In
code needing it earlier _InstalledRepository() can be used.

This change allows calling to SetInstalled() on a repository that has
already been added to the solver.

----------------------------------------------------------------------------

############################################################################

Commit:      08fb013f56bf7119a68ea7c06cac8f947dc4661e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=08fb013
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 29 20:38:08 2013 UTC

pkgman uninstall: Verify more specific locations

... after having determined the packages to remove from the selected
installation location. This uninstalls packages from the more specific
locations when their dependencies have been removed.

----------------------------------------------------------------------------

############################################################################

Commit:      6692db5c1c028bd7a08333d0df4b27122dd43513
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6692db5
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 29 21:07:11 2013 UTC

BPackageInfo: Add fileName property

The property is archived and unarchived, but otherwise not yet stored.
If not set, FileName() returns CanonicalFileName(). Can be used for
packages like haiku.hpkg etc. that don't have a properly qualified file
name (yet).

----------------------------------------------------------------------------

############################################################################

Commit:      dda51ada4c5445986f222c533495fa043801490a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dda51ad
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 29 21:07:40 2013 UTC

package daemon: Package: Set the package info file name

----------------------------------------------------------------------------

############################################################################

Commit:      a0cb235c0ebfe6f62a975a884b6eb9a0f3708970
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a0cb235
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Aug 29 21:08:22 2013 UTC

pkgman: Use BPackageInfo::FileName() instead of Canonical*()

----------------------------------------------------------------------------

############################################################################

Commit:      83462cc28d356d564a818c1d34605ed2ec83f274
URL:         http://cgit.haiku-os.org/haiku/commit/?id=83462cc
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Aug 31 19:18:28 2013 UTC

Refactor reusable pkgman code into libpackage

* Move RepositoryBuilder class to libpackage and add B* prefix to name.
* Pull BPackageManager class out of PackageManager and move to
  libpackage. The base class is customizable via three handler objects
  responsible for transaction handling, request execution, respectively
  user interaction.
* Reorganize _ApplyPackageChanges(): Now we first prepare the
  transactions for all affected installation locations (downloading
  files etc.) and then commit them.

----------------------------------------------------------------------------

############################################################################

Commit:      0cb3f7092620ff73abc6daadd866a4e07117bd37
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0cb3f70
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Sep  1 12:30:28 2013 UTC

Revert "Fix build problems of btrfs and packagefs for x86_64."

This reverts commit f272e63f393449d3a816970ca632764895a78cd6.

----------------------------------------------------------------------------

############################################################################

Commit:      64c4bd1dc27229a307186bb2f10483b9e6c2a449
URL:         http://cgit.haiku-os.org/haiku/commit/?id=64c4bd1
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Sep  1 12:38:17 2013 UTC

2nd attempt at fixing build of btrfs and packagefs.

* adding zlib to the kernel unfortunately introduces a cyclic dependency
  with respect to the zlib, haiku and haiku_devel packages (AFAICS)
* circumvent this by building kernel_zlib as a static library again,
  this time with PIC, such that it can be used by kernel add-ons

----------------------------------------------------------------------------

############################################################################

Commit:      fb99605f490abbeeaff4373193e5cccd619025a6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fb99605
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sun Sep  1 14:44:18 2013 UTC

Handle rigged source packages when determining port name.

* I'm not sure this makes much of a difference, but I thought it's 
  better to play it safe.

----------------------------------------------------------------------------

############################################################################

Commit:      818ed1eaf04e4928714415a913700a0a381b9603
URL:         http://cgit.haiku-os.org/haiku/commit/?id=818ed1e
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Sep  6 15:21:35 2013 UTC

Remove blocks for secondary packages for x86_64.

----------------------------------------------------------------------------

############################################################################

Commit:      a84cf45805e67d14fa821202772b92139bda9957
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a84cf45
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Sep  6 20:49:08 2013 UTC

Add missing search path for <build>package_repo.

----------------------------------------------------------------------------

############################################################################

Commit:      797c1a759078bf4d4d64bde930f8f525faaa3521
URL:         http://cgit.haiku-os.org/haiku/commit/?id=797c1a7
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Sep  7 13:25:15 2013 UTC

Update x64_64 to current state of things.

----------------------------------------------------------------------------

############################################################################

Commit:      a4b13eda69875a991450e341536d4f15334b3461
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a4b13ed
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Sep  7 13:25:55 2013 UTC

Increase size of bootstrap image to 20 GB.

----------------------------------------------------------------------------

############################################################################

Commit:      c138f1f2afff354f4b77c2c07a74c23af469bcb3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c138f1f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Sep  1 10:11:24 2013 UTC

BRepositoryBuilder: Add constructor for pre-init'ed repository

----------------------------------------------------------------------------

############################################################################

Commit:      cf3bb0d753b4cf0a90db533152c58af2a568fc9e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cf3bb0d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Sep  1 10:19:09 2013 UTC

BPackageManager: Abstract installed repository initialization

* Rename TransactionHandler -> InstallationInterface and
  DaemonClientTransactionHandler -> ClientInstallationInterface.
* Add InstallationInterface::InitInstalledRepository(). Use in
  _AddInstalledRepository() to get the repository packages instead of
  using the package roster. The ClientInstallationInterface
  implementation does it that way.

----------------------------------------------------------------------------

############################################################################

Commit:      43bd5a49c715b8b2dcbb1df5950e0274be264a89
URL:         http://cgit.haiku-os.org/haiku/commit/?id=43bd5a4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Sep  1 12:10:33 2013 UTC

<package/Request.h>: Don't leak JobQueue into public namespace

----------------------------------------------------------------------------

############################################################################

Commit:      a87c7d67e380d2ec4e9f7c121945ae2f84c40942
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a87c7d6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Sep  1 12:12:22 2013 UTC

Don't use BPackageKit::BPrivate; avoids clashes

----------------------------------------------------------------------------

############################################################################

Commit:      18f5cd171bc62a0bf90c48f3a07a8f6e2f8b2297
URL:         http://cgit.haiku-os.org/haiku/commit/?id=18f5cd1
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep  9 22:36:54 2013 UTC

Explicitly denote BPrivate to avoid clashes

----------------------------------------------------------------------------

############################################################################

Commit:      46d77ed7da9f732996740c90ff0ce2e93869f650
URL:         http://cgit.haiku-os.org/haiku/commit/?id=46d77ed
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep  9 22:43:32 2013 UTC

package daemon: Delay handling node monitor events to group them

----------------------------------------------------------------------------

############################################################################

Commit:      94dc74b027f8689bc67d616bf771fb4415350453
URL:         http://cgit.haiku-os.org/haiku/commit/?id=94dc74b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:36:07 2013 UTC

More explicit denoting the BPrivate namespace

----------------------------------------------------------------------------

############################################################################

Commit:      9b2fd3419634459adcad618943eb16f3e01231d0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9b2fd34
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:36:40 2013 UTC

Add BSolverPackageSpecifierList::AppendSpecifiers()

----------------------------------------------------------------------------

############################################################################

Commit:      d4f9c465fdbda627baa6a2f7d5ce65e246116e51
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d4f9c46
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:37:35 2013 UTC

BDaemonClient: add comment

----------------------------------------------------------------------------

############################################################################

Commit:      56b1376090192c61ea7b681c3db8c6bce54228fe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=56b1376
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:37:59 2013 UTC

BActivationTransaction: Make BArchivable

----------------------------------------------------------------------------

############################################################################

Commit:      5a5d146510f3459c597f4c7ab35cc423db7dd321
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5a5d146
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:42:57 2013 UTC

BPackageManager: Make _InstallationRepository() protected

----------------------------------------------------------------------------

############################################################################

Commit:      7e0d2c4f94ac5381a39ea2da4b183e9c39635877
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7e0d2c4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:54:10 2013 UTC

BPackageManager: Add alternate Install()/Uninstall()/Update()

----------------------------------------------------------------------------

############################################################################

Commit:      c032903abc04a8ac1fec08704e0a8e7212402711
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c032903
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:55:44 2013 UTC

BPackageManager: Add VerifyInstallation()

----------------------------------------------------------------------------

############################################################################

Commit:      018173a2f5ba97ee56e8579d63261d55d1e8ccae
URL:         http://cgit.haiku-os.org/haiku/commit/?id=018173a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:57:33 2013 UTC

BPackageManager: Add ResultComputed() callback

----------------------------------------------------------------------------

############################################################################

Commit:      36204024cfc0c357f9a422317665256f8ae2443f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3620402
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:58:07 2013 UTC

BPackageManager: Add InstalledRepository::EnablePackage()

----------------------------------------------------------------------------

############################################################################

Commit:      d3c96ad80967b792ed25425288c374624273295d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d3c96ad
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 16:59:35 2013 UTC

BPackageManager: Support pre-added packages

... as needed for the package daemon. _PreparePackageChanges() doesn't
try to clone them in this case.

----------------------------------------------------------------------------

############################################################################

Commit:      99f9333a2a6f17c91995afaf74c4e120862d3d4c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=99f9333
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 17:01:25 2013 UTC

BPackageManager::_CommitPackageChanges(): Fix error handling

The error returned by CommitTransaction() is just indicates whether
transactionResult has been initialized.

----------------------------------------------------------------------------

############################################################################

Commit:      383ac67cfab616cbaf21f028b319ca4662558ba3
URL:         http://cgit.haiku-os.org/haiku/commit/?id=383ac67
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 17:03:21 2013 UTC

package daemon: Let Root know whether it is the system root

----------------------------------------------------------------------------

############################################################################

Commit:      38c62dfb8b5acffe9373b19e087d037d38a281a5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38c62df
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 10 17:07:34 2013 UTC

package daemon: Implement dependency resolution support

... for package changes performed manually by the user (i.e.
adding/removing files in a packages directory). Currently only done for
the system root. Alternative roots should still work as before, so this
shouldn't affect haikuporter (not tested yet).

Needs some more work (e.g. the GUI part).

----------------------------------------------------------------------------

############################################################################

Commit:      406ad5becebc1761f0858fbd0af64f0be8870ec0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=406ad5b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 02:43:05 2013 UTC

BString::SetToFormat(): Add printf format function attribute

----------------------------------------------------------------------------

############################################################################

Commit:      b1c3379c7e17a5368f3ce6642e3e995143779481
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b1c3379
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 02:43:47 2013 UTC

_user_debug_output(): Fix for long strings

The wrong length was passed to debug_puts().

----------------------------------------------------------------------------

############################################################################

Commit:      4a8da96088a5aa35d7377c97746f6151ff0e6457
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4a8da96
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 02:46:36 2013 UTC

BLayoutUtils: Add GetLayoutTreeDump()

Returns a debug output string listing the basic layout properties of
the view/item hierarchy.

----------------------------------------------------------------------------

############################################################################

Commit:      5c56812d900c7777c62eab899c0bb553459ef67b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5c56812
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 02:47:28 2013 UTC

BControlLook::ComposeSpacing(): Avoid non-integers

----------------------------------------------------------------------------

############################################################################

Commit:      88f12ad84fa46739ba94376b5324cdc35bd50b9c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=88f12ad
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 02:51:03 2013 UTC

Add private BViewPort class

* It simplifies putting regular layout-aware views or layout items into
  a BScrollView.
* Not quite complete yet: Height-for-width support is missing, but that
  also requires fixing BScrollView in this respect. Scroll bar auto-hide
  support would be nice as well.

----------------------------------------------------------------------------

############################################################################

Commit:      b53a2e6af53a5f375e63a50c4a021bb8967cb2d7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b53a2e6
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 02:53:06 2013 UTC

package daemon: ProblemWindow: Use a scroll view

----------------------------------------------------------------------------

############################################################################

Commit:      c159d0cfd1574d6b39482b4d6f7b3bb4187ab1c5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c159d0c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 03:07:14 2013 UTC

BActivationTransaction: Fix unarchiving constructor

----------------------------------------------------------------------------

############################################################################

Commit:      9f12d254b1dbc2aa05274140d3bce78645aa4231
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9f12d25
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 11:39:58 2013 UTC

package daemon: ProblemWindow: Simplify getting the font height

----------------------------------------------------------------------------

############################################################################

Commit:      f2cba19f533f51ee958a1a743bb6414e1eb8c96e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f2cba19
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 13:05:30 2013 UTC

package daemon: ProblemWindow: Fix message constant types

----------------------------------------------------------------------------

############################################################################

Commit:      6c883121700a3339bcd43572ebcd72c415a3124a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6c88312
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 11 13:06:44 2013 UTC

package daemon: Replace changes alert by a window

----------------------------------------------------------------------------

############################################################################

Commit:      b3eaedd14a65a263d0cb9b7f1a477f175846d1a4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b3eaedd
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Sep 12 12:33:24 2013 UTC

Add missing packages for x86_64 to repository.

* the Pe package doesn't work (Pe won't start), I'm still
  investigating as to why that is

----------------------------------------------------------------------------

############################################################################

Commit:      dee358f0eccb9d6f6cc2008327089c60e408ff0c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dee358f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 12 21:27:22 2013 UTC

AddBootModuleSymlinksToContainer: Fix symlink target

The symlink was only correct, if the container was a package. For
containers with a non-empty path to the system directory the link would
duplicate the system directory path.

----------------------------------------------------------------------------

############################################################################

Commit:      b0d7a45c3d688a1e1488baa0592ac8038c4f3534
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b0d7a45
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 12 21:27:51 2013 UTC

FloppyBootImage: Add packagefs

----------------------------------------------------------------------------

############################################################################

Commit:      3465e718e75b0bf46fb4c060229645d75aa862b9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3465e71
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 12 21:29:16 2013 UTC

boot tarfs: Support resolving "." and ".." directory entries

This makes resolving the boot module symlinks work.

----------------------------------------------------------------------------

############################################################################

Commit:      cc0838da34abe9840b09cc5c9540b7ed9e85bd45
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cc0838d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 12 21:31:47 2013 UTC

VFS boot: Mount packagefs when booting off an image

... and the mounted boot volume looks like a PM Haiku. This gets the CD
boot going.

----------------------------------------------------------------------------

############################################################################

Commit:      76cd5b091ed3347d95af8765214e2bda2c32de92
URL:         http://cgit.haiku-os.org/haiku/commit/?id=76cd5b0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 12 22:04:51 2013 UTC

Move stuff from HaikuImageCommon to new rule

... AddPackagesAndRepositoryVariablesToContainerScript.

----------------------------------------------------------------------------

############################################################################

Commit:      f11d742febc634d2de75c236d172fb58ae4791bb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f11d742
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 12 22:05:39 2013 UTC

HaikuCD: Support package resolution

----------------------------------------------------------------------------

############################################################################

Commit:      cf70d345b2a6a2612f32868fe5b81698f3282434
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cf70d34
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 12 23:02:28 2013 UTC

Merge remote-tracking branch 'haiku/master' into package-management

This reverts 8f7f28a7c3db28711920ad5d15df401fae90bcf1 (OpenGL: Upgrade
to
Mesa 9.2).

Conflicts:
        build/jam/BuildFeatures
        build/jam/HaikuImage
        build/jam/OptionalPackages
        build/scripts/build_cross_tools_gcc4
        src/add-ons/opengl/swpipe/Jamfile
        src/apps/diskusage/Jamfile
        src/kits/tracker/ContainerWindow.cpp
        src/kits/tracker/DeskWindow.cpp
        src/kits/tracker/Jamfile

----------------------------------------------------------------------------

############################################################################

Commit:      c911075e52de2132164f69847f262c4df93a82bd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c911075
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Fri Sep 13 22:13:37 2013 UTC

Drop debug output.

----------------------------------------------------------------------------

############################################################################

Commit:      689cebd222ad7c4e0e3d54ce49b28fb755d1e56a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=689cebd
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Sep 14 13:52:20 2013 UTC

Add version of Pe working on x86_64

----------------------------------------------------------------------------

############################################################################

Commit:      8f3f0ee615a0b58a2864fb65ff3f806a4d0f3e2a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8f3f0ee
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Sep 14 17:48:49 2013 UTC

Added next version of Pe for x86_64.

----------------------------------------------------------------------------

############################################################################

Commit:      af8587ce40c2a181ab9e00ab83aee70bf9e54883
URL:         http://cgit.haiku-os.org/haiku/commit/?id=af8587c
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Sat Sep 14 17:51:09 2013 UTC

Added new jam command 'build-remote-repository'.

* build-remote-repository <packages> uploads the given set of packages
  to the server and builds the remote repository

----------------------------------------------------------------------------

############################################################################

Commit:      33dc65c7ff8c5878d83b545629c4db4dd67546bf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=33dc65c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sat Sep 14 21:36:11 2013 UTC

package daemon: Ignore only entry events of packages to remove

----------------------------------------------------------------------------

############################################################################

Commit:      0af009d250c4f07925a26d60c735e94746e8de62
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0af009d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Sep 15 09:20:45 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9957

package daemon: Fix use of destroyed objects

Fixes #9957.

----------------------------------------------------------------------------

############################################################################

Commit:      278f66b6b1dd47b3834c768308fa3d21a5eadb88
URL:         http://cgit.haiku-os.org/haiku/commit/?id=278f66b
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Sat Sep 14 03:25:56 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:17 2013 UTC

x86[_64]: Enable NX on non-boot CPUs as soon as possible

----------------------------------------------------------------------------

############################################################################

Commit:      1a6ebaa02ea84117961e2a412fdc07f75fc634f9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1a6ebaa
Author:      Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx>
Date:        Sat Sep 14 04:14:01 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:17 2013 UTC

Update translations from Pootle

----------------------------------------------------------------------------

############################################################################

Commit:      28390f696405bea8bebd66d0fa546be797043e81
URL:         http://cgit.haiku-os.org/haiku/commit/?id=28390f6
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Sat Sep 14 09:00:07 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:18 2013 UTC

ext2: access the parent variable once checked it's non null

* cleanup
* add some inode flags we don't use

----------------------------------------------------------------------------

############################################################################

Commit:      a933ad6dbc4c65c3344084dcbc9ea6a2817e9c8c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a933ad6
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Sat Sep 14 09:48:37 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:18 2013 UTC

virtio_net: initial skeleton driver.

----------------------------------------------------------------------------

############################################################################

Commit:      5594217b7f252284955547636a6edcc97dbd214d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5594217
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sat Sep 14 15:07:55 2013 UTC

Fix accidentally truncated addresses in call frame unwind.

----------------------------------------------------------------------------

############################################################################

Commit:      672b2600bca6c06ecdeae9739b8141265f6afebe
URL:         http://cgit.haiku-os.org/haiku/commit/?id=672b260
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sat Sep 14 15:23:04 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:19 2013 UTC

ARM: kernel: Fix compilation issue with new gas.

Turns out the new gas does not like spaces :(

----------------------------------------------------------------------------

############################################################################

Commit:      1ea8fd5216a6c2c7b48efc1f4f5f774864fc8692
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1ea8fd5
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sat Sep 14 15:46:00 2013 UTC

Debugger: Add missing std::nothrow.

----------------------------------------------------------------------------

############################################################################

Commit:      5077cb09cb7a05a873599df1f8bf1dbfcdc60d75
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5077cb0
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sat Sep 14 15:53:54 2013 UTC

Debugger: add Inspect context item to Registers view.

- Allows one to treat the value of a register as a memory
  address and jump directly to inspecting said address.

----------------------------------------------------------------------------

############################################################################

Commit:      eb8616334b07e50fe041f0011abd25956b858e56
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eb86163
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Sat Sep 14 13:37:24 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:20 2013 UTC

virtio_net: add feature labels.

----------------------------------------------------------------------------

############################################################################

Commit:      28cf626d45e65e0c1c5a2919f7a471425ee2a1ad
URL:         http://cgit.haiku-os.org/haiku/commit/?id=28cf626
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Sat Sep 14 16:01:41 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:21 2013 UTC

virtio_net: allocate queues, read macaddress, handle ioctl.

----------------------------------------------------------------------------

############################################################################

Commit:      5a2c5827e4c0360ed36eddb24b759872d685ed40
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5a2c582
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Sat Sep 14 16:11:43 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:21 2013 UTC

add a constant for 10G base T ethernet.

----------------------------------------------------------------------------

############################################################################

Commit:      acd58c2f6c9778fd8fea213a94dd709220256406
URL:         http://cgit.haiku-os.org/haiku/commit/?id=acd58c2
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sat Sep 14 18:13:36 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:21 2013 UTC

ARM: boot: Make dd on MacOS happy

Turns out dd on MacOS does not like '1M' as size descriptor, but
wants '1m'. To prevent us breaking Linux builds (as it does not
accept 1m), just use the actual number of bytes explicitely instead.

----------------------------------------------------------------------------

############################################################################

Commit:      a7e9ce676fb1c4f4ade5e8dfc1b43053c035dbbc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a7e9ce6
Author:      John Scipione <jscipione@xxxxxxxxx>
Date:        Sat Sep 14 18:55:53 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:22 2013 UTC

Use uname -s instead of uname -o

...since BSD uname (on OS X at least) doesn't have a -o param, only a -s,
Haiku has both, and both print "Haiku".

----------------------------------------------------------------------------

############################################################################

Commit:      736c1f8c5160c2dafcbbcc5bafe72e00c1a16f1e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=736c1f8
Author:      Jorma Karvonen <karvonen.jorma@xxxxxxxxx>
Date:        Sat Sep 14 20:43:44 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:22 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/7162

Localize bitsinfo

Closes ticket #7162.
Signed-off-by: Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      cae234acf0b0ba5609033d7ec0d91d3aac6ae07c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cae234a
Author:      Jorma Karvonen <karvonen.jorma@xxxxxxxxx>
Date:        Sat Sep 14 20:47:58 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:23 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/7164

Localize bmpinfo

Closes ticket #7164
Signed-off-by: Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      6a66acded810ada5d2a897e1256f2a117e0f8407
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6a66acd
Author:      Jorma Karvonen <karvonen.jorma@xxxxxxxxx>
Date:        Sat Sep 14 20:52:43 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:23 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/7168

Localize tgainfo

Closes ticket #7168
Signed-off-by: Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      89f89a07e173d8789fb916e88b00a6ec9f6f77d5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=89f89a0
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sat Sep 14 18:28:54 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:24 2013 UTC

ARM: boot: pass boot disk identifier

This to stop the vfs_boot.cpp code from complaining.

----------------------------------------------------------------------------

############################################################################

Commit:      b9e8ec7bc02de57d5031196fc88cf44a94a6621d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b9e8ec7
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sun Sep 15 01:47:40 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:24 2013 UTC

debugger/debuganalyzer: Remove the explicit -Werror from Jamfile

Specifying -Werror in the Jamfiles directly prevents the build
system from disabling error-on-warning for some arch specific
warnings (or even globally), breaking the ARM build.

The "src/apps" directory is already setup to compile with -Werror
by the build system anyway, so remove the explicit setting here.

----------------------------------------------------------------------------

############################################################################

Commit:      0fa2d68cdfc5b4c1c1f2c6086aa1f2668696cded
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0fa2d68
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sun Sep 15 01:59:19 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:24 2013 UTC

ARM: stub out missing int64 atomic functions

Also, add an item to the TODO list for this. Really need to figure it out 
soon...

----------------------------------------------------------------------------

############################################################################

Commit:      ae4ad7037fcbb1e7fefd8d44f2f9f069befab135
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ae4ad70
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sun Sep 15 02:39:37 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:25 2013 UTC

ARM: stub out makebootable so we can build a full haiku-image

----------------------------------------------------------------------------

############################################################################

Commit:      38bd76a0e5c3d6051d54e00046ec264ed6229f86
URL:         http://cgit.haiku-os.org/haiku/commit/?id=38bd76a
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sun Sep 15 02:55:07 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:25 2013 UTC

u-boot: make sure host makebootable builds too

Somehow missed these few lines in my last commit.

----------------------------------------------------------------------------

############################################################################

Commit:      ed6722adc45b5372f2066d9ff48046100714ac7e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ed6722a
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sun Sep 15 05:26:02 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:26 2013 UTC

norflash: Add hack to hide start of NOR flash

This is a workaround for hiding U-Boot that is stored in the first 2
128k blocks, so we can put a BFS image into NOR to boot from (since
we do not have support for SD/MMC yet in Haiku).

When manually putting a BFS filesystem at block 3 we actually get
right up to the point where BootScript is attempted to be executed!

----------------------------------------------------------------------------

############################################################################

Commit:      5308f230252c431646f6e4d69c94ff00144482df
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5308f23
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Sun Sep 15 09:21:01 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:26 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9589

usb_disk: returns B_DEV_NOT_READY for SCSI_SENSE_KEY_NOT_READY

...instead of B_DEV_NO_MEDIA. The latter seems to imply we stop testing
the unit is ready in usb_disk_device_added().
Based on a patch provided by markh in #9589.

----------------------------------------------------------------------------

############################################################################

Commit:      92ab471c493e3a126e845248eeb2da26f46f9e5e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=92ab471
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sun Sep 15 09:31:41 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:26 2013 UTC

ntfs: make sure our confidence is higher then the intel partition add-on

This as the intel partition addon just does a very weak test, and the
NTFS test is much safer. This prevents NTFS filesystems that have a
valid boot sector signature but no partition table, from being
picked up by the intel partition table add-on instead of the ntfs
add-on.

Patch provided by markh, thanks!

----------------------------------------------------------------------------

############################################################################

Commit:      dc377ab5225383e027b8840ff3d8a3370b58de5b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dc377ab
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sun Sep 15 09:45:40 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:37 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9790

beos_mime: add sniffer rule for .mp3 files

Patch from markh (ticket #9790), thanks!

----------------------------------------------------------------------------

############################################################################

Commit:      c75ca47d05137675026a329882cd9a102a06eecd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c75ca47
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Sun Sep 15 12:39:56 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:38 2013 UTC

dpc: fix comments spelling.

----------------------------------------------------------------------------

############################################################################

Commit:      02cac492509721580adf7ef2400e7ca5fefa54c6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=02cac49
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sun Sep 15 13:32:19 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9960

Debugger: Implement #9960.

- DebugReportGenerator now retrieves and dumps disassembly for the crashing
  function up to the crashing line.

----------------------------------------------------------------------------

############################################################################

Commit:      779d8213e9fa6de8c43685094de1c69006b99f98
URL:         http://cgit.haiku-os.org/haiku/commit/?id=779d821
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Sun Sep 15 15:21:11 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:38 2013 UTC

HaikuDepot: Use PackageInfoRefs instead of PackageInfos

 Instead of storing PackageInfo objects directly in the
 PackageLists, store PackageInfoRefs instead. This makes a
 lot of operations much cheaper, and it also allows making
 changes to a PackageInfo (which now exists only once)
 and have those changes reflect everywhere. In particular,
 it will be easier to populate some information of the
 PackageInfo lazily, and to listen for changes on a
 PackageInfo object.

----------------------------------------------------------------------------

############################################################################

Commit:      9202a719e143ce324d611990d2fb40939cf7e8c6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9202a71
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Sun Sep 15 15:24:15 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:39 2013 UTC

HaikuDepot: Add interface for PackageInfoListener.

 Also defines PackageInfoEvent.

----------------------------------------------------------------------------

############################################################################

Commit:      697c0d7c63ed9ffdbdfa36451673c2193018b2e4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=697c0d7
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Sun Sep 15 13:22:43 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:39 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9956

hdaudio: check pin sense on init, don't wait for a switch event

with headphones plugged on boot, sound was still enabled on speakers.
see #9956

----------------------------------------------------------------------------

############################################################################

Commit:      92dbf1869ff45b8df5396f6d22e798bcef1682c4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=92dbf18
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Sun Sep 15 15:46:01 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:40 2013 UTC

HaikuDepot: Added some listener support to PackageInfo

----------------------------------------------------------------------------

############################################################################

Commit:      1c38517e256ac29d81f2b36e896200faefb8043e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1c38517
Author:      Siarzhuk Zharski <zharik@xxxxxx>
Date:        Sun Sep 15 21:39:44 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:40 2013 UTC

ListView: More safe ScrollToSelection implementation

The Problem was observed in the Time Preferences Zone view - the
selection was set inside of TimeZoneView::DoLayout() call on
the OutlineListView control that had zero-sized Bounds. After
the control was resized the selection stay mainly hidden "under"
the upper edge. The Problem looks like generic so should be fixed
in the interface kit code. Proposed fix introduces additional check
for the scroll position to not cross the top edge of control.

----------------------------------------------------------------------------

############################################################################

Commit:      6b48fa0994c9fe5cadb92141f198a05e8a9cc586
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6b48fa0
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Mon Sep 16 09:47:23 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:40 2013 UTC

usb_disk: fixes 64bit trace build

----------------------------------------------------------------------------

############################################################################

Commit:      1a07e84d0381f46de01d03c55648288294f95e56
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1a07e84
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Mon Sep 16 11:27:42 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:40:41 2013 UTC

usb_disk: fixed mounting a USB disk on x86_64

* usb_disk_prepare_partial_buffer() was miscalculating the offset in the temp 
buffer,
which led to a page fault later when copying to the user buffer.

----------------------------------------------------------------------------

############################################################################

Commit:      8f284ef32d8597ac987aa0ba1c84c7b90c866961
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8f284ef
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Mon Sep 16 13:05:28 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:41:58 2013 UTC

intel_extreme: don't expose overlay in accelerant when not allocated

... in the driver.

----------------------------------------------------------------------------

############################################################################

Commit:      af8e2aa4736c69637c294b3b6351243e9c7551fd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=af8e2aa
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 11:28:28 2013 UTC

Debugger: add settings manager for source location mappings.

- If it was necessary to help the debugger locate a particular source
  file due to it not being found on disk at the location specified in
  the debug information, the associated user-supplied path mappings
  are now saved and restored in the team settings. The file manager still
  needs a bit of extra work to apply these as files are added though.

----------------------------------------------------------------------------

############################################################################

Commit:      64aae117163474939e8936d01980afe50989636f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=64aae11
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 13:21:18 2013 UTC

Fix incorrect name usage.

----------------------------------------------------------------------------

############################################################################

Commit:      ad054cf1e108c98b3a9ea22f3ee74ff800c1fa81
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ad054cf
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 13:22:05 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9961

Debugger: Implement #9961.

- FileManager now saves any explicitly located file mappings,
  and properly restores them when reloading the same team/files later.

----------------------------------------------------------------------------

############################################################################

Commit:      f7e1dc6c46f33a4ca2ab7f46f4bb1320c4e26011
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f7e1dc6
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 17:45:27 2013 UTC

Debugger: Add selection support to MemoryView.

- The Inspector's memory view now supports selecting chunks of the hex display 
in
  the manner one would in a TextView. The selection can also be copied to the 
clipboard,
  or if it matches the size of a target address, can be used as input for an 
address to
  inspect directly.

Still needs some fine tuning, but basically works.

----------------------------------------------------------------------------

############################################################################

Commit:      59cef1fa18eb75ea568bb72324bbbb91b1f156ad
URL:         http://cgit.haiku-os.org/haiku/commit/?id=59cef1f
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 17:59:33 2013 UTC

Build fix.

----------------------------------------------------------------------------

############################################################################

Commit:      153c6c4a405b45c7f7c50de381ec54ddf70075e4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=153c6c4
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 18:22:24 2013 UTC

Debugger: Fix data copy issue.
- B_PRIx8 unfortunately doesn't necessarily strictly stay within the bounds
  of an 8-bit hex constant, so force the size passed to snprintf to make it
  that way.

----------------------------------------------------------------------------

############################################################################

Commit:      62b27e62773b40f3922c6a7a24d9b095f2beb187
URL:         http://cgit.haiku-os.org/haiku/commit/?id=62b27e6
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 19:28:19 2013 UTC

Fix previous format problem more correctly.

Thanks Ingo, Oliver and Ithamar for the hint.

----------------------------------------------------------------------------

############################################################################

Commit:      7eec822d5eb456c78ffeb5c048e7fa1c9885e13b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7eec822
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Mon Sep 16 20:07:43 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:01 2013 UTC

HaikuDepot: Package information can be retrieved asynchronously

----------------------------------------------------------------------------

############################################################################

Commit:      b9898c45f4c66e02becc8d462481767d6522269e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b9898c4
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Mon Sep 16 20:11:06 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:01 2013 UTC

HaikuDepot: Also lock the model when updating the list

----------------------------------------------------------------------------

############################################################################

Commit:      f7628f839d15c4bac0d6b4dfa11683c21eb448b7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f7628f8
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Mon Sep 16 20:17:42 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:02 2013 UTC

HaikuDepot: Fixed selecting the right package when the list is sorted.

----------------------------------------------------------------------------

############################################################################

Commit:      72b9e4a7bc98fc13f830ce4ba787cbc571ef3845
URL:         http://cgit.haiku-os.org/haiku/commit/?id=72b9e4a
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Sep 16 20:38:29 2013 UTC

Fix gcc2 build.

----------------------------------------------------------------------------

############################################################################

Commit:      ed6f171aa6886208a0a2f2e695fbee97133ca3aa
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ed6f171
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Mon Sep 16 21:16:52 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:03 2013 UTC

BColumnListView: Enable invalidating rows, fix SetField()

 * Seems like there was no easy way to simply invalidate
   a given BRow. Introduced BColumnListView::InvalidateRow().
 * BRow::SetField() tried to invalidate the row, but invalidated
   the listview instead of the BOutlineView responsible for
   drawing the list contents. Use the new InvaalidateRow().

----------------------------------------------------------------------------

############################################################################

Commit:      b748950b74ee3eb558d66fcd9cc3fae8b0f91adf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b748950
Author:      Stephan Aßmus <superstippi@xxxxxx>
Date:        Mon Sep 16 21:18:59 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:03 2013 UTC

HaikuDepot: Update package list when necessary

 * Pass the Model lock to the PackageListView.
 * Register a PackageInfoListener with every listed package.
 * Update the rating when it is fetched.

----------------------------------------------------------------------------

############################################################################

Commit:      533036dde7b27174e71d77f202ed94fc4d6e2fd1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=533036d
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Mon Sep 16 21:08:46 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:03 2013 UTC

libroot: Make sure PTHREAD_STACK_MIN is in the allowed range

----------------------------------------------------------------------------

############################################################################

Commit:      772568c4764cfe4212b5940b124545b2f8d12862
URL:         http://cgit.haiku-os.org/haiku/commit/?id=772568c
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Mon Sep 16 21:16:29 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:04 2013 UTC

system: Use B_PAGE_SIZE to define stack sizes

As korli suggested use B_PAGE_SIZE for defining stack size related
definitions what seems to be more natural for them  and also may
help if we ever support an architecture with page size different than
4kB.

----------------------------------------------------------------------------

############################################################################

Commit:      4efb0a6d36d18fb00249cd0aeee4309956515ae4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4efb0a6
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Mon Sep 16 21:19:23 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:04 2013 UTC

posix: Update PTHREAD_STACK_MIN to match MIN_USER_STACK_SIZE

Thanks for pointing this out Pete!

----------------------------------------------------------------------------

############################################################################

Commit:      c315b2b18a49cad52fcde98d66b304b924977c5c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c315b2b
Author:      John Scipione <jscipione@xxxxxxxxx>
Date:        Mon Sep 16 22:45:56 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:05 2013 UTC

Revert "ScreenSaver: ScrollToSelection off-by-one"

This reverts commit fb90f7ffe49c07e82cd8cf68012929c87319f656.

Underlying issue fixed in hrev46066

----------------------------------------------------------------------------

############################################################################

Commit:      4f4270c9902b587f017ff9ea3343ed535baa6f6b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4f4270c
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Tue Sep 17 00:42:58 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:05 2013 UTC

loader/u-boot: fix alignment of uimage components.

The "blobs" in a U-Boot uimage are aligned at 4 bytes, which we
did not take into account. Found this when adding a 3rd blob
containing the Flattened Device Tree for ARM.

----------------------------------------------------------------------------

############################################################################

Commit:      ba06f0766073168cc42458c6327f6703de21943f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ba06f07
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Tue Sep 17 01:03:17 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:05 2013 UTC

ARM: kernel: fix timer resolution and implement basic timekeeping.

The previously used method for programming the timer did not take
into account that our timespec is 64bit while the register we poke
it into is 32 bit. Since the PXA (SoC in Verdex target) has a limited
scale of resolution (us,ms,second) we dynamicly determine the one
that we can most closely match, and set that.

For f.ex. snooze to work however, we also need system_time to work.
The current implementation uses a system timer at microsecond
resolution to keep track of time.

Although the code is far from perfect, committing it now before
it gets lost, since I'm working on the infrastructure code
to properly factor out the SoC specific code out of the core
ARM architecture code (so the kernel can support more then
our poor old Verdex QEMU target ;))

----------------------------------------------------------------------------

############################################################################

Commit:      102ce4652adf3c3a4d74770d7e1c1c8efdbdaf46
URL:         http://cgit.haiku-os.org/haiku/commit/?id=102ce46
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Tue Sep 17 03:26:29 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:06 2013 UTC

norflash: do not accept any device as a valid 'norflash'

Seems the original code was a little *too* simple ;-)

----------------------------------------------------------------------------

############################################################################

Commit:      dfa5aa0c9875001fa3508463f61862ba580952f0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dfa5aa0
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Tue Sep 17 03:50:05 2013 UTC
Committer:   Rene Gollent <anevilyak@xxxxxxxxx>
Commit-Date: Tue Sep 17 12:42:06 2013 UTC

device_manager: Move init_node_tree to after kdl cmd registration

This helps when debugging, since when a driver/module causes a crash
while registering with the device manager, you can actually look at
the device manager state ;-)

----------------------------------------------------------------------------

############################################################################

Commit:      2c130f09bfff272fc3a473006b86687c012bccc7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2c130f0
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 09:14:38 2013 UTC

Debugger: Fix calculation in MemoryView.

- The offset calculation for mapping the current point wasn't taking
  into account the number of bytes per hex block, causing it to be
  proportionally further off if one switched to 16/32/64-bit hex mode.

Gets mouse selection working properly in said modes.

----------------------------------------------------------------------------

############################################################################

Commit:      98c5cb26829c1ad0d6664a5c397568cdfe8d40f8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=98c5cb2
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 09:17:31 2013 UTC

Debugger: Fix RegistersView context menu.

- Always grab the address value from the actual register value column,
  rather than the one that's in fact under the mouse. Fixes the "Inspect"
  item sending you to inspect address 0 if you happened to right click over
  the register name rather than the value.

----------------------------------------------------------------------------

############################################################################

Commit:      89d18e912dfef6f0791f586d67b7f91cba30e969
URL:         http://cgit.haiku-os.org/haiku/commit/?id=89d18e9
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 10:07:52 2013 UTC

Debugger: MemoryView - Tweak target address drawing.

- Since we actually draw a selection now, change the target address
  highlight to clearly distinguish it. Rather than inverting it, it's
  now drawn with a normal background and red text in the hex display.
  The text mode subcomponent still shows it as an invert though, since
  the latter doesn't currently indicate the selection.

----------------------------------------------------------------------------

############################################################################

Commit:      eeebe2843a61c82661720930ee0002b0a5b53ced
URL:         http://cgit.haiku-os.org/haiku/commit/?id=eeebe28
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 12:04:41 2013 UTC

Manually merge 1410faca6c30d39dc08a7bf7caa7630ce5a16d35.

----------------------------------------------------------------------------

############################################################################

Commit:      6f17e7a7b37d3c8f2566b605324c43864566fa6c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6f17e7a
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 13:58:56 2013 UTC

Remove references to HAIKU_LOCALE_LIBS.

- No longer exists in PM branch, and isn't really necessary any
  more as it only refers to liblocalestub anyhow.

----------------------------------------------------------------------------

############################################################################

Commit:      1f67148f7069070f2966a63e6e910ad2fcb887f8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1f67148
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 14:01:50 2013 UTC

Automatic whitespace cleanup.

----------------------------------------------------------------------------

############################################################################

Commit:      176041c517cdfb0a06b754378a1f3de05844c890
URL:         http://cgit.haiku-os.org/haiku/commit/?id=176041c
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 14:02:43 2013 UTC

Build fix.

----------------------------------------------------------------------------

############################################################################

Commit:      d6f41e89207108423d4f24b192c445df44ff4614
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d6f41e8
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Tue Sep 17 16:08:21 2013 UTC

Debugger: Fix off by one error in report generator.

- The disassembly dump would consequently stop at the instruction
  prior to the actual crash culprit, and also erroneously mark it
  as such.
(cherry picked from commit 7de035619bf4e660f3f2243b343de4dffc7ab79b)

----------------------------------------------------------------------------

############################################################################

Commit:      34d0d4d85eeac542d5e9fb4a4f4d871e6727685f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=34d0d4d
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 17 22:17:21 2013 UTC

dump_page_queue(): fix output

* Determine the cache type per page instead of printing the first page's
  cache type for all pages.
* Use vm_cache_type_to_string().

----------------------------------------------------------------------------

############################################################################

Commit:      93495b0354d5256d379e4b9ac5a129539658a2cb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=93495b0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 17 22:21:04 2013 UTC

X86PagingStructuresPAE: clear fVirtualPageDirs in constructor

... not just the first element. Fixes a crash in X86VMTranslationMapPAE
destructor when running out of memory when initializing the map.

----------------------------------------------------------------------------

############################################################################

Commit:      bcb7463650e945f2cc2e61d3acef376c6ac39e76
URL:         http://cgit.haiku-os.org/haiku/commit/?id=bcb7463
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 17 22:21:32 2013 UTC

arch_vm_translation_map_early_map(): Fix debug output

----------------------------------------------------------------------------

############################################################################

Commit:      6508ce9f521fa173b64b11cb35dff85c8bf86558
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6508ce9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 17 22:25:32 2013 UTC

X86VMTranslationMapPAE::Map(): More info in assert

----------------------------------------------------------------------------

############################################################################

Commit:      372a66634410cf0450e426716c14ad42d40c0da4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=372a666
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 17 22:26:56 2013 UTC

X86VMTranslationMapPAE: Add some ktracing for page (un)mapping

----------------------------------------------------------------------------

############################################################################

Commit:      6dee6653c26736f534abdda6886219ab56503533
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6dee665
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Tue Sep 17 22:37:51 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/8345

When switching to PAE don't copy not needed PTEs

Now we check whether the virtual address corresponding to the PTE lies
in an allocated virtual address range. This fixes a cause of #8345:
The assertion would trigger when such an entry was encountered. There
might be other causes that trigger the same assertion, though.

----------------------------------------------------------------------------

############################################################################

Commit:      30a517bc64e3777f47cb811ea342892cd7334e72
URL:         http://cgit.haiku-os.org/haiku/commit/?id=30a517b
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Tue Sep 17 15:54:17 2013 UTC

Add handling of B_PACAKGE_INFO_CHECKSUM to PackageInfoPrinter.

----------------------------------------------------------------------------

############################################################################

Commit:      50ae264dad49d8dbb806be0c4b5a4838fa742bbf
URL:         http://cgit.haiku-os.org/haiku/commit/?id=50ae264
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Sep 18 10:01:27 2013 UTC

Add support for adding a package-info to BRepositoryWriter.

----------------------------------------------------------------------------

############################################################################

Commit:      da33beab7098545ca6267da693f81bee608f5e50
URL:         http://cgit.haiku-os.org/haiku/commit/?id=da33bea
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Sep 18 10:04:53 2013 UTC

Add command 'update' to package_repo.

* 'update' takes an existing repository and a package list file and then
  creates a new repository from that, avoiding expensive
  checksum-recomputations where possible

----------------------------------------------------------------------------

############################################################################

Commit:      93cb796e370b6a3e84dc31dba43c24b0e72a94a0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=93cb796
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 13:22:53 2013 UTC

Context: Add more uniqueness to temp directory names.

- If a single thread attempted to establish multiple package kit
  contexts, it would fail due to a collision between their respective
  temporary directories. As such, use both the thread ID and
  system_time() as a random elements in the directory name to ensure
  this doesn't occur.

----------------------------------------------------------------------------

############################################################################

Commit:      0c5468eef0c381f753da9ef0ca1a050cdba9040d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0c5468e
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 13:25:11 2013 UTC

HaikuDepot: Stub out various support classes for package kit use.

- DecisionProvider and JobStateListener will be needed in order to
  interact with the package kit in various ways eventually, though
  the implementations are currently all empty.

- Adjust HaikuDepot's PackageManager class to inherit from
  BPackageManager, so as to be able to actually interface with
  the package repositories.

----------------------------------------------------------------------------

############################################################################

Commit:      2f89f68ee722eb2d22bbff75783ed3bc1f8013dc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2f89f68
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 13:28:41 2013 UTC

MainWindow: Initial hooks into package kit.

- MainWindow now attempts to refresh all available repositories and
  fetch their respective package lists on startup. Much still remains
  to be done, such as factoring this out into a background process so
  it doesn't prevent the window from showing, and making the refresh step
  optional if we already have valid repository information, but this at
  least gets us showing the available package list from HaikuPorts.

----------------------------------------------------------------------------

############################################################################

Commit:      85caa0459d645a614139d3692f68436e83abc0ab
URL:         http://cgit.haiku-os.org/haiku/commit/?id=85caa04
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Sep 18 11:37:08 2013 UTC

Use BPackageInfoContentHandler in package_repo 'update'.

* Ingo has pointed me at this class which already does the collecting
  of package attributes into a PackageInfo - so there's no need to
  do it manually.

----------------------------------------------------------------------------

############################################################################

Commit:      d7cbcb13da916672fa94b06451dc3ec344a432b2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d7cbcb1
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Sep 18 11:37:33 2013 UTC

Fix build of <build>package_repo.

----------------------------------------------------------------------------

############################################################################

Commit:      53b162523f35ee9c2ba4c67e8fcbf59201d0f491
URL:         http://cgit.haiku-os.org/haiku/commit/?id=53b1625
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 18 13:26:35 2013 UTC
Committer:   Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Commit-Date: Wed Sep 18 13:41:12 2013 UTC

Fix host-only build.

----------------------------------------------------------------------------

############################################################################

Commit:      7d09a8dc6788de70bc30da84e6feb9b006c46bfb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7d09a8d
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Sep 18 13:42:36 2013 UTC

Fix build of '<build>package_repo' for real.

* add missing command_update.cpp

----------------------------------------------------------------------------

############################################################################

Commit:      9a85313bc68fde2a79e17e51726bab55eb3d85ac
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9a85313
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 18 14:12:51 2013 UTC

X86PagingStructuresPAE: Zero fPageDirPointerTable in constructor

... and use it as a guard in the destructor. Fixes crash when running
out of memory and Init() is not called.

----------------------------------------------------------------------------

############################################################################

Commit:      c13744f4c0fc1f8b597c7a349af9218473525be2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c13744f
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep 16 09:23:22 2013 UTC

useradd: Improve usage text

----------------------------------------------------------------------------

############################################################################

Commit:      222fb7a91ab71cda2bc8d7dd58227c7fd213b677
URL:         http://cgit.haiku-os.org/haiku/commit/?id=222fb7a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep 16 10:14:34 2013 UTC

getgrgid_r()/getgrname_r(): Fix group not found return value

----------------------------------------------------------------------------

############################################################################

Commit:      fb8a9c47106f9b5beaaa76416b314accc5d4562e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fb8a9c4
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 18 14:15:41 2013 UTC

getpw{nam,uid}[_r]: Fix return value behavior

... when the user is not found.

----------------------------------------------------------------------------

############################################################################

Commit:      de15b85e5c58a30265a5017bb16a2d3028f1eb70
URL:         http://cgit.haiku-os.org/haiku/commit/?id=de15b85
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 18 14:17:03 2013 UTC

getgr{nam,gid}[_r](): Fix retrieving group members

----------------------------------------------------------------------------

############################################################################

Commit:      0e9e586cacc38965a67a67d9f40a4f6bf4d7bda6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0e9e586
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep 16 10:15:52 2013 UTC

useradd: Support specifying group by name

----------------------------------------------------------------------------

############################################################################

Commit:      e9d9ac713ffa301240e7a2e113bb0d5bb70082f8
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e9d9ac7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep 16 13:49:36 2013 UTC

Add userdel

----------------------------------------------------------------------------

############################################################################

Commit:      82a064b57d73dded1109fa41be971d63b237fdc2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=82a064b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep 16 14:33:26 2013 UTC

useradd: small style fix

----------------------------------------------------------------------------

############################################################################

Commit:      032ea9a485abba103a82f0b782546dda8ff8d758
URL:         http://cgit.haiku-os.org/haiku/commit/?id=032ea9a
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep 16 16:00:48 2013 UTC

useradd: Create the new user with a locked password

----------------------------------------------------------------------------

############################################################################

Commit:      6c346b88e1134f09024879a85f358ea4992023dd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6c346b8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Mon Sep 16 16:01:07 2013 UTC

passwd: Add option -d to delete a user's password

----------------------------------------------------------------------------

############################################################################

Commit:      dc3be296140d4b76f0de2630dd86e85f1ffbc8c5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dc3be29
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 18 14:10:38 2013 UTC

Enable -Werror in src/bin/multiuser

----------------------------------------------------------------------------

############################################################################

Commit:      519bb60aef35f6e7371dc0ccf0a9c989036ae9b4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=519bb60
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 18 14:28:58 2013 UTC

Add group{add,del,mod}

----------------------------------------------------------------------------

############################################################################

Commit:      e12c26ec2d67bd3c274a0067be674656f71c7856
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e12c26e
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 15:27:29 2013 UTC

ModelWindow: Populate publisher URL if available.

- Also rework things a bit to fix passing the same reference into the
  installed package list repeatedly, thus causing only the first package
  to be marked as actually being installed.

----------------------------------------------------------------------------

############################################################################

Commit:      f7c99dcc33eea73160acbbc88751d8e3fef70371
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f7c99dc
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 15:28:37 2013 UTC

Remove unnecessary function.

----------------------------------------------------------------------------

############################################################################

Commit:      2c287f5bae0adcc93ed623f3f2a05daf331e5816
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2c287f5
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 16:17:30 2013 UTC

Model: Add Clear() method to empty out existing depot info.

----------------------------------------------------------------------------

############################################################################

Commit:      d882cc281286747b330a81a81f44401efaa3f054
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d882cc2
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 16:39:32 2013 UTC

HaikuDepot: Move repo fetch to background worker thread.

- Factor out functions for refreshing the repositories and
  retrieving the package lists.

- Add a background worker thread which handles those tasks and
  then notifies the window when the model is ready.

- Check if we already have a repository cache, and if so, skip the
  refresh step, unless forced. The latter will eventually be possible
  via the UI.

----------------------------------------------------------------------------

############################################################################

Commit:      c6a952d70618f65ec3de0557904f4e6c4a8f1109
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c6a952d
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 16:45:10 2013 UTC

Add HaikuDepot to image.

----------------------------------------------------------------------------

############################################################################

Commit:      52660ce993f66b11ef6e143adca239ad72d08d4d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=52660ce
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 17:33:17 2013 UTC

gcc2.x build fix.

----------------------------------------------------------------------------

############################################################################

Commit:      b162bdaf1d675cb8c1087776b371652a120cf893
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b162bda
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 17:52:11 2013 UTC

Add HaikuDepot to Deskbar menu.

----------------------------------------------------------------------------

############################################################################

Commit:      0a345af77e01131647b1017ee4631b602119f5c9
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0a345af
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Sep 18 18:20:43 2013 UTC

Separate notification from deletion in repository-handlers.

* Add NotifyDone() to all repository-attribute handlers and invoke that
  to notify any listeners.
* Unify deletion to a single implementation of Delete() in the base
  class. Before, the root handler for a repository didn't do that, but
  just triggered the notification.

----------------------------------------------------------------------------

############################################################################

Commit:      b3a05eede68d2b0881e5372c2002df639b2236b4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b3a05ee
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Wed Sep 18 19:15:26 2013 UTC

Fix keeping of package info during repository update.

* actually write the package info read from the repository, not the one
  from the package, as the latter is missing the checksum

----------------------------------------------------------------------------

############################################################################

Commit:      976b547224ff78d2f15a4df1413f790cba9bc98f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=976b547
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 20:32:45 2013 UTC

HaikuDepot: Implement publisher hyperlink handling.

- Clicking the publisher link now actually attempts to open the site
  in the browser.

----------------------------------------------------------------------------

############################################################################

Commit:      8b600ba48deafbe63747e28b705551b00adb00a7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8b600ba
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Sun Sep 15 10:59:20 2013 UTC

package daemon: Use CommitTransactionHandler in all cases

... also when only activating/deactivating already moved packages.

----------------------------------------------------------------------------

############################################################################

Commit:      be2254e30db907dc1a8b26dd3c3b9dde014bb385
URL:         http://cgit.haiku-os.org/haiku/commit/?id=be2254e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Wed Sep 18 21:55:13 2013 UTC

package daemon: Handle post-installation scripts, users/groups

... specified by a package when it is going to be activated. We don't
try to remove users/groups when deactivating packages yet, nor is the
user properly identified in all error cases.

----------------------------------------------------------------------------

############################################################################

Commit:      5af9dc2a77aa2ea883a0d1d2b8bda54e0ae0c6ae
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5af9dc2
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Wed Sep 18 21:05:28 2013 UTC

Style fix.

----------------------------------------------------------------------------

############################################################################

Commit:      db259584cacc8003271f839e49bc2963420af1b4
URL:         http://cgit.haiku-os.org/haiku/commit/?id=db25958
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 09:45:21 2013 UTC

HaikuDepot: Flesh out PackageActions a bit.

- Add background worker thread for asynchronous processing of
  package actions.
- Implement InstallPackageAction. As such, installing packages now
  actually works.
- Wrap requests in exception handlers, as the package manager uses those
  for various error cases. Fixes several cases of HaikuDepot spontaneously
  closing if a problem occurred. Still TODO: user error reporting, errors
  are currently reported on the console.

----------------------------------------------------------------------------

############################################################################

Commit:      f7bf1d328206e62c334b82936b110703b59a1b6f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f7bf1d3
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 09:55:58 2013 UTC

HaikuDepot: Add UninstallPackageAction class. Not yet used.

----------------------------------------------------------------------------

############################################################################

Commit:      adde35ff1485908a8bc8637a8eec4b9ce8f8e527
URL:         http://cgit.haiku-os.org/haiku/commit/?id=adde35f
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 10:16:41 2013 UTC

HaikuDepot: Flesh out PackageManager::GetPackageActions().

- Now actually checks if and where the package is installed, and
  correspondingly returns back the appropriate install/uninstall
  actions. Consequently, HaikuDepot now allows uninstallation of
  (non-system) packages.

----------------------------------------------------------------------------

############################################################################

Commit:      50792d1199fdc9a211beb49ab282a7ce0a5c4c03
URL:         http://cgit.haiku-os.org/haiku/commit/?id=50792d1
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Sep 19 10:22:56 2013 UTC

Update openssh and perl for x86_gcc2.

----------------------------------------------------------------------------

############################################################################

Commit:      b4c8d2ff49d89fa8d804bb8e58c6cf96fa01ecd0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b4c8d2f
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 10:47:44 2013 UTC

HaikuDepot: Show installation state in list view.

- Add package installation state to PackageInfo and update accordingly
  in Model.
- Add package listener event for installation state change (not yet used).
- PackageListView now fetches installation state from package and displays
  accordingly.

----------------------------------------------------------------------------

############################################################################

Commit:      cea02697b41a9d99edd2c6f6c8248b0bd1b1e08a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=cea0269
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 12:56:29 2013 UTC

HaikuDepot: Fix a few issues pointed out by Stephan. Thanks!

----------------------------------------------------------------------------

############################################################################

Commit:      4bee7f070be62564d6a6a3b1575b881ded830f31
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4bee7f0
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 13:32:47 2013 UTC

HaikuDepot: Add "Refresh repositories" menu item.

- Allows the user to request manually updating the package list
  from the server.

----------------------------------------------------------------------------

############################################################################

Commit:      44698a437d72ad3c2f6919b3d3320fe99265bb70
URL:         http://cgit.haiku-os.org/haiku/commit/?id=44698a4
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 13:49:54 2013 UTC

HaikuDepot: Start implementing UserInteractionHandler hooks.

- Use package daemon's ProblemWindow/ResultWindow for the HandleProblems()
  and ConfirmChanges() hooks respectively.

----------------------------------------------------------------------------

############################################################################

Commit:      b967ea4be4c3cd6dbee282463fc6c42ca1a6b387
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b967ea4
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 15:01:52 2013 UTC

Debugger: Temporarily disable file manager mappings.

- There seem to be cases where the file manager is incorrectly reapplying
  stored mappings, resulting in no source being displayed. As such, the
  functionality is being disabled until the cause can be found.

----------------------------------------------------------------------------

############################################################################

Commit:      c848949bf19ed8bd74da1f54428d43a469b58dca
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c848949
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 15:43:36 2013 UTC

Debugger: Fix crash in Inspector.

- If a selection was active, and the hex mode was switched to not
  display, a divide by zero crash would occur. Spotted by Olivier Coursiere.

----------------------------------------------------------------------------

############################################################################

Commit:      efcb3de14e69170079b8302c5ff204e6aad4752d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=efcb3de
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 18:55:18 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9961

Debugger: Fix #9961.

- The previous solution was applying source path mappings too early, with
  the consequence that the file manager would incorrectly adjust some
  relocations due to not being aware of the presence of all the possible
  parent paths yet, leading to the observed "Source not available" behavior
  when restoring some combinations of mappings. We now lazily apply the
  mappings at the point when the source code itself is actually requested
  to be loaded, which doesn't occur until after all image loading, etc.
  has completed, so the information map is complete.

----------------------------------------------------------------------------

############################################################################

Commit:      1c521f0b311686a352b2f57aa12bd53dc5dbdced
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1c521f0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 19 18:55:23 2013 UTC

BString::Split(): Fix check

----------------------------------------------------------------------------

############################################################################

Commit:      59f1891eda8a019e072f590003611c78ae8167ba
URL:         http://cgit.haiku-os.org/haiku/commit/?id=59f1891
Author:      Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx>
Date:        Thu Sep 19 12:12:44 2013 UTC
Committer:   Ingo Weinhold <ingo_weinhold@xxxxxx>
Commit-Date: Thu Sep 19 19:07:10 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/9968

Change volume label for MOUNT_TYPE_HOME to "config". Fixes #9968.

Signed-off-by: Ingo Weinhold <ingo_weinhold@xxxxxx>

----------------------------------------------------------------------------

############################################################################

Commit:      4f9db8d66d0685065fd63d9c3adfd62ee01dc72c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4f9db8d
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Thu Sep 19 19:22:57 2013 UTC

Should have been part of previous commit.

----------------------------------------------------------------------------

############################################################################

Commit:      7092893bdd93d25da3a7f53b675a1130f51a03fd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7092893
Author:      Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
Date:        Thu Sep 19 20:37:54 2013 UTC

Actually rename the updated repository to the target name.

----------------------------------------------------------------------------

############################################################################

Commit:      acc6f8326abf9e305ec617c16bfe80236c884532
URL:         http://cgit.haiku-os.org/haiku/commit/?id=acc6f83
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 19 21:51:29 2013 UTC

Update x86 openssh and perl packages, add libedit_devel

----------------------------------------------------------------------------

############################################################################

Commit:      7cf0e764393c03d69015b56674a7d2bf84158621
URL:         http://cgit.haiku-os.org/haiku/commit/?id=7cf0e76
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Fri Sep 20 18:37:46 2013 UTC

HaikuDepot: Cleanups.

- Fix passing the force parameter to the refresh worker. This makes the
  refresh depots menu item actually work.

- Make failure messages regarding depot initialization/refresh visible to the
  user.

----------------------------------------------------------------------------

############################################################################

Commit:      fdcd014b1d9cfcb80662947e85db5fc5c601b49c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=fdcd014
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sat Sep 21 12:40:17 2013 UTC

HaikuDepot: Only send package status change notifications...

...if the package status actually did change.

----------------------------------------------------------------------------

############################################################################

Commit:      e550d7b8c563b9276ba9d8bd86b7ab41ec729836
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e550d7b
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sat Sep 21 18:27:12 2013 UTC

HaikuDepot: Miscellanous improvements to package state tracking.

- MainWindow now listens for package installation state changes so
  it can keep Model's package location lists in sync.
- PackageListView now updates its status column on package state changes.
- PackageInfoView now updates the available action list when package
  installation state changes.
- PackageManager populates the expected user-specified install/uninstall
  package sets for ProblemWindow so that one can properly filter those out.

There still remain some issues with the installed locations for ResultWindow
not being entirely correct though, which causes issues for package
uninstallation.

----------------------------------------------------------------------------

############################################################################

Commit:      c996b65a894a38b587d02c9f34c795619f59e418
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c996b65
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sat Sep 21 20:58:14 2013 UTC

HaikuDepot: Init with correct repo flags before performing actions.

Still something not entirely correct with the uninstall case though.

----------------------------------------------------------------------------

############################################################################

Commit:      9e8ffcbb8f3845988687b68017e12d1447e79048
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9e8ffcb
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sun Sep 22 13:02:46 2013 UTC

HaikuDepot: Rework to get actions working properly.

- BPackageManager doesn't (currently) support being reused for multiple
  differing actions, so instantiate it on the fly for each action to be
  performed.

- As such, pull the package action worker out of PackageManager and into
  MainWindow. Define abstract interface PackageActionHandler for other
  parts of Depot to use to instruct it to queue actions.

- Adjust other parts of code to take the above into account.

----------------------------------------------------------------------------

############################################################################

Commit:      99b3982f2c87679b8fd852e52e953f9166a9d1ac
URL:         http://cgit.haiku-os.org/haiku/commit/?id=99b3982
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sun Sep 22 13:04:59 2013 UTC

PackageListView: Force status field to update properly.

----------------------------------------------------------------------------

############################################################################

Commit:      d68208fa16f6716c53d598d3aa65ed1d4659d06a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=d68208f
Author:      Matt Madia <mattmadia@xxxxxxxxx>
Date:        Sun Sep 22 17:57:53 2013 UTC

Use double parenthesis for math expressions.

This allows FreeBSD with a pure /bin/sh (not a symlink to /bin/bash) to build
the cross-tools to a dedicated directory, outside of the generated folder.

----------------------------------------------------------------------------

############################################################################

Commit:      34f4c3ec4f135fee3ff025ab530b0df11f267452
URL:         http://cgit.haiku-os.org/haiku/commit/?id=34f4c3e
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sun Sep 22 20:46:33 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/10000

HaikuDepot: Fix #10000.

- When switching selected packages, compare the new and old package action
  list. If they're the same, don't bother rebuilding the button bar.

----------------------------------------------------------------------------

############################################################################

Commit:      f4058a3f9f229a812fd5a0d3e33011aacec25d05
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f4058a3
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sun Sep 22 20:48:10 2013 UTC

HaikuDepot: Adjust displayed publisher.

- If available, show the package's copyright information for the
  publisher rather than the vendor, as the latter simply indicates
  the maintainer of the repository rather than the actual developers
  of the software contained in the package.

----------------------------------------------------------------------------

############################################################################

Commit:      dd9658f0107294b280b2920d66588204ad2c1256
URL:         http://cgit.haiku-os.org/haiku/commit/?id=dd9658f
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sun Sep 22 21:26:26 2013 UTC

HaikuDepot: Sort package list by name column on startup.

----------------------------------------------------------------------------

############################################################################

Commit:      a5d9833346499aadc1c200f9d77f87a4ad148ceb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a5d9833
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sun Sep 22 21:26:55 2013 UTC

HaikuDepot: Minor optimization.

- PackageAction now stores/returns a type code indicating the embodied
  action. Adjust PackageActionView accordingly in its comparison of
  the old/new package action list.

----------------------------------------------------------------------------

############################################################################

Commit:      43ff23ebbf3fa9a879d882cca183a21656ae7e8f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=43ff23e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 26 22:31:52 2013 UTC

<NotOwningEntryRef.h>: Denote BPrivate explicitly

----------------------------------------------------------------------------

############################################################################

Commit:      4cf3529cbbd27b670dc63c7de2ce237d0bdce852
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4cf3529
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 26 22:35:11 2013 UTC

BCopyEngine: Add base class BEntryOperationEngineBase

It contains a helper class Entry, which allows to generalize the
BCopyEngine::CopyEntry() parameters.

----------------------------------------------------------------------------

############################################################################

Commit:      0ee677e7f179b5ba09a736110f8865e511fc63a2
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0ee677e
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 26 22:36:47 2013 UTC

Add BRemoveEngine

Similar to BCopyEngine, but it (surprise!) removes an entry.

----------------------------------------------------------------------------

############################################################################

Commit:      99f1939fd8298c9318cfcb1f54dfc6996a2be85a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=99f1939
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 26 22:37:45 2013 UTC

package daemon: Package: Add RevisionedName[Throws]()

----------------------------------------------------------------------------

############################################################################

Commit:      23733521a7b2d6c16027654c606c6069ef026357
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2373352
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 26 22:47:09 2013 UTC

package daemon: Implement writable files handling

* Move Volume::Exception to top level and into own files.
* Add utility class FSUtils, move Volume::RelativePath there and add a
  bunch of FS utility functionality.
* Add FSTransaction, a helper class to record FS operations and revert
  them.
* When activating a package we now extract the writable
  files/directories it declares. The handling is not quite complete:
  - We don't handle merges yet. I.e. the user will have to do that
    manually for now.
  - We don't propagate issues/infos regarding the writable files (e.g.
    that a manual intervention is required) to the user yet.

----------------------------------------------------------------------------

############################################################################

Commit:      81291304ada328790118123ac74fb3dee8ce11fa
URL:         http://cgit.haiku-os.org/haiku/commit/?id=8129130
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Sep 26 23:55:45 2013 UTC

Merge remote-tracking branch 'haiku/master' into package-management

Conflicts:
        build/jam/BuildSetup
        build/jam/HaikuImage
        build/jam/board/sam460ex/BoardSetup
        build/jam/board/verdex/BoardSetup
        data/catalogs/apps/icon-o-matic/fr.catkeys
        src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp
        src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp
        src/apps/debugger/files/FileManager.cpp
        src/apps/debugger/files/FileManager.h
        src/apps/debugger/user_interface/gui/inspector_window/MemoryView.cpp
        src/apps/haiku-depot/MainWindow.cpp
        src/apps/haiku-depot/MainWindow.h
        src/apps/haiku-depot/Model.cpp
        src/apps/haiku-depot/PackageInfo.h
        src/apps/haiku-depot/PackageInfoListener.h
        src/apps/haiku-depot/PackageInfoView.cpp
        src/apps/haiku-depot/PackageInfoView.h
        src/apps/haiku-depot/PackageListView.cpp
        src/apps/haiku-depot/PackageListView.h
        src/system/kernel/arch/arm/arch_timer.cpp
        src/system/libroot/os/arch/arm/atomic.S
        src/tools/translation/bitsinfo/Jamfile
        src/tools/translation/bmpinfo/Jamfile
        src/tools/translation/tgainfo/Jamfile

----------------------------------------------------------------------------

############################################################################

Revision:    hrev46113
Commit:      9f81ca838ce7b92b5689e57d3f86765db4705a7b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9f81ca8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Fri Sep 27 00:01:12 2013 UTC

Merge branch 'package-management'

Conflicts:
        src/preferences/network/Jamfile

----------------------------------------------------------------------------


Other related posts: