This is a re-hashing of the seperate bug, #41124, to track all the bugs that form indirectly from this problem. The general problem is: X -> intltool -> dev-perl/XML-Parser -> perl As per the lengthy description in the similar bug, #592880 1. Perl upgrades 2. XML-Parser enters a "broken state" which is equivalent to "missing" from perl's perspective 3. Portage does not recognize that XML-Parser is now "missing" 4. Portage assumes intltool still works 5. Portage tries to compile something using intltool, and dies because XML-Parser is missing. The death path is usually either in per-dependent configure stage via intltools '.m4' /usr/share/aclocal/intltool.m4: AC_MSG_CHECKING([for XML::Parser]) /usr/share/aclocal/intltool.m4: if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then /usr/share/aclocal/intltool.m4: AC_MSG_ERROR([XML::Parser perl module is required for intltool]) Or via invoking intltool and having it fail: /usr/bin/intltool-merge: my $ret = eval 'require XML::Parser'; /usr/bin/intltool-merge: die "You must have XML::Parser installed to run $0\n\n"; /usr/bin/intltool-extract: my $ret = eval 'require XML::Parser'; /usr/bin/intltool-extract: die "You must have XML::Parser installed to run $0\n\n"; intltool's dependencies are already correct: - Perl is in both DEPEND and RDEPEND - XML-Parser is in both DEPEND and RDEPEND - intltool does not itself link against perl.so or contain any libraries with perl-ABI-version specific paths, so subslot deps are not warranted. The only solution left that we know of is for portage to work out how to pull this dependency when it should, and encourage all users experiencing this issue to sprinkle --with-bdeps=y into their stuff judiciously.
*** Bug 596640 has been marked as a duplicate of this bug. ***
*** Bug 584848 has been marked as a duplicate of this bug. ***
*** Bug 570460 has been marked as a duplicate of this bug. ***
*** Bug 563810 has been marked as a duplicate of this bug. ***
(In reply to Kent Fredric (IRC: kent\n) from comment #0) [...] > 1. Perl upgrades > 2. XML-Parser enters a "broken state" which is equivalent to "missing" from > perl's perspective > 3. Portage does not recognize that XML-Parser is now "missing" > 4. Portage assumes intltool still works > 5. Portage tries to compile something using intltool, and dies because > XML-Parser is missing. Shouldn't portage try to rebuild as soon as possible xml-parser (listed as RDEPEND in intltool) to try to solve the breakage as soon as possible? :/
It (In reply to Pacho Ramos from comment #5) > (In reply to Kent Fredric (IRC: kent\n) from comment #0) > [...] > > 1. Perl upgrades > > 2. XML-Parser enters a "broken state" which is equivalent to "missing" from > > perl's perspective > > 3. Portage does not recognize that XML-Parser is now "missing" > > 4. Portage assumes intltool still works > > 5. Portage tries to compile something using intltool, and dies because > > XML-Parser is missing. > > Shouldn't portage try to rebuild as soon as possible xml-parser (listed as > RDEPEND in intltool) to try to solve the breakage as soon as possible? :/ It *should*, but it doesn't. Bug #463976 and bug #199856 are portage bugs for things we *believe* resolution of will mitigate this problem, but we won't know for sure until that happens. When you read those bugs, the broad nature of this problem is uh, rather scary. Its really surprising we didn't note this sooner.
Though I'm having a hard time identifying the cycle (if any) that is causing this issue. The only possible cycle I see so far is: intltool -> XML-Parser -> perl -> sys-libs/db -> virtual/jdk -> icedtea-bin -> dev-java/icedtea-sound -> media-sound/pulseaudio -> intltool And I *really* doubt that's what's tripping portage.
*** Bug 611224 has been marked as a duplicate of this bug. ***
*** Bug 612512 has been marked as a duplicate of this bug. ***
*** Bug 616822 has been marked as a duplicate of this bug. ***
*** Bug 620870 has been marked as a duplicate of this bug. ***
*** Bug 628982 has been marked as a duplicate of this bug. ***
*** Bug 629220 has been marked as a duplicate of this bug. ***
*** Bug 629218 has been marked as a duplicate of this bug. ***
*** Bug 629216 has been marked as a duplicate of this bug. ***
(In reply to Kent Fredric (IRC: kent\n) from comment #7) > Though I'm having a hard time identifying the cycle (if any) that is causing > this issue. > > The only possible cycle I see so far is: > > intltool -> XML-Parser -> perl -> sys-libs/db -> virtual/jdk -> icedtea-bin > -> dev-java/icedtea-sound -> media-sound/pulseaudio -> intltool > > And I *really* doubt that's what's tripping portage. That sounds a likely candidate as I only recall hitting this problem on systems with icedtea-bin installed. It may be unrelated but I have seen other weirdness around Portage's handling of virtual/jdk before.
*** Bug 628988 has been marked as a duplicate of this bug. ***
*** Bug 637396 has been marked as a duplicate of this bug. ***
FWIW I did no longer hit this at my tinderbox so I removed a special quirk for this bug for now from teh script.
*** Bug 655998 has been marked as a duplicate of this bug. ***
*** Bug 660352 has been marked as a duplicate of this bug. ***
*** Bug 667886 has been marked as a duplicate of this bug. ***
(In reply to Toralf Förster from comment #19) > FWIW I did no longer hit this at my tinderbox so I removed a special quirk > for this bug for now from teh script. happened again today at 17.1_systemd-libressl-20190919-191611- re-adding the quirk: checking for perl >= 5.8.1... 5.30.0 checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool !!! Please attach the following file when seeking support: !!! /var/tmp/portage/x11-misc/shared-mime-info-1.10-r1/work/shared-mime-info-1.10/config.log for x11-misc/shared-mime-info-1.10-r1
*** Bug 704078 has been marked as a duplicate of this bug. ***
*** Bug 708610 has been marked as a duplicate of this bug. ***
*** Bug 704080 has been marked as a duplicate of this bug. ***
*** Bug 754432 has been marked as a duplicate of this bug. ***
*** Bug 796716 has been marked as a duplicate of this bug. ***
*** Bug 800188 has been marked as a duplicate of this bug. ***
*** Bug 828114 has been marked as a duplicate of this bug. ***
*** Bug 832333 has been marked as a duplicate of this bug. ***
*** Bug 838112 has been marked as a duplicate of this bug. ***
seems still be the case: checking for perl >= 5.8.1... 5.36.0 checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool
*** Bug 835794 has been marked as a duplicate of this bug. ***
*** Bug 854693 has been marked as a duplicate of this bug. ***
*** Bug 787383 has been marked as a duplicate of this bug. ***
*** Bug 504480 has been marked as a duplicate of this bug. ***
*** Bug 870052 has been marked as a duplicate of this bug. ***
Is it possible to add dev-perl/XML-Parser as a dependency ? In the ebuilds where it requires it like in libxfce4uitl where the installation completely breaks, obviously we can emerge dev-perl/XML-Parser and then emerge anything that needs it.
(In reply to Sid from comment #39) > Is it possible to add dev-perl/XML-Parser as a dependency ? In the ebuilds > where it requires it like in libxfce4uitl where the installation completely > breaks, obviously we can emerge dev-perl/XML-Parser and then emerge anything > that needs it. All the relevant packages do depend on it, though. Adding a redundant dependency is unlikely to help.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=224207c7d1988a354d004507bb7ecfb90b4ef097 commit 224207c7d1988a354d004507bb7ecfb90b4ef097 Author: YiFei Zhu <zhuyifei1999@gmail.com> AuthorDate: 2023-06-13 00:47:52 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-06-16 03:34:46 +0000 depgraph: Do not allow slotted deps to be satisfied by wrong slots This may be part of what caused the "perl rebuild bug". The "priority" of perl, when seen by perl modules, may have "satisfied" set to an installed perl of a wrong slot. Compounding this factor with bug #756199 where find_smallest_cycle would select a single node, in this case because the dependency of perl is satisfied and the priority then gets ignored, the "cycle" becomes a perl module alone and gets rebuilt early. I also updated the test from the previous patch to account for this change. No other tests seems affected. For a larger scale test, I reproduced this initially with a stage3 chroot from a Jan 1 2022 stage3 snapshot, and testing in an equivalent dockerfile would work too: FROM gentoo/stage3:amd64-openrc-20220101 RUN emerge-webrsync COPY . /portage Before this patch (USE flags omitted): # cd /portage && bin/emerge -puDN @world 2>&1 | grep -i perl [ebuild U ] app-admin/perl-cleaner-2.30-r1 [2.30] [ebuild rR ] virtual/perl-File-Temp-0.231.100 [ebuild rR ] dev-perl/Locale-gettext-1.70.0-r1 [ebuild rR ] dev-perl/MIME-Charset-1.12.2-r1 [ebuild rR ] dev-perl/Module-Build-0.423.100 [ebuild rR ] dev-perl/Text-CharWidth-0.40.0-r2 [ebuild U ] dev-lang/perl-5.36.0-r2 [5.34.0-r3] [ebuild N ] virtual/perl-CPAN-2.330.0 [ebuild U ] virtual/perl-ExtUtils-MakeMaker-7.640.0 [7.620.0] [ebuild U ] virtual/perl-File-Spec-3.840.0 [3.800.0] [...] After this patch: # cd /portage && bin/emerge -puDN @world 2>&1 | grep -i perl [ebuild U ] app-admin/perl-cleaner-2.30-r1 [2.30] [ebuild U ] dev-lang/perl-5.36.0-r2:0/5.36 [5.34.0-r3:0/5.34] [ebuild N ] virtual/perl-CPAN-2.330.0 [ebuild U ] virtual/perl-ExtUtils-MakeMaker-7.640.0 [7.620.0] [ebuild U ] virtual/perl-Data-Dumper-2.184.0 [2.179.0] [ebuild U ] virtual/perl-File-Spec-3.840.0 [3.800.0] [ebuild U ] virtual/perl-Test-Harness-3.440.0-r1 [3.430.0] [ebuild rR ] dev-perl/Pod-Parser-1.630.0-r1 [ebuild rR ] dev-perl/Text-CharWidth-0.40.0-r2 [ebuild rR ] dev-perl/Text-WrapI18N-0.60.0-r2 [...] Bug: https://bugs.gentoo.org/463976 Bug: https://bugs.gentoo.org/592880 Bug: https://bugs.gentoo.org/596664 Bug: https://bugs.gentoo.org/631490 Bug: https://bugs.gentoo.org/764365 Bug: https://bugs.gentoo.org/793992 Signed-off-by: YiFei Zhu <zhuyifei1999@gmail.com> Closes: https://github.com/gentoo/portage/pull/1055 Signed-off-by: Sam James <sam@gentoo.org> lib/_emerge/depgraph.py | 18 ++++++++++++++++++ lib/portage/tests/resolver/test_perl_rebuild_bug.py | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) https://gitweb.gentoo.org/proj/portage.git/commit/?id=ff457f742b513a65e6609054e5310f8beee488ec commit ff457f742b513a65e6609054e5310f8beee488ec Author: YiFei Zhu <zhuyifei1999@gmail.com> AuthorDate: 2023-06-13 08:08:51 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-06-16 03:34:46 +0000 tests: resolver: Test the broken behavior of Perl rebuild bug Bug: https://bugs.gentoo.org/463976 Bug: https://bugs.gentoo.org/592880 Bug: https://bugs.gentoo.org/596664 Bug: https://bugs.gentoo.org/631490 Bug: https://bugs.gentoo.org/764365 Bug: https://bugs.gentoo.org/793992 Signed-off-by: YiFei Zhu <zhuyifei1999@gmail.com> Signed-off-by: Sam James <sam@gentoo.org> .../tests/resolver/test_perl_rebuild_bug.py | 121 +++++++++++++++++++++ 1 file changed, 121 insertions(+)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9502761c5bef818dbec90f062909d46dc22289df commit 9502761c5bef818dbec90f062909d46dc22289df Author: Sam James <sam@gentoo.org> AuthorDate: 2023-06-21 19:09:31 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-06-21 19:11:05 +0000 sys-apps/portage: add 3.0.49 Closes: https://bugs.gentoo.org/485100 Cloess: https://bugs.gentoo.org/592880 Closes: https://bugs.gentoo.org/596664 Closes: https://bugs.gentoo.org/631490 Closes: https://bugs.gentoo.org/764365 Closes: https://bugs.gentoo.org/793992 Closes: https://bugs.gentoo.org/890812 Closes: https://bugs.gentoo.org/905660 Closes: https://bugs.gentoo.org/907949 Signed-off-by: Sam James <sam@gentoo.org> sys-apps/portage/Manifest | 1 + sys-apps/portage/portage-3.0.49.ebuild | 296 +++++++++++++++++++++++++++++++++ 2 files changed, 297 insertions(+)
*** Bug 939112 has been marked as a duplicate of this bug. ***