He's not dead, he's resting

Paludis is about Choices

Paludis 0.32 will include a new mechanism called ‘choices’. Examples of choices on Gentoo include use flags, the various USE_EXPAND settings (linguas, video_cards and so on) and a shiny new setting called build_options. For use flags and the USE_EXPAND settings, there’s no change from a user perspective, and you can carry on using use.conf as normal — choices are merely a more general mechanism for handling package settings.

On Exherbo, things do change a bit, and if you’re one of those naughty people who ignored the “Exherbo has no users” warning you’d better have been paying attention.

So what’s this build_options thing? You’ll see it cropping up for most packages:

* net-print/cups::gentoo [U 1.3.8-r1 -> 1.3.8-r2] <target>
    Reasons: app-text/ghostscript-gpl-8.62:0::installed, net-print/foomatic-filters-3.0.20080507:0::installed, 2 more
    X acl -avahi -dbus -gnutls -java jpeg -kerberos -ldap pam perl -php png ppds python -samba
    -slp ssl -static -tiff -xinetd -zeroconf LINGUAS: -de en -es -et -fr -he -id -it -ja -pl -sv
    -zh_TW build_options: -optional_tests split strip

Packages using 0-based EAPIs will usually have three build options:

  • optional_tests. This handles what --checks used to do. If this choice is set, src_test will be run.
  • split. This used to be --debug-build split.
  • strip. This used to be --debug-build internal.

Packages using kdebuild-1 or exheres-0 will have recommended_tests instead of optional_tests, which defaults to being enabled rather than disabled.

Despite what you might expect from older Paludis versions, these are not use flags. You can set them in use.conf, though — this means you can select whether to run tests or whether to keep debug information on a per-package basis, which was tricky to do with the old commandline options.


7 responses to “Paludis is about Choices

  1. Piotr Rak October 26, 2008 at 9:54 pm

    Could ‘choices’ also be used for *-scm.{ebuild,exheres} to specify revision/tag version to install? If yes, would that require EAPI support?

  2. Ciaran McCreesh October 27, 2008 at 6:36 am

    It could, but not very cleanly — @revision version support is a much better way of doing it. And yes, anything SCM related needs EAPI support, since ebuilds would have to provide a way of exporting revision information.

  3. yoshi314 October 27, 2008 at 9:58 am

    what is the logic around split and strip?

    i mean, what happens one of them, or both are disabled.

  4. Ciaran McCreesh October 27, 2008 at 12:12 pm

    split controls whether or not we objcopy --only-keep-debug into /usr/lib/debug. strip controls whether or not we strip. The two are at least somewhat independent, although setting split but not strip is slightly strange.

  5. yoshi314 October 31, 2008 at 2:08 pm

    that’s what a was curious about, because split -strip seemed a bit strange.

    will paludis provide some kind of “sanity check” for unreasonable option combinations, or is no such feature planned?

  6. Ciaran McCreesh October 31, 2008 at 2:14 pm

    I don’t consider split -strip to be insane, so there won’t be a warning for that. Warnings for package options requires EAPI support, so it’ll get done for exheres-0 fairly quickly but probably not for 0-based EAPIs any time soon.

  7. Pingback: MYOPTIONS: It’s like IUSE with Candy « Ciaran McCreesh’s Blag

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s