Summary: | perl-module.eclass/perl-functions.eclass: idea for san checking module compileability | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Kent Fredric (IRC: kent\n) (RETIRED) <kentnl> |
Component: | Current packages | Assignee: | Gentoo Perl team <perl> |
Status: | RESOLVED CANTFIX | ||
Severity: | normal | CC: | esigra, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 239510 |
Description
Kent Fredric (IRC: kent\n) (RETIRED)
2018-09-03 07:44:54 UTC
Current thoughts: PERL_PM_PROVIDES=( "Foo 1.0" "Foo::Bar" ) PERL_PM_REQUIRES=( *stuff that is ubiquitously mandatory for a working install* ) PERL_PM_BUILD=( *stuff that is mandatory for compile/install* ) PERL_PM_OPTIONAL=( *stuff that might be pulled in by USE flags or tests* ) The idea being PERL_PM_PROVIDES is the one most used, and the others are deployed on an "as deemed useful" basis. DIST_PM_CHECKS_OVERRIDE="" checks none of these DIST_PM_CHECKS_OVERRIDE="provides" checks only provides DIST_PM_CHECKS_OVERRIDE="provides deps" checks _REQUIRES, _BUILD, and _OPTIONAL DIST_PM_CHECKS_PHASE_OVERRIDE="" runs these tests in no phases DIST_PM_CHECKS_PHASE_OVERRIDE="test" runs these tests during src_test only DIST_PM_CHECKS_PHASE_OVERRIDE="compile" runs these tests at the end of src_compile DIST_PM_CHECKS_PHASE_OVERRIDE="info" runs these checks during emerge --info _REQUIRES/_BUILD should be fatal depending on which phase they're run in. _OPTIONAL should only be informative Still some thinking to be done here though. The function that runs these checks should also break down the output by the dependency class to make it obvious how important they are. REQUIRES and BUILD deps should be checked *before* PROVIDES as failures in these departments are usually indicative of broken systems, and will *lead* to failures to load entries in PROVIDES The idea being that "problem modules" are added to _REQUIRES/_BUILD/_OPTIONAL as they're discovered to help consumers identify faults. The names are of course still subject to debate and the mechanisms still need deciding. Its also worth noting that current mentality intentionally avoids use flag interpolation, mostly because I haven't got a good idea how to handle these. I *do* know that you can augment these variables at runtime and have their state preserved such that their values can be re-seen during emerge --info, and its potentially useful that emerge --info can emit different output based on the USE flags the package was built with in the event emerge --info is running for a package that is already installed. But emerge --info doesn't *always* trigger on packages that are installed, and is sometimes run on packages that are *to be* installed, so more research is needed here on my part ( lots of assumptions and bad memory are working together here ;) ) |