Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 509096 - dev-perl/XML-LibXML installs ParserDetails.ini but does not claim it nor clean it up when the package is upgraded/removed
Summary: dev-perl/XML-LibXML installs ParserDetails.ini but does not claim it nor clea...
Status: RESOLVED DUPLICATE of bug 456938
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: x86 Linux
: Normal normal (vote)
Assignee: Paul Varner (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-29 17:30 UTC by Dave Kemper
Modified: 2019-04-29 10:43 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Kemper 2014-04-29 17:30:13 UTC
Overview
--------


I upgraded from dev-lang/perl-5.12.4-r1 to dev-lang/perl-5.16.3.  I then ran "perl-cleaner --all", as requested by the upgrade, and it reinstalled 81 packages.  After this process, perl-cleaner told me:

  * The following files remain. These were either installed by hand
  * or edited. This script cannot deal with them.

 /usr/lib/perl5/5.12.4/i686-linux/Encode/ConfigLocal.pm
 /usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini

However, I have neither installed these by hand nor edited them; in fact, I have never manually touched anything under /usr/lib.

Bug 386751 reported a similar problem with an earlier perl upgrade (5.12.3 to 5.12.4-r1).  That bug was resolved as "Fixed" although the comments do not indicate any fix was made.


Details
-------


To upgrade perl, I used the command:

emerge -a1v --with-bdeps=y --deep --ask-enter-invalid perl dev-perl/Error

(I had to explicitly include dev-perl/Error on the command line to get the dependencies to resolve correctly.)  This command touched five packages:

dev-lang/perl-5.12.4-r1 -> dev-lang/perl-5.16.3
dev-perl/Net-SSLeay-1.550 reinstall
dev-perl/IO-Socket-SSL-1.953.0 reinstall
dev-perl/Error-0.170.160 -> dev-perl/Error-0.170.210
dev-vcs/git-1.8.5.5 reinstall

When I subsequently ran "perl-cleaner --all", it reinstalled the following 81 packages (without changing the version of any of them):

dev-perl/XML-NamespaceSupport-1.110.0
dev-perl/XML-Parser-2.410.0
virtual/perl-JSON-PP-2.272.0-r1
virtual/perl-Perl-OSType-1.2.0-r1
dev-perl/XML-SAX-Base-1.80.0
perl-core/Module-Load-0.240.0
perl-core/IO-1.25
perl-core/Compress-Raw-Zlib-2.60.0
perl-core/Module-CoreList-2.840.0
perl-core/Test-Harness-3.260.0
perl-core/Digest-SHA-5.820.0
perl-core/version-0.990.100
perl-core/Scalar-List-Utils-1.270.0
virtual/perl-ExtUtils-Command-1.170.0-r3
virtual/perl-digest-base-1.170.0-r1
perl-core/Compress-Raw-Bzip2-2.60.0
virtual/perl-Test-Simple-0.980.0-r2
perl-core/ExtUtils-Manifest-1.610.0
perl-core/Storable-2.390.0
perl-core/CPAN-Meta-YAML-0.8.0
perl-core/File-Spec-3.400.0
virtual/perl-MIME-Base64-3.130.0-r2
perl-core/ExtUtils-Install-1.540.0
perl-core/JSON-PP-2.272.0
perl-core/ExtUtils-Command-1.170.0
perl-core/Test-Simple-0.980.0
perl-core/Perl-OSType-1.2.0
perl-core/MIME-Base64-3.130.0
virtual/perl-version-0.990.100
virtual/perl-Scalar-List-Utils-1.270.0
virtual/perl-File-Spec-3.400.0
virtual/perl-CPAN-Meta-YAML-0.8.0
virtual/perl-Module-Load-0.240.0
perl-core/Digest-MD5-2.520.0
virtual/perl-IO-1.25
virtual/perl-Compress-Raw-Zlib-2.60.0
virtual/perl-Module-CoreList-2.840.0
perl-core/Params-Check-0.360.0
virtual/perl-Test-Harness-3.260.0
virtual/perl-Digest-SHA-5.820.0
virtual/perl-Compress-Raw-Bzip2-2.60.0
virtual/perl-ExtUtils-Manifest-1.610.0
virtual/perl-Storable-2.390.0
virtual/perl-ExtUtils-Install-1.540.0
perl-core/digest-base-1.170.0
virtual/perl-Params-Check-0.360.0
virtual/perl-Digest-MD5-2.520.0
perl-core/Module-Metadata-1.0.11
perl-core/IO-Compress-2.60.0
perl-core/Parse-CPAN-Meta-1.440.400
perl-core/CPAN-Meta-Requirements-2.122.0
virtual/perl-Parse-CPAN-Meta-1.440.400
virtual/perl-Module-Metadata-1.0.11
dev-perl/Digest-HMAC-1.30.0
virtual/perl-IO-Compress-2.60.0
virtual/perl-CPAN-Meta-Requirements-2.122.0
dev-perl/Net-SMTP-SSL-1.10.0
perl-core/Module-Load-Conditional-0.540.0
perl-core/Archive-Tar-1.900.0
dev-perl/Authen-SASL-2.160.0
virtual/perl-Module-Load-Conditional-0.540.0
virtual/perl-Archive-Tar-1.900.0
perl-core/IPC-Cmd-0.780.0
virtual/perl-IPC-Cmd-0.780.0
perl-core/ExtUtils-CBuilder-0.280.205
virtual/perl-ExtUtils-CBuilder-0.280.205
perl-core/ExtUtils-ParseXS-3.180.0
virtual/perl-ExtUtils-ParseXS-3.180.0
perl-core/ExtUtils-MakeMaker-6.640.0
virtual/perl-ExtUtils-MakeMaker-6.640.0
perl-core/CPAN-Meta-2.120.921
virtual/perl-CPAN-Meta-2.120.921
perl-core/Module-Build-0.400.300
virtual/perl-Module-Build-0.400.300
dev-perl/File-BaseDir-0.30.0
dev-perl/File-DesktopEntry-0.40.0
dev-perl/XML-SAX-0.990.0
dev-perl/Locale-gettext-1.50.0
dev-perl/XML-LibXML-2.1.400
dev-perl/XML-Simple-2.200.0
dev-perl/File-MimeInfo-0.170.0

emerge --info:

Portage 2.2.8-r1 (default/linux/x86/13.0/desktop, gcc-4.7.3, glibc-2.17, 3.2.12-gentoo-3.2.12-custom i686)
=================================================================
System uname: Linux-3.2.12-gentoo-3.2.12-custom-i686-Intel-R-_Pentium-R-_4_CPU_1.70GHz-with-gentoo-2.2
KiB Mem:     1292644 total,     38812 free
KiB Swap:    3145724 total,   2469532 free
Timestamp of tree: Tue, 29 Apr 2014 02:15:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r3, 3.2.5-r3, 3.3.3
dev-util/cmake:           2.8.10.2-r2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.1 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo laurentb
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA AdobeFlash-11.x"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=native -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--ask-enter-invalid --deep --with-bdeps=y"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -march=i686 -pipe"
GENTOO_MIRRORS="ftp://ftp.gtlib.gatech.edu/pub/gentoo"
LANG="en_US"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/laurentb"
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa berkdb branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam firefox flac fortran gdbm gif gpm iconv id3tag ipod ipv6 jpeg lcms ldap libnotify mad matrox midi mng modules mp3 mp4 mpeg ncurses nls nptl offensive ogg opengl openmp pam pango pcre pdf png ppds readline sdl session spell sse2 ssl startup-notification svg tcpd tiff timidity truetype udev udisks unicode upower usb vorbis wxwidgets x264 x86 xcb xinerama xml xv xvid zlib" ABI_X86="32" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" SANE_BACKENDS="hp5590" USERLAND="GNU" VIDEO_CARDS="mga" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Dave Kemper 2014-04-29 21:03:11 UTC
Also, after the emerge and perl-cleaner, no packages claim the files in question:

$ portageq owners / /usr/lib/perl5/5.12.4/i686-linux/Encode/ConfigLocal.pm
None of the installed packages claim these files:
   /usr/lib/perl5/5.12.4/i686-linux/Encode/ConfigLocal.pm
$ portageq owners / /usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini
None of the installed packages claim these files:
   /usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini
$ 

Since I didn't put the files there, some prior emerge must have done it, which means something is not being cleaned up properly in order for them to be unclaimed now.
Comment 2 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2014-04-29 21:11:27 UTC
"some prior emerge must have done it"

Nah, some prior run of perl-cleaner did it, or some other perl code was loaded which modified/created those files post-install while running as a sufficiently privileged user.
Comment 3 Dave Kemper 2014-04-30 01:44:22 UTC
You are correct that I cannot definitively point to an emerge being responsible.  What's your basis for definitively saying one wasn't?

perl-5.12.4-r1 was the very first perl emerged onto this system, in Jun 2012.  It remained in place until yesterday's upgrade to perl-5.16.3.  So I would've had no reason to run perl-cleaner before.

I only install/uninstall software on this machine through portage, so I can't imagine what else might have touched those files.
Comment 4 Dave Kemper 2014-04-30 02:13:28 UTC
Hmm.  ParserDetails.ini has a current version on the system, but it also isn't claimed by portage:

$ ls -lt /usr/lib/perl5/vendor_perl/*/XML/SAX/ParserDetails.ini
-rw-r--r-- 1 root root 200 Apr 29 03:35 /usr/lib/perl5/vendor_perl/5.16.3/XML/SAX/ParserDetails.ini
-rw-r--r-- 1 root root 200 Mar 29 15:32 /usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini
$ portageq owners / /usr/lib/perl5/vendor_perl/*/XML/SAX/ParserDetails.ini
None of the installed packages claim these files:
        /usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini
        /usr/lib/perl5/vendor_perl/5.16.3/XML/SAX/ParserDetails.ini

The timestamp of the 5.16.3 ParserDetails corresponds to the 81 perl package reinstalls triggered by perl-clean.  That of the 5.12.4 version roughly corresponds to when I emerged two perl packages:

dev-perl/XML-LibXML-2.1.400, upgrading from 1.900.0
dev-perl/File-MimeInfo-0.170.0, upgrading from 0.150.0

Unfortunately, /var/log/emerge.log is stingy with timestamps, so it's hard to pinpoint installation times precisely, especially for previous versions.  But for the currently installed versions, I can go by other files installed by the respective packages:

$ ls -l /usr/share/doc/XML-LibXML-2.1.400/README.bz2
-rw-r--r-- 1 root root 3950 Apr 29 03:35 /usr/share/doc/XML-LibXML-2.1.400/README.bz2
$ ls -l /usr/share/doc/File-MimeInfo-0.170.0/README.bz2
-rw-r--r-- 1 root root 722 Apr 29 03:37 /usr/share/doc/File-MimeInfo-0.170.0/README.bz2

Thus, it sure does appear that ParserDetails.ini is placed on the system by the dev-perl/XML-LibXML emerge.
Comment 5 Dave Kemper 2014-05-01 03:52:50 UTC
Concerning the other leftover file: there is no other version of ConfigLocal.pm on the system:

$ ls -t --full-time /usr/lib/perl5/*/*/*/ConfigLocal.pm /usr/sbin/perl-cleaner
-rwxr-xr-x 1 root root 15947 2012-06-22 01:57:17.000000000 -0500 /usr/sbin/perl-cleaner
-rw-r--r-- 1 root root   172 2012-06-22 01:57:05.000000000 -0500 /usr/lib/perl5/5.12.4/i686-linux/Encode/ConfigLocal.pm

Also, since ConfigLocal.pm is older than perl-cleaner, perl-cleaner cannot have put it there.  (app-admin/perl-cleaner was first installed on June 22, 2012, and has never been updated.)  More specifically, the act of running perl-cleaner cannot have put it there; I cannot rule out the possibility that that the emerge of app-admin/perl-cleaner did so, though this strikes me as rather unlikely.

For that matter, app-admin/perl-cleaner-2.7 was only the third perl-related package ever installed on the system.  The two that preceded it were sys-devel/libperl-5.10.1 and dev-lang/perl-5.12.4-r1, also both installed on June 22, 2012.  So one of those almost certainly put ConfigLocal.pm in place.
Comment 6 Dave Kemper 2014-09-23 02:45:28 UTC
I now see the same bug when upgrading from dev-lang/perl-5.16.3 to 5.18.2-r1.  "perl-cleaner --all" ended with the output:

 * The following files remain. These were either installed by hand
 * or edited. This script cannot deal with them.

/usr/lib/perl5/5.12.4/i686-linux/Encode/ConfigLocal.pm
/usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini
/usr/lib/perl5/vendor_perl/5.16.3/XML/SAX/ParserDetails.ini

The first two items were reported back in comment #0; the third is new to this upgrade.  As in the prior case, I have never altered anything by hand under /usr/lib, nor used anything but portage to change the system.



Using logic similar to that of comment #4, I note that although portage claims to not know who owns the current version of this file:

$ portageq owners / /usr/lib/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini
None of the installed packages claim these files:
        /usr/lib/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini

timestamp evidence shows that the package dev-perl/XML-LibXML-2.1.400-r1 (which admits to owning /usr/share/doc/XML-LibXML-2.1.400-r1/README.bz2) is the likely culprit to have installed the mystery ParserDetails.ini:

$ ls -l /usr/share/doc/XML-LibXML-2.1.400-r1/README.bz2 /usr/lib/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini
-rw-r--r-- 1 root root  200 Sep 22 17:58 /usr/lib/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini
-rw-r--r-- 1 root root 3950 Sep 22 17:57 /usr/share/doc/XML-LibXML-2.1.400-r1/README.bz2



So the source of the problem seems to be that because portage is unaware dev-perl/XML-LibXML places ParserDetails.ini on the system, it cannot clean it up when the package is removed.
Comment 7 Dave Kemper 2014-09-23 02:50:26 UTC
Updating the summary to more precisely reflect the problem.  (I am disregarding the leftover ConfigLocal.pm reported in comment #0 because, as comment #5 indicates, this file does not seem to exist any longer in current versions of perl packages.)
Comment 8 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2014-09-23 03:53:13 UTC
A probable explanation is the "post_" things in XML-LibXML

These are plausibly causing files to be inflated after installation in such a way portage can't track them.

---
pkg_postinst() {
        pkg_update_parser add XML::LibXML::SAX::Parser
        pkg_update_parser add XML::LibXML::SAX
}

pkg_postrm() {
        pkg_update_parser remove XML::LibXML::SAX::Parser
        pkg_update_parser remove XML::LibXML::SAX
}

pkg_update_parser() {
        # pkg_update_parser [add|remove] $parser_module
        local action=$1
        local parser_module=$2

        if [[ "$ROOT" = "/" ]] ; then
                einfo "Update Parser: $1 $2"
                perl -MXML::SAX -e "XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()" \
                        || ewarn "Update Parser: $1 $2 failed"
        else
                elog "To $1 $2 run:"
                elog "perl -MXML::SAX -e 'XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()'"
        fi
}


---
Comment 9 Dave Kemper 2014-11-21 19:54:59 UTC
> A probable explanation is the "post_" things in XML-LibXML

Thanks, Kent.  What is the next step to confirm or refute this probable explanation?
Comment 10 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2014-11-22 12:51:01 UTC
I think the contents of that file might be enlightening.

Here, I think the right approach would be to have a XML-SAX provide that file stock instead of creating it in post-install, and instead, only modifying it post-install, especially seeing the other 3 ebuilds that use this file depend on XML-SAX.

That file could possibly be CONFIG_PROTECT'd too.

As it stands, 3 ebuilds sharing the same copy-pasted code seems bad and could be grounds for an eclass, or even a utility function in perl-module.eclass ( or maybe a new eclass for misc perl functions ).



grep XML::SAX /usr/portage/dev-perl/*/*.ebuild
/usr/portage/dev-perl/XML-LibXML/XML-LibXML-2.1.400-r1.ebuild:  pkg_update_parser add XML::LibXML::SAX::Parser
/usr/portage/dev-perl/XML-LibXML/XML-LibXML-2.1.400-r1.ebuild:  pkg_update_parser add XML::LibXML::SAX
/usr/portage/dev-perl/XML-LibXML/XML-LibXML-2.1.400-r1.ebuild:  pkg_update_parser remove XML::LibXML::SAX::Parser
/usr/portage/dev-perl/XML-LibXML/XML-LibXML-2.1.400-r1.ebuild:  pkg_update_parser remove XML::LibXML::SAX
/usr/portage/dev-perl/XML-LibXML/XML-LibXML-2.1.400-r1.ebuild:          perl -MXML::SAX -e "XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()" \
/usr/portage/dev-perl/XML-LibXML/XML-LibXML-2.1.400-r1.ebuild:          elog "perl -MXML::SAX -e 'XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()'"
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.400.0.ebuild:       pkg_update_parser add XML::SAX::Expat
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.400.0.ebuild:       pkg_update_parser remove XML::SAX::Expat
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.400.0.ebuild:               perl -MXML::SAX -e "XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()" \
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.400.0.ebuild:               elog "perl -MXML::SAX -e 'XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()'"
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.500.0.ebuild:       pkg_update_parser add XML::SAX::Expat
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.500.0.ebuild:       pkg_update_parser remove XML::SAX::Expat
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.500.0.ebuild:               perl -MXML::SAX -e "XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()" \
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.500.0.ebuild:               elog "perl -MXML::SAX -e 'XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()'"
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.510.0.ebuild:       pkg_update_parser add XML::SAX::Expat
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.510.0.ebuild:       pkg_update_parser remove XML::SAX::Expat
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.510.0.ebuild:               perl -MXML::SAX -e "XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()" \
/usr/portage/dev-perl/XML-SAX-Expat/XML-SAX-Expat-0.510.0.ebuild:               elog "perl -MXML::SAX -e 'XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()'"
/usr/portage/dev-perl/XML-SAX/XML-SAX-0.990.0-r1.ebuild:        pkg_update_parser add XML::SAX::PurePerl
/usr/portage/dev-perl/XML-SAX/XML-SAX-0.990.0-r1.ebuild:                perl -MXML::SAX -e "XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()" \
/usr/portage/dev-perl/XML-SAX/XML-SAX-0.990.0-r1.ebuild:                elog "perl -MXML::SAX -e 'XML::SAX->${action}_parser(q(${parser_module}))->save_parsers()'"
Comment 11 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2014-11-22 13:14:30 UTC
Though I'm completely convinced those XML::SAX invocations *are* what creates that file:

https://metacpan.org/source/GRANTM/XML-SAX-0.99/SAX.pm#L20
Comment 12 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2014-11-22 13:16:59 UTC
I may even request upstream add support for a path in /etc  instead if that makes sense to everyone else. Then we can just create such a file and avoid this visibility problem entirely.
Comment 13 Dave Kemper 2015-01-05 08:56:52 UTC
(In reply to Kent Fredric from comment #12)
> I may even request upstream add support for a path in /etc  instead if that
> makes sense to everyone else.

Judging by who's commented on this bug, "everyone" seems to be you and me.  I have no preference whatsoever on how the fix is implemented.
Comment 14 Dave Kemper 2015-02-19 03:26:05 UTC
Expcetedly, this problem still appears in the 5.18.2-r2 to 5.20.1-r4 upgrade.  The last few lines output by "perl-cleaner --all" are:

 * The following files remain. These were either installed by hand
 * or edited. This script cannot deal with them.

/usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini
/usr/lib/perl5/vendor_perl/5.16.3/XML/SAX/ParserDetails.ini
/usr/lib/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini
Comment 15 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-19 04:46:06 UTC
(In reply to Dave Kemper from comment #14)
> Expcetedly, this problem still appears in the 5.18.2-r2 to 5.20.1-r4
> upgrade.  The last few lines output by "perl-cleaner --all" are:
> 
>  * The following files remain. These were either installed by hand
>  * or edited. This script cannot deal with them.
> 
> /usr/lib/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini
> /usr/lib/perl5/vendor_perl/5.16.3/XML/SAX/ParserDetails.ini
> /usr/lib/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini


For now, because its doubted that there is an automatic sane way to handle this at the perl-itself/perl-cleaner level ( and it needs to be fixed in LibXML somehow )

Until a proper fix goes in, you can just clean up that cruft yourself with rm and then rmdir the empty dirs as need be =).

Because I don't think whatever solution we create will nuke all of them.
Comment 16 Dave Kemper 2015-02-23 02:29:59 UTC
(In reply to Kent Fredric from comment #15)
> its doubted that there is an automatic sane way to handle this at the
> perl-itself/perl-cleaner level ( and it needs to be fixed in LibXML somehow )

Right, I don't see it as a perl or a perl-cleaner problem, but an XML-LibXML installation problem.  The fact that portage is unaware of even the current version of the file on the system tells me there's a problem in the package that puts the file there.

> I don't think whatever solution we create will nuke all of them.

Yeah, I wouldn't expect it to, but as long as they're not hurting anything, I'll clear them out once new ones stop being left behind.
Comment 17 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2015-04-08 09:02:40 UTC

*** This bug has been marked as a duplicate of bug 456938 ***