Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 456938

Summary: dev-perl/XML-SAX-0.990.0, dev-perl/XML-SAX-Base-1.80.0: Fail to remove vendor_perl/.../ParserDetails.ini on unmerge
Product: Gentoo Linux Reporter: Roman Žilka <roman.zilka>
Component: Current packagesAssignee: Gentoo Perl team <perl>
Status: CONFIRMED ---    
Severity: normal CC: bertrand, chall0+gentoo, dennis.lissov, dmitro.gorbunov, Ikonta, mike, saint.snit
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=168988
https://bugs.gentoo.org/show_bug.cgi?id=684720
https://bugs.gentoo.org/show_bug.cgi?id=842048
Whiteboard:
Package list:
Runtime testing required: ---

Description Roman Žilka 2013-02-12 14:12:56 UTC
$(SUMMARY). The file and potentially some superordinate directories are left behind. On my system it is /usr/lib64/perl5/vendor_perl/5.12.4/XML/SAX/ParserDetails.ini.

Reproducible: Always




# emerge --info perl
Portage 2.1.11.50 (hardened/linux/amd64, gcc-4.6.3, glibc-2.15-r3, 3.7.0 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.7.0-x86_64-Intel-R-_Core-TM-_i5-2520M_CPU_@_2.50GHz-with-gentoo-2.1
KiB Mem:     4023392 total,   2766684 free
KiB Swap:          0 total,         0 free
Timestamp of tree: Mon, 11 Feb 2013 19:15:01 +0000
ld GNU ld (GNU Binutils) 2.22
app-shells/bash:          4.2_p37
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/cmake:           2.8.9
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.11.6
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.6.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.6 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -fomit-frame-pointer -march=core2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpclmul -mpopcnt -mcx16"
CHOST="x86_64-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"
CXXFLAGS="-O2 -pipe -fomit-frame-pointer -march=core2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpclmul -mpopcnt -mcx16"
DISTDIR="/tmp/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs candy collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news noinfo parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.supp.name/ http://gentoo.mirror.dkm.cz/pub/gentoo/ http://ftp.fi.muni.cz/pub/linux/gentoo/ http://gentoo.mirror.web4u.cz/ http://gentoo.wheel.sk/"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--as-needed"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--compress --compress-level=9"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/boot/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.cz.gentoo.org/gentoo-portage"
USE="X a52 aac acpi aes-ni alsa amd64 avx bash-completion berkdb bluetooth bzip2 cddb cjk cli cracklib crypt cxx dri encode ffmpeg flac fontconfig ftp gdbm geoip gif gnutls gps gzip hardened hddtemp iconv icu idn imap javascript jpeg jpeg2k justify libass lm_sensors lzma lzo matroska mbox mime mms mmx modules mp3 mp4 mpeg mplayer mudflap multilib musicbrainz ncurses nls nocd nptl ogg opengl pam pax_kernel pcre pda pdf png postscript quicktime raw readline recode session smp sockets sound spell sse sse2 sse3 sse4 sse4_1 sse4_2 ssl ssse3 svg syslog threads truetype udev unicode urandom usb v4l vdpau videos vim-syntax vorbis wifi x264 xcomposite xosd xscreensaver xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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" 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 ubx" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en cs ja" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel vesa" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

dev-lang/perl-5.12.4-r1 was built with the following:
USE="berkdb gdbm (multilib) -build -debug -doc -ithreads" ABI_X86="64"
Comment 1 Robert Sebastian Gerus 2014-03-22 07:28:25 UTC
It also occurs on my system. The /usr/lib64/perl5/vendor_perl/*/XML/SAX/ParserDetails.ini files aren't owned by any package.
[2014-03-22 08:25:53|thor|0|~]% find /usr/lib64/perl5/vendor_perl/5.16.3/
/usr/lib64/perl5/vendor_perl/5.16.3/
/usr/lib64/perl5/vendor_perl/5.16.3/XML
/usr/lib64/perl5/vendor_perl/5.16.3/XML/SAX
/usr/lib64/perl5/vendor_perl/5.16.3/XML/SAX/ParserDetails.ini
[2014-03-22 08:25:59|thor|0|~]% qlist XML-SAX
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/DocumentLocator.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserFactory.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/Intro.pod
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Reader/Stream.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Reader/UnicodeExt.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Reader/URI.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Reader/String.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Reader/NoUnicodeExt.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/DocType.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/DTDDecls.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/EncodingDetect.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Exception.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/UnicodeExt.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Reader.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/NoUnicodeExt.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/DebugHandler.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/Productions.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/PurePerl/XMLDecl.pm
/usr/share/doc/XML-SAX-0.990.0/README.bz2
/usr/share/doc/XML-SAX-0.990.0/Changes.bz2
/usr/share/doc/XML-SAX-Base-1.80.0/Changes.bz2
/usr/share/doc/XML-SAX-Base-1.80.0/README.bz2
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/Base.pm
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/BuildSAXBase.pl
/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/Exception.pm
[2014-03-22 08:26:06|thor|0|~]% ls -l /usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini
-rw-r--r-- 1 root root 200 Mar 22 08:01 /usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini
Comment 2 Sergey S. Starikoff 2014-07-30 06:21:11 UTC
I use amd64 system.
After today's Perl update (with following perl-cleaner) I've got the same issue.

# perl-cleaner --all
…
 * Finding left over modules and header

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

/usr/lib64/perl5/vendor_perl/5.16.3/XML/SAX/ParserDetails.ini

Further analyse showed, that this file wasn't registered by portage:
# equery b /usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini
 * Searching for /usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserDetails.ini ... 
(and nothing)

$ ls /usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX
showes some files
equery b for one of them (exluding issued config ParserDetails.ini) shoews package:
$ equery b /usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserFactory.pm
 * Searching for /usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserFactory.pm ... 
dev-perl/XML-SAX-0.990.0 (/usr/lib64/perl5/vendor_perl/5.18.2/XML/SAX/ParserFactory.pm)


My system 
$ einfo
Portage 2.2.8-r1 (default/linux/amd64/13.0, gcc-4.7.3, glibc-2.19-r1, 3.12.20-aufs x86_64)
=================================================================
System uname: Linux-3.12.20-aufs-x86_64-AMD_Athlon-tm-_II_X2_250_Processor-with-gentoo-2.2
KiB Mem:     1794624 total,    185592 free
KiB Swap:    8000364 total,   7758072 free
Timestamp of tree: Wed, 30 Jul 2014 03:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.6, 3.3.3
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
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-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.13 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo local_hdd
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/env.d /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /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="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--ask --verbose --autounmask=n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildsyspkg config-protect-if-modified distlocks downgrade-backup ebuild-locks fixlafiles merge-sync metadata-transfer news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/                 ftp://mirror.yandex.ru/gentoo-distfiles/                 http://ftp.corbina.net/pub/Linux/gentoo/                 ftp://ftp.corbina.net/pub/Linux/gentoo/"
LANG="ru_RU.utf8"
LC_ALL=""
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
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/gentoo"
PORTDIR_OVERLAY="/usr/portage/local"
USE="X a52 ac3 acl alsa amd64 avi berkdb bold bzip2 cdr cli consolekit cracklib crypt cups cxx dbus djvu dri dvd flac fortran gdbm gif gtk iconv inotify jpeg jpeg2k lock mmx modules mp3 multilib ncurses nls nptl ogg openmp pam pcre pdf png policykit qt3support readline session sse sse2 ssl tcpd thunar tiff udev udisks unicode utf8 vorbis xcb xulrunner zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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" LINGUAS="ru ru_RU" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby20" USERLAND="GNU" VIDEO_CARDS="radeon" 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, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 3 Vladimir Smirnov (RETIRED) gentoo-dev 2014-07-31 07:47:01 UTC
*** Bug 518638 has been marked as a duplicate of this bug. ***
Comment 4 Vladimir Smirnov (RETIRED) gentoo-dev 2014-07-31 10:23:08 UTC
The problem is that dev-perl/XML-LibXML, dev-perl/XML-SAX-Expat need to modify this file and that's why it's created in pkg_postinst of XML-SAX (XML-SAX regenerates it). Also, as XML-SAX includes PurePerl parser it also need to create this file. So we have situation where 3 packages use one common file and that behavior can't be altered.

I think the best way is to create a sort of virtual package that will generate ParserDetails.ini and installs only it (and generate it depending on USE-flags).

This will require some work to migrate all packages to this virtual XML-SAX package.
Comment 5 Teika kazura 2015-04-08 06:44:40 UTC
Developers, bug 509096 is a duplicate of this bug, but that entry discusses the details instead of this.
Comment 6 Mikle Kolyada (RETIRED) archtester Gentoo Infrastructure gentoo-dev Security 2015-04-08 09:02:40 UTC
*** Bug 509096 has been marked as a duplicate of this bug. ***
Comment 7 Andreas K. Hüttel archtester gentoo-dev 2017-01-02 08:28:50 UTC
I'm preparing to have these files automatically removed by perl-cleaner in outdated directories. 

Future versions of XML-SAX should own the file though, also in preparation (but not so trivial without loss on upgrade).
Comment 8 Andreas K. Hüttel archtester gentoo-dev 2019-10-25 05:43:38 UTC
*** Bug 684720 has been marked as a duplicate of this bug. ***
Comment 9 Andreas K. Hüttel archtester gentoo-dev 2021-05-22 14:57:27 UTC
These files are now removed by perl-cleaner.
Comment 10 Roman Žilka 2023-01-17 08:47:50 UTC
I confirm the file is removed in the process now. The superordinate dirs are being left behind, though. After the recent upgrade from perl 5.34 to 5.36 and "perl-cleaner --all" I still had /usr/lib64/perl5/vendor_perl/5.34 with an empty XML/SAX inside.