diff --git a/mozilla/xpinstall/packager/unix/deliver.pl b/mozilla/xpinstall/packager/unix/deliver.pl index a6388360e71..72bab8e9b5f 100644 --- a/mozilla/xpinstall/packager/unix/deliver.pl +++ b/mozilla/xpinstall/packager/unix/deliver.pl @@ -57,9 +57,12 @@ use Cwd; use Getopt::Std; +use File::Find; use File::Path; getopts('o:s:'); +@libraryList = undef; + #// constants $SUBDIR = "mozilla-installer"; $_DEPTH = "../../.."; @@ -161,6 +164,22 @@ spew("Completed copying build files"); system("perl xptlink.pl -o unix -s $topobjdir/dist -d $STAGE -v"); spew("Completed xptlinking"); +#// strip libs +RecursiveStrip($STAGE); +spew("Completed stripping libs in $STAGE"); + +#// regenerate the NSS .chk files +system("$topobjdir/dist/bin/run-mozilla.sh $topobjdir/dist/bin/shlibsign -v -i $STAGE/psm/bin/libsoftokn3.so"); +if(-e "$STAGE/psm/bin/libfreebl_pure32_3.so") +{ + system("$topobjdir/dist/bin/run-mozilla.sh $topobjdir/dist/bin/shlibsign -v -i $STAGE/psm/bin/libfreebl_pure32_3.so"); +} +if(-e "$STAGE/psm/bin/libfreebl_hybrid_3.so") +{ + system("$topobjdir/dist/bin/run-mozilla.sh $topobjdir/dist/bin/shlibsign -v -i $STAGE/psm/bin/libfreebl_hybrid_3.so"); +} +spew("Completed signing NSS libraries"); + #// call makeall.pl tunneling args (delivers .xpis to $topobjdir/installer/stage) chdir("$topsrcdir/xpinstall/packager/unix"); system("perl makeall.pl $aVersion $aURLPath $STAGE $XPI"); @@ -211,3 +230,27 @@ sub copy } system ("cp ".$_[0]." ".$_[1]); } + +## +# RecursiveStrip +# +# Strips all strippable files by recursing into all directories and calling +# the strip utility on all files. +# +# @param targetDir the directory to traverse recursively +# +sub RecursiveStrip +{ + my($targetDir) = $_[0]; + + undef @libraryList; + find({ wanted => \&find_libraries, no_chdir => 1 }, $targetDir); + + # strip all strippable files + system("strip @libraryList") if (defined(@libraryList)); +} + +sub find_libraries +{ + push @libraryList, $File::Find::name; +} diff --git a/mozilla/xpinstall/packager/unix/makexpi.pl b/mozilla/xpinstall/packager/unix/makexpi.pl index c71b029a62e..83946a63591 100755 --- a/mozilla/xpinstall/packager/unix/makexpi.pl +++ b/mozilla/xpinstall/packager/unix/makexpi.pl @@ -56,42 +56,6 @@ # use Cwd; -use File::Find; - -@libraryList = undef; - -## -# RecursiveStrip -# -# Strips all strippable files by recursing into all directories and calling -# the strip utility on all files. -# -# @param targetDir the directory to traverse recursively -# -sub RecursiveStrip -{ - my($targetDir) = $_[0]; - my(@dirEntries) = (); - my($entry) = ""; - my($saveCwd) = cwd(); - - undef @libraryList; - find({ wanted => \&find_libraries, no_chdir => 1 }, $targetDir); - @dirEntries = <$targetDir/*>; - - # Remove from @libraryList files that shouldn't be stripped. This is a - # temporary workaround to resolve bug 262822. - @libraryList = grep { ! /softokn3/ } @libraryList; - @libraryList = grep { ! /freebl_hybrid_3/ } @libraryList; - @libraryList = grep { ! /freebl_pure32_3/ } @libraryList; - - # As stated by Wan-Teh, the true fix is to recreate the *.chk files for - # the softokn3, freebl_hybrid_3, and freebl_pure32_3 shared libraries - # after they have been stripped. - - # strip all strippable files - system("strip @libraryList") if (defined(@libraryList)); -} sub MakeJsFile { @@ -104,11 +68,6 @@ sub MakeJsFile } } -sub find_libraries -{ - push @libraryList, $File::Find::name; -} - # Make sure there are at least three arguments if($#ARGV < 2) { @@ -161,10 +120,6 @@ $saveCwdir = cwd(); # unwanted path information. chdir("$inStagePath/$inComponentName"); -# strip libs -print "stripping libs in $inStagePath/$inComponentName...\n"; -RecursiveStrip(cwd()); - system("zip -r -y $inDestPath/$inComponentName.xpi *"); chdir("$saveCwdir");