in the ebuild for openssl 0.9.7b is a big warning
You must re-emerge every package that links to openssl after you have
merged openssl 0.9.7 This is becuse packages that links against
openssl 0.9.7 links against the full version. Also, if you don't have the
sources for the packages you need to re-emerge you should download
them with emerge -f prior to the installation of openssl 0.9.7 This is
becuse wget may be linked against openssl 0.9.7 To generate a list of
packages that links against openssl 0.9.7 you can download and run the
script from http://cvs.gentoo.org/~aliz/openssl_update.sh If
you are using binary packages you need to rebuild those against the
new version of openssl 0.9.7.
But after I read this warning, I updated openssl!
OK let's start
Code: Select all
cd /usr/portage/dev-libs/openssl/
emerge -u openssl-0.9.7b.ebuildCode: Select all
sh openssl_update.sh > liste1After this emerge the biggest problem is to emerge the packages that you have to update in the right order.
For this I coded I small perl script
Code: Select all
#!/usr/bin/perl
open (IN,"<liste1"); # the file where the output from the given script
# is. http://cvs.gentoo.org/~aliz/openssl_update.sh
@in = <IN>;
close IN;
@out = sort @in;
for ($i=0;$i<$#out;$i++){
while ($out[$i] eq $out[$i+1]){
splice(@out,$i,1);
}
}
while (@out){
$output = "$#out packages left to sort. \n";
printf $output;
@first = `emerge -ep =$out[0]`;
if ($first[4] =~ /have been masked/){
push @new,$out[0];
splice (@out,0,1);
}elsif ($first[4] =~ /there are no masked/){
print "** Error ** Can't find package: $out[0]\n\n";
splice (@out,0,1);
}else{
splice (@first,-1); #cut the lines from emerge -ep package at
# the end. Should be -1 or -2
splice (@first,0,4); # same with the first 4 lines
foreach $i (@first){
my @tmp = split(/]\ /,$i);
my $pak = @tmp[1];
chomp $pak;
$num = 0;
foreach $j (@out){
chomp $j;
if ($pak =~ $j){
push @new,$j;
splice (@out,$num,1);
}
$num++;
}
}
}
printf "^[[1A"; #ESC[1A to move the coursor one line up
}
print "in the following order the packages should go to emerge:\n";
foreach $i (@new){
print $i."\n";
}
After the script is finished you know in which order you should emerge the packages.
Do this by type for each line
Code: Select all
emerge =name/in_the_list-versionNow you better get down and pray!
Good luck!




