preinst is in john 1.7.8-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 | #!/bin/sh
set -e
# Relocate a conffile from one location to another; it is removed iff
# unmodified, and moved iff modified.
# The undo path is postrm abort-install|abort-upgrade.
# $1 is the old pathname of the conffile,
# $2 is the new pathname of the conffile.
mv_conffile ()
{
	[ ! -f "$1" ] && return
	if [ -e "$2" ] ; then
		echo "Not moving conffile $1 to $2; new file exists"
		return
	fi
	orgmd5=`dpkg-query -W -f='${Conffiles}' dpkg | cut -d' ' -f3`
	curmd5=`md5sum $1 |sed -e 's/ .*//'`
	if [ "$orgmd5" = "$curmd5" ]; then
		# conffile unmodified; prepare to remove it, allowing
		# dpkg to install a new copy to the new location
		# before "configuration"
		echo "Preparing to remove unmodified conffile:"
		echo -n " "
		mv -fv $1 $1.moved_by_preinst
	else
		# conffile modified by admin; relocate it, causing
		# dpkg to prompt, as intended
		echo "Relocating modified conffile to new location:"
		echo -n " "
		mv -fv $1 $2
	fi >&2
}
p1=/etc
p2=/etc/john
case $1 in
install|upgrade)
	[ -d $p2 ] || mkdir $p2
	if dpkg --compare-versions "$2" le-nl 1.6-27; then
		mv_conffile $p1/john.ini $p2/john.conf
		mv_conffile $p1/john-mail.conf $p2/john-mail.conf
		mv_conffile $p1/john-mail.msg $p2/john-mail.msg
	# No need to remove the obsolete conffile
	# /etc/cron.daily/john, since old prerm does so
	# unconditionally (and there is nothing we can do to stop it)
	fi
	;;
abort-upgrade)
	# This case needs no actions here
	;;
*)
	echo "$0: undocumented call: $@"
	exit 1
	;;
esac
 |