From: Dr. Stephen Henson Date: Mon, 21 Feb 2011 19:36:55 +0000 (+0000) Subject: Initial perl script to filter out unneeded files for a fips tarball. X-Git-Tag: OpenSSL-fips-2_0-rc1~713 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=94a0a96cd8db717381f0c57af4782f385029fa89;p=oweals%2Fopenssl.git Initial perl script to filter out unneeded files for a fips tarball. --- diff --git a/util/fipsdist.pl b/util/fipsdist.pl new file mode 100644 index 0000000000..86ceab02ab --- /dev/null +++ b/util/fipsdist.pl @@ -0,0 +1,44 @@ + +# FIPS distribution filter. +# Takes tarball listing and removes unnecessary files and directories. +# + + +my $objs = ""; +foreach (split / /, "FIPS_EX_OBJ AES_ENC BN_ASM DES_ENC SHA1_ASM_OBJ MODES_ASM_OBJ") + { + $objs .= " $ENV{$_}"; + } + + +my @objlist = split / /, $objs; + +foreach (@objlist) { $tarobjs{"$1.c"} = 1 if /([^\/]+).o$/}; + +$tarobjs{"ncbc_enc.c"} = 1; + +foreach (split / /, $ENV{LINKDIRS} ) { $cdirs{$_} = 1 }; + +$cdirs{perlasm} = 1; + +foreach (keys %cdirs) { print STDERR "CDIR: $_\n";} + +while () + { + chomp; + # Skip directories but leave top level files. + next unless (/^(fips\/|crypto|util|test|include)/ || (!/\// && -f $_)); + if (/^crypto\/([^\/]+)/) + { + # Skip unused directories under crypto/ + next if -d "crypto/$1" && !exists $cdirs{$1}; + # Keep assembly language dir, Makefile or certain extensions + if (!/\/asm\// && !/\/Makefile$/ && && !/\.(in|pl|h)$/) + { + # If C source file must be on list. + next if !/(\w+\.c)$/ || !exists $tarobjs{$1}; + } + } + print "$_\n"; + } +exit 1;