Package: perl Version: 5.10.0-3 Severity: serious Tags: patch X-Debbugs-Cc: [EMAIL PROTECTED]
Given the recent announcement of the Lenny release schedule [1] with a "very soft freeze" in a few weeks from now, I propose that the infamous "installs an empty /usr/{share,lib}/perl5 directory" bug is reintroduced until Lenny is released. For the sake of completeness, the story is that a bug in Extutils::Install 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. This bug was fixed upstream in ExtUtils::Install 1.41_04, and the fix is included in Perl 5.10.0. As a result, hundreds of Debian packages fail to build with perl 5.10.0-3 from experimental because they try to remove a non-existent directory. I run a few greps on debian/rules of the source packages of all the binary packages matching '-perl' in unstable. Results: at least 398 arch:all and 38 arch:any packages apparently do an unconditional rmdir for the empty directory. I have tried my best to avoid false positives, but I'd be delighted if there's a mistake here. The arch:any packages are particularly important because they will be uninstallable when perl 5.10 hits unstable and must be rebuilt first. Most of the bugs for the 38 packages have already been filed, using the '[EMAIL PROTECTED]' / 'perl-5.10-transition' usertag [2]. The arch:all packages will "only" start to FTBFS, creating 400 new RC bugs in one go. Out of the 436 packages I found, 196 are maintained by the pkg-perl group. These are already listed on the pkg-perl website [3]. I'm attaching the dd-list output for the remaining 240 packages. Given these depressing numbers, I think we should postpone breaking these packages until after Lenny. The attached patch reverts this particular change in Extutils::Install; I have only done some cursory testing but it seems to do the right thing. This doesn't mean that the packages are OK, of course. Maybe a lintian check for the buggy rmdir invocations would be a good start at fixing them... [1] http://lists.debian.org/debian-devel-announce/2008/02/msg00002.html [2] http://bugs.debian.org/cgi-bin/[EMAIL PROTECTED] [3] http://pkg-perl.alioth.debian.org/perl5.10-FTBFS.txt Cheers, -- Niko Tyni [EMAIL PROTECTED]
diff --git a/lib/ExtUtils/Install.pm b/lib/ExtUtils/Install.pm index 1782d34..f0edb30 100644 --- a/lib/ExtUtils/Install.pm +++ b/lib/ExtUtils/Install.pm @@ -563,6 +563,19 @@ sub install { #XXX OS-SPECIFIC $pack{$_}=$from_to{$_}; delete $from_to{$_}; } + my($source_dir_or_file); + my (%fs_type); + foreach $source_dir_or_file (sort keys %from_to) { + #Check if there are files, and if yes, look if the corresponding + #target directory is writable for us + opendir DIR, $source_dir_or_file or next; + for (readdir DIR) { + next if $_ eq $Curdir || $_ eq $Updir || $_ eq ".exists"; + my $targetdir = install_rooted_dir($from_to{$source_dir_or_file}); + _mkpath( $targetdir, 0, 0755, $verbose, $nonono ); + } + closedir DIR; + } my $tmpfile = install_rooted_file($pack{"read"}); $packlist->read($tmpfile) if (-f $tmpfile); my $cwd = cwd();
Krzysztof Krzyzaniak (eloy) <[EMAIL PROTECTED]> libcatalyst-model-cdbi-perl (U) libcatalyst-plugin-session-fastmmap-perl (U) libcatalyst-view-tt-perl (U) libclass-c3-componentised-perl (U) libclass-dbi-fromform-perl (U) libemail-valid-loose-perl libfile-copy-recursive-perl (U) libfile-modified-perl (U) libhttp-body-perl (U) libhttp-request-ascgi-perl (U) liburi-query-perl (U) Michael Ablassmeier <[EMAIL PROTECTED]> libaudio-scrobbler-perl libmp4-info-perl Pierre-Matthieu Alamy <[EMAIL PROTECTED]> libcrypt-des-ede3-perl libdata-buffer-perl Russ Allbery <[EMAIL PROTECTED]> libpgp-sign-perl Nacho Barrientos Arias <[EMAIL PROTECTED]> libtest-cmd-perl Don Armstrong <[EMAIL PROTECTED]> libhtml-calendarmonth-perl libhtml-element-extended-perl libpoe-component-client-ident-perl Jack Bates <[EMAIL PROTECTED]> libnet-dbus-perl Romain Beauxis <[EMAIL PROTECTED]> libfuse-perl Ian Beckwith <[EMAIL PROTECTED]> libmp3-tag-perl libwww-opensearch-perl Hilko Bengen <[EMAIL PROTECTED]> liblwpx-paranoidagent-perl libmail-milter-perl Bastian Blank <[EMAIL PROTECTED]> libalgorithm-annotate-perl libclone-perl libdata-hierarchy-perl libextutils-autoinstall-perl libfile-temp-perl libfile-type-perl libio-digest-perl liblocale-maketext-simple-perl libperlio-eol-perl libperlio-via-dynamic-perl libperlio-via-symlink-perl libregexp-shellish-perl libsvn-mirror-perl libsvn-simple-perl libvcp-perl Gonéri Le Bouder <[EMAIL PROTECTED]> libthread-pool-simple-perl Michael Bramer <[EMAIL PROTECTED]> liblinux-inotify2-perl Marc 'HE' Brockschmidt <[EMAIL PROTECTED]> libexporter-tidy-perl libextutils-pkgconfig-perl libgtk2-ex-podviewer-perl libx11-freedesktop-desktopentry-perl James Bromberger <[EMAIL PROTECTED]> libmodule-depends-perl libwww-indexparser-perl Itamar Almeida de Carvalho <[EMAIL PROTECTED]> libxml-dt-perl Francesco Cecconi <[EMAIL PROTECTED]> libconfig-general-perl libemail-find-perl libhtml-fromtext-perl Tzafrir Cohen <[EMAIL PROTECTED]> libasterisk-agi-perl (U) Marco d'Itri <[EMAIL PROTECTED]> libberkeleydb-perl libnet-whois-ripe-perl Debian Catalyst Maintainers <[EMAIL PROTECTED]> libcatalyst-model-cdbi-perl libcatalyst-plugin-session-fastmmap-perl libcatalyst-view-tt-perl libclass-c3-componentised-perl libclass-dbi-fromform-perl libfile-copy-recursive-perl libfile-modified-perl libhttp-body-perl libhttp-request-ascgi-perl liburi-query-perl Debian VoIP Team <[EMAIL PROTECTED]> libasterisk-agi-perl Sebastien Delafond <[EMAIL PROTECTED]> libnet-socks-perl Ludovic Drolez <[EMAIL PROTECTED]> libfile-rsyncp-perl Florian Ernst <[EMAIL PROTECTED]> libhtml-tableextract-perl Laurent Fousse <[EMAIL PROTECTED]> libmath-bigint-gmp-perl Hendrik Frenzel <[EMAIL PROTECTED]> libapache2-authenntlm-perl Gerfried Fuchs <[EMAIL PROTECTED]> libdbix-abstract-perl David Moreno Garza <[EMAIL PROTECTED]> libperl6-say-perl libxml-treepp-perl Jonas Genannt <[EMAIL PROTECTED]> libcrypt-hcesha-perl libfile-flat-perl libfile-homedir-perl libjavascript-rpc-perl libparams-util-perl libpod-tests-perl libprefork-perl libtest-classapi-perl libtest-inline-perl Arne Goetje <[EMAIL PROTECTED]> libsnmp-multi-perl Stephen Gran <[EMAIL PROTECTED]> libdate-convert-perl Debian QA Group <[EMAIL PROTECTED]> libcvs-perl libdb-file-lock-perl Christoph Haas <[EMAIL PROTECTED]> libtime-format-perl libweather-com-perl Dominic Hargreaves <[EMAIL PROTECTED]> libcache-perl libchart-strip-perl libclass-virtual-perl libconfig-tiny-perl libcrypt-dh-perl libdbix-fulltextsearch-perl libfile-nfslock-perl libgeo-coordinates-utm-perl libgeo-helmerttransform-perl libgeo-postcode-perl libgeography-nationalgrid-perl libgraphviz-perl liblingua-pt-stemmer-perl liblingua-stem-perl liblingua-stem-snowball-da-perl libmail-field-received-perl libnet-openid-consumer-perl libnet-openid-server-perl liboxford-calendar-perl libplucene-perl libquantum-entanglement-perl libsnowball-norwegian-perl libsnowball-swedish-perl libtemplate-plugin-gd-perl libtemplate-plugin-xml-perl libtest-html-content-perl libtext-german-perl libtext-unidecode-perl liburi-find-delimited-perl liburi-find-perl libvcs-lite-perl libwiki-toolkit-formatter-usemod-perl libwiki-toolkit-perl libwiki-toolkit-plugin-categoriser-perl libwiki-toolkit-plugin-diff-perl libwiki-toolkit-plugin-locator-grid-perl libwiki-toolkit-plugin-ping-perl Benjamin Mako Hill <[EMAIL PROTECTED]> libwww-mediawiki-client-perl Florian Hinzmann <[EMAIL PROTECTED]> libnet-dns-perl Ivan Kohler <[EMAIL PROTECTED]> libauthen-passphrase-perl libbusiness-onlinepayment-openecho-perl libbusiness-onlinepayment-perl libbusiness-onlinepayment-transactioncentral-perl libclass-data-inheritable-perl libcolor-scheme-perl libcrypt-ecb-perl libdata-entropy-perl libdata-faker-perl libdata-float-perl libfax-hylafax-client-perl libjson-perl libmodule-runtime-perl libnet-server-mail-perl libpod-simple-wiki-perl libxsloader-perl Kilian Krause <[EMAIL PROTECTED]> libasterisk-agi-perl (U) Eugene Krivdyuk <[EMAIL PROTECTED]> liblogfile-rotate-perl Joshua Kwan <[EMAIL PROTECTED]> libmail-mboxparser-perl John Lightsey <[EMAIL PROTECTED]> libparallel-forkmanager-perl libyaml-tiny-perl Bart Martens <[EMAIL PROTECTED]> libclass-dbi-sqlite-perl libgetopt-declare-perl libnet-ipv6addr-perl Christoph Martin <[EMAIL PROTECTED]> libfile-readbackwards-perl Roland Mas <[EMAIL PROTECTED]> libparse-mediawikidump-perl Rene Mayorga <[EMAIL PROTECTED]> libasterisk-agi-perl (U) Alejandro Garrido Mota <[EMAIL PROTECTED]> libcss-perl libpod-webserver-perl libui-dialog-perl Al Nikolov <[EMAIL PROTECTED]> libdbix-class-htmlwidget-perl Jose Parrella <[EMAIL PROTECTED]> libbiblio-isis-perl libdebian-package-html-perl Tim Peeler <[EMAIL PROTECTED]> liblwp-authen-wsse-perl Víctor Pérez Pereira <[EMAIL PROTECTED]> libapache-asp-perl libterm-prompt-perl libtest-reporter-perl Dirk Proesdorf <[EMAIL PROTECTED]> libdevice-modem-perl Stephen Quinney <[EMAIL PROTECTED]> libstring-format-perl Florian Ragwitz <[EMAIL PROTECTED]> libauthen-pam-perl libcatalyst-plugin-session-fastmmap-perl (U) libclass-dbi-fromform-perl (U) libfcgi-perl libperldoc-search-perl libshell-posix-select-perl libswish-api-common-perl libsysadm-install-perl libxml-sax-expat-incremental-perl Florian Ragwitz <[EMAIL PROTECTED]> libaudio-moosic-perl libcatalyst-plugin-formvalidator-perl libdevel-ptkdb-perl libgtk2-ex-volumebutton-perl liblwp-protocol-http-socketunix-perl libogg-vorbis-header-pureperl-perl libquantum-superpositions-perl Florian Ragwitz <[EMAIL PROTECTED]> libarchive-ar-perl libaudio-file-perl libauthen-sasl-perl libcatalyst-model-cdbi-perl (U) libcatalyst-view-tt-perl (U) libclass-spiffy-perl libconvert-asn1-perl libcpan-mini-perl libcrypt-des-ede3-perl (U) libcss-tiny-perl libdata-buffer-perl (U) libdevel-cover-perl libdigest-bubblebabble-perl libfile-scan-perl libgssapi-perl libgtk2-ex-simple-list-perl libgtk2-gladexml-simple-perl libio-all-perl libio-socket-ssl-perl libkwiki-cache-perl libkwiki-perl libmath-gmp-perl libmodule-pluggable-fast-perl libnet-jabber-loudmouth-perl libnet-jabber-perl libnet-ldap-perl libnet-ssleay-perl libnet-xmpp-perl libpadwalker-perl libpetal-perl libpod-index-perl libppi-html-perl libppi-xs-perl libspiffy-perl libspoon-perl libspork-perl libtemplate-timer-perl libterm-visual-perl libtest-base-perl libtest-nowarnings-perl libtest-simple-perl libtest-tester-perl libtree-simple-visitorfactory-perl libxml-filter-xslt-perl libxml-libxslt-perl libxml-sax-writer-perl libyaml-perl Petter Reinholdtsen <[EMAIL PROTECTED]> libimage-exiftool-perl (U) Roland Rosenfeld <[EMAIL PROTECTED]> libfile-tail-perl Timo Schneider <[EMAIL PROTECTED]> libaudio-flac-decoder-perl libcompress-bzip2-perl libdata-compare-perl libscalar-properties-perl Amit Shah <[EMAIL PROTECTED]> libogg-vorbis-header-perl Christian Sánchez <[EMAIL PROTECTED]> libhtml-table-perl libtangram-perl Sandro Tosi <[EMAIL PROTECTED]> libcrypt-simple-perl Deepak Tripathi <[EMAIL PROTECTED]> libtie-cache-perl Matthias Urlichs <[EMAIL PROTECTED]> libarray-refelem-perl libdata-dumpxml-perl Matej Vela <[EMAIL PROTECTED]> libhttp-daemon-ssl-perl libnet-ldap-server-perl Jaldhar H. Vyas <[EMAIL PROTECTED]> libdatetime-calendar-discordian-perl Lucas Wall <[EMAIL PROTECTED]> libcddb-get-perl C. Chad Wallace <[EMAIL PROTECTED]> liblingua-en-namecase-perl Mari Wang <[EMAIL PROTECTED]> libimage-exiftool-perl Rene Weber <[EMAIL PROTECTED]> libimage-metadata-jpeg-perl Florian Weimer <[EMAIL PROTECTED]> libwant-perl Alexander Wirt <[EMAIL PROTECTED]> libdata-validate-domain-perl libmail-verify-perl Alexander Zangerl <[EMAIL PROTECTED]> libtm-perl Martin Zobel-Helas <[EMAIL PROTECTED]> libhash-merge-perl libmail-checkuser-perl libstruct-compare-perl Bas Zoetekouw <[EMAIL PROTECTED]> libimdb-film-perl libsubtitles-perl