summaryrefslogtreecommitdiffstats
path: root/ldap/cm/unixstrip.pl
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/cm/unixstrip.pl')
-rw-r--r--ldap/cm/unixstrip.pl57
1 files changed, 57 insertions, 0 deletions
diff --git a/ldap/cm/unixstrip.pl b/ldap/cm/unixstrip.pl
new file mode 100644
index 00000000..9d9ae308
--- /dev/null
+++ b/ldap/cm/unixstrip.pl
@@ -0,0 +1,57 @@
+#
+# BEGIN COPYRIGHT BLOCK
+# Copyright 2001 Sun Microsystems, Inc.
+# Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+use File::Find;
+
+#
+# usage: unixstrip.pl [ directory ... ] [ shlibsign ]
+#
+# if no arguments are passed, strip files under the current directory.
+#
+# if 1 argument is passed, strip files under the given directory.
+#
+# if 2 or more arguments are passed,
+# the last argument is considered the path to nss utility shlibsign (NSS3.9~),
+# the preceding args are directories, under which files are to be stripped.
+# And nss libraries libsoftokn3, libfreebl_pure32_3, libfreebl_hybrid_3
+# are to be checksum'ed with shlibsign.
+
+my $SHLIBSIGN = "";
+if (@ARGV > 1) {
+ $SHLIBSIGN = $ARGV[$#ARGV];
+ print STDERR "set $SHLIBSIGN \n";
+ for (my $i = 0; $i < $#ARGV; $i++)
+ {
+ print STDERR "args[$i]: $ARGV[$i]\n";
+ find(\&find_cb, $ARGV[$i]);
+ }
+} elsif (@ARGV == 1) {
+ find(\&find_cb, @ARGV);
+} else {
+ find(\&find_cb, '.');
+}
+
+sub find_cb {
+ return if (! -f $_); # only look at plain files
+ return if (! -B $_); # skip text files
+ return if (/\.jpg$/); # skip jpg files
+ return if (/\.gif$/); # skip gif files
+ return if (/\.jar$/); # skip jar files
+ return if (/\.zip$/); # skip zip files
+ return if (/\.gz$/); # skip gzip files
+ return if (/\.chk$/); # skip chk files
+ print STDERR "about to strip $_ .\n";
+ system("strip $_");
+ print STDERR "strip $_ done.\n";
+ if ($SHLIBSIGN ne "" && /libsoftokn3|libfreebl_pure32_3|libfreebl_hybrid_3/)
+ {
+ print STDERR "$SHLIBSIGN $_\n";
+ system("$SHLIBSIGN -v -i $_");
+ }
+}
+
+exit 0;