Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 339445 - sys-devel/autoconf should depend on dev-lang/perl[-build]
Summary: sys-devel/autoconf should depend on dev-lang/perl[-build]
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-02 11:02 UTC by Siarhei Siamashka
Modified: 2011-10-24 18:37 UTC (History)
4 users (show)

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


Attachments
mips-stage3-build-catalyst-failure.log (mips-stage3-build-catalyst-failure.log,8.64 KB, text/plain)
2010-10-02 11:05 UTC, Siarhei Siamashka
Details
output of "emerge --info" (mips-stage3-emerge-info.log,1.19 KB, text/plain)
2010-10-02 13:32 UTC, Siarhei Siamashka
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Siarhei Siamashka 2010-10-02 11:02:30 UTC
When perl is built with "build" USE flag, emerging autoconf fails. 

Reproducible: Always

Steps to Reproduce:
Using chroot for the experiment:
1. emerge perl with USE="build"
2. emerge autoconf
Actual Results:  
autoconf fails to emerge

Expected Results:  
successful autoconf emerge, probably rebuilding perl without "build" USE flag first
Comment 1 Siarhei Siamashka 2010-10-02 11:05:34 UTC
Created attachment 249283 [details]
mips-stage3-build-catalyst-failure.log

This issue causes problems for building mips stage3 tarball with catalyst.
Comment 2 Siarhei Siamashka 2010-10-02 11:21:08 UTC
I've been told on IRC what it somewhat resembles older bug 253964
Comment 3 Siarhei Siamashka 2010-10-02 13:10:16 UTC
Well, looks like the issue is a bit more complex. The same problem happens with automake stuff which gets used when emerging libtool at stage3. So somehow perl needs to be told to be emerged before both of these packages at stage3, while not breaking anything at stage1 and stage2 at the same time.

Probably both automake and autoconf need to get "build" USE flag themselves and depend on perl with exactly the same "build" flag state? Doing experiments with all of this is going to take at least a few days due to the use of slow mips hardware.
Comment 4 Siarhei Siamashka 2010-10-02 13:32:52 UTC
Created attachment 249315 [details]
output of "emerge --info"

attached output of "emerge --info" in /var/tmp/catalyst/tmp/default/stage3-mips-20100929/ chroot
Comment 5 Siarhei Siamashka 2010-10-02 14:22:37 UTC
Hmm, there is one question: "autoconf" already depends on "perl" regardless of use flags. Why does "emerge --quiet --usepkg --buildpkg --newuse -e system" invoked by catalyst emerge them in the wrong order? Am I missing something?
Comment 6 SpanKY gentoo-dev 2010-10-03 07:16:40 UTC
i'm guessing this isnt specific to autoconf 2.67
Comment 7 Siarhei Siamashka 2010-10-03 07:48:54 UTC
Actually I regret submitting this bug without doing extra checks first and the summary is not very good as it is. It's more like "~arch version of perl does not play nice with autoconf when building stage3 in catalyst".

I wonder if it is actually a bug in portage caused by not respecting package dependencies for "emerge -e system"?

The issue can be solved/workarounded in many ways and I'm not sure which one would be the best. For now I just masked new versions of perl via package.mask and restarted mips stage1/atage2/stage3 generation.
Comment 8 Mart Raudsepp gentoo-dev 2010-10-03 10:37:47 UTC
emerge -e system doesn't mean that it considers everything non-existent, it just schedules all system packages to be re-emerged. If there is no dependency to rebuild perl early enough to satisfy USE flag deps, then it isn't guaranteed to come earlier. We had a similar situation in regards to libxml2 and dev-lang/python[-build,xml], though now that I look, it seems I need to reinvestigate it, as we didn't end up adding a python[-build] USE dep... anyhow, the point was that Zac explained emerge -e system behaviour during that problem investigation.
Comment 9 Siarhei Siamashka 2010-10-08 16:15:41 UTC
Considering all of this, now it looks to me that just catalyst should probably do something a bit more clever when building stage3. 

I mean in stage3-chroot.sh before emerging system, do something like:
run_merge "shadow"
run_merge "perl"

Yes, shadow also causes problems for ~arch build.

Or alternatively do:
run_merge "--newuse system"
run_merge "-e system"
Comment 10 Matt Turner gentoo-dev 2011-06-08 21:16:34 UTC
I think the only time I hit this was when I did something funny with a stage build, like used a weird seed stage or something.

