-=| Niko Tyni, Tue, Apr 27, 2010 at 10:55:54PM +0300 |=- > Package: debian-policy > Version: 3.8.4.0 > Severity: wishlist > X-Debbugs-Cc: [email protected] > > The Perl policy currently mandates that the perl-base package provides > perlapi-<version> for every upstream version it is binary compatible > with. XS modules are required to depend on this so that there's a > transition path when Perl version upgrades include incompatible ABI > changes [1]. > > However, the binary interface is also affected by several configuration > settings chosen at Perl build time. These include support for > threading (usethreads), 64-bit integers (use64bitint) and long doubles > (uselongdouble). > > 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. > > Obviously this does not mean that the ABI would be changed lightly, > it only makes it possible when really required. [2]
Sounds good to me.
> 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
>
> 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.
+1
> The transition from the current perlapi-* scheme does not seem
> difficult:
> affected packages can be easily found and changing dh_perl in debhelper
> would be the only required source fix for a vast majority of them.
>
> 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.
+1
> I'm copying the debian-perl list to reach any interested parties.
> If there's a consensus that this looks sane and useful, I could make the
> required changes in the perl package easily and then try to come up with
> a proposed wording for the policy change.
>
> Please comment.
>
> [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?
>
> [2] The particular use case I have in mind is enabling uselongdouble
> or use64bitint for Perl 5.12.0 in sid and later finding out that it
> was the wrong thing to do for some unanticipated reason. Currently
> there is no way to change these settings cleanly before the next
> upstream version comes around.
>
> Obviously I'm doing my best to test the choices in experimental first,
> but surprises can still happen and I'd like a last resort way
> out.
Seems a valid reason to me.
signature.asc
Description: Digital signature

