From c31ace4c6175db330d7e4aac1e7388fe5ca5d4f3 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 1 Dec 2012 01:52:00 -0800 Subject: Sat Dec 1 01:48:48 PST 2012 --- community/filezilla/PKGBUILD | 6 +- community/mariadb/PKGBUILD | 21 +- community/python-matplotlib/PKGBUILD | 30 +- .../python-matplotlib/python-matplotlib-tk.patch | 35 ++ core/ed/PKGBUILD | 6 +- core/mkinitcpio-nfs-utils/PKGBUILD | 15 +- core/mkinitcpio-nfs-utils/initcpio-install-net | 1 + .../nfsmount-fix-wrong-umount-path.patch | 14 + extra/amarok/PKGBUILD | 6 +- extra/digikam/PKGBUILD | 6 +- extra/dovecot/PKGBUILD | 13 +- ...added-torrents-from-the-disk-are-still-on.patch | 93 +++++ extra/hefur/PKGBUILD | 14 +- extra/hefur/Replace-by-amp-in-stat.html.patch | 27 ++ extra/hefur/hefurd.service | 1 + extra/ltrace/PKGBUILD | 19 +- extra/pigeonhole/PKGBUILD | 6 +- extra/qt/PKGBUILD | 35 +- extra/qt/assistant.desktop | 1 - extra/qt/designer.desktop | 1 - extra/qt/linguist.desktop | 1 - extra/qt/qtconfig.desktop | 1 - extra/xf86-video-intel/PKGBUILD | 6 +- libre/cups-filters-libre/PKGBUILD | 8 +- libre/hplip-libre/PKGBUILD | 42 ++- libre/hplip-libre/cups-1.6-buildfix.diff | 392 +++++++++++++++++++++ 26 files changed, 688 insertions(+), 112 deletions(-) create mode 100644 community/python-matplotlib/python-matplotlib-tk.patch create mode 100644 core/mkinitcpio-nfs-utils/nfsmount-fix-wrong-umount-path.patch create mode 100644 extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch create mode 100644 extra/hefur/Replace-by-amp-in-stat.html.patch create mode 100644 libre/hplip-libre/cups-1.6-buildfix.diff diff --git a/community/filezilla/PKGBUILD b/community/filezilla/PKGBUILD index 7f1af6b30..b09b1b38d 100644 --- a/community/filezilla/PKGBUILD +++ b/community/filezilla/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 80261 2012-11-18 19:11:09Z jelle $ +# $Id: PKGBUILD 80712 2012-11-30 12:16:29Z bluewind $ # Contributor: Alexander Fehr # Maintainer: Daniel J Griffiths pkgname=filezilla -pkgver=3.6.0.1 +pkgver=3.6.0.2 pkgrel=1 pkgdesc="Fast and reliable FTP, FTPS and SFTP client" arch=('i686' 'x86_64') @@ -31,4 +31,4 @@ package() { make DESTDIR="${pkgdir}" install } -md5sums=('90839d05bf52e27e8f4a33adceb3ae5c') +md5sums=('d56773feafb85c216813bbda87838db0') diff --git a/community/mariadb/PKGBUILD b/community/mariadb/PKGBUILD index c17fc8fbb..91b606f4c 100644 --- a/community/mariadb/PKGBUILD +++ b/community/mariadb/PKGBUILD @@ -1,18 +1,19 @@ -# $Id: PKGBUILD 78669 2012-10-22 14:43:04Z bpiotrowski $ +# $Id: PKGBUILD 80718 2012-11-30 22:24:36Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski pkgbase=mariadb pkgname=('libmariadbclient' 'mariadb-clients' 'mariadb') -pkgver=5.5.28 +pkgver=5.5.28.a +_pkgver=${pkgver/.a/a} pkgrel=1 arch=('i686' 'x86_64') license=('GPL') url="http://mariadb.org/" makedepends=('cmake' 'openssl' 'zlib') options=('!libtool') -source=(http://mirrors.supportex.net/$pkgbase/$pkgbase-$pkgver/kvm-tarbake-jaunty-x86/$pkgbase-$pkgver.tar.gz +source=(http://mirrors.supportex.net/$pkgbase/$pkgbase-$_pkgver/kvm-tarbake-jaunty-x86/$pkgbase-$_pkgver.tar.gz service rc.d tmpfiles.conf) -md5sums=('9a4055300ccadf7990167ebd1ce875fa' +md5sums=('a2d20a040ef1e49944a4ffe65ed7fefa' '9e7aa0fa646f48662df569259061fcef' '3bb5a9a96340feb0184bc057ee6e330b' '32f30449d3111714fe190931d08fdb8c') @@ -26,7 +27,7 @@ build() { CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \ CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \ - cmake ../${pkgbase}-${pkgver} \ + cmake ../${pkgbase}-${_pkgver} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DSYSCONFDIR=/etc/mysql \ @@ -67,7 +68,7 @@ package_libmariadbclient(){ pkgdesc="MariaDB client libraries" depends=('openssl') conflicts=('libmysqlclient') - provides=("libmysqlclient=${pkgver}") + provides=("libmysqlclient=${_pkgver}") cd "${srcdir}"/build for dir in include libmysql libmysqld libservices; do @@ -78,7 +79,7 @@ package_libmariadbclient(){ install -m755 scripts/mysql_config "${pkgdir}"/usr/bin/ install -d "${pkgdir}"/usr/share/man/man1 for man in mysql_config mysql_client_test_embedded mysqltest_embedded; do - install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 + install -m644 "${srcdir}"/${pkgbase}-${_pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 done } @@ -86,7 +87,7 @@ package_mariadb-clients() { pkgdesc="MariaDB client tools" depends=('libmariadbclient') conflicts=('mysql-clients') - provides=("mysql-clients=${pkgver}") + provides=("mysql-clients=${_pkgver}") cd "${srcdir}"/build make -C client DESTDIR="${pkgdir}" install @@ -94,7 +95,7 @@ package_mariadb-clients() { # install man pages install -d "${pkgdir}"/usr/share/man/man1 for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap; do - install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 + install -m644 "${srcdir}"/${pkgbase}-${_pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 done # provided by mariadb @@ -107,7 +108,7 @@ package_mariadb() { install=mariadb.install depends=('mariadb-clients') conflicts=('mysql') - provides=("mysql=${pkgver}") + provides=("mysql=${_pkgver}") optdepends=('perl-dbi' 'perl-dbd-mysql') options=('emptydirs') diff --git a/community/python-matplotlib/PKGBUILD b/community/python-matplotlib/PKGBUILD index 7e90764c9..d47ac8e7a 100644 --- a/community/python-matplotlib/PKGBUILD +++ b/community/python-matplotlib/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 80031 2012-11-15 15:02:41Z stephane $ +# $Id: PKGBUILD 80710 2012-11-30 12:11:12Z stephane $ # Maintainer: Stéphane Gaudreault # Contributor: Stefan Husmann # Contributor: Angel 'angvp' Velasquez @@ -7,25 +7,35 @@ pkgbase=python-matplotlib pkgname=('python2-matplotlib' 'python-matplotlib') pkgver=1.2.0 -pkgrel=3 +pkgrel=6 pkgdesc="A python plotting library, making publication quality plots" arch=('i686' 'x86_64') -url="http://matplotlib.sourceforge.net/" +url='http://matplotlib.org' license=('custom') -makedepends=('python2-pytz' 'python2-numpy' 'python2-pyqt' - 'python-pytz' 'python-numpy' 'pyqt') +makedepends=('python2-pytz' 'python2-numpy' 'python2-pyqt' 'python-pytz' 'python-numpy' 'pyqt' + 'tk' 'python-cairo' 'python2-cairo' 'python-dateutil' 'python2-dateutil' + 'python-gobject' 'python2-gobject' 'python-pyparsing' 'python2-pyparsing' + 'pygtk' 'python-six' 'ghostscript' 'texlive-bin') +optdepends=('pygtk: for use with the GTK or GTKAgg backend' + 'tk: used by the TkAgg backend' + 'ghostscript: usetex dependencies' + 'texlive-bin: usetex dependencies') source=("https://github.com/downloads/matplotlib/matplotlib/matplotlib-${pkgver}.tar.gz" - setup.cfg) + python-matplotlib-tk.patch) sha1sums=('1d0c319b2bc545f1a7002f56768e5730fe573518' - '370a08120bcb3046f590c527b3d29d18ae874818') + '6f27ff74a7752700758d081d3235a61a89b8ea95') build() { cd "${srcdir}"/matplotlib-${pkgver} + patch -Np1 -i ../python-matplotlib-tk.patch + # use system python-six rm lib/six.py - cp ../setup.cfg . + # remove internal copies of pyparsing + rm -r lib/matplotlib/pyparsing_py{2,3}.py + sed -i -e 's/matplotlib.pyparsing_py[23]/pyparsing/g' lib/matplotlib/{mathtext,fontconfig_pattern}.py # For numpy 1.7 sed -i '/include/s/numpy\/arrayobject.h/numpy\/oldnumeric.h/g' \ @@ -54,7 +64,7 @@ build() { } package_python2-matplotlib() { - depends=('python2-pytz' 'python2-numpy' 'python2-pyqt' 'python2-dateutil') + depends=('python2-pytz' 'python2-numpy' 'python2-cairo' 'python2-pyqt' 'python2-dateutil' 'python2-pyparsing') cd "${srcdir}"/matplotlib-${pkgver} python2 setup.py install -O1 --skip-build --root "${pkgdir}" --prefix=/usr @@ -64,7 +74,7 @@ package_python2-matplotlib() { } package_python-matplotlib() { - depends=('python-pytz' 'python-numpy' 'pyqt' 'python-dateutil') + depends=('python-pytz' 'python-numpy' 'python-cairo' 'pyqt' 'python-dateutil' 'python-pyparsing') cd "${srcdir}"/matplotlib-${pkgver}-py3 python3 setup.py install -O1 --skip-build --root "${pkgdir}" --prefix=/usr diff --git a/community/python-matplotlib/python-matplotlib-tk.patch b/community/python-matplotlib/python-matplotlib-tk.patch new file mode 100644 index 000000000..10480195a --- /dev/null +++ b/community/python-matplotlib/python-matplotlib-tk.patch @@ -0,0 +1,35 @@ +diff -up matplotlib-1.2.0/setupext.py.orig matplotlib-1.2.0/setupext.py +--- matplotlib-1.2.0/setupext.py.orig 2012-11-23 14:50:48.954715965 -0200 ++++ matplotlib-1.2.0/setupext.py 2012-11-23 14:55:53.731727636 -0200 +@@ -898,12 +898,12 @@ def parse_tcl_config(tcl_lib_dir, tk_lib + + tcl_poss = [tcl_lib_dir, + os.path.normpath(os.path.join(tcl_lib_dir, '..')), +- "/usr/lib/tcl"+str(Tkinter.TclVersion), +- "/usr/lib"] ++ "@@libdir@@/tcl"+str(Tkinter.TclVersion), ++ "@@lib@@"] + tk_poss = [tk_lib_dir, + os.path.normpath(os.path.join(tk_lib_dir, '..')), +- "/usr/lib/tk"+str(Tkinter.TkVersion), +- "/usr/lib"] ++ "@@libdir@@/tk"+str(Tkinter.TkVersion), ++ "@@libdir@@"] + for ptcl, ptk in zip(tcl_poss, tk_poss): + tcl_config = os.path.join(ptcl, "tclConfig.sh") + tk_config = os.path.join(ptk, "tkConfig.sh") +@@ -974,10 +974,10 @@ def guess_tcl_config(tcl_lib_dir, tk_lib + return tcl_lib, tcl_inc, 'tcl' + tk_ver, tk_lib, tk_inc, 'tk' + tk_ver + + def hardcoded_tcl_config(): +- tcl_inc = "/usr/local/include" +- tk_inc = "/usr/local/include" +- tcl_lib = "/usr/local/lib" +- tk_lib = "/usr/local/lib" ++ tcl_inc = "/usr/include" ++ tk_inc = "/usr/include" ++ tcl_lib = "@@libdir@@" ++ tk_lib = "@@libdir@@" + return tcl_lib, tcl_inc, 'tcl', tk_lib, tk_inc, 'tk' + + def add_tk_flags(module): diff --git a/core/ed/PKGBUILD b/core/ed/PKGBUILD index dac07e317..8c8ec44c7 100644 --- a/core/ed/PKGBUILD +++ b/core/ed/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 146434 2012-01-11 04:50:27Z dreisner $ +# $Id: PKGBUILD 172178 2012-12-01 00:07:10Z dreisner $ # Maintainer: Dave Reisner # Maintainer: Andreas Radke pkgname=ed -pkgver=1.6 +pkgver=1.7 pkgrel=1 pkgdesc="A POSIX-compliant line-oriented text editor" arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ url="http://www.gnu.org/software/ed/ed.html" depends=('glibc' 'sh') options=('!emptydirs') source=(ftp://ftp.gnu.org/gnu/ed/${pkgname}-${pkgver}.tar.gz) -md5sums=('9a78593decccaa889523aa4bb555ed4b') +md5sums=('0aa4e2428e325203d0d7c3e86c961b1c') build() { cd "$pkgname-$pkgver" diff --git a/core/mkinitcpio-nfs-utils/PKGBUILD b/core/mkinitcpio-nfs-utils/PKGBUILD index 70166e1db..b2132b07d 100644 --- a/core/mkinitcpio-nfs-utils/PKGBUILD +++ b/core/mkinitcpio-nfs-utils/PKGBUILD @@ -1,23 +1,30 @@ -# $Id: PKGBUILD 160392 2012-06-01 13:21:36Z dreisner $ +# $Id: PKGBUILD 172177 2012-12-01 00:07:08Z dreisner $ # Maintainer: Thomas Bächler pkgname=mkinitcpio-nfs-utils pkgver=0.3 -pkgrel=3 +pkgrel=4 pkgdesc="ipconfig and nfsmount tools for NFS root support in mkinitcpio" arch=('i686' 'x86_64') url="http://www.archlinux.org/" license=('GPL2') depends=('glibc') source=("ftp://ftp.archlinux.org/other/mkinitcpio/$pkgname-$pkgver.tar.xz" + 'nfsmount-fix-wrong-umount-path.patch' 'initcpio-install-net' 'initcpio-hook-net') sha256sums=('d290d489844fae100ca7b848b8eef40078124ff373203086bacc07329d1e8939' - '8e5ddaacb0e5751e432f95870958c5fa2e01e1ab3f55b5eca2b8b2d030b5d861' + '6edb239f3d541b8ddee816e2d18bfb3ee1d3f5f8827769674cc8bf2a7ce38f21' + 'ce9f021763c020b9b62a761974437fd1e9e894df3effc58e71671bf83b061255' '29a5a4a9ebd61bfa1afbb8dcaf2187e487ee1f34b1979a85a853fa2acbeb510e') build() { - make -C "$pkgname-$pkgver" + cd "$pkgname-$pkgver" + + # upstream commit 029622dfbfe25203275a385a5bf33d44c2409b00 + patch -Np1 < "$srcdir/nfsmount-fix-wrong-umount-path.patch" + + make } package() { diff --git a/core/mkinitcpio-nfs-utils/initcpio-install-net b/core/mkinitcpio-nfs-utils/initcpio-install-net index 7030e2d64..79b678949 100644 --- a/core/mkinitcpio-nfs-utils/initcpio-install-net +++ b/core/mkinitcpio-nfs-utils/initcpio-install-net @@ -2,6 +2,7 @@ build() { add_checked_modules '/drivers/net/' + add_module nfsv3? add_binary "/usr/lib/initcpio/ipconfig" "/bin/ipconfig" add_binary "/usr/lib/initcpio/nfsmount" "/bin/nfsmount" diff --git a/core/mkinitcpio-nfs-utils/nfsmount-fix-wrong-umount-path.patch b/core/mkinitcpio-nfs-utils/nfsmount-fix-wrong-umount-path.patch new file mode 100644 index 000000000..0f62fea82 --- /dev/null +++ b/core/mkinitcpio-nfs-utils/nfsmount-fix-wrong-umount-path.patch @@ -0,0 +1,14 @@ +--- a/nfsmount/mount.c 2012-11-10 20:16:31.894540497 -0500 ++++ b/nfsmount/mount.c 2012-11-10 20:16:39.957369011 -0500 +@@ -358,9 +358,9 @@ + bail: + if (mounted) { + if (data->flags & NFS_MOUNT_VER3) { +- umount_v3(path, clnt); ++ umount_v3(rem_path, clnt); + } else { +- umount_v2(path, clnt); ++ umount_v2(rem_path, clnt); + } + } + diff --git a/extra/amarok/PKGBUILD b/extra/amarok/PKGBUILD index bbeb27b28..a8b191b88 100644 --- a/extra/amarok/PKGBUILD +++ b/extra/amarok/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 165272 2012-08-14 19:57:06Z ronald $ +# $Id: PKGBUILD 172156 2012-11-30 08:00:25Z ronald $ # Maintainer: Ronald van Haren # Contributor: Andrea Scarpino # Contributor: damir @@ -6,13 +6,13 @@ pkgname=amarok replaces=('amarok-base' 'amarok-engine-xine' 'amarok-base-mysqlfree') pkgver=2.6.0 -pkgrel=1 +pkgrel=3 pkgdesc="The powerful music player for KDE" arch=("i686" "x86_64") url="http://amarok.kde.org" license=('GPL2' 'LGPL2.1' 'FDL') depends=('kdebase-runtime' 'mysql' 'qtscriptgenerator' 'taglib-extras' - 'liblastfm' 'ffmpeg' 'libofa' 'qjson') + 'liblastfm' 'ffmpeg' 'libofa' 'qjson' 'mesa') makedepends=('pkgconfig' 'automoc4' 'cmake' 'libgpod' 'libmtp' 'loudmouth' 'libmygpo-qt') optdepends=("libgpod: support for Apple iPod audio devices" diff --git a/extra/digikam/PKGBUILD b/extra/digikam/PKGBUILD index 85df42f9e..d75d064e7 100644 --- a/extra/digikam/PKGBUILD +++ b/extra/digikam/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 165883 2012-09-02 19:21:35Z ronald $ +# $Id: PKGBUILD 172158 2012-11-30 10:06:04Z ronald $ # Maintainer: Ronald van Haren # Contributor: Andrea Scarpino # Contributor: Tobias Powalowski @@ -6,14 +6,14 @@ pkgbase=digikam pkgname=('digikam' 'kipi-plugins' 'libkface' 'libkgeomap' 'libkvkontakte' 'libmediawiki') pkgver=2.9.0 -pkgrel=1 +pkgrel=2 pkgdesc="Digital photo management application for KDE" arch=('i686' 'x86_64') license=('GPL') url="http://www.digikam.org/" makedepends=('kdepimlibs' 'libkexiv2' 'libkdcraw' 'libkipi' 'libksane' 'liblqr' 'kdeedu-marble' 'opencv' 'boost' 'libgpod' 'qjson' 'hugin' - 'cmake' 'automoc4' 'doxygen') + 'cmake' 'automoc4' 'doxygen' 'mesa') source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2") sha1sums=('df4b879a95f4ccac4480c5161d66fb05d6fbefcd') diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD index 2628e71a0..464433ecb 100644 --- a/extra/dovecot/PKGBUILD +++ b/extra/dovecot/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 172133 2012-11-29 19:39:59Z andyrtr $ +# $Id: PKGBUILD 172165 2012-11-30 14:16:13Z andyrtr $ # Maintainer: Andreas Radke # Contributor: Paul Mattal # Contributor: Federico Quagliata (quaqo) # Contributor: GARETTE Emmanuel pkgname=dovecot -pkgver=2.1.11 -pkgrel=2 +pkgver=2.1.12 +pkgrel=1 pkgdesc="An IMAP and POP3 server written with security primarily in mind" arch=('i686' 'x86_64') url="http://dovecot.org/" @@ -22,8 +22,8 @@ install=$pkgname.install source=(http://dovecot.org/releases/2.1/${pkgname}-${pkgver}.tar.gz{,.sig} dovecot.sh dovecot.tmpfilesd) -md5sums=('28443208243171423437daaf89db7e18' - 'b3dd87d3dac492c172c0f399a82e88df' +md5sums=('b575dfb5db954132f41e7c390e7e11ff' + '86abccd4ac989be71a33ff856b25057a' '587159e84e2da6f83d70b3c706ba87cc' '342a28251d40f983c98c0d1f1bf3d07d') @@ -79,7 +79,4 @@ package() { # systemd tmpfile install -d -m755 ${pkgdir}/usr/lib/tmpfiles.d install -m 644 ${srcdir}/dovecot.tmpfilesd ${pkgdir}/usr/lib/tmpfiles.d/dovecot.conf - - # fix some missing quotes that make pigeonhole fail to build - sed -i "s:LIBDOVECOT_LOGIN=-ldovecot-login -lssl -lcrypto:LIBDOVECOT_LOGIN=\'-ldovecot-login -lssl -lcrypto \':" ${pkgdir}/usr/lib/dovecot/dovecot-config } diff --git a/extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch b/extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch new file mode 100644 index 000000000..8ad67ee74 --- /dev/null +++ b/extra/hefur/Check-that-added-torrents-from-the-disk-are-still-on.patch @@ -0,0 +1,93 @@ +From dbd00cfc3805b6f1ff794f7de0b52b1a7893401f Mon Sep 17 00:00:00 2001 +From: Alexandre Bique +Date: Thu, 15 Nov 2012 20:43:41 +0100 +Subject: [PATCH 07/12] Check that added torrents from the disk are still on + the disk. +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + hefur/fs-tree-white-list.cc | 20 ++++++++++++++++++++ + hefur/fs-tree-white-list.hh | 1 + + hefur/torrent-db.hh | 4 +++- + 3 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/hefur/fs-tree-white-list.cc b/hefur/fs-tree-white-list.cc +index f493e95..61714d0 100644 +--- a/hefur/fs-tree-white-list.cc ++++ b/hefur/fs-tree-white-list.cc +@@ -54,10 +54,30 @@ namespace hefur + } + + void ++ FsTreeWhiteList::check() ++ { ++ std::vector keys; ++ auto db = Hefur::instance().torrentDb(); ++ m::SharedMutex::Locker locker(db->torrents_lock_); ++ db->torrents_.foreach([this, &keys] (Torrent::Ptr torrent) { ++ if (::strncmp(torrent->path().c_str(), root_.c_str(), root_.size())) ++ return; ++ ++ struct ::stat st; ++ if (::stat(torrent->path().c_str(), &st) && errno == ENOENT) ++ keys.push_back(torrent->key()); ++ }); ++ ++ for (auto it = keys.begin(); it != keys.end(); ++it) ++ db->torrents_.erase(*it); ++ } ++ ++ void + FsTreeWhiteList::loopScan() + { + do { + scan(); ++ check(); + } while (!stop_.timedWait(m::time() + rescan_interval_)); + } + } +diff --git a/hefur/fs-tree-white-list.hh b/hefur/fs-tree-white-list.hh +index c32bcd4..643fb78 100644 +--- a/hefur/fs-tree-white-list.hh ++++ b/hefur/fs-tree-white-list.hh +@@ -30,6 +30,7 @@ namespace hefur + * When a .torrent is found, call TorrentDb::addTorrent(). + */ + void scan(); ++ void check(); + + private: + /** +diff --git a/hefur/torrent-db.hh b/hefur/torrent-db.hh +index a1e5d38..e25ed33 100644 +--- a/hefur/torrent-db.hh ++++ b/hefur/torrent-db.hh +@@ -17,6 +17,7 @@ namespace hefur + { + class StatHandler; + class PeersHandler; ++ class FsTreeWhiteList; + + /** + * This is the "in memory" torrent database. +@@ -63,6 +64,7 @@ namespace hefur + friend class StatHandler; + friend class PeersHandler; + friend class FileHandler; ++ friend class FsTreeWhiteList; + + /** helper to use torrent->key() as a key for the trie */ + static inline m::StringRef torrentKey(Torrent::Ptr torrent) { +@@ -77,7 +79,7 @@ namespace hefur + m::Future cleanup_stop_; + m::Thread cleanup_thread_; + m::SharedMutex torrents_lock_; +- torrents_type torrents_; ++ torrents_type torrents_; + }; + } + +-- +1.8.0.1 + diff --git a/extra/hefur/PKGBUILD b/extra/hefur/PKGBUILD index 09db3f623..7b593a50c 100644 --- a/extra/hefur/PKGBUILD +++ b/extra/hefur/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 169811 2012-10-29 22:16:57Z thomas $ +# $Id: PKGBUILD 172176 2012-11-30 21:59:44Z thomas $ # Maintainer: Pierre Schmitz # Contributor: Alexandre Bique pkgname=hefur pkgver=0.3 -pkgrel=3 +pkgrel=4 pkgdesc='A standalone and lightweight BitTorrent tracker' arch=('i686' 'x86_64') url='http://github.com/abique/hefur' @@ -12,12 +12,18 @@ license=('MIT') makedepends=('cmake') depends=('gnutls' 'xz') source=("https://github.com/downloads/abique/${pkgname}/${pkgname}-${pkgver}.tar.xz" - 'hefurd.service') + 'hefurd.service' + 'Check-that-added-torrents-from-the-disk-are-still-on.patch' + 'Replace-by-amp-in-stat.html.patch') md5sums=('446ca4e659ce0ca3c8f32b0990ee7f5f' - 'fec6d1a7a96bd6c5605d5316fec4fc2f') + '731d5be04d74a52541450b5127abeff3' + 'f912a75467a30251403923c0a7abe049' + 'f11af93e9a8074c8ba73f7a47e978362') build() { cd ${srcdir}/${pkgname}-${pkgver} + patch -p1 -i ${srcdir}/Check-that-added-torrents-from-the-disk-are-still-on.patch + patch -p1 -i ${srcdir}/Replace-by-amp-in-stat.html.patch mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. diff --git a/extra/hefur/Replace-by-amp-in-stat.html.patch b/extra/hefur/Replace-by-amp-in-stat.html.patch new file mode 100644 index 000000000..a11406a2f --- /dev/null +++ b/extra/hefur/Replace-by-amp-in-stat.html.patch @@ -0,0 +1,27 @@ +From 6986df22d293b7a149f51d4d8ba4a995645a4560 Mon Sep 17 00:00:00 2001 +From: Alexandre Bique +Date: Sun, 4 Nov 2012 14:08:47 +0100 +Subject: [PATCH 03/12] Replace & by & in stat.html. +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + www/tpl/stat.html | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/www/tpl/stat.html b/www/tpl/stat.html +index 3234679..1e3b148 100644 +--- a/www/tpl/stat.html ++++ b/www/tpl/stat.html +@@ -21,7 +21,7 @@ + {{*torrents}} + + +- + + +-- +1.8.0.1 + diff --git a/extra/hefur/hefurd.service b/extra/hefur/hefurd.service index cdfc461ab..a5766225f 100644 --- a/extra/hefur/hefurd.service +++ b/extra/hefur/hefurd.service @@ -6,6 +6,7 @@ After=network.target ExecStart=/usr/bin/hefurd -torrent-dir /var/lib/hefurd User=nobody Group=nobody +CPUSchedulingPolicy=batch [Install] WantedBy=multi-user.target diff --git a/extra/ltrace/PKGBUILD b/extra/ltrace/PKGBUILD index d2ceb9a2c..de2d548bb 100644 --- a/extra/ltrace/PKGBUILD +++ b/extra/ltrace/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 170791 2012-11-11 15:22:36Z foutrelis $ +# $Id: PKGBUILD 172160 2012-11-30 11:07:55Z foutrelis $ # Maintainer: Evangelos Foutras # Contributor: Aaron Griffin # Contributor: Tom Newsom pkgname=ltrace -pkgver=0.7.0 +pkgver=0.7.1 pkgrel=1 pkgdesc="Tracks runtime library calls in dynamically linked programs" arch=('i686' 'x86_64') url="http://ltrace.alioth.debian.org/" license=('GPL') depends=('elfutils') +makedepends=('dejagnu') backup=('etc/ltrace.conf') -source=(https://alioth.debian.org/frs/download.php/3822/$pkgname-$pkgver.tar.bz2) -sha256sums=('5438ce286f072f0e0448db046657466f9bd142600013329063aecf7cf809fd10') +source=(https://alioth.debian.org/frs/download.php/3844/$pkgname-$pkgver.tar.bz2) +sha256sums=('9010ab85444c44e2f1b340049b6ce877e41566996f0045af9519ad056ae9b83d') build() { cd "$srcdir/$pkgname-$pkgver" @@ -24,14 +25,16 @@ build() { make } +check() { + cd "$srcdir/$pkgname-$pkgver" + + make -k check +} + package(){ cd "$srcdir/$pkgname-$pkgver" make DESTDIR="$pkgdir" install - - # ltrace.conf.5 needs to be installed to man5 (fixed in upstream git repo) - install -d "$pkgdir/usr/share/man/man5" - mv "$pkgdir/usr/share/man/man"{1/ltrace.conf.1,5/ltrace.conf.5} } # vim:set ts=2 sw=2 et: diff --git a/extra/pigeonhole/PKGBUILD b/extra/pigeonhole/PKGBUILD index 45de7f3cc..d0712b912 100644 --- a/extra/pigeonhole/PKGBUILD +++ b/extra/pigeonhole/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 172134 2012-11-29 19:40:00Z andyrtr $ +# $Id: PKGBUILD 172166 2012-11-30 14:16:14Z andyrtr $ # Maintainer: Andreas Radke # Contributorr: Peter Lewis @@ -7,12 +7,12 @@ # This must be built against the version of dovecot being used, # else mail delivery will fail. # Specify the version of dovecot to be used here: -_dcpkgver=2.1.11 +_dcpkgver=2.1.12 # Make sure to bump pkgrel if changing this. pkgname=pigeonhole pkgver=0.3.3 -pkgrel=2 +pkgrel=3 pkgdesc="Fully rewritten Sieve implementation for Dovecot v2.1" arch=('i686' 'x86_64') url="http://pigeonhole.dovecot.org/" diff --git a/extra/qt/PKGBUILD b/extra/qt/PKGBUILD index 77bd108c3..81bc33e83 100644 --- a/extra/qt/PKGBUILD +++ b/extra/qt/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 171529 2012-11-18 11:57:31Z andrea $ +# $Id: PKGBUILD 172171 2012-11-30 15:30:26Z andrea $ # Maintainer: Andrea Scarpino # Contributor: Pierre Schmitz pkgbase=qt pkgname=('qt' 'qt-private-headers') -pkgver=4.8.3 -pkgrel=6 +pkgver=4.8.4 +pkgrel=1 arch=('i686' 'x86_64') url='http://qt-project.org/' license=('GPL3' 'LGPL') @@ -19,20 +19,14 @@ source=("http://releases.qt-project.org/qt4/source/${_pkgfqn}.tar.gz" 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qtconfig.desktop' 'improve-cups-support.patch' - 'fix-crash-in-assistant.patch' - 'disable-ssl-compression.patch' - 'fix-qtscript-crash.patch' - 'qsortfilterproxymodel.patch') -md5sums=('a663b6c875f8d7caa8ac9c30e4a4ec3b' - 'fc211414130ab2764132e7370f8e5caa' - '85179f5e0437514f8639957e1d8baf62' - 'f11852b97583610f3dbb669ebc3e21bc' - '6b771c8a81dd90b45e8a79afa0e5bbfd' + 'fix-crash-in-assistant.patch') +md5sums=('89c5ecba180cae74c66260ac732dc5cb' + 'f1837a03fd0ebbd2da58975845f278e3' + '480fea1ed076992b688373c8db274be0' + '5595c24d5bb942c21e3a4d299e6d0bf1' + '824a3b77a25e98567f640e0441ccdebc' 'c439c7731c25387352d8453ca7574971' - '57590084078b6379f0501f7728b02ae2' - '94e9e433342018bf35e8d6d968b7432c' - '71579422635e9343665de1c1ba5a3f91' - 'cd550cd628d10459128ca5f231ca6d3f') + '57590084078b6379f0501f7728b02ae2') build() { cd ${_pkgfqn} @@ -43,15 +37,6 @@ build() { # (FS#29469) patch -p1 -i "${srcdir}"/fix-crash-in-assistant.patch - # Security fix - patch -p1 -i "${srcdir}"/disable-ssl-compression.patch - - # QTBUG#27322 - patch -p1 -i "${srcdir}"/fix-qtscript-crash.patch - - # QTBUG#27122 - patch -p1 -i "${srcdir}"/qsortfilterproxymodel.patch - export QT4DIR="${srcdir}"/${_pkgfqn} export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH} diff --git a/extra/qt/assistant.desktop b/extra/qt/assistant.desktop index a9e98c44b..37ff84b44 100644 --- a/extra/qt/assistant.desktop +++ b/extra/qt/assistant.desktop @@ -4,6 +4,5 @@ Comment=Shows Qt documentation and examples Exec=/usr/bin/assistant Icon=assistant Terminal=false -Encoding=UTF-8 Type=Application Categories=Qt;Development;Documentation; diff --git a/extra/qt/designer.desktop b/extra/qt/designer.desktop index 9b7b6e9aa..f0b381d02 100644 --- a/extra/qt/designer.desktop +++ b/extra/qt/designer.desktop @@ -6,6 +6,5 @@ Exec=/usr/bin/designer Icon=designer MimeType=application/x-designer; Terminal=false -Encoding=UTF-8 Type=Application Categories=Qt;Development; diff --git a/extra/qt/linguist.desktop b/extra/qt/linguist.desktop index 8cbe86599..3b203e0bd 100644 --- a/extra/qt/linguist.desktop +++ b/extra/qt/linguist.desktop @@ -5,6 +5,5 @@ Exec=/usr/bin/linguist Icon=linguist MimeType=text/vnd.trolltech.linguist;application/x-linguist; Terminal=false -Encoding=UTF-8 Type=Application Categories=Qt;Development; diff --git a/extra/qt/qtconfig.desktop b/extra/qt/qtconfig.desktop index 46dcf9e3d..95770ff6a 100644 --- a/extra/qt/qtconfig.desktop +++ b/extra/qt/qtconfig.desktop @@ -4,7 +4,6 @@ Comment=Configure Qt behavior, styles, fonts Exec=/usr/bin/qtconfig Icon=qtlogo Terminal=false -Encoding=UTF-8 Type=Application Categories=Qt;Settings; NoDisplay=true diff --git a/extra/xf86-video-intel/PKGBUILD b/extra/xf86-video-intel/PKGBUILD index 6699cf306..cc3134130 100644 --- a/extra/xf86-video-intel/PKGBUILD +++ b/extra/xf86-video-intel/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 171096 2012-11-16 17:03:26Z andyrtr $ +# $Id: PKGBUILD 172167 2012-11-30 14:16:54Z andyrtr $ # Maintainer: AndyRTR # Maintainer: Jan de Groot pkgname=xf86-video-intel -pkgver=2.20.13 +pkgver=2.20.14 pkgrel=1 arch=(i686 x86_64) url="http://xorg.freedesktop.org/" @@ -19,7 +19,7 @@ conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERS options=('!libtool') groups=('xorg-drivers' 'xorg') source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2) -sha256sums=('0151104b58ff3509ecd05ac4ee2c5d81a78506c97afbed511fed6b263060dce3') +sha256sums=('f85019afd5ddead6606bf89855d209d5369823a6e96b779fa956e0cc78d3b09b') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/libre/cups-filters-libre/PKGBUILD b/libre/cups-filters-libre/PKGBUILD index addf86ef3..84b4d0cd1 100644 --- a/libre/cups-filters-libre/PKGBUILD +++ b/libre/cups-filters-libre/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 166387 2012-09-07 13:33:10Z andyrtr $ +# $Id: PKGBUILD 172123 2012-11-29 18:28:53Z andyrtr $ # Maintainer: Andreas Radke pkgname=cups-filters-libre _pkgname=cups-filters -pkgver=1.0.24 +pkgver=1.0.25 pkgrel=1 pkgdesc="OpenPrinting CUPS Filters" arch=('i686' 'x86_64') url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting" license=('GPL') -depends=('lcms2' 'poppler>=0.20.3' 'qpdf') +depends=('lcms2' 'poppler>=0.20.5' 'qpdf') makedepends=('ghostscript' 'ttf-dejavu') # ttf-dejavu for make check optdepends=('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' @@ -17,7 +17,7 @@ optdepends=('ghostscript: for non-PostScript printers to print with CUPS to conv backup=(etc/fonts/conf.d/99pdftoopvp.conf) options=(!libtool) source=(http://www.openprinting.org/download/cups-filters/$_pkgname-$pkgver.tar.gz) -md5sums=('242ea48cd41f8546d71b00bf2b06c564') +md5sums=('9690028c5e312b086e7572ae1899a33c') replaces=("${_pkgname}") conflicts=("${_pkgname}") provides=("${_pkgname}=${pkgver}") diff --git a/libre/hplip-libre/PKGBUILD b/libre/hplip-libre/PKGBUILD index aa7dea706..069fa612d 100644 --- a/libre/hplip-libre/PKGBUILD +++ b/libre/hplip-libre/PKGBUILD @@ -1,25 +1,25 @@ -# $Id: PKGBUILD 144357 2011-12-05 03:44:51Z eric $ +# $Id: PKGBUILD 172168 2012-11-30 14:31:06Z tomegun $ # Maintainer: Tom Gundersen -# Maintainer : Rémy Oudompheng +# Contributor : Rémy Oudompheng # Contributor: Morgan LEFIEUX # Maintainer (Parabola): Jorge López _pkgname=hplip pkgname=hplip-libre -pkgver=3.12.6 -pkgrel=3 +pkgver=3.12.11 +pkgrel=2 pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet (without hplip-plugin binary blobs recommendation)" arch=('i686' 'x86_64') url="http://hplipopensource.com" license=('GPL') depends=('python2' 'ghostscript>=8.64-6' 'foomatic-db' 'foomatic-db-engine' - 'net-snmp>=5.7.1') + 'net-snmp>=5.7.1' 'wget') makedepends=('python2-pyqt' 'python2-gobject2' 'sane' 'rpcbind' 'cups' 'libusbx') optdepends=('cups: for printing support' 'python2-dbus: for dbus support' 'sane: for scanner support' - 'python-imaging: for commandline scanning support' - 'python-notify: for Desktop notification support' + 'python2-imaging: for commandline scanning support' + 'python2-notify: for Desktop notification support' 'rpcbind: for network support' 'python2-pyqt: for running hp-toolbox' 'python2-gobject2: for running hp-toolbox' @@ -29,16 +29,19 @@ conflicts=("${_pkgname}") provides=("${_pkgname}=${pkgver}") options=('!libtool') install=hplip.install -source=(http://downloads.sourceforge.net/${_pkgname}/$_pkgname-$pkgver.tar.gz{,.asc}) -md5sums=('5303938e8630775ea6fb383af85775e5' - 'b562457e4c713d8609b3d6dd2be10baf') +source=(http://downloads.sourceforge.net/${_pkgname}/$_pkgname-$pkgver.tar.gz{,.asc} + cups-1.6-buildfix.diff) build() { cd "$srcdir/$_pkgname-$pkgver" + + # fix build with cups 1.6 - FC hplip-ipp-accessors.patch + patch -p1 -i "${srcdir}/cups-1.6-buildfix.diff" + export PYTHON=python2 find . -type f -exec sed -i 's~^#.*env python~#!/usr/bin/env python2~' {} + - sed -i '1s|#!/usr/bin/python|#!/usr/bin/python2|' setup.py makeuri.py base/magic.py + sed -i '1s|#!/usr/bin/python|#!/usr/bin/python2|' setup.py makeuri.py logcapture.py base/magic.py sed -i '1s|#!/usr/bin/python|#!/usr/bin/python2|' ui/upgradeform.py uninstall.py upgrade.py config_usb_printer.py sed -i 's|python ./print.py|python2 ./print.py|' scan.py sed -i 's|python ./testpage.py|python2 ./testpage.py|' setup.py @@ -46,7 +49,9 @@ build() { sed -i 's|python %HOME%|python2 %HOME%|' base/utils.py sed -i 's|python ./plugin.py|python2 ./plugin.py|' base/pkit.py - + # fix rc script path - FS#31921 + sed -i 's|\/etc\/init.d\/cupsys|\/etc\/rc.d\/cupsd|g' setup.py + # https://bugs.archlinux.org/task/30085 - hack found in Gentoo # Use system foomatic-rip for hpijs driver instead of foomatic-rip-hplip # The hpcups driver does not use foomatic-rip @@ -78,13 +83,16 @@ build() { } package() { - cd "$srcdir/$_pkgname-$pkgver" - make rulesdir=/lib/udev/rules.d DESTDIR="$pkgdir/" install + #cd "$srcdir/$_pkgname-$pkgver" + cd "$srcdir/$_pkgname-${pkgver/.a/a}" + make rulesdir=/usr/lib/udev/rules.d DESTDIR="$pkgdir/" install # remove config provided by sane and autostart of hp-daemon rm -rf "$pkgdir"/etc/{sane.d,xdg} # remove HAL .fdi file because HAL is no longer used rm -rf "$pkgdir"/usr/share/hal - # move to /usr - mv "$pkgdir"/lib/udev "$pkgdir"/usr/lib/ - rm "$pkgdir"/lib -r + # log dir should not be world writeable + chmod 775 "$pkgdir"/var/log/hp{,/tmp} } +md5sums=('6caadc4a9e49076c284b146e2dce2937' + '835d3b854d097f229a32291338fa2320' + 'ef64578c6cb3ce252dbdcb0f1c2f4a47') diff --git a/libre/hplip-libre/cups-1.6-buildfix.diff b/libre/hplip-libre/cups-1.6-buildfix.diff new file mode 100644 index 000000000..8341a1610 --- /dev/null +++ b/libre/hplip-libre/cups-1.6-buildfix.diff @@ -0,0 +1,392 @@ +diff -up hplip-3.12.6/prnt/cupsext/cupsext.c.ipp_accessors hplip-3.12.6/prnt/cupsext/cupsext.c +--- hplip-3.12.6/prnt/cupsext/cupsext.c.ipp_accessors 2012-06-18 12:41:19.000000000 +0200 ++++ hplip-3.12.6/prnt/cupsext/cupsext.c 2012-07-19 17:11:47.606524137 +0200 +@@ -87,6 +87,46 @@ typedef int Py_ssize_t; + #define PY_SSIZE_T_MIN INT_MIN + #endif + ++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5) ++#define HAVE_CUPS_1_6 1 ++#endif ++ ++#ifndef HAVE_CUPS_1_6 ++#define ippGetCount(attr) attr->num_values ++#define ippGetGroupTag(attr) attr->group_tag ++#define ippGetValueTag(attr) attr->value_tag ++#define ippGetName(attr) attr->name ++#define ippGetBoolean(attr, element) attr->values[element].boolean ++#define ippGetInteger(attr, element) attr->values[element].integer ++#define ippGetStatusCode(ipp) ipp->request.status.status_code ++#define ippGetString(attr, element, language) attr->values[element].string.text ++ ++static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp ) ++{ ++ if (!ipp) ++ return (NULL); ++ return (ipp->current = ipp->attrs); ++} ++ ++static ipp_attribute_t * ippNextAttribute( ipp_t *ipp ) ++{ ++ if (!ipp || !ipp->current) ++ return (NULL); ++ return (ipp->current = ipp->current->next); ++} ++ ++static int ippSetOperation( ipp_t *ipp, ipp_op_t op ) ++{ ++ ipp->request.op.operation_id = op; ++ return (1); ++} ++ ++static int ippSetRequestId( ipp_t *ipp, int request_id ) ++{ ++ ipp->request.any.request_id = request_id; ++ return (1); ++} ++#endif + + int g_num_options = 0; + cups_option_t * g_options; +@@ -333,8 +373,8 @@ PyObject * getPrinters( PyObject * self, + request = ippNew(); + language = cupsLangDefault(); + +- request->request.op.operation_id = CUPS_GET_PRINTERS; +- request->request.any.request_id = 1; ++ ippSetOperation( request, CUPS_GET_PRINTERS ); ++ ippSetRequestId ( request, 1); + + ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, + "attributes-charset", NULL, cupsLangEncoding( language ) ); +@@ -378,10 +418,10 @@ PyObject * getPrinters( PyObject * self, + ipp_pstate_t state; + int i = 0; + +- for ( attr = response->attrs; attr != NULL; attr = attr->next ) ++ for ( attr = ippFirstAttribute( response ); attr != NULL; attr = ippNextAttribute( response ) ) + { +- while ( attr != NULL && attr->group_tag != IPP_TAG_PRINTER ) +- attr = attr->next; ++ while ( attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER ) ++ attr = ippNextAttribute( response ); + + if ( attr == NULL ) + break; +@@ -390,41 +430,41 @@ PyObject * getPrinters( PyObject * self, + state = IPP_PRINTER_IDLE; + accepting = 0; + +- while ( attr != NULL && attr->group_tag == IPP_TAG_PRINTER ) ++ while ( attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER ) + { +- if ( strcmp( attr->name, "printer-name" ) == 0 && +- attr->value_tag == IPP_TAG_NAME ) +- name = attr->values[ 0 ].string.text; +- +- else if ( strcmp( attr->name, "device-uri" ) == 0 && +- attr->value_tag == IPP_TAG_URI ) +- device_uri = attr->values[ 0 ].string.text; +- +- else if ( strcmp( attr->name, "printer-uri-supported" ) == 0 && +- attr->value_tag == IPP_TAG_URI ) +- printer_uri = attr->values[ 0 ].string.text; +- +- else if ( strcmp( attr->name, "printer-info" ) == 0 && +- attr->value_tag == IPP_TAG_TEXT ) +- info = attr->values[ 0 ].string.text; +- +- else if ( strcmp( attr->name, "printer-location" ) == 0 && +- attr->value_tag == IPP_TAG_TEXT ) +- location = attr->values[ 0 ].string.text; +- +- else if ( strcmp( attr->name, "printer-make-and-model" ) == 0 && +- attr->value_tag == IPP_TAG_TEXT ) +- make_model = attr->values[ 0 ].string.text; +- +- else if ( strcmp( attr->name, "printer-state" ) == 0 && +- attr->value_tag == IPP_TAG_ENUM ) +- state = ( ipp_pstate_t ) attr->values[ 0 ].integer; +- +- else if (!strcmp(attr->name, "printer-is-accepting-jobs") && +- attr->value_tag == IPP_TAG_BOOLEAN) +- accepting = attr->values[ 0 ].boolean; ++ if ( strcmp( ippGetName( attr ), "printer-name" ) == 0 && ++ ippGetValueTag( attr ) == IPP_TAG_NAME ) ++ name = ippGetString( attr, 0, NULL ); ++ ++ else if ( strcmp( ippGetName( attr ), "device-uri" ) == 0 && ++ ippGetValueTag( attr ) == IPP_TAG_URI ) ++ device_uri = ippGetString( attr, 0, NULL ); ++ ++ else if ( strcmp( ippGetName( attr ), "printer-uri-supported" ) == 0 && ++ ippGetValueTag( attr ) == IPP_TAG_URI ) ++ printer_uri = ippGetString( attr, 0, NULL ); ++ ++ else if ( strcmp( ippGetName( attr ), "printer-info" ) == 0 && ++ ippGetValueTag( attr ) == IPP_TAG_TEXT ) ++ info = ippGetString( attr, 0, NULL ); ++ ++ else if ( strcmp( ippGetName( attr ), "printer-location" ) == 0 && ++ ippGetValueTag( attr ) == IPP_TAG_TEXT ) ++ location = ippGetString( attr, 0, NULL ); ++ ++ else if ( strcmp( ippGetName( attr ), "printer-make-and-model" ) == 0 && ++ ippGetValueTag( attr ) == IPP_TAG_TEXT ) ++ make_model = ippGetString( attr, 0, NULL ); ++ ++ else if ( strcmp( ippGetName( attr ), "printer-state" ) == 0 && ++ ippGetValueTag( attr ) == IPP_TAG_ENUM ) ++ state = ( ipp_pstate_t ) ippGetInteger( attr, 0 ); ++ ++ else if (!strcmp(ippGetName( attr ), "printer-is-accepting-jobs") && ++ ippGetValueTag( attr ) == IPP_TAG_BOOLEAN) ++ accepting = ippGetBoolean( attr, 0 ); + +- attr = attr->next; ++ attr = ippNextAttribute( response ); + } + + if ( device_uri == NULL ) +@@ -522,8 +562,8 @@ PyObject * addPrinter( PyObject * self, + request = ippNew(); + language = cupsLangDefault(); + +- request->request.op.operation_id = CUPS_ADD_PRINTER; +- request->request.any.request_id = 1; ++ ippSetOperation( request, CUPS_ADD_PRINTER ); ++ ippSetRequestId ( request, 1 ); + + ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, + "attributes-charset", NULL, cupsLangEncoding( language ) ); +@@ -568,7 +608,7 @@ PyObject * addPrinter( PyObject * self, + } + else + { +- status = response->request.status.status_code; ++ status = ippGetStatusCode( response ); + //ippDelete( response ); + r = 1; + } +@@ -631,8 +671,8 @@ PyObject * delPrinter( PyObject * self, + */ + request = ippNew(); + +- request->request.op.operation_id = CUPS_DELETE_PRINTER; +- request->request.op.request_id = 1; ++ ippSetOperation( request, CUPS_DELETE_PRINTER ); ++ ippSetRequestId ( request, 1 ); + + language = cupsLangDefault(); + +@@ -650,7 +690,7 @@ PyObject * delPrinter( PyObject * self, + */ + response = cupsDoRequest( http, request, "/admin/" ); + +- if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) ) ++ if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) ) + { + r = 1; + } +@@ -721,8 +761,8 @@ PyObject * setDefaultPrinter( PyObject * + + request = ippNew(); + +- request->request.op.operation_id = CUPS_SET_DEFAULT; +- request->request.op.request_id = 1; ++ ippSetOperation( request, CUPS_SET_DEFAULT ); ++ ippSetRequestId ( request, 1 ); + + language = cupsLangDefault(); + +@@ -743,7 +783,7 @@ PyObject * setDefaultPrinter( PyObject * + + response = cupsDoRequest( http, request, "/admin/" ); + +- if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) ) ++ if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) ) + { + r = 1; + } +@@ -797,8 +837,8 @@ PyObject * controlPrinter( PyObject * se + + request = ippNew(); + +- request->request.op.operation_id = op; +- request->request.op.request_id = 1; ++ ippSetOperation( request, op ); ++ ippSetRequestId ( request, 1 ); + + language = cupsLangDefault(); + +@@ -822,7 +862,7 @@ PyObject * controlPrinter( PyObject * se + + response = cupsDoRequest(http, request, "/admin/"); + +- if (( response != NULL ) && (response->request.status.status_code <= IPP_OK_CONFLICT)) ++ if (( response != NULL ) && (ippGetStatusCode( response ) <= IPP_OK_CONFLICT)) + { + r = 1; + } +@@ -837,7 +877,7 @@ abort: + if ( response != NULL ) + ippDelete( response ); + +- return Py_BuildValue( "i", r );; ++ return Py_BuildValue( "i", r ); + } + + +@@ -1116,8 +1156,8 @@ PyObject * getPPDList( PyObject * self, + + request = ippNew(); + +- request->request.op.operation_id = CUPS_GET_PPDS; +- request->request.op.request_id = 1; ++ ippSetOperation( request, CUPS_GET_PPDS ); ++ ippSetRequestId ( request, 1 ); + + language = cupsLangDefault(); + +@@ -1143,43 +1183,43 @@ PyObject * getPPDList( PyObject * self, + if ((response = cupsDoRequest(http, request, "/")) != NULL) + { + +- for (attr = response->attrs; attr; attr = attr->next) ++ for (attr = ippFirstAttribute( response ); attr; attr = ippNextAttribute( response )) + { + PyObject *dict; + char *ppdname = NULL; + +- while (attr && attr->group_tag != IPP_TAG_PRINTER) +- attr = attr->next; ++ while (attr && ippGetGroupTag( attr ) != IPP_TAG_PRINTER) ++ attr = ippNextAttribute( response ); + + if (!attr) + break; + + dict = PyDict_New (); + +- for (; attr && attr->group_tag == IPP_TAG_PRINTER; attr = attr->next) ++ for (; attr && ippGetGroupTag( attr ) == IPP_TAG_PRINTER; attr = ippNextAttribute( response )) + { + PyObject *val = NULL; + +- if (!strcmp (attr->name, "ppd-name") && attr->value_tag == IPP_TAG_NAME) ++ if (!strcmp (ippGetName( attr ), "ppd-name") && ippGetValueTag( attr ) == IPP_TAG_NAME) + { +- ppdname = attr->values[0].string.text; ++ ppdname = ippGetString( attr, 0, NULL ); + + //sprintf( buf, "print '%s'", ppdname); + //PyRun_SimpleString( buf ); + } + +- else if (attr->value_tag == IPP_TAG_TEXT || attr->value_tag == IPP_TAG_NAME || attr->value_tag == IPP_TAG_KEYWORD) +- //else if ((!strcmp (attr->name, "ppd-natural-language") && attr->value_tag == IPP_TAG_LANGUAGE) || +- // (!strcmp (attr->name, "ppd-make-and-model") && attr->value_tag == IPP_TAG_TEXT) || +- // (!strcmp (attr->name, "ppd-make") && attr->value_tag == IPP_TAG_TEXT) || +- // (!strcmp (attr->name, "ppd-device-id") && attr->value_tag == IPP_TAG_TEXT)) ++ else if (ippGetValueTag( attr ) == IPP_TAG_TEXT || ippGetValueTag( attr ) == IPP_TAG_NAME || ippGetValueTag( attr ) == IPP_TAG_KEYWORD) ++ //else if ((!strcmp (ippGetName( attr ), "ppd-natural-language") && ippGetValueTag( attr ) == IPP_TAG_LANGUAGE) || ++ // (!strcmp (ippGetName( attr ), "ppd-make-and-model") && ippGetValueTag( attr ) == IPP_TAG_TEXT) || ++ // (!strcmp (ippGetName( attr ), "ppd-make") && ippGetValueTag( attr ) == IPP_TAG_TEXT) || ++ // (!strcmp (ippGetName( attr ), "ppd-device-id") && ippGetValueTag( attr ) == IPP_TAG_TEXT)) + { +- val = PyObj_from_UTF8(attr->values[0].string.text); ++ val = PyObj_from_UTF8(ippGetString( attr, 0, NULL )); + } + + if (val) + { +- PyDict_SetItemString (dict, attr->name, val); ++ PyDict_SetItemString (dict, ippGetName( attr ), val); + Py_DECREF (val); + } + } +diff -up hplip-3.12.6/scan/sane/hpaio.c.ipp_accessors hplip-3.12.6/scan/sane/hpaio.c +--- hplip-3.12.6/scan/sane/hpaio.c.ipp_accessors 2012-06-18 12:42:51.000000000 +0200 ++++ hplip-3.12.6/scan/sane/hpaio.c 2012-07-19 17:12:34.557848760 +0200 +@@ -47,6 +47,43 @@ + #define DEBUG_DECLARE_ONLY + #include "sanei_debug.h" + ++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5) ++#define HAVE_CUPS_1_6 1 ++#endif ++ ++#ifndef HAVE_CUPS_1_6 ++#define ippGetGroupTag(attr) attr->group_tag ++#define ippGetValueTag(attr) attr->value_tag ++#define ippGetName(attr) attr->name ++#define ippGetString(attr, element, language) attr->values[element].string.text ++ ++static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp ) ++{ ++ if (!ipp) ++ return (NULL); ++ return (ipp->current = ipp->attrs); ++} ++ ++static ipp_attribute_t * ippNextAttribute( ipp_t *ipp ) ++{ ++ if (!ipp || !ipp->current) ++ return (NULL); ++ return (ipp->current = ipp->current->next); ++} ++ ++static int ippSetOperation( ipp_t *ipp, ipp_op_t op ) ++{ ++ ipp->request.op.operation_id = op; ++ return (1); ++} ++ ++static int ippSetRequestId( ipp_t *ipp, int request_id ) ++{ ++ ipp->request.any.request_id = request_id; ++ return (1); ++} ++#endif ++ + static SANE_Device **DeviceList = NULL; + + static int AddDeviceList(char *uri, char *model, SANE_Device ***pd) +@@ -186,8 +223,8 @@ static int GetCupsPrinters(char ***print + /* Assemble the IPP request */ + request = ippNew(); + +- request->request.op.operation_id = CUPS_GET_PRINTERS; +- request->request.any.request_id = 1; ++ ippSetOperation( request, CUPS_GET_PRINTERS ); ++ ippSetRequestId( request, 1 ); + + ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8"); + ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, "en"); +@@ -197,20 +234,20 @@ static int GetCupsPrinters(char ***print + if ((response = cupsDoRequest(http, request, "/")) == NULL) + goto bugout; + +- for (attr = response->attrs; attr != NULL; attr = attr->next) ++ for (attr = ippFirstAttribute ( response ); attr != NULL; attr = ippNextAttribute( response )) + { + /* Skip leading attributes until we hit a printer. */ +- while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER) +- attr = attr->next; ++ while (attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER) ++ attr = ippNextAttribute( response ); + + if (attr == NULL) + break; + +- while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER) ++ while (attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER) + { +- if (strcmp(attr->name, "device-uri") == 0 && attr->value_tag == IPP_TAG_URI && AddCupsList(attr->values[0].string.text, printer) == 0) ++ if (strcmp(ippGetName( attr ), "device-uri") == 0 && ippGetValueTag( attr ) == IPP_TAG_URI && AddCupsList(ippGetString( attr, 0, NULL ), printer) == 0) + cnt++; +- attr = attr->next; ++ attr = ippNextAttribute( response ); + } + + if (attr == NULL) -- cgit v1.2.3-54-g00ecf