postinst is in igtf-policy-slcs 1.88-1.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | #!/bin/sh
# postinst script for igtf-policy-slcs
#
# see: dh_installdeb(1)
set -e
. /usr/share/debconf/confmodule
# auxiliary function to find $1 in $2
in_list() {
local i
local s=$1
shift
for i in "$@" ; do
if test "$s" = "$i" ; then
return 0
fi
done
return 1
}
# check if $1 is supposed to be included.
ca_included() {
if [ "$install_profile" = true ]; then
if in_list "$1" $excluded ; then
return 1
else
return 0
fi
else
if in_list "$1" $included ; then
return 0
else
return 1
fi
fi
}
# When CAs are discontinued, they (ought to) clean up the symlinks.
# But the CRL files may be left behind. It's always a good idea to remove
# those CRLs which no longer have their CA certificate present.
remove_leftover_crls() {
for i in `find ${location} -maxdepth 1 -name '*.r0' -print` ; do
ca=`basename ${i%.*}`
if [ ! -e ${location}/$ca.0 ] ; then
rm -f $i
fi
done
}
# Earlier versions of this package (<=1.54) did not clean up the symlinks
# of removed CAs
remove_discontinued_cas() {
discontinued="AIST 075047ca a317c467 JUnet-CA 3154fd00 b3222f9e IUCC bfafd1bd 6fee79b0"
for i in $discontinued ; do
for e in crl_url info namespaces pem signing_policy 0; do
if [ -h /etc/grid-security/certificates/$i.$e ]; then
rm -f /etc/grid-security/certificates/$i.$e
fi
done
done
}
case "$1" in
configure)
# find the location where to install the certificates
db_get igtf-policy/location
location="$RET"
if [ ! -d "$location" ]; then
if ! mkdir -p "$location" ; then
echo "could not create directory $location" >&2
exit 1
else
# leave a marker to flag that this directory should
# be removed along with the package.
touch "$location"/.created_by_igtf_policy
fi
fi
db_get igtf-policy/old-location
oldloc="$RET"
# Move the whole kit and kaboodle to the new spot;
# including any other igtf profile.
if [ -d "$oldloc" -a "$oldloc" != "$location" ]; then
mv "$oldloc"/* "$location"/ > /dev/null 2>&1 || true
if [ -f "$oldloc"/.created_by_igtf_policy ]; then
rm "$oldloc"/.created_by_igtf_policy
filesleft=`ls -a "$oldloc" | wc -l`
if [ $filesleft -eq 2 ]; then
rmdir "$oldloc"
fi
fi
fi
# The configuration works either by exclusion or
# inclusion of exceptions. If install_profile is
# 'yes', then all are installed except those listed
# in exclude_ca; if 'no' then only those in
# include_ca are installed.
# get the setting of whether to install the profile
db_get igtf-policy-slcs/install_profile
install_profile="$RET"
# Get the in/exclude lists, replace the commas
db_get igtf-policy-slcs/exclude_ca
excluded=`echo "$RET" | tr ',' ' '`
db_get igtf-policy-slcs/include_ca
included=`echo "$RET" | tr ',' ' '`
# symlink each file to ${location}
# following the inclusion/exclusion principle described
# above. The hashed filenames are symlinks to the real
# names, so they must be resolved with readlink.
for f in `find /usr/share/igtf-policy/slcs/ -maxdepth 1 -not -type d` ; do
# read the link
if [ -h "$f" ]; then
l=`readlink "$f"`
else
l="$f"
fi
ca=`basename ${l%.*}`
if ca_included $ca; then
# create symlink if it doesn't exist
if [ ! -e ${location}/`basename $f` ]; then
# copy symbolic links (that point to the same directory)
# rather than create another link
if [ -h "$f" ] && ! readlink "$f" | grep -q '/' ; then
cp -d "$f" ${location}/
else
ln -s "$f" ${location}/
fi
fi
else
# remove the files, and CRL if any
rm -f ${location}/`basename $f`
rm -f ${location}/`basename ${f%.*}`.r0
fi
done
remove_leftover_crls
if dpkg --compare-versions "$2" lt 1.55 ; then
remove_discontinued_cas
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
exit 0
|