Gentoo Archives: gentoo-dev

From: Michael Cummings <mcummings@××××××××.net>
To: gentoo-dev@g.o
Subject: [gentoo-dev] Fw: [gentoo-user] Regarding: Perl 5.8 Upgrades
Date: Sun, 12 Jan 2003 23:10:35
Message-Id: 20030112180744.66a00100.mcummings@datanode.net
1 Begin forwarded message:
2
3 Date: Sun, 12 Jan 2003 17:57:21 -0500
4 From: Michael Cummings <mcummings@g.o>
5 To: gentoo-user@g.o
6 Subject: [gentoo-user] Regarding: Perl 5.8 Upgrades
7
8
9 This message is principally directed at those of you that have upgraded your perl via an emerge -u world, though there's still something here for the rest of you. (Minus the 1.4 crowd who emerged perl as part of their base system in the last week or so.)
10 After much testing, I released perl 5.8 for x86 (since then, it has also been unmasked for sparc). Because the new version of perl comes with a libperl that is completely incompatible with older libperl's, I included a note at the tail end of the ebuild regarding a script located in sys-devel/perl/files/ that would fix any applications it could find that were affected by the libperl switch over (the actual list of applications varies from box to box, depending on emerge options, etc.).
11 What I didn't fully appreciate were those users who would get hit by the upgrade during an emerge -u world. Because it has been out there for nearly a week, I can't rightly pull it back, but I can help get you back your feet if you missed the warning in the emerge process. As a side note, I have updated the ebuild to pause when displaying this note in the hope that it might catch your eyes before it scrolled away.
12 At this time, it isn't possible to tell portage to re-emerge a list of packages from within an ebuild. If it were, none of this would have occurred and I wouldn't be on the spot. What I have done is written (clobbered and borrowed, mostly) a bash script and placed it in sys-devel/perl/files named libperl_rebuilder. Don't let it's name fool you - it actually does more than rebuild things compiled against your old libperl, but its name has changed to reflect this growth.
13 What the script does: First, it catalogs and re-emerges your perl modules. While most of these were unaffected by an upgrade to perl 5.8, it was better safe than sorry. Once it has gone through this list three times (the redundancy is to catch those dependencies that *were* affected, so that by the third pass all deps have been met), it compiles a list of applications compiled against libperl.so using the gentoolkit qpkg tool.
14 Thirdly, and this is a new feature as of this weekend, it looks in your portage db to see what applications have placed files in your /usr/lib/perl* tree. This is important as it catches programs that don't fall under dev-perl and that weren't compiled against libperl.so. At this stage, it starts a re-emerging of the packages it has found.
15 During all of this, a log is kept in /tmp/ called perl-upgrade.log (the name changed this weekend for those that ran this in the past) and records not only what packages it re-emerged, but any packages that it had difficulty with during emerge.
16 Possible points where the process might have problems on an individual basis - if you have emerged ~arch or package masked items, but those are no longer unmasked for you (your ACCEPT_KEYWORDS isn't set anymore, or the package is again masked in your package.mask), it will not be able to re-emerge those for you. You will need to unmask those prior to running the script in order for it to work properly.
17
18 Please feel free to email me directly if you have any questions, or post a bug to bugs.gentoo.org if this process fails for you. I would recommend running the libperl_rebuilder at least once following an upgrade to perl 5.8 as it will catch things like vim, irssi, etc.
19
20 Finally, I would like to apologize to those users that were affected and did not see the note regarding the upgrade script. This was a major error on my part and does not reflect the way that Gentoo enacts upgrades, whether they are upgrades to a simple package or to something as integral as perl or gcc (just an example).
21
22 Thank you,
23
24 Michael
25 --
26
27 -----o()o---------------------------------------------
28 | #gentoo-dev on irc.openprojects.net
29 Gentoo Dev | #gentoo-perl on irc.openprojects.net
30 Perl Guy |
31 | GnuPG Key ID: AB5CED4E9E7F4E2E
32 -----o()o---------------------------------------------
33
34
35
36
37 --
38
39 -----o()o---------------------------------------------
40 | #gentoo-dev on irc.openprojects.net
41 Gentoo Dev | #gentoo-perl on irc.openprojects.net
42 Perl Guy |
43 | GnuPG Key ID: AB5CED4E9E7F4E2E
44 -----o()o---------------------------------------------

Attachments

File name MIME type
00000000.mimetmp application/pgp-signature