Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > 80fa5e1138cb07f5b1e33462a61ed188 > files > 49

nss-3.21.0-6.el5_11.src.rpm

#!/bin/sh
#
# Splits NSS into nss-util and nss-softokn
# Takes as command line input the version of nss
# and assumes that a file nss-${nss_version}-stripped.tar.bz2
# exits in the current directory

set -e

if test -z $1
then
  echo "usage: $0 nss-version"
  exit
fi

export name=nss
export version=$1

echo "Extracting ${name}-${version}.tar.bz2"

tar -xjf ${name}-${version}.tar.bz2

# the directory will be named ${name}-${version}

nss_source_dir=${name}-${version}
softokn_dir=${name}-softokn-util-${version}

# make_nss_softokn
#-------------------------------------------------
# create the nss-softokn-util subset consisting of
#   mozilla/dbm                      --- full directory
#   mozilla/security                 --- top empty
#   mozilla/security/coreconf        --- full directory
#   mozilla/security/nss             --- top files only
#   mozilla/security/nss/lib         --- top files only
#   mozilla/security/nss/lib/freebl  --- full directory
#   mozilla/security/nss/lib/softoken --- full directory
#   mozilla/security/nss/lib/util --- full directory
#   mozilla/security/nss/lib/softoken/dbm --- full directory
#-------------------------------------------------------

SOFTOKN_WORK=${softokn_dir}-work
rm -rf ${SOFTOKN_WORK}
mkdir ${SOFTOKN_WORK}

# copy everything
cp -a ${nss_source_dir} ${SOFTOKN_WORK}/${softokn_dir}

# remove subdirectories that we don't want
rm -rf ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd
rm -rf ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/tests
rm -rf ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib
rm -rf ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/pkg
# rstart with an empty lib directory and copy only what we need
mkdir ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib
# copy the top files from mozilla/security/nss/lib/
topFilesL=`find ${nss_source_dir}/mozilla/security/nss/lib/ -maxdepth 1 -mindepth 1 -type f`
for f in $topFilesL; do
  cp -p $f ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib
done
# copy entire freebl and softoken directories recursively
cp -a ${nss_source_dir}/mozilla/security/nss/lib/freebl ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib/freebl
cp -a ${nss_source_dir}/mozilla/security/nss/lib/softoken ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib/softoken
# also copy util directory recursively
cp ${nss_source_dir}/mozilla/security/nss/lib/Makefile ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib
cp ${nss_source_dir}/mozilla/security/nss/lib/manifest.mn ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib
cp -a ${nss_source_dir}/mozilla/security/nss/lib/util ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/lib

# and some Makefiles and related files from mozilla/security/nss
topFilesN=`find ${nss_source_dir}/mozilla/security/nss/ -maxdepth 1 -mindepth 1 -type f`
for f in $topFilesN; do
  cp -p $f ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/
done

# we do need shlibsign from cmd and also bltest, lib, and lowhashtest
mkdir ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd
# copy some files at the top and the slhlib subdirectory
topFilesC=`find ${nss_source_dir}/mozilla/security/nss/cmd/ -maxdepth 1 -mindepth 1 -type f`
for f in $topFilesC; do
  cp -p $f ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd/
done

cp -a ${nss_source_dir}/mozilla/security/nss/cmd/bltest ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd/bltest
cp -a ${nss_source_dir}/mozilla/security/nss/cmd/fipstest ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd/fipstest
cp -a ${nss_source_dir}/mozilla/security/nss/cmd/lib ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd/lib
cp -a ${nss_source_dir}/mozilla/security/nss/cmd/lowhashtest ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd/lowhashtest
cp -a ${nss_source_dir}/mozilla/security/nss/cmd/shlibsign ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/cmd/shlibsign

# plus common and crypto from mozilla/security/nss/tests
mkdir ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/tests
topFilesT=`find ${nss_source_dir}/mozilla/security/nss/tests/ -maxdepth 1 -mindepth 1 -type f`
for f in $topFilesT; do
  cp -p $f ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/tests/
done
keepers="cipher common"
for t in $keepers; do
  cp -a ${nss_source_dir}/mozilla/security/nss/tests/$t ${SOFTOKN_WORK}/${softokn_dir}/mozilla/security/nss/tests/$t
done

pushd ${SOFTOKN_WORK}
# the compressed tar ball for nss-softokn
tar -cjf ../${name}-softokn-util-${version}.tar.bz2 ${softokn_dir}
popd

# cleanup after ourselves
rm -fr ${nss_source_dir}
rm -rf ${SOFTOKN_WORK}