cdbbc4b9b5
PR: ports/59862 Submitted by: Rong-En Fan <rafan@infor.rog> Approved by: maintainer timeout (almost 3 months)
173 lines
5.5 KiB
Bash
173 lines
5.5 KiB
Bash
#!/bin/sh
|
|
PREFIX=/usr/local
|
|
LPD_PATH="/usr/local/sbin/lpd"
|
|
INSTALL="/usr/bin/install -c -o root -g wheel"
|
|
LPD_PERMS_PATH="/usr/local/etc/lpd/lpd.perms"
|
|
LPD_CONF_PATH="/usr/local/etc/lpd/lpd.conf"
|
|
PRINTCAP_PATH="/usr/local/etc/printcap"
|
|
SYSCONFDIR=/usr/local/etc
|
|
SBINDIR=/usr/local/sbin
|
|
FILTER_DIR=/usr/local/libexec/filters
|
|
LOCKFILE="/var/run/lpd"
|
|
CONFIG_SUBDIR=lpd
|
|
PSHOWALL="-ax"
|
|
VERSION=3.8.23
|
|
INIT=
|
|
MANDIR=/usr/local/man
|
|
#
|
|
# -- START --
|
|
# postinstall.freebsd.sh,v 1.1 2001/08/21 20:33:16 root Exp
|
|
#
|
|
# If you are building a PORT, see the
|
|
# DISTRIBUTIONS/Freebsd directory for a complete port
|
|
# building package.
|
|
#
|
|
# This is the shell script that does the postinstall
|
|
# dynamic fixup
|
|
# It needs to be massaged with the information for
|
|
# various paths.
|
|
# If you are building a package, then you do NOT want
|
|
# to have this executed - it will put the sample files
|
|
# in place. You need to do this during the postinstall
|
|
# step in the package installation.
|
|
#
|
|
echo RUNNING postinstall.freebsd.sh parms "'$0 $@'" MAKEPACKAGE="$MAKEPACKAGE" MAKEINSTALL="$MAKEINSTALL" PREFIX="$PREFIX" INIT="$INIT" cwd `pwd`
|
|
if [ "$VERBOSE_INSTALL" != "" ] ; then set -x; fi
|
|
|
|
fix () {
|
|
v=`echo $1 | sed -e 's/[:;].*//'`;
|
|
p=`echo $2 | sed -e 's/:.*//'`; d=`dirname $p`;
|
|
if expr "$p" : "\|" >/dev/null ; then
|
|
echo "$v is a filter '$p'"
|
|
return 0
|
|
fi
|
|
echo "Putting $p in $d, using $v.sample"
|
|
if [ ! -d "$d" ] ; then
|
|
echo "Directory $d does not exist!"
|
|
mkdir -p $d
|
|
fi
|
|
old_version=` echo $p | sed -e "s,/$CONFIG_SUBDIR/,/,"`
|
|
if [ ! -f "$p" -a "$old_version" != "$p" -a -f "$old_version" ] ; then
|
|
echo "WARNING: Location of $p changed from $old_version"
|
|
echo " Copying $old_version to $p"
|
|
cp "$old_version" "$p" || echo "cannot copy $old_version to $p"
|
|
fi
|
|
if [ -f $v.sample ] ; then
|
|
if [ $v.sample != $p.sample ] ; then ${INSTALL} $v.sample $p.sample; fi
|
|
elif [ -f $v ] ; then
|
|
if [ $v != $p.sample ] ; then ${INSTALL} $v $p.sample; fi
|
|
else
|
|
echo "Do not have $v.sample or $v"
|
|
fi
|
|
if [ ! -f $p.sample ] ; then
|
|
echo "Do not have $p.sample"
|
|
elif [ ! -f $p ] ; then
|
|
${INSTALL} -m 644 $p.sample $p;
|
|
fi;
|
|
}
|
|
|
|
startserver(){
|
|
cnf=${DESTDIR}/etc/rc.conf
|
|
if [ -f ${cnf} ] ; then
|
|
if grep lprng ${cnf} ; then
|
|
: # no changes
|
|
else
|
|
echo 'lprng_enable="YES"' >> ${cnf}
|
|
fi
|
|
fi
|
|
echo "Stopping LPD"
|
|
killall lpd || true
|
|
sleep 2;
|
|
# check the printcap information
|
|
echo "Checking Printcap Info and fixing permissions"
|
|
${SBINDIR}/checkpc -f || true
|
|
# restart the server
|
|
echo "Restarting server"
|
|
sh $init start || true
|
|
echo "Done"
|
|
}
|
|
|
|
# we use the /usr/local/etc/rc.d method to start
|
|
init=${DESTDIR}/usr/local/etc/rc.d/lprng.sh
|
|
|
|
# we have to take them from one place and put in another
|
|
if [ "X$MAKEPACKAGE" = "XYES" ] ; then
|
|
hold=${DESTDIR}${SYSCONFDIR}/lpd
|
|
echo "Setting up configuration files path for package" ${hold}
|
|
# we put files into the destination
|
|
if [ ! -d ${hold} ] ; then mkdir -p ${hold} ; fi;
|
|
${INSTALL} lpd.perms ${hold}/lpd.perms.sample
|
|
${INSTALL} lpd.conf ${hold}/lpd.conf.sample
|
|
${INSTALL} printcap ${hold}/printcap.sample
|
|
${INSTALL} init.freebsd ${hold}/lprng.sh.sample
|
|
exit 0
|
|
fi
|
|
|
|
if [ "X$MAKEINSTALL" = XYES ] ; then
|
|
hold=${DESTDIR}${SYSCONFDIR}/lpd
|
|
echo "Setting up configuration files path for installation" ${hold}
|
|
# we have the port pre-install operation
|
|
if [ "$MANDIR" = "/usr/man" -a ! -d ${DESTDIR}/usr/man ] ; then
|
|
# we have the dreaded standard installation
|
|
# try to make a symbolic link to
|
|
echo "Creating symbolic link from /usr/man to /usr/share/man"
|
|
v=`ln -s ${DESTDIR}/usr/share/man ${DESTDIR}/usr/man`;
|
|
fi
|
|
if [ ! -d ${hold} ] ; then mkdir -p ${hold} ; fi;
|
|
${INSTALL} lpd.perms ${hold}/lpd.perms.sample
|
|
${INSTALL} lpd.conf ${hold}/lpd.conf.sample
|
|
${INSTALL} printcap ${hold}/printcap.sample
|
|
${INSTALL} init.freebsd ${hold}/lprng.sh.sample
|
|
|
|
fix ${hold}/lpd.perms "${DESTDIR}${LPD_PERMS_PATH}"
|
|
fix ${hold}/lpd.conf "${DESTDIR}${LPD_CONF_PATH}"
|
|
fix ${hold}/printcap "${DESTDIR}${PRINTCAP_PATH}"
|
|
if [ "$INIT" != no ] ; then
|
|
echo "Setting up init script $init using init.freebsd"
|
|
if [ ! -d `dirname $init` ] ; then mkdir -p `dirname $init ` ; fi;
|
|
rm -f $init
|
|
${INSTALL} -m 755 init.freebsd $init
|
|
#startserver;
|
|
fi
|
|
|
|
exit 0
|
|
fi
|
|
|
|
# run from a package
|
|
if [ "X$2" = "XPOST-INSTALL" ] ; then
|
|
# when doing an install from a package we get the file from the hold locations
|
|
hold=etc/lpd
|
|
echo "Installing configuration files from `pwd` - $hold - `ls $hold`"
|
|
if [ -f ${hold}/lpd.perms.sample ] ; then
|
|
fix ${hold}/lpd.perms "${LPD_PERMS_PATH}"
|
|
fix ${hold}/lpd.conf "${LPD_CONF_PATH}"
|
|
fix ${hold}/printcap "${PRINTCAP_PATH}"
|
|
echo "Setting up init script $init.sample using ${hold}/lprng.sh.sample"
|
|
${INSTALL} -c -m 755 ${hold}/lprng.sh.sample $init.sample;
|
|
if [ "$INIT" != no ] ; then
|
|
echo "Setting up init script $init using $init.sample"
|
|
${INSTALL} -c -m 755 $init.sample $init;
|
|
#startserver;
|
|
fi
|
|
else
|
|
echo "WARNING: configuration files missing from package! CWD " `pwd`
|
|
echo "Contents"
|
|
ls
|
|
echo "Hold $hold"
|
|
ls $hold
|
|
exit 1
|
|
fi
|
|
exit 0;
|
|
fi
|
|
if [ "X$2" = "XPRE-INSTALL" ] ; then
|
|
# we have the port pre-install operation
|
|
if [ "$MANDIR" = "/usr/man" -a ! -d /usr/man ] ; then
|
|
# we have the dreaded standard installation
|
|
# try to make a symbolic link to
|
|
echo "Creating symbolic link from /usr/man to /usr/share/man"
|
|
v=`ln -s /usr/share/man /usr/man`;
|
|
fi
|
|
exit 0
|
|
fi
|
|
exit 0
|