#!/bin/sh -e
case "$1" in
configure)
;;
abort-upgrade|abort-remove|abort-deconfigure)
exit 0
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
. /usr/share/debconf/confmodule
INITCONFFILE=/etc/default/samba
umask 022
[ -r "${INITCONFFILE}" ] || {
echo Generating ${INITCONFFILE}... >&2
cat >${INITCONFFILE} <<'EOFMAGICNUMBER1234'
RUN_MODE=""
EOFMAGICNUMBER1234
}
if [ -d /var/samba/ ]; then
mv /var/samba/* /var/lib/samba/ 2>/dev/null || true
rmdir /var/samba/
fi
if [ -d /var/state/samba ]; then
mv /var/state/samba/* /var/lib/samba/ 2>/dev/null || true
rmdir /var/state/samba/
rmdir /var/state/ 2> /dev/null || true
fi
for F in browse.dat printing.tdb winbindd_cache.tdb
do
if [ -e /var/lib/samba/"$F" ]; then
mv /var/lib/samba/"$F" /var/cache/samba/
fi
done
for F in brlock.tdb connections.tdb locking.tdb messages.tdb nmbd.pid \
sessionid.tdb smbd.pid unexpected.tdb
do
if [ -e /var/lib/samba/"$F" ]; then
mv /var/lib/samba/"$F" /var/run/samba/
fi
done
if [ -e /etc/samba/secrets.tdb -a ! -e /var/lib/samba/secrets.tdb ]
then
mv /etc/samba/secrets.tdb /var/lib/samba/
fi
if [ -n "$2" ] && dpkg --compare-versions "$2" lt 2.999+3.0.alpha23-5 \
&& [ -e /etc/samba/passdb.tdb -a ! -e /var/lib/samba/passdb.tdb ]
then
mv /etc/samba/passdb.tdb /var/lib/samba/
fi
if [ -n "$2" ] && dpkg --compare-versions "$2" gt 2.99.cvs.20020713-1 \
&& dpkg --compare-versions "$2" lt 2.999+3.0cvs20020805-1
then
rm -f /var/lib/samba/registry.tdb
fi
db_get samba/run_mode || true
RUN_MODE="${RET}"
TMPFILE=/etc/default/samba.dpkg-tmp
sed -e "s/^[[:space:]]*RUN_MODE[[:space:]]*=.*/RUN_MODE=\"${RUN_MODE}\"/" \
< ${INITCONFFILE} >${TMPFILE}
chmod a+r ${TMPFILE}
mv -f ${TMPFILE} ${INITCONFFILE}
db_get samba/generate_smbpasswd || true
GENERATE_SMBPASSWD="${RET}"
db_get samba/tdbsam || true
PDB_MIGRATE="${RET}"
db_stop
umask 066
if [ "${GENERATE_SMBPASSWD}" = "true" -a ! -e /var/lib/samba/passdb.tdb -a ! -e /etc/samba/smbpasswd ]; then
getent passwd | /usr/sbin/mksmbpasswd > /etc/samba/smbpasswd
pdbedit -i smbpasswd -e tdbsam
rm /etc/samba/smbpasswd
fi
umask 022
if [ -n "$2" -a -e /etc/samba/smbpasswd \
-a ! -e /var/lib/samba/passdb.tdb -a "$PDB_MIGRATE" = "true" ] \
&& dpkg --compare-versions "$2" lt 2.99.cvs.20020713-2
then
umask 066
pdbedit -i smbpasswd -e tdbsam
rm /etc/samba/smbpasswd
umask 022
PASSDB=`sed -n -e"s/^[[:space:]]*\[global\]/\[global\]/i
/^\[global\]/,/^[[:space:]]*\[/ \
s/^[[:space:]]*passdb backend[[:space:]]*=[[:space:]]*//pi" \
< /etc/samba/smb.conf \
| tail -n 1`
if echo "$PASSDB" | egrep -q "(^|[[:space:]])smbpasswd"; then
if ! echo "$PASSDB" | egrep -q "(^|[[:space:]])tdbsam"; then
PASSDB=`echo $PASSDB | sed -e's/\(^\|[[:space:]]\)smbpasswd/\1tdbsam/'`
fi
fi
if ! echo "$PASSDB" | egrep -q "(^|[[:space:]])tdbsam"; then
PASSDB="tdbsam $PASSDB"
fi
TMPFILE=/etc/samba/smb.conf.dpkg-tmp
sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
/^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ \
s/^\([[:space:]]*\)passdb backend[[:space:]]*=.*/\1passdb backend = ${PASSDB}/i" \
< /etc/samba/smb.conf >${TMPFILE}
chmod a+r ${TMPFILE}
mv -f ${TMPFILE} /etc/samba/smb.conf
fi
if dpkg --compare-versions "$2" lt 2.999+3.0.alpha20-4; then
update-inetd --remove netbios-ns
fi
if [ -z "$2" ]; then
update-inetd --add "#<off># netbios-ssn stream tcp nowait root /usr/sbin/tcpd /usr/sbin/smbd"
fi
if [ "$RUN_MODE" = "daemons" ]; then
update-inetd --disable netbios-ssn
else
update-inetd --enable netbios-ssn
fi
if [ -f /etc/samba/smbpasswd ]; then
chmod 600 /etc/samba/smbpasswd
fi
if [ -f /var/backups/smbpasswd.bak ]; then
chmod 600 /var/backups/smbpasswd.bak
fi
rm -f /etc/samba/debian_config
mv -f /var/log/nmb* /var/log/samba/ 2> /dev/null || true
mv -f /var/log/smb* /var/log/samba/ 2> /dev/null || true
exit 0