16. Binary Package Dependencies Proposal:
Add a binary dependency keyword to be optionally resolved by the shell. eg. binary_requires: - linux-debian: libgif4-dev: 4.1.6 - linux-ubuntu: libgif4-dev: 4.1.6 - linux-redhat: giflib-devel: 4.1.6 - freebsd-ports: giflib: 4.1.6 - freebsd-pkg: giflib4: 4.1.6 The aim is for use by Alien:: namespace modules to declare a dependency that would allow them to detect their desired non-Perl dependency without installing a copy of the code involved that isn't tracked by the system package manager (and hence isn't subject to security updates. I don't expect immediate implementation by CPAN/CPANPLUS, but it provides a structure where extensions to either can find the information needed to install those packages if the user desires. If an Alien::* module's configuration (Makefile.PL/Build.PL) were started without the packages installed, then either the user chose not to install the packages, or no package was found for the given platform. The Alien::* could then install from source (or fail.) A Makefile.PL or Build.PL doesn't necessarily have the information needed to know whether to install a package, while CPAN/CPANPLUS may, especially given the possibility of extra configuration (o conf binary_requires on|off). One weakness with the above is the lack of alternatives, a few years ago we might have been satified by either libgif or libungif (Tonyc) Comments: * The biggest challenge with this proposal is the need for a target-agnostic specifier. If a truly portable method exists for defining "libgif version 4.1.6 or better" then you don't need to say which packages are needed, as the resolution of a package from the arbitrary identifier can be solved independently. The need for massive amounts of consulting with other communities to achieve some useful consensus on identifiers is the biggest challenge for this proposal. --Adam K