summaryrefslogtreecommitdiffstats
path: root/abs/extra-testing
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra-testing')
-rw-r--r--abs/extra-testing/alsa-firmware/PKGBUILD33
-rwxr-xr-xabs/extra-testing/autofs/PKGBUILD27
-rw-r--r--abs/extra-testing/autofs/autofs50
-rw-r--r--abs/extra-testing/consolekit/PKGBUILD42
-rw-r--r--abs/extra-testing/consolekit/consolekit.logrotate5
-rw-r--r--abs/extra-testing/consolekit/nodaemon.patch9
-rw-r--r--abs/extra-testing/consolekit/pam-foreground-compat.ck16
-rw-r--r--abs/extra-testing/consolekit/reorder-initialization.patch40
-rw-r--r--abs/extra-testing/cups/PKGBUILD105
-rwxr-xr-xabs/extra-testing/cups/cups38
-rw-r--r--abs/extra-testing/cups/cups-1.3.7-peercred.patch11
-rw-r--r--abs/extra-testing/cups/cups-avahi.patch1089
-rw-r--r--abs/extra-testing/cups/cups.install11
-rw-r--r--abs/extra-testing/cups/cups.logrotate8
-rw-r--r--abs/extra-testing/cups/cups.pam3
-rw-r--r--abs/extra-testing/cups/fix-infinite-usb-loop.patch35
-rw-r--r--abs/extra-testing/cvs/PKGBUILD26
-rw-r--r--abs/extra-testing/cvs/cvs-1.11.23-getline64.patch34
-rw-r--r--abs/extra-testing/cvs/cvs.install20
-rw-r--r--abs/extra-testing/gconf/01_xml-gettext-domain.patch193
-rw-r--r--abs/extra-testing/gconf/PKGBUILD39
-rw-r--r--abs/extra-testing/gnome-common/PKGBUILD19
-rw-r--r--abs/extra-testing/gnome-vfs/PKGBUILD36
-rw-r--r--abs/extra-testing/gnome-vfs/gnutls-config.patch25
-rw-r--r--abs/extra-testing/libmng/PKGBUILD25
-rw-r--r--abs/extra-testing/pm-quirks/PKGBUILD19
-rw-r--r--abs/extra-testing/policykit-gnome/PKGBUILD32
-rw-r--r--abs/extra-testing/policykit-gnome/policykit-gnome.install23
-rw-r--r--abs/extra-testing/policykit/PKGBUILD43
-rw-r--r--abs/extra-testing/policykit/entry-leak.patch37
-rw-r--r--abs/extra-testing/policykit/pk-ck-api-change.patch83
-rw-r--r--abs/extra-testing/policykit/policykit.install30
-rw-r--r--abs/extra-testing/policykit/polkit-0.8-dbus-policy.patch12
-rw-r--r--abs/extra-testing/polkit-gnome/PKGBUILD24
-rw-r--r--abs/extra-testing/polkit/PKGBUILD29
-rw-r--r--abs/extra-testing/polkit/polkit.pam (renamed from abs/extra-testing/policykit/polkit.pam)0
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