Build Modes (also profiles, various other configurables)

Issue #5 new
Doug Freed
created an issue

Stealing from jmbsvicetto:

  • all use flags disabled (some packages fail miserabily if you don't enable at least one use flag)
  • all use flags enabled (good to detect conflicts)
  • default use flags (rely on IUSE defaults - even better if you test it on different profiles to see the impact)
  • a set of use flags defined by maintainer (mysql ebuilds have a set of USE flags for maintainers to test them)

And my own addition:

  • Custom (write your own pre, during, and post build scripts)

For the first four options, you'll be able to add items to portage config files (package.* and make.conf). For the custom option, you'll be able to create any file with any content you wish.

Comments (5)

  1. Doug Freed reporter

    This'll also include ability to change profiles (though initial set will be limited), choose more minimal starting stage3 (to check for some classes of missing dependencies), and eventually choose a much more restrictive sandbox implementation I'll be working on (which will catch other classes of missing dependencies, as well as automagic dependencies).

  2. Doug Freed reporter

    Just thought of this one: "do this first, then build every package with a stable version on this profile" (a la the regular idea of a tinderbox). This would be an extension of the custom mode.

  3. Andrew Savchenko
    • For -all and +all USE flag tests please consider possible USE conflicts, e.g. due to || ( ) or ^^ ( ) operators it may be not valid to disable all flags and due to ^^ and ?? it is not valid to enable all of them. Also there are negation constrains.
    • It will be great to automatically test all possible and valid USE flag combinations if there number is limited, e.g. if package have <=5 USE flags.
    • For packages with large number of USE flags, where full testing of all possible combinations is not practical, it would be helpful to allow devs to provide masks and/or lists of combinations to test.
  4. Doug Freed reporter

    All three of these are probably best done using the 4th mode, which'll be implemented as a set of checkboxes for the submitter to specify which USE flags to build with. All of the first 4 modes will point out the package's REQUIRED_USE, noting that it must be satisfied in order for the build to succeed (thus leaving it up to the submitter to figure out).

  5. Log in to comment