PKGBUILD 7.76 KB
Newer Older
1
# maintainer abveritas@chakraproject.org
Jan Mette's avatar
Jan Mette committed
2

3
pkgbase="cups"
Jan Mette's avatar
Jan Mette committed
4
pkgname=('libcups' 'cups')
Samir's avatar
Samir committed
5
pkgver=1.6.3
6
pkgrel=4
7
arch=('x86_64')
Jan Mette's avatar
Jan Mette committed
8 9
license=('GPL')
url="http://www.cups.org/"
Samir's avatar
Samir committed
10 11
makedepends=('libtiff' 'libpng' 'acl' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc'
             'colord' 'xinetd' 'gzip' 'autoconf' 'libusb' 'dbus-core' 'avahi'  'hicolor-icon-theme' 'systemd')
12
source=(http://www.cups.org/software/${pkgver}/cups-${pkgver}-source.tar.gz
13
        cups.logrotate cups.pam
Samir's avatar
Samir committed
14 15 16
        # improve build and linking
        cups-no-export-ssllibs.patch
        cups-no-gcrypt.patch
17
        cups-no-gzip-man.patch
Samir's avatar
Samir committed
18 19
        # FC
        cups-systemd-socket.patch
20 21
        cups-dbus-utf8.patch
        cups-res_init.patch
Samir's avatar
Samir committed
22 23 24 25 26 27 28 29 30 31
        cups-avahi-address.patch
        cups-enum-all.patch
        # Gentoo
        cups-1.6.0-fix-install-perms.patch
        cups-1.6.2-statedir.patch
        # Debian
        cupsd-no-crash-on-avahi-threaded-poll-shutdown.patch
        get-ppd-file-for-statically-configured-ipp-shared-queues.patch
        ppd-poll-with-client-conf.patch)
md5sums=('3c50d396fef2ba721224fe65880fe3c3'
Jan Mette's avatar
Jan Mette committed
32
         'f861b18f4446c43918c8643dcbbd7f6d'
33
         '96f82c38f3f540b53f3e5144900acf17'
Samir's avatar
Samir committed
34 35
         '9b8467a1e51d360096b70e2c3c081e6c'
         'cc4101beccb5ed6deb1c92707a575925'
36
         '90c30380d4c8cd48a908cfdadae1ea24'
Samir's avatar
Samir committed
37
         'b4868b83f7f2d6ec24a1be76509379f0'
Manuel's avatar
Manuel committed
38 39
         'dd97f8282cbfbab11b2dbec681d29ccb'
         '8fe27d4248cacbc02824e7937cab4088'
Samir's avatar
Samir committed
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
         'df0c367c0022e3c7d8e01827e8a6c5e7'
         'f30c2a161caaf27854581507cde8cac6'
         '5117f65342fcc69c6a506529e4daca9e'
         '9247e218eea94ebda0aebc8ee0e77db8'
         'cb58bf4e0b80eaee383712e5c84a1ab4'
         'b578bcd17949a7203237ba1e31f78ef9'
         '0becd6ab8782b97f19a02c1dc174c75e')

prepare() {
  cd ${pkgbase}-${pkgver}
	
  # add systemd socket support - Fedora patch, also used in Gentoo
  # modified now to the changes done by Gentoo in their svn ebuild
  # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-print/cups/files/cups-1.5.0-systemd-socket.patch?revision=1.1
  patch -p1 -i ${srcdir}/cups-systemd-socket.patch
Jan Mette's avatar
Jan Mette committed
55

Samir's avatar
Samir committed
56 57 58 59
  # Do not export SSL libs in cups-config
  patch -p1 -i "${srcdir}/cups-no-export-ssllibs.patch"

  patch -p1 -i "${srcdir}/cups-no-gcrypt.patch"
60

Samir's avatar
Samir committed
61
  # don't zip man pages in make install, let makepkg do that / Fedora
62
  patch -p1 -i ${srcdir}/cups-no-gzip-man.patch
Samir's avatar
Samir committed
63 64 65 66 67


  # various bugfixes (upstream reports/SVN or Fedora/Debian

  # Ensure attributes are valid UTF-8 in dbus notifier
68
  patch -p1 -i ${srcdir}/cups-dbus-utf8.patch
69

Samir's avatar
Samir committed
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
  # Fixed crash which sometimes happens on shutdown of the CUPS daemon, caused by a wrong shutdown sequence for shutting down the Avahi threaded poll.
  patch -p1 -i ${srcdir}/cupsd-no-crash-on-avahi-threaded-poll-shutdown.patch
  # Applications could not get the PPD file for statically-configured IPP-shared print queues
  patch -p1 -i ${srcdir}/get-ppd-file-for-statically-configured-ipp-shared-queues.patch
  # If an external server is used via client.conf and the DNS is inconsistent (ex: DNS gives "noname" for many IPs, reverse DNS gives one of these IPs
  # for "noname") local PPDs can get polled for print queues instead of the PPDs of the external server Bug: http://www.cups.org/str.php?L2763
  patch -p1 -i ${srcdir}/ppd-poll-with-client-conf.patch
  # fix permissions on some files - alternative: cups-0755.patch by FC
  patch -Np0 -i ${srcdir}/cups-1.6.0-fix-install-perms.patch
  # move /var/run -> /run for pid file
  patch -p1 -i ${srcdir}/cups-1.6.2-statedir.patch
  # Re-initialise the resolver on failure in httpAddrGetList() 
  patch -p1 -i ${srcdir}/cups-res_init.patch
  # Use IP address when resolving DNSSD URIs
  patch -p1 -i ${srcdir}/cups-avahi-address.patch
  # Return from cupsEnumDests() once all records have been returned.
  patch -p1 -i ${srcdir}/cups-enum-all.patch
  
88
  # Rebuild configure script for not zipping man-pages.
Jan Mette's avatar
Jan Mette committed
89 90
  aclocal -I config-scripts
  autoconf -I config-scripts
Samir's avatar
Samir committed
91 92 93 94
}