What's the actual bug here? autoconf should depend on dev-lang/perl[-build]? What's stopping us from modifying this dependency?
Comment 11 Siarhei Siamashka 2011-06-08 21:40:55 UTC
(In reply to comment #10)
> I think the only time I hit this was when I did something funny with a stage
> build, like used a weird seed stage or something.
> What's the actual bug here?

As comment 8 explains, "emerge -e system" seems to ignore package dependencies and just builds the packages in some pseudo-random(?) order. Depending on your luck, everything may be fine because there are not so many things affected by the change of "build" USE flag between stages, so the chances of success are quite high. But if you are unlucky, a workaround from comment 9 can be used which explicitly builds the sensitive packages before the rest (everything fails if they are built too late).
Comment 12 Torsten Veller (RETIRED) gentoo-dev 2011-06-09 04:30:24 UTC
Well, we can also modify what is installed by dev-lang/perl[build]...


| Warning: failed to load Config_git.pl, something strange about this perl...
| Can't locate Tie/Hash.pm in @INC (@INC contains: ../lib /usr/lib/perl5/site_perl/5.12.2/mips-linux /usr/lib/perl5/site_perl/5.12.2 /usr/lib/perl5/vendor_perl/5.12.2/mips-linux /usr/lib/perl.

- What's this `Config_git.pl`?

- Tie::Hash should be installed in /usr/lib/perl/5.12.2/Tie/Hash.pm
  and "/usr/lib/perl/5.12.2" should be in @INC. The @INC list in the log looks
  strange/cut off.
  Can you paste `perl -V` from your dev-lang/perl[build] and verify that
  /usr/lib/perl/5.12.*/Tie/Hash.pm is installed?
Comment 13 Torsten Veller (RETIRED) gentoo-dev 2011-06-09 04:36:41 UTC
(In reply to comment #12)
> - Tie::Hash should be installed in /usr/lib/perl/5.12.2/Tie/Hash.pm
>   and "/usr/lib/perl/5.12.2" should be in @INC. The @INC list in the log looks
>   strange/cut off.
>   Can you paste `perl -V` from your dev-lang/perl[build] and verify that
>   /usr/lib/perl/5.12.*/Tie/Hash.pm is installed?

I did add Tie::Hash on 2010/10/28 (after the log was created).
So what's the problem with an uptodate ebuild of perl today?

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-lang/perl/perl-5.12.2-r1.ebuild?hideattic=0&r1=1.9&r2=1.10
Comment 14 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-09-14 15:33:04 UTC
Is release still needed here?
Comment 15 SpanKY gentoo-dev 2011-09-15 04:41:04 UTC
Jorge: if autoconf is updated with dev-lang/perl[-build] in DEPEND, does stage building still work ?

if so, i'll make the commit
Comment 16 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-09-16 02:08:14 UTC
(In reply to comment #15)
> Jorge: if autoconf is updated with dev-lang/perl[-build] in DEPEND, does stage
> building still work ?
> 
> if so, i'll make the commit

I'm doing a build run tonight to test this.
Comment 17 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-09-16 04:44:36 UTC
We can't go down this route.
I didn't pay sufficient attention to the requested change or else it would be obvious we would get into trouble. To build the stage1, catalyst calls portage with USE="-* build" which conflicts with the perl[-build] dependency.
At least for building stage1, the proposed change won't work.

emerge --quiet --usepkg --buildpkg --newuse --oneshot sys-apps/grep sys-devel/binutils app-shells/bash sys-apps/net-tools sys-devel/patch sys-devel/flex sys-apps/gawk app-arch/tar sys-apps/sed sys-fs/udev sys-devel/bison sys-apps/texinfo sys-apps/file app-arch/bzip2 virtual/package-manager net-misc/rsync sys-devel/automake virtual/editor sys-apps/coreutils sys-devel/make sys-apps/shadow sys-apps/findutils virtual/os-headers sys-apps/makedev app-arch/gzip net-misc/wget sys-devel/libtool sys-apps/diffutils sys-devel/gettext sys-apps/less sys-apps/baselayout virtual/libc sys-devel/autoconf sys-devel/gnuconfig sys-devel/gcc 
[ebuild  N    ] sys-libs/ncurses-5.7-r7 to /tmp/stage1root/
[ebuild  N    ] sys-libs/zlib-1.2.5-r2 to /tmp/stage1root/
[ebuild  N    ] sys-devel/gnuconfig-20110202 to /tmp/stage1root/
[ebuild  N    ] virtual/libintl-0 to /tmp/stage1root/
[ebuild  N    ] virtual/libiconv-0 to /tmp/stage1root/
[ebuild  N    ] sys-apps/sed-4.2.1 to /tmp/stage1root/
[ebuild  N    ] app-arch/bzip2-1.0.6-r2 to /tmp/stage1root/
[ebuild  N    ] sys-apps/coreutils-8.7 to /tmp/stage1root/
[ebuild  N    ] sys-apps/findutils-4.4.2 to /tmp/stage1root/
[ebuild  N    ] sys-devel/gcc-config-1.4.1-r1 to /tmp/stage1root/
[ebuild  N    ] sys-libs/timezone-data-2011e to /tmp/stage1root/
[ebuild  N    ] dev-libs/popt-1.16-r1 to /tmp/stage1root/
[ebuild  N    ] app-misc/pax-utils-0.2.2 to /tmp/stage1root/
[ebuild  N    ] dev-libs/libffi-3.0.9-r2 to /tmp/stage1root/
[ebuild  N    ] sys-kernel/linux-headers-2.6.36.1 to /tmp/stage1root/
[ebuild  N    ] sys-apps/grep-2.5.4-r1 to /tmp/stage1root/
[ebuild  N    ] sys-apps/net-tools-1.60_p20110409135728 to /tmp/stage1root/
[ebuild  N    ] sys-devel/patch-2.5.9 to /tmp/stage1root/
[ebuild  N    ] sys-apps/gawk-3.1.8 to /tmp/stage1root/
[ebuild  N    ] app-arch/tar-1.23-r2 to /tmp/stage1root/
[ebuild  N    ] sys-devel/make-3.82-r1 to /tmp/stage1root/
[ebuild  N    ] sys-apps/shadow-4.1.4.3 to /tmp/stage1root/
[ebuild  N    ] app-arch/gzip-1.4 to /tmp/stage1root/
[ebuild  N    ] net-misc/wget-1.12-r3 to /tmp/stage1root/
[ebuild  N    ] sys-apps/diffutils-3.0 to /tmp/stage1root/
[ebuild  N    ] sys-devel/m4-1.4.15 
[ebuild  N    ] sys-devel/m4-1.4.15 to /tmp/stage1root/
[ebuild  N    ] sys-apps/help2man-1.38.2 
[ebuild  N    ] sys-devel/automake-wrapper-4 
[ebuild  N    ] sys-devel/autoconf-wrapper-10-r1 to /tmp/stage1root/
[ebuild  N    ] dev-libs/expat-2.0.1-r3 to /tmp/stage1root/
[ebuild  N    ] sys-devel/autoconf-wrapper-10-r1 
[ebuild  N    ] sys-devel/automake-wrapper-4 to /tmp/stage1root/
[ebuild  N    ] sys-apps/makedev-3.23.1 to /tmp/stage1root/
[ebuild  N    ] sys-apps/texinfo-4.13 to /tmp/stage1root/
[ebuild  N    ] dev-libs/gmp-5.0.2 to /tmp/stage1root/
[ebuild  N    ] virtual/libffi-0 to /tmp/stage1root/
[ebuild  N    ] app-shells/bash-4.1_p9 to /tmp/stage1root/
[ebuild  N    ] sys-devel/binutils-config-2-r1 to /tmp/stage1root/
[ebuild  N    ] sys-apps/sandbox-2.4 to /tmp/stage1root/
[ebuild  N    ] app-editors/nano-2.2.5 to /tmp/stage1root/
[ebuild  N    ] net-misc/rsync-3.0.8 to /tmp/stage1root/
[ebuild  N    ] virtual/os-headers-0 to /tmp/stage1root/
[ebuild  N    ] sys-devel/autoconf-2.68 
[ebuild  N    ] sys-devel/bison-2.4.3 
[ebuild  N    ] sys-devel/flex-2.5.35 
[ebuild  N    ] sys-devel/flex-2.5.35 to /tmp/stage1root/
[ebuild  N    ] sys-devel/bison-2.4.3 to /tmp/stage1root/
[ebuild  N    ] sys-apps/less-441 to /tmp/stage1root/
[ebuild  N    ] sys-libs/glibc-2.12.2 to /tmp/stage1root/
[ebuild  N    ] dev-libs/mpfr-3.0.1_p4 to /tmp/stage1root/
[ebuild  N    ] sys-apps/util-linux-2.19.1 to /tmp/stage1root/
[ebuild  N    ] sys-apps/sysvinit-2.88-r2 to /tmp/stage1root/
[ebuild  N    ] virtual/editor-0 to /tmp/stage1root/
[ebuild  N    ] sys-devel/automake-1.11.1 
[ebuild  N    ] virtual/yacc-0 
[ebuild  N    ] virtual/init-0 to /tmp/stage1root/
[ebuild  N    ] sys-devel/binutils-2.20.1-r1 to /tmp/stage1root/
[ebuild  N    ] virtual/libc-0 to /tmp/stage1root/
[ebuild  N    ] sys-devel/gcc-4.4.5 to /tmp/stage1root/
[ebuild  N    ] sys-devel/libtool-2.4-r1 
[ebuild  N    ] sys-devel/libtool-2.4-r1 to /tmp/stage1root/
[ebuild   R   ] sys-apps/baselayout-2.0.3 to /tmp/stage1root/
[ebuild  N    ] sys-apps/openrc-0.8.3-r1 to /tmp/stage1root/
[ebuild  N    ] sys-fs/udev-164-r2 to /tmp/stage1root/
[ebuild  N    ] sys-devel/libperl-5.10.1 to /tmp/stage1root/
[ebuild  N    ] dev-lang/perl-5.12.3-r1 to /tmp/stage1root/
[ebuild  N    ] app-admin/perl-cleaner-2.7 to /tmp/stage1root/
[ebuild  N    ] sys-devel/autoconf-2.68 to /tmp/stage1root/
[ebuild  N    ] sys-devel/automake-1.11.1 to /tmp/stage1root/
[ebuild  N    ] dev-util/gtk-doc-am-1.17 
[ebuild  N    ] dev-libs/glib-2.28.8 
[ebuild  N    ] dev-util/pkgconfig-0.26 
[ebuild  N    ] app-admin/eselect-python-20100321 to /tmp/stage1root/
[ebuild  N    ] sys-apps/file-5.07-r3 to /tmp/stage1root/
[ebuild  N    ] app-admin/eselect-1.2.15 to /tmp/stage1root/
[ebuild  N    ] dev-libs/libxml2-2.7.8-r1 to /tmp/stage1root/
[ebuild  N    ] sys-devel/gettext-0.18.1.1-r1 to /tmp/stage1root/
[ebuild  N    ] dev-lang/python-2.7.1-r1 to /tmp/stage1root/
[ebuild  N    ] sys-apps/portage-2.1.10.11 to /tmp/stage1root/
[ebuild  N    ] virtual/package-manager-0 to /tmp/stage1root/
[ebuild  N    ] dev-lang/python-3.1.3-r1 to /tmp/stage1root/
[ebuild  N    ] app-admin/python-updater-0.9 to /tmp/stage1root/

The following USE changes are necessary to proceed:
#required by sys-devel/autoconf-2.68, required by sys-devel/automake-1.11.1, required by sys-devel/automake (argument)
=dev-lang/perl-5.12.3-r1 -build

Use --autounmask-write to write changes to config files (honoring CONFIG_PROTECT).

!!! catalyst: run script failed.


Traceback (most recent call last):
  File "modules/generic_stage_target.py", line 1207, in run_local
    "run script failed.",env=self.env)
  File "/usr/lib64/catalyst/modules/catalyst_support.py", line 542, in cmd
    raise CatalystError,myexc
CatalystError
None

!!! catalyst: Stage build aborting due to error
Comment 18 Siarhei Siamashka 2011-09-16 09:20:18 UTC
This all has become really confusing (at least the summary of this bug is likely wrong and misleading). The root cause of the problem seems to be described in comment 8 and comment 11. And is related to "emerge -e" ignoring dependencies. Introducing some minor and not really related changes in ebuilds may have some effect on this pseudo-random order and make the problem go away.

Everything becomes especially bad when attempting to build stage3 without adding "dev-vcs/git -perl" to "package.use" because otherwise it pulls in more packages and greatly increases the chance of encountering wrong package order failure.
Comment 19 SpanKY gentoo-dev 2011-09-17 03:56:56 UTC
could always drop USE=perl make.defaults
Comment 20 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-09-17 06:29:16 UTC
(In reply to comment #19)
> could always drop USE=perl make.defaults

I agree, useless IMO; see bug 250179
Comment 21 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-09-17 13:34:46 UTC
(In reply to comment #20)
> (In reply to comment #19)
> > could always drop USE=perl make.defaults
> 
> I agree, useless IMO; see bug 250179

I already disabled perl and python here to test for that bug.
Comment 22 Torsten Veller (RETIRED) gentoo-dev 2011-09-17 15:39:22 UTC
Which problem are you trying to solve? Can somebody paste a log?
For me, building autoconf with dev-lang/perl[build] works.
Comment 23 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-09-17 16:21:51 UTC
(In reply to comment #22)
> Which problem are you trying to solve? Can somebody paste a log?
> For me, building autoconf with dev-lang/perl[build] works.

For what is worth, I haven't seen any stage3 failures on amd64/x86 autobuilds related to autoconf / perl. I've been following the builds for over 1 year.
Comment 24 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-10-24 16:48:36 UTC
Since perl/python were dropped from the default profile and there has been no comments here for the past month, I suggest closing this bug.
Comment 25 Matt Turner gentoo-dev 2011-10-24 18:37:59 UTC
Yes, I agree. I'll mark as WORKSFORME and if ssvb or someone else is able to reproduce it, feel free to reopen.