August 27, 2010

Ciaran McCreesh

Paludis 0.54.2 Released

Paludis 0.54.2 has been released:

  • 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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at August 27, 2010, 18:02 UTC

Paludis 0.54.1 Released

Paludis 0.54.1 has been released:

  • User-defined cave commands are now passed all command line arguments correctly.
  • ‘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->d_type is now used to reduce the number of stat() calls that are made.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at August 27, 2010, 15:12 UTC

August 24, 2010

Ciaran McCreesh

Paludis 0.54.0 Released

Paludis 0.54.0 has been released:

  • ‘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 documented.
  • ‘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’ respectively.
  • 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’.
  • ‘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 convoluted.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at August 24, 2010, 16:59 UTC

August 11, 2010

Ciaran McCreesh

Paludis 0.52.3 Released

Paludis 0.52.3 has been released:

  • 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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at August 11, 2010, 14:48 UTC

August 10, 2010

Ciaran McCreesh

Paludis 0.52.2 Released

Paludis 0.52.2 has been released:

  • ‘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 faster.
  • ‘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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at August 10, 2010, 09:45 UTC

August 08, 2010

Ciaran McCreesh

A Glimpse Into cave: Resolving Purges and Dependents

What happens when you upgrade a package, and the new version no longer uses a library that the old version did, and now nothing else uses that library either? In primitive distributions, you’re stuck with that library forever; in Gentoo and Exherbo the package manager will be able to tell you that the library is no longer used by any package in world. Until now, this has been a “do this once in a while, and try to remember what the heck all those things are” kind of affair. However, cave is cleverer:

pyxml no longer used

And you can easily decide to take it as part of the upgrade process (safely, since cave supports mixing installs and uninstalls with dependencies etc):

pyxml purged

This can also work with slots — however, doing so safely requires accurate slot information from packages, which sadly can’t take place in Gentoo until EAPI 4 is implemented in Portage.

Similarly, cave will tell you if you’re about to do something dangerous:

xulrunner breaks firefox

And if you decide to remove the packages that would be broken, rather than allow breakage to occur, you get to see more nice examples of purges:

xulrunner plus dependents has purges

This all works for downgrades too, as well as upgrades (although upgrades rarely break things, and when they do it’s time to yell at someone):

old asciidoc breaks awesome

And finally, if you’re about to do something immensely stupid, you’ll be told:

iputils is in system

All of this happens automatically, so there’s no need to remember to turn it on.


Filed under: cave for users Tagged: cave, paludis

by Ciaran McCreesh at August 08, 2010, 19:56 UTC

A Glimpse Into cave: Mask and Use Flag Overriding for Resolves

For a long time, Paludis has been able to work out suggestions for what unmaskings you might want to do when installing a particular package that is either masked or has masked dependencies. This functionality is also present in the shiny new cave client, which uses the much more powerful new resolver. Now this functionality is also available for unmet use dependencies.

For example, rather than getting pages and pages of errors when attempting to install gnome:

resolve gnome errors with no overrides

You’ll now get:

resolve gnome errors

Note how you are told all the suggested changes up-front. You aren’t just given a single error, which you can fix and then re-run the command to get another error and so on. Nor are you just given all the errors in the initial resolution; the resolver carries on with its suggested changes and accumulates any additional errors that will occur if you take those suggestions. In the first example, parted isn’t mentioned at all in the initial set of errors, because it is only brought in to the resolution by udisks, which is only brought in via gnome-disk-utility, which is only brought in via gvfs if the gdu use flag is enabled, which we don’t have enabled by our config but that is required by gnome. The resolver is smart enough to work all of this out upfront, sparing you from an eternity of running things over and over.

We’re still experimenting with the UI for errors — it’s probably possible to make it even easier for the user to see what changes need to be made. There have also been requests to make cave able to add the necessary lines to your configuration files automatically (after confirmation, of course). However, I’m not convinced that this is a good idea in practice — for example, cave would suggest turning a particular use flag on for a half dozen packages, but would not realise that turning it on globally may be a better option.

As always, if you find that all these shiny new features save you from horrible torment, books or pens (pens being a vital part of the high tech design process) are much appreciated.


Filed under: cave for users

by Ciaran McCreesh at August 08, 2010, 18:27 UTC

Paludis 0.52.1 Released

Paludis 0.52.1 has been released:

  • 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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at August 08, 2010, 09:52 UTC

August 06, 2010

Ciaran McCreesh

Paludis 0.52.0 Released

Paludis 0.52.0 has been released:

  • format=”exheres” and format=”ebuild” are now deprecated in favour of format=”e”.
  • 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 configuration.
  • ‘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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at August 06, 2010, 18:14 UTC

August 05, 2010

Ali Polatel

PinkTrace relicensed to BSD-3

I’ve relicensed pinktrace from LGPL-2.1 to BSD-3. This should fit this project better as it uses some code from projects like strace and FreeBSD’s truss.

August 05, 2010, 07:00 UTC

July 31, 2010

Ciaran McCreesh

Paludis 0.50.3 Released

Paludis 0.50.3 has been released:

  • :* 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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at July 31, 2010, 10:12 UTC

July 28, 2010

Ciaran McCreesh

Paludis 0.50.2 Relased

Paludis 0.50.2 has been released:

  • ‘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->’ no longer force pointless generation of metadata for ebuilds.

To enable automatic configuration of repositories on Gentoo, you need to set up an unavailable format repository for Layman, and a repository format repository for installs.


Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at July 28, 2010, 10:15 UTC

July 26, 2010

Ciaran McCreesh

Paludis 0.50.1 Released

Paludis 0.50.1 has been released:

  • ‘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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at July 26, 2010, 12:38 UTC

July 24, 2010

Ciaran McCreesh

Paludis 0.50.0 Released

Paludis 0.50.0 has been released:

  • 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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at July 24, 2010, 14:35 UTC

July 22, 2010

Ciaran McCreesh

Paludis 0.48.6 Released

Paludis 0.48.6 has been released:

  • 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.

Filed under: paludis releases Tagged: paludis

by Ciaran McCreesh at July 22, 2010, 19:49 UTC

September 02, 2010, 19:20 UTC