Perl 5.8.8 -> 5.10.0 transition
Current Status
Perl 5.10.0 was accepted in unstable on 2008-05-01 and has been built sucessfully on all architectures except m68k.
TODO
Uninstallable packages
A lot of packages need to be rebuilt when Perl 5.10 hits unstable. These are the ~300 packages that Depend (or Pre-Depend) on perlapi-5.8.* or libperl5.8. All of these will be uninstallable, and many of them need some of the others to build.
A "stepladder approach" for this is ready: see
http://lists.debian.org/debian-perl/2008/01/msg00218.html http://svn.debian.org/wsvn/pkg-perl/scripts/perl-5.10-transition/
The rebuilds should be best done as BinNMUs, but the packages that fail to build with 5.10 (see the 'Usertag' section below) need to be fixed with sourceful uploads first.
libxml-parser-perl circular dependency
See #458144. This should definitely be fixed in one way or other before the unstable upload.
debconf-english vs. debconf-i18n
joeyh: "This may need manual buildd tweaks" http://lists.debian.org/debian-perl/2008/01/msg00220.html
Packages failing to build
A test rebuild for at least all the *-perl packages has been done on around 20080223 to find out packages failing to build. See the "Usertag" section below.
Known issues include:
the "unconditional rmdir problem"
A bug in Extutils::?MakeMaker used to create empty /usr/lib/perl5 or /usr/share/perl5 directories, and dh-make-perl templates included for a long time a debian/rules line that unconditionally rmdir'd it.
The Extutils::?MakeMaker bug was fixed for Perl 5.10, and now around 400 packages are failing to build because they try to rmdir a non-existent directory.
Suggested fix (from recent dh-make-perl templates):
[ ! -d $(TMP)/usr/lib/perl5 ] || rmdir --ignore-fail-on-non-empty --parents --verbose $(TMP)/usr/lib/perl5
See #465783 for more information about this issue.
An announcement about this with a list of the broken packages was sent to the debian-devel and debian-perl lists at 20080218.
See debian-perl mailing list archive
Update: all of these have been fixed as of 20080406.
No pseudo hashes anymore
Pseudo hashes have been deprecated for some time now, and 5.10 removes them altogether. At least libxml-encoding-perl was still using them until recently (see #458578). -- libtk-objscanner-perl can view pseudo hashes, but this feature is disabled for perl > 5.009. ( domi after a remark from gregoa)
New*() changes
From perlapi.pod:
In 5.9.3, Newx() and friends replace the older New() API, and drops the first parameter, x, a debug aid which allowed callers to identify themselves. This aid has been superseded by a new build option, PERL_MEM_LOG (see "PERL_MEM_LOG" in perlhack). The older API is still there for use in XS modules supporting older perls.
There seem to be some incompatibilites, though, and at least speedy-cgi-perl needed fixing (#462927).
DynaLoader.a is gone
Packages embedding Perl and not using ?ExtUtils::Embed::ldopts (as specified by the Perl policy) will probably look for /usr/lib/perl/5.10/auto/DynaLoader/DynaLoader.a in vain. See #463083
SWIG bindings with C++
This is seen in at least gdal and libxml-xerces-perl. Symptoms:
- gdal_wrap.cpp:1232: error: expected unqualified-id before string constant
- gdal_wrap.cpp:1233: error: expected initializer before '*' token
gdal_wrap.cpp:1238: error: '?SwigPerlWrapperPtr' does not name a type
- gdal_wrap.cpp:15361: error: too many initializers for 'swig_command_info' ')]]
The fix is to regenerate the SWIG wrappers with a recent SWIG version.
Usertag
Bugs have so far been filed with these usertags:
- usertag perl-5.10-transition for transition-related bugs (mostly FTBFS for arch:any packages that need binNMUs)
- usertag perl-5.10-ftbfs for the packages that start to FTBFS but don't become uninstallable (mostly arch:all)
- usertag perl-5.10-ftbfs-rmdir for the specific case of perl-5.10-ftbfs category that fail because of the 'rmdir issue' (mass bug filing done on 20080226)