diff options
Diffstat (limited to 'abs/extra-testing')
36 files changed, 1884 insertions, 387 deletions
diff --git a/abs/extra-testing/alsa-firmware/PKGBUILD b/abs/extra-testing/alsa-firmware/PKGBUILD new file mode 100644 index 0000000..d9c890b --- /dev/null +++ b/abs/extra-testing/alsa-firmware/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 79046 2010-04-30 05:38:39Z tpowa $ +# Contributor: Jochen Immendörfer <jochen dot immendoerfer at gmail dot com> +# Package Maintainer: Tobias Powalowski <tpowa@archlinux.org> +pkgname=alsa-firmware +pkgver=1.0.23 +pkgrel=1 +pkgdesc="ALSA firmware package" +arch=('i686' 'x86_64') +url="http://alsa-project.org/" +license=('GPL') +source=(ftp://ftp.alsa-project.org/pub/firmware/$pkgname-$pkgver.tar.bz2) +options=(!strip) + +build() { + cd $srcdir/$pkgname-$pkgver + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$pkgdir install || return 1 + # remove files which conflicts with kernel26-firmware + rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_kernel.fw || return 1 + rm -rf ${pkgdir}/lib/firmware/ess/maestro3_assp_minisrc.fw || return 1 + rm -rf ${pkgdir}/lib/firmware/korg/k1212.dsp || return 1 + rm -rf ${pkgdir}/lib/firmware/sb16/alaw_main.csp || return 1 + rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_capture.csp || return 1 + rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_init.csp || return 1 + rm -rf ${pkgdir}/lib/firmware/sb16/ima_adpcm_playback.csp || return 1 + rm -rf ${pkgdir}/lib/firmware/sb16/mulaw_main.csp || return 1 + rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_ctrl.fw || return 1 + rm -rf ${pkgdir}/lib/firmware/yamaha/ds1_dsp.fw || return 1 + rm -rf ${pkgdir}/lib/firmware/yamaha/ds1e_ctrl.fw || return 1 + rm -rf ${pkgdir}/lib/firmware/yamaha/yss225_registers.bin || return 1 +} +md5sums=('e3f755331d6d485f6fd697249b90f877') diff --git a/abs/extra-testing/autofs/PKGBUILD b/abs/extra-testing/autofs/PKGBUILD index ac317d2..ae04100 100755 --- a/abs/extra-testing/autofs/PKGBUILD +++ b/abs/extra-testing/autofs/PKGBUILD @@ -5,7 +5,7 @@ pkgname=autofs pkgver=5.0.5 -pkgrel=1 +pkgrel=3 pkgdesc="A kernel-based automounter for Linux" arch=('i686' 'x86_64') url="http://wiki.autofs.net/FrontPage" @@ -14,8 +14,14 @@ depends=('libldap' 'libxml2' 'heimdal') backup=(etc/autofs/auto.master etc/autofs/auto.misc etc/conf.d/autofs) install=${pkgname}.install source=("http://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgver}.tar.bz2" - 'autofs.conf.d' 'auto.master' 'auto.misc' - 'heimdal.patch' 'run' 'log.run' 'finish') + 'autofs' 'autofs.conf.d' 'auto.master' 'auto.misc' + 'heimdal.patch') +md5sums=('a1d262cb6ebef0c2dd0fe22232fb3d5a' + 'e307bf6d2638e46eeb916cf42fe029b2' + '47f597c870410055e0fdb66103daf928' + 'a6cefb591e77b31b79dbb7243646c96b' + 'd8a15ec9186c5c0b36e5cea1e2739e8a' + 'efd46b6406b940cb48f7c6197790fb8e') build() { export MAKEFLAGS="-j1" @@ -39,19 +45,6 @@ package(){ install -Dm644 ${srcdir}/auto.master ${pkgdir}/etc/autofs/auto.master || return 1 install -Dm644 ${srcdir}/auto.misc ${pkgdir}/etc/autofs/auto.misc || return 1 + install -Dm755 ${srcdir}/autofs ${pkgdir}/etc/rc.d/autofs || return 1 install -Dm644 ${srcdir}/autofs.conf.d ${pkgdir}/etc/conf.d/autofs || return 1 - mkdir -p ${pkgdir}/etc/sv/autofs/supervise - mkdir -p ${pkgdir}/etc/sv/autofs/log/supervise - install -Dm744 ${srcdir}/run ${pkgdir}/etc/sv/autofs || return 1 - install -Dm744 ${srcdir}/finish ${pkgdir}/etc/sv/autofs || return 1 - install -Dm744 ${srcdir}/log.run ${pkgdir}/etc/sv/autofs/log/run || return 1 } - -md5sums=('a1d262cb6ebef0c2dd0fe22232fb3d5a' - '47f597c870410055e0fdb66103daf928' - 'a6cefb591e77b31b79dbb7243646c96b' - 'd8a15ec9186c5c0b36e5cea1e2739e8a' - 'efd46b6406b940cb48f7c6197790fb8e' - 'f2048c24da7fa1421c2e8b0b90fb17f9' - '518e277f960a1af837ba6c5cca13c615' - '5b30948886b6d71287652d784fccf1fb') diff --git a/abs/extra-testing/autofs/autofs b/abs/extra-testing/autofs/autofs new file mode 100644 index 0000000..08bd3e1 --- /dev/null +++ b/abs/extra-testing/autofs/autofs @@ -0,0 +1,50 @@ +#!/bin/bash + +daemon_name=autofs + +. /etc/rc.conf +. /etc/rc.d/functions + +# source application-specific settings +[ -f /etc/conf.d/autofs ] && . /etc/conf.d/autofs + +if [ ! -z "$TIMEOUT" ]; then + daemonoptions="--timeout=$TIMEOUT $daemonoptions" +fi + +PID=`cat /var/run/autofs-running 2> /dev/null` +case "$1" in + start) + stat_busy "Starting $daemon_name daemon" + [ -z "$PID" ] && /usr/sbin/automount $daemonoptions &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon $daemon_name + stat_done + fi + ;; + stop) + stat_busy "Stopping $daemon_name daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon $daemon_name + stat_done + fi + ;; + restart) + stat_busy "Restarting $daemon_name daemon" + $0 stop + sleep 1 + $0 start + ;; + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + ;; + *) + echo "usage: $0 {start|stop|restart|status}" +esac +exit 0 diff --git a/abs/extra-testing/consolekit/PKGBUILD b/abs/extra-testing/consolekit/PKGBUILD new file mode 100644 index 0000000..e034fa1 --- /dev/null +++ b/abs/extra-testing/consolekit/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 86890 2010-08-06 20:24:41Z ibiru $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: onestep_ua <onestep@ukr.net> + +pkgname=consolekit +pkgver=0.4.1 +pkgrel=3 +pkgdesc="A framework for defining and tracking users, login sessions, and seats" +arch=('i686' 'x86_64') +url="http://www.freedesktop.org/wiki/Software/ConsoleKit" +license=('GPL') +depends=('polkit>=0.95' 'zlib' 'libx11>=1.2.2') +makedepends=('pkgconfig' 'xmlto' 'docbook-xsl') +options=(!libtool) +source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${pkgver}.tar.bz2 + pam-foreground-compat.ck + nodaemon.patch + reorder-initialization.patch + consolekit.logrotate) +md5sums=('48eda4483cc97841d5f88e8e003eb6d7' + 'a8a4de71d9b0549b8143e5f6c2a36fc7' + 'a5bfd56bc89411ff5bb18276a68cb212' + '99fa8cb1bf232050cc0c076378e216c5' + '6fefa451d9fe2fc6d6269629d3529793') + +build() { + cd "${srcdir}/ConsoleKit-${pkgver}" + patch -Np1 -i "${srcdir}/nodaemon.patch" + patch -Np1 -i "${srcdir}/reorder-initialization.patch" + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libexecdir=/usr/lib/ConsoleKit \ + --enable-pam-module \ + --enable-docbook-docs + make + make DESTDIR="${pkgdir}" install + install -m755 "${srcdir}/pam-foreground-compat.ck" "${pkgdir}/usr/lib/ConsoleKit/run-session.d/" + + # install the logrotate config + install -D -m644 ${srcdir}/consolekit.logrotate ${pkgdir}/etc/logrotate.d/consolekit +} diff --git a/abs/extra-testing/consolekit/consolekit.logrotate b/abs/extra-testing/consolekit/consolekit.logrotate new file mode 100644 index 0000000..7c5346e --- /dev/null +++ b/abs/extra-testing/consolekit/consolekit.logrotate @@ -0,0 +1,5 @@ +/var/log/ConsoleKit/history { + missingok + notifempty + delaycompress +} diff --git a/abs/extra-testing/consolekit/nodaemon.patch b/abs/extra-testing/consolekit/nodaemon.patch new file mode 100644 index 0000000..c4c08e9 --- /dev/null +++ b/abs/extra-testing/consolekit/nodaemon.patch @@ -0,0 +1,9 @@ +diff -up ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in.nodaemon ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in +--- ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in.nodaemon 2009-12-15 10:56:39.839818556 -0500 ++++ ConsoleKit-0.4.1/data/org.freedesktop.ConsoleKit.service.in 2009-12-15 10:56:50.177792048 -0500 +@@ -1,4 +1,4 @@ + [D-BUS Service] + Name=org.freedesktop.ConsoleKit +-Exec=@sbindir@/console-kit-daemon ++Exec=@sbindir@/console-kit-daemon --no-daemon + User=root diff --git a/abs/extra-testing/consolekit/pam-foreground-compat.ck b/abs/extra-testing/consolekit/pam-foreground-compat.ck new file mode 100644 index 0000000..7f6b122 --- /dev/null +++ b/abs/extra-testing/consolekit/pam-foreground-compat.ck @@ -0,0 +1,16 @@ +#!/bin/sh +TAGDIR=/var/run/console + +[ -n "$CK_SESSION_USER_UID" ] || exit 1 + +TAGFILE="$TAGDIR/`getent passwd $CK_SESSION_USER_UID | cut -f 1 -d:`" + +if [ "$1" = "session_added" ]; then + mkdir -p "$TAGDIR" + echo "$CK_SESSION_ID" >> "$TAGFILE" +fi + +if [ "$1" = "session_removed" ] && [ -e "$TAGFILE" ]; then + sed -i "\%^$CK_SESSION_ID\$%d" "$TAGFILE" + [ -s "$TAGFILE" ] || rm -f "$TAGFILE" +fi diff --git a/abs/extra-testing/consolekit/reorder-initialization.patch b/abs/extra-testing/consolekit/reorder-initialization.patch new file mode 100644 index 0000000..f65abd5 --- /dev/null +++ b/abs/extra-testing/consolekit/reorder-initialization.patch @@ -0,0 +1,40 @@ +diff -up ConsoleKit-0.4.1/src/main.c.reorder-initialization ConsoleKit-0.4.1/src/main.c +--- ConsoleKit-0.4.1/src/main.c.reorder-initialization 2009-12-18 14:51:38.821212946 -0500 ++++ ConsoleKit-0.4.1/src/main.c 2009-12-18 14:52:19.246211176 -0500 +@@ -294,11 +294,19 @@ main (int argc, + + setup_debug_log (debug); + ++ g_debug ("initializing console-kit-daemon %s", VERSION); ++ + connection = get_system_bus (); + if (connection == NULL) { + goto out; + } + ++ manager = ck_manager_new (); ++ ++ if (manager == NULL) { ++ goto out; ++ } ++ + bus_proxy = get_bus_proxy (connection); + if (bus_proxy == NULL) { + g_warning ("Could not construct bus_proxy object; bailing out"); +@@ -310,16 +318,8 @@ main (int argc, + goto out; + } + +- g_debug ("initializing console-kit-daemon %s", VERSION); +- + create_pid_file (); + +- manager = ck_manager_new (); +- +- if (manager == NULL) { +- goto out; +- } +- + loop = g_main_loop_new (NULL, FALSE); + + g_signal_connect (bus_proxy, diff --git a/abs/extra-testing/cups/PKGBUILD b/abs/extra-testing/cups/PKGBUILD new file mode 100644 index 0000000..e1f13b7 --- /dev/null +++ b/abs/extra-testing/cups/PKGBUILD @@ -0,0 +1,105 @@ +# $Id: PKGBUILD 82848 2010-06-18 06:18:19Z andyrtr $ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> + +pkgbase="cups" +pkgname=('libcups' 'cups') +pkgver=1.4.4 +pkgrel=1 +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 + cups cups.logrotate cups.pam) +#options=('!emptydirs') +md5sums=('8776403ad60fea9e85eab9c04d88560d' + '3388dbe3fc20f16f37912e60a8ec46bc' + '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 + # 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-dnssd\ + --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') +optdepends=('avahi: for the "dnssd" CUPS backend') + + + 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 + + # 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/extra-testing/cups/cups b/abs/extra-testing/cups/cups new file mode 100755 index 0000000..4afaf5a --- /dev/null +++ b/abs/extra-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/extra-testing/cups/cups-1.3.7-peercred.patch b/abs/extra-testing/cups/cups-1.3.7-peercred.patch new file mode 100644 index 0000000..eda2c93 --- /dev/null +++ b/abs/extra-testing/cups/cups-1.3.7-peercred.patch @@ -0,0 +1,11 @@ +diff -Naur cups-1.3.7/scheduler/auth.c cups-1.3.7.new/scheduler/auth.c +--- cups-1.3.7/scheduler/auth.c 2008-03-20 21:58:16.000000000 +0100 ++++ cups-1.3.7.new/scheduler/auth.c 2008-06-09 14:53:45.535194741 +0200 +@@ -54,6 +54,7 @@ + * Include necessary headers... + */ + ++#define _GNU_SOURCE + #include "cupsd.h" + #include <grp.h> + #ifdef HAVE_SHADOW_H diff --git a/abs/extra-testing/cups/cups-avahi.patch b/abs/extra-testing/cups/cups-avahi.patch new file mode 100644 index 0000000..01fcb1a --- /dev/null +++ b/abs/extra-testing/cups/cups-avahi.patch @@ -0,0 +1,1089 @@ +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/extra-testing/cups/cups.install b/abs/extra-testing/cups/cups.install new file mode 100644 index 0000000..97fda5a --- /dev/null +++ b/abs/extra-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/extra-testing/cups/cups.logrotate b/abs/extra-testing/cups/cups.logrotate new file mode 100644 index 0000000..9c49bbd --- /dev/null +++ b/abs/extra-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/extra-testing/cups/cups.pam b/abs/extra-testing/cups/cups.pam new file mode 100644 index 0000000..53724d1 --- /dev/null +++ b/abs/extra-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/extra-testing/cups/fix-infinite-usb-loop.patch b/abs/extra-testing/cups/fix-infinite-usb-loop.patch new file mode 100644 index 0000000..bad179e --- /dev/null +++ b/abs/extra-testing/cups/fix-infinite-usb-loop.patch @@ -0,0 +1,35 @@ +diff -urNad cups-1.4.0~/backend/usb-libusb.c cups-1.4.0/backend/usb-libusb.c +--- cups-1.4.0~/backend/usb-libusb.c 2009-08-08 00:24:14.000000000 +0200 ++++ cups-1.4.0/backend/usb-libusb.c 2009-09-02 16:37:31.000000000 +0200 +@@ -158,7 +158,7 @@ + + while (poll(pfds, 2, -1) > 0) + { +- if (pfds[0].revents & POLLIN) ++ if (pfds[0].revents & (POLLIN + POLLHUP)) + { + if ((bytes = read(print_fd, buffer, sizeof(buffer))) > 0) + { +@@ -179,7 +179,12 @@ + } + + if (pfds[1].revents & POLLIN) +- tbytes += side_cb(printer, print_fd); ++ { ++ if ((bytes = side_cb(printer, print_fd)) < 0) ++ pfds[1].events = 0; /* Filter has gone away... */ ++ else ++ tbytes += bytes; ++ } + } + } + +@@ -747,7 +752,7 @@ + if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0)) + { + _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n")); +- return (0); ++ return (-1); + } + + switch (command) diff --git a/abs/extra-testing/cvs/PKGBUILD b/abs/extra-testing/cvs/PKGBUILD index 488f4a0..26b95db 100644 --- a/abs/extra-testing/cvs/PKGBUILD +++ b/abs/extra-testing/cvs/PKGBUILD @@ -1,20 +1,28 @@ -# $Id: PKGBUILD 20493 2008-12-05 11:27:50Z allan $ -# Maintainer: dorphell <dorphell@archlinux.org> +# $Id: PKGBUILD 75326 2010-04-01 10:25:20Z allan $ +# Contributor: dorphell <dorphell@archlinux.org> + pkgname=cvs pkgver=1.11.23 -pkgrel=3 +pkgrel=5 pkgdesc="Concurrent Versions System - a source control system" arch=(i686 x86_64) -url="http://ximbiot.com/cvs/wiki/index.php" +url="http://cvs.nongnu.org" license=('GPL') -depends=('heimdal>=1.2') -source=(ftp://ftp.gnu.org/non-gnu/cvs/source/stable/$pkgver/$pkgname-$pkgver.tar.bz2) -md5sums=('0213ea514e231559d6ff8f80a34117f0') +depends=('heimdal>=1.3.1') +optdepends=('openssh: for using cvs over ssh' 'inetutils: for using cvs over rsh') +install=cvs.install +source=(ftp://ftp.gnu.org/non-gnu/cvs/source/stable/$pkgver/$pkgname-$pkgver.tar.bz2 + cvs-1.11.23-getline64.patch) +sha256sums=('400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9' + '9126d7992ace943980ad8a10d5a09aeb6f1eeeb9b921fc796fe31de7b1c220cf') build() { - cd $startdir/src/$pkgname-$pkgver + cd $srcdir/$pkgname-$pkgver unset EDITOR VISUAL + + patch -Np1 -i $srcdir/cvs-1.11.23-getline64.patch || return 1 ./configure --prefix=/usr make || return 1 - make DESTDIR=$startdir/pkg install + make DESTDIR=$pkgdir install + rm ${pkgdir}/usr/share/info/dir } diff --git a/abs/extra-testing/cvs/cvs-1.11.23-getline64.patch b/abs/extra-testing/cvs/cvs-1.11.23-getline64.patch new file mode 100644 index 0000000..99942e0 --- /dev/null +++ b/abs/extra-testing/cvs/cvs-1.11.23-getline64.patch @@ -0,0 +1,34 @@ +--- cvs-1.11.23/lib/getline.c 2005-04-04 22:46:05.000000000 +0200 ++++ cvs-1.11.23/lib/getline.c.old 2008-06-03 19:06:25.000000000 +0200 +@@ -154,7 +154,7 @@ + return ret; + } + +-int ++ssize_t + getline (lineptr, n, stream) + char **lineptr; + size_t *n; +@@ -163,7 +163,7 @@ + return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT); + } + +-int ++ssize_t + getline_safe (lineptr, n, stream, limit) + char **lineptr; + size_t *n; +--- cvs-1.11.23/lib/getline.h 2005-04-04 22:46:05.000000000 +0200 ++++ cvs-1.11.23/lib/getline.h.old 2008-06-03 19:06:27.000000000 +0200 +@@ -11,9 +11,9 @@ + + #define GETLINE_NO_LIMIT -1 + +-int ++ssize_t + getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream)); +-int ++ssize_t + getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream, + int limit)); + int diff --git a/abs/extra-testing/cvs/cvs.install b/abs/extra-testing/cvs/cvs.install new file mode 100644 index 0000000..f1cdd1f --- /dev/null +++ b/abs/extra-testing/cvs/cvs.install @@ -0,0 +1,20 @@ +infodir=/usr/share/info +filelist=(cvs.info cvs-info-1 cvs-info-2 cvsclient.info) + +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 +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/extra-testing/gconf/01_xml-gettext-domain.patch b/abs/extra-testing/gconf/01_xml-gettext-domain.patch index 7491ca8..d1323f6 100644 --- a/abs/extra-testing/gconf/01_xml-gettext-domain.patch +++ b/abs/extra-testing/gconf/01_xml-gettext-domain.patch @@ -1,26 +1,17 @@ # Description: Support calling gettext at runtime and putting the gettext domain into the .schemas file instead of replicating translations in /usr/share/gconf/schemas/*.schemas *and* /var/lib/gconf/defaults/%gconf-tree-$LANG.xml. This saves in the order of 90 MB uncompressed/10 MB compressed on hard disks. # Ubuntu: https://bugs.launchpad.net/bugs/123025 # Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=568845 -diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.new/backends/markup-tree.c ---- gconf-2.25.0/backends/markup-tree.c 2009-01-10 05:55:08.000000000 +0100 -+++ gconf-2.25.0.new/backends/markup-tree.c 2009-01-23 12:11:48.000000000 +0100 -@@ -52,6 +52,7 @@ +--- GConf-2.26.0/backends/markup-tree.c.gettext 2009-04-26 23:33:05.258484987 -0400 ++++ GConf-2.26.0/backends/markup-tree.c 2009-04-26 23:34:25.026700526 -0400 +@@ -52,6 +52,7 @@ struct _MarkupEntry char *schema_name; char *mod_user; GTime mod_time; -+ char *gettext_domain; ++ const char *gettext_domain; }; static LocalSchemaInfo* local_schema_info_new (void); -@@ -1351,6 +1352,7 @@ - gconf_value_free (entry->value); - g_free (entry->schema_name); - g_free (entry->mod_user); -+ g_free (entry->gettext_domain); - - g_slist_foreach (entry->local_schemas, - (GFunc) local_schema_info_free, -@@ -1593,6 +1595,8 @@ +@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry gconf_schema_get_type (schema)); gconf_schema_set_owner (current_schema, gconf_schema_get_owner (schema)); @@ -29,7 +20,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n } /* Update mod time */ -@@ -1805,6 +1809,8 @@ +@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent else if (c_local_schema && c_local_schema->long_desc) gconf_schema_set_long_desc (schema, c_local_schema->long_desc); @@ -38,7 +29,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n return retval; } } -@@ -2339,8 +2345,9 @@ +@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext const char *ltype; const char *list_type; const char *owner; @@ -49,7 +40,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n #if 0 g_assert (ELEMENT_IS ("entry") || -@@ -2377,6 +2384,7 @@ +@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext "muser", &dummy2, "mtime", &dummy3, "schema", &dummy4, @@ -57,7 +48,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n NULL)) return; -@@ -2682,6 +2690,7 @@ +@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext const char *mtime; const char *schema; const char *type; @@ -65,7 +56,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n const char *dummy1, *dummy2, *dummy3, *dummy4; const char *dummy5, *dummy6, *dummy7; GConfValue *value; -@@ -2692,6 +2701,7 @@ +@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext mtime = NULL; schema = NULL; type = NULL; @@ -73,7 +64,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n if (!locate_attributes (context, element_name, attribute_names, attribute_values, error, -@@ -2700,6 +2710,7 @@ +@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext "mtime", &mtime, "schema", &schema, "type", &type, @@ -81,17 +72,17 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n /* These are allowed but we don't use them until * parse_value_element -@@ -2767,6 +2778,9 @@ +@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext */ if (schema) entry->schema_name = g_strdup (schema); + + if (gettext_domain) -+ entry->gettext_domain = g_strdup (gettext_domain); ++ entry->gettext_domain = g_intern_string (gettext_domain); } else { -@@ -3705,6 +3719,7 @@ +@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value, GConfSchema *schema; GConfValueType stype; const char *owner; @@ -99,7 +90,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n schema = gconf_value_get_schema (value); -@@ -3730,6 +3745,23 @@ +@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value, g_free (s); } @@ -123,35 +114,79 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/backends/markup-tree.c gconf-2.25.0.n if (stype == GCONF_VALUE_LIST) { -diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new/gconf/gconf-schema.c ---- gconf-2.25.0/gconf/gconf-schema.c 2009-01-10 05:55:07.000000000 +0100 -+++ gconf-2.25.0.new/gconf/gconf-schema.c 2009-01-23 12:11:48.000000000 +0100 -@@ -35,6 +35,7 @@ - gchar* owner; /* Name of creating application */ +diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd +--- GConf-2.26.0/doc/gconf-1.0.dtd.gettext 2009-04-26 23:33:17.240736103 -0400 ++++ GConf-2.26.0/doc/gconf-1.0.dtd 2009-04-26 23:34:25.027700384 -0400 +@@ -7,7 +7,7 @@ + <!-- A single schema. What I am trying to say is "this set of + elements, in any order". Duplicate elements (apart from <locale>) are + not allowed). --> +-<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*)*> ++<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*|gettext_domain?)*> + + <!-- The key for this schema (e.g. /schemas/apps/foo/bar) --> + <!ELEMENT key (#PCDATA)> +diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c +--- GConf-2.26.0/gconf/gconf-internals.c.gettext 2009-04-26 23:34:10.994700035 -0400 ++++ GConf-2.26.0/gconf/gconf-internals.c 2009-04-26 23:34:53.767450191 -0400 +@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem + cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : ""); + cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : ""); + cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : ""); ++ cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : ""); + + { + gchar* encoded; +@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con + gconf_schema_set_owner(sc, cs->owner); + } + ++ if (*cs->gettext_domain != '\0') ++ { ++ if (!g_utf8_validate (cs->gettext_domain, -1, NULL)) ++ gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema")); ++ else ++ gconf_schema_set_gettext_domain(sc, cs->gettext_domain); ++ } ++ + { + GConfValue* val; + +diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c +--- GConf-2.26.0/gconf/gconf-schema.c.gettext 2009-04-26 23:33:26.787483545 -0400 ++++ GConf-2.26.0/gconf/gconf-schema.c 2009-04-26 23:35:54.240450142 -0400 +@@ -32,9 +32,10 @@ typedef struct { + GConfValueType car_type; /* Pair car type of the described entry */ + GConfValueType cdr_type; /* Pair cdr type of the described entry */ + gchar* locale; /* Schema locale */ +- gchar* owner; /* Name of creating application */ ++ const gchar* owner; /* Name of creating application */ gchar* short_desc; /* 40 char or less description, no newlines */ gchar* long_desc; /* could be a paragraph or so */ -+ gchar* gettext_domain; /* description gettext domain */ ++ const gchar* gettext_domain; /* description gettext domain */ GConfValue* default_value; /* Default value of the key */ } GConfRealSchema; -@@ -63,6 +64,7 @@ +@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc) g_free (real->locale); g_free (real->short_desc); g_free (real->long_desc); -+ g_free (real->gettext_domain); - g_free (real->owner); +- g_free (real->owner); if (real->default_value) -@@ -91,6 +93,8 @@ + gconf_value_free (real->default_value); +@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc dest->long_desc = g_strdup (real->long_desc); -+ dest->gettext_domain = g_strdup (real->gettext_domain); +- dest->owner = g_strdup (real->owner); ++ dest->gettext_domain = real->gettext_domain; + - dest->owner = g_strdup (real->owner); ++ dest->owner = real->owner; dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL; -@@ -136,6 +140,20 @@ + +@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc REAL_SCHEMA (sc)->locale = NULL; } @@ -160,11 +195,8 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new +{ + g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL)); + -+ if (REAL_SCHEMA (sc)->gettext_domain) -+ g_free (REAL_SCHEMA (sc)->gettext_domain); -+ + if (domain) -+ REAL_SCHEMA (sc)->gettext_domain = g_strdup (domain); ++ REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain); + else + REAL_SCHEMA (sc)->gettext_domain = NULL; +} @@ -172,7 +204,20 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new void gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc) { -@@ -228,6 +246,14 @@ +@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc, + { + g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL)); + +- if (REAL_SCHEMA (sc)->owner) +- g_free (REAL_SCHEMA (sc)->owner); +- + if (owner) +- REAL_SCHEMA (sc)->owner = g_strdup (owner); ++ REAL_SCHEMA (sc)->owner = g_intern_string (owner); + else + REAL_SCHEMA (sc)->owner = NULL; + } +@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema return FALSE; } @@ -187,7 +232,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new if (real->owner && !g_utf8_validate (real->owner, -1, NULL)) { g_set_error (err, GCONF_ERROR, -@@ -299,11 +325,22 @@ +@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche } const char* @@ -198,35 +243,42 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.c gconf-2.25.0.new + return REAL_SCHEMA (schema)->gettext_domain; +} + ++static inline const char * ++schema_translate (const GConfSchema *schema, ++ const char *string) ++{ ++ if (REAL_SCHEMA (schema)->gettext_domain) ++ { ++ bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8"); ++ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string); ++ } ++ else ++ return string; ++} ++ +const char* gconf_schema_get_short_desc (const GConfSchema *schema) { g_return_val_if_fail (schema != NULL, NULL); - return REAL_SCHEMA (schema)->short_desc; -+ if (REAL_SCHEMA (schema)->gettext_domain) -+ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, REAL_SCHEMA (schema)->short_desc); -+ else -+ return REAL_SCHEMA (schema)->short_desc; ++ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc); } const char* -@@ -311,7 +348,10 @@ +@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS { g_return_val_if_fail (schema != NULL, NULL); - return REAL_SCHEMA (schema)->long_desc; -+ if (REAL_SCHEMA (schema)->gettext_domain) -+ return dgettext(REAL_SCHEMA (schema)->gettext_domain, REAL_SCHEMA (schema)->long_desc); -+ else -+ return REAL_SCHEMA (schema)->long_desc; ++ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc); } const char* -diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.h gconf-2.25.0.new/gconf/gconf-schema.h ---- gconf-2.25.0/gconf/gconf-schema.h 2009-01-10 05:55:07.000000000 +0100 -+++ gconf-2.25.0.new/gconf/gconf-schema.h 2009-01-23 12:11:48.000000000 +0100 -@@ -48,6 +48,8 @@ +diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h +--- GConf-2.26.0/gconf/gconf-schema.h.gettext 2009-04-26 23:33:33.979744088 -0400 ++++ GConf-2.26.0/gconf/gconf-schema.h 2009-04-26 23:34:25.030737043 -0400 +@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type GConfValueType type); void gconf_schema_set_locale (GConfSchema *sc, const gchar *locale); @@ -235,7 +287,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.h gconf-2.25.0.new void gconf_schema_set_short_desc (GConfSchema *sc, const gchar *desc); void gconf_schema_set_long_desc (GConfSchema *sc, -@@ -65,6 +67,7 @@ +@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ GConfValueType gconf_schema_get_car_type (const GConfSchema *schema); GConfValueType gconf_schema_get_cdr_type (const GConfSchema *schema); const char* gconf_schema_get_locale (const GConfSchema *schema); @@ -243,10 +295,10 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconf-schema.h gconf-2.25.0.new const char* gconf_schema_get_short_desc (const GConfSchema *schema); const char* gconf_schema_get_long_desc (const GConfSchema *schema); const char* gconf_schema_get_owner (const GConfSchema *schema); -diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gconf/gconftool.c ---- gconf-2.25.0/gconf/gconftool.c 2009-01-10 05:55:07.000000000 +0100 -+++ gconf-2.25.0.new/gconf/gconftool.c 2009-01-23 12:11:48.000000000 +0100 -@@ -3293,6 +3293,7 @@ +diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c +--- GConf-2.26.0/gconf/gconftool.c.gettext 2009-04-26 23:33:41.907451190 -0400 ++++ GConf-2.26.0/gconf/gconftool.c 2009-04-26 23:34:25.034736752 -0400 +@@ -3295,6 +3295,7 @@ struct _SchemaInfo { GConfValueType cdr_type; GConfValue* global_default; GHashTable* hash; @@ -254,7 +306,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc }; static int -@@ -3545,6 +3546,15 @@ +@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node, else g_printerr (_("WARNING: empty <applyto> node")); } @@ -270,7 +322,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc else g_printerr (_("WARNING: node <%s> not understood below <schema>\n"), iter->name); -@@ -3634,6 +3644,9 @@ +@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch if (info->owner != NULL) gconf_schema_set_owner(schema, info->owner); @@ -280,7 +332,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc xmlFree(name); /* Locale-specific info */ -@@ -3763,6 +3776,7 @@ +@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch info.apply_to = NULL; info.owner = NULL; info.global_default = NULL; @@ -288,7 +340,7 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc info.hash = g_hash_table_new(g_str_hash, g_str_equal); extract_global_info(node, &info); -@@ -3799,6 +3813,8 @@ +@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch ; /* nothing */ else if (strcmp((char *)iter->name, "applyto") == 0) ; /* nothing */ @@ -297,3 +349,14 @@ diff -Nur -x '*.orig' -x '*~' gconf-2.25.0/gconf/gconftool.c gconf-2.25.0.new/gc else if (strcmp((char *)iter->name, "locale") == 0) { process_locale_info(iter, &info); +diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl +--- GConf-2.26.0/gconf/GConfX.idl.gettext 2009-04-26 23:33:58.457483190 -0400 ++++ GConf-2.26.0/gconf/GConfX.idl 2009-04-26 23:34:53.764448732 -0400 +@@ -16,6 +16,7 @@ struct ConfigSchema { + string short_desc; + string long_desc; + string owner; ++ string gettext_domain; + // Work around lack of recursive data types + string encoded_default_value; + }; diff --git a/abs/extra-testing/gconf/PKGBUILD b/abs/extra-testing/gconf/PKGBUILD index 053e26a..3da7a0c 100644 --- a/abs/extra-testing/gconf/PKGBUILD +++ b/abs/extra-testing/gconf/PKGBUILD @@ -1,45 +1,38 @@ -# $Id: PKGBUILD 33882 2009-04-05 19:42:30Z jgc $ +# $Id: PKGBUILD 74317 2010-03-30 19:00:27Z ibiru $ # Maintainer: Jan de Groot <jan@archlinux.org> pkgname=gconf -pkgver=2.26.0 -pkgrel=3 +pkgver=2.28.1 +pkgrel=1 pkgdesc="A configuration database system" arch=(i686 x86_64) license=('LGPL') -depends=('orbit2>=2.14.17' 'gtk2>=2.16.0' 'libxml2>=2.7.3' 'policykit>=0.9' 'libldap>=2.3.43') -makedepends=('pkgconfig' 'intltool>=0.40.6' 'gtk-doc>=1.10') +depends=('orbit2>=2.14.17' 'gtk2>=2.20.0' 'libxml2>=2.7.7' 'polkit>=0.96' 'libldap>=2.4.18' 'dbus') +makedepends=('pkgconfig' 'intltool' 'gtk-doc') options=('!libtool') install=gconf.install url="http://www.gnome.org" -source=(http://ftp.gnome.org/pub/gnome/sources/GConf/2.26/GConf-${pkgver}.tar.bz2 - gconf-merge-schema - gconfpkg - gconf-reload.patch - xml-gettext-domain.patch - 05_from_vuntz_gconf2-pk-default-path.patch) -md5sums=('b010f0de356ea093c6a73778b13de956' +source=(http://ftp.gnome.org/pub/gnome/sources/GConf/2.28/GConf-${pkgver}.tar.bz2 + gconf-merge-schema + gconfpkg + gconf-reload.patch + 01_xml-gettext-domain.patch) +md5sums=('27663faf0af4f6a6d534de9270f6d24a' '240b473fa17b748fc9020caf372d936c' 'b745f04b4121d8724c002b14a4c110b6' 'cfcc8e15be7b8a48de4aa34336ff6090' - '1c8a0eece8202c4c2fbba596fe0d9c67' - 'd9a02aee25ec04f2340f4e98963aabb0') + '1f9362976d71312bdb57c57fa031681d') build() { cd "${srcdir}/GConf-${pkgver}" # Patch from fedora - reloads gconf after installing schemas patch -Np1 -i "${srcdir}/gconf-reload.patch" || return 1 # http://bugzilla.gnome.org/show_bug.cgi?id=568845 - patch -Np1 -i "${srcdir}/xml-gettext-domain.patch" || return 1 - # Patch from Ubuntu: change default path - patch -Np1 -i "${srcdir}/05_from_vuntz_gconf2-pk-default-path.patch" || return 1 - libtoolize --force --copy || return 1 - aclocal || return 1 - autoconf || return 1 - automake --add-missing || return 1 + patch -Np1 -i "${srcdir}/01_xml-gettext-domain.patch" || return 1 + ./configure --prefix=/usr --sysconfdir=/etc \ - --localstatedir=/var --libexecdir=/usr/lib/GConf \ - --disable-static --enable-defaults-service || return 1 + --localstatedir=/var --libexecdir=/usr/lib/GConf \ + --disable-static --enable-defaults-service || return 1 make pkglibdir=/usr/lib/GConf || return 1 make DESTDIR="${pkgdir}" install || return 1 install -m755 -d "${pkgdir}/etc/gconf/gconf.xml.system" || return 1 diff --git a/abs/extra-testing/gnome-common/PKGBUILD b/abs/extra-testing/gnome-common/PKGBUILD new file mode 100644 index 0000000..e0078dd --- /dev/null +++ b/abs/extra-testing/gnome-common/PKGBUILD @@ -0,0 +1,19 @@ +# $Id: PKGBUILD 54859 2009-10-11 19:55:23Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=gnome-common +pkgver=2.28.0 +pkgrel=1 +pkgdesc="Common development macros for GNOME2" +arch=(any) +license=('GPL') +url="http://www.gnome.org" +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2) +sha256sums=('dd4817103d23745d00c735dd137951552ba7b576cb8f68e6a529d06661e9b6a1') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr || return 1 + make || return 1 + make DESTDIR="${pkgdir}" install || return 1 +} diff --git a/abs/extra-testing/gnome-vfs/PKGBUILD b/abs/extra-testing/gnome-vfs/PKGBUILD index 9a54cdd..b8434a7 100644 --- a/abs/extra-testing/gnome-vfs/PKGBUILD +++ b/abs/extra-testing/gnome-vfs/PKGBUILD @@ -1,35 +1,45 @@ -# $Id: PKGBUILD 30314 2009-03-18 21:34:12Z jgc $ +# $Id: PKGBUILD 75359 2010-04-01 11:48:46Z allan $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gnome-vfs -pkgver=2.24.1 +pkgver=2.24.3 pkgrel=2 pkgdesc="The GNOME Virtual File System" arch=(i686 x86_64) license=('LGPL') -depends=('fam' 'gconf>=2.26.0-2' 'hal>=0.5.11' 'bzip2' 'avahi>=0.6.24' 'smbclient>=3.3.1' 'gnome-mime-data>=2.18.0-2' 'heimdal>=1.2.1' 'gnutls>=2.6.4') -makedepends=('pkgconfig' 'intltool') -options=('!libtool' '!emptydirs') +depends=('fam' 'gconf>=2.28.0' 'hal>=0.5.13' 'bzip2' 'avahi>=0.6.25' 'smbclient>=3.3.7' 'gnome-mime-data>=2.18.0-2' 'heimdal>=1.3.1' 'gnutls>=2.8.3') +makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gnome-common') +options=('!libtool' '!emptydirs' '!makeflags') conflicts=(gnome-vfs-samba) provides=(gnome-vfs-samba) replaces=(gnome-vfs-samba gnome-vfs-extras) url="http://www.gnome.org" install=gnome-vfs.install source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.24/gnome-vfs-${pkgver}.tar.bz2 - hal-show-volume-names.patch) -md5sums=('100f9af16dc659e375ee8da45175a28d' '109d07aa1dc8cb6523c47c4984047dce') + hal-show-volume-names.patch + gnutls-config.patch) +sha256sums=('3b0f342e79813bfc11d8e636db96b3ffd16c9ca48b07306410e09a3fd1065b4a' + 'b38b86d6c966dcf64f9140d800aebe8a14845bb8ce7c045f52d4df483cacd23b' + '66c7cfb12995c0dd94a2caea95c7e3c55981993f05a79c585d60915ff131955d') build() { cd "${srcdir}/${pkgname}-${pkgver}" #Archlinux patch (b.g.o #321498) - patch -Np1 -i ${startdir}/src/hal-show-volume-names.patch || return 1 + patch -Np1 -i "${srcdir}/hal-show-volume-names.patch" || return 1 + #Fix build with new gnutls + patch -Np1 -i "${srcdir}/gnutls-config.patch" || return 1 + libtoolize --force || return 1 + gtkdocize || return 1 + aclocal || return 1 + autoconf || return 1 + automake || return 1 ./configure --prefix=/usr --sysconfdir=/etc \ - --localstatedir=/var --disable-static \ - --libexecdir=/usr/lib/gnome-vfs-2.0 \ - --enable-samba --enable-hal \ - --enable-avahi --disable-howl \ - --disable-openssl --enable-gnutls || return 1 + --localstatedir=/var --disable-static \ + --libexecdir=/usr/lib/gnome-vfs-2.0 \ + --enable-samba --enable-hal \ + --enable-avahi --disable-howl \ + --disable-openssl --enable-gnutls || return 1 make || return 1 make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1 diff --git a/abs/extra-testing/gnome-vfs/gnutls-config.patch b/abs/extra-testing/gnome-vfs/gnutls-config.patch new file mode 100644 index 0000000..f6fa18b --- /dev/null +++ b/abs/extra-testing/gnome-vfs/gnutls-config.patch @@ -0,0 +1,25 @@ +# Allow gnome-vfs-2.24 to build with gnutls >= 2.7.0 +# Use pkg-config in place of gnutls own macro since it's not present anymore. +--- a/configure.in 2009-03-07 19:59:53.805507753 +0100 ++++ b/configure.in 2009-03-07 18:34:36.928169018 +0100 +@@ -686,14 +686,14 @@ + AC_MSG_ERROR([*** Can't use both openssl and gnutls at the same time. Please pick one only. ***]) + else + AC_CHECK_HEADER(gcrypt.h,, AC_MSG_ERROR([*** Need gcrypt.h to compile with GnuTLS support ***])) +- AM_PATH_LIBGNUTLS(1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available]) +- have_ssl=true]) ++ PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available]) ++ have_ssl=true]) + + if test "x${LIBGNUTLS_LIBS}" = "x"; then +- AM_PATH_LIBGNUTLS(0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available]) +- AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME]) +- have_ssl=true], +- AC_MSG_ERROR([Unable to find GNUTLS])) ++ PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available]) ++ AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME]) ++ have_ssl=true], ++ AC_MSG_ERROR([Unable to find GNUTLS])) + fi + fi + fi diff --git a/abs/extra-testing/libmng/PKGBUILD b/abs/extra-testing/libmng/PKGBUILD new file mode 100644 index 0000000..6607718 --- /dev/null +++ b/abs/extra-testing/libmng/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 63248 2010-01-16 20:44:09Z jgc $ +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> +# Maintainer: judd <jvinet@zeroflux.org> +pkgname=libmng +pkgver=1.0.10 +pkgrel=3 +pkgdesc="A collection of routines used to create and manipulate MNG format graphics files" +arch=('i686' 'x86_64') +url="http://www.libmng.com/" +license=('custom') +depends=('zlib' 'libjpeg>=8') +options=(!libtool) +source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz) +md5sums=('a464ae7d679781beebdf7440d144b7bd') + +build() { + cd $srcdir/$pkgname-$pkgver + ln -s makefiles/configure.in . + ln -s makefiles/Makefile.am . + autoreconf --force --install + ./configure --prefix=/usr + make || return 1 + make DESTDIR=$pkgdir install || return 1 + install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE +} diff --git a/abs/extra-testing/pm-quirks/PKGBUILD b/abs/extra-testing/pm-quirks/PKGBUILD new file mode 100644 index 0000000..4420a62 --- /dev/null +++ b/abs/extra-testing/pm-quirks/PKGBUILD @@ -0,0 +1,19 @@ +# $Id: PKGBUILD 83844 2010-06-23 08:48:25Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=pm-quirks +_date=20100619 +pkgver=0.${_date} +pkgrel=1 +pkgdesc="Quirks data for pm-utils" +arch=(any) +license=('GPL') +url="http://pm-utils.freedesktop.org/wiki/" +source=(http://pm-utils.freedesktop.org/releases/${pkgname}-${_date}.tar.gz) +md5sums=('3b6ee39056b9ece0cd5e073a4c272b05') + +build() { + cd "${srcdir}"/video-quirks + install -m755 -d "${pkgdir}/usr/lib/pm-utils/video-quirks" + install -m644 *.quirkdb "${pkgdir}/usr/lib/pm-utils/video-quirks/" || return 1 +} diff --git a/abs/extra-testing/policykit-gnome/PKGBUILD b/abs/extra-testing/policykit-gnome/PKGBUILD deleted file mode 100644 index e6a7d9c..0000000 --- a/abs/extra-testing/policykit-gnome/PKGBUILD +++ /dev/null @@ -1,32 +0,0 @@ -# Maintainer: Jan de Groot <jgc@archlinux.org> -# Contributor: onestep_ua <onestep@ukr.net> - -pkgname=policykit-gnome -pkgver=0.9.2 -pkgrel=2 -pkgdesc="PolicyKit integration for the GNOME desktop" -arch=('i686' 'x86_64') -url="http://hal.freedesktop.org/docs/PolicyKit-gnome/" -license=('GPL') -depends=('gconf>=2.24.0') -makedepends=('intltool' 'gtk-doc' 'gnome-doc-utils>=0.14.0') -options=(!emptydirs !libtool) -install=${pkgname}.install -source=(http://hal.freedesktop.org/releases/PolicyKit-gnome-${pkgver}.tar.bz2) -md5sums=('fc478b168d0c926a9766b0b415ff4bbf') - -build() { - cd "${srcdir}/PolicyKit-gnome-${pkgver}" - - ./configure --prefix=/usr \ - --sysconfdir=/etc \ - --libexecdir=/usr/lib/PolicyKit \ - --disable-gtk-doc \ - --disable-examples || return 1 - make || return 1 - make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1 - - install -m 755 -d "${pkgdir}/usr/share/gconf/schemas" - gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" ${pkgdir}/etc/gconf/schemas/*.schemas || return 1 - rm -f ${pkgdir}/etc/gconf/schemas/*.schemas -} diff --git a/abs/extra-testing/policykit-gnome/policykit-gnome.install b/abs/extra-testing/policykit-gnome/policykit-gnome.install deleted file mode 100644 index e2593d3..0000000 --- a/abs/extra-testing/policykit-gnome/policykit-gnome.install +++ /dev/null @@ -1,23 +0,0 @@ -pkgname=policykit-gnome - -## arg 1: the new package version -post_install() { - usr/sbin/gconfpkg --install ${pkgname} -} - -## arg 1: the new package version -## arg 2: the old package version -pre_upgrade() { - pre_remove $1 -} - -## arg 1: the new package version -## arg 2: the old package version -post_upgrade() { - post_install $1 -} - -## arg 1: the old package version -pre_remove() { - usr/sbin/gconfpkg --uninstall ${pkgname} -} diff --git a/abs/extra-testing/policykit/PKGBUILD b/abs/extra-testing/policykit/PKGBUILD deleted file mode 100644 index d7dd90e..0000000 --- a/abs/extra-testing/policykit/PKGBUILD +++ /dev/null @@ -1,43 +0,0 @@ -# $Id: $ -# Maintainer: Jan de Groot <jgc@archlinux.org> - -pkgname=policykit -pkgver=0.9 -pkgrel=9 -pkgdesc="Application development toolkit for controlling system-wide privileges" -arch=(i686 x86_64) -license=('custom') -url="http://hal.freedesktop.org/docs/PolicyKit/" -depends=('dbus-glib>=0.80' 'expat>=2.0.1' 'pam') -makedepends=('intltool' 'docbook-xsl' 'gtk-doc') -options=('!libtool') -backup=('etc/PolicyKit/PolicyKit.conf') -install=policykit.install -source=(http://hal.freedesktop.org/releases/PolicyKit-${pkgver}.tar.gz - polkit.pam - pk-ck-api-change.patch - polkit-0.8-dbus-policy.patch - entry-leak.patch) -md5sums=('802fd13ae41f73d79359e5ecb0a98716' - '6564f95878297b954f0572bc1610dd15' - '15b42b41e98410d8d7ec4f91d0cff190' - 'da5129eee9517d00985a354055d778a9' - '62adbf90657b17dae429fc92937af513') - -build() { - cd "${srcdir}/PolicyKit-${pkgver}" - patch -Np1 -i "${srcdir}/pk-ck-api-change.patch" || return 1 - patch -Np1 -i "${srcdir}/polkit-0.8-dbus-policy.patch" || return 1 - patch -Np1 -i "${srcdir}/entry-leak.patch" || return 1 - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --libexecdir=/usr/lib/PolicyKit --disable-static \ - --with-polkit-user=policykit --with-polkit-group=policykit || return 1 - make || return 1 - make DESTDIR="${pkgdir}" install || return 1 - - install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" - install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 - - rm -rf "${pkgdir}/etc/profile.d" - install -m644 "${srcdir}/polkit.pam" "${pkgdir}/etc/pam.d/polkit" || return 1 -} diff --git a/abs/extra-testing/policykit/entry-leak.patch b/abs/extra-testing/policykit/entry-leak.patch deleted file mode 100644 index f6b3295..0000000 --- a/abs/extra-testing/policykit/entry-leak.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -up PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c.entry-leak PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c ---- PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c.entry-leak 2008-08-29 21:47:22.000000000 -0400 -+++ PolicyKit-0.9/src/polkit/polkit-policy-file-entry.c 2008-08-29 21:50:13.000000000 -0400 -@@ -95,9 +95,11 @@ _polkit_policy_file_entry_new (const c - char *contents; - size_t contents_size; - PolKitPolicyFileEntry *pfe; -+ char **tokens; - - path = NULL; - contents = NULL; -+ tokens = NULL; - - kit_return_val_if_fail (action_id != NULL && polkit_action_validate_id (action_id), NULL); - -@@ -153,7 +155,6 @@ _polkit_policy_file_entry_new (const c - } - - if (contents != NULL) { -- char **tokens; - size_t num_tokens; - PolKitResult any; - PolKitResult inactive; -@@ -183,11 +184,13 @@ _polkit_policy_file_entry_new (const c - - kit_free (path); - kit_free (contents); -+ kit_strfreev (tokens); - - return pfe; - error: - kit_free (path); - kit_free (contents); -+ kit_strfreev (tokens); - if (pfe != NULL) - polkit_policy_file_entry_unref (pfe); - return NULL; diff --git a/abs/extra-testing/policykit/pk-ck-api-change.patch b/abs/extra-testing/policykit/pk-ck-api-change.patch deleted file mode 100644 index ae477f9..0000000 --- a/abs/extra-testing/policykit/pk-ck-api-change.patch +++ /dev/null @@ -1,83 +0,0 @@ -diff --git a/src/polkit-dbus/polkit-dbus.c b/src/polkit-dbus/polkit-dbus.c -index f7be03f..cad4a76 100644 ---- a/src/polkit-dbus/polkit-dbus.c -+++ b/src/polkit-dbus/polkit-dbus.c -@@ -214,11 +214,17 @@ polkit_session_new_from_objpath (DBusConnection *con, const char *objpath, uid_t - dbus_message_unref (reply); - goto out; - } -+ /* GetUnixUser API Changed in CK 0.3.0 */ - if (!dbus_message_get_args (reply, NULL, -- DBUS_TYPE_INT32, &uid, -+ DBUS_TYPE_UINT32, &uid, - DBUS_TYPE_INVALID)) { -- kit_warning ("Invalid GetUnixUser reply from CK"); -- goto out; -+ /* try the older API */ -+ if (!dbus_message_get_args (reply, NULL, -+ DBUS_TYPE_INT32, &uid, -+ DBUS_TYPE_INVALID)) { -+ kit_warning ("Invalid GetUnixUser reply from CK"); -+ goto out; -+ } - } - dbus_message_unref (message); - dbus_message_unref (reply); -@@ -1326,16 +1332,21 @@ polkit_tracker_dbus_func (PolKitTracker *pk_tracker, DBusMessage *message) - - dbus_error_init (&error); - seat_objpath = dbus_message_get_path (message); -- if (!dbus_message_get_args (message, &error, -- DBUS_TYPE_STRING, &session_objpath, -+ /* API fixed in CK 0.3 to match spec */ -+ if (!dbus_message_get_args (message, &error, -+ DBUS_TYPE_OBJECT_PATH, &session_objpath, - DBUS_TYPE_INVALID)) { -+ if (!dbus_message_get_args (message, &error, -+ DBUS_TYPE_STRING, &session_objpath, -+ DBUS_TYPE_INVALID)) { - -- /* TODO: should be _pk_critical */ -- kit_warning ("The SessionAdded signal on the org.freedesktop.ConsoleKit.Seat " -- "interface for object %s has the wrong signature! " -- "Your system is misconfigured.", seat_objpath); -+ /* TODO: should be _pk_critical */ -+ kit_warning ("The SessionAdded signal on the org.freedesktop.ConsoleKit.Seat " -+ "interface for object %s has the wrong signature! " -+ "Your system is misconfigured.", seat_objpath); - -- goto out; -+ goto out; -+ } - } - - /* TODO: add to sessions - see polkit_tracker_is_authorization_relevant() */ -@@ -1353,16 +1364,21 @@ polkit_tracker_dbus_func (PolKitTracker *pk_tracker, DBusMessage *message) - - dbus_error_init (&error); - seat_objpath = dbus_message_get_path (message); -- if (!dbus_message_get_args (message, &error, -- DBUS_TYPE_STRING, &session_objpath, -+ /* API fixed in CK 0.3 to match spec */ -+ if (!dbus_message_get_args (message, &error, -+ DBUS_TYPE_OBJECT_PATH, &session_objpath, - DBUS_TYPE_INVALID)) { -+ if (!dbus_message_get_args (message, &error, -+ DBUS_TYPE_STRING, &session_objpath, -+ DBUS_TYPE_INVALID)) { - -- /* TODO: should be _pk_critical */ -- kit_warning ("The SessionRemoved signal on the org.freedesktop.ConsoleKit.Seat " -- "interface for object %s has the wrong signature! " -- "Your system is misconfigured.", seat_objpath); -+ /* TODO: should be _pk_critical */ -+ kit_warning ("The SessionRemoved signal on the org.freedesktop.ConsoleKit.Seat " -+ "interface for object %s has the wrong signature! " -+ "Your system is misconfigured.", seat_objpath); - -- goto out; -+ goto out; -+ } - } - - _remove_caller_by_session (pk_tracker, session_objpath); diff --git a/abs/extra-testing/policykit/policykit.install b/abs/extra-testing/policykit/policykit.install deleted file mode 100644 index 7bc653e..0000000 --- a/abs/extra-testing/policykit/policykit.install +++ /dev/null @@ -1,30 +0,0 @@ -post_install() { - getent group policykit >/dev/null || usr/sbin/groupadd -g 102 policykit - getent passwd policykit >/dev/null || usr/sbin/useradd -c 'PolicyKit' -u 102 -g policykit -d '/' -s /sbin/nologin policykit - usr/bin/passwd -l policykit &>/dev/null - - # set correct permissions - chgrp policykit var/{run,lib}/PolicyKit - chown policykit var/lib/PolicyKit-public - chown policykit:policykit var/lib/misc/PolicyKit.reload - - chown policykit usr/lib/PolicyKit/polkit-set-default-helper - chmod u+s usr/lib/PolicyKit/polkit-set-default-helper - - for i in polkit-read-auth-helper polkit-revoke-helper polkit-grant-helper polkit-explicit-grant-helper; do - chgrp policykit usr/lib/PolicyKit/$i - chmod g+s usr/lib/PolicyKit/$i - done - - chgrp policykit usr/lib/PolicyKit/polkit-grant-helper-pam - chmod u+s usr/lib/PolicyKit/polkit-grant-helper-pam -} - -post_upgrade() { - post_install -} - -post_remove() { - usr/sbin/userdel policykit &>/dev/null - usr/sbin/groupdel policykit &>/dev/null -} diff --git a/abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch b/abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch deleted file mode 100644 index fa84936..0000000 --- a/abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- PolicyKit-0.8.orig/polkitd/org.freedesktop.PolicyKit.conf.in 2008-12-08 10:55:12.000000000 -0500 -+++ PolicyKit-0.8/polkitd/org.freedesktop.PolicyKit.conf.in 2008-12-08 12:05:33.000000000 -0500 -@@ -8,4 +8,9 @@ - <policy user="@polkituser@"> - <allow own="org.freedesktop.PolicyKit"/> - </policy> -+ -+ <!-- any user can talk to the service (fd.o #18948) --> -+ <policy context="default"> -+ <allow send_destination="org.freedesktop.PolicyKit"/> -+ </policy> - </busconfig> diff --git a/abs/extra-testing/polkit-gnome/PKGBUILD b/abs/extra-testing/polkit-gnome/PKGBUILD new file mode 100644 index 0000000..06c375c --- /dev/null +++ b/abs/extra-testing/polkit-gnome/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: onestep_ua <onestep@ukr.net> + +pkgname=polkit-gnome +pkgver=0.96 +pkgrel=3 +pkgdesc="PolicyKit integration for the GNOME desktop" +arch=('i686' 'x86_64') +url="http://www.freedesktop.org/wiki/Software/PolicyKit" +license=('LGPL') +depends=('polkit>=0.96' 'gtk2>=2.18.6') +makedepends=('intltool') +replaces=('policykit-gnome') +options=(!libtool !makeflags) +source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2) +md5sums=('611cf39fba2945320fc7a9ec49087e69') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + sed -i -e 's/OnlyShowIn=GNOME/NotShowIn=KDE/' src/polkit-gnome-authentication-agent-1.desktop.in.in || return 1 + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/polkit-gnome --disable-static --disable-introspection || return 1 + make || return 1 + make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1 +} diff --git a/abs/extra-testing/polkit/PKGBUILD b/abs/extra-testing/polkit/PKGBUILD new file mode 100644 index 0000000..78cbc77 --- /dev/null +++ b/abs/extra-testing/polkit/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 72186 2010-03-13 19:06:23Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=polkit +pkgver=0.96 +pkgrel=2 +pkgdesc="Application development toolkit for controlling system-wide privileges" +arch=(i686 x86_64) +license=('LGPL') +url="http://www.freedesktop.org/wiki/Software/Policykit" +depends=('eggdbus>=0.6' 'pam') +makedepends=('intltool' 'gtk-doc' 'gobject-introspection') +replaces=('policykit') +options=('!libtool') +source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz + polkit.pam) +md5sums=('e0a06da501b04ed3bab986a9df5b5aa2' + '6564f95878297b954f0572bc1610dd15') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --libexecdir=/usr/lib/polkit-1 \ + --disable-static --enable-gtk-doc || return 1 + make || return 1 + make DESTDIR="${pkgdir}" install || return 1 + + install -m644 "${srcdir}/polkit.pam" "${pkgdir}/etc/pam.d/polkit-1" || return 1 +} diff --git a/abs/extra-testing/policykit/polkit.pam b/abs/extra-testing/polkit/polkit.pam index 04f53e0..04f53e0 100644 --- a/abs/extra-testing/policykit/polkit.pam +++ b/abs/extra-testing/polkit/polkit.pam |