build() {
  cd ${srcdir}/${pkgbase}-${pkgver}
amnon's avatar
amnon committed
95

96 97 98 99 100 101 102
  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
     --libdir=/usr/lib \
     --with-systemdsystemunitdir=/usr/lib/systemd/system \
     --with-logdir=/var/log/cups \
     --with-docdir=/usr/share/cups/doc \
     --with-cups-user=daemon \
     --with-cups-group=lp \
103
     --with-xinetd=no \
104 105
     --enable-pam=yes \
     --enable-raw-printing \
106 107
     --enable-webif \
     --enable-relro \
108 109 110
     --enable-dbus --with-dbusdir=/etc/dbus-1 \
     --enable-ssl=yes --enable-gnutls \
     --enable-threads \
111
     --enable-avahi\
112 113 114 115 116
     --with-php=/usr/bin/php-cgi \
     --with-optim="$CFLAGS"
  make
}

Jan Mette's avatar
Jan Mette committed
117
package_libcups() {
118
pkgdesc="The CUPS Printing System - client libraries and headers"
119
depends=('gnutls>=2.8.3' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi')
120
backup=(etc/cups/client.conf)
Jan Mette's avatar
Jan Mette committed
121

122
  cd ${srcdir}/${pkgbase}-${pkgver}
abveritas's avatar
abveritas committed
123
  make BUILDROOT=${pkgdir} install-headers install-libs
Jan Mette's avatar
Jan Mette committed
124
  # put this into the libs pkg to make other software find the libs(no pkg-config file included)
125 126 127 128 129 130 131 132 133 134 135
  mkdir -p ${pkgdir}/usr/bin 
  install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
  
  # install client.conf man page and config file
  install -dm755 ${pkgdir}/usr/share/man/man5
  install -Dm644  ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/
  install -dm755 ${pkgdir}/etc/cups
  touch ${pkgdir}/etc/cups/client.conf
  echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
  echo "ServerName /var/run/cups/cups.sock #  alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
  chgrp lp ${pkgdir}/etc/cups/client.conf
Jan Mette's avatar
Jan Mette committed
136 137 138
}

package_cups() {
139
pkgdesc="The CUPS Printing System - daemon package"
Jan Mette's avatar
Jan Mette committed
140 141 142
install=cups.install
backup=(etc/cups/cupsd.conf
        etc/cups/snmp.conf
Jan Mette's avatar
Jan Mette committed
143 144
        etc/cups/printers.conf
        etc/cups/classes.conf
145
        etc/cups/cups-files.conf
Jan Mette's avatar
Jan Mette committed
146
        etc/cups/subscriptions.conf
Jan Mette's avatar
Jan Mette committed
147 148
        etc/dbus-1/system.d/cups.conf
        etc/logrotate.d/cups
149 150
        etc/pam.d/cups)
depends=('acl' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'colord' 'libusb' 'dbus-core' 'systemd' 'hicolor-icon-theme')
151
optdepends=('xdg-utils: xdg .desktop file support')
Jan Mette's avatar
Jan Mette committed
152

153 154
  cd ${srcdir}/${pkgbase}-${pkgver}
  make BUILDROOT=${pkgdir} install-data install-exec
Jan Mette's avatar
Jan Mette committed
155 156

  # this one we ship in the libcups pkg
157
  rm -f ${pkgdir}/usr/bin/cups-config
Jan Mette's avatar
Jan Mette committed
158 159

  # kill the sysv stuff
160
  rm -rf ${pkgdir}/etc/rc*.d
161 162 163
  rm -rf ${pkgdir}/etc/init.d
  install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
  install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
Jan Mette's avatar
Jan Mette committed
164 165
  
  # fix perms on /var/spool and /etc
166 167
  chmod 755 ${pkgdir}/var/spool
  chmod 755 ${pkgdir}/etc
Jan Mette's avatar
Jan Mette committed
168

Jan Mette's avatar
Jan Mette committed
169
  # install ssl directory where to store the certs, solves some samba issues
170 171
  install -dm700 -g lp ${pkgdir}/etc/cups/ssl
  # remove directory from package, we create it in cups rc.d file
172
  rm -rf ${pkgdir}/var/run
Jan Mette's avatar
Jan Mette committed
173 174

  # install some more configuration files that will get filled by cupsd
175 176 177 178
  touch ${pkgdir}/etc/cups/printers.conf
  touch ${pkgdir}/etc/cups/classes.conf
  touch ${pkgdir}/etc/cups/subscriptions.conf 
  chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
Jan Mette's avatar
Jan Mette committed
179
  
Jan Mette's avatar
Jan Mette committed
180
  # fix .desktop file
181
  sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
Jan Mette's avatar
Jan Mette committed
182 183
  
  # compress some driver files, adopted from Fedora
184 185 186 187 188 189 190 191
  find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
  
  # remove client.conf man page
  rm -f ${pkgdir}/usr/share/man/man5/client.conf.5
  
  # remove files now part of cups-filters
  rm -v ${pkgdir}/usr/share/cups/banners/*
  rm -v ${pkgdir}/usr/share/cups/data/testprint
Samir's avatar
Samir committed
192
  # comment out all conversion rules which use any of the removed filters
193 194 195 196
  perl -p -i -e 's:^(.*\s+bannertops\s*)$:#\1:' /usr/share/cups/mime/mime.convs

  # Provide native service
  ln -s cups.service "$pkgdir/usr/lib/systemd/system/cupsd.service"
Jan Mette's avatar
Jan Mette committed
197
}