Re: perl breakage in Cooker mostly resolved
Per Øyvind Karlsen <[email protected]> Fri, 20 Jan 2012 19:10:05 +0100
| Newsgroups | gmane.linux.mandrake.cooker.devel |
|---|---|
| Message-ID | <CA+0WU1TgAB-1ovnzzDJ3fER4fD9JMyr9APDz6_LpzqK=DiAvVg@mail.gmail.com> |
Den 06:00 20. januar 2012 skrev <[email protected]> følgende: >> Hi, >> the most important perl related rebuilds have finished - urpmi is >> working with 5.14 on my test box with the current packages. >> >> Updating now is no longer guaranteed to break things. ;) > > I updated a few minutes ago, and did need to rebuild quite a few > packages, because when perl-URPM was updated, and a few others, > urpmi gone to restart, *but* it had not updated all urpmi and > perl-URPM dependencies. > >> If you want to play it safe (yes, right. Sure you do. That's why you're >> using Cooker in the first place ;) ), wait a bit longer. >> If you rely heavily on perl code other than urpmi, wait a bit longer. >> In particular if you're running a mail server that needs spamassassin >> (which uses lots of different perl modules), wait a bit longer. >> >> If you're updating and running into problems, here's how to identify >> and fix them: >> In general, the symptom of breakages that can still occur is getting an >> error message like >> "undefined symbol: Perl_Gthr_key_ptr" >> The fix is to identify the perl module is coming from, and simply >> rebuild it. >> e.g. if you see >> >> "/usr/bin/perl: symbol lookup error: >> /usr/lib/perl5/vendor_perl/5.12.3/x86_64-linux-thread-multi/auto/List/MoreUtils/MoreUtils.so: >> undefined symbol: Perl_Gthr_key_ptr" >> >> Check what package the module is from -- >> >> [bero@localhost ~]$ rpm -qf >> /usr/lib/perl5/vendor_perl/5.12.3/x86_64-linux-thread-multi/auto/List/MoreUtils/MoreUtils.so >> perl-List-MoreUtils-0.320.0-1 >> [bero@localhost ~]$ >> >> Then simply rebuild that package. > > First rebuilds will fail to generate a package, and things > may be trickier if one does not have build tools installed. > > What I did was to go on some dependencies with something > like: > > $ repsys co perl-Foo-Bar > $ cd perl-Foo-Bar > $ bm -l > $ (cd BUILDROOT/perl-*; tar cf - . | (cd /; sudo tar xvf -) ) > > and annotate what was built in the above steps in a text > file, because would need some --nodeps for other packages, > until it was able to generate a rpm, then would just install > the rpm. > >> Needless to say, the fixed packages for all the modules still broken >> will appear in the next couple of days. No need to report any such >> breakage as a bug unless you run into it a week or two from now. > > So, I did not follow closely how it was done in previous > perl updates, but I believe it should have strict dependencies > to force a single transaction, and not fall for the problem > I just experienced, that was urpmi restarting before its > dependencies were updated. Currently perl packages gets a dependency like 'perl(abi) >= 5.12' generated, but perl isn't backwards compatible for perl extensions built against older versions so generating strict version dependencies like 'perl(abi) = 5.12' for perl extensions should probably be sufficient in the future.. -- Regards, Per Øyvind