diff options
author | root <root@rshg054.dnsready.net> | 2012-05-15 00:02:45 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-05-15 00:02:45 +0000 |
commit | 52a4948b9138662b1e7b23b04ef0d72101519f2d (patch) | |
tree | 701b562dc98245a57c6a93f3c2f94e3b1832f0eb | |
parent | d3af8dc0117dc1ce4fea3d05c7a2d7786bd78986 (diff) |
Tue May 15 00:02:45 UTC 2012
48 files changed, 3363 insertions, 158 deletions
diff --git a/community-staging/tellico/PKGBUILD b/community-staging/tellico/PKGBUILD new file mode 100644 index 000000000..3f232cf5d --- /dev/null +++ b/community-staging/tellico/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 70653 2012-05-13 20:54:07Z jlichtblau $ +# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +# Contributor: Maintainer: Ray Rashif <schiv@archlinux.org +# Contributor: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org> + +pkgname=tellico +pkgver=2.3.5 +pkgrel=2 +pkgdesc="A collection manager for KDE" +arch=('i686' 'x86_64') +url="http://tellico-project.org/" +license=('GPL') +depends=('kdebase-workspace' 'yaz' 'exempi' 'libksane' 'taglib' 'kdemultimedia-kioslave' 'poppler-qt' 'qjson') +makedepends=('automoc4' 'cmake') +install=$pkgname.install +source=(http://tellico-project.org/files/${pkgname}-${pkgver}.tar.bz2) +sha256sums=('b31db35589cae7f9af56a17e6589f8c5de68e36d9fc5fbaea4154e8238bf041c') + +build() { + cd ${srcdir} + + mkdir build + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd ${srcdir}/build + + make DESTDIR=${pkgdir} install + +# fix python 2.7 path + find ${pkgdir} -iname "*.py" | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' +} diff --git a/community-staging/tellico/tellico.install b/community-staging/tellico/tellico.install new file mode 100644 index 000000000..3b3aff7d9 --- /dev/null +++ b/community-staging/tellico/tellico.install @@ -0,0 +1,13 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/community/kid3/PKGBUILD b/community/kid3/PKGBUILD index 5b68cc28e..58909f0f8 100644 --- a/community/kid3/PKGBUILD +++ b/community/kid3/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 70617 2012-05-12 21:33:45Z jlichtblau $ +# $Id: PKGBUILD 70622 2012-05-13 09:46:34Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Alois Nespor <alois.nespor@gmail.com> pkgname=kid3 pkgver=2.1 -pkgrel=1 +pkgrel=2 pkgdesc="An MP3, Ogg/Vorbis and FLAC tag editor for KDE" arch=('i686' 'x86_64') url="http://kid3.sourceforge.net/" license=('GPL') -depends=('id3lib' 'qt' 'tunepimp' 'kdelibs') -makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl' 'chromaprint') +depends=('chromaprint' 'id3lib' 'qt' 'tunepimp' 'kdelibs') +makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl') options=('!makeflags') install=$pkgname.install changelog=$pkgname.changelog diff --git a/community/yaz/PKGBUILD b/community/yaz/PKGBUILD index 34a350665..73b0cd14b 100644 --- a/community/yaz/PKGBUILD +++ b/community/yaz/PKGBUILD @@ -1,24 +1,25 @@ -# $Id: PKGBUILD 69774 2012-04-23 09:16:32Z ibiru $ -# Maintainer: Ray Rashif <schiv@archlinux.org> +# $Id: PKGBUILD 70645 2012-05-13 19:04:54Z jlichtblau $ +# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +# Contributor: Ray Rashif <schiv@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Stefan Husmann <stefan-husmann@t-online.de> # Contributor: William Rea <sillywilly@gmail.com> # Contributor: Robert Emil Berge <filoktetes@linuxophic.org> pkgname=yaz -pkgver=4.2.29 +pkgver=4.2.33 pkgrel=1 pkgdesc="A toolkit supporting the development of Z39.50/SRW/SRU clients and servers" arch=('i686' 'x86_64') -license=('BSD') url="http://www.indexdata.dk/yaz" +license=('BSD') depends=('openssl' 'libxslt' 'icu') options=('!libtool') source=("http://ftp.indexdata.dk/pub/$pkgname/$pkgname-$pkgver.tar.gz") -md5sums=('584bcf12401f182a42091616c6cf7e0a') +sha256sums=('77baecaa0b032c0155676e704d39b49415d4793ab65ad6c26e04f6dfb0be1276') build() { - cd "$srcdir/$pkgname-$pkgver" + cd ${srcdir}/$pkgname-$pkgver ./configure --prefix=/usr \ --enable-shared=yaz \ @@ -27,12 +28,9 @@ build() { } package() { - cd "$srcdir/$pkgname-$pkgver" + cd ${srcdir}/$pkgname-$pkgver - make DESTDIR="$pkgdir/" install + make DESTDIR=${pkgdir} install - install -Dm644 LICENSE \ - "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE } - -# vim:set ts=2 sw=2 et: diff --git a/extra/amule/PKGBUILD b/extra/amule/PKGBUILD index b56951402..5cde41e62 100644 --- a/extra/amule/PKGBUILD +++ b/extra/amule/PKGBUILD @@ -1,28 +1,23 @@ -# $Id: PKGBUILD 155990 2012-04-10 22:28:11Z giovanni $ +# $Id: PKGBUILD 158922 2012-05-13 08:27:33Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Henrik Ronellenfitsch <searinox@web.de> # Contributor: Alessio Sergi <sergi.alessio {at} gmail.com> # Contributor: Dario 'Dax' Vilardi <dax [at] deelab [dot] org> pkgname=amule -pkgver=10771 +pkgver=10785 pkgrel=1 pkgdesc="An eMule-like client for ed2k p2p network" arch=('i686' 'x86_64') url="http://www.amule.org" license=('GPL') depends=('wxgtk' 'gd' 'geoip' 'libupnp' 'crypto++') -source=("http://amule.sourceforge.net/tarballs/aMule-SVN-r${pkgver}.tar.bz2" - 'gcc4.7.patch') -md5sums=('0439a71048c7dbdf912d19979dc0faad' - '0498a6795f4ac3a3e8bbcf51a5026820') +source=("http://amule.sourceforge.net/tarballs/aMule-SVN-r${pkgver}.tar.bz2") +md5sums=('e8b24cff96050eeb07b05a7add5803ff') build() { cd "${srcdir}/aMule-SVN-r${pkgver}" - # Fix gcc-4.7 build - patch -Np1 -i "${srcdir}/gcc4.7.patch" - ./configure --prefix=/usr \ --mandir=/usr/share/man \ --enable-cas \ diff --git a/extra/apr/PKGBUILD b/extra/apr/PKGBUILD index 98fb60856..a1e496a34 100644 --- a/extra/apr/PKGBUILD +++ b/extra/apr/PKGBUILD @@ -1,24 +1,22 @@ -# $Id: PKGBUILD 149942 2012-02-11 23:30:26Z allan $ +# $Id: PKGBUILD 158966 2012-05-13 20:20:53Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=apr -pkgver=1.4.5 -pkgrel=2 +pkgver=1.4.6 +pkgrel=1 pkgdesc="The Apache Portable Runtime" arch=('i686' 'x86_64') url="http://apr.apache.org/" -depends=('util-linux-ng>=2.16') +depends=('util-linux') options=('!libtool') license=('APACHE') source=(http://www.apache.org/dist/apr/apr-${pkgver}.tar.bz2) -md5sums=('8b53f5a5669d0597f2da889a2f576eb6') +md5sums=('ffee70a111fd07372982b0550bbb14b7') build() { cd "${srcdir}/apr-${pkgver}" - export apr_cv_accept4=no - ./configure --prefix=/usr --includedir=/usr/include/apr-1 \ --with-installbuilddir=/usr/share/apr-1/build \ --enable-nonportable-atomics \ diff --git a/extra/cairo-perl/PKGBUILD b/extra/cairo-perl/PKGBUILD index 7fb05334a..e970bb1c6 100644 --- a/extra/cairo-perl/PKGBUILD +++ b/extra/cairo-perl/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 143687 2011-11-28 11:39:04Z jgc $ +# $Id: PKGBUILD 158976 2012-05-13 21:18:20Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=cairo-perl -pkgver=1.081 +pkgver=1.082 pkgrel=1 pkgdesc="Perl wrappers for cairo" arch=(i686 x86_64) @@ -11,11 +11,14 @@ url="http://gtk2-perl.sourceforge.net/" options=('!emptydirs') depends=('cairo' 'perl') makedepends=('perl-extutils-depends' 'perl-extutils-pkgconfig') -source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/Cairo-${pkgver}.tar.gz) -md5sums=('52c712b0f749f2fe232ae6e18880fe7d') +source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/Cairo-${pkgver}.tar.gz + testsuite.patch) +md5sums=('cfd61e519ff20023979c255d4040fe06' + '6a3ceac304a5a53f8fdd5652d98f6855') build() { cd "${srcdir}/Cairo-${pkgver}" + patch -Np1 -i "${srcdir}/testsuite.patch" perl Makefile.PL INSTALLDIRS=vendor make } diff --git a/extra/cairo-perl/testsuite.patch b/extra/cairo-perl/testsuite.patch new file mode 100644 index 000000000..59cb58f28 --- /dev/null +++ b/extra/cairo-perl/testsuite.patch @@ -0,0 +1,135 @@ +From 21dd8a0600cbfac46723c7745b377fce94c8bdc3 Mon Sep 17 00:00:00 2001 +From: Torsten Schönfeld <kaffeetisch@gmx.de> +Date: Sat, 31 Mar 2012 10:34:11 +0000 +Subject: Fix compiling and testing against older versions of cairo + +--- +(limited to 't/CairoPath.t') + +diff --git a/t/CairoPath.t b/t/CairoPath.t +index e515172..770e464 100644 +--- a/t/CairoPath.t ++++ b/t/CairoPath.t +@@ -11,11 +11,17 @@ use strict; + use warnings; + use Cairo; + +-use Test::More tests => 6; ++use Test::More; + + use constant IMG_WIDTH => 256; + use constant IMG_HEIGHT => 256; + ++if (Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 4, 0)) { ++ plan tests => 6; ++} else { ++ plan skip_all => 'path behavior not predictable on cairo < 1.4'; ++} ++ + my $surf = Cairo::ImageSurface->create ('rgb24', IMG_WIDTH, IMG_HEIGHT); + my $cr = Cairo::Context->create ($surf); + +-- +cgit v0.9.0.2 +From a1cd2e45b4ee49a724ae5d7e854ad9829eebf00d Mon Sep 17 00:00:00 2001 +From: Torsten Schönfeld <kaffeetisch@gmx.de> +Date: Sat, 07 Apr 2012 18:01:31 +0000 +Subject: Make t/CairoPath.t more robust + +The end of a path that took a round trip into cairo and back might differ +for different versions of cairo. Hence, compare only the beginning with +the expected path. +--- +diff --git a/t/CairoPath.t b/t/CairoPath.t +index 770e464..27a3aad 100644 +--- a/t/CairoPath.t ++++ b/t/CairoPath.t +@@ -11,17 +11,11 @@ use strict; + use warnings; + use Cairo; + +-use Test::More; ++use Test::More tests => 18; + + use constant IMG_WIDTH => 256; + use constant IMG_HEIGHT => 256; + +-if (Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 4, 0)) { +- plan tests => 6; +-} else { +- plan skip_all => 'path behavior not predictable on cairo < 1.4'; +-} +- + my $surf = Cairo::ImageSurface->create ('rgb24', IMG_WIDTH, IMG_HEIGHT); + my $cr = Cairo::Context->create ($surf); + +@@ -40,14 +34,7 @@ my $expected_path = [ + ]; + + my $path = $cr->copy_path; +-is_deeply ($path, $expected_path); +- +-sub paths_agree { +- my ($cr, $path, $expected_path) = @_; +- $cr->new_path; +- $cr->append_path ($path); +- is_deeply ($cr->copy_path, $expected_path); +-} ++paths_agree ($path, $expected_path); + + # Modifying single point values. + foreach ($path, $expected_path) { +@@ -57,21 +44,21 @@ foreach ($path, $expected_path) { + $_->[2]{points}[2][0] = 99; + $_->[2]{points}[2][1] = 1010; + } +-paths_agree ($cr, $path, $expected_path); ++path_round_trip_ok ($cr, $path, $expected_path); + + # Modifying single points. + foreach ($path, $expected_path) { + $_->[1]{points}[0] = [333, 444]; + $_->[2]{points}[2] = [77, 88]; + } +-paths_agree ($cr, $path, $expected_path); ++path_round_trip_ok ($cr, $path, $expected_path); + + # Replacing all points. + foreach ($path, $expected_path) { + $_->[1]{points} = [[3333, 4444]]; + $_->[2]{points} = [[55, 66], [77, 88], [99, 1010]]; + } +-paths_agree ($cr, $path, $expected_path); ++path_round_trip_ok ($cr, $path, $expected_path); + + # Replacing and adding path segments. + my @cloned_path = @{$path}; +@@ -86,9 +73,24 @@ foreach (\@cloned_path, $expected_path) { + type => 'line-to', + points => [[23, 42]] }; + } +-paths_agree ($cr, \@cloned_path, $expected_path); ++path_round_trip_ok ($cr, \@cloned_path, $expected_path); + + # Passing bare arrays into Cairo. + $cr->new_path; + $cr->append_path ($expected_path); +-is_deeply ($cr->copy_path, $expected_path); ++paths_agree ($cr->copy_path, $expected_path); ++ ++sub path_round_trip_ok { ++ my ($cr, $path, $expected_path) = @_; ++ $cr->new_path; ++ $cr->append_path ($path); ++ paths_agree ($cr->copy_path, $expected_path); ++} ++ ++sub paths_agree { ++ my ($path, $expected_path) = @_; ++ # Only the first three entries seem to be reliable across cairo versions. ++ for (0..2) { ++ is_deeply ($path->[$_], $expected_path->[$_]); ++ } ++} +-- +cgit v0.9.0.2 diff --git a/extra/libcaca/PKGBUILD b/extra/libcaca/PKGBUILD index d937e8dc5..c44ac22e9 100644 --- a/extra/libcaca/PKGBUILD +++ b/extra/libcaca/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 150463 2012-02-18 00:19:31Z allan $ +# $Id: PKGBUILD 158970 2012-05-13 20:58:29Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=libcaca -pkgver=0.99.beta17 -pkgrel=2 +pkgver=0.99.beta18 +pkgrel=1 pkgdesc="Color AsCii Art library" arch=('i686' 'x86_64') license=('LGPL') -url="http://libcaca.zoy.org/" +url="http://caca.zoy.org/wiki/libcaca" depends=('imlib2' 'ncurses') options=(!libtool !emptydirs) source=(http://libcaca.zoy.org/files/libcaca/${pkgname}-${pkgver}.tar.gz) -md5sums=('790d6e26b7950e15909fdbeb23a7ea87') +md5sums=('93d35dbdb0527d4c94df3e9a02e865cc') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/libdrm-new/COPYING b/extra/libdrm-new/COPYING new file mode 100644 index 000000000..6e74c337c --- /dev/null +++ b/extra/libdrm-new/COPYING @@ -0,0 +1,48 @@ + Copyright 2005 Adam Jackson. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation on the rights to use, copy, modify, merge, + publish, distribute, sub license, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice (including the + next paragraph) shall be included in all copies or substantial + portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +------------------------------------------------------------------------ + + Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. + Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice (including the + next paragraph) shall be included in all copies or substantial + portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS + SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. diff --git a/extra/libdrm-new/PKGBUILD b/extra/libdrm-new/PKGBUILD new file mode 100644 index 000000000..32a85fcd1 --- /dev/null +++ b/extra/libdrm-new/PKGBUILD @@ -0,0 +1,53 @@ +#Id$ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgbase=libdrm-new +pkgname=(libdrm-new libdrm-nouveau) +pkgver=2.4.34 +pkgrel=1 +pkgdesc="Userspace interface to kernel DRM services" +arch=(i686 x86_64) +license=('custom') +depends=('glibc' 'libpciaccess') +makedepends=('cairo' 'valgrind') +options=('!libtool' '!emptydirs') +url="http://dri.freedesktop.org/" +source=(http://dri.freedesktop.org/libdrm/libdrm-$pkgver.tar.bz2 + no-pthread-stubs.patch + COPYING +) +sha1sums=('861757baff4b37e564e13f5350c1b5d01c66a181' + '2a5410baa3e6e078f9378ce486a88f41d22fd838' + 'ba3dcd636997ee0d30df14b03dae05c24ae5d094') + +build() { + cd "libdrm-$pkgver" + patch -Np1 -i "$srcdir/no-pthread-stubs.patch" + + #libtoolize --force + autoreconf --force --install + ./configure --prefix=/usr \ + --disable-libkms \ + --disable-intel \ + --disable-radeon + make +} + +package_libdrm-new() { + pkgdesc="Userspace interface to kernel DRM services - used as makedepends for xf86-video-nouveau" + conflicts=('libdrm') + provides=("libdrm=$pkgver") + cd "libdrm-$pkgver" + make DESTDIR="$pkgdir" install + rm "$pkgdir"/usr/lib/libdrm_nouveau.so.2* +} + +package_libdrm-nouveau() { + pkgdesc="Userspace interface to kernel DRM services for nouveau - used as depends for xf86-video-nouveau" + depends=(libdrm) + cd "libdrm-$pkgver" + make DESTDIR="$pkgdir" install-libdrm_laLTLIBRARIES + make -C nouveau DESTDIR="$pkgdir" install + make DESTDIR="$pkgdir" uninstall-libdrm_laLTLIBRARIES + rm "$pkgdir"/usr/include/libdrm/nouveau.h "$pkgdir"/usr/lib/pkgconfig/libdrm_nouveau.pc "$pkgdir"/usr/lib/libdrm_nouveau.so +} diff --git a/extra/libdrm-new/no-pthread-stubs.patch b/extra/libdrm-new/no-pthread-stubs.patch new file mode 100644 index 000000000..6745f4bc4 --- /dev/null +++ b/extra/libdrm-new/no-pthread-stubs.patch @@ -0,0 +1,70 @@ +diff -Nur libdrm-2.4.34.orig/configure.ac libdrm-2.4.34/configure.ac +--- libdrm-2.4.34.orig/configure.ac 2012-05-12 14:54:06.375335490 +0000 ++++ libdrm-2.4.34/configure.ac 2012-05-12 14:54:32.075142065 +0000 +@@ -47,10 +47,6 @@ + LT_INIT([disable-static]) + + +-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) +-AC_SUBST(PTHREADSTUBS_CFLAGS) +-AC_SUBST(PTHREADSTUBS_LIBS) +- + pkgconfigdir=${libdir}/pkgconfig + AC_SUBST(pkgconfigdir) + AC_ARG_ENABLE([udev], +diff -Nur libdrm-2.4.34.orig/intel/Makefile.am libdrm-2.4.34/intel/Makefile.am +--- libdrm-2.4.34.orig/intel/Makefile.am 2012-05-12 14:54:06.372001955 +0000 ++++ libdrm-2.4.34/intel/Makefile.am 2012-05-12 14:55:24.164745055 +0000 +@@ -26,7 +26,6 @@ + $(WARN_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/intel \ +- $(PTHREADSTUBS_CFLAGS) \ + $(PCIACCESS_CFLAGS) \ + $(VALGRIND_CFLAGS) \ + -I$(top_srcdir)/include/drm +@@ -35,7 +34,6 @@ + libdrm_intel_ladir = $(libdir) + libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined + libdrm_intel_la_LIBADD = ../libdrm.la \ +- @PTHREADSTUBS_LIBS@ \ + @PCIACCESS_LIBS@ \ + @CLOCK_LIB@ + +diff -Nur libdrm-2.4.34.orig/nouveau/Makefile.am libdrm-2.4.34/nouveau/Makefile.am +--- libdrm-2.4.34.orig/nouveau/Makefile.am 2012-05-12 14:54:06.331998148 +0000 ++++ libdrm-2.4.34/nouveau/Makefile.am 2012-05-12 14:56:00.941132085 +0000 +@@ -2,14 +2,13 @@ + $(WARN_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/nouveau \ +- $(PTHREADSTUBS_CFLAGS) \ + -I$(top_srcdir)/include/drm \ + -DDEBUG + + libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la + libdrm_nouveau_ladir = $(libdir) + libdrm_nouveau_la_LDFLAGS = -version-number 2:0:0 -no-undefined +-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ ++libdrm_nouveau_la_LIBADD = ../libdrm.la + + libdrm_nouveau_la_SOURCES = nouveau.c \ + pushbuf.c \ +diff -Nur libdrm-2.4.34.orig/radeon/Makefile.am libdrm-2.4.34/radeon/Makefile.am +--- libdrm-2.4.34.orig/radeon/Makefile.am 2012-05-12 14:54:06.365334765 +0000 ++++ libdrm-2.4.34/radeon/Makefile.am 2012-05-12 14:55:48.084557437 +0000 +@@ -26,13 +26,12 @@ + $(WARN_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/radeon \ +- $(PTHREADSTUBS_CFLAGS) \ + -I$(top_srcdir)/include/drm + + libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la + libdrm_radeon_ladir = $(libdir) + libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined +-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ ++libdrm_radeon_la_LIBADD = ../libdrm.la + + libdrm_radeon_la_SOURCES = \ + radeon_bo_gem.c \ diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD index 2bfcd37be..f32828c7a 100644 --- a/extra/libreoffice/PKGBUILD +++ b/extra/libreoffice/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 157024 2012-04-23 09:27:44Z ibiru $ +# $Id: PKGBUILD 158917 2012-05-13 06:19:42Z andyrtr $ # Maintainer: AndyRTR <andyrtr@archlinux.org> pkgbase="libreoffice" @@ -19,8 +19,8 @@ pkgname=('libreoffice-common' 'libreoffice-extension-presenter-screen' 'libreoffice-extension-presentation-minimizer' 'libreoffice-extension-report-builder') -_LOver=3.5.2.2 -pkgver=3.5.2 +_LOver=3.5.3.2 +pkgver=3.5.3 pkgrel=1 arch=('i686' 'x86_64') license=('LGPL3') @@ -46,7 +46,7 @@ _mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}" _additional_source_url="http://dev-www.libreoffice.org/src" source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.xz ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz - ${_additional_source_url}/d28864eb2b59bb57b034c0d4662a3cee-libvisio-0.0.15.tar.bz2 + ${_additional_source_url}/2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2 ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip @@ -77,7 +77,7 @@ source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.xz smp_buildfix.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=cf23f57ae6bb7af689a45e0a850c3c2f67a8f810 buildfix_icu49.diff libreoffice-common.sh libreoffice-common.csh) -noextract=(d28864eb2b59bb57b034c0d4662a3cee-libvisio-0.0.15.tar.bz2 +noextract=(2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2 18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz 185d60944ea767075d27247c3162b3bc-unowinreg.dll 0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2 @@ -105,11 +105,11 @@ noextract=(d28864eb2b59bb57b034c0d4662a3cee-libvisio-0.0.15.tar.bz2 ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip) -md5sums=('a21156d5657b8619a523ffdc5cc0003e' - '3c064a24191274fcd8fd466ce9d5dc42' - '17ebcd0d25e716d3905b1a905907fd67' +md5sums=('d22cd79e7463ac4caf0a4b47d78a82ac' + '3455f3f523d739aa391b5a5bf04ff958' + '945fbf7888c464f4e1cf7282d370b257' '18f577b374d60b3c760a3a3350407632' - 'd28864eb2b59bb57b034c0d4662a3cee' + '2fa6028324347860e684e75310818d43' '1f24ab1d39f4a51faf22244c94a6203f' '35c94d2df8893241173de1d16b6034c0' '798b2ffdc8bcfe7bca2cf92b62caf685' @@ -139,8 +139,8 @@ md5sums=('a21156d5657b8619a523ffdc5cc0003e' '60ce5dc9bd098f95c2e621a930c98dd9' '661a52a02a31b3afbe4b3b3146061afd' '9734ea20c9f67e1b6e1c5a1247fbd3ff' - '32fcd844935434807e68d7bd06b94f09' - '06a45184aefe078c4314e002ba666b52') + 'f0e72d0e1bc93a50a3aa9d31350b156c' + '867c682b45f477f916786e00c45d7ab7') build() { diff --git a/extra/libreoffice/libreoffice-common.csh b/extra/libreoffice/libreoffice-common.csh index 625917add..af31d4432 100644 --- a/extra/libreoffice/libreoffice-common.csh +++ b/extra/libreoffice/libreoffice-common.csh @@ -1 +1 @@ -setenv PYTHONPATH ${PYTHONPATH}:/usr/lib/libreoffice/program +#setenv PYTHONPATH ${PYTHONPATH}:/usr/lib/libreoffice/program diff --git a/extra/libreoffice/libreoffice-common.sh b/extra/libreoffice/libreoffice-common.sh index ea04b2e6d..ee405b1aa 100644 --- a/extra/libreoffice/libreoffice-common.sh +++ b/extra/libreoffice/libreoffice-common.sh @@ -1 +1 @@ -export PYTHONPATH="$PYTHONPATH:/usr/lib/libreoffice/program" +#export PYTHONPATH="$PYTHONPATH:/usr/lib/libreoffice/program" diff --git a/extra/live-media/PKGBUILD b/extra/live-media/PKGBUILD index 68888f2cf..230eafac7 100644 --- a/extra/live-media/PKGBUILD +++ b/extra/live-media/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 158337 2012-05-03 18:12:02Z giovanni $ +# $Id: PKGBUILD 158924 2012-05-13 10:20:49Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Gilles CHAUVIN <gcnweb@gmail.com> pkgname=live-media -pkgver=2012.05.03 +pkgver=2012.05.11 pkgrel=1 pkgdesc="A set of C++ libraries for multimedia streaming" arch=('i686' 'x86_64') @@ -11,7 +11,7 @@ license=('LGPL') url="http://live555.com/liveMedia" depends=('gcc-libs') source=("http://live555.com/liveMedia/public/live.${pkgver}.tar.gz") -md5sums=('333ea9577af0871474646720113fef31') +md5sums=('6ffb354005fe211dd455042f2e0c6564') build() { cd ${srcdir}/live diff --git a/extra/openjdk6/PKGBUILD b/extra/openjdk6/PKGBUILD index 6f5624bd6..f16ac0679 100644 --- a/extra/openjdk6/PKGBUILD +++ b/extra/openjdk6/PKGBUILD @@ -1,21 +1,21 @@ -# $Id: PKGBUILD 152644 2012-03-07 19:17:54Z andyrtr $ +# $Id: PKGBUILD 158936 2012-05-13 13:26:46Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Jan de Groot <jgc@archlinux.org> pkgname=('openjdk6' 'openjdk6-src') pkgbase="openjdk6" _javaver=6 -_icedteaver=1.11.1 +_icedteaver=1.11.2 _openjdk_version=b24 _openjdk_date=14_nov_2011 pkgver=${_javaver}.${_openjdk_version}_${_icedteaver} -pkgrel=3 +pkgrel=1 url='http://icedtea.classpath.org' arch=('i686' 'x86_64') license=('custom') makedepends=('gcc-libs' 'xdg-utils' 'hicolor-icon-theme' 'ca-certificates-java' 'libxtst' 'alsa-lib' 'giflib' 'libxp' 'gtk2' 'nspr' 'zlib' 'freetype2' 'libjpeg>=8' 'libx11' 'libcups' 'patch' 'libxt' 'nss' 'libxslt' #'xalan-java' - 'apache-ant' 'autoconf' 'unzip' 'rhino' 'mercurial' 'zip' 'cpio' 'openjdk6') + 'apache-ant' 'autoconf' 'unzip' 'rhino' 'mercurial' 'zip' 'cpio' 'openjdk6' 'inetutils') options=('!emptydirs') # 'force') # force needed for hg shots source=(http://icedtea.classpath.org/download/source/icedtea6-${_icedteaver}.tar.gz{,.sig} http://download.java.net/openjdk/jdk6/promoted/${_openjdk_version}/openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz @@ -32,14 +32,14 @@ noextract=(openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz jaxp144_03.zip jdk6-jaxws2_1_6-2011_06_13.zip jdk6-jaf-b20.zip) -sha256sums=('bafb0e21e1edf5ee22871b13dbc0a8a0d3efd894551fb91d5f59783069b6912c' - '695f6eddaf274a01be8cf0d7a429d268a49db4799aa0d69063061fd73105ef0b' +sha256sums=('078637dc8323951b18cbb2aac56fd2f24baaa81f0757391aaa17e1b7577e9ce5' + '1c4b7ae37498c61b18ac5fcf04b3322b4b82afe7e959e5949f05bf252cdf73c7' 'f84e7f0938f4939660ff8f9c2aa164d301faa8a519f2324ceb05ad34b2e09227' 'c1a5348e17b330a7e4b18431e61a40efd2ba99a7da71102cf2c604478ef96012' '229040544e791f44906e8e7b6f6faf503c730a5d854275135f3925490d5c3be3' '78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012' - 'ad9a23a14893dab3770744cdf684ffc7a7025eeb7149840faefea82e2a8ed3fa' - '6384026ee4854a4ebcd5203845f0a56126aaf34517e99cfbc16c3ea353c55fe5' + 'f5f59e121f7645ebc449bb13569fd924cbab3194e41db901f4fbe9dbd45720c5' + '7b2db65bfb9d5014e1522178d65cabf05dfa85e0926cde5648b5a338db376479' '9ad943ceb3dbcdf45d72974fc3667886a7ed65c69ab9abc17be5412827551a7f' '9c3c55c30729ec44fab14c3f3f841c273730c7467d8908a72f018bc9e9f65bd9' '26e2cd5a6034f08a685129c9412f487b9931fb0d556f1ccceab17bdb75a372cd' @@ -64,6 +64,7 @@ build() { autoreconf -i export DISTRIBUTION_PATCHES="patches/fix_jdk_cmds_path.diff patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/nonreparenting-wm.diff" +# export DISTRIBUTION_PATCHES="patches/fontconfig-paths.diff patches/nonreparenting-wm.diff" export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}" export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}" diff --git a/extra/openjdk6/fix_corba_cmds_path.diff b/extra/openjdk6/fix_corba_cmds_path.diff index 842657880..7a3db9567 100644 --- a/extra/openjdk6/fix_corba_cmds_path.diff +++ b/extra/openjdk6/fix_corba_cmds_path.diff @@ -1,6 +1,6 @@ --- openjdk/corba/make/common/shared/Defs-utils.gmk.old 2008-04-13 13:26:12.000000000 +0300 +++ openjdk/corba/make/common/shared/Defs-utils.gmk 2008-04-14 15:35:13.000000000 +0300 -@@ -86,10 +86,10 @@ +@@ -76,7 +76,7 @@ CHMOD = $(UTILS_COMMAND_PATH)chmod CMP = $(UTILS_USR_BIN_PATH)cmp COMM = $(UTILS_USR_BIN_PATH)comm @@ -8,21 +8,17 @@ +COMPRESS = $(UTILS_COMMAND_PATH)compress CP = $(UTILS_COMMAND_PATH)cp CPIO = $(UTILS_COMMAND_PATH)cpio --CUT = $(UTILS_USR_BIN_PATH)cut -+CUT = $(UTILS_COMMAND_PATH)cut - DATE = $(UTILS_COMMAND_PATH)date - DF = $(UTILS_COMMAND_PATH)df - DIFF = $(UTILS_USR_BIN_PATH)diff -@@ -136,7 +136,7 @@ + CUT = $(UTILS_USR_BIN_PATH)cut +@@ -125,7 +125,7 @@ + TAIL = $(UTILS_USR_BIN_PATH)tail TAR = $(UTILS_COMMAND_PATH)tar TEST = $(UTILS_USR_BIN_PATH)test - TOUCH = $(UTILS_COMMAND_PATH)touch --TR = $(UTILS_USR_BIN_PATH)tr -+TR = $(UTILS_COMMAND_PATH)tr +-TOUCH = $(UTILS_COMMAND_PATH)touch ++TOUCH = $(UTILS_USR_BIN_PATH)touch + TR = $(UTILS_USR_BIN_PATH)tr TRUE = $(UTILS_COMMAND_PATH)true UNAME = $(UTILS_COMMAND_PATH)uname - UNIQ = $(UTILS_USR_BIN_PATH)uniq -@@ -186,7 +186,7 @@ +@@ -176,7 +176,7 @@ # others have it in /usr/bin. SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \ $(wildcard $(UTILS_USR_BIN_PATH)sort)) diff --git a/extra/openjdk6/fix_jdk_cmds_path.diff b/extra/openjdk6/fix_jdk_cmds_path.diff index 7e16e1744..bd37dd4ba 100644 --- a/extra/openjdk6/fix_jdk_cmds_path.diff +++ b/extra/openjdk6/fix_jdk_cmds_path.diff @@ -1,6 +1,6 @@ --- openjdk/jdk/make/common/shared/Defs-utils.gmk.old 2008-04-13 13:33:23.000000000 +0300 +++ openjdk/jdk/make/common/shared/Defs-utils.gmk 2008-04-14 15:37:34.000000000 +0300 -@@ -76,10 +76,10 @@ +@@ -89,7 +89,7 @@ CHMOD = $(UTILS_COMMAND_PATH)chmod CMP = $(UTILS_USR_BIN_PATH)cmp COMM = $(UTILS_USR_BIN_PATH)comm @@ -8,21 +8,17 @@ +COMPRESS = $(UTILS_COMMAND_PATH)compress CP = $(UTILS_COMMAND_PATH)cp CPIO = $(UTILS_COMMAND_PATH)cpio --CUT = $(UTILS_USR_BIN_PATH)cut -+CUT = $(UTILS_COMMAND_PATH)cut - DATE = $(UTILS_COMMAND_PATH)date - DF = $(UTILS_COMMAND_PATH)df - DIFF = $(UTILS_USR_BIN_PATH)diff -@@ -126,7 +126,7 @@ + CUT = $(UTILS_USR_BIN_PATH)cut +@@ -137,7 +137,7 @@ + TAIL = $(UTILS_USR_BIN_PATH)tail TAR = $(UTILS_COMMAND_PATH)tar TEST = $(UTILS_USR_BIN_PATH)test - TOUCH = $(UTILS_COMMAND_PATH)touch --TR = $(UTILS_USR_BIN_PATH)tr -+TR = $(UTILS_COMMAND_PATH)tr +-TOUCH = $(UTILS_COMMAND_PATH)touch ++TOUCH = $(UTILS_USR_BIN_PATH)touch + TR = $(UTILS_USR_BIN_PATH)tr TRUE = $(UTILS_COMMAND_PATH)true UNAME = $(UTILS_COMMAND_PATH)uname - UNIQ = $(UTILS_USR_BIN_PATH)uniq -@@ -173,7 +173,7 @@ +@@ -178,7 +178,7 @@ BASENAME=$(firstword $(wildcard $(UTILS_COMMAND_PATH)basename) \ $(wildcard $(UTILS_USR_BIN_PATH)basename)) diff --git a/extra/polkit/PKGBUILD b/extra/polkit/PKGBUILD index 798244595..e86dbbc02 100644 --- a/extra/polkit/PKGBUILD +++ b/extra/polkit/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 148549 2012-02-03 16:19:24Z ibiru $ +# $Id: PKGBUILD 158972 2012-05-13 21:06:37Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=polkit -pkgver=0.104 +pkgver=0.105 pkgrel=1 pkgdesc="Application development toolkit for controlling system-wide privileges" arch=(i686 x86_64) @@ -12,17 +12,21 @@ depends=('glib2' 'pam' 'expat') makedepends=('intltool' 'gtk-doc' 'gobject-introspection') replaces=('policykit') options=('!libtool') -source=(http://hal.freedesktop.org/releases/$pkgname-$pkgver.tar.gz +source=(http://www.freedesktop.org/software/polkit/releases/$pkgname-$pkgver.tar.gz polkit.pam) -md5sums=('e380b4c6fb1e7bccf854e92edc0a8ce1' +md5sums=('9c29e1b6c214f0bd6f1d4ee303dfaed9' '6564f95878297b954f0572bc1610dd15') build() { - cd "$srcdir/$pkgname-$pkgver" + cd $pkgname-$pkgver ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --libexecdir=/usr/lib/polkit-1 \ --disable-static --enable-gtk-doc make +} + +package() { + cd $pkgname-$pkgver make DESTDIR="$pkgdir" install install -m644 "$srcdir/polkit.pam" "$pkgdir/etc/pam.d/polkit-1" diff --git a/extra/polkit/systemd-fallback.patch b/extra/polkit/systemd-fallback.patch new file mode 100644 index 000000000..f89ce10ae --- /dev/null +++ b/extra/polkit/systemd-fallback.patch @@ -0,0 +1,1571 @@ +diff -u -rN polkit-0.104/configure.ac polkit-0.104-systemd-fallback/configure.ac +--- polkit-0.104/configure.ac 2012-01-03 17:25:49.000000000 +0100 ++++ polkit-0.104-systemd-fallback/configure.ac 2012-03-06 15:45:55.275860194 +0100 +@@ -160,14 +160,14 @@ + [enable_systemd=auto]) + if test "$enable_systemd" != "no"; then + PKG_CHECK_MODULES(SYSTEMD, +- [libsystemd-login], ++ [libsystemd-login libsystemd-daemon], + have_systemd=yes, + have_systemd=no) + if test "$have_systemd" = "yes"; then + SESSION_TRACKING=systemd + else + if test "$enable_systemd" = "yes"; then +- AC_MSG_ERROR([systemd support requested but libsystemd-login1 library not found]) ++ AC_MSG_ERROR([systemd support requested but systemd libraries not found]) + fi + fi + fi +diff -u -rN polkit-0.104/src/polkit/Makefile.am polkit-0.104-systemd-fallback/src/polkit/Makefile.am +--- polkit-0.104/src/polkit/Makefile.am 2012-01-03 16:03:47.000000000 +0100 ++++ polkit-0.104-systemd-fallback/src/polkit/Makefile.am 2012-03-06 15:19:25.108853325 +0100 +@@ -79,15 +79,8 @@ + polkitimplicitauthorization.c polkitimplicitauthorization.h \ + polkittemporaryauthorization.c polkittemporaryauthorization.h \ + polkitpermission.c polkitpermission.h \ +- $(NULL) +- +-if HAVE_SYSTEMD +-libpolkit_gobject_1_la_SOURCES += \ +- polkitunixsession-systemd.c polkitunixsession.h +-else +-libpolkit_gobject_1_la_SOURCES += \ + polkitunixsession.c polkitunixsession.h +-endif ++ $(NULL) + + libpolkit_gobject_1_la_CFLAGS = \ + -D_POLKIT_COMPILATION \ +diff -u -rN polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104-systemd-fallback/src/polkit/polkitunixsession.c +--- polkit-0.104/src/polkit/polkitunixsession.c 2011-10-18 19:02:27.000000000 +0200 ++++ polkit-0.104-systemd-fallback/src/polkit/polkitunixsession.c 2012-03-06 15:17:29.829788021 +0100 +@@ -23,12 +23,18 @@ + # include "config.h" + #endif + ++#include <stdlib.h> + #include <string.h> + #include "polkitunixsession.h" + #include "polkitsubject.h" + #include "polkiterror.h" + #include "polkitprivate.h" + ++#ifdef HAVE_SYSTEMD ++# include <systemd/sd-daemon.h> ++# include <systemd/sd-login.h> ++#endif ++ + /** + * SECTION:polkitunixsession + * @title: PolkitUnixSession +@@ -364,34 +370,44 @@ + PolkitUnixSession *session = POLKIT_UNIX_SESSION (subject); + GDBusConnection *connection; + GVariant *result; +- gboolean ret; +- +- ret = FALSE; ++ gboolean ret = FALSE; + +- connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error); +- if (connection == NULL) +- goto out; +- +- result = g_dbus_connection_call_sync (connection, +- "org.freedesktop.ConsoleKit", /* name */ +- session->session_id, /* object path */ +- "org.freedesktop.ConsoleKit.Session", /* interface name */ +- "GetUser", /* method */ +- NULL, /* parameters */ +- G_VARIANT_TYPE ("(u)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, +- cancellable, +- error); +- if (result == NULL) +- goto out; ++#ifdef HAVE_SYSTEMD ++ uid_t uid; ++ ++ if (sd_booted () > 0) ++ { ++ if (sd_session_get_uid (session->session_id, &uid) == 0) ++ ret = TRUE; ++ } ++ else ++#endif ++ { ++ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error); ++ if (connection == NULL) ++ goto out; ++ ++ result = g_dbus_connection_call_sync (connection, ++ "org.freedesktop.ConsoleKit", /* name */ ++ session->session_id, /* object path */ ++ "org.freedesktop.ConsoleKit.Session", /* interface name */ ++ "GetUser", /* method */ ++ NULL, /* parameters */ ++ G_VARIANT_TYPE ("(u)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ cancellable, ++ error); ++ if (result == NULL) ++ goto out; + +- ret = TRUE; +- g_variant_unref (result); ++ ret = TRUE; ++ g_variant_unref (result); + +- out: +- if (connection != NULL) +- g_object_unref (connection); ++ out: ++ if (connection != NULL) ++ g_object_unref (connection); ++ } + return ret; + } + +@@ -470,12 +486,9 @@ + GError **error) + { + PolkitUnixSession *session = POLKIT_UNIX_SESSION (initable); +- GDBusConnection *connection; ++ GDBusConnection *connection = NULL; + GVariant *result; +- gboolean ret; +- +- connection = NULL; +- ret = FALSE; ++ gboolean ret = FALSE; + + if (session->session_id != NULL) + { +@@ -484,33 +497,56 @@ + goto out; + } + +- connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error); +- if (connection == NULL) +- goto out; ++#ifdef HAVE_SYSTEMD ++ char *s; ++ ++ if (sd_booted () > 0) ++ { ++ if (sd_pid_get_session (session->pid, &s) == 0) ++ { ++ session->session_id = g_strdup (s); ++ free (s); ++ ret = TRUE; ++ goto out; ++ } ++ ++ g_set_error (error, ++ POLKIT_ERROR, ++ POLKIT_ERROR_FAILED, ++ "No session for pid %d", ++ (gint) session->pid); ++ } ++ else ++#endif ++ { ++ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error); ++ if (connection == NULL) ++ goto out; ++ ++ result = g_dbus_connection_call_sync (connection, ++ "org.freedesktop.ConsoleKit", /* name */ ++ "/org/freedesktop/ConsoleKit/Manager", /* object path */ ++ "org.freedesktop.ConsoleKit.Manager", /* interface name */ ++ "GetSessionForUnixProcess", /* method */ ++ g_variant_new ("(u)", session->pid), /* parameters */ ++ G_VARIANT_TYPE ("(o)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ cancellable, ++ error); ++ if (result == NULL) ++ goto out; + +- result = g_dbus_connection_call_sync (connection, +- "org.freedesktop.ConsoleKit", /* name */ +- "/org/freedesktop/ConsoleKit/Manager", /* object path */ +- "org.freedesktop.ConsoleKit.Manager", /* interface name */ +- "GetSessionForUnixProcess", /* method */ +- g_variant_new ("(u)", session->pid), /* parameters */ +- G_VARIANT_TYPE ("(o)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, +- cancellable, +- error); +- if (result == NULL) +- goto out; ++ g_variant_get (result, "(o)", &session->session_id); ++ g_variant_unref (result); + +- g_variant_get (result, "(o)", &session->session_id); +- g_variant_unref (result); ++ ret = TRUE; ++ } + +- ret = TRUE; + + out: + if (connection != NULL) + g_object_unref (connection); +- + return ret; + } + +diff -u -rN polkit-0.104/src/polkit/polkitunixsession-systemd.c polkit-0.104-systemd-fallback/src/polkit/polkitunixsession-systemd.c +--- polkit-0.104/src/polkit/polkitunixsession-systemd.c 2012-01-03 16:03:47.000000000 +0100 ++++ polkit-0.104-systemd-fallback/src/polkit/polkitunixsession-systemd.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,481 +0,0 @@ +-/* +- * Copyright (C) 2011 Red Hat, Inc. +- * +- * This library is free software; you can redistribute it and/or +- * modify it under the terms of the GNU Lesser General Public +- * License as published by the Free Software Foundation; either +- * version 2 of the License, or (at your option) any later version. +- * +- * This library is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * Lesser General Public License for more details. +- * +- * You should have received a copy of the GNU Lesser General +- * Public License along with this library; if not, write to the +- * Free Software Foundation, Inc., 59 Temple Place, Suite 330, +- * Boston, MA 02111-1307, USA. +- * +- * Author: Matthias Clasen +- */ +- +-#ifdef HAVE_CONFIG_H +-# include "config.h" +-#endif +- +-#include <string.h> +-#include "polkitunixsession.h" +-#include "polkitsubject.h" +-#include "polkiterror.h" +-#include "polkitprivate.h" +- +-#include <systemd/sd-login.h> +- +-/** +- * SECTION:polkitunixsession +- * @title: PolkitUnixSession +- * @short_description: Unix sessions +- * +- * An object that represents an user session. +- * +- * The session id is an opaque string obtained from ConsoleKit. +- */ +- +-/** +- * PolkitUnixSession: +- * +- * The #PolkitUnixSession struct should not be accessed directly. +- */ +-struct _PolkitUnixSession +-{ +- GObject parent_instance; +- +- gchar *session_id; +- +- gint pid; +-}; +- +-struct _PolkitUnixSessionClass +-{ +- GObjectClass parent_class; +-}; +- +-enum +-{ +- PROP_0, +- PROP_SESSION_ID, +- PROP_PID, +-}; +- +-static void subject_iface_init (PolkitSubjectIface *subject_iface); +-static void initable_iface_init (GInitableIface *initable_iface); +-static void async_initable_iface_init (GAsyncInitableIface *async_initable_iface); +- +-G_DEFINE_TYPE_WITH_CODE (PolkitUnixSession, polkit_unix_session, G_TYPE_OBJECT, +- G_IMPLEMENT_INTERFACE (POLKIT_TYPE_SUBJECT, subject_iface_init) +- G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, initable_iface_init) +- G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, async_initable_iface_init) +- ); +- +-static void +-polkit_unix_session_init (PolkitUnixSession *session) +-{ +-} +- +-static void +-polkit_unix_session_finalize (GObject *object) +-{ +- PolkitUnixSession *session = POLKIT_UNIX_SESSION (object); +- +- g_free (session->session_id); +- +- if (G_OBJECT_CLASS (polkit_unix_session_parent_class)->finalize != NULL) +- G_OBJECT_CLASS (polkit_unix_session_parent_class)->finalize (object); +-} +- +-static void +-polkit_unix_session_get_property (GObject *object, +- guint prop_id, +- GValue *value, +- GParamSpec *pspec) +-{ +- PolkitUnixSession *session = POLKIT_UNIX_SESSION (object); +- +- switch (prop_id) +- { +- case PROP_SESSION_ID: +- g_value_set_string (value, session->session_id); +- break; +- +- default: +- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); +- break; +- } +-} +- +-static void +-polkit_unix_session_set_property (GObject *object, +- guint prop_id, +- const GValue *value, +- GParamSpec *pspec) +-{ +- PolkitUnixSession *session = POLKIT_UNIX_SESSION (object); +- +- switch (prop_id) +- { +- case PROP_SESSION_ID: +- polkit_unix_session_set_session_id (session, g_value_get_string (value)); +- break; +- +- case PROP_PID: +- session->pid = g_value_get_int (value); +- break; +- +- default: +- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); +- break; +- } +-} +- +-static void +-polkit_unix_session_class_init (PolkitUnixSessionClass *klass) +-{ +- GObjectClass *gobject_class = G_OBJECT_CLASS (klass); +- +- gobject_class->finalize = polkit_unix_session_finalize; +- gobject_class->get_property = polkit_unix_session_get_property; +- gobject_class->set_property = polkit_unix_session_set_property; +- +- /** +- * PolkitUnixSession:session-id: +- * +- * The UNIX session id. +- */ +- g_object_class_install_property (gobject_class, +- PROP_SESSION_ID, +- g_param_spec_string ("session-id", +- "Session ID", +- "The UNIX session ID", +- NULL, +- G_PARAM_CONSTRUCT | +- G_PARAM_READWRITE | +- G_PARAM_STATIC_NAME | +- G_PARAM_STATIC_BLURB | +- G_PARAM_STATIC_NICK)); +- +- +- /** +- * PolkitUnixSession:pid: +- * +- * The UNIX process id to look up the session. +- */ +- g_object_class_install_property (gobject_class, +- PROP_PID, +- g_param_spec_int ("pid", +- "Process ID", +- "Process ID to use for looking up the session", +- 0, +- G_MAXINT, +- 0, +- G_PARAM_CONSTRUCT_ONLY | +- G_PARAM_WRITABLE | +- G_PARAM_STATIC_NAME | +- G_PARAM_STATIC_BLURB | +- G_PARAM_STATIC_NICK)); +- +-} +- +-/** +- * polkit_unix_session_get_session_id: +- * @session: A #PolkitUnixSession. +- * +- * Gets the session id for @session. +- * +- * Returns: The session id for @session. Do not free this string, it +- * is owned by @session. +- **/ +-const gchar * +-polkit_unix_session_get_session_id (PolkitUnixSession *session) +-{ +- g_return_val_if_fail (POLKIT_IS_UNIX_SESSION (session), NULL); +- return session->session_id; +-} +- +-/** +- * polkit_unix_session_set_session_id: +- * @session: A #PolkitUnixSession. +- * @session_id: The session id. +- * +- * Sets the session id for @session to @session_id. +- **/ +-void +-polkit_unix_session_set_session_id (PolkitUnixSession *session, +- const gchar *session_id) +-{ +- g_return_if_fail (POLKIT_IS_UNIX_SESSION (session)); +- /*g_return_if_fail (session_id != NULL);*/ +- g_free (session->session_id); +- session->session_id = g_strdup (session_id); +-} +- +-/** +- * polkit_unix_session_new: +- * @session_id: The session id. +- * +- * Creates a new #PolkitUnixSession for @session_id. +- * +- * Returns: (transfer full): A #PolkitUnixSession. Free with g_object_unref(). +- **/ +-PolkitSubject * +-polkit_unix_session_new (const gchar *session_id) +-{ +- return POLKIT_SUBJECT (g_object_new (POLKIT_TYPE_UNIX_SESSION, +- "session-id", session_id, +- NULL)); +-} +- +-/** +- * polkit_unix_session_new_for_process: +- * @pid: The process id of the process to get the session for. +- * @cancellable: (allow-none): A #GCancellable or %NULL. +- * @callback: A #GAsyncReadyCallback to call when the request is satisfied +- * @user_data: The data to pass to @callback. +- * +- * Asynchronously creates a new #PolkitUnixSession object for the +- * process with process id @pid. +- * +- * When the operation is finished, @callback will be invoked in the +- * <link linkend="g-main-context-push-thread-default">thread-default +- * main loop</link> of the thread you are calling this method +- * from. You can then call +- * polkit_unix_session_new_for_process_finish() to get the result of +- * the operation. +- * +- * This method constructs the object asynchronously, for the synchronous and blocking version +- * use polkit_unix_session_new_for_process_sync(). +- **/ +-void +-polkit_unix_session_new_for_process (gint pid, +- GCancellable *cancellable, +- GAsyncReadyCallback callback, +- gpointer user_data) +-{ +- g_async_initable_new_async (POLKIT_TYPE_UNIX_SESSION, +- G_PRIORITY_DEFAULT, +- cancellable, +- callback, +- user_data, +- "pid", pid, +- NULL); +-} +- +-/** +- * polkit_unix_session_new_for_process_finish: +- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_unix_session_new_for_process(). +- * @error: (allow-none): Return location for error. +- * +- * Finishes constructing a #PolkitSubject for a process id. +- * +- * Returns: (transfer full) (allow-none): A #PolkitUnixSession for the @pid passed to +- * polkit_unix_session_new_for_process() or %NULL if @error is +- * set. Free with g_object_unref(). +- **/ +-PolkitSubject * +-polkit_unix_session_new_for_process_finish (GAsyncResult *res, +- GError **error) +-{ +- GObject *object; +- GObject *source_object; +- +- source_object = g_async_result_get_source_object (res); +- g_assert (source_object != NULL); +- +- object = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), +- res, +- error); +- g_object_unref (source_object); +- +- if (object != NULL) +- return POLKIT_SUBJECT (object); +- else +- return NULL; +-} +- +- +-/** +- * polkit_unix_session_new_for_process_sync: +- * @pid: The process id of the process to get the session for. +- * @cancellable: (allow-none): A #GCancellable or %NULL. +- * @error: (allow-none): Return location for error. +- * +- * Creates a new #PolkitUnixSession for the process with process id @pid. +- * +- * This is a synchronous call - the calling thread is blocked until a +- * reply is received. For the asynchronous version, see +- * polkit_unix_session_new_for_process(). +- * +- * Returns: (allow-none) (transfer full): A #PolkitUnixSession for +- * @pid or %NULL if @error is set. Free with g_object_unref(). +- **/ +-PolkitSubject * +-polkit_unix_session_new_for_process_sync (gint pid, +- GCancellable *cancellable, +- GError **error) +-{ +- return POLKIT_SUBJECT (g_initable_new (POLKIT_TYPE_UNIX_SESSION, +- cancellable, +- error, +- "pid", pid, +- NULL)); +-} +- +-static guint +-polkit_unix_session_hash (PolkitSubject *subject) +-{ +- PolkitUnixSession *session = POLKIT_UNIX_SESSION (subject); +- +- return g_str_hash (session->session_id); +-} +- +-static gboolean +-polkit_unix_session_equal (PolkitSubject *a, +- PolkitSubject *b) +-{ +- PolkitUnixSession *session_a; +- PolkitUnixSession *session_b; +- +- session_a = POLKIT_UNIX_SESSION (a); +- session_b = POLKIT_UNIX_SESSION (b); +- +- return g_strcmp0 (session_a->session_id, session_b->session_id) == 0; +-} +- +-static gchar * +-polkit_unix_session_to_string (PolkitSubject *subject) +-{ +- PolkitUnixSession *session = POLKIT_UNIX_SESSION (subject); +- +- return g_strdup_printf ("unix-session:%s", session->session_id); +-} +- +-static gboolean +-polkit_unix_session_exists_sync (PolkitSubject *subject, +- GCancellable *cancellable, +- GError **error) +-{ +- PolkitUnixSession *session = POLKIT_UNIX_SESSION (subject); +- gboolean ret; +- uid_t uid; +- +- ret = FALSE; +- +- if (!sd_session_get_uid (session->session_id, &uid)) +- ret = FALSE; +- +- return ret; +-} +- +-static void +-exists_in_thread_func (GSimpleAsyncResult *res, +- GObject *object, +- GCancellable *cancellable) +-{ +- GError *error; +- error = NULL; +- if (!polkit_unix_session_exists_sync (POLKIT_SUBJECT (object), +- cancellable, +- &error)) +- { +- g_simple_async_result_set_from_error (res, error); +- g_error_free (error); +- } +-} +- +-static void +-polkit_unix_session_exists (PolkitSubject *subject, +- GCancellable *cancellable, +- GAsyncReadyCallback callback, +- gpointer user_data) +-{ +- GSimpleAsyncResult *simple; +- +- g_return_if_fail (POLKIT_IS_UNIX_SESSION (subject)); +- +- simple = g_simple_async_result_new (G_OBJECT (subject), +- callback, +- user_data, +- polkit_unix_session_exists); +- g_simple_async_result_run_in_thread (simple, +- exists_in_thread_func, +- G_PRIORITY_DEFAULT, +- cancellable); +- g_object_unref (simple); +-} +- +-static gboolean +-polkit_unix_session_exists_finish (PolkitSubject *subject, +- GAsyncResult *res, +- GError **error) +-{ +- GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res); +- gboolean ret; +- +- g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == polkit_unix_session_exists); +- +- ret = FALSE; +- +- if (g_simple_async_result_propagate_error (simple, error)) +- goto out; +- +- ret = g_simple_async_result_get_op_res_gboolean (simple); +- +- out: +- return ret; +-} +- +-static void +-subject_iface_init (PolkitSubjectIface *subject_iface) +-{ +- subject_iface->hash = polkit_unix_session_hash; +- subject_iface->equal = polkit_unix_session_equal; +- subject_iface->to_string = polkit_unix_session_to_string; +- subject_iface->exists = polkit_unix_session_exists; +- subject_iface->exists_finish = polkit_unix_session_exists_finish; +- subject_iface->exists_sync = polkit_unix_session_exists_sync; +-} +- +-static gboolean +-polkit_unix_session_initable_init (GInitable *initable, +- GCancellable *cancellable, +- GError **error) +-{ +- PolkitUnixSession *session = POLKIT_UNIX_SESSION (initable); +- gboolean ret; +- +- ret = FALSE; +- +- if (session->session_id != NULL) +- { +- /* already set, nothing to do */ +- ret = TRUE; +- goto out; +- } +- +- if (!sd_pid_get_session (session->pid, &session->session_id)) +- ret = TRUE; +- +-out: +- return ret; +-} +- +-static void +-initable_iface_init (GInitableIface *initable_iface) +-{ +- initable_iface->init = polkit_unix_session_initable_init; +-} +- +-static void +-async_initable_iface_init (GAsyncInitableIface *async_initable_iface) +-{ +- /* use default implementation to run GInitable code in a thread */ +-} +diff -u -rN polkit-0.104/src/polkitbackend/Makefile.am polkit-0.104-systemd-fallback/src/polkitbackend/Makefile.am +--- polkit-0.104/src/polkitbackend/Makefile.am 2012-01-03 16:03:47.000000000 +0100 ++++ polkit-0.104-systemd-fallback/src/polkitbackend/Makefile.am 2012-03-06 15:44:15.380014886 +0100 +@@ -41,15 +41,8 @@ + polkitbackendconfigsource.h polkitbackendconfigsource.c \ + polkitbackendactionlookup.h polkitbackendactionlookup.c \ + polkitbackendlocalauthorizationstore.h polkitbackendlocalauthorizationstore.c \ +- $(NULL) +- +-if HAVE_SYSTEMD +-libpolkit_backend_1_la_SOURCES += \ +- polkitbackendsessionmonitor.h polkitbackendsessionmonitor-systemd.c +-else +-libpolkit_backend_1_la_SOURCES += \ + polkitbackendsessionmonitor.h polkitbackendsessionmonitor.c +-endif ++ $(NULL) + + libpolkit_backend_1_la_CFLAGS = \ + -D_POLKIT_COMPILATION \ +diff -u -rN polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.104-systemd-fallback/src/polkitbackend/polkitbackendsessionmonitor.c +--- polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c 2011-10-18 19:02:27.000000000 +0200 ++++ polkit-0.104-systemd-fallback/src/polkitbackend/polkitbackendsessionmonitor.c 2012-03-06 15:43:49.353562242 +0100 +@@ -26,6 +26,12 @@ + #include <string.h> + #include <glib/gstdio.h> + ++#ifdef HAVE_SYSTEMD ++# include <systemd/sd-daemon.h> ++# include <systemd/sd-login.h> ++# include <stdlib.h> ++#endif ++ + #include <polkit/polkit.h> + #include "polkitbackendsessionmonitor.h" + +@@ -39,6 +45,88 @@ + * The #PolkitBackendSessionMonitor class is a utility class to track and monitor sessions. + */ + ++#ifdef HAVE_SYSTEMD ++typedef struct ++{ ++ GSource source; ++ GPollFD pollfd; ++ sd_login_monitor *monitor; ++} SdSource; ++ ++static gboolean ++sd_source_prepare (GSource *source, ++ gint *timeout) ++{ ++ *timeout = -1; ++ return FALSE; ++} ++ ++static gboolean ++sd_source_check (GSource *source) ++{ ++ SdSource *sd_source = (SdSource *)source; ++ ++ return sd_source->pollfd.revents != 0; ++} ++ ++static gboolean ++sd_source_dispatch (GSource *source, ++ GSourceFunc callback, ++ gpointer user_data) ++ ++{ ++ SdSource *sd_source = (SdSource *)source; ++ gboolean ret; ++ ++ g_warn_if_fail (callback != NULL); ++ ++ ret = (*callback) (user_data); ++ ++ sd_login_monitor_flush (sd_source->monitor); ++ ++ return ret; ++} ++ ++static void ++sd_source_finalize (GSource *source) ++{ ++ SdSource *sd_source = (SdSource*)source; ++ ++ sd_login_monitor_unref (sd_source->monitor); ++} ++ ++static GSourceFuncs sd_source_funcs = { ++ sd_source_prepare, ++ sd_source_check, ++ sd_source_dispatch, ++ sd_source_finalize ++}; ++ ++static GSource * ++sd_source_new (void) ++{ ++ GSource *source; ++ SdSource *sd_source; ++ int ret; ++ ++ source = g_source_new (&sd_source_funcs, sizeof (SdSource)); ++ sd_source = (SdSource *)source; ++ ++ if ((ret = sd_login_monitor_new (NULL, &sd_source->monitor)) < 0) ++ { ++ g_printerr ("Error getting login monitor: %d", ret); ++ } ++ else ++ { ++ sd_source->pollfd.fd = sd_login_monitor_get_fd (sd_source->monitor); ++ sd_source->pollfd.events = G_IO_IN; ++ g_source_add_poll (source, &sd_source->pollfd); ++ } ++ ++ return source; ++} ++#endif /* HAVE_SYSTEMD */ ++ + struct _PolkitBackendSessionMonitor + { + GObject parent_instance; +@@ -48,6 +136,10 @@ + GKeyFile *database; + GFileMonitor *database_monitor; + time_t database_mtime; ++ ++#ifdef HAVE_SYSTEMD ++ GSource *sd_source; ++#endif + }; + + struct _PolkitBackendSessionMonitorClass +@@ -162,6 +254,18 @@ + g_signal_emit (monitor, signals[CHANGED_SIGNAL], 0); + } + ++#ifdef HAVE_SYSTEMD ++static gboolean ++sessions_changed (gpointer user_data) ++{ ++ PolkitBackendSessionMonitor *monitor = POLKIT_BACKEND_SESSION_MONITOR (user_data); ++ ++ g_signal_emit (monitor, signals[CHANGED_SIGNAL], 0); ++ ++ return TRUE; ++} ++#endif ++ + static void + polkit_backend_session_monitor_init (PolkitBackendSessionMonitor *monitor) + { +@@ -176,31 +280,47 @@ + g_error_free (error); + } + +- error = NULL; +- if (!ensure_database (monitor, &error)) +- { +- g_printerr ("Error loading " CKDB_PATH ": %s", error->message); +- g_error_free (error); +- } ++#ifdef HAVE_SYSTEMD ++ monitor->sd_source = NULL; ++ ++ if (sd_booted () > 0) ++ { ++ monitor->sd_source = sd_source_new (); ++ g_source_set_callback (monitor->sd_source, sessions_changed, monitor, NULL); ++ g_source_attach (monitor->sd_source, NULL); + +- error = NULL; +- file = g_file_new_for_path (CKDB_PATH); +- monitor->database_monitor = g_file_monitor_file (file, +- G_FILE_MONITOR_NONE, +- NULL, +- &error); +- g_object_unref (file); +- if (monitor->database_monitor == NULL) +- { +- g_printerr ("Error monitoring " CKDB_PATH ": %s", error->message); +- g_error_free (error); ++ monitor->database = NULL; ++ monitor->database_monitor = NULL; + } + else ++#endif + { +- g_signal_connect (monitor->database_monitor, +- "changed", +- G_CALLBACK (on_file_monitor_changed), +- monitor); ++ error = NULL; ++ if (!ensure_database (monitor, &error)) ++ { ++ g_printerr ("Error loading " CKDB_PATH ": %s", error->message); ++ g_error_free (error); ++ } ++ ++ error = NULL; ++ file = g_file_new_for_path (CKDB_PATH); ++ monitor->database_monitor = g_file_monitor_file (file, ++ G_FILE_MONITOR_NONE, ++ NULL, ++ &error); ++ g_object_unref (file); ++ if (monitor->database_monitor == NULL) ++ { ++ g_printerr ("Error monitoring " CKDB_PATH ": %s", error->message); ++ g_error_free (error); ++ } ++ else ++ { ++ g_signal_connect (monitor->database_monitor, ++ "changed", ++ G_CALLBACK (on_file_monitor_changed), ++ monitor); ++ } + } + } + +@@ -212,6 +332,14 @@ + if (monitor->system_bus != NULL) + g_object_unref (monitor->system_bus); + ++#ifdef HAVE_SYSTEMD ++ if (monitor->sd_source != NULL) ++ { ++ g_source_destroy (monitor->sd_source); ++ g_source_unref (monitor->sd_source); ++ } ++#endif ++ + if (monitor->database_monitor != NULL) + g_object_unref (monitor->database_monitor); + +@@ -328,22 +456,38 @@ + } + else if (POLKIT_IS_UNIX_SESSION (subject)) + { +- if (!ensure_database (monitor, error)) ++#ifdef HAVE_SYSTEMD ++ if (monitor->sd_source != NULL) + { +- g_prefix_error (error, "Error getting user for session: Error ensuring CK database at " CKDB_PATH ": "); +- goto out; ++ if (sd_session_get_uid (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (subject)), &uid) < 0) ++ { ++ g_set_error (error, ++ POLKIT_ERROR, ++ POLKIT_ERROR_FAILED, ++ "Error getting uid for session"); ++ goto out; ++ } + } +- +- group = g_strdup_printf ("Session %s", polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (subject))); +- local_error = NULL; +- uid = g_key_file_get_integer (monitor->database, group, "uid", &local_error); +- if (local_error != NULL) ++ else ++#endif + { +- g_propagate_prefixed_error (error, local_error, "Error getting uid using " CKDB_PATH ": "); ++ if (!ensure_database (monitor, error)) ++ { ++ g_prefix_error (error, "Error getting user for session: Error ensuring CK database at " CKDB_PATH ": "); ++ goto out; ++ } ++ ++ group = g_strdup_printf ("Session %s", polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (subject))); ++ local_error = NULL; ++ uid = g_key_file_get_integer (monitor->database, group, "uid", &local_error); ++ if (local_error != NULL) ++ { ++ g_propagate_prefixed_error (error, local_error, "Error getting uid using " CKDB_PATH ": "); ++ g_free (group); ++ goto out; ++ } + g_free (group); +- goto out; + } +- g_free (group); + + ret = polkit_unix_user_new (uid); + } +@@ -373,29 +517,46 @@ + + if (POLKIT_IS_UNIX_PROCESS (subject)) + { +- const gchar *session_id; +- GVariant *result; +- result = g_dbus_connection_call_sync (monitor->system_bus, +- "org.freedesktop.ConsoleKit", +- "/org/freedesktop/ConsoleKit/Manager", +- "org.freedesktop.ConsoleKit.Manager", +- "GetSessionForUnixProcess", +- g_variant_new ("(u)", polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject))), +- G_VARIANT_TYPE ("(o)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, /* timeout_msec */ +- NULL, /* GCancellable */ +- error); +- if (result == NULL) +- goto out; +- g_variant_get (result, "(&o)", &session_id); +- session = polkit_unix_session_new (session_id); +- g_variant_unref (result); ++#ifdef HAVE_SYSTEMD ++ if (monitor->sd_source != NULL) ++ { ++ gchar *session_id; ++ pid_t pid; ++ ++ pid = polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject)); ++ if (sd_pid_get_session (pid, &session_id) < 0) ++ goto out; ++ ++ session = polkit_unix_session_new (session_id); ++ free (session_id); ++ } ++ else ++#endif ++ { ++ const gchar *session_id; ++ GVariant *result; ++ result = g_dbus_connection_call_sync (monitor->system_bus, ++ "org.freedesktop.ConsoleKit", ++ "/org/freedesktop/ConsoleKit/Manager", ++ "org.freedesktop.ConsoleKit.Manager", ++ "GetSessionForUnixProcess", ++ g_variant_new ("(u)", polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject))), ++ G_VARIANT_TYPE ("(o)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, /* timeout_msec */ ++ NULL, /* GCancellable */ ++ error); ++ if (result == NULL) ++ goto out; ++ g_variant_get (result, "(&o)", &session_id); ++ session = polkit_unix_session_new (session_id); ++ g_variant_unref (result); ++ } + } + else if (POLKIT_IS_SYSTEM_BUS_NAME (subject)) + { + guint32 pid; +- const gchar *session_id; ++ gchar *session_id; + GVariant *result; + + result = g_dbus_connection_call_sync (monitor->system_bus, +@@ -414,22 +575,35 @@ + g_variant_get (result, "(u)", &pid); + g_variant_unref (result); + +- result = g_dbus_connection_call_sync (monitor->system_bus, +- "org.freedesktop.ConsoleKit", +- "/org/freedesktop/ConsoleKit/Manager", +- "org.freedesktop.ConsoleKit.Manager", +- "GetSessionForUnixProcess", +- g_variant_new ("(u)", pid), +- G_VARIANT_TYPE ("(o)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, /* timeout_msec */ +- NULL, /* GCancellable */ +- error); +- if (result == NULL) +- goto out; +- g_variant_get (result, "(&o)", &session_id); +- session = polkit_unix_session_new (session_id); +- g_variant_unref (result); ++#ifdef HAVE_SYSTEMD ++ if (monitor->sd_source != NULL) ++ { ++ if (sd_pid_get_session (pid, &session_id) < 0) ++ goto out; ++ ++ session = polkit_unix_session_new (session_id); ++ free (session_id); ++ } ++ else ++#endif ++ { ++ result = g_dbus_connection_call_sync (monitor->system_bus, ++ "org.freedesktop.ConsoleKit", ++ "/org/freedesktop/ConsoleKit/Manager", ++ "org.freedesktop.ConsoleKit.Manager", ++ "GetSessionForUnixProcess", ++ g_variant_new ("(u)", pid), ++ G_VARIANT_TYPE ("(o)"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, /* timeout_msec */ ++ NULL, /* GCancellable */ ++ error); ++ if (result == NULL) ++ goto out; ++ g_variant_get (result, "(&o)", &session_id); ++ session = polkit_unix_session_new (session_id); ++ g_variant_unref (result); ++ } + } + else + { +@@ -490,7 +664,22 @@ + polkit_backend_session_monitor_is_session_local (PolkitBackendSessionMonitor *monitor, + PolkitSubject *session) + { +- return get_boolean (monitor, session, "is_local"); ++#ifdef HAVE_SYSTEMD ++ if (monitor->sd_source != NULL) ++ { ++ char *seat; ++ ++ if (!sd_session_get_seat (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (session)), &seat)) ++ { ++ free (seat); ++ return TRUE; ++ } ++ ++ return FALSE; ++ } ++ else ++#endif ++ return get_boolean (monitor, session, "is_local"); + } + + +@@ -498,6 +687,11 @@ + polkit_backend_session_monitor_is_session_active (PolkitBackendSessionMonitor *monitor, + PolkitSubject *session) + { +- return get_boolean (monitor, session, "is_active"); ++#ifdef HAVE_SYSTEMD ++ if (monitor->sd_source != NULL) ++ return sd_session_is_active (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (session))); ++ else ++#endif ++ return get_boolean (monitor, session, "is_active"); + } + +diff -u -rN polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor-systemd.c polkit-0.104-systemd-fallback/src/polkitbackend/polkitbackendsessionmonitor-systemd.c +--- polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor-systemd.c 2012-01-03 16:03:47.000000000 +0100 ++++ polkit-0.104-systemd-fallback/src/polkitbackend/polkitbackendsessionmonitor-systemd.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,414 +0,0 @@ +-/* +- * Copyright (C) 2011 Red Hat, Inc. +- * +- * This library is free software; you can redistribute it and/or +- * modify it under the terms of the GNU Lesser General Public +- * License as published by the Free Software Foundation; either +- * version 2 of the License, or (at your option) any later version. +- * +- * This library is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * Lesser General Public License for more details. +- * +- * You should have received a copy of the GNU Lesser General +- * Public License along with this library; if not, write to the +- * Free Software Foundation, Inc., 59 Temple Place, Suite 330, +- * Boston, MA 02111-1307, USA. +- * +- * Author: Matthias Clasen +- */ +- +-#include "config.h" +-#include <errno.h> +-#include <pwd.h> +-#include <grp.h> +-#include <string.h> +-#include <glib/gstdio.h> +-#include <systemd/sd-login.h> +-#include <stdlib.h> +- +-#include <polkit/polkit.h> +-#include "polkitbackendsessionmonitor.h" +- +-/* <internal> +- * SECTION:polkitbackendsessionmonitor +- * @title: PolkitBackendSessionMonitor +- * @short_description: Monitor sessions +- * +- * The #PolkitBackendSessionMonitor class is a utility class to track and monitor sessions. +- */ +- +-typedef struct +-{ +- GSource source; +- GPollFD pollfd; +- sd_login_monitor *monitor; +-} SdSource; +- +-static gboolean +-sd_source_prepare (GSource *source, +- gint *timeout) +-{ +- *timeout = -1; +- return FALSE; +-} +- +-static gboolean +-sd_source_check (GSource *source) +-{ +- SdSource *sd_source = (SdSource *)source; +- +- return sd_source->pollfd.revents != 0; +-} +- +-static gboolean +-sd_source_dispatch (GSource *source, +- GSourceFunc callback, +- gpointer user_data) +- +-{ +- SdSource *sd_source = (SdSource *)source; +- gboolean ret; +- +- g_warn_if_fail (callback != NULL); +- +- ret = (*callback) (user_data); +- +- sd_login_monitor_flush (sd_source->monitor); +- +- return ret; +-} +- +-static void +-sd_source_finalize (GSource *source) +-{ +- SdSource *sd_source = (SdSource*)source; +- +- sd_login_monitor_unref (sd_source->monitor); +-} +- +-static GSourceFuncs sd_source_funcs = { +- sd_source_prepare, +- sd_source_check, +- sd_source_dispatch, +- sd_source_finalize +-}; +- +-static GSource * +-sd_source_new (void) +-{ +- GSource *source; +- SdSource *sd_source; +- int ret; +- +- source = g_source_new (&sd_source_funcs, sizeof (SdSource)); +- sd_source = (SdSource *)source; +- +- if ((ret = sd_login_monitor_new (NULL, &sd_source->monitor)) < 0) +- { +- g_printerr ("Error getting login monitor: %d", ret); +- } +- else +- { +- sd_source->pollfd.fd = sd_login_monitor_get_fd (sd_source->monitor); +- sd_source->pollfd.events = G_IO_IN; +- g_source_add_poll (source, &sd_source->pollfd); +- } +- +- return source; +-} +- +-struct _PolkitBackendSessionMonitor +-{ +- GObject parent_instance; +- +- GDBusConnection *system_bus; +- +- GSource *sd_source; +-}; +- +-struct _PolkitBackendSessionMonitorClass +-{ +- GObjectClass parent_class; +- +- void (*changed) (PolkitBackendSessionMonitor *monitor); +-}; +- +- +-enum +-{ +- CHANGED_SIGNAL, +- LAST_SIGNAL, +-}; +- +-static guint signals[LAST_SIGNAL] = {0}; +- +-G_DEFINE_TYPE (PolkitBackendSessionMonitor, polkit_backend_session_monitor, G_TYPE_OBJECT); +- +-/* ---------------------------------------------------------------------------------------------------- */ +- +-static gboolean +-sessions_changed (gpointer user_data) +-{ +- PolkitBackendSessionMonitor *monitor = POLKIT_BACKEND_SESSION_MONITOR (user_data); +- +- g_signal_emit (monitor, signals[CHANGED_SIGNAL], 0); +- +- return TRUE; +-} +- +- +-static void +-polkit_backend_session_monitor_init (PolkitBackendSessionMonitor *monitor) +-{ +- GError *error; +- +- error = NULL; +- monitor->system_bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); +- if (monitor->system_bus == NULL) +- { +- g_printerr ("Error getting system bus: %s", error->message); +- g_error_free (error); +- } +- +- monitor->sd_source = sd_source_new (); +- g_source_set_callback (monitor->sd_source, sessions_changed, monitor, NULL); +- g_source_attach (monitor->sd_source, NULL); +-} +- +-static void +-polkit_backend_session_monitor_finalize (GObject *object) +-{ +- PolkitBackendSessionMonitor *monitor = POLKIT_BACKEND_SESSION_MONITOR (object); +- +- if (monitor->system_bus != NULL) +- g_object_unref (monitor->system_bus); +- +- if (monitor->sd_source != NULL) +- { +- g_source_destroy (monitor->sd_source); +- g_source_unref (monitor->sd_source); +- } +- +- if (G_OBJECT_CLASS (polkit_backend_session_monitor_parent_class)->finalize != NULL) +- G_OBJECT_CLASS (polkit_backend_session_monitor_parent_class)->finalize (object); +-} +- +-static void +-polkit_backend_session_monitor_class_init (PolkitBackendSessionMonitorClass *klass) +-{ +- GObjectClass *gobject_class; +- +- gobject_class = G_OBJECT_CLASS (klass); +- +- gobject_class->finalize = polkit_backend_session_monitor_finalize; +- +- /** +- * PolkitBackendSessionMonitor::changed: +- * @monitor: A #PolkitBackendSessionMonitor +- * +- * Emitted when something changes. +- */ +- signals[CHANGED_SIGNAL] = g_signal_new ("changed", +- POLKIT_BACKEND_TYPE_SESSION_MONITOR, +- G_SIGNAL_RUN_LAST, +- G_STRUCT_OFFSET (PolkitBackendSessionMonitorClass, changed), +- NULL, /* accumulator */ +- NULL, /* accumulator data */ +- g_cclosure_marshal_VOID__VOID, +- G_TYPE_NONE, +- 0); +-} +- +-PolkitBackendSessionMonitor * +-polkit_backend_session_monitor_new (void) +-{ +- PolkitBackendSessionMonitor *monitor; +- +- monitor = POLKIT_BACKEND_SESSION_MONITOR (g_object_new (POLKIT_BACKEND_TYPE_SESSION_MONITOR, NULL)); +- +- return monitor; +-} +- +-/* ---------------------------------------------------------------------------------------------------- */ +- +-GList * +-polkit_backend_session_monitor_get_sessions (PolkitBackendSessionMonitor *monitor) +-{ +- /* TODO */ +- return NULL; +-} +- +-/* ---------------------------------------------------------------------------------------------------- */ +- +-/** +- * polkit_backend_session_monitor_get_user: +- * @monitor: A #PolkitBackendSessionMonitor. +- * @subject: A #PolkitSubject. +- * @error: Return location for error. +- * +- * Gets the user corresponding to @subject or %NULL if no user exists. +- * +- * Returns: %NULL if @error is set otherwise a #PolkitUnixUser that should be freed with g_object_unref(). +- */ +-PolkitIdentity * +-polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor *monitor, +- PolkitSubject *subject, +- GError **error) +-{ +- PolkitIdentity *ret; +- guint32 uid; +- +- ret = NULL; +- +- if (POLKIT_IS_UNIX_PROCESS (subject)) +- { +- uid = polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject)); +- if ((gint) uid == -1) +- { +- g_set_error (error, +- POLKIT_ERROR, +- POLKIT_ERROR_FAILED, +- "Unix process subject does not have uid set"); +- goto out; +- } +- ret = polkit_unix_user_new (uid); +- } +- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject)) +- { +- GVariant *result; +- +- result = g_dbus_connection_call_sync (monitor->system_bus, +- "org.freedesktop.DBus", +- "/org/freedesktop/DBus", +- "org.freedesktop.DBus", +- "GetConnectionUnixUser", +- g_variant_new ("(s)", polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (subject))), +- G_VARIANT_TYPE ("(u)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, /* timeout_msec */ +- NULL, /* GCancellable */ +- error); +- if (result == NULL) +- goto out; +- g_variant_get (result, "(u)", &uid); +- g_variant_unref (result); +- +- ret = polkit_unix_user_new (uid); +- } +- else if (POLKIT_IS_UNIX_SESSION (subject)) +- { +- +- if (sd_session_get_uid (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (subject)), &uid) < 0) +- { +- g_set_error (error, +- POLKIT_ERROR, +- POLKIT_ERROR_FAILED, +- "Error getting uid for session"); +- goto out; +- } +- +- ret = polkit_unix_user_new (uid); +- } +- +- out: +- return ret; +-} +- +-/** +- * polkit_backend_session_monitor_get_session_for_subject: +- * @monitor: A #PolkitBackendSessionMonitor. +- * @subject: A #PolkitSubject. +- * @error: Return location for error. +- * +- * Gets the session corresponding to @subject or %NULL if no session exists. +- * +- * Returns: %NULL if @error is set otherwise a #PolkitUnixSession that should be freed with g_object_unref(). +- */ +-PolkitSubject * +-polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMonitor *monitor, +- PolkitSubject *subject, +- GError **error) +-{ +- PolkitSubject *session; +- +- session = NULL; +- +- if (POLKIT_IS_UNIX_PROCESS (subject)) +- { +- gchar *session_id; +- pid_t pid; +- +- pid = polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject)); +- if (sd_pid_get_session (pid, &session_id) < 0) +- goto out; +- +- session = polkit_unix_session_new (session_id); +- free (session_id); +- } +- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject)) +- { +- guint32 pid; +- gchar *session_id; +- GVariant *result; +- +- result = g_dbus_connection_call_sync (monitor->system_bus, +- "org.freedesktop.DBus", +- "/org/freedesktop/DBus", +- "org.freedesktop.DBus", +- "GetConnectionUnixProcessID", +- g_variant_new ("(s)", polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (subject))), +- G_VARIANT_TYPE ("(u)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, /* timeout_msec */ +- NULL, /* GCancellable */ +- error); +- if (result == NULL) +- goto out; +- g_variant_get (result, "(u)", &pid); +- g_variant_unref (result); +- +- if (sd_pid_get_session (pid, &session_id) < 0) +- goto out; +- +- session = polkit_unix_session_new (session_id); +- free (session_id); +- } +- else +- { +- g_set_error (error, +- POLKIT_ERROR, +- POLKIT_ERROR_NOT_SUPPORTED, +- "Cannot get user for subject of type %s", +- g_type_name (G_TYPE_FROM_INSTANCE (subject))); +- } +- +- out: +- +- return session; +-} +- +-gboolean +-polkit_backend_session_monitor_is_session_local (PolkitBackendSessionMonitor *monitor, +- PolkitSubject *session) +-{ +- char *seat; +- +- if (!sd_session_get_seat (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (session)), &seat)) +- { +- free (seat); +- return TRUE; +- } +- +- return FALSE; +-} +- +- +-gboolean +-polkit_backend_session_monitor_is_session_active (PolkitBackendSessionMonitor *monitor, +- PolkitSubject *session) +-{ +- return sd_session_is_active (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (session))); +-} +- diff --git a/extra/poppler/PKGBUILD b/extra/poppler/PKGBUILD index f8fa182f3..6ecf34a2a 100644 --- a/extra/poppler/PKGBUILD +++ b/extra/poppler/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 153271 2012-03-12 19:10:06Z jgc $ +# $Id: PKGBUILD 158944 2012-05-13 14:56:03Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=poppler pkgname=('poppler' 'poppler-glib' 'poppler-qt') pkgver=0.18.4 -pkgrel=1 +pkgrel=2 arch=(i686 x86_64) license=('GPL') makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection') diff --git a/extra/vim/PKGBUILD b/extra/vim/PKGBUILD index a429579a1..f60db7804 100644 --- a/extra/vim/PKGBUILD +++ b/extra/vim/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 157798 2012-04-29 16:19:15Z tdziedzic $ +# $Id: PKGBUILD 158968 2012-05-13 20:52:23Z tdziedzic $ # Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> # Maintainer: tobias [ tobias at archlinux org ] # Maintainer: Daniel J Griffiths <ghost1227@archlinux.us> @@ -6,20 +6,23 @@ pkgbase=vim pkgname=('vim' 'gvim' 'vim-runtime') _topver=7.3 -_patchlevel=495 -__hgrev=a104dae7f903 +_patchlevel=515 +__hgrev=8201108e9cf0 _versiondir="vim${_topver//./}" pkgver=${_topver}.${_patchlevel} -pkgrel=3 +pkgrel=1 arch=('i686' 'x86_64') license=('custom:vim') url="http://www.vim.org" makedepends=('gpm' 'python2' 'ruby' 'libxt' 'desktop-file-utils' 'gtk2' 'lua') -source=(ftp://ftp.archlinux.org/other/vim/${pkgname}-${pkgver}.tar.xz{,.sig} - pythoncomplete.vim::http://www.vim.org/scripts/download_script.php\?src_id=10872 - vimrc archlinux.vim gvim.desktop) -sha1sums=('4181e211d0150cda9b3dbd815ec4aa14a6d28196' - '039f92d62556a7ccc48ef4ded3c5e02578470b05' +source=("ftp://ftp.archlinux.org/other/vim/vim-${pkgver}.tar.xz" + "ftp://ftp.archlinux.org/other/vim/vim-${pkgver}.tar.xz.sig" + 'pythoncomplete.vim::http://www.vim.org/scripts/download_script.php?src_id=10872' + 'vimrc' + 'archlinux.vim' + 'gvim.desktop') +sha1sums=('10d7642d5062effdb51f53952622f9338003bbbf' + '0c1c584c1a2a2a279507f793cd5eff82863c625b' '4d9dcfb32874aa5467e6f06e418aeb4e675daaf2' '3494baf53a63581ba69f86a81293640ff681c5c5' '25dd3c2ce436e73a367c8f73b68f7f6889682437' @@ -48,11 +51,12 @@ mksource() { rm ${pkgname}-${pkgver}/{.hgignore,.hgtags} tar -cJf ${pkgname}-${pkgver}.tar.xz ${pkgname}-${pkgver}/* rm -r ${pkgname}-${pkgver} -# gpg --detach-sign --use-agent -u ${GPGKEY} ${pkgname}-${pkgver}.tar.xz + #gpg --detach-sign --use-agent -u ${GPGKEY} ${pkgname}-${pkgver}.tar.xz } build() { # remove -O2 because there is a crash with python because of it + # fedora br: https://bugzilla.redhat.com/show_bug.cgi?id=817196 export CFLAGS="${CFLAGS/-O2 /}" cd "${srcdir}" diff --git a/extra/watchdog/PKGBUILD b/extra/watchdog/PKGBUILD index cb4c36d88..4c45af820 100644 --- a/extra/watchdog/PKGBUILD +++ b/extra/watchdog/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 141081 2011-10-23 14:16:24Z thomas $ +# $Id: PKGBUILD 158941 2012-05-13 14:21:11Z thomas $ # Maintainer: Thomas Bächler <thomas@archlinux.org> pkgname=watchdog -pkgver=5.9 -pkgrel=2 +pkgver=5.12 +pkgrel=1 pkgdesc="Watchdog daemon" arch=(i686 x86_64) url="http://sourceforge.net/projects/watchdog" @@ -15,16 +15,16 @@ backup=(etc/watchdog.conf source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz watchdog.sh watchdog.cf - watchdog-5.9-use-oom_score_adj.patch) -md5sums=('d7cae3c9829f5d9a680764f314234867' + watchdog-5.12-fix-oom-in-wd_keepalive.patch) +md5sums=('cea28bea70e54f3625062bc808aef9af' '854451f554718b55186599faaa8d85f6' '01c1e2e13f515131180b4ebe9b8b7cc3' - '9a1ab454e42a7f2969ef6bf2da8a4543') + 'c90c2686975b5254f82b3de683f1f442') build() { cd "${srcdir}"/${pkgname}-${pkgver} - patch -p1 -i "${srcdir}"/watchdog-5.9-use-oom_score_adj.patch + patch -p1 -i "${srcdir}"/watchdog-5.12-fix-oom-in-wd_keepalive.patch ./configure \ --prefix=/usr \ --mandir=/usr/share/man \ diff --git a/extra/watchdog/watchdog-5.12-fix-oom-in-wd_keepalive.patch b/extra/watchdog/watchdog-5.12-fix-oom-in-wd_keepalive.patch new file mode 100644 index 000000000..dfc06b867 --- /dev/null +++ b/extra/watchdog/watchdog-5.12-fix-oom-in-wd_keepalive.patch @@ -0,0 +1,11 @@ +diff -Nur watchdog-5.12.orig/src/wd_keepalive.c watchdog-5.12/src/wd_keepalive.c +--- watchdog-5.12.orig/src/wd_keepalive.c 2012-04-05 12:16:33.000000000 +0200 ++++ watchdog-5.12/src/wd_keepalive.c 2012-05-13 16:15:36.786543263 +0200 +@@ -26,6 +26,7 @@ + #include <sys/mman.h> + #include <sys/ioctl.h> + #include <sys/wait.h> ++#include <linux/oom.h> + #include <linux/watchdog.h> + #include <libgen.h> + #include <string.h> diff --git a/extra/xf86-video-intel/PKGBUILD b/extra/xf86-video-intel/PKGBUILD index ad44b5329..b0459b075 100644 --- a/extra/xf86-video-intel/PKGBUILD +++ b/extra/xf86-video-intel/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 156183 2012-04-15 12:22:45Z jgc $ +# $Id: PKGBUILD 158952 2012-05-13 15:44:53Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=xf86-video-intel -pkgver=2.18.0 -pkgrel=3 +pkgver=2.19.0 +pkgrel=1 pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" @@ -13,26 +13,11 @@ makedepends=('xorg-server-devel>=1.12.0' 'libx11' 'libdrm' 'xf86driproto' 'glpro conflicts=('xorg-server<1.12.0' 'xf86-video-i810' 'xf86-video-intel-legacy') options=('!libtool') groups=('xorg-drivers' 'xorg') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 - 0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch - 0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch - 0003-uxa-Remove-hook-for-CompositeRectangles.patch - 0004-uxa-Remove-broken-render-glyphs-to-dst.patch - 0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch) -sha1sums=('77fae98e73414140bf214dca5da32bcf079c4463' - '8b46a5120c8c0b94fcd75801e5ce91d6baccd1ac' - 'd959c66ab40f521bfe4df66b6f43c98b13f59283' - '5525715f1bbf80edfc34d55946b0528f6b8dbf75' - '3e54a4b3911e004d29b6a8e07adb7c16eba5bc4f' - '32e2e5a53926ce29290bf6454e7dcdbd18e91d5e') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('131934cf5e90bd48c883804cc644c4cb8b1de100') build() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i "${srcdir}/0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch" - patch -Np1 -i "${srcdir}/0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch" - patch -Np1 -i "${srcdir}/0003-uxa-Remove-hook-for-CompositeRectangles.patch" - patch -Np1 -i "${srcdir}/0004-uxa-Remove-broken-render-glyphs-to-dst.patch" - patch -Np1 -i "${srcdir}/0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch" ./configure --prefix=/usr --enable-dri make } diff --git a/extra/xf86-video-nouveau/PKGBUILD b/extra/xf86-video-nouveau/PKGBUILD index 048771a53..8e2dffd5d 100644 --- a/extra/xf86-video-nouveau/PKGBUILD +++ b/extra/xf86-video-nouveau/PKGBUILD @@ -1,23 +1,23 @@ -# $Id: PKGBUILD 153350 2012-03-12 20:53:45Z andyrtr $ +# $Id: PKGBUILD 158956 2012-05-13 15:53:05Z ibiru $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: buddabrod <buddabrod@gmail.com> pkgname=xf86-video-nouveau -_gitdate=20120210 +_gitdate=20120512 pkgver=0.0.16_git${_gitdate} # see configure.ac pkgrel=1 pkgdesc="Open Source 3D acceleration driver for nVidia cards (experimental)" arch=('i686' 'x86_64') url="http://nouveau.freedesktop.org/wiki/" license=('GPL') #and MIT, not yet a license file, see http://nouveau.freedesktop.org/wiki/FAQ#head-09f75d03eb30011c754038a3893119a70745de4e -depends=('libdrm' 'udev') -optdepends=('nouveau-dri: experimental gallium3d features') -makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto') +depends=('libdrm-nouveau' 'udev') +optdepends=('nouveau-dri: experimental gallium3d features') +makedepends=('xorg-server-devel' 'libdrm-new' 'xf86driproto') conflicts=('xorg-server<1.11.99.902') options=('!libtool') install=$pkgname.install source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2) -md5sums=('f35c12d64542d0ea792a9e5af63a2e5a') +md5sums=('3e27e283219936d64c194eca24cd81cd') # source PKGBUILD && mksource mksource() { diff --git a/extra/xf86-video-s3virge/PKGBUILD b/extra/xf86-video-s3virge/PKGBUILD index d49bde15d..31239166c 100644 --- a/extra/xf86-video-s3virge/PKGBUILD +++ b/extra/xf86-video-s3virge/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 155419 2012-04-03 11:32:17Z jgc $ +# $Id: PKGBUILD 158928 2012-05-13 11:52:51Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Alexander Baldeck <alexander@archlinux.org> pkgname=xf86-video-s3virge -pkgver=1.10.4 -pkgrel=8 +pkgver=1.10.5 +pkgrel=1 pkgdesc="X.org S3 Virge video driver" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" @@ -14,15 +14,15 @@ makedepends=('pkgconfig' 'xorg-server-devel>=1.12.0') conflicts=('xorg-server<1.12.0') options=(!libtool) groups=('xorg-drivers' 'xorg') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 - git-fixes.patch) -md5sums=('6517bbbf808c700502d51acdc44662f8' - '2dba8e574d08c71c9f748ff341358050') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) + #git-fixes.patch) +sha1sums=('ca8aa877ae118b017d5b06951bc1c3b7690ba709') + build() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i "${srcdir}/git-fixes.patch" - autoreconf -fi + #patch -Np1 -i "${srcdir}/git-fixes.patch" + #autoreconf -fi ./configure --prefix=/usr make } diff --git a/extra/xterm/PKGBUILD b/extra/xterm/PKGBUILD index d9a74afbd..95fd807dc 100644 --- a/extra/xterm/PKGBUILD +++ b/extra/xterm/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 147119 2012-01-22 10:53:02Z andyrtr $ +# $Id: PKGBUILD 158920 2012-05-13 08:00:04Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Alexander Baldeck <alexander@archlinux.org> pkgname=xterm -pkgver=278 +pkgver=279 pkgrel=1 pkgdesc="X Terminal Emulator" arch=('i686' 'x86_64') @@ -12,7 +12,7 @@ license=('custom') depends=('libxft' 'libxaw' 'ncurses' 'xorg-luit' 'xbitmaps') source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz LICENSE) -md5sums=('3eeddfe35cb0a2db1924cfe0c20be443' +md5sums=('42a76a871c1d640719702801a0795d72' '10ecc3f8ee91e3189863a172f68282d2') build() { @@ -55,4 +55,6 @@ package() { install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" install -m644 "${srcdir}/LICENSE" \ "${pkgdir}/usr/share/licenses/${pkgname}/" + install -m755 -d ${pkgdir}/usr/share/applications + install -m644 ${srcdir}/${pkgname}-${pkgver}/{xterm,uxterm}.desktop ${pkgdir}/usr/share/applications/ } diff --git a/multilib/lib32-atk/PKGBUILD b/multilib/lib32-atk/PKGBUILD index 89fdf434c..eacc6e69e 100644 --- a/multilib/lib32-atk/PKGBUILD +++ b/multilib/lib32-atk/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 56310 2011-10-05 14:32:13Z bluewind $ +# $Id: PKGBUILD 70627 2012-05-13 11:29:51Z bluewind $ # Contributor: Pierre Schmitz <pierre@archlinux.de> # Maintainer: Mikko Seppälä <t-r-a-y@mbnet.fi> _pkgbasename=atk pkgname=lib32-$_pkgbasename -pkgver=2.2.0 +pkgver=2.4.0 pkgrel=1 pkgdesc="A library providing a set of interfaces for accessibility (32-bit)" arch=('x86_64') @@ -13,7 +13,7 @@ makedepends=('gcc-multilib') options=('!libtool') source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/${pkgver%.*}/${_pkgbasename}-${pkgver}.tar.xz) url='http://www.gtk.org/' -sha256sums=('8b22f0e7803dd3734c676ccd68ea999ff1156ca49d99c3de5c1d269ad0c3739d') +sha256sums=('091e9ce975a9fbbc7cd8fa64c9c389ffb7fa6cdde58b6d5c01b2c267093d888d') build() { export CC="gcc -m32" diff --git a/multilib/lib32-openssl/PKGBUILD b/multilib/lib32-openssl/PKGBUILD index f813ecd25..0d40ef4e2 100644 --- a/multilib/lib32-openssl/PKGBUILD +++ b/multilib/lib32-openssl/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 69916 2012-04-26 15:22:19Z pschmitz $ +# $Id: PKGBUILD 70629 2012-05-13 11:43:00Z bluewind $ # Maintainer: Pierre Schmitz <pierre@archlinux.de> _pkgbasename=openssl pkgname=lib32-$_pkgbasename -_ver=1.0.1b +_ver=1.0.1c # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} #pkgver=$_ver @@ -20,8 +20,8 @@ source=("https://www.openssl.org/source/${_pkgbasename}-${_ver}.tar.gz" "https://www.openssl.org/source/${_pkgbasename}-${_ver}.tar.gz.asc" 'no-rpath.patch' 'ca-dir.patch') -md5sums=('a1da58ce63baef3812004714fa302c47' - 'ca6bcd8641957df69c6c0bb4b93785aa' +md5sums=('ae412727c8c15b67880aef7bd2999b2e' + 'a3d90bc42253def61cd1c4237f1ce5f7' 'dc78d3d06baffc16217519242ce92478' '3bf51be3a1bbd262be46dc619f92aa90') diff --git a/staging/cups-filters/PKGBUILD b/staging/cups-filters/PKGBUILD new file mode 100644 index 000000000..62cbe9a91 --- /dev/null +++ b/staging/cups-filters/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 158958 2012-05-13 16:11:10Z andyrtr $ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> + +pkgname=cups-filters +pkgver=1.0.17 +pkgrel=2 +pkgdesc="OpenPrinting CUPS Filters" +arch=('i686' 'x86_64') +url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting" +license=('GPL') +groups=() +depends=('ghostscript' 'lcms2' 'poppler') # bc ? https://bugs.archlinux.org/task/29808 +makedepends=() +optdepends=() +provides=() +conflicts=() +replaces=() +backup=() +#options=(!makeflags) +install= +source=(http://www.openprinting.org/download/cups-filters/$pkgname-$pkgver.tar.gz) +md5sums=('5132b018cc503e9338fbd029acf56e55') + +build() { + cd "$srcdir/$pkgname-$pkgver" + ./configure --prefix=/usr \ + --sysconfdir=/etc + make +} + +#check() { +# cd "$srcdir/$pkgname-$pkgver" +# make -k check +#} + +package() { + cd "$srcdir/$pkgname-$pkgver" + #make DESTDIR="$pkgdir/" install + make install BUILDROOT="$pkgdir/" + # drop static lib + rm -f ${pkgdir}/usr/lib/*.a +} diff --git a/staging/inkscape/PKGBUILD b/staging/inkscape/PKGBUILD new file mode 100644 index 000000000..fbecbdc23 --- /dev/null +++ b/staging/inkscape/PKGBUILD @@ -0,0 +1,59 @@ +# $Id: PKGBUILD 158964 2012-05-13 20:05:21Z bisson $ +# Contributor: tobias <tobias@archlinux.org> +# Contributor: Tobias Kieslich <tobias@justdreams.de> +# Maintainer: Gaetan Bisson <bisson@archlinux.org> + +pkgname=inkscape +pkgver=0.48.3.1 +pkgrel=3 +pkgdesc='Vector graphics editor using the SVG file format' +url='http://inkscape.sourceforge.net/' +license=('GPL' 'LGPL') +arch=('i686' 'x86_64') +makedepends=('boost' 'intltool') +depends=('gc' 'gsl' 'gtkmm' 'gtkspell' 'imagemagick' 'libxslt' 'poppler-glib' 'popt' + 'python2' 'desktop-file-utils' 'hicolor-icon-theme') +optdepends=('pstoedit: latex formulas' + 'texlive-core: latex formulas' + 'python2-numpy: some extensions' + 'python2-lxml: some extensions and filters' + 'pyxml: some extensions' + 'uniconvertor: reading/writing to some proprietary formats') +options=('!libtool') +source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz" + 'poppler20.patch' + 'libpng15.patch') +sha1sums=('9a09a97d184e09c2ee7f9956bfe073b7313e919e' + '7316c2903c157781838cce289a709d100dc40fec' + 'd6512f3cb38ca8e2436dc485aa652490d17b3a52') + +install=install + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + sed -i 's|/usr/bin/python\>|/usr/bin/python2|g' cxxtest/*.py + sed -i 's|/usr/bin/env python\>|/usr/bin/env python2|g' share/*/{test/,}*.py + sed -i 's|"python" },|"python2" },|g' src/extension/implementation/script.cpp + sed -i 's|python -c|python2 -c|g' configure share/extensions/uniconv*.py + sed -i 's|"python"|"python2"|g' src/main.cpp + + patch -p1 -i ../poppler20.patch + patch -p1 -i ../libpng15.patch + + ./configure \ + --prefix=/usr \ + --with-python \ + --with-perl \ + --enable-lcms \ + --enable-poppler-cairo \ + --disable-dependency-tracking \ + + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install +} diff --git a/staging/inkscape/install b/staging/inkscape/install new file mode 100644 index 000000000..6e803bf1d --- /dev/null +++ b/staging/inkscape/install @@ -0,0 +1,13 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + + +post_remove() { + post_install +} diff --git a/staging/inkscape/libpng15.patch b/staging/inkscape/libpng15.patch new file mode 100644 index 000000000..e24913ed6 --- /dev/null +++ b/staging/inkscape/libpng15.patch @@ -0,0 +1,40 @@ +--- inkscape-0.48.1/src/extension/internal/pdfinput/svg-builder.cpp ++++ inkscape-0.48.1-mod//src/extension/internal/pdfinput/svg-builder.cpp +@@ -1443,7 +1443,7 @@ + return NULL; + } + // Set error handler +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + png_destroy_write_struct(&png_ptr, &info_ptr); + return NULL; + } +--- inkscape-0.48.1/src/helper/png-write.cpp ++++ inkscape-0.48.1-mod//src/helper/png-write.cpp +@@ -165,7 +165,7 @@ + /* Set error handling. REQUIRED if you aren't supplying your own + * error hadnling functions in the png_create_write_struct() call. + */ +- if (setjmp(png_ptr->jmpbuf)) { ++ if (setjmp(png_jmpbuf(png_ptr))) { + /* If we get here, we had a problem reading the file */ + fclose(fp); + png_destroy_write_struct(&png_ptr, &info_ptr); +--- inkscape-0.48.1/src/sp-image.cpp ++++ inkscape-0.48.1-mod//src/sp-image.cpp +@@ -386,9 +386,13 @@ + + #if defined(PNG_iCCP_SUPPORTED) + { +- char* name = 0; ++ png_charp name = 0; + int compression_type = 0; +- char* profile = 0; ++#if (PNG_LIBPNG_VER < 10500) ++ png_charp profile = 0; ++#else ++ png_bytep profile = 0; ++#endif + png_uint_32 proflen = 0; + if ( png_get_iCCP(pngPtr, infoPtr, &name, &compression_type, &profile, &proflen) ) { + // g_message("Found an iCCP chunk named [%s] with %d bytes and comp %d", name, proflen, compression_type); diff --git a/staging/inkscape/poppler20.patch b/staging/inkscape/poppler20.patch new file mode 100644 index 000000000..ecb74603f --- /dev/null +++ b/staging/inkscape/poppler20.patch @@ -0,0 +1,642 @@ +diff -Naur old/src/extension/internal/pdfinput/pdf-parser.cpp new/src/extension/internal/pdfinput/pdf-parser.cpp +--- old/src/extension/internal/pdfinput/pdf-parser.cpp 2011-07-08 20:25:09.468790000 +0200 ++++ new/src/extension/internal/pdfinput/pdf-parser.cpp 2012-05-13 21:07:11.334781215 +0200 +@@ -367,14 +367,14 @@ + for (i = 0; i < obj->arrayGetLength(); ++i) { + obj->arrayGet(i, &obj2); + if (!obj2.isStream()) { +- error(-1, const_cast<char*>("Weird page contents")); ++ error(errInternal, -1, const_cast<char*>("Weird page contents")); + obj2.free(); + return; + } + obj2.free(); + } + } else if (!obj->isStream()) { +- error(-1, const_cast<char*>("Weird page contents")); ++ error(errInternal, -1, const_cast<char*>("Weird page contents")); + return; + } + parser = new Parser(xref, new Lexer(xref, obj), gFalse); +@@ -419,7 +419,7 @@ + + // too many arguments - something is wrong + } else { +- error(getPos(), const_cast<char*>("Too many args in content stream")); ++ error(errInternal, getPos(), const_cast<char*>("Too many args in content stream")); + if (printCommands) { + printf("throwing away arg: "); + obj.print(stdout); +@@ -436,7 +436,7 @@ + + // args at end with no command + if (numArgs > 0) { +- error(getPos(), const_cast<char*>("Leftover args in content stream")); ++ error(errInternal, getPos(), const_cast<char*>("Leftover args in content stream")); + if (printCommands) { + printf("%d leftovers:", numArgs); + for (i = 0; i < numArgs; ++i) { +@@ -502,7 +502,7 @@ + name = cmd->getCmd(); + if (!(op = findOp(name))) { + if (ignoreUndef == 0) +- error(getPos(), const_cast<char*>("Unknown operator '%s'"), name); ++ error(errInternal, getPos(), const_cast<char*>("Unknown operator '%s'"), name); + return; + } + +@@ -510,26 +510,26 @@ + argPtr = args; + if (op->numArgs >= 0) { + if (numArgs < op->numArgs) { +- error(getPos(), const_cast<char*>("Too few (%d) args to '%s' operator"), numArgs, name); ++ error(errInternal, getPos(), const_cast<char*>("Too few (%d) args to '%s' operator"), numArgs, name); + return; + } + if (numArgs > op->numArgs) { + #if 0 +- error(getPos(), "Too many (%d) args to '%s' operator", numArgs, name); ++ error(errInternal, getPos(), "Too many (%d) args to '%s' operator", numArgs, name); + #endif + argPtr += numArgs - op->numArgs; + numArgs = op->numArgs; + } + } else { + if (numArgs > -op->numArgs) { +- error(getPos(), const_cast<char*>("Too many (%d) args to '%s' operator"), ++ error(errInternal, getPos(), const_cast<char*>("Too many (%d) args to '%s' operator"), + numArgs, name); + return; + } + } + for (i = 0; i < numArgs; ++i) { + if (!checkArg(&argPtr[i], op->tchk[i])) { +- error(getPos(), const_cast<char*>("Arg #%d to '%s' operator is wrong type (%s)"), ++ error(errInternal, getPos(), const_cast<char*>("Arg #%d to '%s' operator is wrong type (%s)"), + i, name, argPtr[i].getTypeName()); + return; + } +@@ -690,7 +690,7 @@ + return; + } + if (!obj1.isDict()) { +- error(getPos(), const_cast<char*>("ExtGState '%s' is wrong type"), args[0].getName()); ++ error(errInternal, getPos(), const_cast<char*>("ExtGState '%s' is wrong type"), args[0].getName()); + obj1.free(); + return; + } +@@ -705,7 +705,7 @@ + if (state->parseBlendMode(&obj2, &mode)) { + state->setBlendMode(mode); + } else { +- error(getPos(), const_cast<char*>("Invalid blend mode in ExtGState")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid blend mode in ExtGState")); + } + } + obj2.free(); +@@ -764,7 +764,7 @@ + state->setTransfer(funcs); + } + } else if (!obj2.isNull()) { +- error(getPos(), const_cast<char*>("Invalid transfer function in ExtGState")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid transfer function in ExtGState")); + } + obj2.free(); + +@@ -784,7 +784,7 @@ + funcs[0] = Function::parse(&obj3); + if (funcs[0]->getInputSize() != 1 || + funcs[0]->getOutputSize() != 1) { +- error(getPos(), ++ error(errInternal, getPos(), + const_cast<char*>("Invalid transfer function in soft mask in ExtGState")); + delete funcs[0]; + funcs[0] = NULL; +@@ -809,11 +809,7 @@ + blendingColorSpace = NULL; + isolated = knockout = gFalse; + if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) { +-#ifdef POPPLER_NEW_COLOR_SPACE_API + blendingColorSpace = GfxColorSpace::parse(&obj5, NULL); +-#else +- blendingColorSpace = GfxColorSpace::parse(&obj5); +-#endif + } + obj5.free(); + if (obj4.dictLookup(const_cast<char*>("I"), &obj5)->isBool()) { +@@ -840,15 +836,15 @@ + delete funcs[0]; + } + } else { +- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); + } + obj4.free(); + } else { +- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group")); + } + obj3.free(); + } else if (!obj2.isNull()) { +- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState")); ++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState")); + } + } + obj2.free(); +@@ -876,7 +872,7 @@ + // check form type + dict->lookup(const_cast<char*>("FormType"), &obj1); + if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) { +- error(getPos(), const_cast<char*>("Unknown form type")); ++ error(errInternal, getPos(), const_cast<char*>("Unknown form type")); + } + obj1.free(); + +@@ -884,7 +880,7 @@ + dict->lookup(const_cast<char*>("BBox"), &obj1); + if (!obj1.isArray()) { + obj1.free(); +- error(getPos(), const_cast<char*>("Bad form bounding box")); ++ error(errInternal, getPos(), const_cast<char*>("Bad form bounding box")); + return; + } + for (i = 0; i < 4; ++i) { +@@ -1012,19 +1008,11 @@ + + state->setFillPattern(NULL); + res->lookupColorSpace(args[0].getName(), &obj); +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (obj.isNull()) { + colorSpace = GfxColorSpace::parse(&args[0], NULL); + } else { + colorSpace = GfxColorSpace::parse(&obj, NULL); + } +-#else +- if (obj.isNull()) { +- colorSpace = GfxColorSpace::parse(&args[0]); +- } else { +- colorSpace = GfxColorSpace::parse(&obj); +- } +-#endif + obj.free(); + if (colorSpace) { + state->setFillColorSpace(colorSpace); +@@ -1032,7 +1020,7 @@ + state->setFillColor(&color); + builder->updateStyle(state); + } else { +- error(getPos(), const_cast<char*>("Bad color space (fill)")); ++ error(errInternal, getPos(), const_cast<char*>("Bad color space (fill)")); + } + } + +@@ -1043,19 +1031,11 @@ + + state->setStrokePattern(NULL); + res->lookupColorSpace(args[0].getName(), &obj); +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (obj.isNull()) { + colorSpace = GfxColorSpace::parse(&args[0], NULL); + } else { + colorSpace = GfxColorSpace::parse(&obj, NULL); + } +-#else +- if (obj.isNull()) { +- colorSpace = GfxColorSpace::parse(&args[0]); +- } else { +- colorSpace = GfxColorSpace::parse(&obj); +- } +-#endif + obj.free(); + if (colorSpace) { + state->setStrokeColorSpace(colorSpace); +@@ -1063,7 +1043,7 @@ + state->setStrokeColor(&color); + builder->updateStyle(state); + } else { +- error(getPos(), const_cast<char*>("Bad color space (stroke)")); ++ error(errInternal, getPos(), const_cast<char*>("Bad color space (stroke)")); + } + } + +@@ -1072,7 +1052,7 @@ + int i; + + if (numArgs != state->getFillColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'sc' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'sc' command")); + return; + } + state->setFillPattern(NULL); +@@ -1088,7 +1068,7 @@ + int i; + + if (numArgs != state->getStrokeColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SC' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SC' command")); + return; + } + state->setStrokePattern(NULL); +@@ -1109,7 +1089,7 @@ + if (!((GfxPatternColorSpace *)state->getFillColorSpace())->getUnder() || + numArgs - 1 != ((GfxPatternColorSpace *)state->getFillColorSpace()) + ->getUnder()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); + return; + } + for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) { +@@ -1120,23 +1100,15 @@ + state->setFillColor(&color); + builder->updateStyle(state); + } +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (args[numArgs-1].isName() && + (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) { + state->setFillPattern(pattern); + builder->updateStyle(state); + } +-#else +- if (args[numArgs-1].isName() && +- (pattern = res->lookupPattern(args[numArgs-1].getName()))) { +- state->setFillPattern(pattern); +- builder->updateStyle(state); +- } +-#endif + + } else { + if (numArgs != state->getFillColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command")); + return; + } + state->setFillPattern(NULL); +@@ -1161,7 +1133,7 @@ + ->getUnder() || + numArgs - 1 != ((GfxPatternColorSpace *)state->getStrokeColorSpace()) + ->getUnder()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); + return; + } + for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) { +@@ -1172,23 +1144,15 @@ + state->setStrokeColor(&color); + builder->updateStyle(state); + } +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (args[numArgs-1].isName() && + (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) { + state->setStrokePattern(pattern); + builder->updateStyle(state); + } +-#else +- if (args[numArgs-1].isName() && +- (pattern = res->lookupPattern(args[numArgs-1].getName()))) { +- state->setStrokePattern(pattern); +- builder->updateStyle(state); +- } +-#endif + + } else { + if (numArgs != state->getStrokeColorSpace()->getNComps()) { +- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); ++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command")); + return; + } + state->setStrokePattern(NULL); +@@ -1212,7 +1176,7 @@ + + void PdfParser::opLineTo(Object args[], int numArgs) { + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in lineto")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in lineto")); + return; + } + state->lineTo(args[0].getNum(), args[1].getNum()); +@@ -1222,7 +1186,7 @@ + double x1, y1, x2, y2, x3, y3; + + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in curveto")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto")); + return; + } + x1 = args[0].getNum(); +@@ -1238,7 +1202,7 @@ + double x1, y1, x2, y2, x3, y3; + + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in curveto1")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto1")); + return; + } + x1 = state->getCurX(); +@@ -1254,7 +1218,7 @@ + double x1, y1, x2, y2, x3, y3; + + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in curveto2")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto2")); + return; + } + x1 = args[0].getNum(); +@@ -1282,7 +1246,7 @@ + + void PdfParser::opClosePath(Object args[], int numArgs) { + if (!state->isCurPt()) { +- error(getPos(), const_cast<char*>("No current point in closepath")); ++ error(errInternal, getPos(), const_cast<char*>("No current point in closepath")); + return; + } + state->closePath(); +@@ -1298,7 +1262,7 @@ + + void PdfParser::opStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in stroke")); + return; + } + if (state->isPath()) { +@@ -1314,7 +1278,7 @@ + + void PdfParser::opCloseStroke(Object * /*args[]*/, int /*numArgs*/) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in closepath/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/stroke")); + return; + } + state->closePath(); +@@ -1331,7 +1295,7 @@ + + void PdfParser::opFill(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in fill")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in fill")); + return; + } + if (state->isPath()) { +@@ -1347,7 +1311,7 @@ + + void PdfParser::opEOFill(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in eofill")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in eofill")); + return; + } + if (state->isPath()) { +@@ -1363,7 +1327,7 @@ + + void PdfParser::opFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in fill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in fill/stroke")); + return; + } + if (state->isPath()) { +@@ -1376,7 +1340,7 @@ + + void PdfParser::opCloseFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in closepath/fill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/fill/stroke")); + return; + } + if (state->isPath()) { +@@ -1388,7 +1352,7 @@ + + void PdfParser::opEOFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in eofill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in eofill/stroke")); + return; + } + if (state->isPath()) { +@@ -1399,7 +1363,7 @@ + + void PdfParser::opCloseEOFillStroke(Object args[], int numArgs) { + if (!state->isCurPt()) { +- //error(getPos(), const_cast<char*>("No path in closepath/eofill/stroke")); ++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/eofill/stroke")); + return; + } + if (state->isPath()) { +@@ -1440,7 +1404,7 @@ + doShadingPatternFillFallback((GfxShadingPattern *)pattern, gFalse, eoFill); + break; + default: +- error(getPos(), const_cast<char*>("Unimplemented pattern type (%d) in fill"), ++ error(errInternal, getPos(), const_cast<char*>("Unimplemented pattern type (%d) in fill"), + pattern->getType()); + break; + } +@@ -1459,7 +1423,7 @@ + doShadingPatternFillFallback((GfxShadingPattern *)pattern, gTrue, gFalse); + break; + default: +- error(getPos(), const_cast<char*>("Unimplemented pattern type (%d) in stroke"), ++ error(errInternal, getPos(), const_cast<char*>("Unimplemented pattern type (%d) in stroke"), + pattern->getType()); + break; + } +@@ -1579,15 +1543,9 @@ + double *matrix = NULL; + GBool savedState = gFalse; + +-#ifdef POPPLER_NEW_COLOR_SPACE_API + if (!(shading = res->lookupShading(args[0].getName(), NULL))) { + return; + } +-#else +- if (!(shading = res->lookupShading(args[0].getName()))) { +- return; +- } +-#endif + + // save current graphics state + if (shading->getType() != 2 && shading->getType() != 3) { +@@ -2156,7 +2114,7 @@ + + void PdfParser::opShowText(Object args[], int numArgs) { + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in show")); ++ error(errInternal, getPos(), const_cast<char*>("No font in show")); + return; + } + if (fontChanged) { +@@ -2170,7 +2128,7 @@ + double tx, ty; + + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in move/show")); ++ error(errInternal, getPos(), const_cast<char*>("No font in move/show")); + return; + } + if (fontChanged) { +@@ -2188,7 +2146,7 @@ + double tx, ty; + + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in move/set/show")); ++ error(errInternal, getPos(), const_cast<char*>("No font in move/set/show")); + return; + } + if (fontChanged) { +@@ -2211,7 +2169,7 @@ + int i; + + if (!state->getFont()) { +- error(getPos(), const_cast<char*>("No font in show/space")); ++ error(errInternal, getPos(), const_cast<char*>("No font in show/space")); + return; + } + if (fontChanged) { +@@ -2236,7 +2194,7 @@ + } else if (obj.isString()) { + doShowText(obj.getString()); + } else { +- error(getPos(), const_cast<char*>("Element of show/space array must be number or string")); ++ error(errInternal, getPos(), const_cast<char*>("Element of show/space array must be number or string")); + } + obj.free(); + } +@@ -2334,7 +2292,7 @@ + if (charProc.isStream()) { + //parse(&charProc, gFalse); // TODO: parse into SVG font + } else { +- error(getPos(), const_cast<char*>("Missing or bad Type3 CharProc entry")); ++ error(errInternal, getPos(), const_cast<char*>("Missing or bad Type3 CharProc entry")); + } + //out->endType3Char(state); + if (resDict) { +@@ -2410,7 +2368,7 @@ + return; + } + if (!obj1.isStream()) { +- error(getPos(), const_cast<char*>("XObject '%s' is wrong type"), name); ++ error(errInternal, getPos(), const_cast<char*>("XObject '%s' is wrong type"), name); + obj1.free(); + return; + } +@@ -2426,9 +2384,9 @@ + /* out->psXObject(obj1.getStream(), + obj3.isStream() ? obj3.getStream() : (Stream *)NULL);*/ + } else if (obj2.isName()) { +- error(getPos(), const_cast<char*>("Unknown XObject subtype '%s'"), obj2.getName()); ++ error(errInternal, getPos(), const_cast<char*>("Unknown XObject subtype '%s'"), obj2.getName()); + } else { +- error(getPos(), const_cast<char*>("XObject subtype is missing or wrong type")); ++ error(errInternal, getPos(), const_cast<char*>("XObject subtype is missing or wrong type")); + } + obj2.free(); + obj1.free(); +@@ -2559,11 +2517,7 @@ + } + } + if (!obj1.isNull()) { +-#ifdef POPPLER_NEW_COLOR_SPACE_API + colorSpace = GfxColorSpace::parse(&obj1, NULL); +-#else +- colorSpace = GfxColorSpace::parse(&obj1); +-#endif + } else if (csMode == streamCSDeviceGray) { + colorSpace = new GfxDeviceGrayColorSpace(); + } else if (csMode == streamCSDeviceRGB) { +@@ -2648,11 +2602,7 @@ + obj2.free(); + } + } +-#ifdef POPPLER_NEW_COLOR_SPACE_API + maskColorSpace = GfxColorSpace::parse(&obj1, NULL); +-#else +- maskColorSpace = GfxColorSpace::parse(&obj1); +-#endif + obj1.free(); + if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) { + goto err1; +@@ -2758,7 +2708,7 @@ + err2: + obj1.free(); + err1: +- error(getPos(), const_cast<char*>("Bad image parameters")); ++ error(errInternal, getPos(), const_cast<char*>("Bad image parameters")); + } + + void PdfParser::doForm(Object *str) { +@@ -2783,7 +2733,7 @@ + // check form type + dict->lookup(const_cast<char*>("FormType"), &obj1); + if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) { +- error(getPos(), const_cast<char*>("Unknown form type")); ++ error(errInternal, getPos(), const_cast<char*>("Unknown form type")); + } + obj1.free(); + +@@ -2791,7 +2741,7 @@ + dict->lookup(const_cast<char*>("BBox"), &bboxObj); + if (!bboxObj.isArray()) { + bboxObj.free(); +- error(getPos(), const_cast<char*>("Bad form bounding box")); ++ error(errInternal, getPos(), const_cast<char*>("Bad form bounding box")); + return; + } + for (i = 0; i < 4; ++i) { +@@ -2827,11 +2777,7 @@ + if (obj1.dictLookup(const_cast<char*>("S"), &obj2)->isName(const_cast<char*>("Transparency"))) { + transpGroup = gTrue; + if (!obj1.dictLookup(const_cast<char*>("CS"), &obj3)->isNull()) { +-#ifdef POPPLER_NEW_COLOR_SPACE_API + blendingColorSpace = GfxColorSpace::parse(&obj3, NULL); +-#else +- blendingColorSpace = GfxColorSpace::parse(&obj3); +-#endif + } + obj3.free(); + if (obj1.dictLookup(const_cast<char*>("I"), &obj3)->isBool()) { +@@ -2990,7 +2936,7 @@ + parser->getObj(&obj); + while (!obj.isCmd(const_cast<char*>("ID")) && !obj.isEOF()) { + if (!obj.isName()) { +- error(getPos(), const_cast<char*>("Inline image dictionary key must be a name object")); ++ error(errInternal, getPos(), const_cast<char*>("Inline image dictionary key must be a name object")); + obj.free(); + } else { + key = copyString(obj.getName()); +@@ -3005,7 +2951,7 @@ + parser->getObj(&obj); + } + if (obj.isEOF()) { +- error(getPos(), const_cast<char*>("End of file in inline image")); ++ error(errInternal, getPos(), const_cast<char*>("End of file in inline image")); + obj.free(); + dict.free(); + return NULL; +@@ -3020,11 +2966,11 @@ + } + + void PdfParser::opImageData(Object args[], int numArgs) { +- error(getPos(), const_cast<char*>("Internal: got 'ID' operator")); ++ error(errInternal, getPos(), const_cast<char*>("Internal: got 'ID' operator")); + } + + void PdfParser::opEndImage(Object args[], int numArgs) { +- error(getPos(), const_cast<char*>("Internal: got 'EI' operator")); ++ error(errInternal, getPos(), const_cast<char*>("Internal: got 'EI' operator")); + } + + //------------------------------------------------------------------------ +diff -Naur old/src/extension/internal/pdfinput/svg-builder.cpp new/src/extension/internal/pdfinput/svg-builder.cpp +--- old/src/extension/internal/pdfinput/svg-builder.cpp 2011-07-08 20:25:09.468790000 +0200 ++++ new/src/extension/internal/pdfinput/svg-builder.cpp 2012-05-13 20:45:22.303804308 +0200 +@@ -961,9 +961,7 @@ + _font_style = sp_repr_css_attr_new(); + GfxFont *font = state->getFont(); + // Store original name +- if (font->getOrigName()) { +- _font_specification = font->getOrigName()->getCString(); +- } else if (font->getName()) { ++ if (font->getName()) { + _font_specification = font->getName()->getCString(); + } else { + _font_specification = (char*) "Arial"; diff --git a/staging/kdegraphics-okular/PKGBUILD b/staging/kdegraphics-okular/PKGBUILD new file mode 100644 index 000000000..ac50aeb7b --- /dev/null +++ b/staging/kdegraphics-okular/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 158978 2012-05-13 22:30:24Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgname=kdegraphics-okular +pkgver=4.8.3 +pkgrel=2 +pkgdesc='Document Viewer' +arch=('i686' 'x86_64') +url="http://kde.org/applications/graphics/okular/" +license=('GPL' 'LGPL' 'FDL') +groups=('kde' 'kdegraphics') +depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre' + 'ebook-tools' 'libspectre') +makedepends=('cmake' 'automoc4') +optdepends=('kdegraphics-mobipocket: mobipocket support') +install=${pkgname}.install +source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.xz") +sha1sums=('7c43076df3e9d6217e2a5cbb8ef6d8af89f8ae37') + +build() { + cd "${srcdir}" + mkdir build + cd build + cmake ../okular-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd "${srcdir}"/build + make DESTDIR="${pkgdir}" install +} diff --git a/staging/kdegraphics-okular/kdegraphics-okular.install b/staging/kdegraphics-okular/kdegraphics-okular.install new file mode 100644 index 000000000..81ce5c4b0 --- /dev/null +++ b/staging/kdegraphics-okular/kdegraphics-okular.install @@ -0,0 +1,12 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/staging/poppler/PKGBUILD b/staging/poppler/PKGBUILD new file mode 100644 index 000000000..139184dd8 --- /dev/null +++ b/staging/poppler/PKGBUILD @@ -0,0 +1,80 @@ +# $Id: PKGBUILD 158950 2012-05-13 15:25:14Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgbase=poppler +pkgname=('poppler' 'poppler-glib' 'poppler-qt') +pkgver=0.20.0 +pkgrel=1 +arch=(i686 x86_64) +license=('GPL') +makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection') +options=('!libtool' '!emptydirs') +url="http://poppler.freedesktop.org/" +_testtag=0d2bfd4af4c76a3bac27ccaff793d9129df7b57a +source=(http://poppler.freedesktop.org/${pkgbase}-${pkgver}.tar.gz + http://cgit.freedesktop.org/poppler/test/snapshot/test-${_testtag}.tar.bz2) +md5sums=('5bca54b9561bf5b14d9344efce2cd4f3' + '9dc64c254a31e570507bdd4ad4ba629a') + +build() { + cd "${srcdir}/${pkgbase}-${pkgver}" + sed -i -e '/AC_PATH_XTRA/d' configure.ac + + autoreconf -fi + + ./configure --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --disable-static \ + --enable-cairo-output \ + --enable-xpdf-headers \ + --enable-libjpeg --enable-zlib \ + --enable-poppler-qt4 \ + --enable-poppler-glib + make +} + +check() { + cd "${srcdir}" + ln -sf test-${_testtag} test + cd ${pkgbase}-${pkgver} + LANG=en_US.UTF8 make check +} + +package_poppler() { + pkgdesc="PDF rendering library based on xpdf 3.0" + depends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'lcms' 'poppler-data') + conflicts=("poppler-qt3<${pkgver}") + + cd "${srcdir}/${pkgbase}-${pkgver}" + sed -e 's/^glib_subdir =.*/glib_subdir =/' \ + -e 's/^qt4_subdir =.*/qt4_subdir =/' -i Makefile + make DESTDIR="${pkgdir}" install + + rm -f "${pkgdir}"/usr/lib/pkgconfig/poppler-{glib,qt4}.pc +} + +package_poppler-glib() { + pkgdesc="Poppler glib bindings" + depends=("poppler=${pkgver}" 'glib2') + + cd "${srcdir}/${pkgbase}-${pkgver}/poppler" + make DESTDIR="${pkgdir}" install-libLTLIBRARIES + cd "${srcdir}/${pkgbase}-${pkgver}/glib" + make DESTDIR="${pkgdir}" install + install -m755 -d "${pkgdir}/usr/lib/pkgconfig" + install -m644 ../poppler-glib.pc "${pkgdir}/usr/lib/pkgconfig/" + rm -f "${pkgdir}"/usr/lib/libpoppler.* + rm -f "${pkgdir}/usr/bin/poppler-glib-demo" +} + +package_poppler-qt() { + pkgdesc="Poppler Qt bindings" + depends=("poppler=${pkgver}" 'qt') + + cd "${srcdir}/${pkgbase}-${pkgver}/poppler" + make DESTDIR="${pkgdir}" install-libLTLIBRARIES + cd "${srcdir}/${pkgbase}-${pkgver}/qt4" + make DESTDIR="${pkgdir}" install + install -m755 -d "${pkgdir}/usr/lib/pkgconfig" + install -m644 ../poppler-qt4.pc "${pkgdir}/usr/lib/pkgconfig/" + rm -f "${pkgdir}"/usr/lib/libpoppler.* +} diff --git a/staging/xpdf/PKGBUILD b/staging/xpdf/PKGBUILD new file mode 100644 index 000000000..7545e3692 --- /dev/null +++ b/staging/xpdf/PKGBUILD @@ -0,0 +1,64 @@ +# $Id: PKGBUILD 158960 2012-05-13 16:58:43Z bisson $ +# Maintainer: Gaetan Bisson <bisson@archlinux.org> +# Contributor: tobias <tobias@archlinux.org> +# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca> + +pkgname=xpdf +#pkgver=3.03_pl1 +pkgver=3.03 +pkgrel=2 +pkgdesc='Viewer for Portable Document Format (PDF) files' +url='http://www.foolabs.com/xpdf/' +license=('GPL2') +arch=('i686' 'x86_64') +depends=('lesstif' 'gsfonts' 'libxt') +optdepends=('poppler: tools that used to be included in xpdf' + 'desktop-file-utils: for desktop environments') +# "ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}pl1.patch" +source=("ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}.tar.gz" + 'char.patch' + 'desktop') +sha1sums=('499423e8a795e0efd76ca798239eb4d0d52fe248' + '5c471944685a6b24a2b0c0e000562d1a3263aeeb' + '3b6fe01636253676ffa0efe1b237a75af4721f6d') + +install=install +backup=('etc/xpdfrc') + +build() { + cd "${srcdir}/${pkgname}-${pkgver%_*}" + +# patch -p1 -i "../${pkgname}-${_srcver}pl1.patch" + patch -p1 -i ../char.patch + + sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' xpdf/GlobalParams.cc + sed -i 's:times-medium-r-normal--16:times-medium-r-normal--14:' xpdf/XPDFViewer.cc # FS#14217 + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --enable-multithreaded \ + --enable-wordlist \ + --with-freetype2-library=/usr/lib \ + --with-freetype2-includes=/usr/include/freetype2 \ + --x-includes=/usr/include \ + --with-Xm-library=/usr/lib \ + --with-Xm-includes=/usr/include \ + + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver%_*}" + + make DESTDIR="${pkgdir}" install + + install -Dm644 ../desktop "${pkgdir}/usr/share/applications/xpdf.desktop" + install -Dm644 xpdf/xpdfIcon.xpm "${pkgdir}/usr/share/pixmaps/xpdf.xpm" + + # stuff provided by poppler + for tool in pdfdetach pdffonts pdfimages pdfinfo pdftoppm pdftops pdftotext; do + rm "${pkgdir}/usr/bin/${tool}" "${pkgdir}/usr/share/man/man1/${tool}.1" + done +} diff --git a/staging/xpdf/char.patch b/staging/xpdf/char.patch new file mode 100644 index 000000000..8e49393a6 --- /dev/null +++ b/staging/xpdf/char.patch @@ -0,0 +1,12 @@ +diff -aur old/xpdf/XPDFViewer.cc new/xpdf/XPDFViewer.cc +--- old/xpdf/XPDFViewer.cc 2011-08-15 14:08:53.000000000 -0700 ++++ new/xpdf/XPDFViewer.cc 2011-08-17 11:05:55.739431215 -0700 +@@ -1803,7 +1803,7 @@ + menuPane = XmCreatePulldownMenu(toolBar, "zoomMenuPane", args, n); + for (i = 0; i < nZoomMenuItems; ++i) { + n = 0; +- s = XmStringCreateLocalized(zoomMenuInfo[i].label); ++ s = XmStringCreateLocalized((char *)zoomMenuInfo[i].label); + XtSetArg(args[n], XmNlabelString, s); ++n; + XtSetArg(args[n], XmNuserData, (XtPointer)i); ++n; + sprintf(buf, "zoom%d", i); diff --git a/staging/xpdf/desktop b/staging/xpdf/desktop new file mode 100644 index 000000000..06830ecda --- /dev/null +++ b/staging/xpdf/desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Xpdf +Comment=Views Adobe PDF (acrobat) files +Exec=xpdf +Terminal=false +Type=Application +Icon=xpdf +Categories=Office; +MimeType=application/pdf; diff --git a/staging/xpdf/install b/staging/xpdf/install new file mode 100644 index 000000000..c6cf149dd --- /dev/null +++ b/staging/xpdf/install @@ -0,0 +1,11 @@ +post_install() { + [[ -x /usr/bin/update-desktop-database ]] && update-desktop-database -q || true +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/cryptsetup/PKGBUILD b/testing/cryptsetup/PKGBUILD new file mode 100644 index 000000000..e2292ebc6 --- /dev/null +++ b/testing/cryptsetup/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 158938 2012-05-13 13:45:53Z thomas $ +# Maintainer: Thomas Bächler <thomas@archlinux.org> +pkgname=cryptsetup +pkgver=1.4.2 +pkgrel=1 +pkgdesc="Userspace setup tool for transparent encryption of block devices using dm-crypt" +arch=(i686 x86_64) +license=('GPL') +url="http://code.google.com/p/cryptsetup/" +groups=('base') +depends=('device-mapper>=2.02.85-2' 'libgcrypt' 'popt') +conflicts=('mkinitcpio<0.7') +options=('!libtool' '!emptydirs') +source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2 + http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2.asc + encrypt_hook + encrypt_install) +sha256sums=('1fe80d7b19d24b3f65d2e446decfed859e2c4d17fdf7c19289d82dc7cd60dfe7' + '4e6dbece8d1baad861479aca70d0cf30887420da9b5eab45d65d064c656893ed' + 'e4c00e2da274bf4cab3f72a0de779790a11a946d36b83144e74d3791e230b262' + 'cba1dc38ff6cc4d3740d0badfb2b151bb03d19e8e9fa497569ac2fb6f4196e0e') + +build() { + cd "${srcdir}"/$pkgname-${pkgver} + ./configure --prefix=/usr --disable-static + make +} + +package() { + cd "${srcdir}"/$pkgname-${pkgver} + make DESTDIR="${pkgdir}" install + # install hook + install -D -m644 "${srcdir}"/encrypt_hook "${pkgdir}"/usr/lib/initcpio/hooks/encrypt + install -D -m644 "${srcdir}"/encrypt_install "${pkgdir}"/usr/lib/initcpio/install/encrypt +} diff --git a/testing/cryptsetup/encrypt_hook b/testing/cryptsetup/encrypt_hook new file mode 100644 index 000000000..0f35782c6 --- /dev/null +++ b/testing/cryptsetup/encrypt_hook @@ -0,0 +1,137 @@ +#!/usr/bin/ash + +run_hook() { + modprobe -a -q dm-crypt >/dev/null 2>&1 + [ "${quiet}" = "y" ] && CSQUIET=">/dev/null" + + # Get keyfile if specified + ckeyfile="/crypto_keyfile.bin" + if [ -n "$cryptkey" ]; then + IFS=: read ckdev ckarg1 ckarg2 <<EOF +$cryptkey +EOF + if poll_device "${ckdev}" ${rootdelay}; then + case ${ckarg1} in + *[!0-9]*) + # Use a file on the device + # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path + mkdir /ckey + mount -r -t "$ckarg1" "$ckdev" /ckey + dd if="/ckey/$ckarg2" of="$ckeyfile" >/dev/null 2>&1 + umount /ckey + ;; + *) + # Read raw data from the block device + # ckarg1 is numeric: ckarg1=offset, ckarg2=length + dd if="$ckdev" of="$ckeyfile" bs=1 skip="$ckarg1" count="$ckarg2" >/dev/null 2>&1 + ;; + esac + fi + [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase." + fi + + if [ -n "${cryptdevice}" ]; then + DEPRECATED_CRYPT=0 + IFS=: read cryptdev cryptname cryptoptions <<EOF +$cryptdevice +EOF + else + DEPRECATED_CRYPT=1 + cryptdev="${root}" + cryptname="root" + fi + + warn_deprecated() { + echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated" + echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead." + } + + for cryptopt in ${cryptoptions//,/ }; do + case ${cryptopt} in + allow-discards) + echo "Enabling TRIM/discard support." + cryptargs="${cryptargs} --allow-discards" + ;; + *) + echo "Encryption option '${cryptopt}' not known, ignoring." >&2 + ;; + esac + done + + if poll_device "${cryptdev}" ${rootdelay}; then + if cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then + [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated + dopassphrase=1 + # If keyfile exists, try to use that + if [ -f ${ckeyfile} ]; then + if eval cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${cryptargs} ${CSQUIET}; then + dopassphrase=0 + else + echo "Invalid keyfile. Reverting to passphrase." + fi + fi + # Ask for a passphrase + if [ ${dopassphrase} -gt 0 ]; then + echo "" + echo "A password is required to access the ${cryptname} volume:" + + #loop until we get a real password + while ! eval cryptsetup luksOpen ${cryptdev} ${cryptname} ${cryptargs} ${CSQUIET}; do + sleep 2; + done + fi + if [ -e "/dev/mapper/${cryptname}" ]; then + if [ ${DEPRECATED_CRYPT} -eq 1 ]; then + export root="/dev/mapper/root" + fi + else + err "Password succeeded, but ${cryptname} creation failed, aborting..." + exit 1 + fi + elif [ -n "${crypto}" ]; then + [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated + msg "Non-LUKS encrypted device found..." + if echo "$crypto" | awk -F: '{ exit(NF == 5) }'; then + err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip" + err "Non-LUKS decryption not attempted..." + return 1 + fi + exe="cryptsetup create $cryptname $cryptdev $cryptargs" + IFS=: read c_hash c_cipher c_keysize c_offset c_skip <<EOF +$crypto +EOF + [ -n "$c_hash" ] && exe="$exe --hash '$c_hash'" + [ -n "$c_cipher" ] && exe="$exe --cipher '$c_cipher'" + [ -n "$c_keysize" ] && exe="$exe --key-size '$c_keysize'" + [ -n "$c_offset" ] && exe="$exe --offset '$c_offset'" + [ -n "$c_skip" ] && exe="$exe --skip '$c_skip'" + if [ -f "$ckeyfile" ]; then + exe="$exe --key-file $ckeyfile" + else + exe="$exe --verify-passphrase" + echo "" + echo "A password is required to access the ${cryptname} volume:" + fi + eval "$exe $CSQUIET" + + if [ $? -ne 0 ]; then + err "Non-LUKS device decryption failed. verify format: " + err " crypto=hash:cipher:keysize:offset:skip" + exit 1 + fi + if [ -e "/dev/mapper/${cryptname}" ]; then + if [ ${DEPRECATED_CRYPT} -eq 1 ]; then + export root="/dev/mapper/root" + fi + else + err "Password succeeded, but ${cryptname} creation failed, aborting..." + exit 1 + fi + else + err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified." + fi + fi + rm -f ${ckeyfile} +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/testing/cryptsetup/encrypt_install b/testing/cryptsetup/encrypt_install new file mode 100644 index 000000000..79d2f3e4b --- /dev/null +++ b/testing/cryptsetup/encrypt_install @@ -0,0 +1,39 @@ +#!/bin/bash + +build() { + if [ -z "${CRYPTO_MODULES}" ]; then + MODULES=" dm-crypt $(all_modules "/crypto/")" + else + MODULES=" dm-crypt $CRYPTO_MODULES" + fi + FILES="" + SCRIPT="encrypt" + + add_binary "cryptsetup" + add_binary "dmsetup" + add_file "/usr/lib/udev/rules.d/10-dm.rules" + add_file "/usr/lib/udev/rules.d/13-dm-disk.rules" + add_file "/usr/lib/udev/rules.d/95-dm-notify.rules" + add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules" +} + +help() { + cat <<HELPEOF +This hook allows for an encrypted root device. Users should specify the device +to be unlocked using 'cryptdevice=device:dmname' on the kernel command line, +where 'device' is the path to the raw device, and 'dmname' is the name given to +the device after unlocking, and will be available as /dev/mapper/dmname. + +For unlocking via keyfile, 'cryptkey=device:fstype:path' should be specified on +the kernel cmdline, where 'device' represents the raw block device where the key +exists, 'fstype' is the filesystem type of 'device' (or auto), and 'path' is +the absolute path of the keyfile within the device. + +Without specifying a keyfile, you will be prompted for the password at runtime. +This means you must have a keyboard available to input it, and you may need +the keymap hook as well to ensure that the keyboard is using the layout you +expect. +HELPEOF +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/testing/iw/PKGBUILD b/testing/iw/PKGBUILD new file mode 100644 index 000000000..4b4d5d723 --- /dev/null +++ b/testing/iw/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 158934 2012-05-13 13:15:10Z thomas $ +# Maintainer: Thomas Bächler <thomas@archlinux.org> + +pkgname=iw +pkgver=3.4 +pkgrel=1 +pkgdesc="nl80211 based CLI configuration utility for wireless devices" +arch=("i686" "x86_64") +url="http://wireless.kernel.org/en/users/Documentation/iw" +license=("GPL") +depends=("libnl") +makedepends=("kernel-headers") +source=(http://wireless.kernel.org/download/$pkgname/$pkgname-$pkgver.tar.bz2) +sha256sums=('989b5677588e32de6eda97bf978810b366a7620f78f26f9cc61c15bdb434218a') + +build() { + cd "$srcdir"/$pkgname-$pkgver + make +} + +package() { + cd "$srcdir"/$pkgname-$pkgver + make DESTDIR="$pkgdir" install +} diff --git a/testing/libnl/PKGBUILD b/testing/libnl/PKGBUILD new file mode 100644 index 000000000..461397764 --- /dev/null +++ b/testing/libnl/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 158932 2012-05-13 13:10:53Z thomas $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: William Rea <sillywilly@gmail.com> + +pkgname=libnl +pkgver=3.2.9 +pkgrel=1 +pkgdesc="Library for applications dealing with netlink sockets" +arch=(i686 x86_64) +url="http://www.infradead.org/~tgr/libnl/" +license=(GPL) +depends=(glibc) +backup=(etc/libnl/classid etc/libnl/pktloc) +options=(!libtool) +source=("$url/files/$pkgname-$pkgver.tar.gz") +sha256sums=('9f23e9460bd9bb7fbe09af5eb281e4a43a26fa245ea864ed5e28fe4e8118af63') + +build() { + cd "$srcdir/$pkgname-$pkgver" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --sbindir=/usr/bin \ + --disable-static + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + make DESTDIR="$pkgdir" install +} |