diff options
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.* +} | 
