Paludis Logo Introduction Main page
Bugs, Requests, Support Release Notes
Overview ChangeLog

News for Paludis

This file lists the major changes between versions. For a more detailed list
of every change, see the Git log.

    * Bug fixes.

    * Add short option for --chroot-path.

    * Ban einstall and *sbin in exheres-0.

    * Remove --new-compress from rsync.

    * Allow users to override wget options in wget fetcher.

    * EAPI 6 is supported.

    * Support emptying a default set exparam array in exheres-0.

    * Bug fixes.

    * We now use Ruby 2.2, unless --with-ruby-version is specified.

    * Bug fixes.

    * Compilation fixes for Clang.

    * Added 'cave resolve --chroot-path'.

    * Removed the "breaks Portage" feature.

    * General C++11ification.

    * Bug fixes.

    * Compatibility with newer Boost.

    * Minor bug fixes and UI tweaks.

    * Tweaked 'cave resolve' output to add blank lines.

    * Support for libarchive 3.1.2.

    * Compatibility fixes for GCC 4.8.

    * Bug fixes.

    * Dep specs can now use '[.key!=value]'. The behaviour of 'gt ' has
      changed: for key types where order comparisons don't make sense, the match
      now always fails.

    * Various compiler-compatibility fixes.

    * EAPI 5 style subslot specs are allowed in user dependency specs.

    * We now support DWARF compression.

    * Various EAPI 5 related fixes.

    * Bug fixes.

    * Added 'cave print-unmanaged-files'.

    * Bug fixes.

    * EAPI 5 is supported.

    * Bug fix: || ( ) dependencies under a non-enabled label are now handled

    * Bug fix: the resolver no longer attempts to create binaries for accounts.

    * Bug fix: 0-scm is now ordered correctly.

    * sydbox-1 is now supported.

    * Bug fix.

    * 'cave resolve --explain' output now groups together similar items.

    * Phase skipping now works for uninstalls too.

    * build_options: preserve_work is now build_options: work=preserve, and
      other values are now possible.

    * Various bug fixes.

    * cave resolve --change-phases-for now has !first and !last options.

    * We no longer use Allison for Ruby documentation.

    * We now require libarchive 3, to avoid tar format issues.

    * Compilation fix for certain compilers.

    * Fixed a segfault when encountering blockers inside || ( ) dependencies.

    * The way || dependencies are handled has changed to allow upgrades in
      certain situations that would previously be blocked.

    * Previously file descriptors would be leaked when adding certain types of
      files to a tar being created for a pbin. This is now fixed.

    * We now strip certain kinds of trailing garbage from tar files, to deal
      with upstreams who insist upon distributing corrupted tarballs.

    * We now define ${T} to something usable in pkg_pretend.

    * The order of arguments passed to econf has been tweaked, to make it easier
      to override defaults.

    * cave print-ids etc now have a '%u' format, for a uniquely identifying

    * Added cave print-checksum, for convenience.

    * We now use metadata/md5-cache if it exists.

    * We now ignore self-blockers for Gentoo EAPIs, to avoid problems with
      developers screwing up package moves.

    * Compilation with GCC 4.7 should now work.

    * Added and changed options are now displayed in 'resolve' output, even if
      they are hidden.

    * Hardlinks are now handled cleanly by pbins.

    * Ruby 1.9 is now supported.

    * Minor bug fixes.

    * Changed documentation and Git URLs from to

    * Gentoo's new boost.python library names are now recognised.

    * Assorted bug fixes.

    * Generation of thin Manifests is now supported.

    * 'cave search' now has a '--case-sensitive' option.

    * Assorted bug fixes.

    * 'cave sync --suffix' is now known as '--source' (although the old
      version is still supported for compatibility).  The short version is
      still '-s'.

    * Command-line arguments that have a short version and can be negated
      with '--no-*' can now be negated in short form by using '+' instead
      of '-', for example '+x' for '--no-execute'.

    * Manifest files for E repositories are now generated with the lines in the
      same order as Portage.

    * The SHA-512 and Whirlpool functions are now supported in Manifest files.

    * The hash functions used to generate Manifest files can now be controlled
      by either the repository itself or user configuration.

    * Licence groups are now supported.

    * Various bug fixes.

    * The short options for 'cave owner' and 'cave print-owner' have changed.

    * Support for directory whitelisting for exheres-0.

    * Various bug fixes.

    * Fixed a bug where a ! inside a || ( ) could cause a segfault.

    * Assorted minor bug fixes and compiler compatibility changes.

    * The Python bindings now cover various additional things.

    * CONFIG_PROTECT is now available for merge-check hooks.

    * When using Portage format configurations, userpriv is now available.

    * 'cave resolve --keep if-same-metadata' now thinks "cat/pkg[a][b]" and
      "cat/pkg[b][a]" are "the same".

    * Support for Portage-format configurations has been improved slightly.

    * Support for Gentoo old-style virtuals has been removed.

    * The 'accerso', 'instruo' and 'appareo' clients have been removed in favour
      of 'cave'.

    * 'cave resolve' now has 'if-same-metadata' options for '--keep' and
      '--keep-targets', to take care of all those times when Gentoo developers
      ignore policy and change dependencies without a revbump.

    * Dependent IDs now have their dependency type (e.g. 'build', 'runtime')
      shown in the reasons output for 'cave resolve' and 'cave uninstall'.

    * 'cave fix-linkage' no longer gets upset at .la files that are missing a
      final newline character.

    * 'cave resolve --hide' now affects resolvent selection too.

    * Various minor bug fixes.

    * New package dep spec syntax for matching masks: '[.(mask)?]'.

    * Added 'cave sync --revision', currently only for Git syncs.

    * We now use Google's 'gtest' for unit tests.

    * Fairly hefty code cleanups.

    * 'cave search --and' now works as documented.

    * Previously pbins had problems with symlinks due to oddities in libarchive.
      This is now worked around.

    * We now treat invalid cached metadata slightly differently, to avoid
      problems with Gentoo shipping broken metadata due to lack of validation in

    * Second attempt at getting '--enable-prebuilt-documentation' to work

    * A new configure option, '--enable-prebuilt-documentation', can be used to
      avoid requiring Asciidoc, since on Gentoo Asciidoc has several bogus
      dependencies that pull in a lot of unwanted packages on X-less systems.

    * 'cave resolve --reinstall-dependents-of' now does what the documentation
      says it does.

    * 'cave help' no longer explodes if script commands are present.

    * We now work with Jansson 2.0 too.

    * 'cave resolve' can now '--reinstall-dependents-of'

    * HTML versions of man pages are now created from the generated Asciidoc
      files rather than directly.

    * The deprecated 'adjutrix', 'inquisitio', 'importare', 'paludis' and
      'reconcilio' clients have been removed.

    * 'build_options: split strip' are removed in favour of 'build_options:

    * We now generate man pages via 'asciidoc'.

    * The 'cave resolve -D' short option is now '-B' instead.

    * A new special 'nothing' set has been added.

    * 'cave search' no longer fails when encountering invalid metadata.

    * New 'cave' subcommand: 'mirror'

    * cave resolve --via-binary would lock up under certain circumstances. This
      is now fixed.

    * New 'cave resolve' option: '--no-restarts-for'

    * New 'cave' subcommand: 'generate-metadata'

    * We no longer issue QA warnings for certain extremely common QA violations
      on Gentoo.

    * We now work around various libarchive oddities that cause problems with
      binary packages.

    * We now prioritise suggestions.conf over the --suggestions and
      --recommendations command line options.

    * When a package strongly blocks other installed slots of itself, the
      resolver no longer fails to find an ordering if upgrading older slots
      would make the blocker no longer met.

    * 'cave show' now displays overridden masks on unmasked packages.

    * The 'paludis' client is now deprecated in favour of 'cave'.

    * New 'cave resolve' option: '--one-binary-per-slot'.

    * Suggestions may now be controlled by 'suggestions.conf'.

    * Certain abusive || ( ) dependencies are now handled in the same way that
      Portage treats them.

    * When using 'cave uninstall --remove-if-dependent' followed by 'cave
      resume', dependent packages would be added to rather than removed from
      world. This is now fixed.

    * cave report would previously not mention certain security issues. This is
      now fixed.

    * Syncing via 'rsync' now uses '--delete-delay' rather than
      '--delete-after'. This requires rsync 3.

    * EAPI 4 is enabled.

    * New 'cave' subcommand: 'digest'.

    * New 'cave print-unused-distfiles' option: '--include'.

    * Updates now work correctly again.

    * We now show the number of skipped and failed packages in "x of y" output.

    * We now run pkg_pretend even if certain confirmations are required.

    * Various minor bug fixes and documentation tweaks.

    * New 'cave' subcommand: 'print-spec'.

    * New 'cave resolve' option: '--dependencies-to-slash'.

    * New 'cave sync' options: '--suffix' (and support for sync suffixes in
      repository configuration files).

    * 'cave resolve' now shows which reasons are responsible for reconfiguration

    * The user used for userpriv operations (typically 'paludisbuild') is now
      expected to be in the 'tty' group.

    * The 'repo_file' variable may now be used in repository_defaults.conf.
      Added new repo_file_basename, repo_file_unsuffixed, variables.

    * Values in overlay thirdpartymirrors files now override those in masters.

    * The documentation now recommends use of the 'cave' client rather than

    * 'cave resolve --make binaries' now behaves properly when considering
      packages that cannot be made into binaries.

    * 'cave show x' will no longer suggest every package name containing an 'x'.

    * Display-If-Profile headers in news items are now handled correctly.

    * A bug in via-binary package ordering has been fixed.

    * 'cave owner' now has a --dereference option.

    * We now use libmagic rather than calling the 'file' executable to determine
      whether or not to strip files.

    * Binary package configuration is now documented, although it is still
      considered experimental. Various binary-related bugs are fixed.

    * We now display much cleaner errors if output manager creation fails (e.g.
      if the log directory does not exist).

    * New cave print-unused-distfiles subcommand.

    * We no longer show "no output for X seconds" messages when only one job is

    * We now produce easier to understand error messages for certain resolutions
      where unmasking is required.

    * We now show suggestions when 'cave resolve' targets do not exist.

    * Added 'cave has-version', 'cave print-best-version'.

    * 'cave show' now displays correct headings for suboption groups.

    * Coreutils 8.6 changes how 'stat' displays mtimes. We now support the new
      output format.

    * A bug where especially nasty circular dependencies would sometimes end up
      being ordered incorrectly has been fixed.

    * cave show --all-versions, --repository-at-a-time, --no-keys

    * XFS clobbers set*id bits when fallocate is used. This is now worked

    * Various output improvements to 'cave display-resolution'.

    * 'cave resolve' now has '--ignore-unable-decisions' and
      '--ignore-unorderable-jobs' overrides. Both will lead to horribly broken
      systems if abused.

    * New 'cave' subcommands: 'size', 'print-size'.

    * 'cave owner /blah/' will now match paths like '/blah'.

    * 'cave resolve --prefer/--avoid' now work if given an unqualified package

    * New user dependency spec options: [.::repokey=blah], [.$role] and [.key?].

    * split debug now works correctly again.

    * IDs for repositories will now exist but be masked in their origin
      repository when a repository is already configured.

    * New --graph-jobs option for 'cave resolve'.

    * 'cave execute-resolution' no longer shows (no output for x seconds)
      messages when only one job is active.

    * The option descriptions for 'cave import --preserve-work' now match what
      the option values do.

    * 'cave purge' will now error if given parameters, since it does not do
      anything with them.

    * Upgrading from older versions to 0.54.1 would produce strange errors. This
      does not happen for 0.54.2.

    * Blockers and uninstalls for chroots are now handled.

    * User-defined cave commands are now passed all command line arguments

    * 'cave show' now has '--description-keys', and 'cave search' uses this
      where appropriate.

    * Paludis key=value configuration files can now use '$ENV{FOO}' to refer to
      an environment variable.

    * output.conf can now set log_path, and user defined output managers will
      now override builtin output managers with the same name.

    * When running in 'quiet' mode, status messages are now shown.

    * Warning and error messages are now shown at the end, along with info and
      log messages.

    * The 'tee' output manager handler now has 'stdout_children' and
      'stderr_children' for only forwarding stdout or stderr.

    * Where supported, 'fallocate' is now used when merging files.

    * Where supported, dirent->gt d_type is now used to reduce the number of stat()
      calls that are made.

    * 'cave resolve --remove-if-dependent' will now cause dependent packages to
      be removed from world, if no versions remain.

    * 'cave resolve --make' now defaults to 'chroot' when the environment's
      preferred root is not '/'.

    * 'cave display-resolution --show-option-descriptions' now works as

    * 'cave fix-linkage' may take multiple '--library' arguments.

    * New 'cave' subcommands: 'report', 'print-id-environment-variable'.

    * 'cave print-' commands are now consistent in handling '--all' / '-a' and
      '--best' / '-b'.

    * 'cave show' will now always show keys specified by '-k', even if those
      keys are internal-only or complex.

    * 'cave search' now takes an optional SQLite index, which can be created
      using 'cave manage-search-index'.

    * 'cave search' now has a '--visible' option.

    * The 'importare', 'inquisitio' and 'reconcilio' clients are now deprecated
      in favour of 'cave import, 'cave search' and 'cave fix-linkage'

    * Output managers and output.conf are now documented features, and a new
      'command' output manager handler was added.

    * Hooks are now run using an output manager, where appropriate. The API for
      .so hooks has been changed to allow this.

    * The demo hooks have been removed, since none are particularly useful with

    * 'cave' now has a global '--colour' option, and coloured output is disabled
      by default when outputting to a non-tty.

    * The output format for certain cave commands can now be tinkered with by
      the user. Use 'cave dump-cave-formats-conf' to create ~/.cave/formats.conf
      and then edit as desired.

    * The way sub-programs are executed has changed to be somewhat less

    * A bug causing screwiness with soft-blocking EAPI 3 packages where both
      packages installed the same file with an mtime in the distant past has
      been fixed.

    * GCC 4.5 appears to be unhappy with dlclose being called in a static
      variable's destructor. We no longer do this.

    * ACCEPT_LICENSE is now automatically set based upon accepted licences that
      have been accepted by the user.

    * 'cave print-id-*' now have '--all' and will accept wildcards.

    * CONFIG_PROTECT and CONFIG_PROTECT_MASK for installed packages are now
      accessible as metadata keys.

    * Certain 'cave' commands will now suggest possibilities if there is nothing
      matching the target supplied. Fuzzy name matching will now also suggest
      packages whose names contain the target as a substring, as well as
      packages whose names are similar to the target.

    * 'cave perform' now calls '_fail' hooks.

    * 'cave print-id-contents' now has '--type'

    * 'cave print-packages' now has '--repository' and '--category'

    * Output buffering of commands has changed to better handle progress bars of
      the kind displayed by 'wget' and 'git'. To avoid excessive hopping, 'cave
      execute-resolution' will now only switch between buffered outputs every
      few seconds, rather than 0.1s if new output is available.

    * 'cave display-resolution' now shows flag changes in a more obvious manner.

    * 'cave purge' and purge checking for 'cave resolve' are now significantly

    * 'cave resolve --less-restrictive-remove-blockers' is now much more likely
      to be able to fix breakages by reinstalls. A horrible error that was most
      easily triggered by use of this option is now fixed.

    * glibc 2.12 changes the OS ABI used by its libraries. 'cave fix-linkage'
      and 'reconcilio' have been updated to ignore OS ABI mismatches to avoid
      marking every package that uses libc as being broken.

    * format="exheres" and format="ebuild" are now deprecated in favour of

    * Specifying 'root' in a repository config file now overrides the
      environment-supplied default.

    * 'cave resolve' will now select packages even if [use] dependencies are
      unmet, and will display the necessary changes needed to user

    * 'cave resolve --without' will now allow nothing at all to be installed.

    * 'cave resolve' now has options for chroot handling.

    * 'cave execute-resolution' now writes resume data after every job
      completion, rather than just upon normal exit.

    * 'cave import' now has '--strip --preserve-work' options, and the default
      for build_options: preserve_work is now disabled.

    * 'cave print-ids' now has short options.

    * 'cave display-resolution' now displays better job count information, and
      more compact at displaying circular dependencies.

    * :* dependencies no longer count as matching every slot when testing
      removal safety.

    * When 'cave resolve' changes from having made a decision to being unable to
      make a decision, and where dependencies from the previously made decision
      have already been tracked, a horrible error is no longer produced.

    * 'cave display-resolution' now shows download sizes, and no longer displays
      empty descriptions.

    * 'cave resolve' now has a '--fetch' option to skip non-fetch jobs.

    * 'cave show' now has a '--no-versions' option.

    * 'cave resolve --continue-on-failure' interacted weirdly with background
      fetching. This is now fixed.

    * Support for automatic repository configuration creation via installing
      a 'repository/somerepo' pseudo-package is now available on Gentoo.

    * Queries in the form '*/*::foo->gt ' no longer force pointless generation of
      metadata for ebuilds.

    * 'cave purge' and 'cave resolve' will no longer either give misleading
      output or produce a horrible error when a package providing an old style
      virtual is marked for purging.

    * 'cave resolve' will no longer give a horrible error when encountering
      certain convoluted circular dependencies.

    * We now require a compiler supporting various C++0x features, such as GCC
      4.4 or later.

    * format="exheres" and format="ebuild" are now known as format="e". The old
      format names remain valid and are not yet deprecated.

    * Arguments in the form -X0 are now parsed as -X 0 rather than -X -0.

    * 'cave execute-resolution' now allows a single fetch job and a single
      execute job to be executed in parallel.

    * 'cave update-world' now displays whether or not world is changed.

    * 'cave execute-resolution' headings and summaries now include information
      on the versions being replaced, where appropriate

    * 'cave resolve' will now select weakly masked packages rather than being
      unable to decide. Such packages must be manually unmasked before the
      resolution can proceed.

    * If the user explicitly specified an option for the special 'test' flag,
      this would override the build_options magic. This is now fixed.

    * Certain pkg_ functions are no longer skipped for 0-based EAPIs, to work
      around badly behaving Gentoo ebuilds.

    * If 'cave show' displays a masked package, it will now pick a version that
      is easy to unmask over a higher version that cannot be unmasked.

    * New 'cave verify' subcommand for checking whether installed packages have
      been modified.

    * xattr support was previously looking for attr/xattr.h rather than
      sys/xattr.h, and so was not being detected on glibc systems without attr
      installed. This is now corrected.

    * On some systems, the Python bindings were giving dlopen related warnings
      due to the linker trying to be too clever. This is now worked around.

    * New cave subcommands for scripting: print-id-actions, print-id-masks,
      print-repository-metadata, print-set.

    * 'cave uninstall' now accepts wildcards.

    * 'cave purge' and 'cave resolve' will no longer attempt to purge things
      that cannot be uninstalled.

    * 'cave show -t' now has short options for values.

    * We now tolerate ebuilds that try to output things or die in global scope.

    * 'cave display-resolution' now indicates when changing the origin
      repository for an upgrade.

    * 'cave display-resolution' now shows dependency reasons correctly.

    * 'cave resolve !foo' now applies to all slots of foo, rather than using the
      --target-slots option.

    * 'cave uninstall' will now only update world if every slot has been

    * 'cave execute-resolution' will now show pkg_nofetch information where

    * 'cave resume' on a resume file that includes already-completed uninstalls
      no longer errors.

    * Uninstalls are now considered for 'cave execute-resolution
      --continue-on-failure' (previously a failed uninstall would not count as a

    * The 'cave' client is now enabled by default. 'cave' is a modular console
      client that will eventually replace 'paludis'. It is currently reasonably
      functional and well tested, but does not yet have all the features present
      in 'paludis', and is thus not yet considered a complete replacement.

    * We now work around broken TLS support in certain monkey-patched GCC

    * Various minor bug fixes.

    * Working compiler support for 'extern template' is now required.

    * The PALUDIS_IGNORE_HOOKS_NAMED environment variable can be used to skip
      executing hooks from specific files.

    * --reset is now the default for git syncers. If Paludis is used to sync a
      git repository with modifications, those modifications will be lost. Use
      --no-reset to stay with the old (git pull) behaviour, but note that it is
      probably better to change your workflow such that Paludis never directly
      works with any repository it does not manage.

    * environment.conf is now general.conf. Your existing environment.conf
      should be renamed.

    * When switching UIDs, we now also pick up supplemental groups.

    * World is now updated for package moves.

    * We can now read environment.bz2 files from VDB created by newer Portage

    * appareo now has various options relating to checksum overriding.

    * When creating cache subdirectories, we now copy the mode of the main cache
      directory rather than using umask to determine permissions.

    * Various documentation updates.

    * When disambiguating a spec like foo::bar, where cat-1/pkg::foo and
      cat-2/pkg::bar exist, we now recognise that you must want cat-2.

    * A bug causing NoConfig clients to fail to find profiles when used with a
      supplemental repository that does not provide its own profiles description
      has been fixed.

    * EAPI 3 support is enabled.

    * A bug giving incorrect results when using -* in use.conf/options.conf has
      been fixed.


    * The 'everything' set is now called 'installed-packages'. A new set named
      'installed-slots' has been added, which is similar but includes slot
      restrictions matching installed slots.

    * kdebuild-1 support has been removed, following the Gentoo Council's
      decision to remove all mention of it from the Package Manager
      Specification. Users with installed kdebuild-1 packages must remove them
      before upgrading.

    * Support for EAPI 4 (formerly known as EAPI 3) is present but not
      installed, since the specification has yet to be approved.

    * Support for the new EAPI 3 is present but not installed, since the
      specification has yet to be approved.

    * The [.key=value] syntax for user dep specs now works with sets, sequences
      and spec trees. If gt  --version if in doubt.)

    * Support for from- and in- repository deps.

    * Wildcards are now allowed for paludis --query, --uninstall, --install.

    * Unavailable format repositories are now documented and built by default.

    * Compilers without tr1 memory, type traits and functional support are no
      longer supported. This means you, gcc-3.

    * Support for the Exherbo distribution.

    * Better detection of SCM versions.

    * bug fixes: pkg_pretend now behaves correctly with resumes (ticket:604).
      Better support for Portage config files (ticket:597). Package dep spec
      parsing no longer has trailing hyphen issues (ticket:590).

    * New Selection + Filter + Generator interface using Environment, replacing
      the old PackageDatabase Query (ticket:559).

    * importare can now change file ownership to root (ticket:599).


    * Bug fixes: importare now really adds packages to world by default, as
      promised in 0.26.0_pre3.  pkg_pretend is now properly fatal (ticket:579).
      There are no longer bogus 'use flags defined recursively' messages
      (ticket:568).  Symlink rewriting now works when builddir contains symlinks
      (ticket:571).  The dreaded Ruby bindings segfaults are fixed (ticket:558).

    * The Ruby bindings have been extended somewhat.

    * Bug fix: if we install a directory using rename(), call utime() on all
      file children.

    * Fixed gcc-3.4 compile.

    * portage_compatible in environment.conf is deprecated in favour of the new,
      more fine-grained accept_breaks_portage.  When using Portage configuration
      files, this is also supported as PALUDIS_IGNORE_BREAKS_PORTAGE in
      make.conf, for the convenience of users who prefer to use
      Portage-compatible configuration files without caring about Portage

    * Extended attributes are now preserved when merging, where supported.

    * paludis now supports syncing from bzr repositories.

    * reconcilio no longer accepts the --verbose switch; verbose display is
      now turned on unconditionally.

    * env->gt query_use(...) now issues a QA notice and returns false for E
      repository IDs when the flag isn't in IUSE / USE_EXPAND / arch.list.

    * importare now adds packages to the world file unless the --preserve-world
      option is specified; any packages previously installed with importare
      should be added manually if appropriate.  The special "ununused" set no
      longer exists.

    * If 'foo' is a user defined set, we automatically create 'foo*' which is
      like 'foo' but with all operators treated as '*' recursively.

    * paludis now supports ${root} in environment.conf.  This can be
      used when defining the "world" key, so that the configuration
      works when the filesystem is mounted as a chroot as a separate

    * Set names can now be specified in .conf-style set files.

    * Sets can now contain ?: entries, which are like ? entries but also
      consider the slot part of the dependency specification.

    * We no longer issue a QA warning for E repository profiles that attempt to
      remove the same line more than once from a parent profile's files.

    * paludis now rebuilds the VDB names and provides caches
      incrementally after each install and uninstall. This can give a
      significant speed-up, but it makes it more important to run
      paludis --regenerate-installed-cache after installing or
      removing a package with portage, as this will no longer be done

      This also changes the format of the provides cache, so you will need
      to run paludis --regenerate-installed-cache once after upgrading.

    * paludis now uses ${builddir}/${CATEGORY}-${PF} instead of
      ${builddir}/${CATEGORY}/${PF} as a temporary build directory.

    * paludis now has an --executables option which shows all executables
      installed by a package that are in $PATH.

    * paludis --info pkg now shows information about all installed matches and
      the best installable match by default.

    * Installation details for pretend_resume demo hook have changed. Please
      remove any old symlinks and see the comments at the start of the file
      for new instructions.

    * World is now handled by environment, not individual repositories. Consult
      the FAQ 'Upgrades' section for migration instructions.

    * All ruby demos are now installed with the executable bit set, and a
      symlink for playman is installed in $(bindir).

    * importare now has an --install-under option.

    * Added two new hook phases, install_task_execute_pre and
      install_task_execute_post, to avoid issues with continue-on-failure.

    * Hooks in the auto/ directory can now specify in which phase or phases they
      are to be run.

    * The merger is able to detect hardlinks and tries to merge them as such.

    * We're even less strict about environment checking from VDB, to avoid
      issues with packages installed several years ago when USE_EXPAND didn't
      include KERNEL etc.

    * Fixed a quoting bug that would result in unwanted wildcard expansion
      when rewriting *DEPEND values.

    * paludis --owner now shows matching files when --full-match is not

    * importare now does stripping the same way as E repositories, based upon
      the --debug-build argument.

    * We are less strict when doing environment checking when loading an entry
      from VDB, to avoid issues with some Portage versions not setting certain

    * rsync based syncers (rsync://, file://, tar+http:// and tar+ftp://) now
      support --exclude in sync_options, as well as --exclude-from.

    * Set names are now supported in package_mask.conf and package_unmask.conf.

    * Experimental new Exndbam repository, which can replace VDB on systems that
      don't use Gentoo trees.

    * In various places we now sort by i-node rather than filename when doing
      directory recursion. This gives substantial i/o improvements.

    * Recent Portage unpacks lzma files, in violation of PMS and without any way
      of ebuilds being able to check for this behaviour. We now emulate this

    * Work around tr1::shared_ptrgt  not being usable with a tr1::mem_fn when
      using boost.

    * Work around various ICC oddities.

    * Playman is now an "official" ruby demo script.

    * Various Ruby updates.

    * Various QA updates.

    * Sending Paludis a SIGINT or SIGTERM whilst it has children active will no
      longer lock.

    * Linux appears to randomly nuke set*id bits when doing a rename(). We now
      work around this.

    * New demo hook, pretend_resume.bash, to print the resume command
      at the end of the --install --pretend display.

    * dohtml fixed.

    * Various merger bug fixes.

    * Various Ruby updates.

    * Various QA updates.

    * Uninstalling packages installed with recent Portage no longer breaks.

    * STILL BROKEN, wait for 0.26.0 if you use these: CRAN, Ruby bindings for
      dep list.

    * Various switches now support --no-, for negation.

    * paludis, inquisitio --show-authors.

    * {keywords,licenses,use}.conf can now contain single- or double- quoted

    * paludis --install --pretend will show how many bytes still need to be
      downloaded for a given package to be installed. Two new metadata keys,
      size_of_download_required and size_of_all_distfiles, have been added.

    * Some merger improvements were implemented: try to merge by renaming a
      parent directory or merging each file separately. If a copy is needed,
      merge to a temporary file and then rename to the real destination.

    * Symlink rewriting is now part of the merger and is EAPI-configurable. All
      EAPIs known to paludis allow symlink rewriting except exheres-0.

    * Rather than spawning a second paludis instance, has_version etc in ebuilds
      now communicate back to the original Paludis process through a pipe.

    * Paludis will now work with Bash 3.2_p20 and later (gentoo#190128).

    * STILL BROKEN, wait for 0.26.0 if you use these: CRAN, Ruby bindings for
      dep specs.

    * inquisitio --all-versions, --not, --compact.

    * paludis, reconcilio, importare --compact, --show-package-descriptions.

    * New defaults: --debug-build split, --dl-blocks
      accumulate, --dl-override-masks tilde-keyword license (and use 'none' to
      ignore defaults), --show-reasons summary, --show-use-descriptions changed,
      --show-package-descriptions new, --dl-downgrade warning

    * Paludis now protects further against sandbox clobbering the PATH.

    * Metadata options for importare.

    * adjutrix, qualudis and friends ignore --master-repository-dir if
      it is the same as the main repository directory, allowing it to
      be more usefully specified in {ADJUTRIX,QUALUDIS}_OPTIONS.

    * Various API documentation improvements.

    * STILL BROKEN, wait for 0.26.0 if you use these: CRAN, Ruby bindings for
      dep specs.

    * More verbose paludis --info output.

    * Paludis now fully supports filenames containing spaces.

    * New, much more flexible, faster inquisitio.

    * paludis --continue-on-failure if-independent implemented.

    * libebt, libwrapiter no longer used.

    * Bug fixes: --dl-deps-default works again. More
      robustness/compilance improvements for reconcilio, including
      proper handling of ELF files that use the non-native byte order.
      --show-use-descriptions works as in 0.24 for new packages.

    * STILL BROKEN, wait for 0.26.0 if you use these: CRAN, Ruby bindings for
      dep specs.

    * If a wrong package or repository name is used in several places, they will
      give possible suggestions rather than just saying "could not find

    * More documentation for clients.

    * User-defined package sets are now cached.

    * Bug fixes: reconcilio is better at handling broken elf files. Doxygen
      external tags are fixed. IUSE in VDB has +/- stripped.

    * STILL BROKEN, wait for 0.26.0 if you use these: CRAN, Ruby bindings for
      dep specs.

    * We now ship Python bindings (Google Summer of Code project by Piotr

    * Massive internals changes. The old PDE / VM system has been replaced by

    * GCC 4.1+ users can now --enable-visibility to enable .so visibility

    * EAPI 1 is supported.

    * Support for .so and Python hooks.

    * New distribution configuration system, allowing distributions to change
      various aspects of default behaviour.

    * Compiling against Paludis is now done via pkg-config.

    * Huge documentation rework.

    * Unsafe uninstalls now require 'paludis --permit-unsafe-uninstalls'.

    * Manifest2 support, replacing digest support.

    * Whether src_test is run is now an EAPI defined default. 'paludis --checks
      none|default|always' can be used to change this. SKIP_FUNCTIONS voodoo is
      now considered harmful.

    * New clients: accerso (for running a distfiles mirror), instruo (for
      generating metadata cache), reconcilio (like revdep-rebuild), importare
      (for managing unpackaged packages).

    * Initial 'paludis --continue-on-failure' support.

    * Much nicer 'paludis --info', and pkg_info support.

    * Various bugfixes: ebuild_notice is now called correctly by various
      utilities. Exit statuses for programs dying with a signal are now detected

    * g++-4.2's std::exception::what() is less useful. We now use
      to get the type of an exception for error messages.

    * configure now checks for more CXXFLAGS that are known to cause breakages.

    * We now include test cases for hooks. This means eselect modules are now
      strict build dependencies.

    * More ldconfig oddities fixed.

    * The eselect news module is no longer shipped as part of Paludis.

    * The ldconfig check introduced in 0.24.3 would incorrectly detect a BSD
      ldconfig on some GNU systems. This is now fixed.

    * Bug fix: -* in keywords.conf now works.

    * Non-GNU ldconfig is now supported.

    * Various minor bug fixes and docs updates.

    * Various fixes for FreeBSD, gcc 3.4.

    * Recursively defined USE flags no longer cause problems.

    * Switched to automake-1.10 for BSD friendliness.

    * Dist tarballs no longer have issues with missing Vim scripts.

    * Ranged dependencies using foo/bar[>gt =1& gt  version operator is now

    * QA now checks package visibility and profiles. The various QA blacklists
    are now in text files rather than hard coded.

    * A new client for handling cross toolchains, contrarius, is supplied.

    * Completion for ZSH is now available.

    * CVS can now be used in sync keys for repositories.

    * The paludis client can now display a description of USE flags shown
    in a --install --pretend session. The --dl-deps-default parameter can
    be used to specify default values for all six dependency classes.

    * Various icc and BSD portability fixes.

    * The uninstall_ hooks are now called only for real uninstalls. When
    cleaning a package, clean_ is used instead.

    * Paludis handles upgrading itself much more elegantly.

    * The QA library now has a Ruby interface.

    * Huge performance increases for various common tasks, assisted by optional
    new cache methods. This requires changes to repository files (documented in

    * Packages named -live are now recognised as SCM packages.

    * Package origins and install times can now be queried.

    * Packages with version 9999, or with names ending in "-cvs" or "-svn", are
    now considered to be SCM packages for reinstall purposes.

    * Paludis will now compile with g++-3.4 again.

    * A new --report action, which displays warnings about installed packages
    that are insecure, masked or no longer available, has been added to the
    paludis client.

    * Uninstall with dependencies and uninstalling unused packages is now

    * SCM (CVS, subversion, ...) packages can now be flagged for reinstall after
    a given period of time.

    * Paludis now has options for automatically making debug or split debug

    * The resume command can now be written to a file.

    * Cache can be written to a named directory.

    * Various ebuild compatibility tweaks.

    * When to fall back to installed packages to resolve a dependency is now

    * Users can define their own fetchers.

    * With 0.8.3, 'make doxygen' at top level would fail. This is now fixed.

    * More work on the Ruby interface.

    * paludis --query now always shows SLOT information.

    * qualudis now has a --quiet option and checks for certain illegal variable

    * Old-style virtual packages are no longer displayed in dep lists.

    * Bash 3.2's different =~ syntax is now supported.

    * PALUDIS_OPTIONS now only applies to paludis. ADJUTRIX_OPTIONS etc can be
    used for other clients.

    * Lots of documentation updates. A new "Programming with Paludis" document
    is available.

    * NoConfigEnvironment, and by extension adjutrix, can now work with VDB
    repositories where appropriate.

    * More work on the Ruby interface.

    * Various minor Portage compatibility tweaks.

    * Various autotools-related bugs are fixed. The Ruby should now
    be built and installed correctly on most systems.

    * A -blah in profile files now removes all blah lines, rather than just the

    * Pre-0.8 command line options are now available again, marked as

    * A Ruby interface is now available.

    * qualudis: Various deprecated functions are flagged. Maintainer
    information is now included in the output.

    * The deplist has been rewritten to be much cleaner and much more sensible
    in its handling of virtuals. It can now reinstall packages if USE flags have
    changed, and can display why a package is being installed.

    * The security set for Portage format repositories no longer requires an
    external preprocessor. paludis -pi security will now work off a raw sync.

    * The qualudis client now checks that Manifest files are signed.

    * Various minor bug fixes.

    * We now define a PKGMANAGER environment variable and vdb entry.

    * Using * -* in use.conf no longer implies -* for USE_EXPAND variables.

    * A new NoConfigEnvironment is provided to make things easier for tool

    * The adjutrix client now has a reverse dependencies search facility.

    * The USE_EXPAND code has been simplified, and numerous bugs fixed in the

    * A new --list-sets action is available.

    * For --query, visible packages are now chosen over invisible packages.

    * When a package install fails, the paludis client now displays a command
    that can be used to resume the current task.

    * A bug that could cause highly strange behaviour with virtuals when using
    multiple profiles is fixed.

    * All package sets are now composite. Previously some were instead selected
    from only one repository, which was confusing behaviour and not as useful as
    originally suspected.

    * -* now works properly.

    * The adjutrix keywords graph is now SLOT aware.

    * A bug preventing recursion from behaving correctly in dohtml is fixed.

    * Ebuild hooks can now use 'die'.

    * The eselect news client has several new options.

    * Portage doesn't always add a newline to the last line in world. We now
    work around this.

    * use.conf now supports -*, to prevent inheriting profile defaults.

    * CONFIG_PROTECT and CONFIG_PROTECT_MASK now recognise -target and -*.

    * The adjutrix client has several new actions that will be of use to arch
    and release teams.

    * A bug in dosym is fixed, meaning that Java packages, amongst others, can
    now be installed.

    * Profile package.mask files can now remove entries from inherited profiles.

    * libdir is now set properly by econf when an ebuild specifies --prefix.
    This should fix installing of KDE, amongst others.

    * More sanity checking is now done both of the build environment and at

    * elog will now write to PALUDIS_ELOG_FILE, if defined, as well as
    displaying on screen.

    * Virtuals are now handled entirely dynamically and are not written to vdb.

    * Support for CRAN (the Comprehensive R Archive Network) repositories is now

    * Manual (man) pages are now provided.

    * Logic for complex operations such as installing and uninstalling has been
    moved out of the client code and into separate task classes.

    * Repository formats are now dynamically loaded from .so files rather than
    being compiled in.

    * libwrapiter is now used to simplify iterator interfaces and reduce compile

    * Much better handling of Portage-generated VDB entries.

    * For VDB repository entries, all USE flags are marked as masked / forced.

    * --query on virtuals is more useful. USE flags are displayed for --query.
    Sets can be shown with --query.

    * New client: adjutrix, a tool for developers and arch teams.

    * In key/value configuration files, line continuations inside a quoted
    string with no backslash is now a warning, not an error.

    * REAL_CHOST is now exported automatically, to avoid problems with
    gcc-config when Portage is not installed.

    * Support for newer libselinux /proc voodoo.

    * svn+https:// is recognised for syncing.

    * Huge speed improvements when merging.

    * portageq vdb_path is now emulated.

    * Fail hooks for ebuild phases are available.

    * An infinite loop on unmerge bug has been fixed.

    * CONFIG_PROTECT now works as expected for ROOT=/.

    * Unmerging Portage-installed packages with ROOT=/ will no longer have
    strange eclass issues.

    * Unmerging Portage-installed packages with ROOT=/ will no longer trigger
    sandbox problems.

    * Category names can now include dot characters (crossdev requires this for
    some CHOST values).

    * Use of colour is more consistent.

    * Lots of doxygen and code cleanup.

    * Lots of internal code cleanup.

    * Doxygen generated documentation is much cleaner. Documentation about
    configuration file formats is now provided.

    * The build directory for Portage format repositories is now configurable
    using a parameter named 'buildroot'.

    * --pretend --install now displays detailed counts ('1 upgrade, 3 new')
    rather than just a raw number. USE_EXPAND flags are displayed in a much
    more useful manner.

    * As part of the test suite, various full installs of test packages are
    now performed.

    * Multiple eclass directories and multiple profile directories can now
    be specified for Portage format repositories. The 'eclassdir' and
    'profiledir' keys are now deprecated in favour of 'eclassdirs' and

    * New commandline options: --list-vulnerabilities, mostly for use by
    tree maintainers; --dl-no-unnecessary-upgrades, for avoiding upgrades of
    dependencies; --environment-variable which can be used to print
    the value of an environment variable for an installed or uninstalled
    package; similarly, --configuration-variable can be used to get a repository
    configuration variable; --info, as per portage.

    * A new repository format named "nothing" is available. It does not
    contain any packages, but supports a sync parameter to make automatically
    syncing other directories simpler.

    * Fetching is now handled via wrapper scripts. Support for file:/// URLs
    has been added.

    * If the user mirrors.conf file contains an entry with a mirror named '*',
    first try fetching everything from that location.

    * A warning is now emitted when dropping circular dependencies.

    * The merge / unmerge code is now written in C++ rather than bash, and the
    MD5 implementation is now internal rather than relying upon 'md5sum', which
    works around problems when upgrading libc. When upgrading and downgrading,
    sh breakages due to library version changes are less likely to be a problem.

    * xterm titles are now updated for syncing, similar to previous behaviour
    for installing.

    * Syncing via Subversion over HTTP (svn+http://) has been enabled.

    * Improved Portage compatibility: .tar.Z files are now unpacked correctly;
    the 'date' command in ebuild global scope now works with a warning, rather
    than being a hard failure; use of * with operators other than equals in dep
    atoms is now a QA warning rather than a fatal error; PVR and AA are
    supported, and A and AA do not include extra whitespace; dosym now calls
    dodir as necessary as per Portage 2.1; elog is available.

    * Some log messages include program context, to make finding the cause
    of the problem simpler.

    * The repository whence a package originates is saved in VDB. Portage
    compatible environment saving is now used. VDB_FORMAT is now "paludis-2".

    * SELinux is supported.

    * Backtraces are now displayed from 'die'.

    * World file updates are now carried out for packages that are unrestricted
    except where --preserve-world is specified, regardless of whether the
    package was previously installed. World updates are carried out after
    packages are installed rather than before.

    * Dependency errors due to [use] requirements now have more friendly error

    * Syncing via Git is possible (git://, git+http://, git+ssh://).

    * A new mirrors.conf configuration file can be used by the user to specify
    favourite mirrors. It has the same format as thirdpartymirrors from the

    * Error condition handling is improved in many places.

    * Versions can now include -try.

    * Initial work towards FreeBSD support has been started.

    * An ebuild metadata generation bug has been fixed.

    * For Portage format repositories, the location of security advisories is
    now a configuration option.

    * Added support for repository-level global and per-package USE forcing.

    * Added --repository, --category, and --package filter options for --list

    * Added an eselect-based newsreader. Paludis now provides a reference
      implementation of GLEP 42.

    * Various bugfixes -- reinstalling glibc and coreutils should work now,
      amongst others.

    * Deplist tags are now used for all package sets.

    * The --query output now includes a key explaining the mask symbols.

    * News items can now be delivered via repositories (GLEP 42).

    * Various sandbox issues have been fixed.

    * Various bugfixes.

    * Build issues caused by trying to invoke sandbox from inside sandbox have
      been fixed.

    * The value of EAPI is now shown in the --install mask reasons.

    * User and repository defined package sets are supported.

    * The hook script interface has been enhanced. A hook script for logging
      important actions to paludis.log is included.

    * The --best-version output no longer includes the ::repository suffix.

    * VDB reading is more tolerant of missing and malformed files.

    * Using --query on a package set produces a better error.

    * Ebuilds using fetch restrict will now have pkg_nofetch called where

    * Initial public release.

.. vim: set tw=80 spell spelllang=en :