diff options
Diffstat (limited to 'abs')
22 files changed, 1794 insertions, 45 deletions
diff --git a/abs/core-testing/cups/PKGBUILD b/abs/core-testing/cups/PKGBUILD new file mode 100644 index 0000000..5d59113 --- /dev/null +++ b/abs/core-testing/cups/PKGBUILD @@ -0,0 +1,113 @@ +# $Id: PKGBUILD 87481 2010-08-14 10:36:21Z andyrtr $ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> + +pkgbase="cups" +pkgname=('libcups' 'cups') +pkgver=1.4.4 +pkgrel=3 +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.cups.org/" +makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'heimdal>=1.3.1' 'gnutls>=2.8.3' 'poppler>=0.12.3' + 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme') +source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2 + cups-avahi.patch + http://www.cups.org/strfiles/3595/str3595.patch + cups cups.logrotate cups.pam) +#options=('!emptydirs') +md5sums=('8776403ad60fea9e85eab9c04d88560d' + 'fce500e3e6e244f5b77fe8eaad87e022' + '0dd7329fc956d63a72085553171d62a2' + '5c85b7d8d2ddd02c2c64955cebbf55ea' + 'f861b18f4446c43918c8643dcbbd7f6d' + '96f82c38f3f540b53f3e5144900acf17') + +build() { + cd ${srcdir}/${pkgbase}-${pkgver} + # Avahi support in the dnssd backend. patch from Fedora + patch -Np1 -i ${srcdir}/cups-avahi.patch || return 1 + + # fix Brother HL-1440 failing with msg "Unable to write 8192 bytes to printer!" (http://bugs.archlinux.org/task/18167) + patch -Np0 -i ${srcdir}/str3595.patch || return 1 + + # Rebuild configure script for --enable-avahi. + aclocal -I config-scripts + autoconf -I config-scripts + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --with-logdir=/var/log/cups -with-docdir=/usr/share/cups/doc \ + --with-cups-user=daemon --with-cups-group=lp --enable-pam=yes \ + --disable-ldap --libdir=/usr/lib --enable-raw-printing \ + --enable-dbus --with-dbusdir=/etc/dbus-1 --enable-ssl=yes --enable-gnutls --disable-threads --enable-avahi\ + --with-php=/usr/bin/php-cgi --with-pdftops=pdftops --with-optim="$CFLAGS" + make || return 1 +} + +package_libcups() { +pkgdesc="The CUPS Printing System - client libraries and headers" +depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'heimdal>=1.3.1' 'avahi') + + cd ${srcdir}/${pkgbase}-${pkgver} + make BUILDROOT=${pkgdir} install-headers install-libs || return 1 + # put this into the libs pkg to make other software find the libs(no pkg-config file included) + mkdir -p ${pkgdir}/usr/bin + install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config +} + +package_cups() { +pkgdesc="The CUPS Printing System - deamon package" +install=cups.install +backup=(etc/cups/cupsd.conf + etc/cups/mime.convs + etc/cups/mime.types + etc/cups/snmp.conf + etc/cups/printers.conf + etc/cups/classes.conf + etc/cups/client.conf + etc/cups/subscriptions.conf + etc/dbus-1/system.d/cups.conf + etc/logrotate.d/cups + etc/pam.d/cups + etc/xinetd.d/cups-lpd) +depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'xdg-utils' 'poppler>=0.12.3' 'libusb' 'dbus-core' 'hicolor-icon-theme') +optdepends=('php: for included phpcups.so module') + + cd ${srcdir}/${pkgbase}-${pkgver} + make BUILDROOT=${pkgdir} install-data install-exec || return 1 + + # this one we ship in the libcups pkg + rm -f ${pkgdir}/usr/bin/cups-config + + # kill the sysv stuff + rm -rf ${pkgdir}/etc/rc*.d + rm -rf ${pkgdir}/etc/init.d + install -D -m755 ../cups ${pkgdir}/etc/rc.d/cups + install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups + install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups + + # fix perms on /var/spool and /etc + chmod 755 ${pkgdir}/var/spool + chmod 755 ${pkgdir}/etc + + # serial backend needs to run as root (http://bugs.archlinux.org/task/20396) + chmod 700 ${pkgdir}/usr/lib/cups/backend/serial + + # install ssl directory where to store the certs, solves some samba issues + install -dm700 -g lp ${pkgdir}/etc/cups/ssl + install -dm511 -g lp ${pkgdir}/var/run/cups/certs + + # install some more configuration files that will get filled by cupsd + touch ${pkgdir}/etc/cups/printers.conf + touch ${pkgdir}/etc/cups/classes.conf + 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 + touch ${pkgdir}/etc/cups/subscriptions.conf + chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,client.conf,subscriptions.conf} + + # fix .desktop file + sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop + + # compress some driver files, adopted from Fedora + find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f +} diff --git a/abs/core-testing/cups/cups b/abs/core-testing/cups/cups new file mode 100755 index 0000000..4afaf5a --- /dev/null +++ b/abs/core-testing/cups/cups @@ -0,0 +1,38 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/cupsd` +case "$1" in + start) + stat_busy "Starting CUPS Daemon" + [ -z "$PID" ] && /usr/sbin/cupsd + if [ $? -gt 0 ]; then + stat_fail + else + echo $(pidof -o %PPID -x /usr/sbin/cupsd) > /var/run/cups.pid + add_daemon cups + stat_done + fi + ;; + stop) + stat_busy "Stopping CUPS Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm /var/run/cups.pid + rm_daemon cups + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core-testing/cups/cups-avahi.patch b/abs/core-testing/cups/cups-avahi.patch new file mode 100644 index 0000000..9783cd4 --- /dev/null +++ b/abs/core-testing/cups/cups-avahi.patch @@ -0,0 +1,1088 @@ +diff -up cups-1.4.0/backend/dnssd.c.avahi cups-1.4.0/backend/dnssd.c +--- cups-1.4.0/backend/dnssd.c.avahi 2009-08-07 23:27:12.000000000 +0100 ++++ cups-1.4.0/backend/dnssd.c 2009-09-04 14:57:04.730388833 +0100 +@@ -22,6 +22,7 @@ + * exec_backend() - Execute the backend that corresponds to the + * resolved service name. + * get_device() - Create or update a device. ++* find_device() + * query_callback() - Process query data. + * sigterm_handler() - Handle termination signals... + * unquote() - Unquote a name string. +@@ -33,7 +34,18 @@ + + #include "backend-private.h" + #include <cups/array.h> +-#include <dns_sd.h> ++#ifdef HAVE_DNSSD ++# include <dns_sd.h> ++#endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++# include <avahi-client/client.h> ++# include <avahi-client/lookup.h> ++# include <avahi-common/simple-watch.h> ++# include <avahi-common/domain.h> ++# include <avahi-common/error.h> ++# include <avahi-common/malloc.h> ++#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX ++#endif /* HAVE_AVAHI */ + + + /* +@@ -52,7 +64,12 @@ typedef enum + + typedef struct + { ++#ifdef HAVE_DNSSD + DNSServiceRef ref; /* Service reference for resolve */ ++#endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++ int resolved; /* Did we resolve the device? */ ++#endif /* HAVE_AVAHI */ + char *name, /* Service name */ + *domain, /* Domain name */ + *fullName, /* Full name */ +@@ -64,6 +81,20 @@ typedef struct + sent; /* Did we list the device? */ + } cups_device_t; + ++typedef struct ++{ ++ char key[256]; ++ char value[256]; ++ ++#ifdef HAVE_DNSSD ++ const uint8_t *data; ++ const uint8_t *datanext; ++ const uint8_t *dataend; ++#else /* HAVE_AVAHI */ ++ AvahiStringList *txt; ++#endif /* HAVE_DNSSD */ ++} cups_txt_records_t; ++ + + /* + * Local globals... +@@ -77,6 +108,7 @@ static int job_canceled = 0; + * Local functions... + */ + ++#ifdef HAVE_DNSSD + static void browse_callback(DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, +@@ -92,12 +124,6 @@ static void browse_local_callback(DNSSe + const char *regtype, + const char *replyDomain, + void *context); +-static int compare_devices(cups_device_t *a, cups_device_t *b); +-static void exec_backend(char **argv); +-static cups_device_t *get_device(cups_array_t *devices, +- const char *serviceName, +- const char *regtype, +- const char *replyDomain); + static void query_callback(DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, +@@ -106,9 +132,111 @@ static void query_callback(DNSServiceRe + uint16_t rrclass, uint16_t rdlen, + const void *rdata, uint32_t ttl, + void *context); ++#endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++static void avahi_client_callback (AvahiClient *client, ++ AvahiClientState state, ++ void *context); ++static void avahi_browse_callback (AvahiServiceBrowser *browser, ++ AvahiIfIndex interface, ++ AvahiProtocol protocol, ++ AvahiBrowserEvent event, ++ const char *serviceName, ++ const char *regtype, ++ const char *replyDomain, ++ AvahiLookupResultFlags flags, ++ void *context); ++#endif /* HAVE_AVAHI */ ++ ++static cups_device_t * find_device (cups_array_t *devices, ++ cups_txt_records_t *txt, ++ cups_device_t *dkey); ++static int compare_devices(cups_device_t *a, cups_device_t *b); ++static void exec_backend(char **argv); ++static cups_device_t *get_device(cups_array_t *devices, ++ const char *serviceName, ++ const char *regtype, ++ const char *replyDomain); + static void sigterm_handler(int sig); + static void unquote(char *dst, const char *src, size_t dstsize); + ++#ifdef HAVE_AVAHI ++static AvahiSimplePoll *simple_poll = NULL; ++static int avahi_got_callback; ++#endif /* HAVE_AVAHI */ ++ ++ ++/* ++ * cups_txt_records_t access functions ++ */ ++static cups_txt_records_t * ++next_txt_record (cups_txt_records_t *txt) ++{ ++#ifdef HAVE_DNSSD ++ txt->data = txt->datanext; ++#else /* HAVE_AVAHI */ ++ txt->txt = avahi_string_list_get_next (txt->txt); ++ if (txt->txt == NULL) ++ return NULL; ++#endif /* HAVE_DNSSD */ ++ ++ return txt; ++} ++ ++static int ++parse_txt_record_pair (cups_txt_records_t *txt) ++{ ++#ifdef HAVE_DNSSD ++ uint8_t datalen; ++ uint8_t *data = txt->data; ++ char *ptr; ++ ++ /* ++ * Read a key/value pair starting with an 8-bit length. Since the ++ * length is 8 bits and the size of the key/value buffers is 256, we ++ * don't need to check for overflow... ++ */ ++ ++ datalen = *data++; ++ if (!datalen || (data + datalen) >= txt->dataend) ++ return NULL; ++ txt->datanext = data + datalen; ++ ++ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++) ++ *ptr++ = *data; ++ *ptr = '\0'; ++ ++ if (data < txt->datanext && *data == '=') ++ { ++ data++; ++ ++ if (data < datanext) ++ memcpy (txt->value, data, txt->datanext - data); ++ value[txt->datanext - data] = '\0'; ++ } ++ else ++ return 1; ++#else /* HAVE_AVAHI */ ++ char *key, *value; ++ size_t len; ++ avahi_string_list_get_pair (txt->txt, &key, &value, &len); ++ if (len > sizeof (txt->value) - 1) ++ len = sizeof (txt->value) - 1; ++ ++ memcpy (txt->value, value, len); ++ txt->value[len] = '\0'; ++ len = strlen (key); ++ if (len > sizeof (txt->key) - 1) ++ len = sizeof (txt->key) - 1; ++ ++ memcpy (txt->key, key, len); ++ txt->key[len] = '\0'; ++ avahi_free (key); ++ avahi_free (value); ++#endif /* HAVE_AVAHI */ ++ ++ return 0; ++} + + /* + * 'main()' - Browse for printers. +@@ -119,6 +247,13 @@ main(int argc, /* I - Number of comm + char *argv[]) /* I - Command-line arguments */ + { + const char *name; /* Backend name */ ++ cups_array_t *devices; /* Device array */ ++ cups_device_t *device; /* Current device */ ++ char uriName[1024]; /* Unquoted fullName for URI */ ++#ifdef HAVE_DNSSD ++ int fd; /* Main file descriptor */ ++ fd_set input; /* Input set for select() */ ++ struct timeval timeout; /* Timeout for select() */ + DNSServiceRef main_ref, /* Main service reference */ + fax_ipp_ref, /* IPP fax service reference */ + ipp_ref, /* IPP service reference */ +@@ -130,12 +265,11 @@ main(int argc, /* I - Number of comm + pdl_datastream_ref, /* AppSocket service reference */ + printer_ref, /* LPD service reference */ + riousbprint_ref; /* Remote IO service reference */ +- int fd; /* Main file descriptor */ +- fd_set input; /* Input set for select() */ +- struct timeval timeout; /* Timeout for select() */ +- cups_array_t *devices; /* Device array */ +- cups_device_t *device; /* Current device */ +- char uriName[1024]; /* Unquoted fullName for URI */ ++#endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++ AvahiClient *client; ++ int error; ++#endif /* HAVE_AVAHI */ + #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET) + struct sigaction action; /* Actions for POSIX signals */ + #endif /* HAVE_SIGACTION && !HAVE_SIGSET */ +@@ -194,6 +328,49 @@ main(int argc, /* I - Number of comm + * Browse for different kinds of printers... + */ + ++#ifdef HAVE_AVAHI ++ if ((simple_poll = avahi_simple_poll_new ()) == NULL) ++ { ++ perror ("ERROR: Unable to create avahi simple poll object"); ++ return (1); ++ } ++ ++ client = avahi_client_new (avahi_simple_poll_get (simple_poll), ++ 0, avahi_client_callback, NULL, &error); ++ if (!client) ++ { ++ perror ("ERROR: Unable to create avahi client"); ++ return (1); ++ } ++ ++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC, ++ AVAHI_PROTO_UNSPEC, ++ "_fax-ipp._tcp", NULL, 0, ++ avahi_browse_callback, devices); ++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC, ++ AVAHI_PROTO_UNSPEC, ++ "_ipp._tcp", NULL, 0, ++ avahi_browse_callback, devices); ++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC, ++ AVAHI_PROTO_UNSPEC, ++ "_ipp-tls._tcp", NULL, 0, ++ avahi_browse_callback, devices); ++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC, ++ AVAHI_PROTO_UNSPEC, ++ "_pdl-datastream._tcp", ++ NULL, 0, ++ avahi_browse_callback, ++ devices); ++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC, ++ AVAHI_PROTO_UNSPEC, ++ "_printer._tcp", NULL, 0, ++ avahi_browse_callback, devices); ++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC, ++ AVAHI_PROTO_UNSPEC, ++ "_riousbprint._tcp", NULL, 0, ++ avahi_browse_callback, devices); ++#endif /* HAVE_AVAHI */ ++#ifdef HAVE_DNSSD + if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError) + { + perror("ERROR: Unable to create service connection"); +@@ -245,6 +422,7 @@ main(int argc, /* I - Number of comm + riousbprint_ref = main_ref; + DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0, + "_riousbprint._tcp", NULL, browse_callback, devices); ++#endif /* HAVE_DNSSD */ + + /* + * Loop until we are killed... +@@ -252,6 +430,9 @@ main(int argc, /* I - Number of comm + + while (!job_canceled) + { ++ int announce = 0; ++ ++#ifdef HAVE_DNSSD + FD_ZERO(&input); + FD_SET(fd, &input); + +@@ -271,11 +452,35 @@ main(int argc, /* I - Number of comm + } + else + { ++ announce = 1; ++ } ++#else /* HAVE_AVAHI */ ++ int r; ++ avahi_got_callback = 0; ++ r = avahi_simple_poll_iterate (simple_poll, 1); ++ if (r != 0 && r != EINTR) ++ { ++ /* ++ * We've been told to exit the loop. Perhaps the connection to ++ * avahi failed. ++ */ ++ ++ break; ++ } ++ ++ if (avahi_got_callback) ++ announce = 1; ++#endif /* HAVE_DNSSD */ ++ ++ if (announce) ++ { + /* + * Announce any devices we've found... + */ + ++#ifdef HAVE_DNSSD + DNSServiceErrorType status; /* DNS query status */ ++#endif /* HAVE_DNSSD */ + cups_device_t *best; /* Best matching device */ + char device_uri[1024]; /* Device URI */ + int count; /* Number of queries */ +@@ -285,6 +490,7 @@ main(int argc, /* I - Number of comm + best = NULL, count = 0; + device; + device = (cups_device_t *)cupsArrayNext(devices)) ++#ifdef HAVE_DNSSD + if (!device->ref && !device->sent) + { + /* +@@ -313,14 +519,23 @@ main(int argc, /* I - Number of comm + count ++; + } + } +- else if (!device->sent) ++ else ++#endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++ if (!device->resolved) ++ continue; ++ else ++#endif /* HAVE_AVAHI */ ++ if (!device->sent) + { ++#ifdef HAVE_DNSSD + /* + * Got the TXT records, now report the device... + */ + + DNSServiceRefDeallocate(device->ref); + device->ref = 0; ++#endif /* HAVE_DNSSD */ + + if (!best) + best = device; +@@ -372,6 +587,7 @@ main(int argc, /* I - Number of comm + * 'browse_callback()' - Browse devices. + */ + ++#ifdef HAVE_DNSSD + static void + browse_callback( + DNSServiceRef sdRef, /* I - Service reference */ +@@ -405,12 +621,14 @@ browse_callback( + + get_device((cups_array_t *)context, serviceName, regtype, replyDomain); + } ++#endif /* HAVE_DNSSD */ + + + /* + * 'browse_local_callback()' - Browse local devices. + */ + ++#ifdef HAVE_DNSSD + static void + browse_local_callback( + DNSServiceRef sdRef, /* I - Service reference */ +@@ -456,6 +674,7 @@ browse_local_callback( + device->fullName); + device->sent = 1; + } ++#endif /* HAVE_DNSSD */ + + + /* +@@ -528,6 +747,32 @@ exec_backend(char **argv) /* I - Comman + exit(CUPS_BACKEND_STOP); + } + ++static int ++device_type (const char *regtype) ++{ ++#ifdef HAVE_AVAHI ++ if (!strcmp(regtype, "_ipp._tcp") || ++ !strcmp(regtype, "_ipp-tls._tcp")) ++ return (CUPS_DEVICE_IPP); ++ else if (!strcmp(regtype, "_fax-ipp._tcp")) ++ return (CUPS_DEVICE_FAX_IPP); ++ else if (!strcmp(regtype, "_printer._tcp")) ++ return (CUPS_DEVICE_PDL_DATASTREAM); ++#else ++ if (!strcmp(regtype, "_ipp._tcp.") || ++ !strcmp(regtype, "_ipp-tls._tcp.")) ++ return (CUPS_DEVICE_IPP); ++ else if (!strcmp(regtype, "_fax-ipp._tcp.")) ++ return (CUPS_DEVICE_FAX_IPP); ++ else if (!strcmp(regtype, "_printer._tcp.")) ++ return (CUPS_DEVICE_PRINTER); ++ else if (!strcmp(regtype, "_pdl-datastream._tcp.")) ++ return (CUPS_DEVICE_PDL_DATASTREAM); ++#endif /* HAVE_AVAHI */ ++ ++ return (CUPS_DEVICE_RIOUSBPRINT); ++} ++ + + /* + * 'get_device()' - Create or update a device. +@@ -550,18 +795,7 @@ get_device(cups_array_t *devices, /* I - + */ + + key.name = (char *)serviceName; +- +- if (!strcmp(regtype, "_ipp._tcp.") || +- !strcmp(regtype, "_ipp-tls._tcp.")) +- key.type = CUPS_DEVICE_IPP; +- else if (!strcmp(regtype, "_fax-ipp._tcp.")) +- key.type = CUPS_DEVICE_FAX_IPP; +- else if (!strcmp(regtype, "_printer._tcp.")) +- key.type = CUPS_DEVICE_PRINTER; +- else if (!strcmp(regtype, "_pdl-datastream._tcp.")) +- key.type = CUPS_DEVICE_PDL_DATASTREAM; +- else +- key.type = CUPS_DEVICE_RIOUSBPRINT; ++ key.type = device_type (regtype); + + for (device = cupsArrayFind(devices, &key); + device; +@@ -581,8 +815,14 @@ get_device(cups_array_t *devices, /* I - + free(device->domain); + device->domain = strdup(replyDomain); + ++#ifdef HAVE_DNSSD + DNSServiceConstructFullName(fullName, device->name, regtype, + replyDomain); ++#else /* HAVE_AVAHI */ ++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName, ++ serviceName, regtype, replyDomain); ++#endif /* HAVE_DNSSD */ ++ + free(device->fullName); + device->fullName = strdup(fullName); + } +@@ -602,6 +842,9 @@ get_device(cups_array_t *devices, /* I - + device->domain = strdup(replyDomain); + device->type = key.type; + device->priority = 50; ++#ifdef HAVE_AVAHI ++ device->resolved = 0; ++#endif /* HAVE_AVAHI */ + + cupsArrayAdd(devices, device); + +@@ -609,7 +852,13 @@ get_device(cups_array_t *devices, /* I - + * Set the "full name" of this service, which is used for queries... + */ + ++#ifdef HAVE_DNSSD + DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain); ++#else /* HAVE_AVAHI */ ++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName, ++ serviceName, regtype, replyDomain); ++#endif /* HAVE_DNSSD */ ++ + device->fullName = strdup(fullName); + + return (device); +@@ -620,6 +869,7 @@ get_device(cups_array_t *devices, /* I - + * 'query_callback()' - Process query data. + */ + ++#ifdef HAVE_DNSSD + static void + query_callback( + DNSServiceRef sdRef, /* I - Service reference */ +@@ -639,7 +889,7 @@ query_callback( + *ptr; /* Pointer into string */ + cups_device_t dkey, /* Search key */ + *device; /* Device */ +- ++ cups_txt_records_t txt; + + fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, " + "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", " +@@ -673,84 +923,212 @@ query_callback( + if ((ptr = strstr(name, "._")) != NULL) + *ptr = '\0'; + +- if (strstr(fullName, "_ipp._tcp.") || +- strstr(fullName, "_ipp-tls._tcp.")) +- dkey.type = CUPS_DEVICE_IPP; +- else if (strstr(fullName, "_fax-ipp._tcp.")) +- dkey.type = CUPS_DEVICE_FAX_IPP; +- else if (strstr(fullName, "_printer._tcp.")) +- dkey.type = CUPS_DEVICE_PRINTER; +- else if (strstr(fullName, "_pdl-datastream._tcp.")) +- dkey.type = CUPS_DEVICE_PDL_DATASTREAM; ++ dkey.type = device_type (fullName); ++ ++ txt.data = rdata; ++ txt.dataend = rdata + rdlen; ++ device = find_device ((cups_array_t *) context, &txt, &dkey); ++ if (!device) ++ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName); ++} ++#endif /* HAVE_DNSSD */ ++ ++#ifdef HAVE_AVAHI ++static void ++avahi_client_callback(AvahiClient *client, ++ AvahiClientState state, ++ void *context) ++{ ++ /* ++ * If the connection drops, quit. ++ */ ++ ++ if (state == AVAHI_CLIENT_FAILURE) ++ { ++ fprintf (stderr, "ERROR: Avahi connection failed\n"); ++ avahi_simple_poll_quit (simple_poll); ++ } ++} ++ ++static void ++avahi_query_callback(AvahiServiceResolver *resolver, ++ AvahiIfIndex interface, ++ AvahiProtocol protocol, ++ AvahiResolverEvent event, ++ const char *name, ++ const char *type, ++ const char *domain, ++ const char *host_name, ++ const AvahiAddress *address, ++ uint16_t port, ++ AvahiStringList *txt, ++ AvahiLookupResultFlags flags, ++ void *context) ++{ ++ AvahiClient *client; ++ cups_device_t key, ++ *device; ++ char uqname[1024], ++ *ptr; ++ cups_txt_records_t txtr; ++ ++ client = avahi_service_resolver_get_client (resolver); ++ if (event != AVAHI_RESOLVER_FOUND) ++ { ++ if (event == AVAHI_RESOLVER_FAILURE) ++ { ++ fprintf (stderr, "ERROR: %s\n", ++ avahi_strerror (avahi_client_errno (client))); ++ } ++ ++ avahi_service_resolver_free (resolver); ++ return; ++ } ++ ++ /* ++ * Set search key for device. ++ */ ++ ++ key.name = uqname; ++ unquote (uqname, name, sizeof (uqname)); ++ if ((ptr = strstr(name, "._")) != NULL) ++ *ptr = '\0'; ++ ++ key.domain = (char *) domain; ++ key.type = device_type (type); ++ ++ /* ++ * Find the device and the the TXT information. ++ */ ++ ++ txtr.txt = txt; ++ device = find_device ((cups_array_t *) context, &txtr, &key); ++ if (device) ++ { ++ /* ++ * Let the main loop know to announce the device. ++ */ ++ ++ device->resolved = 1; ++ avahi_got_callback = 1; ++ } + else +- dkey.type = CUPS_DEVICE_RIOUSBPRINT; ++ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name); ++ ++ avahi_service_resolver_free (resolver); ++} ++ ++static void ++avahi_browse_callback(AvahiServiceBrowser *browser, ++ AvahiIfIndex interface, ++ AvahiProtocol protocol, ++ AvahiBrowserEvent event, ++ const char *name, ++ const char *type, ++ const char *domain, ++ AvahiLookupResultFlags flags, ++ void *context) ++{ ++ AvahiClient *client = avahi_service_browser_get_client (browser); ++ ++ switch (event) ++ { ++ case AVAHI_BROWSER_FAILURE: ++ fprintf (stderr, "ERROR: %s\n", ++ avahi_strerror (avahi_client_errno (client))); ++ avahi_simple_poll_quit (simple_poll); ++ return; ++ ++ case AVAHI_BROWSER_NEW: ++ /* ++ * This object is new on the network. ++ */ ++ ++ if (flags & AVAHI_LOOKUP_RESULT_LOCAL) ++ { ++ /* ++ * This comes from the local machine so ignore it. ++ */ ++ ++ fprintf (stderr, "DEBUG: ignoring local service %s\n", name); ++ } ++ else ++ { ++ /* ++ * Create a device entry for it if it doesn't yet exist. ++ */ ++ ++ get_device ((cups_array_t *)context, name, type, domain); ++ ++ /* ++ * Now look for a TXT entry. ++ */ ++ ++ if (avahi_service_resolver_new (client, interface, protocol, ++ name, type, domain, ++ AVAHI_PROTO_UNSPEC, 0, ++ avahi_query_callback, context) == NULL) ++ { ++ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n", ++ name, avahi_strerror (avahi_client_errno (client))); ++ } ++ } ++ ++ break; + +- for (device = cupsArrayFind(devices, &dkey); ++ case AVAHI_BROWSER_REMOVE: ++ case AVAHI_BROWSER_ALL_FOR_NOW: ++ case AVAHI_BROWSER_CACHE_EXHAUSTED: ++ break; ++ } ++} ++#endif /* HAVE_AVAHI */ ++ ++static cups_device_t * ++find_device (cups_array_t *devices, ++ cups_txt_records_t *txt, ++ cups_device_t *dkey) ++{ ++ cups_device_t *device; ++ char *ptr; ++ ++ for (device = cupsArrayFind(devices, dkey); + device; + device = cupsArrayNext(devices)) + { +- if (strcasecmp(device->name, dkey.name) || +- strcasecmp(device->domain, dkey.domain)) ++ if (strcasecmp(device->name, dkey->name) || ++ strcasecmp(device->domain, dkey->domain)) + { + device = NULL; + break; + } +- else if (device->type == dkey.type) ++ else if (device->type == dkey->type) + { + /* + * Found it, pull out the priority and make and model from the TXT + * record and save it... + */ + +- const uint8_t *data, /* Pointer into data */ +- *datanext, /* Next key/value pair */ +- *dataend; /* End of entire TXT record */ +- uint8_t datalen; /* Length of current key/value pair */ +- char key[256], /* Key string */ +- value[256], /* Value string */ +- make_and_model[512], ++ char make_and_model[512], + /* Manufacturer and model */ + model[256], /* Model */ +- device_id[2048];/* 1284 device ID */ +- ++ device_id[2048]; /* 1284 device ID */ + + device_id[0] = '\0'; + make_and_model[0] = '\0'; + + strcpy(model, "Unknown"); + +- for (data = rdata, dataend = data + rdlen; +- data < dataend; +- data = datanext) ++ for (;;) + { +- /* +- * Read a key/value pair starting with an 8-bit length. Since the +- * length is 8 bits and the size of the key/value buffers is 256, we +- * don't need to check for overflow... +- */ +- +- datalen = *data++; +- +- if (!datalen || (data + datalen) >= dataend) +- break; +- +- datanext = data + datalen; ++ char *key; ++ char *value; + +- for (ptr = key; data < datanext && *data != '='; data ++) +- *ptr++ = *data; +- *ptr = '\0'; +- +- if (data < datanext && *data == '=') +- { +- data ++; +- +- if (data < datanext) +- memcpy(value, data, datanext - data); +- value[datanext - data] = '\0'; +- } +- else +- continue; ++ if (parse_txt_record_pair (txt)) ++ goto next; + ++ key = txt->key; ++ value = txt->value; + if (!strncasecmp(key, "usb_", 4)) + { + /* +@@ -805,6 +1183,10 @@ query_callback( + if (device->type == CUPS_DEVICE_PRINTER) + device->sent = 1; + } ++ ++ next: ++ if (next_txt_record (txt) == NULL) ++ break; + } + + if (device->device_id) +@@ -854,11 +1236,9 @@ query_callback( + } + } + +- if (!device) +- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName); ++ return device; + } + +- + /* + * 'sigterm_handler()' - Handle termination signals... + */ +diff -up cups-1.4.0/config.h.in.avahi cups-1.4.0/config.h.in +--- cups-1.4.0/config.h.in.avahi 2009-06-10 16:51:21.000000000 +0100 ++++ cups-1.4.0/config.h.in 2009-09-04 14:57:04.733388405 +0100 +@@ -336,6 +336,13 @@ + + + /* ++ * Do we have Avahi for DNS Service Discovery? ++ */ ++ ++#undef HAVE_AVAHI ++ ++ ++/* + * Do we have <sys/ioctl.h>? + */ + +diff -up cups-1.4.0/config-scripts/cups-dnssd.m4.avahi cups-1.4.0/config-scripts/cups-dnssd.m4 +--- cups-1.4.0/config-scripts/cups-dnssd.m4.avahi 2009-02-10 17:05:35.000000000 +0000 ++++ cups-1.4.0/config-scripts/cups-dnssd.m4 2009-09-04 14:57:04.731388902 +0100 +@@ -27,6 +27,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn + DNSSDLIBS="" + DNSSD_BACKEND="" + ++AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no], ++ [if test x$enable_avahi = xyes; then ++ AC_MSG_CHECKING(for Avahi) ++ if $PKGCONFIG --exists avahi-client; then ++ AC_MSG_RESULT(yes) ++ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`" ++ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`" ++ DNSSD_BACKEND="dnssd" ++ AC_DEFINE(HAVE_AVAHI) ++ enable_dnssd=no ++ else ++ AC_MSG_RESULT(no) ++ fi ++ fi]) ++ + if test x$enable_dnssd != xno; then + AC_CHECK_HEADER(dns_sd.h, [ + case "$uname" in +diff -up cups-1.4.0/cups/http-support.c.avahi cups-1.4.0/cups/http-support.c +--- cups-1.4.0/cups/http-support.c.avahi 2009-06-12 01:21:58.000000000 +0100 ++++ cups-1.4.0/cups/http-support.c 2009-09-04 14:57:04.736398674 +0100 +@@ -55,6 +55,11 @@ + # include <dns_sd.h> + # include <poll.h> + #endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++# include <avahi-client/client.h> ++# include <avahi-client/lookup.h> ++# include <avahi-common/simple-watch.h> ++#endif /* HAVE_AVAHI */ + + + /* +@@ -121,6 +126,24 @@ static void resolve_callback(DNSService + void *context); + #endif /* HAVE_DNSSD */ + ++#ifdef HAVE_AVAHI ++static void avahi_resolve_uri_client_cb(AvahiClient *client, ++ AvahiClientState state, ++ void *simple_poll); ++static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver, ++ AvahiIfIndex interface, ++ AvahiProtocol protocol, ++ AvahiResolverEvent event, ++ const char *name, ++ const char *type, ++ const char *domain, ++ const char *host_name, ++ const AvahiAddress *address, ++ uint16_t port, ++ AvahiStringList *txt, ++ AvahiLookupResultFlags flags, ++ void *context); ++#endif /* HAVE_AVAHI */ + + /* + * 'httpAssembleURI()' - Assemble a uniform resource identifier from its +@@ -1349,15 +1372,26 @@ _httpResolveURI( + + if (strstr(hostname, "._tcp")) + { ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) ++ char *regtype, /* Pointer to type in hostname */ ++ *domain; /* Pointer to domain in hostname */ + #ifdef HAVE_DNSSD + DNSServiceRef ref, /* DNS-SD master service reference */ + domainref, /* DNS-SD service reference for domain */ + localref; /* DNS-SD service reference for .local */ + int domainsent = 0; /* Send the domain resolve? */ +- char *regtype, /* Pointer to type in hostname */ +- *domain; /* Pointer to domain in hostname */ + _http_uribuf_t uribuf; /* URI buffer */ + struct pollfd polldata; /* Polling data */ ++#else /* HAVE_AVAHI */ ++ AvahiSimplePoll *simple_poll; ++ AvahiClient *client; ++ int error; ++ struct ++ { ++ AvahiSimplePoll *poll; ++ _http_uribuf_t uribuf; ++ } user_data; ++#endif /* HAVE_DNSSD */ + + + if (logit) +@@ -1395,8 +1429,13 @@ _httpResolveURI( + if (domain) + *domain++ = '\0'; + ++#ifdef HAVE_DNSSD + uribuf.buffer = resolved_uri; + uribuf.bufsize = resolved_size; ++#else ++ user_data.uribuf.buffer = resolved_uri; ++ user_data.uribuf.bufsize = resolved_size; ++#endif + + resolved_uri[0] = '\0'; + +@@ -1411,6 +1450,7 @@ _httpResolveURI( + + uri = NULL; + ++#ifdef HAVE_DNSSD + if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError) + { + localref = ref; +@@ -1486,6 +1526,36 @@ _httpResolveURI( + + DNSServiceRefDeallocate(ref); + } ++#else /* HAVE_AVAHI */ ++ if ((simple_poll = avahi_simple_poll_new ()) != NULL) ++ { ++ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll), ++ 0, avahi_resolve_uri_client_cb, ++ &simple_poll, &error)) != NULL) ++ { ++ user_data.poll = simple_poll; ++ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC, ++ AVAHI_PROTO_UNSPEC, hostname, ++ regtype, domain, AVAHI_PROTO_UNSPEC, 0, ++ avahi_resolve_uri_resolver_cb, ++ &user_data) != NULL) ++ { ++ avahi_simple_poll_loop (simple_poll); ++ ++ /* ++ * Collect the result. ++ */ ++ ++ if (resolved_uri[0]) ++ uri = resolved_uri; ++ } ++ ++ avahi_client_free (client); ++ } ++ ++ avahi_simple_poll_free (simple_poll); ++ } ++#endif /* HAVE_DNSSD */ + + if (logit) + { +@@ -1497,13 +1567,13 @@ _httpResolveURI( + fputs("STATE: -connecting-to-device\n", stderr); + } + +-#else ++#else /* HAVE_DNSSD || HAVE_AVAHI */ + /* + * No DNS-SD support... + */ + + uri = NULL; +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + if (logit && !uri) + _cupsLangPuts(stderr, _("Unable to find printer!\n")); +@@ -1708,6 +1778,105 @@ resolve_callback( + } + #endif /* HAVE_DNSSD */ + ++#ifdef HAVE_AVAHI ++static void ++avahi_resolve_uri_client_cb (AvahiClient *client, ++ AvahiClientState state, ++ void *simple_poll) ++{ ++ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, " ++ "simple_poll=%p)\n", client, state, simple_poll)); ++ ++ /* ++ * If the connection drops, quit. ++ */ ++ ++ if (state == AVAHI_CLIENT_FAILURE) ++ avahi_simple_poll_quit (simple_poll); ++} ++ ++static void ++avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver, ++ AvahiIfIndex interface, ++ AvahiProtocol protocol, ++ AvahiResolverEvent event, ++ const char *name, ++ const char *type, ++ const char *domain, ++ const char *host_name, ++ const AvahiAddress *address, ++ uint16_t port, ++ AvahiStringList *txt, ++ AvahiLookupResultFlags flags, ++ void *context) ++{ ++ const char *scheme; /* URI scheme */ ++ char rp[256]; /* Remote printer */ ++ AvahiStringList *pair; ++ char *value; ++ size_t valueLen = 0; ++ char addr[AVAHI_ADDRESS_STR_MAX]; ++ struct ++ { ++ AvahiSimplePoll *poll; ++ _http_uribuf_t uribuf; ++ } *poll_uribuf = context; ++ ++ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, " ++ "interface=%d, protocol=%d, event=%d, name=\"%s\", " ++ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, " ++ "port=%d, txt=%p, flags=%d, context=%p)\n", ++ resolver, interface, protocol, event, name, type, domain, ++ host_name, address, port, txt, flags, context)); ++ ++ if (event != AVAHI_RESOLVER_FOUND) ++ { ++ avahi_service_resolver_free (resolver); ++ avahi_simple_poll_quit (poll_uribuf->poll); ++ return; ++ } ++ ++ /* ++ * Figure out the scheme from the full name... ++ */ ++ ++ if (strstr(type, "_ipp.")) ++ scheme = "ipp"; ++ else if (strstr(type, "_printer.")) ++ scheme = "lpd"; ++ else if (strstr(type, "_pdl-datastream.")) ++ scheme = "socket"; ++ else ++ scheme = "riousbprint"; ++ ++ /* ++ * Extract the "remote printer key from the TXT record... ++ */ ++ ++ if ((pair = avahi_string_list_find (txt, "rp")) != NULL) ++ { ++ avahi_string_list_get_pair (pair, NULL, &value, &valueLen); ++ rp[0] = '/'; ++ memcpy (rp + 1, value, valueLen); ++ rp[valueLen + 1] = '\0'; ++ } ++ else ++ rp[0] = '\0'; ++ ++ /* ++ * Assemble the final device URI... ++ */ ++ ++ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address); ++ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer, ++ poll_uribuf->uribuf.bufsize, scheme, NULL, ++ addr, port, rp); ++ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n", ++ poll_uribuf->uribuf.buffer)); ++ avahi_simple_poll_quit (poll_uribuf->poll); ++} ++#endif /* HAVE_AVAHI */ ++ + + /* + * End of "$Id: http-support.c 8705 2009-06-12 00:21:58Z mike $". diff --git a/abs/core-testing/cups/cups.install b/abs/core-testing/cups/cups.install new file mode 100644 index 0000000..97fda5a --- /dev/null +++ b/abs/core-testing/cups/cups.install @@ -0,0 +1,11 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/abs/core-testing/cups/cups.logrotate b/abs/core-testing/cups/cups.logrotate new file mode 100644 index 0000000..9c49bbd --- /dev/null +++ b/abs/core-testing/cups/cups.logrotate @@ -0,0 +1,8 @@ +/var/log/cups/*log { + missingok + notifempty + delaycompress + postrotate + /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true + endscript +} diff --git a/abs/core-testing/cups/cups.pam b/abs/core-testing/cups/cups.pam new file mode 100644 index 0000000..53724d1 --- /dev/null +++ b/abs/core-testing/cups/cups.pam @@ -0,0 +1,3 @@ +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/abs/core-testing/gnutls/PKGBUILD b/abs/core-testing/gnutls/PKGBUILD index cd95ffd..ea0c443 100644 --- a/abs/core-testing/gnutls/PKGBUILD +++ b/abs/core-testing/gnutls/PKGBUILD @@ -3,14 +3,14 @@ pkgname=gnutls pkgver=2.8.6 -pkgrel=1 +pkgrel=4 pkgdesc="A library which provides a secure layer over a reliable transport layer" arch=(i686 x86_64) license=('GPL3' 'LGPL') url="http://www.gnu.org/software/gnutls/" install=gnutls.install options=('libtool') -depends=('gcc-libs>=4.4.3' 'libtasn1>=2.5' 'readline>=6.0' 'zlib' 'libgcrypt>=1.4.5' 'texinfo') +depends=('gcc-libs>=4.4.3' 'libtasn1>=2.6' 'readline>=6.0' 'zlib' 'libgcrypt>=1.4.5' 'texinfo') source=(ftp://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.bz2) md5sums=('eb0a6d7d3cb9ac684d971c14f9f6d3ba') diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD index 7d9c9f9..819001d 100644 --- a/abs/core-testing/gtk2/PKGBUILD +++ b/abs/core-testing/gtk2/PKGBUILD @@ -3,12 +3,12 @@ pkgname=gtk2 pkgver=2.20.1 -pkgrel=2 +pkgrel=3 pkgdesc="The GTK+ Toolkit (v2)" arch=('i686' 'x86_64') url="http://www.gtk.org/" install=gtk2.install -depends=('atk>=1.30.0' 'pango>=1.28.0' 'libxcursor' 'libxinerama' 'libxrandr>=1.3.0' 'libxi>=1.3' 'libxcomposite' 'libxdamage' 'heimdal>=1.3.2' 'gnutls>=2.8.6' 'shared-mime-info' 'cairo>=1.8.10' 'libtiff>=3.9.2-2' 'libcups>=1.4.2-3') +depends=('atk>=1.30.0' 'pango>=1.28.0' 'libxcursor' 'libxinerama' 'libxrandr>=1.3.0' 'libxi>=1.3' 'libxcomposite' 'libxdamage' 'heimdal>=1.3.2' 'gnutls>=2.8.6' 'shared-mime-info' 'cairo>=1.8.10' 'libtiff>=3.9.2-2' ) makedepends=('pkgconfig' 'gtk-doc' 'gobject-introspection') replaces=('gtkprint-cups' 'gail') conflicts=('gtkprint-cups' 'gail') @@ -30,7 +30,7 @@ build() { CXX=/bin/false ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --with-xinput=yes \ - --without-libjasper \ + --without-libjasper --without-cups\ --with-included-loaders=png || return 1 make || return 1 make DESTDIR="${pkgdir}" install || return 1 diff --git a/abs/core-testing/gtk2/__changelog b/abs/core-testing/gtk2/__changelog new file mode 100644 index 0000000..1384183 --- /dev/null +++ b/abs/core-testing/gtk2/__changelog @@ -0,0 +1 @@ +removed cups support -jm diff --git a/abs/core-testing/lcms/PKGBUILD b/abs/core-testing/lcms/PKGBUILD index 3cd6add..effc73c 100644 --- a/abs/core-testing/lcms/PKGBUILD +++ b/abs/core-testing/lcms/PKGBUILD @@ -1,24 +1,24 @@ -# $Id: PKGBUILD 9147 2008-08-17 04:15:31Z eric $ +# $Id: PKGBUILD 87526 2010-08-15 13:47:09Z ibiru $ # Maintainer: Tobias Kieslich <neri@archlinux.org> # Contributor: Ben <contrasutra@myrealbox.com> pkgname=lcms -pkgver=1.17 -pkgrel=3 +pkgver=1.19 +pkgrel=1 pkgdesc="Lightweight color management development library/engine" arch=(i686 x86_64) -license=('CUSTOM') -depends=('libtiff') +license=('custom') +depends=('libtiff>=3.9.4') url="http://www.littlecms.com" options=('!libtool') -source=(http://littlecms.com/${pkgname}-${pkgver}.tar.gz) -md5sums=('07bdbb4cfb05d21caa58fe3d1c84ddc1') +source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz) +md5sums=('8af94611baf20d9646c7c2c285859818') build() { - cd ${startdir}/src/${pkgname}-${pkgver} + cd ${srcdir}/${pkgname}-${pkgver} ./configure --prefix=/usr - make || return 1 - make DESTDIR=${startdir}/pkg install + make + make DESTDIR=${pkgdir} install install -Dm 644 COPYING \ - ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE + ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE } diff --git a/abs/core-testing/libtasn1/PKGBUILD b/abs/core-testing/libtasn1/PKGBUILD index a680004..f43ca76 100644 --- a/abs/core-testing/libtasn1/PKGBUILD +++ b/abs/core-testing/libtasn1/PKGBUILD @@ -4,13 +4,13 @@ pkgname=libtasn1 pkgver=2.6 -pkgrel=1 +pkgrel=3 pkgdesc="The ASN.1 library used in GNUTLS" arch=(i686 x86_64) license=('GPL3' 'LGPL') url="http://www.gnu.org/software/libtasn1/" depends=('glibc' 'texinfo') -options=('!libtool') +options=('!libtool' '!emptydirs') install=libtasn1.install source=(ftp://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz) md5sums=('d410671e13038324336917ceed7470a5') diff --git a/abs/core-testing/netcfg/PKGBUILD b/abs/core-testing/netcfg/PKGBUILD deleted file mode 100644 index de024a2..0000000 --- a/abs/core-testing/netcfg/PKGBUILD +++ /dev/null @@ -1,25 +0,0 @@ -# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ -# Maintainer: James Rayner <james@archlinux.org> -pkgname=netcfg -pkgver=2.0.6 -pkgrel=1 -pkgdesc="Network configuration and profile scripts" -url="http://archlinux.org" -license=("BSD") -backup=(etc/iftab) -depends=(wireless_tools wpa_supplicant net-tools mktemp) -source=(http://dev.archlinux.org/~james/netcfg/netcfg-$pkgver.tar.gz) -md5sums=('8bf6861e800a5b35f9f8ee4db8e07151') -#source=(netcfg-$pkgver.tar.gz) -arch=(i686 x86_64) - -build() { - cd $startdir/src/netcfg-$pkgver - sed -i 's|/man/|/share/man/|' Makefile - make DESTDIR=$startdir/pkg install - make DESTDIR=$startdir/pkg install-contrib - install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/netcfg/LICENSE - - # Uncomment once initscripts patch merged - # ln -s /usr/bin/netcfg2 $startdir/pkg/usr/bin/netcfg -} diff --git a/abs/extra-testing/consolekit/PKGBUILD b/abs/extra-testing/consolekit/PKGBUILD index e034fa1..10a1f7f 100644 --- a/abs/extra-testing/consolekit/PKGBUILD +++ b/abs/extra-testing/consolekit/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 86890 2010-08-06 20:24:41Z ibiru $ +# $Id: PKGBUILD 87085 2010-08-10 18:29:16Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: onestep_ua <onestep@ukr.net> pkgname=consolekit pkgver=0.4.1 -pkgrel=3 +pkgrel=4 pkgdesc="A framework for defining and tracking users, login sessions, and seats" arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/ConsoleKit" @@ -16,17 +16,20 @@ source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${pkgver} pam-foreground-compat.ck nodaemon.patch reorder-initialization.patch + add_since_option.patch consolekit.logrotate) md5sums=('48eda4483cc97841d5f88e8e003eb6d7' 'a8a4de71d9b0549b8143e5f6c2a36fc7' 'a5bfd56bc89411ff5bb18276a68cb212' '99fa8cb1bf232050cc0c076378e216c5' + 'bd5e72397fe2d42a933a897d28d58155' '6fefa451d9fe2fc6d6269629d3529793') build() { cd "${srcdir}/ConsoleKit-${pkgver}" patch -Np1 -i "${srcdir}/nodaemon.patch" patch -Np1 -i "${srcdir}/reorder-initialization.patch" + patch -Np1 -i "${srcdir}/add_since_option.patch" ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ diff --git a/abs/extra-testing/consolekit/add_since_option.patch b/abs/extra-testing/consolekit/add_since_option.patch new file mode 100644 index 0000000..50c1421 --- /dev/null +++ b/abs/extra-testing/consolekit/add_since_option.patch @@ -0,0 +1,220 @@ +From c9f2292339540d4b9d8940bcef16b7485480c8d9 Mon Sep 17 00:00:00 2001 +From: William Jon McCann <jmccann@redhat.com> +Date: Fri, 11 Jun 2010 19:53:22 +0000 +Subject: Add a --since option to show entries in a time window + +Doesn't load any history files it doesn't need to which should +help performance on systems with long histories. + +https://bugs.freedesktop.org/show_bug.cgi?id=25660 +--- +diff --git a/tools/ck-history.c b/tools/ck-history.c +index 606106c..d02caaa 100644 +--- a/tools/ck-history.c ++++ b/tools/ck-history.c +@@ -62,8 +62,8 @@ typedef enum { + + static GList *all_events = NULL; + +-static gboolean +-process_event_line (const char *line) ++static CkLogEvent * ++parse_event_line (const char *line) + { + GString *str; + CkLogEvent *event; +@@ -72,47 +72,80 @@ process_event_line (const char *line) + event = ck_log_event_new_from_string (str); + g_string_free (str, TRUE); + +- if (event != NULL) { +- all_events = g_list_prepend (all_events, event); +- } +- +- return TRUE; ++ return event; + } + + static gboolean +-process_log_gzstream (gzFile *fstream) ++process_log_gzstream (gzFile *fstream, ++ GTimeVal *since) + { +- char line[MAX_LINE_LEN]; ++ char line[MAX_LINE_LEN]; ++ gboolean hit_since; ++ GList *events; + ++ events = NULL; ++ hit_since = FALSE; + while (gzgets (fstream, line, sizeof (line)) != Z_NULL) { ++ CkLogEvent *event; ++ + if (strlen (line) == sizeof (line) - 1) { + g_warning ("Log line truncated"); + } + +- process_event_line (line); ++ event = parse_event_line (line); ++ if (event == NULL) { ++ continue; ++ } ++ ++ if (since == NULL || event->timestamp.tv_sec >= since->tv_sec) { ++ events = g_list_prepend (events, event); ++ } else { ++ hit_since = TRUE; ++ } + } + +- return TRUE; ++ all_events = g_list_concat (all_events, events); ++ ++ return !hit_since; + } + + static gboolean +-process_log_stream (FILE *fstream) ++process_log_stream (FILE *fstream, ++ GTimeVal *since) + { +- char line[MAX_LINE_LEN]; ++ char line[MAX_LINE_LEN]; ++ gboolean hit_since; ++ GList *events; + ++ events = NULL; ++ hit_since = FALSE; + while (fgets (line, sizeof (line), fstream) != NULL) { ++ CkLogEvent *event; ++ + if (strlen (line) == sizeof (line) - 1) { + g_warning ("Log line truncated"); + } + +- process_event_line (line); ++ event = parse_event_line (line); ++ if (event == NULL) { ++ continue; ++ } ++ ++ if (since == NULL || event->timestamp.tv_sec >= since->tv_sec) { ++ events = g_list_prepend (events, event); ++ } else { ++ hit_since = TRUE; ++ } + } + +- return TRUE; ++ all_events = g_list_concat (all_events, events); ++ ++ return !hit_since; + } + + static gboolean +-process_log_file (const char *filename) ++process_log_file (const char *filename, ++ GTimeVal *since) + { + gboolean ret; + +@@ -131,7 +164,7 @@ process_log_file (const char *filename) + errmsg); + return FALSE; + } +- ret = process_log_gzstream (f); ++ ret = process_log_gzstream (f, since); + gzclose (f); + } else { + FILE *f; +@@ -143,7 +176,7 @@ process_log_file (const char *filename) + g_strerror (errno)); + return FALSE; + } +- ret = process_log_stream (f); ++ ret = process_log_stream (f, since); + fclose (f); + } + +@@ -180,11 +213,14 @@ get_log_file_list (void) + files = g_list_prepend (files, filename); + }; + ++ /* Return the list in reverse time order, newest first */ ++ files = g_list_reverse (files); ++ + return files; + } + + static gboolean +-process_logs (void) ++process_logs (GTimeVal *since) + { + gboolean ret; + GList *files; +@@ -199,8 +235,7 @@ process_logs (void) + char *filename; + + filename = l->data; +- +- res = process_log_file (filename); ++ res = process_log_file (filename, since); + if (! res) { + goto out; + } +@@ -843,6 +878,8 @@ main (int argc, + GError *error = NULL; + int report_type; + int uid; ++ GTimeVal timestamp; ++ gboolean use_since; + static gboolean do_version = FALSE; + static gboolean report_last_compat = FALSE; + static gboolean report_last = FALSE; +@@ -851,6 +888,7 @@ main (int argc, + static char *username = NULL; + static char *seat = NULL; + static char *session_type = NULL; ++ static char *since = NULL; + static GOptionEntry entries [] = { + { "version", 'V', 0, G_OPTION_ARG_NONE, &do_version, N_("Version of this application"), NULL }, + { "frequent", 0, 0, G_OPTION_ARG_NONE, &report_frequent, N_("Show listing of frequent users"), NULL }, +@@ -860,6 +898,7 @@ main (int argc, + { "seat", 's', 0, G_OPTION_ARG_STRING, &seat, N_("Show entries for the specified seat"), N_("SEAT") }, + { "session-type", 't', 0, G_OPTION_ARG_STRING, &session_type, N_("Show entries for the specified session type"), N_("TYPE") }, + { "user", 'u', 0, G_OPTION_ARG_STRING, &username, N_("Show entries for the specified user"), N_("NAME") }, ++ { "since", 0, 0, G_OPTION_ARG_STRING, &since, N_("Show entries since the specified time (ISO 8601 format)"), N_("DATETIME") }, + { NULL } + }; + +@@ -880,6 +919,15 @@ main (int argc, + exit (1); + } + ++ use_since = FALSE; ++ if (since != NULL) { ++ use_since = g_time_val_from_iso8601 (since, ×tamp); ++ if (! use_since) { ++ g_warning ("Invalid ISO 8601 time value"); ++ exit (1); ++ } ++ } ++ + if (report_last_compat) { + report_type = REPORT_TYPE_LAST_COMPAT; + } else if (report_last) { +@@ -902,7 +950,11 @@ main (int argc, + uid = -1; + } + +- process_logs (); ++ if (use_since) { ++ process_logs (×tamp); ++ } else { ++ process_logs (NULL); ++ } + generate_report (report_type, uid, seat, session_type); + free_events (); + +-- +cgit v0.8.3-6-g21f6 diff --git a/abs/extra-testing/libffi/PKGBUILD b/abs/extra-testing/libffi/PKGBUILD new file mode 100644 index 0000000..555f0eb --- /dev/null +++ b/abs/extra-testing/libffi/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 72255 2010-03-13 20:43:14Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=libffi +pkgver=3.0.9 +pkgrel=1 +pkgdesc="A portable, high level programming interface to various calling conventions." +arch=('i686' 'x86_64') +license=('MIT') +url="http://sourceware.org/libffi" +depends=('glibc' 'texinfo') +options=('!libtool' 'force') +install=libffi.install +source=(ftp://sourceware.org/pub/libffi/libffi-${pkgver}.tar.gz) +md5sums=('1f300a7a7f975d4046f51c3022fa5ff1') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr || return 1 + make || return 1 + make DESTDIR="${pkgdir}" install || return 1 + install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" + install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} diff --git a/abs/extra-testing/libffi/libffi.install b/abs/extra-testing/libffi/libffi.install new file mode 100644 index 0000000..151b79b --- /dev/null +++ b/abs/extra-testing/libffi/libffi.install @@ -0,0 +1,18 @@ +infodir=/usr/share/info +filelist=(libffi.info.gz) + +post_install() { + for file in ${filelist[@]}; do + install-info $infodir/$file $infodir/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + for file in ${filelist[@]}; do + install-info --delete $infodir/$file $infodir/dir 2> /dev/null + done +} diff --git a/abs/extra-testing/openjpeg/30_fix_build_for_debian.dpatch b/abs/extra-testing/openjpeg/30_fix_build_for_debian.dpatch new file mode 100644 index 0000000..afd9950 --- /dev/null +++ b/abs/extra-testing/openjpeg/30_fix_build_for_debian.dpatch @@ -0,0 +1,70 @@ + +#! /bin/sh /usr/share/dpatch/dpatch-run +## 30_fix_build_for_debian.dpatch by <robin.cornelius@gmail.com> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Dont apply the -s strip flag to the shared lib debian will do it for us +## DP: where necessary +## DP: Remove unnecessary linkage on lstdc++ and lm and add missing linkage for -lm + +@DPATCH@ + +Index: ./Makefile +=================================================================== +--- ./Makefile (revision 96) ++++ ./Makefile (working copy) +@@ -18,8 +18,7 @@ + # Converts cr/lf to just lf + DOS2UNIX = dos2unix + +-COMPILERFLAGS = -Wall -O3 -ffast-math -std=c99 -fPIC +-LIBRARIES = -lstdc++ ++COMPILERFLAGS = -Wall -O3 -ffast-math -std=c99 -fPIC -g $(EXTRA_CFLAGS) + + MODULES = $(SRCS:.c=.o) + CFLAGS = $(COMPILERFLAGS) $(INCLUDE) +@@ -54,7 +53,7 @@ + $(AR) r $@ $(MODULES) + + $(SHAREDLIB): $(MODULES) +- $(CC) -s -shared -Wl,-soname,$(LIBNAME) -o $@ $(MODULES) $(LIBRARIES) ++ $(CC) -shared -Wl,-soname,$(LIBNAME) -o $@ $(MODULES) -lm + + install: OpenJPEG + install -d '$(DESTDIR)$(INSTALL_LIBDIR)' '$(DESTDIR)$(INSTALL_INCLUDE)' + +Index: ./indexer_JPIP/Makefile +=================================================================== +--- ./indexer_JPIP/Makefile (revision 95) ++++ ./indexer_JPIP/Makefile (working copy) +@@ -1,7 +1,6 @@ + CC = gcc + +-LDFLAGS = -lm +-CFLAGS = -Wall ++CFLAGS = -Wall $(EXTRA_CFLAGS) + + all: index_create + +Index: ./codec/Makefile +=================================================================== +--- ./codec/Makefile (revision 96) ++++ ./codec/Makefile (working copy) +@@ -1,13 +1,13 @@ + # Makefile for the main OpenJPEG codecs: j2k_to_image and image_to_j2k + +-CFLAGS = -O3 -lstdc++ # -g -p -pg ++CFLAGS = $(EXTRA_CFLAGS) # -g -p -pg + + all: j2k_to_image image_to_j2k + +-j2k_to_image: j2k_to_image.c ../libopenjpeg.a ++j2k_to_image: j2k_to_image.c + gcc $(CFLAGS) compat/getopt.c index.c convert.c j2k_to_image.c -o j2k_to_image -L.. -lopenjpeg -I ../libopenjpeg/ -lm -ltiff + +-image_to_j2k: image_to_j2k.c ../libopenjpeg.a ++image_to_j2k: image_to_j2k.c + gcc $(CFLAGS) compat/getopt.c index.c convert.c image_to_j2k.c -o image_to_j2k -L.. -lopenjpeg -I ../libopenjpeg/ -lm -ltiff + + clean: + diff --git a/abs/extra-testing/openjpeg/PKGBUILD b/abs/extra-testing/openjpeg/PKGBUILD new file mode 100644 index 0000000..087da2f --- /dev/null +++ b/abs/extra-testing/openjpeg/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=openjpeg +pkgver=1.3 +_pkgver=v1_3 +pkgrel=3 +pkgdesc="An open source JPEG 2000 codec" +arch=(i686 x86_64) +license=('BSD') +url="http://www.openjpeg.org" +depends=('glibc') +source=(http://www.openjpeg.org/openjpeg_${_pkgver}.tar.gz + 30_fix_build_for_debian.dpatch) +md5sums=('f9a3ccfa91ac34b589e9bf7577ce8ff9' + '2557f485513e77f6dcea77f4741c4fa1') + +build() { + cd "${srcdir}/OpenJPEG_${_pkgver}" + patch -Np1 -i "${srcdir}/30_fix_build_for_debian.dpatch" || return 1 + make || return 1 + make DESTDIR="${pkgdir}" install || return 1 + install -m755 -d "${pkgdir}/usr/share/licenses/openjpeg" + tr '\r' '\n' < license.txt > "${pkgdir}/usr/share/licenses/openjpeg/license.txt" || return 1 + chmod 644 "${pkgdir}/usr/share/licenses/openjpeg/license.txt" || return 1 + ln -s libopenjpeg.so.2 "${pkgdir}/usr/lib/libopenjpeg.so" || return 1 +} diff --git a/abs/extra-testing/openslp/PKGBUILD b/abs/extra-testing/openslp/PKGBUILD new file mode 100644 index 0000000..9ba1f94 --- /dev/null +++ b/abs/extra-testing/openslp/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 75251 2010-04-01 04:53:24Z allan $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +pkgname=openslp +pkgver=1.2.1 +pkgrel=3 +pkgdesc="Open-source implementation of Service Location Protocol" +arch=(i686 x86_64) +url="http://www.openslp.org" +license=('BSD') +depends=('glibc' 'bash' 'openssl') +backup=('etc/slp.conf' 'etc/slp.reg' 'etc/slp.spi') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz rc.slpd) +md5sums=('ff9999d1b44017281dd00ed2c4d32330' '4f6889a5944894b8be2c01404a9566d2') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + ./configure --prefix=/usr || return 1 + make || return 1 + make DESTDIR=${pkgdir} DOC_DIR=/usr/share/doc/openslp-${pkgver} install || return 1 + install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE + install -D -m755 ../rc.slpd ${pkgdir}/etc/rc.d/slpd +} diff --git a/abs/extra-testing/openslp/rc.slpd b/abs/extra-testing/openslp/rc.slpd new file mode 100755 index 0000000..4330c37 --- /dev/null +++ b/abs/extra-testing/openslp/rc.slpd @@ -0,0 +1,38 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/slpd` +case "$1" in + start) + stat_busy "Starting SLPD" + [ -z "$PID" ] && /usr/sbin/slpd + if [ $? -gt 0 ]; then + stat_fail + else + echo $PID > /var/run/slpd.pid + add_daemon slpd + stat_done + fi + ;; + stop) + stat_busy "Stopping SLPD" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm /var/run/slpd.pid + rm_daemon slpd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/extra-testing/poppler-data/PKGBUILD b/abs/extra-testing/poppler-data/PKGBUILD new file mode 100644 index 0000000..6b22ea3 --- /dev/null +++ b/abs/extra-testing/poppler-data/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 22380 2008-12-26 16:33:15Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=poppler-data +pkgver=0.4.3 +pkgrel=1 +pkgdesc="Encoding data for the poppler PDF rendering library" +arch=(any) +license=('custom' 'GPL2') +conflicts=('poppler<0.10.5') +url="http://poppler.freedesktop.org/" +source=(http://poppler.freedesktop.org/${pkgname}-${pkgver}.tar.gz) +md5sums=('2d648047e5d0b315df1571b460ee6a96') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + make prefix=/usr DESTDIR="${pkgdir}" install + + install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" + install -m644 COPYING COPYING.adobe \ + "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/extra-testing/poppler/PKGBUILD b/abs/extra-testing/poppler/PKGBUILD new file mode 100644 index 0000000..092abab --- /dev/null +++ b/abs/extra-testing/poppler/PKGBUILD @@ -0,0 +1,67 @@ +# $Id: PKGBUILD 83716 2010-06-22 17:55:04Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgbase=poppler +pkgname=('poppler' 'poppler-glib' 'poppler-qt') +pkgver=0.14.0 +pkgrel=2 +arch=(i686 x86_64) +license=('GPL') +makedepends=('libjpeg>=8.0.2' 'gcc-libs>=4.5.0' 'cairo>=1.8.10' 'libxml2>=2.7.7' 'fontconfig>=2.8.0' 'openjpeg>=1.3-3' 'gtk2>=2.20.1' 'qt>=4.6.3' 'pkgconfig' 'lcms>=1.18') +options=('!libtool') +url="http://poppler.freedesktop.org/" +source=(http://poppler.freedesktop.org/${pkgname}-${pkgver}.tar.gz) +md5sums=('76f003b8fa2b905674088c306aa857c5') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + export CPPFLAGS=" $CPPFLAGS -I /usr/include/gdk -I /usr/include/glib-2.0 -I /usr/lib/glib/include/ -I /usr/include/cairo -I /usr/include/gtk-2.0/gdk/" + ./configure --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --disable-static \ + --enable-cairo-output \ + --enable-xpdf-headers \ + --enable-libjpeg --enable-zlib \ + --enable-poppler-qt4 \ + --enable-poppler-glib + make +} + +package_poppler() { + pkgdesc="PDF rendering library based on xpdf 3.0" + depends=('libjpeg>=8.0.2' 'gcc-libs>=4.5.0' 'cairo>=1.8.10' 'libxml2>=2.7.7' 'fontconfig>=2.8.0' 'openjpeg>=1.3-3' 'lcms>=1.18' 'poppler-data>=0.4.2') + conflicts=("poppler-qt3<${pkgver}") + + cd "${srcdir}/${pkgbase}-${pkgver}" + make DESTDIR="${pkgdir}" install + + rm -rf "${pkgdir}"/usr/include/poppler/{glib,qt4} + rm -f "${pkgdir}"/usr/lib/libpoppler-{glib,qt4}.so* + rm -f "${pkgdir}"/usr/lib/pkgconfig/poppler-{glib,qt4}.pc + rm -rf "${pkgdir}/usr/share/gtk-doc" +} + +package_poppler-glib() { + pkgdesc="Poppler glib bindings" + depends=("poppler=${pkgver}" 'gtk2>=2.20.1') + + cd "${srcdir}/${pkgbase}-${pkgver}/poppler" + make DESTDIR="${pkgdir}" install-libLTLIBRARIES + cd "${srcdir}/${pkgbase}-${pkgver}/glib" + make DESTDIR="${pkgdir}" install + install -m755 -d "${pkgdir}/usr/lib/pkgconfig" + install -m644 ../poppler-glib.pc "${pkgdir}/usr/lib/pkgconfig/" + rm -f "${pkgdir}"/usr/lib/libpoppler.* +} + +package_poppler-qt() { + pkgdesc="Poppler Qt bindings" + depends=("poppler=${pkgver}" 'qt>=4.6.3') + + cd "${srcdir}/${pkgbase}-${pkgver}/poppler" + make DESTDIR="${pkgdir}" install-libLTLIBRARIES + cd "${srcdir}/${pkgbase}-${pkgver}/qt4" + make DESTDIR="${pkgdir}" install + install -m755 -d "${pkgdir}/usr/lib/pkgconfig" + install -m644 ../poppler-qt4.pc "${pkgdir}/usr/lib/pkgconfig/" + rm -f "${pkgdir}"/usr/lib/libpoppler.* +} |