Goofed at home

The compilation and the binary installs of Gentoo 2006.1 went very fine on the three systems in the company, which I’m operating with Gentoo. At home however I had to boot into Knoppix, to start a rescue operation. The only thing, that I forgot was to correct the USE flags to include nptlonly before starting the binary installation of the compiler and glibc. Atleast messages in the Gentoo forums seems to indicate that this was the reason. The effect was, that nearly at the end of the glibc installation, the installation aborted and each time I tried to invoke a new command, I received a message like this:

sh: relocation error: /lib/tls/ symbol _dl_out_of_memory, 
    version GLIBC_PRIVATE not defined in file with link
    time reference

I had to boot into Knoppix, mount the Gentoo root-fs and remove the glibc 2.4 files from /lib (luckily the 2.3.6 files were still present) , recreate some links by hand, so that I was in a situation where I could chroot into the Gentoo system and start a recompilation of the glibc.

After that Gentoo booted up fine again and I could restart the installation of the remaining roughly 1100 binary packages (at home I have about 100 packages more installed).

It’ always pays off to have a Knoppix CD handy.

The Big Compile: Finished

The big compilation started on Aug. 31st, around 13:00 and was ready Sep. 2nd 2:50 with a 90 min compilation break in between.

In the compilation time of 36 ¼ hours a total of 995 packages was successfully reinstalled. The compilation of 11 packages failed (the first new versions of these packages currently pop up on the x86 stable RSS feeds). The compilation of OpenOffice 2.0 took another 6 hours.

Looking at some of the failed packages, it appears as if assembler code was the culprit for the failures.

The binary installation on the one system, which also provides the original storage for /usr/portage and /portage for the other systems took about 3 hours. The binary installation on the other system with nfsmounted portage-trees (via 100Mb Ethernet) took 8 hours.

Now I can take about 1100 binary packages home and repeat the process one last time.

One last thing. If you don’t recompile the kernel and any package with a kernel module (i.e. nvidia-drivers) has been reinstalled, you’ll need to reinstall it another time with a temporarily activated GCC 3.4.6. Loading a GCC 4.1.1 compiled module into a GCC 3.4.x compiled kernel causes conflicts.

Das erste Mal

Nach meiner Weber B Fraktur von 25. April 2006 bin ich heute das erste Mal wieder gelaufen. Ab 19:30 Uhr, 37 Minuten insgesamt. Abwechselnd 2 Minuten Laufen, 2 Minuten gehen. Ich habe im ehemals gebrochenen Fuß keine Probleme verspürt. Die Muskel im Oberschenkel habe ich mehr gespürt.

Ich werde nach dem Anfängerprogramm aus dem Strunz Buch “forever young” vorgehen, um dann hoffentlich in 4 Wochen wieder voll in Schuss zu sein.

The Big Compile

Gentoo Linux 2006.1 has just been released. With this GCC 4.1.1 and GLIBC 2.4 were marked stable. Since these two packages present a major update of two core components of every Linux system, a emerge -ev world was in order. This is my very first recompilation of everything since I decided to switch to Gentoo at the beginning of 2004. Until now all the necessary recompilations were due to results of revdep-rebuild. And that were only a couple of packages at worst.

This time there are about 1000 packages that need to be recompiled, half of which are now compiled since starting yesterday afternoon at about 13:00. Some of the major packages like KDE, Firefox, Thunderbird and OpenOffice are still due. I guess I will be done, when the weekend is over.

The Gentoo documentation suggests, that you do a

emerge -eav system
emerge -eav world

I did it somewhat differently however. I used the output from emerge -pev and with the help of a little Perl I created two shell scripts and, which contain lines like these:

emerge -v =app-text/sgml-common-0.6.3-r4 || \
    echo app-text/sgml-common-0.6.3-r4 failed >> /tmp/do-world-failed
emerge -v =app-text/docbook-sgml-dtd-4.4 || \
    echo app-text/docbook-sgml-dtd-4.4 failed >> /tmp/do-world-failed

Since emerge world would recompiled those packages, which had already been compiled during the emerge system I deleted all the lines from the script concerning packages from the emerge system stage. This procedure has the advantage, that the recompilation will really run to the end. I can then handle recompilation failures afterwards. At this point 5 out of 522 packages failed to compile.

BTW, the compilation is running on a 2 way 3.2GHz XEON system. The directories /usr/portage and /portage (containing the source archives and the binary packages) were nfsmounted from another system (via 100Mb Ethernet; this has probably caused a certain penalty in compilation time). The other systems will then be updated with the binary packages.