Perl's XML::Parser 2.46 appears to install through Gentoo's perl-dev/XML-Parser. I believe that, in fact, the attempt to build and install fails even though the ebuild results declare success. I discovered this because on two virtual machines, my pulse audio was failing to building because the build could not find Perl's XML::Parser. A search in Gentoo's Bug database shows other packages are impacted, as well. Reproducible: Always Steps to Reproduce: 1.emerge dev-perl/XML-Parser 2.run test script: --- start of script --- use strict; use warnings; use XML::Parser; --- end of script --- 3. Result should be nothing since Perl should find the package XML::Parser. Actual Results: 3. test script fails with: janus /home/jlpoole # perl test_xml_parser.pl Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /etc/perl /usr/local/lib64/perl5/5.34/x86_64-linux /usr/local/lib64/perl5/5.34 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux /usr/lib64/perl5/vendor_perl/5.34 /usr/lib64/perl5/5.34/x86_64-linux /usr/lib64/perl5/5.34 /usr/lib64/perl5/vendor_perl/5.32) at test_xml_parser.pl line 4. BEGIN failed--compilation aborted at test_xml_parser.pl line 4. janus /home/jlpoole # Moreover, updatedb and the locate "Parser.pm" shows nothing was installed: janus /usr/local/src/XML-Parser-2.44 # date;updatedb Wed Dec 1 20:51:08 PST 2021 janus /usr/local/src/XML-Parser-2.44 # janus /usr/local/src/XML-Parser-2.44 # locate Parser.pm |xargs ls -la -rw-r--r-- 1 root root 27721 Sep 23 2019 /root/.cpan/build/XML-Parser-2.46-0/Parser.pm -rw-r--r-- 1 root root 27721 Sep 23 2019 /root/.cpan/build/XML-Parser-2.46-1/Parser.pm -rw-r--r-- 1 root root 27721 Sep 23 2019 /root/.cpan/build/XML-Parser-2.46-2/Parser.pm -rw-r--r-- 1 root root 27721 Sep 23 2019 /root/.cpan/build/XML-Parser-2.46-3/Parser.pm -rw-r--r-- 1 root root 27721 Sep 23 2019 /root/.cpan/build/XML-Parser-2.46-4/Parser.pm -rw-r--r-- 1 root root 27721 Sep 23 2019 /root/.cpan/build/XML-Parser-2.46-5/Parser.pm -r--r--r-- 1 root root 25729 Sep 21 01:55 /usr/lib64/perl5/5.34/Pod/Simple/PullParser.pm -r--r--r-- 1 root root 52200 Sep 21 01:55 /usr/lib64/perl5/5.34/TAP/Parser.pm -rw-r--r-- 1 root root 1305 Nov 29 20:03 /usr/lib64/perl5/vendor_perl/5.34/Module/Build/PodParser.pm -r-xr-xr-x 1 root root 65771 Nov 29 20:01 /usr/lib64/perl5/vendor_perl/5.34/Pod/Parser.pm -r--r--r-- 1 root root 8515 Nov 29 20:08 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/HTML/HeadParser.pm -r--r--r-- 1 root root 39418 Nov 29 20:09 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/HTML/Parser.pm -r--r--r-- 1 root root 5692 Nov 29 20:08 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/HTML/PullParser.pm -r--r--r-- 1 root root 10116 Nov 29 20:09 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/HTML/TokeParser.pm -rw-r--r-- 1 root root 27108 Jan 11 2015 /usr/local/src/XML-Parser-2.44/Parser.pm -rw-r--r-- 1 root root 27721 Sep 23 2019 /usr/local/src/XML-Parser-2.46/Parser.pm -rw-r--r-- 1 root root 1686 Sep 21 01:58 /usr/share/texinfo/Texinfo/Parser.pm janus /usr/local/src/XML-Parser-2.44 # There is no directory "/usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/XML" and there should be. Do not be mislead by the fact that other Perl packages, e.g. HTML and TAP, have identical libraries called "Parser.pm". There should be a top level package directory "XML" and under it a file "Parser.pm" if the perl-lang/XML-Parser had successfully installed. Expected Results: test program should quietly conclude since it found the XML::Parser package. I downloaded a prior package and compared attempts to manually compile. XML::Parser 244 produced files whereas 246 did not: janus /usr/local/src/XML-Parser-2.44 # perl Makefile.PL Expat must be installed prior to building XML::Parser and I can't find it in the standard library directories. Install 'expat-devel' (or 'libexpat1-dev') package with your OS package manager. See 'README'. Or you can download expat from: http://sourceforge.net/projects/expat/ If expat is installed, but in a non-standard directory, then use the following options to Makefile.PL: EXPATLIBPATH=... To set the directory in which to find libexpat EXPATINCPATH=... To set the directory in which to find expat.h For example: perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include Note that if you build against a shareable library in a non-standard location you may (on some platforms) also have to set your LD_LIBRARY_PATH environment variable at run time for perl to find the library. Writing MYMETA.yml and MYMETA.json Generating a Unix-style Makefile Writing Makefile for XML::Parser Writing MYMETA.yml and MYMETA.json janus /usr/local/src/XML-Parser-2.44 # cd ../XML-Parser-2.46 janus /usr/local/src/XML-Parser-2.46 # perl Makefile.PL Expat must be installed prior to building XML::Parser and I can't find it in the standard library directories. Install 'expat-devel' (or 'libexpat1-dev') package with your OS package manager. See 'README'. Or you can download expat from: http://sourceforge.net/projects/expat/ If expat is installed, but in a non-standard directory, then use the following options to Makefile.PL: EXPATLIBPATH=... To set the directory in which to find libexpat EXPATINCPATH=... To set the directory in which to find expat.h For example: perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include Note that if you build against a shareable library in a non-standard location you may (on some platforms) also have to set your LD_LIBRARY_PATH environment variable at run time for perl to find the library. janus /usr/local/src/XML-Parser-2.46 # Notice that in the 244, there is a report-out of: Writing MYMETA.yml and MYMETA.json Generating a Unix-style Makefile Writing Makefile for XML::Parser Writing MYMETA.yml and MYMETA.json whereas in 246 there is nothing. I also tried to install XML::Parser via cpan, Perl's package manager, and it failed: janus /home/jlpoole # cpan Loading internal logger. Log::Log4perl recommended for better logging Terminal does not support AddHistory. To fix that, maybe try> install Term::ReadLine::Perl cpan shell -- CPAN exploration and modules installation (v2.28) Enter 'h' for help. cpan[1]> install XML::Parser Reading '/root/.cpan/Metadata' Database was generated on Tue, 30 Nov 2021 00:41:02 GMT Fetching with LWP: http://www.cpan.org/authors/01mailrc.txt.gz Reading '/root/.cpan/sources/authors/01mailrc.txt.gz' ............................................................................DONE Fetching with LWP: http://www.cpan.org/modules/02packages.details.txt.gz Reading '/root/.cpan/sources/modules/02packages.details.txt.gz' Database was generated on Thu, 02 Dec 2021 03:55:33 GMT ............. New CPAN.pm version (v2.29) available. [Currently running version is v2.28] You might want to try install CPAN reload cpan to both upgrade CPAN.pm and run the new version without leaving the current session. ...............................................................DONE Fetching with LWP: http://www.cpan.org/modules/03modlist.data.gz Reading '/root/.cpan/sources/modules/03modlist.data.gz' DONE Writing /root/.cpan/Metadata Running install for module 'XML::Parser' Checksum for /root/.cpan/sources/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz ok Scanning cache /root/.cpan/build for sizes ............................................................................DONE 'YAML' not installed, will not store persistent state Configuring T/TO/TODDR/XML-Parser-2.46.tar.gz with Makefile.PL Expat must be installed prior to building XML::Parser and I can't find it in the standard library directories. Install 'expat-devel' (or 'libexpat1-dev') package with your OS package manager. See 'README'. Or you can download expat from: http://sourceforge.net/projects/expat/ If expat is installed, but in a non-standard directory, then use the following options to Makefile.PL: EXPATLIBPATH=... To set the directory in which to find libexpat EXPATINCPATH=... To set the directory in which to find expat.h For example: perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include Note that if you build against a shareable library in a non-standard location you may (on some platforms) also have to set your LD_LIBRARY_PATH environment variable at run time for perl to find the library. No 'Makefile' created TODDR/XML-Parser-2.46.tar.gz /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK Failed during this command: TODDR/XML-Parser-2.46.tar.gz : writemakefile NO -- No 'Makefile' created cpan[2]> exit Terminal does not support GetHistory. Lockfile removed. janus /home/jlpoole # emerge dev-perl/XML-Parser * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news read to view new items. Calculating dependencies... done! >>> Verifying ebuild manifests >>> Emerging (1 of 1) dev-perl/XML-Parser-2.460.0::gentoo * XML-Parser-2.46.tar.gz BLAKE2B SHA512 size ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking XML-Parser-2.46.tar.gz to /var/tmp/portage/dev-perl/XML-Parser-2.460.0/work >>> Source unpacked in /var/tmp/portage/dev-perl/XML-Parser-2.460.0/work >>> Preparing source in /var/tmp/portage/dev-perl/XML-Parser-2.460.0/work/XML-Parser-2.46 ... >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-perl/XML-Parser-2.460.0/work/XML-Parser-2.46 ... * Using ExtUtils::MakeMaker * perl Makefile.PL PREFIX=/usr INSTALLDIRS=vendor INSTALLMAN3DIR=none DESTDIR=/var/tmp/portage/dev-perl/XML-Parser-2.460.0/image EXPATLIBPATH=/usr/lib64 EXPATINCPATH=/usr/include Expat must be installed prior to building XML::Parser and I can't find it in the standard library directories. Install 'expat-devel' (or 'libexpat1-dev') package with your OS package manager. See 'README'. Or you can download expat from: http://sourceforge.net/projects/expat/ If expat is installed, but in a non-standard directory, then use the following options to Makefile.PL: EXPATLIBPATH=... To set the directory in which to find libexpat EXPATINCPATH=... To set the directory in which to find expat.h For example: perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include Note that if you build against a shareable library in a non-standard location you may (on some platforms) also have to set your LD_LIBRARY_PATH environment variable at run time for perl to find the library. >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-perl/XML-Parser-2.460.0/work/XML-Parser-2.46 ... >>> Source compiled. >>> Test phase [not enabled]: dev-perl/XML-Parser-2.460.0 >>> Install dev-perl/XML-Parser-2.460.0 into /var/tmp/portage/dev-perl/XML-Parser-2.460.0/image >>> Completed installing dev-perl/XML-Parser-2.460.0 into /var/tmp/portage/dev-perl/XML-Parser-2.460.0/image * Final size of build directory: 692 KiB * Final size of installed tree: 53 KiB >>> Installing (1 of 1) dev-perl/XML-Parser-2.460.0::gentoo >>> Auto-cleaning packages... >>> No outdated packages were found on your system. * GNU info directory index is up-to-date. !!! existing preserved libs: >>> package: app-text/tidy-html5-5.6.0 * - /usr/lib64/libtidy.so.5 * - /usr/lib64/libtidy.so.5.6.0 * used by /usr/lib64/php7.3/apache2/libphp7.so (dev-lang/php-7.3.29) * used by /usr/lib64/php7.3/bin/php (dev-lang/php-7.3.29) * used by /usr/lib64/php7.3/bin/php-cgi (dev-lang/php-7.3.29) * used by 3 other files >>> package: dev-db/mariadb-connector-c-3.1.13 * - /usr/lib64/libmariadb.so.3 * used by /usr/lib64/apr-util-1/apr_dbd_mysql-1.so (dev-libs/apr-util-1.6.1-r7) >>> package: sys-libs/glibc-2.33-r7 * - /lib64/libcrypt-2.33.so * - /lib64/libcrypt.so.1 * used by /lib64/security/pam_passwdqc.so (sys-auth/passwdqc-1.4.0-r2) * used by /lib64/security/pam_pwhistory.so (sys-libs/pam-1.5.1_p20210622-r1) * used by /lib64/security/pam_unix.so (sys-libs/pam-1.5.1_p20210622-r1) * used by 19 other files >>> package: sys-libs/liburing-2.1 * - /usr/lib64/liburing.so.1 * - /usr/lib64/liburing.so.1.0.7 * used by /usr/lib64/samba/vfs/io_uring.so (net-fs/samba-4.13.9-r2) Use emerge @preserved-rebuild to rebuild packages using these libraries * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news read to view new items. janus /home/jlpoole # perl test_xml_parser.pl Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /etc/perl /usr/local/lib64/perl5/5.34/x86_64-linux /usr/local/lib64/perl5/5.34 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux /usr/lib64/perl5/vendor_perl/5.34 /usr/lib64/perl5/5.34/x86_64-linux /usr/lib64/perl5/5.34 /usr/lib64/perl5/vendor_perl/5.32) at test_xml_parser.pl line 4. BEGIN failed--compilation aborted at test_xml_parser.pl line 4. janus /home/jlpoole # which perl /usr/bin/perl janus /home/jlpoole # perl -v This is perl 5, version 34, subversion 0 (v5.34.0) built for x86_64-linux (with 76 registered patches, see perl -V for more detail) Copyright 1987-2021, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. janus /home/jlpoole #
See my comment at https://bugs.gentoo.org/806968#c7. Usually if e.g. PA is failing to find a perl module (and XML::Parser is a _very_ common victim of this), perl-cleaner --all is what needs to be run - so please try that. Please also: - share the output of emerge --info dev-libs/expat - run emerge -v1 dev-libs/expat
To be clear, I think the main issue here is really libexpat (and I would encourage you to remove anything stale from /usr/local/* and .cpan/* just to avoid contamination.) But of course that's just my impression so far. The steps in my last comment will help us determine what's going on.
I'll try the recommendations. I also logged an issue with the maintiner of XML::Parser: https://github.com/toddr/XML-Parser/issues/93
Created attachment 757164 [details] perl-cleaner_--all Log Nothing changed.
Created attachment 757165 [details] emerge_info_expat as requested
Created attachment 757166 [details] emerge_dev_libs/expat as requested
Created attachment 757167 [details] re-emerge perl-lang/XML-Parser showing no installation After performing the requested "perl-cleaner --all" and re-emerging expat, I then re-emerge perl-lang/XML-Parser and have output demonstrating that even though the build appears successfull, it did not work. I think the problem is in the XML::Parser Makefile.PL test for the expat libraries, version 244 works, whereas 246 does not.
I think I have determined the problem. The problem is two-fold. 1) check_lib() when expat is installed and the header files duly placed under /usr/include is not finding them, and 2) the exit code of "0" should be "1" or something other than zero. See https://github.com/toddr/XML-Parser/issues/93 The problem centers around "exit 0". In build 2.44, when the call to the Perl subroutine check_lib() failed, the script should have had an exit with "1", but that line at the end of the "unless" clause was rem'd out. In build 2.46, there is an "exit 0" which is a signal to the caller that everything succeeded when, in fact, everything did not succeed as the expat libraries were not found and a warning duly printed.
I have determined a repair and have recommended to the maintainer of XML::Parser that they use the subroutine Devel::check_lib_or_exit() instead of Devel::check_lib().
I've been thinking how this might be patched in Gentoo. I'm guessing the XML::Parser maintainer thought it advisable to have a more descriptive warning/error message and thus used the construct of unless (check_lib()){ warn [long error message]; exit 0; } I believe the "exit 0" was intended to be a return of "failure" (which it would be in usual Perl semiphore), and in fact gives a false positive in a shell. If the Makefile.PL script used the following in place of the "unless" clause check_lib_or_exit(); it would accomplish the same thing, but without a longer explanation. The subroutine check_lib_or_exit() will send to STDERR this message if it fails (using lib => "bogus"): Can't link/include C library 'bogus', aborting. Perhaps living with the above terse error message as a patch in Gentoo would be the most expedient way to go? For convenience, here is a little Perl test script: use strict; use warnings; use Devel::CheckLib; print "Test for library 'expat':\n"; my $rc1 = check_lib_or_exit( lib => 'expat'); print "rc1 = $rc1\n"; print "Test for header file 'expat.h':\n"; my $rc2 = check_lib_or_exit( header => "expat.h"); print "rc2 = $rc2\n"; if (1){ eval { print "Test with error lib 'bogus':\n"; my $rc3 = check_lib_or_exit( lib => 'bogus'); print "rc3 = $rc3\n"; }; print "Error from eval: $@" if defined $@; } if (0){ eval { print "Test with error 'bogus.h':\n"; my $rc3 = check_lib_or_exit( header => "bogus.h"); print "rc3 = $rc3\n"; }; print "Error from eval: $@" if defined $@; } print "Completed $0 at ".localtime."\n";
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fae5a28fd23e80df671ad72843576c1530d76db2 commit fae5a28fd23e80df671ad72843576c1530d76db2 Author: Andreas K. Hüttel <dilfridge@gentoo.org> AuthorDate: 2021-12-13 00:10:46 +0000 Commit: Andreas K. Hüttel <dilfridge@gentoo.org> CommitDate: 2021-12-13 00:11:14 +0000 dev-perl/XML-Parser: Check if build succeeded Bug: https://bugs.gentoo.org/827966 Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> .../{XML-Parser-2.460.0.ebuild => XML-Parser-2.460.0-r1.ebuild} | 8 ++++++++ 1 file changed, 8 insertions(+)
(In reply to John L. Poole from comment #9) > I have determined a repair and have recommended to the maintainer of > XML::Parser that they use the subroutine Devel::check_lib_or_exit() instead > of Devel::check_lib(). Now all these walls of text completely bypass the actual problem: What's wrong with your expat so XML-Parser can't find it? equery files expat ^ output of this please!
As requested (note I have updated to current high watermark by limiting pulseaudio from upgrading): es /home/jlpoole # equery files expat * Searching for expat ... * Contents of dev-libs/expat-2.4.1: /usr /usr/bin /usr/bin/xmlwf /usr/include /usr/include/expat.h /usr/include/expat_config.h /usr/include/expat_external.h /usr/lib64 /usr/lib64/cmake /usr/lib64/cmake/expat-2.4.1 /usr/lib64/cmake/expat-2.4.1/expat-config-version.cmake /usr/lib64/cmake/expat-2.4.1/expat-config.cmake /usr/lib64/cmake/expat-2.4.1/expat-noconfig.cmake /usr/lib64/cmake/expat-2.4.1/expat.cmake /usr/lib64/libexpat.so -> libexpat.so.1.8.1 /usr/lib64/libexpat.so.1 -> libexpat.so.1.8.1 /usr/lib64/libexpat.so.1.8.1 /usr/lib64/libexpatw.so -> libexpatw.so.1.8.1 /usr/lib64/libexpatw.so.1 -> libexpatw.so.1.8.1 /usr/lib64/libexpatw.so.1.8.1 /usr/lib64/pkgconfig /usr/lib64/pkgconfig/expat.pc /usr/lib64/pkgconfig/expatw.pc /usr/share /usr/share/doc /usr/share/doc/expat-2.4.1 /usr/share/doc/expat-2.4.1/AUTHORS.bz2 /usr/share/doc/expat-2.4.1/README.md.bz2 /usr/share/doc/expat-2.4.1/changelog.bz2 /usr/share/doc/expat-2.4.1/html /usr/share/doc/expat-2.4.1/html/ok.min.css /usr/share/doc/expat-2.4.1/html/reference.html /usr/share/doc/expat-2.4.1/html/style.css /usr/share/man /usr/share/man/man1 /usr/share/man/man1/xmlwf.1.bz2 ares /home/jlpoole #
The problem, I submit, arises from XML::Parser's install, See https://github.com/toddr/XML-Parser/issues/93
(In reply to John L. Poole from comment #14) > The problem, I submit, arises from XML::Parser's install, See > https://github.com/toddr/XML-Parser/issues/93 I think you're onto something that XML-Parser doesn't abort when it fails to find a library, but we want to understand why it can't find your libexpat for a moment.
I think the XML::Parser script could and did find expat. It's that the XML::Parser returned the code "1" which in Perl lingo means "true/success", but it should have returned "0" which in bash means success. The opposite meaning of returns values between Perl and Bash can be confounding.
Same issue here on a recent Gentoo portage update -> emerge --info Portage 3.0.28 (python 3.9.7-final-0, default/linux/amd64/17.1, gcc-11.2.0, glibc-2.33-r7, 5.10.61-gentoo x86_64) ================================================================= System uname: Linux-5.10.61-gentoo-x86_64-Intel-R-_Core-TM-_i7-7700HQ_CPU_@_2.80GHz-with-glibc2.33 [snip] -> emerge --update --newuse --deep --tree --with-bdeps=y @world [snip] >>> Failed to emerge dev-perl/XML-Parser-2.460.0-r1, Log file: >>> '/var/tmp/portage/dev-perl/XML-Parser-2.460.0-r1/temp/build.log' * Messages for package app-office/libreoffice-7.1.7.2: * If you plan to use Base application you must enable USE base. * Without USE java, several wizards are not going to be available. * Messages for package dev-perl/XML-Parser-2.460.0-r1: * ERROR: dev-perl/XML-Parser-2.460.0-r1::gentoo failed (install phase): * Something went badly wrong, can't find Expat.so. Please file a bug. [snip] Expat is installed: -> equery files expat * Searching for expat ... * Contents of dev-libs/expat-2.4.1: /usr /usr/bin /usr/bin/xmlwf /usr/include /usr/include/expat.h /usr/include/expat_config.h /usr/include/expat_external.h /usr/lib64 /usr/lib64/cmake /usr/lib64/cmake/expat-2.4.1 /usr/lib64/cmake/expat-2.4.1/expat-config-version.cmake /usr/lib64/cmake/expat-2.4.1/expat-config.cmake /usr/lib64/cmake/expat-2.4.1/expat-noconfig.cmake /usr/lib64/cmake/expat-2.4.1/expat.cmake /usr/lib64/libexpat.so -> libexpat.so.1.8.1 /usr/lib64/libexpat.so.1 -> libexpat.so.1.8.1 /usr/lib64/libexpat.so.1.8.1 /usr/lib64/libexpatw.so -> libexpatw.so.1.8.1 /usr/lib64/libexpatw.so.1 -> libexpatw.so.1.8.1 /usr/lib64/libexpatw.so.1.8.1 /usr/lib64/pkgconfig /usr/lib64/pkgconfig/expat.pc /usr/lib64/pkgconfig/expatw.pc /usr/share [snip]
(In reply to Valmor de Almeida from comment #17) > Same issue here on a recent Gentoo portage update Please attach the full build.log and emerge --info untruncated.
(CCing expat maintainers in case they have hints too)
Created attachment 758735 [details] build.log Requested build.log for emerge dev-perl/XML-Parser-2.460.0-r1
Created attachment 758736 [details] build.log Requested build.log of: Failed to emerge dev-perl/XML-Parser-2.460.0-r1
Created attachment 758737 [details] emerge --info
I do think(In reply to John L. Poole from comment #16) > I think the XML::Parser script could and did find expat. > [snip] I agree expat is found. It is installed on my system and LD_LIBRARY_PATH points to right place. Is there a way to prevent portage from pulling XML-Parser for the time being? I removed libreoffice which as pulling it but it is not the only package depending on it. I am half way updating portage and wish I could have a partial fix to finish the update; inputs greatly appreciated. -> equery depends XML-Parser * These packages depend on XML-Parser: dev-util/intltool-0.51.0-r2 (dev-perl/XML-Parser) -> equery depends intltool * These packages depend on intltool: sys-auth/elogind-246.10-r1 (dev-util/intltool) sys-auth/polkit-0.119-r2 (dev-util/intltool) x11-misc/xscreensaver-6.01-r4 (dev-util/intltool) x11-themes/gnome-themes-standard-3.28 (>=dev-util/intltool-0.40) x11-themes/gtk-engines-adwaita-3.28 (>=dev-util/intltool-0.40)
I think helping the maintainer, Todd Rinaldo, of the XML::Parser package in Perl understand the impact might cause him to look into this and provide something. I've tried to explain the matter to him, but my comments go unacknowledged. Perhaps more than just one person adding to the issue my underscore the fact that it affects more than one person. https://github.com/toddr/XML-Parser/issues/93
(In reply to Valmor de Almeida from comment #23) > I do think(In reply to John L. Poole from comment #16) > > > I think the XML::Parser script could and did find expat. > > [snip] > > I agree expat is found. It is installed on my system and LD_LIBRARY_PATH > points to right place. > > Is there a way to prevent portage from pulling XML-Parser for the time > being? I removed libreoffice which as pulling it but it is not the only > package depending on it. I am half way updating portage and wish I could > have a partial fix to finish the update; inputs greatly appreciated. > Mask the newer version for now in package.mask.
(In reply to Sam James from comment #25) > (In reply to Valmor de Almeida from comment #23) [snip] > > > > Is there a way to prevent portage from pulling XML-Parser for the time > > being? I removed libreoffice which as pulling it but it is not the only > > package depending on it. I am half way updating portage and wish I could > > have a partial fix to finish the update; inputs greatly appreciated. > > > > Mask the newer version for now in package.mask. Leaving this here for others having the same problem. Masking (/etc/portage/package.mask): >=dev-perl/XML-Parser-2.460.0-r1 Leads to -> emerge --update --newuse --deep --tree --with-bdeps=y @world These are the packages that would be merged, in reverse order: Calculating dependencies... done! !!! All ebuilds that could satisfy "dev-perl/XML-Parser" have been masked. !!! One of the following masked packages is required to complete your request: - dev-perl/XML-Parser-2.460.0-r1::gentoo (masked by: package.mask) /etc/portage/package.mask: there is no other ebuild in portage: -> locate ebuild | grep XML-Parser /var/db/repos/gentoo/dev-perl/XML-Parser/XML-Parser-2.460.0-r1.ebuild
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=749d7f46fe4428df30f279855063528dfe1980e5 commit 749d7f46fe4428df30f279855063528dfe1980e5 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-12-14 06:22:38 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-12-14 06:22:38 +0000 dev-perl/XML-Parser: destabilize 2.460.0-r1 Bug: https://bugs.gentoo.org/827966 Signed-off-by: Sam James <sam@gentoo.org> dev-perl/XML-Parser/XML-Parser-2.460.0-r1.ebuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db40847290102119b36c3d2fe379f01267cda109 commit db40847290102119b36c3d2fe379f01267cda109 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-12-14 06:21:46 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-12-14 06:21:46 +0000 dev-perl/XML-Parser: restore 2.440.0 This reverts commit d9e7940f92101dfc97efd94d6c60a45a17c4c234. Let users downgrade / mask a newer version if they want to for now while we investigate issues with the newer version. Bug: https://bugs.gentoo.org/827966 Signed-off-by: Sam James <sam@gentoo.org> dev-perl/XML-Parser/Manifest | 1 + dev-perl/XML-Parser/XML-Parser-2.440.0.ebuild | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b70e6f910846d25635a6d0e88686ce2144842f02 commit b70e6f910846d25635a6d0e88686ce2144842f02 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-12-14 06:42:36 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-12-14 06:44:08 +0000 dev-perl/RPC-XML: Revert "Remove old", drop 0.820.0 back to ~arch This reverts commit ed0ac19462a2943678f6e67082f45c75ef10af4d. Restore older for now so we can keep older XML-Parser while we investigate issues w/ it and Expat. Bug: https://bugs.gentoo.org/827966 Signed-off-by: Sam James <sam@gentoo.org> dev-perl/RPC-XML/Manifest | 1 + dev-perl/RPC-XML/RPC-XML-0.800.0.ebuild | 62 +++++++++++++++++++++++++++++++++ dev-perl/RPC-XML/RPC-XML-0.820.0.ebuild | 2 +- 3 files changed, 64 insertions(+), 1 deletion(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7806a56fa19fc06e8b9cdd33c9e47df9e1a0077a commit 7806a56fa19fc06e8b9cdd33c9e47df9e1a0077a Author: Sam James <sam@gentoo.org> AuthorDate: 2021-12-14 06:40:50 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-12-14 06:42:07 +0000 dev-perl/XML-Parser: use system copy of Devel::CheckLib (fix Expat search) The bundled, rather old copy of Devel::CheckLib seems to sometimes cause errors when trying to find Expat. Bug: https://github.com/toddr/XML-Parser/issues/93 Bug: https://bugs.gentoo.org/827966 Bug: https://github.com/toddr/XML-Parser/issues/86 Signed-off-by: Sam James <sam@gentoo.org> ...-Parser-2.460.0-r1.ebuild => XML-Parser-2.460.0-r2.ebuild} | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc89e9852b2fc28dc40e0ed8c2e9ff42cc74b3ec commit bc89e9852b2fc28dc40e0ed8c2e9ff42cc74b3ec Author: Sam James <sam@gentoo.org> AuthorDate: 2021-12-14 06:45:32 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-12-14 06:45:32 +0000 dev-perl/XML-Parser: use ESYSROOT for finding Expat Not that it should make any difference to the bug, but still. This is more correct for --root and such. Bug: https://bugs.gentoo.org/827966 Signed-off-by: Sam James <sam@gentoo.org> dev-perl/XML-Parser/XML-Parser-2.460.0-r2.ebuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Given I can't reproduce the issue, I'll need someone to test XML-Parser-2.460.0-r2 to let me know if it's any better. It seemed to help some people w/ cygwin (https://github.com/toddr/XML-Parser/issues/86) but that doesn't mean it'll necessarily help us (see 0.99 -> 1.14: https://metacpan.org/dist/Devel-CheckLib/changes).
(In reply to Larry the Git Cow from comment #27) > The bug has been referenced in the following commit(s): > > https://gitweb.gentoo.org/repo/gentoo.git/commit/ > ?id=749d7f46fe4428df30f279855063528dfe1980e5 > > commit 749d7f46fe4428df30f279855063528dfe1980e5 > Author: Sam James <sam@gentoo.org> > AuthorDate: 2021-12-14 06:22:38 +0000 > Commit: Sam James <sam@gentoo.org> > CommitDate: 2021-12-14 06:22:38 +0000 > > dev-perl/XML-Parser: destabilize 2.460.0-r1 > > Bug: https://bugs.gentoo.org/827966 > Signed-off-by: Sam James <sam@gentoo.org> > > dev-perl/XML-Parser/XML-Parser-2.460.0-r1.ebuild | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > https://gitweb.gentoo.org/repo/gentoo.git/commit/ > ?id=db40847290102119b36c3d2fe379f01267cda109 > > commit db40847290102119b36c3d2fe379f01267cda109 > Author: Sam James <sam@gentoo.org> > AuthorDate: 2021-12-14 06:21:46 +0000 > Commit: Sam James <sam@gentoo.org> > CommitDate: 2021-12-14 06:21:46 +0000 > > dev-perl/XML-Parser: restore 2.440.0 > > This reverts commit d9e7940f92101dfc97efd94d6c60a45a17c4c234. > > Let users downgrade / mask a newer version if they want > to for now while we investigate issues with the newer > version. > > Bug: https://bugs.gentoo.org/827966 > Signed-off-by: Sam James <sam@gentoo.org> > > dev-perl/XML-Parser/Manifest | 1 + > dev-perl/XML-Parser/XML-Parser-2.440.0.ebuild | 24 ++++++++++++++++++++++++ > 2 files changed, 25 insertions(+) Thanks! the downgrade with masking worked well.
The deployment works. Thank you! performed eix-sync ~ 9:00 a.m. PST 12/14/21 [U] dev-perl/XML-Parser Available versions: 2.460.0-r1 Installed versions: 2.460.0(19:59:51 12/01/21) Homepage: https://metacpan.org/release/XML-Parser Description: A perl module for parsing XML documents emerged dev-perl/XML-Parser. success: ares /usr/local/src/moonfire-nvr.git/trunk/server # ls -lat /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/XML total 31 drwxr-xr-x 3 root root 1024 Dec 14 09:14 . drwxr-xr-x 20 root root 1024 Dec 14 09:14 .. drwxr-xr-x 4 root root 1024 Dec 14 09:14 Parser -r--r--r-- 1 root root 27721 Dec 14 09:14 Parser.pm and [nothing = success, if Perl could not find the package, it would squawk] ares / # perl -e 'use XML::Parser;' ares / # On 12/14 8:16 a.m. PST, I sent an email to toddr at cpan.org, the maintainer for the XML::Parser package, urging him to review and consider the issue I posted to XML::Parser: https://github.com/toddr/XML-Parser/issues/93
(In reply to John L. Poole from comment #32) > The deployment works. Thank you! Can you try -r2? > On 12/14 8:16 a.m. PST, I sent an email to toddr at cpan.org, the maintainer > for the XML::Parser package, urging him to review and consider the issue I > posted to XML::Parser: https://github.com/toddr/XML-Parser/issues/93 Thanks, but I'd try be patient. I've pinged on the bug and hopefully he can look at it soon.
I just attempted to eix-sync against OSU (12/14/21 1:00 p.m. PST) snapshot of 12/13 and I'm current with their portage. r2 is now showing in the manifest, as yet. ares / # eix XML-Parser [I] dev-perl/XML-Parser Available versions: 2.460.0-r1 Installed versions: 2.460.0-r1(09:14:18 12/14/21) Homepage: https://metacpan.org/release/XML-Parser Description: A perl module for parsing XML documents ... Found 2 matches ares / # I do not know how to obtain your r2 release and suspect it may involve some reconfiguration of my portage, I can try tomorrow. Todd has a lot of packages he oversees, he may think XML::Parser is pretty stable and that a new issue may be noise; hence, an email.
(In reply to John L. Poole from comment #34) > > I do not know how to obtain your r2 release and suspect it may involve some > reconfiguration of my portage, I can try tomorrow. No problem. If you're running a stable system, try: =dev-perl/XML-Parser-2.460.0-r2 in /etc/portage/package.accept_keywords. > > Todd has a lot of packages he oversees, he may think XML::Parser is pretty > stable and that a new issue may be noise; hence, an email. Fair.
Looks like I still have to pick up "r2" from a refresh at OSU; refresh attempt now says I'm still in sync with OSU. I'll try tomorrow. ares /etc/portage # cat package.accept =dev-perl/XML-Parser-2.460.0-r2 ares /etc/portage # eix XML-Parse [I] dev-perl/XML-Parser Available versions: 2.460.0-r1 Installed versions: 2.460.0-r1(09:14:18 12/14/21) Homepage: https://metacpan.org/release/XML-Parser Description: A perl module for parsing XML documents * dev-perl/XML-Parser-Lite Available versions: 0.722.0^t {minimal test} Homepage: https://metacpan.org/release/XML-Parser-Lite Description: Lightweight regexp-based XML parser Found 2 matches ares /etc/portage #
(In reply to Sam James from comment #30) > Given I can't reproduce the issue, I'll need someone to test > XML-Parser-2.460.0-r2 to let me know if it's any better. > > It seemed to help some people w/ cygwin > (https://github.com/toddr/XML-Parser/issues/86) but that doesn't mean it'll > necessarily help us (see 0.99 -> 1.14: > https://metacpan.org/dist/Devel-CheckLib/changes). I tried a recent emerge --sync and -> locate ebuild | grep XML-Parser /var/db/pkg/dev-perl/XML-Parser-2.440.0/XML-Parser-2.440.0.ebuild /var/db/repos/gentoo/dev-perl/XML-Parser/XML-Parser-2.440.0.ebuild /var/db/repos/gentoo/dev-perl/XML-Parser/XML-Parser-2.460.0-r1.ebuild I don't get an -r2 ebuild
dev-perl/XML-Parser-2.440.0 ~2.460.0-r2 successfully installed. I had just sync'd with OSU 12:45 p.m. 12/15/2021 and picked "r2" up. ares /etc/portage/package.use # eix dev-perl/XML-Parser [?] dev-perl/XML-Parser Available versions: 2.440.0 ~2.460.0-r2 Installed versions: 2.460.0-r1(09:14:18 12/14/21) Homepage: https://metacpan.org/release/XML-Parser Description: A perl module for parsing XML documents * dev-perl/XML-Parser-Lite Available versions: 0.722.0^t {minimal test} Homepage: https://metacpan.org/release/XML-Parser-Lite Description: Lightweight regexp-based XML parser Found 2 matches ares /etc/portage/package.use # res /home/jlpoole # ls -la /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/XML/Parser.pm -r--r--r-- 1 root root 27721 Dec 14 09:14 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/XML/Parser.pm ares /home/jlpoole # perl -e 'use XML::Parser;' ares /home/jlpoole # perl -e 'use XML::ParserBogus;' Can't locate XML/ParserBogus.pm in @INC (you may need to install the XML::ParserBogus module) (@INC contains: /etc/perl /usr/local/lib64/perl5/5.34/x86_64-linux /usr/local/lib64/perl5/5.34 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux /usr/lib64/perl5/vendor_perl/5.34 /usr/lib64/perl5/5.34/x86_64-linux /usr/lib64/perl5/5.34) at -e line 1. BEGIN failed--compilation aborted at -e line 1. ares /home/jlpoole # ls -la /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/XML/Parser.pm -r--r--r-- 1 root root 27108 Dec 15 12:46 /usr/lib64/perl5/vendor_perl/5.34/x86_64-linux/XML/Parser.pm ares /home/jlpoole # perl -e 'use XML::Parser;' ares /home/jlpoole # Thank you for providing interim relief!
(In reply to Valmor de Almeida from comment #37) > (In reply to Sam James from comment #30) > > Given I can't reproduce the issue, I'll need someone to test > > XML-Parser-2.460.0-r2 to let me know if it's any better. > > > > It seemed to help some people w/ cygwin > > (https://github.com/toddr/XML-Parser/issues/86) but that doesn't mean it'll > > necessarily help us (see 0.99 -> 1.14: > > https://metacpan.org/dist/Devel-CheckLib/changes). > > I tried a recent emerge --sync and > > -> locate ebuild | grep XML-Parser > /var/db/pkg/dev-perl/XML-Parser-2.440.0/XML-Parser-2.440.0.ebuild > /var/db/repos/gentoo/dev-perl/XML-Parser/XML-Parser-2.440.0.ebuild > /var/db/repos/gentoo/dev-perl/XML-Parser/XML-Parser-2.460.0-r1.ebuild > > I don't get an -r2 ebuild Now all good. Thanks for all the help.
> > I don't get an -r2 ebuild > > Now all good. > Thanks for all the help. OK then let's close this for the moment. If identical problems re-appear with -r2 please re-open or leave a comment.