Little help building stage3 (Can't locate Tie/Hash.pm building autoconf-2.65-r1)
On Tue, Oct 26, 2010 at 2:11 PM, Peter Stuge <email@example.com> wrote:
Daniel van Ham Colchete wrote:
> And this is the build log: http://pastebin.com/Em8fyRyT
> This is my stage 1, 2 and 3 files: http://pastebin.com/bkcuGaP7
Which version of perl is in the 20101019 stage3?
> Tie/Hash.pm is available on my old Perl 5.8.8 installation but it
> doesn't appear to be on Perl 5.12.2.
I've done similar as you, but I tried to take a shortcut and build
stage4 directly from today's stage3.
For the most psrt it works fine, but especially with perl modules
there's a twist.
Portage doesn't know which version of perl that the installed modules
were built against, and even if a module was built against an older
perl, the dependency on that module is still satisfied, even if perl
has been upgraded so that the module cannot be found.
This happened to me when today's stage3 had one version of perl, and
a newer one was in my stage4.
Rather than doing the correct thing and build my own stage3 like you,
I just hacked around it by calling perl-cleaner --allmodules in
/usr/lib64/catalyst/targets/stage4/stage4-chroot.sh which is kinda
ugly but does work.
The problem is that Tie/Hash.pm is a built in module. When the stage1 installs Perl 5.12.2 the Tie/Hash.pm is not going to /usr/lib/perl/5.12.2 even though Perl 5.8.8 is not installed on /tmp/stage1root. I`m pretty much sure this is a bug with the recently stabilized new Perl 5.12.2 ebuild.
> So, when building a new stage3 Perl 5.8.8 is not getting there and
> I think this is the cause of the problem.
Again, which version is in your stage3?
> The stage1 build failed as well, but when I did a
> catalyst -a -f stage1.spec after the failure, the build finished
> correctly, so I didn`t want to search for the root cause.
Leaving unexplained errors is always risky, and can definately come
back to bite you later. Do you at least recall how it failed? If it
was related to perl then this might still be the same problem, but I
don't know if perl is at all involved in stage1.
I solved the problem using the 20101019 portage snapshot. The guys at releng still didn`t release Tuesday`s stage3 for this week and I think it was because of the same problem.
I think the weekly builds are a very good way to improve system packages stability on Portage, but I`m also getting some other problems with non-system packages. Examples:
** ipvsadm doesn`t build with the stable gentoo-source because the directory include/asm changed to include/asm-generic on the kernel`s source. Solution one: create a link. Solution two: patch. I went with #1.
** sys-cluster/heartbeat-2.0.7-r2 doesn`t compile using the latest GCC/Glib pair. I`m not sure witch one is the root cause. Quick solution: go for sys-cluster/heartbeat-2.0.8 (~x86).
So, my suggestion is that the QA guys build a few stage4 stages (KDE, Gnome, mail server, web server, file server, db server) weekly internally to monitor for inconsistencies on the non-system part of Portage and file the bugs everytime there is one. This way the probability of a user getting into problems before QA is reduced.
Another sugestion: have any stabilizing package a 48 hour delay so that the stage4 could be tested in advance. Or give a 48 hour delay for the entire official portage tree, make QA tests daily on the live one and minimize the risks this way also.
Thanks for the help.
Daniel van Ham Colchete