PKGBUILD 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # Maintainer (arch): Andreas Radke <andyrtr@archlinux.org>
  2. # Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
  3. # Contrbutor: bill-auger <bill-auger@programmer.net>
  4. # parabola changes and rationale:
  5. # - remove foomatic-db-nonfree recommendation
  6. # - pin to strongly-coupled dependency versions
  7. # - substitute 'systemd' dependency with 'udev' (your-init-freedom compat)
  8. pkgname=cups-filters
  9. pkgver=1.28.16
  10. pkgrel=3
  11. pkgrel+=.parabola1
  12. pkgdesc="OpenPrinting CUPS Filters"
  13. arch=('x86_64')
  14. arch+=('armv7h' 'i686')
  15. url="https://wiki.linuxfoundation.org/openprinting/cups-filters"
  16. license=('custom')
  17. depends=('lcms2' 'poppler' 'qpdf' 'ijs' 'libcups>=2.2.6-2' 'systemd' 'libexif')
  18. depends=( ${depends[@]/systemd/udev} ) # your-init-freedom compat
  19. makedepends=('ghostscript' 'python' 'mupdf-tools' 'liblouis')
  20. makedepends_i686=('pkgconf')
  21. checkdepends=('ttf-dejavu') # ttf-dejavu for make check
  22. optdepends=('ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
  23. 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
  24. 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
  25. 'imagemagick: for Braille embosser support'
  26. 'liblouis: for Braille embosser support'
  27. 'antiword: to convert MS Word documents for Braille embosser support'
  28. 'docx2txt: to convert Microsoft OOXML text from DOCX files for Braille embosser support')
  29. backup=(etc/cups/cups-browsed.conf)
  30. source=(https://www.openprinting.org/download/cups-filters/$pkgname-$pkgver.tar.xz)
  31. sha256sums=('3a400bfa751da2020775cd7d48d1647448551ff051f9345abc1df6357b199ac0')
  32. _SHOULD_SKIP_CHECK=0 # check() requires networking
  33. (( _SHOULD_SKIP_CHECK )) && checkdepends=( ${checkdepends[*]/ttf-dejavu/} ) || :
  34. _version_constraint() # (dep_pkgname [precision])
  35. {
  36. local dep_pkgname=$1
  37. local req_precision=$2
  38. local full_version=$(pacman -S --print-format='%v' ${dep_pkgname} | tail -n 1)
  39. local n_dots=$(tmp=${full_version%-*} ; tmp=${tmp//[^\.]} ; echo "${#tmp}" ;)
  40. local def_precision=$(( n_dots + 1 ))
  41. local is_reqprecision_valid=$( [[ "${req_precision}" =~ ^[1-${def_precision}]$ ]] && echo 1 || echo 0 )
  42. local precision=$( (( is_reqprecision_valid )) && echo ${req_precision} || echo ${def_precision} )
  43. local pkgver_rx='[^-\.\ ]+'
  44. local subver_rx='\.'${pkgver_rx}
  45. local pkgrel_rx='[^-\ ]+'
  46. local capture_rx=${pkgver_rx}
  47. for (( n_dots=1 ; n_dots < precision ; ++n_dots )) ; do capture_rx+=${subver_rx} ; done ;
  48. if [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx})$ ]]
  49. then local version=${BASH_REMATCH[1]}
  50. local pkgrel=${BASH_REMATCH[3]%%.*}
  51. local subver_inc=$(( ${version##*.} + 1 )) # right-trims from any non-numeric
  52. local pkgrel_inc=$(( pkgrel + 1 ))
  53. local version_min=$( (( ! is_reqprecision_valid )) && echo ${full_version%-*}-${pkgrel} || \
  54. echo ${version} )
  55. local version_max=$( ( (( ! is_reqprecision_valid )) && echo ${full_version%-*}-${pkgrel_inc} ) || \
  56. ( [[ "${version}" =~ \. ]] && echo ${version%.*}.${subver_inc} ) || \
  57. echo ${subver_inc} )
  58. local constraint_string="${dep_pkgname}>=${version_min} ${dep_pkgname}<${version_max}"
  59. echo "applied version constraint: '${constraint_string}'" >&2
  60. else echo "ERROR: _version_constraint() error parsing: dep_pkgname='${dep_pkgname}' full_version='${full_version}'" >&2
  61. exit 1
  62. fi
  63. echo -n "${constraint_string}"
  64. }
  65. build() {
  66. cd "$pkgname"-$pkgver
  67. ./configure --prefix=/usr \
  68. --sysconfdir=/etc \
  69. --sbindir=/usr/bin \
  70. --localstatedir=/var \
  71. --with-rcdir=no \
  72. --enable-avahi \
  73. --with-browseremoteprotocols=DNSSD,CUPS \
  74. --with-test-font-path=/usr/share/fonts/TTF/DejaVuSans.ttf
  75. sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
  76. make
  77. }
  78. check() {
  79. (( _SHOULD_SKIP_CHECK )) && return || :
  80. cd "$pkgname"-$pkgver
  81. make check
  82. }
  83. package() {
  84. # pin to strongly-coupled dependency versions
  85. depends=( ${depends[*]/qpdf/} $(_version_constraint qpdf 1) )
  86. depends+=( libpoppler.so libpoppler-cpp.so )
  87. cd "$pkgname"-$pkgver
  88. make DESTDIR="$pkgdir/" install
  89. # add upstream systemd support file
  90. install -Dm644 utils/cups-browsed.service "${pkgdir}"/usr/lib/systemd/system/cups-browsed.service
  91. sed -i "s|/usr/sbin/cups-browsed|/usr/bin/cups-browsed|" "${pkgdir}"/usr/lib/systemd/system/cups-browsed.service
  92. #sed -i "s|cups.service|org.cups.cupsd.service|g" "${pkgdir}"/usr/lib/systemd/system/cups-browsed.service
  93. # use cups group from cups pkg FS#56818
  94. chgrp -R 209 "${pkgdir}"/etc/cups
  95. # license
  96. mkdir -p "${pkgdir}"/usr/share/licenses/${pkgname}
  97. install -m644 "${srcdir}"/${pkgname}-${pkgver}/COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/
  98. }