postinst is in geneweb 6.03-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 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | #! /bin/sh
# postinst script for GeneWeb
#
# see: dh_installdeb(1)
set -e
# Needs Depends: iso-codes, isoquery
ISOQUERY=/usr/bin/isoquery
# These will be used here and there below
SERVICES=/etc/services
OLDRCFILE=/etc/geneweb/genewebrc
NEWRCFILE=/etc/default/geneweb
INITFILE=/etc/init.d/geneweb
GENEWEBUSER=geneweb
# We we'll need some variables defined there
# We first define some defaults values...just in case
GENEWEBDB=/var/lib/geneweb
USERS_GROUP=geneweb
LOGFILE=/var/log/geneweb.log
# Default settings
DEFAULTLNG="en"
DEFAULTFULLLNG="English"
DEFAULTPORT=2317
DEFAULTRUNMODE="Always on"
DEFAULTREMOVE=false
DEFAULTOPTIONS=""
# Reads config file (will override defaults above)
[ -r $NEWRCFILE ] && . $NEWRCFILE
. /usr/share/debconf/confmodule
db_version 2.0
write_rcfile() {
cat >$NEWRCFILE <<EOF
#
# GeneWeb Configuration Data
#
# This file may be changed manually, or by running "dpkg-reconfigure geneweb"
# The port which the daemon listens to
PORT="${PORT}"
# The default language
# Look at Geneweb documentation for valid values
# Versions prior to 4.10-9 used LANG which could mix up with
# the system's localisation settings
LNG="${LNG}"
# The run mode
# Two possible values: "Always on" or "Manual"
# You need to use quotes
RUN_MODE="${RUN_MODE}"
# Additionnal options for gwd
# Example: OPTIONS="-a 192.168.1.1" for binding the daemon to a given address
# This setting is not handled by debconf
OPTIONS="${OPTIONS}"
EOF
}
get_debconf() {
db_get geneweb/port
PORT=$RET
# If not present, use default
if [ "$PORT" = "" ]
then
PORT=$DEFAULTPORT
fi
db_get geneweb/lang
FULLLNG=$RET
# If not present, use default
if [ "$FULLLNG" = "" ]
then
FULLLNG=$DEFAULTFULLLNG
fi
# Find the two letter code for language
# LNG=`echo $FULLLNG | cut -f 2 -d "(" | cut -f 1 -d ")"`
LNG=`$ISOQUERY --iso=639 | grep "${FULLLNG}\$" | cut -f3`
db_get geneweb/run_mode
RUN_MODE="$RET"
# If not present, use default
if [ "$RUN_MODE" = "" ]
then
RUN_MODE="$DEFAULTRUNMODE"
fi
}
case "$1" in
configure)
# NEWRCFILE has to be world-readable if we want the entry menu to work
[ -f $NEWRCFILE ] && chmod g+r,a+r $NEWRCFILE
[ -f $INITFILE ] && chmod a+rx $INITFILE
if [ -d "/usr/share/doc/geneweb/$LNG" ]; then
ln -sf /usr/share/doc/geneweb/$LNG /usr/share/doc/geneweb/doc_choice
else
ln -sf /usr/share/doc/geneweb/en /usr/share/doc/geneweb/doc_choice
fi
if [ ! -x `which addgroup` ]; then
echo "addgroup(8) from the \'adduser\' package is needed...";
exit 1;
fi
# Make sure user group is available
if ! getent group ${USERS_GROUP} >/dev/null
then
echo "Adding $USERS_GROUP group ... "
addgroup --quiet --force-badname $USERS_GROUP
fi
if [ ! -x `which adduser` ]; then
echo "adduser(8) from the \'adduser\' package is needed...";
exit 1;
fi
# Make sure geneweb user exists
if ! getent passwd ${GENEWEBUSER} >/dev/null
then
echo "Adding $GENEWEBUSER user ... "
adduser --quiet --system --home /var/lib/geneweb --no-create-home --ingroup $USERS_GROUP $GENEWEBUSER
fi
# Permissions and groups changes come back
# to the configure stage again.
# Problems may remains if users previously messed up
# the permissions...but more huge problems will
# occur if this stage occurs _before_ the geneweb
# group creation (was bug 171570 on 4.07-3 release)
if [ ! -f $LOGFILE ]
then
touch $LOGFILE
fi
# Thus all files created there will have geneweb as group
chown root:$USERS_GROUP $GENEWEBDB $GENEWEBDB/images $GENEWEBDB/cnt $GENEWEBDB/etc
# The database directory is writable by geneweb group
chmod ug+rwx,o-rwx $GENEWEBDB $GENEWEBDB/images $GENEWEBDB/cnt $GENEWEBDB/etc
# SetGID bit on the database directory owned by geneweb group
chmod g+s $GENEWEBDB $GENEWEBDB/images $GENEWEBDB/cnt $GENEWEBDB/etc
# The log file is written by gwd running as the geneweb user
# Make it readable/writable by this user only
chown $GENEWEBUSER:$USERS_GROUP $LOGFILE
chmod 600 $LOGFILE
# Fix incorrect database and images directories permissions
# These directories have to be group-writable
# as the daemon now runs with an unprivileged UID
#
# Thanks to Russell Sutherland for pointing this to me
# Bug: 179918
#
# Deal properly with database names that contain spaces
OLDIFS=${IFS}
IFS='
'
for base in `find $GENEWEBDB -type d -name \*.gwb`
do
chgrp $USERS_GROUP "$base"
chmod g+w,g+s "$base"
# Fix files permissions. See #219779
for file in `find $base -type f`
do
chgrp $USERS_GROUP "$file"
chmod g+w "$file"
done
done
for imagedir in `find $GENEWEBDB/images -type d`
do
chgrp $USERS_GROUP "$imagedir"
chmod g+w,g+s "$imagedir"
done
IFS=${OLDIFS}
# Values are read from debconf
# to update variables
get_debconf
# The settings file is written
# Moved to postinst
write_rcfile
;;
*)
;;
esac
# Transition of init scripts links: we don't want them in runlevels
# 0 and 6 anymore
if dpkg --compare-versions "$2" lt "5.01-4"; then
update-rc.d -f geneweb remove
fi
# Automatically added by dh_installinit
if [ -x "/etc/init.d/geneweb" ]; then
if [ ! -e "/etc/init/geneweb.conf" ]; then
update-rc.d geneweb defaults >/dev/null
fi
invoke-rc.d geneweb start || exit $?
fi
# End automatically added section
# Automatically added by dh_installmenu
if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
update-menus
fi
# End automatically added section
|