#!/bin/bash # lprng.SlackBuild # by Stuart Winter for the Slackware porting Project. # Heavily based on the original Slackware build script. # 03-Jun-2004 # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/a/lprng export PORTCWD=$PWD # Package meta-data: export PACKAGE=lprng export PKGSERIES=a export ARCH=${ARCH:=$PORTARCH} export VERSION=${VERSION:=3.8.27} export BUILD=${BUILD:=1} # Temporary build locations: export TMPBUILD=$TMP/build-$PACKAGE export PKG=$TMP/package-$PACKAGE mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD # Determine the CFLAGS for the known architectures: case $PORTARCH in armv3) ARCH_CFLAGS="-march=armv3 -mtune=xscale" ;; powerpc) ARCH_CFLAGS="" ;; sparc) ARCH_CFLAGS="" ;; *) ARCH_CFLAGS="" ;; esac # Untar source: tar xjvf $CWD/LPRng-$VERSION.tar.bz2 cd LPRng-$VERSION # House keeping: slackhousekeeping # Configure: CFLAGS="-O2 ${ARCH_CFLAGS}" \ CXXFLAGS="-O2 ${ARCH_CFLAGS}" \ ./configure \ --prefix=/usr \ --enable-nls \ --with-userid=lp \ --with-groupid=lp \ --enable-shared=yes \ --enable-static=no \ --with-lpd_conf_path=/etc/lpd.conf \ --with-lpd_perms_path=/etc/lpd.perms \ --sysconfdir=/etc || failconfig # Make && install into local package dir: make || failmake make install DESTDIR=$PKG || failinstall # Delete some junk: rm -f $PKG/etc/lpd rm -f $PKG/usr/man/man?/monitor* # Install docs: mkdir -p $PKG/usr/doc/LPRng-$VERSION cp -a ABOUT-NLS.LPRng CONTRIBUTORS COOKBOOK COPYRIGHT \ INSTALL LICENSE LINK MIRRORS README README.ports VERSION Y2KCompliance \ $PKG/usr/doc/LPRng-$VERSION printf "$( head -n1000 CHANGES )\n[..]\n" > $PKG/usr/doc/LPRng-$VERSION/CHANGES cp -a PrintingCookbook/HTML $PKG/usr/doc/LPRng-$VERSION/PrintingCookbook cp -a DOCS/*.jpg DOCS/LPRng-Reference.html $PKG/usr/doc/LPRng-$VERSION # Create spool dir: mkdir -pm700 $PKG/var/spool/lpd chown lp.lp $PKG/var/spool/lpd # Clean up after the buggy Makefile in po/: mv $PKG$PKG/usr/share/locale $PKG/usr/share rm -rf $PKG$PKG rm -rf $PKG/tmp cd $PKG # Fix up etc config stuff: ( cd etc rm -r rc.d rm *.sample mv lpd.conf lpd.conf.new mv lpd.perms lpd.perms.new ) gzip -9 usr/man/man?/* chmod 755 $PKG/usr/bin/* $PKG/usr/sbin/* $PKG/usr/libexec/filters/* mv $PKG/etc/printcap $PKG/etc/printcap-lprng-sample # Install init script: mkdir -p $PKG/etc/rc.d zcat $CWD/rc.lprng > $PKG/etc/rc.d/rc.lprng.new # By default, the spooler will not run: chmod 644 $PKG/etc/rc.d/rc.lprng.new # Use symlinks to certain binaries so that CUPS and LPRng can coexist: SUFFIX=lprng for file in \ usr/bin/cancel \ usr/bin/lp \ usr/bin/lpq \ usr/bin/lpr \ usr/bin/lprm \ usr/bin/lpstat \ usr/sbin/lpc ; do ( cd $PKG mv ${file} ${file}-${SUFFIX} ( cd `dirname ${file}` ; ln -sf `basename ${file}`-${SUFFIX} `basename ${file}` ) ) done # Now fix the associated man pages: mv $PKG/usr/man/man1/cancel.1.gz $PKG/usr/man/man1/cancel-${SUFFIX}.1.gz mv $PKG/usr/man/man1/lp.1.gz $PKG/usr/man/man1/lp-${SUFFIX}.1.gz mv $PKG/usr/man/man1/lpq.1.gz $PKG/usr/man/man1/lpq-${SUFFIX}.1.gz mv $PKG/usr/man/man1/lpr.1.gz $PKG/usr/man/man1/lpr-${SUFFIX}.1.gz mv $PKG/usr/man/man1/lprm.1.gz $PKG/usr/man/man1/lprm-${SUFFIX}.1.gz mv $PKG/usr/man/man1/lpstat.1.gz $PKG/usr/man/man1/lpstat-${SUFFIX}.1.gz mv $PKG/usr/man/man8/lpc.8.gz $PKG/usr/man/man8/lpc-${SUFFIX}.8.gz ( cd $PKG/usr/man/man1 ln -sf cancel-${SUFFIX}.1.gz cancel.1.gz ln -sf lp-${SUFFIX}.1.gz lp.1.gz ln -sf lpq-${SUFFIX}.1.gz lpq.1.gz ln -sf lpr-${SUFFIX}.1.gz lpr.1.gz ln -sf lprm-${SUFFIX}.1.gz lprm.1.gz ln -sf lpstat-${SUFFIX}.1.gz lpstat.1.gz ) ( cd $PKG/usr/man/man8 ln -sf lpc-${SUFFIX}.8.gz lpc.8.gz ) # Enter the package's root: cd $PKG # Slackware policies: slackstripall # strip all .a archives and all ELFs slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # set all files to root.root, chmod -R og-w, slackchown, slack644docs slackdesc # install slack-desc and doinst.sh # Build the package: if [ $PORTARCH = armv3 ]; then . $PORTCWD/arm/pkger else makepkg -l y -c n $PKGSTORE/$PKGSERIES/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz fi # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links