>I would like to include these settings in the virtual package name so >that it would be possible to make incompatible ABI changes during the >life time of a single Perl upstream version and have a clean transition >path. > >As for the implementation, the name of the virtual package could be >derived from $Config{archname}, for example x86_64-linux-gnu-thread-multi. >The system type prefix seems unnecessary; stripping it out and adding >the version number would give something like > Provides: perlabi-5.10.1-thread-multi, perlabi-5.10.0-thread-multi >or > Provides: perlabi-5.12.0-thread-multi-64int-ld
My inclination would be not to use something this verbose. It implies that there could be multiple concurrent builds, which was something I spent some time and effort removing. It seems to me that you could leave it as-is, for this release but additionally make this policy change: >For convenience, the perl package could include the suffix and/or the >whole string in something like $Config{debian_abi}. In that case we >should probably mandate that packages need to use it rather than derive >the string themselves. ...which I think is rather a sound idea, which allows you in the ideal case to retain a concise dependency, but does not preclude you changing it arbitrarily should it turn out that there are issues with 64int+ld moving forward. In which case anything would suffice: perlapi-5.12.0-32int for example if you were backing out the change. This of course need not be permanent, the next version could be just perlapi-5.12.1 again. >The perl-base package could provide both the old perlapi-<version> >and the new perlabi-<version>-<suffix> during the transition period and >remove the perlapi-* one when all the packages have been changed. This should not even be required for this transition: no prior package will meet the 64int+lb ABI. >[1] Given that this is all about binary compatibility, I don't understand > why the virtual package is called perlapi-* and not perlabi-*. > Maybe somebody could enlighten me? The name came from the variables in perl used to denote the oldest compatible binary version: api_{revision,version,subversion}. http://perl5.git.perl.org/metaconfig.git/blob/master:/U/perl/patchlevel.U#l74 Feel free to s/abi/api/ if it truely bothers you. --bod -- To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20100505082347.ga31...@ravel.debian.org