7a99f56
#!/bin/sh
7a99f56
#
7a99f56
# Splits NSS into nss-util and nss-softokn
7a99f56
# Takes as command line input the version of nss
Elio Maldonado 1a56d2a
# and assumes that a file nss-${nss_version}.tar.gz
Elio Maldonado 1a56d2a
# exists in the current directory
7a99f56
7a99f56
set -e
7a99f56
7a99f56
if test -z $1
7a99f56
then
7a99f56
  echo "usage: $0 nss-version"
7a99f56
  exit
7a99f56
fi
7a99f56
7a99f56
export name=nss
7a99f56
export version=$1
7a99f56
Elio Maldonado 1a56d2a
echo "Extracting ${name}-${version}.tar.gz"
7a99f56
Elio Maldonado 1a56d2a
tar -xzf ${name}-${version}.tar.gz
7a99f56
7a99f56
# the directory will be named ${name}-${version}
7a99f56
7a99f56
nss_source_dir=${name}-${version}
7a99f56
softokn_dir=${name}-softokn-${version}
7a99f56
7a99f56
# make_nss_softokn
7a99f56
#-------------------------------------------------
7a99f56
# create the nss-softokn subset consisting of
Elio Maldonado bcfaf37
#   nss/dbm                 full directory
Elio Maldonado bcfaf37
#   nss/coreconf            full directory
Elio Maldonado bcfaf37
#   nss                     top files only
Elio Maldonado bcfaf37
#   nss/lib                 top files only
Elio Maldonado bcfaf37
#   nss/lib/freebl          full directory
Elio Maldonado bcfaf37
#   nss/lib/softoken        full directory
Elio Maldonado bcfaf37
#   nss/lib/softoken/dbm    full directory
7a99f56
#-------------------------------------------------------
7a99f56
Elio Maldonado bcfaf37
WORK=${softokn_dir}-work
Elio Maldonado bcfaf37
rm -rf ${WORK}
Elio Maldonado bcfaf37
mkdir ${WORK}
7a99f56
7a99f56
# copy everything
Elio Maldonado bcfaf37
cp -a ${nss_source_dir} ${WORK}/${softokn_dir}
7a99f56
7a99f56
# remove subdirectories that we don't want
Elio Maldonado bcfaf37
rm -rf ${WORK}/${softokn_dir}/nss/cmd
Elio Maldonado bcfaf37
rm -rf ${WORK}/${softokn_dir}/nss/tests
Elio Maldonado bcfaf37
rm -rf ${WORK}/${softokn_dir}/nss/lib
Elio Maldonado 81aa448
rm -rf ${WORK}/${softokn_dir}/nss/pkg
Elio Maldonado bcfaf37
# start with an empty lib directory and copy only what we need
Elio Maldonado bcfaf37
mkdir ${WORK}/${softokn_dir}/nss/lib
Elio Maldonado bcfaf37
# copy the top files from nss/lib/
Elio Maldonado bcfaf37
topFilesL=`find ${nss_source_dir}/nss/lib/ -maxdepth 1 -mindepth 1 -type f`
Elio Maldonado a3ce9e4
for f in $topFilesL; do
Elio Maldonado bcfaf37
  cp -p $f ${WORK}/${softokn_dir}/nss/lib
Elio Maldonado a3ce9e4
done
Elio Maldonado bcfaf37
mkdir ${WORK}/${softokn_dir}/nss/lib/util
Elio Maldonado bcfaf37
# copy entire dbm, freebl and softoken directories recursively
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/lib/dbm ${WORK}/${softokn_dir}/nss/lib/dbm
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/lib/freebl ${WORK}/${softokn_dir}/nss/lib/freebl
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/lib/softoken ${WORK}/${softokn_dir}/nss/lib/softoken
Elio Maldonado bcfaf37
# and some Makefiles and related files from nss
Elio Maldonado bcfaf37
topFilesN=`find ${nss_source_dir}/nss/ -maxdepth 1 -mindepth 1 -type f`
Elio Maldonado a3ce9e4
for f in $topFilesN; do
Elio Maldonado bcfaf37
  cp -p $f ${WORK}/${softokn_dir}/nss/
Elio Maldonado a3ce9e4
done
Elio Maldonado 3f48075
Elio Maldonado bcfaf37
# we do need bltest, lib, lowhashtest, and shlibsign from nss/cmd
Elio Maldonado bcfaf37
mkdir ${WORK}/${softokn_dir}/nss/cmd
Elio Maldonado 3f48075
# copy some files at the top and the slhlib subdirectory
Elio Maldonado bcfaf37
topFilesC=`find ${nss_source_dir}/nss/cmd/ -maxdepth 1 -mindepth 1 -type f`
Elio Maldonado a3ce9e4
for f in $topFilesC; do
Elio Maldonado bcfaf37
  cp -p $f ${WORK}/${softokn_dir}/nss/cmd/
Elio Maldonado a3ce9e4
done
Elio Maldonado 3f48075
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/cmd/bltest ${WORK}/${softokn_dir}/nss/cmd/bltest
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/cmd/fipstest ${WORK}/${softokn_dir}/nss/cmd/fipstest
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/cmd/lib ${WORK}/${softokn_dir}/nss/cmd/lib
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/cmd/lowhashtest ${WORK}/${softokn_dir}/nss/cmd/lowhashtest
Elio Maldonado bcfaf37
cp -a ${nss_source_dir}/nss/cmd/shlibsign ${WORK}/${softokn_dir}/nss/cmd/shlibsign
Elio Maldonado 3f48075
Elio Maldonado 7333777
# plus common, crypto, and lowhash from nss/tests
Elio Maldonado bcfaf37
mkdir ${WORK}/${softokn_dir}/nss/tests
Elio Maldonado bcfaf37
topFilesT=`find ${nss_source_dir}/nss/tests/ -maxdepth 1 -mindepth 1 -type f`
Elio Maldonado a3ce9e4
for f in $topFilesT; do
Elio Maldonado bcfaf37
  cp -p $f ${WORK}/${softokn_dir}/nss/tests/
Elio Maldonado Batiz b38729b
done
Elio Maldonado 7333777
keepers="cipher common lowhash"
Elio Maldonado Batiz b38729b
for t in $keepers; do
Elio Maldonado bcfaf37
  cp -a ${nss_source_dir}/nss/tests/$t ${WORK}/${softokn_dir}/nss/tests/$t
Elio Maldonado Batiz b38729b
done
Elio Maldonado Batiz b38729b
Elio Maldonado bcfaf37
pushd ${WORK}
7a99f56
# the compressed tar ball for nss-softokn
Elio Maldonado 1a56d2a
tar -czf ../${name}-softokn-${version}.tar.gz ${softokn_dir}
7a99f56
popd
7a99f56
7a99f56
# cleanup after ourselves
Elio Maldonado deb5bee
rm -fr ${nss_source_dir}
Elio Maldonado bcfaf37
rm -rf ${WORK}
7a99f56
7a99f56
7a99f56