From e81c6fe4fb38144709923b2da3ab68a01712a26b Mon Sep 17 00:00:00 2001 From: root Date: Wed, 10 Aug 2011 23:14:36 +0000 Subject: Wed Aug 10 23:14:35 UTC 2011 --- staging/claws-mail/PKGBUILD | 60 ++ staging/claws-mail/claws-mail.install | 13 + staging/claws-mail/claws-notify-crash.patch | 18 + staging/cups/PKGBUILD | 148 +++ staging/cups/cups | 68 ++ staging/cups/cups-avahi.patch | 1089 ++++++++++++++++++++ staging/cups/cups-no-export-ssllibs.patch | 12 + staging/cups/cups-no-gcrypt.patch | 39 + staging/cups/cups.install | 26 + staging/cups/cups.logrotate | 8 + staging/cups/cups.pam | 3 + staging/empathy/PKGBUILD | 39 + staging/empathy/empathy.install | 16 + staging/glib-networking/PKGBUILD | 8 +- staging/lftp/PKGBUILD | 30 + staging/libgpod/PKGBUILD | 30 + staging/libimobiledevice/PKGBUILD | 31 + staging/libimobiledevice/swig-version-check.patch | 14 + staging/telepathy-gabble/PKGBUILD | 30 + staging/telepathy-gabble/telepathy-gabble.install | 13 + staging/vino/PKGBUILD | 32 + staging/vino/vino.install | 18 + staging/vlc/PKGBUILD | 73 ++ staging/vlc/vlc.install | 18 + staging/weechat/PKGBUILD | 33 + staging/wireshark/PKGBUILD | 58 ++ staging/wireshark/wireshark-gtk.install | 11 + staging/wireshark/wireshark.install | 18 + staging/xfce4-mailwatch-plugin/PKGBUILD | 39 + .../xfce4-mailwatch-plugin-1.1.0-underlink.patch | 21 + .../xfce4-mailwatch-plugin.install | 11 + staging/xmlsec/PKGBUILD | 35 + 32 files changed, 2058 insertions(+), 4 deletions(-) create mode 100644 staging/claws-mail/PKGBUILD create mode 100644 staging/claws-mail/claws-mail.install create mode 100644 staging/claws-mail/claws-notify-crash.patch create mode 100644 staging/cups/PKGBUILD create mode 100755 staging/cups/cups create mode 100644 staging/cups/cups-avahi.patch create mode 100644 staging/cups/cups-no-export-ssllibs.patch create mode 100644 staging/cups/cups-no-gcrypt.patch create mode 100644 staging/cups/cups.install create mode 100644 staging/cups/cups.logrotate create mode 100644 staging/cups/cups.pam create mode 100644 staging/empathy/PKGBUILD create mode 100644 staging/empathy/empathy.install create mode 100644 staging/lftp/PKGBUILD create mode 100644 staging/libgpod/PKGBUILD create mode 100644 staging/libimobiledevice/PKGBUILD create mode 100644 staging/libimobiledevice/swig-version-check.patch create mode 100644 staging/telepathy-gabble/PKGBUILD create mode 100644 staging/telepathy-gabble/telepathy-gabble.install create mode 100644 staging/vino/PKGBUILD create mode 100644 staging/vino/vino.install create mode 100644 staging/vlc/PKGBUILD create mode 100644 staging/vlc/vlc.install create mode 100644 staging/weechat/PKGBUILD create mode 100644 staging/wireshark/PKGBUILD create mode 100644 staging/wireshark/wireshark-gtk.install create mode 100644 staging/wireshark/wireshark.install create mode 100644 staging/xfce4-mailwatch-plugin/PKGBUILD create mode 100644 staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch create mode 100644 staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install create mode 100644 staging/xmlsec/PKGBUILD (limited to 'staging') diff --git a/staging/claws-mail/PKGBUILD b/staging/claws-mail/PKGBUILD new file mode 100644 index 000000000..b395a6177 --- /dev/null +++ b/staging/claws-mail/PKGBUILD @@ -0,0 +1,60 @@ +# $Id: PKGBUILD 134940 2011-08-09 15:03:29Z andyrtr $ +# Maintainer: Andreas Radke + +pkgname=claws-mail +pkgver=3.7.9 +pkgrel=5 +pkgdesc="A GTK+ based e-mail client." +arch=('i686' 'x86_64') +license=('GPL3') +url="http://www.claws-mail.org" +depends=('gtk2' 'gnutls' 'startup-notification' 'pilot-link' 'enchant' + 'gpgme' 'libetpan' 'libsm' 'db' 'dbus-glib' 'hicolor-icon-theme' 'desktop-file-utils') +makedepends=('compface' 'spamassassin' 'bogofilter' 'valgrind') +optdepends=('python2: needed for some tools' + 'perl: needed for some tools' + 'spamassassin: adds support for spamfiltering' + 'bogofilter: adds support for spamfiltering' + 'html2ps: AUR pkg - adds support for printing html mails together with html plugins') +replaces=('sylpheed-claws') +provides=('claws') +options=(!libtool) +install=claws-mail.install +source=(http://downloads.sourceforge.net/sourceforge/sylpheed-claws/${pkgname}-${pkgver}.tar.bz2 + claws-notify-crash.patch) +md5sums=('2f9d2dcabf84e312cfeb56efa799b5b3' + '9a2903449f679344b5f5f51c91825b45') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + + patch -Np0 -i $srcdir/claws-notify-crash.patch + sed -i 's@^#!.*python.*@#!/usr/bin/python2@' tools/*.py + + ./configure --prefix=/usr --disable-static \ + --enable-enchant \ + --enable-gnutls \ + --enable-ldap \ + --disable-dillo-viewer-plugin \ + --enable-crash-dialog \ + --enable-pgpmime-plugin \ + --enable-spamassassin-plugin \ + --enable-bogofilter-plugin \ + --enable-jpilot + + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install + + # build and install extra tools + cd tools + make + # all executables and .conf files ; only top directory + find -maxdepth 1 -type f -and -perm /111 -or -name '*.conf' | while read i ; do + install -D -m755 ${i} \ + ${pkgdir}/usr/lib/claws-mail/tools/${i} + done +} diff --git a/staging/claws-mail/claws-mail.install b/staging/claws-mail/claws-mail.install new file mode 100644 index 000000000..648480c3b --- /dev/null +++ b/staging/claws-mail/claws-mail.install @@ -0,0 +1,13 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} + diff --git a/staging/claws-mail/claws-notify-crash.patch b/staging/claws-mail/claws-notify-crash.patch new file mode 100644 index 000000000..e1d4eb686 --- /dev/null +++ b/staging/claws-mail/claws-notify-crash.patch @@ -0,0 +1,18 @@ +Index: src/main.c +=================================================================== +RCS file: //claws/src/main.c,v +retrieving revision 1.115.2.237 +retrieving revision 1.115.2.238 +diff -u -r1.115.2.237 -r1.115.2.238 +--- src/main.c 10 Apr 2011 17:19:04 -0000 1.115.2.237 ++++ src/main.c 30 Apr 2011 19:27:15 -0000 1.115.2.238 +@@ -331,7 +331,7 @@ + gtk_widget_show(hack); + } + +- xdisplay = gdk_display_get_default(); ++ xdisplay = GDK_DISPLAY_XDISPLAY(gdk_display_get_default()); + sn_display = sn_display_new(xdisplay, + sn_error_trap_push, + sn_error_trap_pop); + diff --git a/staging/cups/PKGBUILD b/staging/cups/PKGBUILD new file mode 100644 index 000000000..628600839 --- /dev/null +++ b/staging/cups/PKGBUILD @@ -0,0 +1,148 @@ +# $Id: PKGBUILD 134929 2011-08-09 13:34:46Z ibiru $ +# Maintainer: Andreas Radke + +pkgbase="cups" +pkgname=('libcups' 'cups') +pkgver=1.4.8 +pkgrel=2 +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' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3' + 'xinetd' 'gzip' 'autoconf' 'php' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme') +source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2 + cups-avahi.patch + cups-no-export-ssllibs.patch + cups-no-gcrypt.patch + cups cups.logrotate cups.pam) +#options=('!emptydirs') +md5sums=('0ec52d3f3c69bc2ab5ed70c594edbce6' + '8ebd390197501ffd709f0ee546937fd5' + '9b8467a1e51d360096b70e2c3c081e6c' + 'c9ede95cfc8e76571bd8156f0a573e3b' + '9657daa21760bb0b5fa3d8b51d5e01a1' + 'f861b18f4446c43918c8643dcbbd7f6d' + '96f82c38f3f540b53f3e5144900acf17') + +# move client.conf man page for next update to the client pkg. + +build() { + cd ${srcdir}/${pkgbase}-${pkgver} + # Avahi support in the dnssd backend. patch from Fedora + patch -Np1 -i ${srcdir}/cups-avahi.patch + + # Do not export SSL libs in cups-config + patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch" + + patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch" + + # Rebuild configure script for --enable-avahi. + aclocal -I config-scripts + autoconf -I config-scripts + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libdir=/usr/lib \ + --with-logdir=/var/log/cups \ + --with-docdir=/usr/share/cups/doc \ + --with-cups-user=daemon \ + --with-cups-group=lp \ + --enable-pam=yes \ + --disable-ldap \ + --enable-raw-printing \ + --enable-dbus --with-dbusdir=/etc/dbus-1 \ + --enable-ssl=yes --enable-gnutls \ + --disable-threads \ + --enable-avahi\ + --with-php=/usr/bin/php-cgi \ + --with-pdftops=pdftops \ + --with-optim="$CFLAGS" + + #reminder + #Restored support for GNU TLS and OpenSSL with threading enabled (STR #3605) in cups 1.5b1 + + make +} + +check() { + cd "$srcdir/$pkgbase-$pkgver" + #httpAddrGetList(workstation64): FAIL + #1 TESTS FAILED! + #make[1]: *** [testhttp] Error 1 + make -k check || /bin/true +} + +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' 'krb5' 'avahi') + + cd ${srcdir}/${pkgbase}-${pkgver} + make BUILDROOT=${pkgdir} install-headers install-libs + # 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}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme') +optdepends=('php: for included phpcups.so module' + 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images' + 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly' + 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly' + 'foomatic-db-nonfree: drivers use Ghostscript to convert PostScript to a printable form directly' + 'xdg-utils: xdg .desktop file support') + + cd ${srcdir}/${pkgbase}-${pkgver} + make BUILDROOT=${pkgdir} install-data install-exec + + # 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/cupsd + install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups + install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups + + # fix perms on /var/spool and /etc + chmod 755 ${pkgdir}/var/spool + chmod 755 ${pkgdir}/etc + + # serial backend needs to run as root (http://bugs.archlinux.org/task/20396) + chmod 700 ${pkgdir}/usr/lib/cups/backend/serial + + # install ssl directory where to store the certs, solves some samba issues + install -dm700 -g lp ${pkgdir}/etc/cups/ssl + # remove directory from package, we create it in cups rc.d file + rm -rf ${pkgdir}/var/run +# 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/staging/cups/cups b/staging/cups/cups new file mode 100755 index 000000000..744c8e663 --- /dev/null +++ b/staging/cups/cups @@ -0,0 +1,68 @@ +#!/bin/bash + +daemon_name=cupsd + +. /etc/rc.conf +. /etc/rc.d/functions +#. /etc/conf.d/$daemon_name.conf + +get_pid() { + pidof -o %PPID $daemon_name +} + +case "$1" in + start) + stat_busy "Starting $daemon_name daemon" + + PID=$(get_pid) + if [ -z "$PID" ]; then + [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid + # RUN + $daemon_name + # + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo $(get_pid) > /var/run/$daemon_name.pid + add_daemon $daemon_name + stat_done + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping $daemon_name daemon" + PID=$(get_pid) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm -f /var/run/$daemon_name.pid &> /dev/null + rm_daemon $daemon_name + stat_done + fi + ;; + + restart) + $0 stop + sleep 3 + $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/staging/cups/cups-avahi.patch b/staging/cups/cups-avahi.patch new file mode 100644 index 000000000..cf1056a75 --- /dev/null +++ b/staging/cups/cups-avahi.patch @@ -0,0 +1,1089 @@ +diff -up cups-1.4.5/backend/dnssd.c.avahi cups-1.4.5/backend/dnssd.c +--- cups-1.4.5/backend/dnssd.c.avahi 2009-08-08 00:27:12.000000000 +0200 ++++ cups-1.4.5/backend/dnssd.c 2010-11-12 13:13:31.000000000 +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 +-#include ++#ifdef HAVE_DNSSD ++# include ++#endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++# include ++# include ++# include ++# include ++# include ++# include ++#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.5/config.h.in.avahi cups-1.4.5/config.h.in +--- cups-1.4.5/config.h.in.avahi 2010-08-13 06:11:46.000000000 +0200 ++++ cups-1.4.5/config.h.in 2010-11-12 13:13:31.000000000 +0100 +@@ -344,6 +344,13 @@ + + + /* ++ * Do we have Avahi for DNS Service Discovery? ++ */ ++ ++#undef HAVE_AVAHI ++ ++ ++/* + * Do we have ? + */ + +diff -up cups-1.4.5/config-scripts/cups-dnssd.m4.avahi cups-1.4.5/config-scripts/cups-dnssd.m4 +--- cups-1.4.5/config-scripts/cups-dnssd.m4.avahi 2009-08-29 00:54:34.000000000 +0200 ++++ cups-1.4.5/config-scripts/cups-dnssd.m4 2010-11-12 13:13:31.000000000 +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.5/cups/http-support.c.avahi cups-1.4.5/cups/http-support.c +--- cups-1.4.5/cups/http-support.c.avahi 2010-10-02 00:40:38.000000000 +0200 ++++ cups-1.4.5/cups/http-support.c 2010-11-12 13:28:45.000000000 +0100 +@@ -55,6 +55,11 @@ + # include + # include + #endif /* HAVE_DNSSD */ ++#ifdef HAVE_AVAHI ++# include ++# include ++# include ++#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 +@@ -1351,16 +1374,27 @@ _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? */ + offline = 0; /* offline-report state set? */ +- 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) +@@ -1398,8 +1432,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'; + +@@ -1414,6 +1453,7 @@ _httpResolveURI( + + uri = NULL; + ++#ifdef HAVE_DNSSD + if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError) + { + localref = ref; +@@ -1500,6 +1540,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) + { +@@ -1511,13 +1581,13 @@ _httpResolveURI( + fputs("STATE: -connecting-to-device,offline-report\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")); +@@ -1722,6 +1792,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 9322 2010-10-01 22:40:38Z mike $". diff --git a/staging/cups/cups-no-export-ssllibs.patch b/staging/cups/cups-no-export-ssllibs.patch new file mode 100644 index 000000000..9be3c819b --- /dev/null +++ b/staging/cups/cups-no-export-ssllibs.patch @@ -0,0 +1,12 @@ +diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4 +--- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200 ++++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200 +@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES) + AC_SUBST(SSLFLAGS) + AC_SUBST(SSLLIBS) + +-EXPORT_SSLLIBS="$SSLLIBS" ++EXPORT_SSLLIBS="" + AC_SUBST(EXPORT_SSLLIBS) + + diff --git a/staging/cups/cups-no-gcrypt.patch b/staging/cups/cups-no-gcrypt.patch new file mode 100644 index 000000000..203b4f4ac --- /dev/null +++ b/staging/cups/cups-no-gcrypt.patch @@ -0,0 +1,39 @@ +diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4 +--- cups-1.4.7.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100 ++++ cups-1.4.7/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200 +@@ -74,7 +74,6 @@ + dnl Then look for GNU TLS... + if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then + AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config) +- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config) + if $PKGCONFIG --exists gnutls; then + if test "x$have_pthread" = xyes; then + AC_MSG_WARN([The current version of GNU TLS cannot be made thread-safe.]) +@@ -96,16 +95,6 @@ + AC_DEFINE(HAVE_GNUTLS) + fi + fi +- +- if test $have_ssl = 1; then +- if $PKGCONFIG --exists gcrypt; then +- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`" +- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`" +- elif test "x$LIBGCRYPTCONFIG" != x; then +- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`" +- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`" +- fi +- fi + fi + + dnl Check for the OpenSSL library last... +diff -ruN cups-1.4.7.orig//cups/http-private.h cups-1.4.7/cups/http-private.h +--- cups-1.4.7.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100 ++++ cups-1.4.7/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200 +@@ -98,7 +98,6 @@ + * The GNU TLS library is more of a "bare metal" SSL/TLS library... + */ + # include +-# include + + typedef struct + { diff --git a/staging/cups/cups.install b/staging/cups/cups.install new file mode 100644 index 000000000..47c3d9b82 --- /dev/null +++ b/staging/cups/cups.install @@ -0,0 +1,26 @@ +post_install() { + if [ -x usr/bin/xdg-icon-resource ]; then + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + fi + echo ">> If you use an HTTPS connection to CUPS, the first time you access" + echo ">> the interface it may take a very long time before the site comes up." + echo ">> This is because the first request triggers the generation of the CUPS" + echo ">> SSL certificates which can be a very time-consuming job." +} + +post_upgrade() { + if [ -x usr/bin/xdg-icon-resource ]; then + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + fi + if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then + # important upgrade notice + echo "daemon script has been renamed to /etc/rc.d/cupsd" + echo "change your entry in /etc/rc.conf" + fi +} + +post_remove() { + if [ -x usr/bin/xdg-icon-resource ]; then + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + fi +} diff --git a/staging/cups/cups.logrotate b/staging/cups/cups.logrotate new file mode 100644 index 000000000..9c49bbdaf --- /dev/null +++ b/staging/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/staging/cups/cups.pam b/staging/cups/cups.pam new file mode 100644 index 000000000..53724d1f8 --- /dev/null +++ b/staging/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/staging/empathy/PKGBUILD b/staging/empathy/PKGBUILD new file mode 100644 index 000000000..952c577d6 --- /dev/null +++ b/staging/empathy/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: PKGBUILD 134982 2011-08-09 18:33:31Z ibiru $ +# Maintainer: Ionut Biru +pkgname=empathy +pkgver=3.0.2 +pkgrel=2 +pkgdesc="A GNOME instant messaging client using the Telepathy framework." +arch=('i686' 'x86_64') +url="http://live.gnome.org/Empathy" +license=('GPL2') +depends=('telepathy-glib' 'telepathy-mission-control' 'folks' 'telepathy-logger' 'telepathy-farsight' 'gnome-keyring' 'gnutls' 'evolution-data-server' + 'libcanberra' 'libnotify' 'enchant' 'iso-codes' 'libwebkit3' 'dconf' 'ca-certificates') +makedepends=('intltool' 'gnome-doc-utils' 'nautilus-sendto' 'gnome-control-center') +optdepends=('telepathy-gabble: XMPP/Jabber support' + 'telepathy-butterfly: MSN support' + 'telepathy-idle: IRC support' + 'telepathy-salut: Link-local XMPP support' + 'telepathy-sofiasip: SIP support' + 'telepathy-haze: libpurple support') +options=('!libtool') +groups=('gnome-extra') +install=empathy.install +source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2) +sha256sums=('8074f6ce951fb95b1e13c546497e22d487bca9a87d88f1ebb903cdd2fd48bdc2') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + PYTHON=/usr/bin/python2 ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib/empathy \ + --disable-static \ + --disable-scrollkeeper \ + --disable-schemas-compile + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/staging/empathy/empathy.install b/staging/empathy/empathy.install new file mode 100644 index 000000000..63dd6b907 --- /dev/null +++ b/staging/empathy/empathy.install @@ -0,0 +1,16 @@ +post_install() { + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + echo "To use Empathy you need to install at least one Telepathy connection manager." +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} diff --git a/staging/glib-networking/PKGBUILD b/staging/glib-networking/PKGBUILD index da6645cad..dc775a49b 100644 --- a/staging/glib-networking/PKGBUILD +++ b/staging/glib-networking/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 134861 2011-08-08 05:46:38Z eric $ +# $Id: PKGBUILD 134916 2011-08-09 12:05:52Z ibiru $ # Maintainer: Jan "heftig" Steffens pkgname=glib-networking pkgver=2.28.7 -pkgrel=2 +pkgrel=3 pkgdesc="Network-related giomodules for glib" arch=('i686' 'x86_64') url="http://www.gtk.org/" license=('GPL2') -depends=('glib2' 'libproxy' 'gnutls' 'ca-certificates' 'gsettings-desktop-schemas') +depends=('glib2' 'libproxy' 'gnutls' 'libgcrypt' 'ca-certificates' 'gsettings-desktop-schemas') makedepends=('intltool') options=('!libtool') install=glib-networking.install @@ -17,7 +17,7 @@ sha256sums=('98bedfbd530c4b1b53c91025fe82290bafd289d249e4eb549c3b90d23a76021c') build() { cd "$srcdir/$pkgname-$pkgver" ./configure \ - --prefix=/usr --sysconfdir=/etc \ + --prefix=/usr --sysconfdir=/etc \ --libexecdir=/usr/lib/glib-networking --disable-static make } diff --git a/staging/lftp/PKGBUILD b/staging/lftp/PKGBUILD new file mode 100644 index 000000000..9cd8e8d15 --- /dev/null +++ b/staging/lftp/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 134943 2011-08-09 15:13:13Z andyrtr $ +# Maintainer: Andreas Radke +# Contributor: Aaron Griffin + +pkgname=lftp +pkgver=4.3.1 +pkgrel=2 +pkgdesc="Sophisticated command line based FTP client" +arch=('i686' 'x86_64') +license=('GPL3') +depends=('gcc-libs' 'readline>=6.2' "gnutls" "expat>=2.0.1-4" 'sh') +optdepends=('perl: needed for convert-netscape-cookies and verify-file') +makedepends=('autoconf') +url="http://lftp.yar.ru/" +backup=('etc/lftp.conf') +source=(http://ftp.yars.free.net/pub/source/lftp/${pkgname}-${pkgver}.tar.bz2) +md5sums=('ea45acfb47b5590d4675c50dc0c6e13c') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + ./configure --prefix=/usr --with-gnutls \ + --without-openssl --disable-static + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install + rm -rf ${pkgdir}/usr/lib +} \ No newline at end of file diff --git a/staging/libgpod/PKGBUILD b/staging/libgpod/PKGBUILD new file mode 100644 index 000000000..58ef7b358 --- /dev/null +++ b/staging/libgpod/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 134924 2011-08-09 13:21:55Z ibiru $ +# Maintainer: Daniel Isenmann +# Contributor: William Rea + +pkgname=libgpod +pkgver=0.8.2 +pkgrel=2 +pkgdesc="A shared library to access the contents of an iPod" +arch=(i686 x86_64) +license=('LGPL') +depends=('gdk-pixbuf2' 'mutagen' 'sg3_utils' 'libimobiledevice') +makedepends=('intltool' 'swig' 'docbook-xsl' 'pygobject-devel' 'gtk-sharp-2') +optdepends=('gtk-sharp-2: Mono bindings') +url="http://www.gtkpod.org/libgpod/" +source=(http://downloads.sourceforge.net/sourceforge/gtkpod/${pkgname}-${pkgver}.tar.bz2) +options=('!libtool' '!emptydirs') +md5sums=('ff0fd875fa08f2a6a49dec57ce3367ab') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr \ + --enable-udev --with-python=/usr/bin/python2 + make PREFIX=/usr +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make PREFIX=/usr DESTDIR="${pkgdir}" install +} + diff --git a/staging/libimobiledevice/PKGBUILD b/staging/libimobiledevice/PKGBUILD new file mode 100644 index 000000000..a6f48d786 --- /dev/null +++ b/staging/libimobiledevice/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 134921 2011-08-09 12:21:53Z ibiru $ +# Maintainer : Ionut Biru +# Contributor: Gabriel Martinez < reitaka at gmail dot com > + +pkgname=libimobiledevice +pkgver=1.1.1 +pkgrel=2 +pkgdesc="Is a software library that talks the protocols to support iPhone and iPod Touch devices on Linux" +url="http://libimobiledevice.org/" +arch=('i686' 'x86_64') +license=('GPL2' 'LGPL2.1') +depends=('glib2' 'gnutls' 'libgcrypt' 'libplist' 'usbmuxd') +makedepends=('swig' 'python2') +options=('!libtool') +source=(http://libimobiledevice.org/downloads/${pkgname}-${pkgver}.tar.bz2 + swig-version-check.patch) +md5sums=('cdc13037e822d9ac2e109536701d153a' + '8bb215e36fe0e08a72332c108c7842cc') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + # SWIG version check is wrong (still not fixed upstream) + patch -p1 -i "$srcdir"/swig-version-check.patch + PYTHON=/usr/bin/python2 ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/staging/libimobiledevice/swig-version-check.patch b/staging/libimobiledevice/swig-version-check.patch new file mode 100644 index 000000000..c56b095db --- /dev/null +++ b/staging/libimobiledevice/swig-version-check.patch @@ -0,0 +1,14 @@ +diff -Nur libimobiledevice-1.0.3.old/configure libimobiledevice-1.0.3/configure +--- libimobiledevice-1.0.3.old/configure 2010-10-04 07:38:37.000000000 -0700 ++++ libimobiledevice-1.0.3/configure 2010-10-08 05:43:05.466686656 -0700 +@@ -3477,9 +3477,7 @@ + if test -z "$available_patch" ; then + available_patch=0 + fi +- if test $available_major -ne $required_major \ +- -o $available_minor -ne $required_minor \ +- -o $available_patch -lt $required_patch ; then ++ if test $available_major -lt $required_major ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 1.3.21 is required. You have $swig_version. You should look at http://www.swig.org" >&5 + $as_echo "$as_me: WARNING: SWIG version >= 1.3.21 is required. You have $swig_version. You should look at http://www.swig.org" >&2;} + SWIG=false diff --git a/staging/telepathy-gabble/PKGBUILD b/staging/telepathy-gabble/PKGBUILD new file mode 100644 index 000000000..04a19b6a9 --- /dev/null +++ b/staging/telepathy-gabble/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 134985 2011-08-09 18:45:11Z ibiru $ +# Maintainer : Ionut Biru +# Contributor: Daniel Balieiro +# Contributor: Rodrigo L. M. Flores +pkgname=telepathy-gabble +pkgver=0.12.4 +pkgrel=2 +pkgdesc="A Jabber/XMPP connection manager for Telepathy" +arch=('i686' 'x86_64') +url="http://telepathy.freedesktop.org" +groups=('telepathy') +license=('LGPL2.1') +depends=('telepathy-glib' 'libsoup' 'libnice' 'sqlite3') +makedepends=('libxslt' 'python2') +options=('!libtool') +source=(http://telepathy.freedesktop.org/releases/telepathy-gabble/${pkgname}-${pkgver}.tar.gz) +install=telepathy-gabble.install +md5sums=('428962565d568667d3ff1aa7eee3da51') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + PYTHON=/usr/bin/python2 ./configure --prefix=/usr \ + --libexecdir=/usr/lib/telepathy + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install +} diff --git a/staging/telepathy-gabble/telepathy-gabble.install b/staging/telepathy-gabble/telepathy-gabble.install new file mode 100644 index 000000000..87d7838b8 --- /dev/null +++ b/staging/telepathy-gabble/telepathy-gabble.install @@ -0,0 +1,13 @@ +post_install() { + killall -HUP dbus-daemon 2>&1 +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} + +# vim:set ts=2 sw=2 et: diff --git a/staging/vino/PKGBUILD b/staging/vino/PKGBUILD new file mode 100644 index 000000000..ddd37f61e --- /dev/null +++ b/staging/vino/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 134988 2011-08-09 18:47:51Z ibiru $ +# Maintainer: Jan de Groot + +pkgname=vino +pkgver=3.0.3 +pkgrel=2 +pkgdesc="a VNC server for the GNOME desktop" +arch=('i686' 'x86_64') +license=('GPL') +depends=('libnotify' 'libxtst' 'libsm' 'libsoup' 'telepathy-glib' 'gtk3' 'libgnome-keyring' 'avahi' 'desktop-file-utils') +makedepends=('intltool' 'networkmanager') +groups=('gnome-extra') +url="http://www.gnome.org" +options=(!emptydirs) +install=vino.install +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz) +sha256sums=('0e58027d3c10649da61445cdd5205e31c4d1aa0b63f4911de3db4e7052d7bbfb') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr --sysconfdir=/etc \ + --libexecdir=/usr/lib/vino \ + --localstatedir=/var \ + --enable-gnome-keyring \ + --enable-avahi + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/staging/vino/vino.install b/staging/vino/vino.install new file mode 100644 index 000000000..469266843 --- /dev/null +++ b/staging/vino/vino.install @@ -0,0 +1,18 @@ +post_install() { + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q +} + +pre_upgrade() { + if (( $(vercmp $2 2.90.0) < 0 )); then + usr/sbin/gconfpkg --uninstall vino + fi +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/staging/vlc/PKGBUILD b/staging/vlc/PKGBUILD new file mode 100644 index 000000000..c7d6642bf --- /dev/null +++ b/staging/vlc/PKGBUILD @@ -0,0 +1,73 @@ +# $Id: PKGBUILD 135024 2011-08-09 21:18:13Z giovanni $ +# Maintainer: Giovanni Scafora +# Contributor: Sarah Hay +# Contributor: Martin Sandsmark + +pkgname=vlc +pkgver=1.1.11 +pkgrel=4 +pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player" +arch=('i686' 'x86_64') +url="http://www.videolan.org/vlc/" +license=('GPL') +depends=('a52dec' 'fluidsynth' 'libmtp' 'libdvbpsi' 'libxpm' 'libcdio' + 'libdca' 'qt' 'libproxy' 'sdl_image' 'libdvdnav' 'mesa' + 'lua' 'v4l-utils' 'libcddb' 'smbclient' 'libmatroska' 'zvbi' + 'taglib' 'sysfsutils' 'libmpcdec' 'ffmpeg' 'faad2' 'libupnp' + 'libshout' 'libmad' 'fribidi' 'libmpeg2' 'libmodplug' + 'ttf-freefont' 'libxv' 'libass' 'xdg-utils' 'desktop-file-utils') +makedepends=('avahi' 'pkgconfig' 'live-media' 'libnotify' + 'flac' 'libtheora' 'alsa-lib' 'jack' 'kdelibs' 'udev' + 'libraw1394' 'libdc1394' 'libavc1394' 'libva' 'libpulse' + 'lirc-utils' 'gnutls' 'libcaca') +optdepends=('avahi: for service discovery using bonjour protocol' + 'libnotify: for notification plugin' + 'ncurses: for ncurses interface support' + 'libdvdcss: for decoding encrypted DVDs' + 'lirc-utils: for lirc plugin' + 'libavc1394: for devices using the 1394ta AV/C' + 'libdc1394: for IEEE 1394 plugin' + 'kdelibs: KDE Solid hardware integration' + 'vdpau-video: VDPAU backend for VA API (for GPU acceleration on Nvidia cards)' + 'libpulse: PulseAudio support') +conflicts=('vlc-plugin') +replaces=('vlc-plugin') +backup=('usr/share/vlc/http/.hosts' + 'usr/share/vlc/http/dialogs/.hosts' + 'usr/share/vlc/lua/http/.hosts' + 'usr/share/vlc/lua/http/dialogs/.hosts') +options=('!libtool') +install=vlc.install +source=("http://download.videolan.org/pub/videolan/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2") +md5sums=('a64846d6f21ea179ae8e8bfb6f9447fe') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + sed -i -e 's:truetype/freefont:TTF:g' modules/misc/freetype.c + + ./configure --prefix=/usr \ + --disable-rpath \ + --enable-faad \ + --enable-v4l \ + --enable-snapshot \ + --enable-dbus-control \ + --enable-nls \ + --enable-lirc \ + --enable-pvr \ + --enable-ncurses \ + --with-live555-tree=/usr/lib/live \ + --enable-upnp \ + --enable-realrtsp + make +} +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}/" install + + for res in 16 32 48 128; do + install -D -m644 "${srcdir}/vlc-${pkgver}/share/icons/${res}x${res}/vlc.png" \ + "${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/vlc.png" + done +} diff --git a/staging/vlc/vlc.install b/staging/vlc/vlc.install new file mode 100644 index 000000000..4a1091bc5 --- /dev/null +++ b/staging/vlc/vlc.install @@ -0,0 +1,18 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + usr/lib/vlc/vlc-cache-gen -f usr/lib/vlc/plugins + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +pre_remove() { + rm -f usr/lib/vlc/plugins/plugins-*.dat +} + +post_remove() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} diff --git a/staging/weechat/PKGBUILD b/staging/weechat/PKGBUILD new file mode 100644 index 000000000..6e53c7d86 --- /dev/null +++ b/staging/weechat/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 135012 2011-08-09 21:04:57Z giovanni $ +# Maintainer: Giovanni Scafora +# Contributor: lucke + +pkgname=weechat +pkgver=0.3.5 +pkgrel=3 +pkgdesc="Fast, light and extensible IRC client (curses UI)" +arch=('i686' 'x86_64') +url="http://www.weechat.org/" +license=('GPL') +depends=('gnutls') +makedepends=('cmake' 'pkgconfig' 'perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell') +optdepends=('perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell') +options=('!libtool') +source=("http://www.weechat.org/files/src/${pkgname}-${pkgver}.tar.bz2") +md5sums=('0d2a089bfbfa550e0c65618a171fb3c4') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + mkdir build + cd build + cmake .. -DPREFIX=/usr \ + -DPYTHON_EXECUTABLE=/usr/bin/python2 \ + -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}/build" + + make DESTDIR="${pkgdir}/" install +} diff --git a/staging/wireshark/PKGBUILD b/staging/wireshark/PKGBUILD new file mode 100644 index 000000000..66b2f859c --- /dev/null +++ b/staging/wireshark/PKGBUILD @@ -0,0 +1,58 @@ +# $Id: PKGBUILD 134932 2011-08-09 14:19:48Z guillaume $ +# Maintainer: Guillaume ALAUX +# Contributor: Florian Pritz +pkgname=(wireshark-cli wireshark-gtk) +pkgbase=wireshark +pkgver=1.6.1 +pkgrel=2 +arch=('i686' 'x86_64') +license=('GPL2') +makedepends=('bison' 'flex' 'gtk2' 'krb5' 'libpcap' 'bash' 'gnutls' 'libcap' 'lua') +url="http://www.wireshark.org/" +options=(!libtool) +source=(http://www.wireshark.org/download/src/${pkgbase}-${pkgver}.tar.bz2) +md5sums=('dc1e8c9800b64130674b120a183e2308') + +build() { + cd "${srcdir}/${pkgbase}-${pkgver}" + export CFLAGS="-fno-unit-at-a-time ${CFLAGS}" + + ./configure \ + --prefix=/usr \ + --with-ssl \ + --with-zlib=yes \ + --with-lua + make all +} + +package_wireshark-cli() { + pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - CLI version" + depends=('krb5' 'libpcap' 'bash' 'gnutls' 'libcap' 'glib2' 'lua') + install=wireshark.install + conflicts=(wireshark) + + cd "${srcdir}/${pkgbase}-${pkgver}" + + make DESTDIR="${pkgdir}" install + + #wireshark uid group is 150 + chgrp 150 "${pkgdir}/usr/bin/dumpcap" + chmod 754 "${pkgdir}/usr/bin/dumpcap" + rm "$pkgdir/usr/bin/wireshark" +} + +package_wireshark-gtk() { + pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - GTK frontend" + depends=('gtk2' 'wireshark-cli') + install=wireshark-gtk.install + replaces=(wireshark) + conflicts=(wireshark) + + cd "${srcdir}/${pkgbase}-${pkgver}" + + install -Dm755 .libs/wireshark "$pkgdir/usr/bin/wireshark" + for d in 16 32 48; do + install -Dm644 image/hi${d}-app-wireshark.png ${pkgdir}/usr/share/icons/hicolor/${d}x${d}/apps/wireshark.png + done + install -Dm644 wireshark.desktop ${pkgdir}/usr/share/applications/wireshark.desktop +} diff --git a/staging/wireshark/wireshark-gtk.install b/staging/wireshark/wireshark-gtk.install new file mode 100644 index 000000000..6b1b64bdd --- /dev/null +++ b/staging/wireshark/wireshark-gtk.install @@ -0,0 +1,11 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/staging/wireshark/wireshark.install b/staging/wireshark/wireshark.install new file mode 100644 index 000000000..6585ba272 --- /dev/null +++ b/staging/wireshark/wireshark.install @@ -0,0 +1,18 @@ +post_install() { + getent group wireshark >/dev/null 2>&1 || usr/sbin/groupadd -g 150 wireshark &>/dev/null + + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' usr/bin/dumpcap + echo "NOTE: To run wireshark as normal user you have to add yourself into wireshark group" +} + +post_upgrade() { + getent group wireshark >/dev/null 2>&1 || usr/sbin/groupadd -g 150 wireshark &>/dev/null + + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' usr/bin/dumpcap +} + +post_remove() { + if getent group wireshark >/dev/null 2>&1; then + groupdel wireshark + fi +} diff --git a/staging/xfce4-mailwatch-plugin/PKGBUILD b/staging/xfce4-mailwatch-plugin/PKGBUILD new file mode 100644 index 000000000..4a992bd09 --- /dev/null +++ b/staging/xfce4-mailwatch-plugin/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: PKGBUILD 134951 2011-08-09 15:38:12Z andyrtr $ +# Maintainer: AndyRTR +# Contributor: Suzy Williams + +pkgname=xfce4-mailwatch-plugin +pkgver=1.1.0 +pkgrel=4 +pkgdesc="A mailbox watch/check plugin for the Xfce4 panel" +arch=(i686 x86_64) +license=('GPL2') +url="http://spurint.org/projects/xfce4-mailwatch-plugin/" +groups=('xfce4-goodies') +depends=('xfce4-panel' 'libxfcegui4' 'gnutls' 'libgcrypt' 'hicolor-icon-theme') +makedepends=('intltool' 'xfce4-dev-tools') +options=('!libtool') +install=${pkgname}.install +source=(http://spuriousinterrupt.org/files/mailwatch/${pkgname}-${pkgver}.tar.bz2 + xfce4-mailwatch-plugin-1.1.0-underlink.patch) +md5sums=('f84dce86be1d7f25f169f262aaacee4e' + '47fe8588e3bb642e1b507a854927e6db') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + # fix for panel4.8 from Fedora + patch -Np1 -i ${srcdir}/xfce4-mailwatch-plugin-1.1.0-underlink.patch + xdt-autogen + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --disable-static \ + --disable-debug + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install +} diff --git a/staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch b/staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch new file mode 100644 index 000000000..ada0df041 --- /dev/null +++ b/staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch @@ -0,0 +1,21 @@ +--- xfce4-mailwatch-plugin-1.1.0/panel-plugin/Makefile.am 2008-08-26 03:42:36.000000000 +0100 ++++ xfce4-mailwatch-plugin-1.1.0/panel-plugin/Makefile.am.new 2011-01-14 17:27:44.116199383 +0000 +@@ -50,6 +50,7 @@ + -I$(top_srcdir)/libmailwatch-core \ + @GTHREAD_CFLAGS@ \ + @LIBXFCE4PANEL_CFLAGS@ \ ++ @LIBXFCEGUI4_CFLAGS@ \ + -DDATADIR=\"$(datadir)\" \ + -DLOCALEDIR=\"$(localedir)\" + +@@ -60,7 +61,9 @@ + $(top_builddir)/libmailwatch-core/libmailwatch-core.la \ + @GTHREAD_LIBS@ \ + @LIBXFCE4PANEL_LIBS@ \ +- @GNUTLS_LIBS@ ++ @LIBXFCEGUI4_LIBS@ \ ++ @GNUTLS_LIBS@ \ ++ -lgcrypt + + if HAVE_CYGWIN + xfce4_mailwatch_plugin_LDFLAGS += \ diff --git a/staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install b/staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install new file mode 100644 index 000000000..21b79d2d4 --- /dev/null +++ b/staging/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install @@ -0,0 +1,11 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} diff --git a/staging/xmlsec/PKGBUILD b/staging/xmlsec/PKGBUILD new file mode 100644 index 000000000..c15a0ac98 --- /dev/null +++ b/staging/xmlsec/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 134954 2011-08-09 15:50:09Z andyrtr $ +# Maintainer: AndyRTR +# Contributor: Jan de Groot +# Contributor: Hussam Al-Tayeb + +pkgname=xmlsec +pkgver=1.2.18 +pkgrel=2 +pkgdesc="XML Security Library is a C library based on LibXML2" +license=('custom') +arch=(i686 x86_64) +url="http://www.aleksey.com/xmlsec/index.html" +depends=('libxslt>=1.1.26' 'openssl>=1.0.0' 'gnutls' 'nss>=3.12.10' 'libtool') +makedepends=('pkgconfig') +options=('!libtool') +source=(http://www.aleksey.com/xmlsec/download/${pkgname}1-${pkgver}.tar.gz) +md5sums=('8694b4609aab647186607f79e1da7f1a') + +build() { + cd ${srcdir}/${pkgname}1-${pkgver} + ./configure --prefix=/usr --disable-static + make +} + +check() { + cd "$srcdir/${pkgname}1-$pkgver" + make -k check +} + +package() { + cd ${srcdir}/${pkgname}1-${pkgver} + make DESTDIR=${pkgdir} install + install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} + install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ +} -- cgit v1.2.3-54-g00ecf