aboutsummarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD251
1 files changed, 178 insertions, 73 deletions
diff --git a/PKGBUILD b/PKGBUILD
index b500855d4613..2e9d88e7f04e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,85 +1,190 @@
-# Maintainer: David Raymond <raymond at kestrel dot nmt dot edu>
+# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com
+# Contributor: David Raymond <raymond at kestrel dot nmt dot edu>
# Contributor: Alex Suykov <axs at ukr dot net>
# Contributor: Frank Thieme <frank at fthieme dot net>
-pkgname=lprng
-pkgver=3.8.C
-pkgrel=10
-pkgdesc="An Enhanced Printer Spooler"
-arch=('i686' 'x86_64')
-url="http://www.lprng.com"
+
+_primarylpr=2 # see lprng-cups
+# 2 - lprng binaries, original package, does not coexist with cups
+
+_spooldir='/var/spool/lpd'
+_printcap='/etc/lprng/printcap'
+_service='lpd.service'
+
+set -u
+pkgname='lprng'
+pkgver='3.9.0'
+pkgrel='1'
+pkgdesc='an enhanced, extended, and portable implementation of the Berkeley LPR lpd print spooler'
+arch=('i686' 'x86_64' 'armv6h')
+#url="http://www.lprng.com"
+url='https://lprng.sourceforge.net'
license=('custom:Artistic')
-depends=(openssl bash)
+depends=('glibc' 'bash' 'file' 'grep' 'sed')
optdepends=(
- 'poppler: pdf to ps conversion in filters'
- 'enscript: text to ps conversion in filters'
- 'ghostscript: convert ps to device language'
- 'foomatic-filters-lprng: foomatic-rip'
- 'hplip: drivers for HP printers'
-
+ 'poppler: pdf to ps conversion in filters (gsfilter)' # formerly xpdf
+ 'ghostscript: convert ps to device language in filters (gsfilter)'
+ 'enscript: text to ps conversion in filters (gsfilter,psfilter)'
+ 'foomatic-filters-lprng: foomatic-rip in filters (foofilter)'
+ 'hplip: drivers for HP printers'
+ 'ifhp: filters for many printers'
)
-conflicts=(cups)
-source=(http://sourceforge.net/projects/lprng/files/lprng/lprng-3.8.C.tar.gz
- lpd.service
- gsfilter
- psfilter
- foofilter
- printcap_remote
- printcap_server
- README
- lpd.conf
- lpd.perms
- lprng.install)
-
-install=lprng.install
+ conflicts=('cups')
+backup=(
+ 'etc/lprng/lpd/lpd.conf'
+ 'etc/lprng/lpd/lpd.perms'
+ "${_printcap#/}"
+)
+options=('!strip')
+install="${pkgname%%-*}.install"
+_srcdir="lprng-${pkgver}"
+source=(
+ "http://sourceforge.net/projects/lprng/files/lprng/lprng-${pkgver}.tar.gz"
+ #'0000-lprng-help-website.patch' # Clean outdated info from help files
+ '0001-hardlink-to-symlink-binaries.patch'
+ '0002-openssl_1.1.patch' # https://sources.debian.org/data/main/l/lprng/3.8.B-7/debian/patches/openssl_1.1.patch
+ '0003-lpc-lpq-lprm-suffix.manual.patch'
+ 'lpd.service'
+ 'gsfilter'
+ 'psfilter'
+ 'foofilter'
+ 'printcap_remote'
+ 'printcap_server'
+ 'README'
+ 'lpd.conf'
+ 'lpd.perms'
+)
+md5sums=('10f4ec823df0e021404284037138aa8a'
+ '08fbfe9aac9aebdd88f71afc557b5e68'
+ 'c8f1ae4eefe6b82d9097f095ab1557c8'
+ '06db650ad6f5704e7a177bae23500977'
+ 'a59c448b0e37db80422175b7a1a2c304'
+ 'ce6f32b57a8e650f610523a6afaaf659'
+ 'd6c523f275bb63f68bf17d5ca02e4814'
+ '1fa86ca79140bed23d59a552ac2d39b2'
+ '496dfbb160f2a0308b7847541b03c8db'
+ '422ad79bda6ae9d2990fdef55240e569'
+ '1768d2f81d6d14c22686293ca60528c1'
+ '3ef9f91dc0de273da1f5f1b20d49cd17'
+ '3f861c75c2d68c0e45b4095ab39ba1c8')
+sha256sums=('c92597671f4c7cbe8bb3f38fbc4283354db84c6abff1efb675fa2e120421915d'
+ '96828bce13d6548a02e1d9849e713c950312b5c38c2282f2c5cfc5be454c6784'
+ '269d2fdd0bbef11aa933cd4d49c06a44ce227badeec2530f199b185c7bd7f4f7'
+ 'd071adace21df32507d69c908851dc94511f404ecea4095bcdbb7d8504d97241'
+ '3b546e8dd8f7ef3a1025d7d59ed8187fa21a9b9cf839a9bbda9821733da046e1'
+ 'c6a696dea62f7ffdade6a3071d201d076ee81e4aa14283dd4072578665e5eb7a'
+ 'f1a8a318f210cfc3814d234cb98a3de0c7a161c0e0c5671fe1c266ee03e351ec'
+ 'ce83b23dd188876b0b66de70f8b13d12036ba2ec1b837212bce6a172308904d4'
+ 'be383447b74cf9b86666adeaf35f844b394c222abbcda7f5cd7fc64f79373b82'
+ 'fc94245b58b23c9498a10c64aed20b6120595c6c3e1412bb419126ca78123a94'
+ 'a4c261f5754b380ff85c454249a152cb67baf9bbf10dc95cd16026f90bacb620'
+ 'faf52cf982eaa66a475344a5647a80a761d10402ccb9de263c70dc15ccc85c29'
+ '47b48ab7fa15ae9226463c98d6c8fce9ee9b602c3a9f96907fcd84e50902b2cc')
+
+prepare() {
+ set -u
+ cd "${_srcdir}"
+
+ local _f
+ for _f in "${source[@]}"; do
+ _f="${_f%%::*}"
+ _f="${_f##*/}"
+ if [[ "${_f}" = *.manual.patch ]]; then
+ if [ "${_primarylpr}" -eq 0 ]; then
+ set +u; msg2 "Patch ${_f}"; set -u
+ patch -Nup1 -i <(sed -E -e "s:@SUFFIX@:${_sfx}:g" "${srcdir}/${_f}")
+ fi
+ elif [[ "${_f}" = *.patch ]]; then
+ set +u; msg2 "Patch ${_f}"; set -u
+ patch -Nup1 -i "${srcdir}/${_f}"
+ fi
+ done
+ #cd ..; cp -pr "${_srcdir}" 'a'; ln -s "${_srcdir}" 'b'; cd "${_srcdir}"; false
+ #diff -pNaru5 'a' 'b' > '0000-new.patch'
+
+ sed -e 's:/var/spool/LPD:/var/spool/lpd:g' -i 'man/lpd.n'
+
+ # Clean up sbin
+ sed -e 's:/usr/local/sbin/:/usr/bin/:g' -i $(grep -lrFe '/usr/local/sbin/' .)
+ sed -e 's:/usr/sbin/:/usr/bin/:g' -i $(grep -lrFe '/usr/sbin/' .)
+ sed -e '/FILTER_PATH/ s@/usr/sbin:@@g' -i 'src/vars.c'
+
+ # Clean up /usr/local
+ sed -e 's:/usr/local/libexec/:/usr/lib/:g' -i $(grep -lrFe '/usr/local/libexec/' .)
+ sed -e 's:/usr/local/bin:/usr/bin:g' -i $(grep -lrFe '/usr/local/bin' .)
+ sed -e 's:/usr/local/:/usr/:g' -i 'src/pclbanner.in'
+
+ # Fix ifhp path in printcap
+ sed -e 's:/usr/libexec/filters/ifhp:/usr/lib/filters/ifhp:g' -i 'conf/printcap'
+
+ # Check filters
+ local _f
+ for _f in "${srcdir}"/*filter; do
+ bash -n "${_f}"
+ done
+ set +u
+}
build() {
- cd "$srcdir/lprng-$pkgver"
+ set -u
+ cd "${_srcdir}"
- ./configure --prefix=/usr --sysconfdir=/etc/lprng --localstatedir=/var\
- --mandir=/usr/share/man --libexecdir=/usr/lib/lprng\
- --with-userid=daemon --with-groupid=lp\
- --sbindir=/usr/bin
- make
+ if [ ! -s 'Makefile' ]; then
+ local _conf=(
+ -q
+ --libexecdir='/usr/lib/lprng'
+ --localstatedir='/var'
+ --mandir='/usr/share/man'
+ --sbindir='/usr/bin'
+ --sysconfdir="${_printcap%/*}"
+ --with-groupid='lp'
+ --with-spooldir="${_spooldir}"
+ --with-userid='daemon'
+ --prefix='/usr'
+ )
+ local _lf=''
+ local _cf=' -Wno-unused-result -s -fcommon'
+ _conf+=(--disable-ssl)
+ set -x
+ CFLAGS="${CFLAGS}${_cf}" \
+ LDFLAGS="${LDFLAGS}${_lf}" \
+ ./configure "${_conf[@]}"
+ set +x
+ fi
+ set -x
+ make -s
+ set +x
+ set +u
}
package() {
- cd "$srcdir/lprng-$pkgver"
-
- make MAKEPACKAGE=YES DESTDIR="$pkgdir/" install
-
- install -d "${pkgdir}/usr/lib/systemd/system/"
- install -d "${pkgdir}/usr/share/doc/lprng/"
- install -d "${pkgdir}/etc/lprng/lpd/"
- install -D -m 0644 "${srcdir}/lpd.service" \
- "${pkgdir}/usr/lib/systemd/system/"
- install -D -m 0644 COPYRIGHT \
- "${pkgdir}/usr/share/licenses/lprng/COPYRIGHT"
- install -D -m 0755 "${srcdir}/foofilter" \
- "${pkgdir}/usr/share/doc/lprng/"
- install -D -m 0755 "${srcdir}/gsfilter" \
- "${pkgdir}/usr/share/doc/lprng/"
- install -D -m 0755 "${srcdir}/psfilter" \
- "${pkgdir}/usr/share/doc/lprng/"
- install -D -m 0644 "${srcdir}/printcap_remote" \
- "${pkgdir}/usr/share/doc/lprng/"
- install -D -m 0644 "${srcdir}/printcap_server" \
- "${pkgdir}/usr/share/doc/lprng/"
- install -D -m 0644 "${srcdir}/README" \
- "${pkgdir}/usr/share/doc/lprng/"
- install -D -m 0644 "${srcdir}/lpd.conf" \
- "${pkgdir}/usr/share/doc/lprng/"
- install -D -m 0644 "${srcdir}/lpd.perms" \
- "${pkgdir}/usr/share/doc/lprng/"
-}
+ set -u
+ cd "${_srcdir}"
+ make -s -j1 MAKEPACKAGE='YES' DESTDIR="${pkgdir}" install
+ install -Dpm0644 'COPYRIGHT' -t "${pkgdir}/usr/share/licenses/${pkgname}/"
+ cat >> "${pkgdir}${_printcap}.sample" << EOF
+#
+# Printer names are case preserving and case insensitive.
+# Do not make two printers same letters different case.
+# If you do the last one will be used.
+#
+EOF
+ cd "${srcdir}"
-md5sums=('5901bed95e61d2bea3ba3056056af432'
- '990745083e4f627a714569dc20816b0a'
- 'ac43a39395da12fb039a25b71d57e6ea'
- '58a4bf1a740b67fea83f7f68336f20e7'
- '58afc1a1ec8d67a1aa2bdd64788d5213'
- '496dfbb160f2a0308b7847541b03c8db'
- '422ad79bda6ae9d2990fdef55240e569'
- '1768d2f81d6d14c22686293ca60528c1'
- '3ef9f91dc0de273da1f5f1b20d49cd17'
- '3f861c75c2d68c0e45b4095ab39ba1c8'
- '0f21b173ae0f16d225b4519e0f3238ff')
+ install -d "${pkgdir}${_spooldir}"
+ rm "${pkgdir}/usr/bin"/*certs "${pkgdir}/usr/share/man/man1"/*certs*
+ install -Dpm0644 'lpd.service' "${pkgdir}/usr/lib/systemd/system/${_service}"
+ install -Dpm0755 'foofilter' 'gsfilter' 'psfilter' -t "${pkgdir}/usr/share/doc/${pkgname}/"
+ install -Dpm0644 'printcap_remote' 'printcap_server' 'README' -t "${pkgdir}/usr/share/doc/${pkgname}/"
+ install -Dpm0644 'lpd.conf' 'lpd.perms' -t "${pkgdir}/etc/lprng/lpd/"
+ install -Dpm0644 /dev/null "${pkgdir}${_printcap}"
+
+ # Make documentation easy to find
+ ln -s "/usr/share/doc/${pkgname}" "${pkgdir}/etc/lprng/lpd/doc"
+
+ # Check for unwanted folders
+ ! grep -lrFe '/sbin' "${pkgdir}" || { echo "Line ${LINENO} Forbidden: /sbin"; false; }
+ ! grep -lrFe '/usr/local' "${pkgdir}" || { echo "Line ${LINENO} Forbidden: /usr/local"; false; }
+ ! grep -lrFe '/libexec/' "${pkgdir}" || { echo "Line ${LINENO} Forbidden: /libexec/"; false; }
+ set +u
+}
+set +u