diff options
Diffstat (limited to 'testing')
55 files changed, 4131 insertions, 133 deletions
diff --git a/testing/binutils/PKGBUILD b/testing/binutils/PKGBUILD index 334350114..9edcd567b 100644 --- a/testing/binutils/PKGBUILD +++ b/testing/binutils/PKGBUILD @@ -1,45 +1,34 @@ -# $Id: PKGBUILD 165241 2012-08-14 08:30:05Z allan $ +# $Id: PKGBUILD 169653 2012-10-25 03:29:55Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc pkgname=binutils -pkgver=2.22 -pkgrel=10 -_date=20120323 +pkgver=2.23 +pkgrel=1 pkgdesc="A set of programs to assemble and manipulate binary and object files" arch=('i686' 'x86_64') url="http://www.gnu.org/software/binutils/" license=('GPL') groups=('base-devel') depends=('glibc>=2.16' 'zlib') -checkdepends=('dejagnu') +checkdepends=('dejagnu' 'bc') options=('!libtool' '!distcc' '!ccache') install=binutils.install -source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2) -md5sums=('de2ac4298732827f8af706fc24020330') - -mksource() { - mkdir ${pkgname}-${_date} - cd ${pkgname}-${_date} - export _TAG=binutils-2_22-branch - export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src' - cvs -z9 co -r $_TAG binutils || return 1 - mv src binutils - tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/* -} +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig}) +md5sums=('6e6c85eb4468501051ae209c9e2a7ecc' + '46ca898c6c7ab8f35c676a965c7ce804') build() { cd ${srcdir} mkdir binutils-build && cd binutils-build - [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib" - - ${srcdir}/binutils/configure --prefix=/usr \ + ${srcdir}/binutils-${pkgver}/configure --prefix=/usr \ --with-lib-path=/usr/lib:/usr/local/lib \ + --with-bugurl=https://bugs.archlinux.org/ \ --enable-ld=default --enable-gold \ - --enable-plugins --enable-threads \ - --enable-shared $CONFIGFLAG + --enable-plugins --enable-threads --enable-shared \ + --disable-werror --disable-multilib # check the host environment and makes sure all the necessary tools are available make configure-host @@ -65,11 +54,10 @@ build() { check() { cd ${srcdir}/binutils-build - + + # unset LDFLAGS as testsuite makes assumptions about which ones are active # do not abort on errors - manually check log files - # gold testsuite does not build with _FORTIFY_SOURCE (due to -O0 -Werror) - make CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=2/}" \ - CXXFLAGS="${CXXFLAGS/-D_FORTIFY_SOURCE=2/}" -k check || true + make LDFLAGS="" -k check || true } package() { @@ -77,8 +65,8 @@ package() { make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install # Add some useful headers - install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include - install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include + install -m644 ${srcdir}/binutils-${pkgver}/include/libiberty.h ${pkgdir}/usr/include + install -m644 ${srcdir}/binutils-${pkgver}/include/demangle.h ${pkgdir}/usr/include # install libraries rebuilt with -fPIC install -m644 libiberty-pic/libiberty.a ${pkgdir}/usr/lib @@ -86,11 +74,11 @@ package() { install -m644 opcodes/libopcodes.a ${pkgdir}/usr/lib # Remove Windows/Novell specific man pages - rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* + rm ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}* # Remove these symlinks, they are not ABI stable. # Programs should compile static to the .a file. - rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so + rm ${pkgdir}/usr/lib/lib{bfd,opcodes}.so echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so } diff --git a/testing/bzflag/PKGBUILD b/testing/bzflag/PKGBUILD index 6bfbcb8af..1a71d13a7 100644 --- a/testing/bzflag/PKGBUILD +++ b/testing/bzflag/PKGBUILD @@ -1,17 +1,18 @@ -# $Id: PKGBUILD 168265 2012-10-07 09:47:30Z bisson $ +# $Id: PKGBUILD 169629 2012-10-25 01:34:46Z eric $ # Contributor: Damir Perisa <damir.perisa@bluewin.ch> # Contributor: Kevin Piche <kevin@archlinux.org> # Maintainer: Gaetan Bisson <bisson@archlinux.org> pkgname=bzflag pkgver=2.4.2 -pkgrel=1 +pkgrel=2 pkgdesc='Multiplayer 3D tank battle game' url='http://bzflag.org/' license=('LGPL') options=('!libtool') arch=('i686' 'x86_64') depends=('curl' 'glew' 'glu' 'sdl') +makedepends=('mesa') # glu requires <GL/gl.h> source=("http://downloads.sourceforge.net/project/bzflag/bzflag%20source/${pkgver}/bzflag-${pkgver}.tar.bz2") sha1sums=('36c67c0734a1318b34b39ed0da49606e05ebd291') diff --git a/testing/calligra/PKGBUILD b/testing/calligra/PKGBUILD index d0687504f..b13b0e265 100644 --- a/testing/calligra/PKGBUILD +++ b/testing/calligra/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 169330 2012-10-19 14:58:30Z andrea $ +# $Id: PKGBUILD 169630 2012-10-25 01:34:49Z eric $ # Maintainer: Ronald van Haren <ronald.archlinux.org> # Maintainer: Andrea Scarpino <andrea@archlinux.org> @@ -18,7 +18,7 @@ pkgname=('calligra-filters' 'calligra-braindump' 'calligra-flow') pkgver=2.5.3 -pkgrel=5 +pkgrel=6 arch=('i686' 'x86_64') url='http://www.calligra-suite.org/' license=('FDL1.2' 'GPL2' 'LGPL') diff --git a/testing/cinepaint/PKGBUILD b/testing/cinepaint/PKGBUILD index d207cea74..3dea42c8a 100644 --- a/testing/cinepaint/PKGBUILD +++ b/testing/cinepaint/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 161639 2012-06-12 18:43:54Z andyrtr $ +# $Id: PKGBUILD 169631 2012-10-25 01:34:53Z eric $ # Maintainer: tobias [tobias.archlinux.org] # Contributor: tobias [tobias.justdreams.de] pkgname=cinepaint pkgver=1.3 -pkgrel=2 +pkgrel=5 pkgdesc="Sophisticated graphics manipulation programm supporting > 8bit pictures" arch=('i686' 'x86_64') license=('LGPL' 'GPL' 'MIT') url="http://www.cinepaint.org" depends=('gtk2' 'openexr' 'lcms' 'libxpm' 'fltk' 'ftgl' 'libxxf86vm') -makedepends=('python2' 'gutenprint>=5.2.8') +makedepends=('python2' 'gutenprint>=5.2.9') optdepends=('python2: for python plug-ins' 'gutenprint: for print plug-ins' 'ghostscript: for pdf plug-ins') diff --git a/testing/coreutils/PKGBUILD b/testing/coreutils/PKGBUILD index eb99af572..b8cd14275 100644 --- a/testing/coreutils/PKGBUILD +++ b/testing/coreutils/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 166163 2012-09-05 01:16:34Z dreisner $ +# $Id: PKGBUILD 169602 2012-10-24 07:58:11Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=coreutils -pkgver=8.19 +pkgver=8.20 pkgrel=1 pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system" arch=('i686' 'x86_64') @@ -13,8 +13,8 @@ groups=('base') depends=('glibc' 'pam' 'acl' 'gmp' 'libcap') install=${pkgname}.install source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}) -md5sums=('1a01231a2f3ed37c0efc073ccdda9375' - '7f564749d834397aa67f0f05bacb62d5') +md5sums=('3d69af8f561fce512538a9fe85f147ff' + '7e6076e4e0961d24c38cf8685efca35b') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/testing/dvdauthor/PKGBUILD b/testing/dvdauthor/PKGBUILD new file mode 100644 index 000000000..05058218d --- /dev/null +++ b/testing/dvdauthor/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 169632 2012-10-25 01:34:55Z eric $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Travis Willard <travisw@wmpub.ca> +# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com> +# Contributor: Nicolai Lissner <nlissne@linux01.gwdg.de> + +pkgname=dvdauthor +pkgver=0.7.1 +pkgrel=2 +pkgdesc="DVD authoring tools" +arch=('i686' 'x86_64') +url="http://dvdauthor.sourceforge.net/" +license=('GPL') +depends=('libdvdread' 'imagemagick' 'libxml2' 'libpng' 'fribidi') +options=('!makeflags') +source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz") +md5sums=('2694a5a3ef460106ea3caf0f7f60ff80') + +build() { + cd "${srcdir}/${pkgname}" + + ./configure --prefix=/usr \ + --sysconfdir=/etc + make +} + +package() { + cd "${srcdir}/${pkgname}" + + make DESTDIR="${pkgdir}" install +} diff --git a/testing/dvdauthor/dvdauthor-0.7.0-libpng15.patch b/testing/dvdauthor/dvdauthor-0.7.0-libpng15.patch new file mode 100644 index 000000000..2bb636380 --- /dev/null +++ b/testing/dvdauthor/dvdauthor-0.7.0-libpng15.patch @@ -0,0 +1,19 @@ +--- src/spuunmux.c ++++ src/spuunmux.c +@@ -39,6 +39,7 @@ + #include <netinet/in.h> + + #include <png.h> ++#include <zlib.h> + + #include "rgb.h" + #include "common.h" +@@ -610,7 +611,7 @@ + png_destroy_write_struct(&png_ptr, (png_infopp)NULL); + return -1; + } /*if*/ +- if (setjmp(png_ptr->jmpbuf)) ++ if (setjmp(png_jmpbuf(png_ptr))) + { + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(fp); diff --git a/testing/emacs/PKGBUILD b/testing/emacs/PKGBUILD new file mode 100644 index 000000000..a31a7259a --- /dev/null +++ b/testing/emacs/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 169633 2012-10-25 01:34:57Z eric $ +# Maintainer: Juergen Hoetzel <juergen@archlinux.org> +# Contributor: Renchi Raju <renchi@green.tam.uiuc.edu> + +pkgname=emacs +pkgver=24.2 +pkgrel=2 +pkgdesc="The extensible, customizable, self-documenting real-time display editor" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/emacs/emacs.html" +license=('GPL3') +depends=('librsvg' 'gpm' 'giflib' 'libxpm' 'libotf' 'm17n-lib' 'gtk3' 'hicolor-icon-theme' 'gconf' 'desktop-file-utils' 'alsa-lib' 'imagemagick') +install=emacs.install +source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$pkgver.tar.bz2{,.sig}) +md5sums=('1676803a50e8adc817fdaaebb9234f14' 'ca1766337f419ef827dd96d1ff78f158') + + +build() { + cd "$srcdir"/$pkgname-$pkgver + ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \ + --localstatedir=/var --with-x-toolkit=gtk3 --with-xft + make +} + +package() { + cd "$srcdir"/$pkgname-$pkgver + make DESTDIR="$pkgdir" install + + # remove conflict with ctags package + mv "$pkgdir"/usr/bin/{ctags,ctags.emacs} + mv "$pkgdir"/usr/share/man/man1/{ctags.1.gz,ctags.emacs.1} + # fix all the 777 perms on directories + find "$pkgdir"/usr/share/emacs/$_majorver -type d -exec chmod 755 {} \; + # fix user/root permissions on usr/share files + find "$pkgdir"/usr/share/emacs/$_majorver -exec chown root:root {} \; + # fix perms on /var/games + chmod 775 "$pkgdir"/var/games + chmod 775 "$pkgdir"/var/games/emacs + chmod 664 "$pkgdir"/var/games/emacs/* + chown -R root:games "$pkgdir"/var/games +} diff --git a/testing/emacs/emacs.install b/testing/emacs/emacs.install new file mode 100644 index 000000000..d84f1de14 --- /dev/null +++ b/testing/emacs/emacs.install @@ -0,0 +1,32 @@ +ICON_PATH=usr/share/icons/hicolor +INFO_DIR=usr/share/info + +INFO_FILES=(ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse +ede ediff edt efaq eieio eintr elisp emacs emacs-mime epa erc eshell eudc flymake +forms gnus idlwave info mairix-el message mh-e newsticker nxml-mode +org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve smtpmail +speedbar tramp url vip viper widget woman) + +post_install() { + gtk-update-icon-cache -q -t -f ${ICON_PATH} + update-desktop-database -q + + [[ -x usr/bin/install-info ]] || return 0 + for f in ${INFO_FILES[@]}; do + install-info ${INFO_DIR}/$f.gz ${INFO_DIR}/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + gtk-update-icon-cache -q -t -f ${ICON_PATH} + update-desktop-database -q + + [[ -x usr/bin/install-info ]] || return 0 + for f in ${INFO_FILES[@]}; do + install-info --delete ${INFO_DIR}/$f.gz ${INFO_DIR}/dir 2> /dev/null + done +} diff --git a/testing/enblend-enfuse/PKGBUILD b/testing/enblend-enfuse/PKGBUILD index 51fd36e14..0f3dd0551 100644 --- a/testing/enblend-enfuse/PKGBUILD +++ b/testing/enblend-enfuse/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 164280 2012-07-29 21:08:21Z eric $ +# $Id: PKGBUILD 169634 2012-10-25 01:34:59Z eric $ # Maintainer: tobias <tobias@archlinux.org> # Contributor: Dominik Ryba <domryba@post.pl> pkgname=enblend-enfuse pkgver=4.0 -pkgrel=6 +pkgrel=8 pkgdesc="Intelligent blend tool for overlapping picture" arch=("i686" "x86_64") license=('GPL') url="http://enblend.sourceforge.net" depends=('openexr' 'glew' 'libxmi' 'freeglut' 'lcms' 'libpng' 'boost-libs') -makedepends=('boost') +makedepends=('boost' 'mesa') replaces=('enblend') conflicts=('enblend') provides=('enblend') diff --git a/testing/fyre/PKGBUILD b/testing/fyre/PKGBUILD new file mode 100644 index 000000000..4e0b82218 --- /dev/null +++ b/testing/fyre/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 169635 2012-10-25 01:35:01Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> + +pkgname=fyre +pkgver=1.0.1 +pkgrel=6 +pkgdesc="Rendering of the Peter de Jong map" +arch=('i686' 'x86_64') +url="http://fyre.navi.cx/" +license=('GPL') +depends=('openexr' 'libglade' 'gnet' 'shared-mime-info' 'hicolor-icon-theme' 'desktop-file-utils') +install=fyre.install +source=(http://releases.navi.cx/fyre/fyre-${pkgver}.tar.bz2) +sha1sums=('41c0ec45eff16cc1bba081c5c855a3980e404835') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make update_xdgmime=/bin/false update_fdodesktop=/bin/false gtk_update_icon_cache=/bin/false \ + prefix="${pkgdir}/usr" install +} diff --git a/testing/fyre/fyre.install b/testing/fyre/fyre.install new file mode 100644 index 000000000..388efbb11 --- /dev/null +++ b/testing/fyre/fyre.install @@ -0,0 +1,13 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + update-mime-database usr/share/mime &> /dev/null + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD index 331627a12..993e23ea6 100644 --- a/testing/gcc/PKGBUILD +++ b/testing/gcc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 168263 2012-10-07 08:55:23Z allan $ +# $Id: PKGBUILD 169654 2012-10-25 03:35:23Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -6,24 +6,21 @@ pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go') pkgver=4.7.2 -pkgrel=1 +pkgrel=2 #_snapshot=4.7-20120721 -_libstdcppmanver=20120924 # Note: check source directory name when updating this pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'FDL' 'custom') url="http://gcc.gnu.org" -makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada') +makedepends=('binutils>=2.23' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'doxygen') checkdepends=('dejagnu') options=('!libtool' '!emptydirs') source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2 - ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2 gcc_pure64.patch gcc-4.7.1-libada-pic.patch gcc-4.7.1-libgo-write.patch) md5sums=('cc308a0891e778cfda7a151ab8a6e762' - '7f3d52515daafffb57c287f427381106' 'ced48436c1b3c981d721a829f1094de1' '2acbc9d35cc9d72329dc71d6b1f162ef' 'df82dd175ac566c8a6d46b11ac21f14c') @@ -78,10 +75,14 @@ build() { --disable-build-with-cxx --disable-build-poststage1-with-cxx \ --enable-checking=release make + + # make documentation + cd $CHOST/libstdc++-v3 + make doc-man-doxygen } check() { - cd gcc-build + cd ${srcdir}/gcc-build # increase stack size to prevent test failures # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827 @@ -99,7 +100,7 @@ package_gcc-libs() depends=('glibc>=2.16') install=gcc-libs.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared for lib in libmudflap libgomp libstdc++-v3/src libitm; do make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES @@ -126,11 +127,11 @@ package_gcc-libs() package_gcc() { pkgdesc="The GNU Compiler Collection - C and C++ frontends" - depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' 'cloog' 'ppl') + depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.23' 'libmpc' 'cloog' 'ppl') groups=('base-devel') install=gcc.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=${pkgdir} install @@ -186,8 +187,8 @@ EOF # install the libstdc++ man pages install -dm755 ${pkgdir}/usr/share/man/man3 - install -m644 ${srcdir}/libstdc++-api.${_libstdcppmanver}.man/man3/* \ - ${pkgdir}/usr/share/man/man3/ + install -m644 -t ${pkgdir}/usr/share/man/man3 \ + ${CHOST}/libstdc++-v3/doc/doxygen/man/man3/*.3 # Install Runtime Library Exception install -Dm644 ${_basedir}/COPYING.RUNTIME \ @@ -200,7 +201,7 @@ package_gcc-fortran() depends=("gcc=$pkgver-$pkgrel") install=gcc-fortran.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=${pkgdir} install-target-libquadmath make -j1 DESTDIR=$pkgdir install-target-libgfortran make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS @@ -223,7 +224,7 @@ package_gcc-objc() pkgdesc="Objective-C front-end for GCC" depends=("gcc=$pkgver-$pkgrel") - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=$pkgdir install-target-libobjc install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ @@ -242,7 +243,7 @@ package_gcc-ada() depends=("gcc=$pkgver-$pkgrel") install=gcc-ada.install - cd gcc-build/gcc + cd ${srcdir}/gcc-build/gcc make -j1 DESTDIR=$pkgdir ada.install-{common,info} install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver @@ -259,7 +260,7 @@ package_gcc-go() depends=("gcc=$pkgver-$pkgrel") install=gcc-go.install - cd gcc-build + cd ${srcdir}/gcc-build make -j1 DESTDIR=$pkgdir install-target-libgo make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info} install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1 diff --git a/testing/gegl/PKGBUILD b/testing/gegl/PKGBUILD index af0262d65..c9f3a38cf 100644 --- a/testing/gegl/PKGBUILD +++ b/testing/gegl/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 163057 2012-07-06 15:21:11Z ibiru $ +# $Id: PKGBUILD 169636 2012-10-25 01:35:02Z eric $ # Maintainer: Daniel Isenmann <daniel@archlinux.org> pkgname=gegl pkgver=0.2.0 -pkgrel=2 +pkgrel=5 pkgdesc="Graph based image processing framework" arch=('i686' 'x86_64') url="http://www.gegl.org/" @@ -15,11 +15,13 @@ optdepends=('openexr: for using the openexr plugin' \ 'librsvg: for using the svg plugin' \ 'jasper: for using the jasper plugin') options=('!libtool') -source=(ftp://ftp.gimp.org/pub/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2) -sha1sums=('764cc66cb3c7b261b8fc18a6268a0e264a91d573') +source=(ftp://ftp.gimp.org/pub/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 gegl-0.2.0-ffmpeg-0.11.diff) +sha1sums=('764cc66cb3c7b261b8fc18a6268a0e264a91d573' + 'c10fd988c634fcf0948cc91a51d6528f6f1704ba') build() { cd "${srcdir}/${pkgname}-${pkgver}" + patch -p1 < "${srcdir}/gegl-0.2.0-ffmpeg-0.11.diff" ./configure --prefix=/usr --with-sdl --with-openexr --with-librsvg \ --with-libavformat --with-jasper --disable-docs make diff --git a/testing/gegl/gegl-0.2.0-ffmpeg-0.11.diff b/testing/gegl/gegl-0.2.0-ffmpeg-0.11.diff new file mode 100644 index 000000000..a33ec6f7f --- /dev/null +++ b/testing/gegl/gegl-0.2.0-ffmpeg-0.11.diff @@ -0,0 +1,12 @@ +diff -Naur gegl-0.2.0/operations/external/ff-load.c gegl-0.2.0-1/operations/external/ff-load.c +--- gegl-0.2.0/operations/external/ff-load.c 2012-04-01 13:17:57.000000000 +0200 ++++ gegl-0.2.0-1/operations/external/ff-load.c 2012-07-11 12:42:05.174756560 +0200 +@@ -271,7 +271,7 @@ + gint err; + + ff_cleanup (o); +- err = av_open_input_file (&p->ic, o->path, NULL, 0, NULL); ++err = avformat_open_input (&p->ic, o->path, NULL, NULL); + if (err < 0) + { + print_error (o->path, err); diff --git a/testing/glew/PKGBUILD b/testing/glew/PKGBUILD index fe8b9d925..a644afaaf 100644 --- a/testing/glew/PKGBUILD +++ b/testing/glew/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 168296 2012-10-08 03:48:49Z eric $ +# $Id: PKGBUILD 169637 2012-10-25 01:35:04Z eric $ # Maintainer: Stéphane Gaudreault <stephane@archlinux.org> # Contributor: SleepyDog pkgname=glew -pkgver=1.8.0 -pkgrel=2 +pkgver=1.9.0 +pkgrel=1 pkgdesc="The OpenGL Extension Wrangler Library" arch=('i686' 'x86_64') url="http://glew.sourceforge.net" license=('BSD' 'MIT' 'GPL') depends=('libxmu' 'libxi' 'glu') source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tgz) -sha1sums=('641c6bb3f924ec786e1e6cf2b1b230f594e0f0e4') +sha1sums=('9291f5c5afefd482c7f3e91ffb3cd4716c6c9ffe') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD index 6dc93f31e..0d8b274be 100644 --- a/testing/glibc/PKGBUILD +++ b/testing/glibc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 165242 2012-08-14 08:31:14Z allan $ +# $Id: PKGBUILD 169652 2012-10-25 03:25:47Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -6,7 +6,7 @@ pkgname=glibc pkgver=2.16.0 -pkgrel=3 +pkgrel=5 pkgdesc="GNU C Library" arch=('i686' 'x86_64') url="http://www.gnu.org/software/libc" @@ -21,8 +21,12 @@ options=('!strip') install=glibc.install source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig} glibc-2.15-fix-res_query-assert.patch - glibc-2.15-revert-c5a0802a.patch + glibc-2.16-unlock-mutex.patch glibc-2.16-rpcgen-cpp-path.patch + glibc-2.16-strncasecmp-segfault.patch + glibc-2.16-strtod-overflow.patch + glibc-2.16-detect-fma.patch + glibc-2.16-glob-use-size_t.patch nscd.rcd nscd.service nscd.tmpfiles @@ -31,14 +35,19 @@ source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig} md5sums=('80b181b02ab249524ec92822c0174cf7' '2a1221a15575820751c325ef4d2fbb90' '31f415b41197d85d3bbee3d1eecd06a3' - '0a0383d50d63f1c02919fe9943b82014' + '0afcd8c6020d61684aba63ed5f26bd91' 'ea6a43915474e8276e9361eed6a01280' + 'f042d37cc8ca3459023431809039bc88' + '61d322f7681a85d3293ada5c3ccc2c7e' + '2426f593bc43f5499c41d21b57ee0e30' + 'a441353901992feda4b15a11a20140a1' '589d79041aa767a5179eaa4e2737dd3f' - 'ad8a9af15ab7eeaa23dc7ee85024af9f' + 'c1e07c0bec0fe89791bfd9d13fc85edf' 'bccbe5619e75cf1d97312ec3681c605c' '07ac979b6ab5eeb778d55f041529d623' '476e9113489f93b348b21e144b6a8fcf') + build() { cd ${srcdir}/${pkgname}-${pkgver} @@ -46,14 +55,33 @@ build() { # http://sourceware.org/bugzilla/show_bug.cgi?id=13013 patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch - # revert commit c5a0802a - causes various hangs - # https://bugzilla.redhat.com/show_bug.cgi?id=552960 - patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch + # prevent hang by locked mutex + # http://sourceware.org/git/?p=glibc.git;a=patch;h=c30e8edf + patch -p1 -i ${srcdir}/glibc-2.16-unlock-mutex.patch # prevent need for /lib/cpp symlink # http://sourceware.org/git/?p=glibc.git;a=commit;h=bf9b740a patch -p1 -i ${srcdir}/glibc-2.16-rpcgen-cpp-path.patch + # strncasecmp segfault on i686 + # http://sourceware.org/git/?p=glibc.git;a=commit;h=6db8f737 + patch -p1 -i ${srcdir}/glibc-2.16-strncasecmp-segfault.patch + + # strtod integer/buffer overflow + # http://sourceware.org/git/?p=glibc.git;a=commit;h=da1f4319 + patch -p1 -i ${srcdir}/glibc-2.16-strtod-overflow.patch + + # detect FMA supprt + # http://sourceware.org/git/?p=glibc.git;a=commit;h=a5cfcf08 + patch -p1 -i ${srcdir}/glibc-2.16-detect-fma.patch + + # prevent overflow in globc + # http://sourceware.org/git/?p=glibc.git;a=commit;h=6c62f108 + patch -p1 -i ${srcdir}/glibc-2.16-glob-use-size_t.patch + + # ldconfig does not need to look in /usr/lib64 or /usr/libx32 on Arch Linux + sed -i "s#add_system_dir#do_not_add_system_dir#" sysdeps/unix/sysv/linux/x86_64/dl-cache.h + cd ${srcdir} mkdir glibc-build cd glibc-build @@ -64,7 +92,7 @@ build() { export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" fi - echo "slibdir=/lib" >> configparms + echo "slibdir=/usr/lib" >> configparms # remove hardening options from CFLAGS for building libraries CFLAGS=${CFLAGS/-fstack-protector/} @@ -96,14 +124,12 @@ build() { check() { cd ${srcdir}/glibc-build - make -k check + make check } package() { cd ${srcdir}/glibc-build - ln -s usr/lib ${pkgdir}/lib - install -dm755 ${pkgdir}/etc touch ${pkgdir}/etc/ld.so.conf @@ -111,6 +137,9 @@ package() { rm -f ${pkgdir}/etc/ld.so.{cache,conf} + # eventually this will move to the filesystem package + ln -s usr/lib ${pkgdir}/lib + install -dm755 ${pkgdir}/{etc/rc.d,usr/{sbin,lib/{,locale,systemd/system,tmpfiles.d}}} install -m644 ${srcdir}/${pkgname}-${pkgver}/nscd/nscd.conf ${pkgdir}/etc/nscd.conf diff --git a/testing/glibc/glibc-2.16-detect-fma.patch b/testing/glibc/glibc-2.16-detect-fma.patch new file mode 100644 index 000000000..daffb9768 --- /dev/null +++ b/testing/glibc/glibc-2.16-detect-fma.patch @@ -0,0 +1,72 @@ +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index fb44dcf..fed5ab8 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -156,6 +156,9 @@ __init_cpu_features (void) + /* Determine if AVX is usable. */ + if (CPUID_AVX) + __cpu_features.feature[index_AVX_Usable] |= bit_AVX_Usable; ++ /* Determine if FMA is usable. */ ++ if (CPUID_FMA) ++ __cpu_features.feature[index_FMA_Usable] |= bit_FMA_Usable; + /* Determine if FMA4 is usable. */ + if (CPUID_FMA4) + __cpu_features.feature[index_FMA4_Usable] |= bit_FMA4_Usable; +diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h +index 45e2651..f33f1c8 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.h ++++ b/sysdeps/x86_64/multiarch/init-arch.h +@@ -22,7 +22,8 @@ + #define bit_Fast_Unaligned_Load (1 << 4) + #define bit_Prefer_PMINUB_for_stringop (1 << 5) + #define bit_AVX_Usable (1 << 6) +-#define bit_FMA4_Usable (1 << 7) ++#define bit_FMA_Usable (1 << 7) ++#define bit_FMA4_Usable (1 << 8) + + /* CPUID Feature flags. */ + #define bit_SSE2 (1 << 26) +@@ -56,6 +57,7 @@ + # define index_Fast_Unaligned_Load FEATURE_INDEX_1*FEATURE_SIZE + # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE + # define index_AVX_Usable FEATURE_INDEX_1*FEATURE_SIZE ++# define index_FMA_Usable FEATURE_INDEX_1*FEATURE_SIZE + # define index_FMA4_Usable FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ +@@ -131,6 +133,8 @@ extern const struct cpu_features *__get_cpu_features (void) + HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_OSXSAVE) + # define CPUID_AVX \ + HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_AVX) ++# define CPUID_FMA \ ++ HAS_CPUID_FLAG (COMMON_CPUID_INDEX_1, ecx, bit_FMA) + # define CPUID_FMA4 \ + HAS_CPUID_FLAG (COMMON_CPUID_INDEX_80000001, ecx, bit_FMA4) + +@@ -140,7 +144,6 @@ extern const struct cpu_features *__get_cpu_features (void) + # define HAS_SSSE3 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSSE3) + # define HAS_SSE4_1 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_1) + # define HAS_SSE4_2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_SSE4_2) +-# define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, bit_FMA) + + # define index_Fast_Rep_String FEATURE_INDEX_1 + # define index_Fast_Copy_Backward FEATURE_INDEX_1 +@@ -148,6 +151,7 @@ extern const struct cpu_features *__get_cpu_features (void) + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 + # define index_Fast_Unaligned_Load FEATURE_INDEX_1 + # define index_AVX_Usable FEATURE_INDEX_1 ++# define index_FMA_Usable FEATURE_INDEX_1 + # define index_FMA4_Usable FEATURE_INDEX_1 + + # define HAS_ARCH_FEATURE(name) \ +@@ -159,6 +163,7 @@ extern const struct cpu_features *__get_cpu_features (void) + # define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop) + # define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load) + # define HAS_AVX HAS_ARCH_FEATURE (AVX_Usable) ++# define HAS_FMA HAS_ARCH_FEATURE (FMA_Usable) + # define HAS_FMA4 HAS_ARCH_FEATURE (FMA4_Usable) + + #endif /* __ASSEMBLER__ */ +-- +1.7.3.4 + diff --git a/testing/glibc/glibc-2.16-glob-use-size_t.patch b/testing/glibc/glibc-2.16-glob-use-size_t.patch new file mode 100644 index 000000000..8c5df45be --- /dev/null +++ b/testing/glibc/glibc-2.16-glob-use-size_t.patch @@ -0,0 +1,52 @@ +diff --git a/posix/glob.c b/posix/glob.c +index 68ea205..87d4f1b 100644 +--- a/posix/glob.c ++++ b/posix/glob.c +@@ -217,7 +217,7 @@ static int collated_compare (const void *, const void *) __THROW; + static const char * + next_brace_sub (const char *cp, int flags) + { +- unsigned int depth = 0; ++ size_t depth = 0; + while (*cp != '\0') + if ((flags & GLOB_NOESCAPE) == 0 && *cp == '\\') + { +@@ -960,7 +960,7 @@ glob (pattern, flags, errfunc, pglob) + && S_ISDIR (st.st_mode)) + : (__stat64 (dirname, &st64) == 0 && S_ISDIR (st64.st_mode))))) + { +- int newcount = pglob->gl_pathc + pglob->gl_offs; ++ size_t newcount = pglob->gl_pathc + pglob->gl_offs; + char **new_gl_pathv; + + if (newcount > UINTPTR_MAX - (1 + 1) +@@ -1059,7 +1059,7 @@ glob (pattern, flags, errfunc, pglob) + appending the results to PGLOB. */ + for (i = 0; i < dirs.gl_pathc; ++i) + { +- int old_pathc; ++ size_t old_pathc; + + #ifdef SHELL + { +@@ -1114,7 +1114,7 @@ glob (pattern, flags, errfunc, pglob) + /* No matches. */ + if (flags & GLOB_NOCHECK) + { +- int newcount = pglob->gl_pathc + pglob->gl_offs; ++ size_t newcount = pglob->gl_pathc + pglob->gl_offs; + char **new_gl_pathv; + + if (newcount > UINTPTR_MAX - 2 +@@ -1158,7 +1158,7 @@ glob (pattern, flags, errfunc, pglob) + } + else + { +- int old_pathc = pglob->gl_pathc; ++ size_t old_pathc = pglob->gl_pathc; + int orig_flags = flags; + + if (meta & 2) +-- +1.7.3.4 + diff --git a/testing/glibc/glibc-2.16-strncasecmp-segfault.patch b/testing/glibc/glibc-2.16-strncasecmp-segfault.patch new file mode 100644 index 000000000..ce91bbe82 --- /dev/null +++ b/testing/glibc/glibc-2.16-strncasecmp-segfault.patch @@ -0,0 +1,65 @@ +diff --git a/string/test-strncasecmp.c b/string/test-strncasecmp.c +index 6c17530..acfe668 100644 +--- a/string/test-strncasecmp.c ++++ b/string/test-strncasecmp.c +@@ -1,5 +1,5 @@ + /* Test and measure strncasecmp functions. +- Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. ++ Copyright (C) 1999-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Jakub Jelinek <jakub@redhat.com>, 1999. + +@@ -251,9 +251,9 @@ do_random_tests (void) + } + } + +- ++/* Regression test for BZ #12205 */ + static void +-check1 (void) ++bz12205 (void) + { + static char cp [4096+16] __attribute__ ((aligned(4096))); + static char gotrel[4096] __attribute__ ((aligned(4096))); +@@ -270,6 +270,15 @@ check1 (void) + check_result (impl, s1, s2, n, exp_result); + } + ++/* Regression test for BZ #14195 */ ++static void ++bz14195 (void) ++{ ++ const char *empty_string = ""; ++ FOR_EACH_IMPL (impl, 0) ++ check_result (impl, empty_string, "", 5, 0); ++} ++ + int + test_main (void) + { +@@ -277,7 +286,8 @@ test_main (void) + + test_init (); + +- check1 (); ++ bz12205 (); ++ bz14195 (); + + printf ("%23s", ""); + FOR_EACH_IMPL (impl, 0) +diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +index 5e6321e..9735ad0 100644 +--- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S ++++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +@@ -2445,7 +2445,7 @@ L(less16bytes_sncmp): + # endif + jne L(neq_sncmp) + test %cl, %cl +- je L(eq) ++ je L(eq_sncmp) + + cmp $1, REM + je L(eq_sncmp) +-- +1.7.3.4 + diff --git a/testing/glibc/glibc-2.16-strtod-overflow.patch b/testing/glibc/glibc-2.16-strtod-overflow.patch new file mode 100644 index 000000000..526296325 --- /dev/null +++ b/testing/glibc/glibc-2.16-strtod-overflow.patch @@ -0,0 +1,389 @@ +diff --git a/stdlib/Makefile b/stdlib/Makefile +index f7811c5..79c9acb 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -68,7 +68,8 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ + tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ + tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ + tst-makecontext2 tst-strtod6 tst-unsetenv1 \ +- tst-makecontext3 bug-getcontext bug-fmtmsg1 ++ tst-makecontext3 bug-getcontext bug-fmtmsg1 \ ++ tst-strtod-overflow + + include ../Makeconfig + +diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c +index 2166a08..a8a7ea8 100644 +--- a/stdlib/strtod_l.c ++++ b/stdlib/strtod_l.c +@@ -60,6 +60,7 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **, + #include <math.h> + #include <stdlib.h> + #include <string.h> ++#include <stdint.h> + + /* The gmp headers need some configuration frobs. */ + #define HAVE_ALLOCA 1 +@@ -72,7 +73,6 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **, + #include "longlong.h" + #include "fpioconst.h" + +-#define NDEBUG 1 + #include <assert.h> + + +@@ -174,19 +174,19 @@ extern const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1]; + /* Return a floating point number of the needed type according to the given + multi-precision number after possible rounding. */ + static FLOAT +-round_and_return (mp_limb_t *retval, int exponent, int negative, ++round_and_return (mp_limb_t *retval, intmax_t exponent, int negative, + mp_limb_t round_limb, mp_size_t round_bit, int more_bits) + { + if (exponent < MIN_EXP - 1) + { +- mp_size_t shift = MIN_EXP - 1 - exponent; +- +- if (shift > MANT_DIG) ++ if (exponent < MIN_EXP - 1 - MANT_DIG) + { + __set_errno (ERANGE); + return 0.0; + } + ++ mp_size_t shift = MIN_EXP - 1 - exponent; ++ + more_bits |= (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0; + if (shift == MANT_DIG) + /* This is a special case to handle the very seldom case where +@@ -233,6 +233,9 @@ round_and_return (mp_limb_t *retval, int exponent, int negative, + __set_errno (ERANGE); + } + ++ if (exponent > MAX_EXP) ++ goto overflow; ++ + if ((round_limb & (((mp_limb_t) 1) << round_bit)) != 0 + && (more_bits || (retval[0] & 1) != 0 + || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0)) +@@ -258,6 +261,7 @@ round_and_return (mp_limb_t *retval, int exponent, int negative, + } + + if (exponent > MAX_EXP) ++ overflow: + return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL; + + return MPN2FLOAT (retval, exponent, negative); +@@ -271,7 +275,7 @@ round_and_return (mp_limb_t *retval, int exponent, int negative, + factor for the resulting number (see code) multiply by it. */ + static const STRING_TYPE * + str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize, +- int *exponent ++ intmax_t *exponent + #ifndef USE_WIDE_CHAR + , const char *decimal, size_t decimal_len, const char *thousands + #endif +@@ -301,6 +305,7 @@ str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize, + cy += __mpn_add_1 (n, n, *nsize, low); + if (cy != 0) + { ++ assert (*nsize < MPNSIZE); + n[*nsize] = cy; + ++(*nsize); + } +@@ -335,7 +340,7 @@ str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize, + } + while (--digcnt > 0); + +- if (*exponent > 0 && cnt + *exponent <= MAX_DIG_PER_LIMB) ++ if (*exponent > 0 && *exponent <= MAX_DIG_PER_LIMB - cnt) + { + low *= _tens_in_limb[*exponent]; + start = _tens_in_limb[cnt + *exponent]; +@@ -355,7 +360,10 @@ str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize, + cy = __mpn_mul_1 (n, n, *nsize, start); + cy += __mpn_add_1 (n, n, *nsize, low); + if (cy != 0) +- n[(*nsize)++] = cy; ++ { ++ assert (*nsize < MPNSIZE); ++ n[(*nsize)++] = cy; ++ } + } + + return str; +@@ -413,7 +421,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + { + int negative; /* The sign of the number. */ + MPN_VAR (num); /* MP representation of the number. */ +- int exponent; /* Exponent of the number. */ ++ intmax_t exponent; /* Exponent of the number. */ + + /* Numbers starting `0X' or `0x' have to be processed with base 16. */ + int base = 10; +@@ -435,7 +443,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + /* Points at the character following the integer and fractional digits. */ + const STRING_TYPE *expp; + /* Total number of digit and number of digits in integer part. */ +- int dig_no, int_no, lead_zero; ++ size_t dig_no, int_no, lead_zero; + /* Contains the last character read. */ + CHAR_TYPE c; + +@@ -767,7 +775,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + are all or any is really a fractional digit will be decided + later. */ + int_no = dig_no; +- lead_zero = int_no == 0 ? -1 : 0; ++ lead_zero = int_no == 0 ? (size_t) -1 : 0; + + /* Read the fractional digits. A special case are the 'american + style' numbers like `16.' i.e. with decimal point but without +@@ -789,12 +797,13 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + (base == 16 && ({ CHAR_TYPE lo = TOLOWER (c); + lo >= L_('a') && lo <= L_('f'); }))) + { +- if (c != L_('0') && lead_zero == -1) ++ if (c != L_('0') && lead_zero == (size_t) -1) + lead_zero = dig_no - int_no; + ++dig_no; + c = *++cp; + } + } ++ assert (dig_no <= (uintmax_t) INTMAX_MAX); + + /* Remember start of exponent (if any). */ + expp = cp; +@@ -817,24 +826,80 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + + if (c >= L_('0') && c <= L_('9')) + { +- int exp_limit; ++ intmax_t exp_limit; + + /* Get the exponent limit. */ + if (base == 16) +- exp_limit = (exp_negative ? +- -MIN_EXP + MANT_DIG + 4 * int_no : +- MAX_EXP - 4 * int_no + 4 * lead_zero + 3); ++ { ++ if (exp_negative) ++ { ++ assert (int_no <= (uintmax_t) (INTMAX_MAX ++ + MIN_EXP - MANT_DIG) / 4); ++ exp_limit = -MIN_EXP + MANT_DIG + 4 * (intmax_t) int_no; ++ } ++ else ++ { ++ if (int_no) ++ { ++ assert (lead_zero == 0 ++ && int_no <= (uintmax_t) INTMAX_MAX / 4); ++ exp_limit = MAX_EXP - 4 * (intmax_t) int_no + 3; ++ } ++ else if (lead_zero == (size_t) -1) ++ { ++ /* The number is zero and this limit is ++ arbitrary. */ ++ exp_limit = MAX_EXP + 3; ++ } ++ else ++ { ++ assert (lead_zero ++ <= (uintmax_t) (INTMAX_MAX - MAX_EXP - 3) / 4); ++ exp_limit = (MAX_EXP ++ + 4 * (intmax_t) lead_zero ++ + 3); ++ } ++ } ++ } + else +- exp_limit = (exp_negative ? +- -MIN_10_EXP + MANT_DIG + int_no : +- MAX_10_EXP - int_no + lead_zero + 1); ++ { ++ if (exp_negative) ++ { ++ assert (int_no ++ <= (uintmax_t) (INTMAX_MAX + MIN_10_EXP - MANT_DIG)); ++ exp_limit = -MIN_10_EXP + MANT_DIG + (intmax_t) int_no; ++ } ++ else ++ { ++ if (int_no) ++ { ++ assert (lead_zero == 0 ++ && int_no <= (uintmax_t) INTMAX_MAX); ++ exp_limit = MAX_10_EXP - (intmax_t) int_no + 1; ++ } ++ else if (lead_zero == (size_t) -1) ++ { ++ /* The number is zero and this limit is ++ arbitrary. */ ++ exp_limit = MAX_10_EXP + 1; ++ } ++ else ++ { ++ assert (lead_zero ++ <= (uintmax_t) (INTMAX_MAX - MAX_10_EXP - 1)); ++ exp_limit = MAX_10_EXP + (intmax_t) lead_zero + 1; ++ } ++ } ++ } ++ ++ if (exp_limit < 0) ++ exp_limit = 0; + + do + { +- exponent *= 10; +- exponent += c - L_('0'); +- +- if (__builtin_expect (exponent > exp_limit, 0)) ++ if (__builtin_expect ((exponent > exp_limit / 10 ++ || (exponent == exp_limit / 10 ++ && c - L_('0') > exp_limit % 10)), 0)) + /* The exponent is too large/small to represent a valid + number. */ + { +@@ -843,7 +908,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + /* We have to take care for special situation: a joker + might have written "0.0e100000" which is in fact + zero. */ +- if (lead_zero == -1) ++ if (lead_zero == (size_t) -1) + result = negative ? -0.0 : 0.0; + else + { +@@ -862,6 +927,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + /* NOTREACHED */ + } + ++ exponent *= 10; ++ exponent += c - L_('0'); ++ + c = *++cp; + } + while (c >= L_('0') && c <= L_('9')); +@@ -930,7 +998,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + } + #endif + startp += lead_zero + decimal_len; +- exponent -= base == 16 ? 4 * lead_zero : lead_zero; ++ assert (lead_zero <= (base == 16 ++ ? (uintmax_t) INTMAX_MAX / 4 ++ : (uintmax_t) INTMAX_MAX)); ++ assert (lead_zero <= (base == 16 ++ ? ((uintmax_t) exponent ++ - (uintmax_t) INTMAX_MIN) / 4 ++ : ((uintmax_t) exponent - (uintmax_t) INTMAX_MIN))); ++ exponent -= base == 16 ? 4 * (intmax_t) lead_zero : (intmax_t) lead_zero; + dig_no -= lead_zero; + } + +@@ -972,7 +1047,10 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + } + + /* Adjust the exponent for the bits we are shifting in. */ +- exponent += bits - 1 + (int_no - 1) * 4; ++ assert (int_no <= (uintmax_t) (exponent < 0 ++ ? (INTMAX_MAX - bits + 1) / 4 ++ : (INTMAX_MAX - exponent - bits + 1) / 4)); ++ exponent += bits - 1 + ((intmax_t) int_no - 1) * 4; + + while (--dig_no > 0 && idx >= 0) + { +@@ -1024,13 +1102,15 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + really integer digits or belong to the fractional part; i.e. we normalize + 123e-2 to 1.23. */ + { +- register int incr = (exponent < 0 ? MAX (-int_no, exponent) +- : MIN (dig_no - int_no, exponent)); ++ register intmax_t incr = (exponent < 0 ++ ? MAX (-(intmax_t) int_no, exponent) ++ : MIN ((intmax_t) dig_no - (intmax_t) int_no, ++ exponent)); + int_no += incr; + exponent -= incr; + } + +- if (__builtin_expect (int_no + exponent > MAX_10_EXP + 1, 0)) ++ if (__builtin_expect (exponent > MAX_10_EXP + 1 - (intmax_t) int_no, 0)) + { + __set_errno (ERANGE); + return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL; +@@ -1215,7 +1295,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + digits we should have enough bits for the result. The remaining + decimal digits give us the information that more bits are following. + This can be used while rounding. (Two added as a safety margin.) */ +- if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 2) ++ if ((intmax_t) dig_no > (intmax_t) int_no + (MANT_DIG - bits + 2) / 3 + 2) + { + dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; + more_bits = 1; +@@ -1223,7 +1303,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + else + more_bits = 0; + +- neg_exp = dig_no - int_no - exponent; ++ neg_exp = (intmax_t) dig_no - (intmax_t) int_no - exponent; + + /* Construct the denominator. */ + densize = 0; +diff --git a/stdlib/tst-strtod-overflow.c b/stdlib/tst-strtod-overflow.c +new file mode 100644 +index 0000000..668d55b +--- /dev/null ++++ b/stdlib/tst-strtod-overflow.c +@@ -0,0 +1,48 @@ ++/* Test for integer/buffer overflow in strtod. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C 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.1 of the License, or (at your option) any later version. ++ ++ The GNU C 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 the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#define EXPONENT "e-2147483649" ++#define SIZE 214748364 ++ ++static int ++do_test (void) ++{ ++ char *p = malloc (1 + SIZE + sizeof (EXPONENT)); ++ if (p == NULL) ++ { ++ puts ("malloc failed, cannot test for overflow"); ++ return 0; ++ } ++ p[0] = '1'; ++ memset (p + 1, '0', SIZE); ++ memcpy (p + 1 + SIZE, EXPONENT, sizeof (EXPONENT)); ++ double d = strtod (p, NULL); ++ if (d != 0) ++ { ++ printf ("strtod returned wrong value: %a\n", d); ++ return 1; ++ } ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +-- +1.7.3.4 + diff --git a/testing/glibc/glibc-2.16-unlock-mutex.patch b/testing/glibc/glibc-2.16-unlock-mutex.patch new file mode 100644 index 000000000..0649d3642 --- /dev/null +++ b/testing/glibc/glibc-2.16-unlock-mutex.patch @@ -0,0 +1,775 @@ +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -206,7 +206,7 @@ tests = tst-typesizes \ + tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ + tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \ + tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \ +- tst-cond20 tst-cond21 tst-cond22 tst-cond23 \ ++ tst-cond20 tst-cond21 tst-cond22 tst-cond23 tst-cond24 \ + tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \ + tst-robust6 tst-robust7 tst-robust8 tst-robust9 \ + tst-robustpi1 tst-robustpi2 tst-robustpi3 tst-robustpi4 tst-robustpi5 \ +@@ -274,6 +275,7 @@ gen-as-const-headers = pthread-errnos.sym + + LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst + ++LDFLAGS-tst-cond24 = $(no-as-needed) -lrt + + include ../Makeconfig + +diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +index d14d7de..6761c13 100644 +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +@@ -212,8 +212,23 @@ __pthread_cond_timedwait: + sete 24(%esp) + je 41f + +- /* Normal and PI futexes dont mix. Use normal futex functions only +- if the kernel does not support the PI futex functions. */ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (24(%esp)) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN (barring ++ the ETIMEOUT of course, for the timeout case in futex) since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ + cmpl $-ENOSYS, %eax + jne 41f + xorl %ecx, %ecx +@@ -273,9 +288,24 @@ __pthread_cond_timedwait: + jne 9f + + 15: cmpl $-ETIMEDOUT, %esi +- jne 8b ++ je 28f ++ ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++ movl 24(%esp), %edx ++ test %edx, %edx ++ jz 8b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the mutex ++ correctly. */ ++ movl dep_mutex(%ebx), %eax ++ call __pthread_mutex_cond_lock_adjust ++ xorl %edx, %edx ++ call __pthread_mutex_unlock_usercnt ++ jmp 8b + +- addl $1, wakeup_seq(%ebx) ++28: addl $1, wakeup_seq(%ebx) + adcl $0, wakeup_seq+4(%ebx) + addl $1, cond_futex(%ebx) + movl $ETIMEDOUT, %esi +diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +index 366de69..0af06ac 100644 +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +@@ -136,7 +136,6 @@ __pthread_cond_wait: + cmpl $PI_BIT, %eax + jne 18f + +-90: + movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx + movl %ebp, %edx + xorl %esi, %esi +@@ -152,11 +151,22 @@ __pthread_cond_wait: + sete 16(%esp) + je 19f + +- cmpl $-EAGAIN, %eax +- je 91f +- +- /* Normal and PI futexes dont mix. Use normal futex functions only +- if the kernel does not support the PI futex functions. */ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (16(%esp)) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ + cmpl $-ENOSYS, %eax + jne 19f + xorl %ecx, %ecx +@@ -206,12 +216,12 @@ __pthread_cond_wait: + cmpl 8(%esp), %edx + jne 7f + cmpl 4(%esp), %edi +- je 8b ++ je 22f + + 7: cmpl %ecx, %edx + jne 9f + cmp %eax, %edi +- je 8b ++ je 22f + + 9: addl $1, woken_seq(%ebx) + adcl $0, woken_seq+4(%ebx) +@@ -287,6 +297,22 @@ __pthread_cond_wait: + jmp 20b + + cfi_adjust_cfa_offset(-FRAME_SIZE); ++ ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++22: movl 16(%esp), %edx ++ test %edx, %edx ++ jz 8b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the mutex ++ correctly. */ ++ movl dep_mutex(%ebx), %eax ++ call __pthread_mutex_cond_lock_adjust ++ xorl %edx, %edx ++ call __pthread_mutex_unlock_usercnt ++ jmp 8b ++ + /* Initial locking failed. */ + 1: + #if cond_lock == 0 +@@ -400,77 +426,6 @@ __pthread_cond_wait: + call __lll_unlock_wake + jmp 11b + +-91: +-.LcleanupSTART2: +- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to +- call it again. */ +- +- /* Get internal lock. */ +- movl $1, %edx +- xorl %eax, %eax +- LOCK +-#if cond_lock == 0 +- cmpxchgl %edx, (%ebx) +-#else +- cmpxchgl %edx, cond_lock(%ebx) +-#endif +- jz 92f +- +-#if cond_lock == 0 +- movl %ebx, %edx +-#else +- leal cond_lock(%ebx), %edx +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_lock_wait +- +-92: +- /* Increment the cond_futex value again, so it can be used as a new +- expected value. */ +- addl $1, cond_futex(%ebx) +- movl cond_futex(%ebx), %ebp +- +- /* Unlock. */ +- LOCK +-#if cond_lock == 0 +- subl $1, (%ebx) +-#else +- subl $1, cond_lock(%ebx) +-#endif +- je 93f +-#if cond_lock == 0 +- movl %ebx, %eax +-#else +- leal cond_lock(%ebx), %eax +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +- xorl %ecx, %ecx +-#endif +- cmpl $-1, dep_mutex(%ebx) +- setne %cl +- subl $1, %ecx +- andl $(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +- addl $LLL_PRIVATE, %ecx +-#endif +- call __lll_unlock_wake +- +-93: +- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ +- xorl %ecx, %ecx +- movl dep_mutex(%ebx), %edi +- jmp 90b +-.LcleanupEND2: +- + .size __pthread_cond_wait, .-__pthread_cond_wait + versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, + GLIBC_2_3_2) +@@ -651,10 +606,6 @@ __condvar_w_cleanup: + .long .LcleanupEND-.Lsub_cond_futex + .long __condvar_w_cleanup-.LSTARTCODE + .uleb128 0 +- .long .LcleanupSTART2-.LSTARTCODE +- .long .LcleanupEND2-.LcleanupSTART2 +- .long __condvar_w_cleanup-.LSTARTCODE +- .uleb128 0 + .long .LcallUR-.LSTARTCODE + .long .LENDCODE-.LcallUR + .long 0 +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +index a1c8ca8..b669abb 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -103,7 +103,7 @@ __pthread_cond_timedwait: + mov %RSI_LP, dep_mutex(%rdi) + + 22: +- xorl %r15d, %r15d ++ xorb %r15b, %r15b + + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef PIC +@@ -190,18 +190,39 @@ __pthread_cond_timedwait: + movl $SYS_futex, %eax + syscall + +- movl $1, %r15d ++ cmpl $0, %eax ++ sete %r15b ++ + #ifdef __ASSUME_REQUEUE_PI + jmp 62f + #else +- cmpq $-4095, %rax +- jnae 62f ++ je 62f ++ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (%r15b) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN (barring ++ the ETIMEOUT of course, for the timeout case in futex) since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ ++ cmpl $-ENOSYS, %eax ++ jne 62f + + subq $cond_futex, %rdi + #endif + + 61: movl $(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi +-60: xorl %r15d, %r15d ++60: xorb %r15b, %r15b + xorl %eax, %eax + /* The following only works like this because we only support + two clocks, represented using a single bit. */ +@@ -248,7 +269,23 @@ __pthread_cond_timedwait: + ja 39f + + 45: cmpq $-ETIMEDOUT, %r14 +- jne 38b ++ je 99f ++ ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++ test %r15b, %r15b ++ jz 38b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the ++ mutex correctly. */ ++ movq %r8, %rdi ++ callq __pthread_mutex_cond_lock_adjust ++ xorl %esi, %esi ++ callq __pthread_mutex_unlock_usercnt ++ /* Reload cond_var. */ ++ movq 8(%rsp), %rdi ++ jmp 38b + + 99: incq wakeup_seq(%rdi) + incl cond_futex(%rdi) +@@ -298,7 +335,7 @@ __pthread_cond_timedwait: + /* If requeue_pi is used the kernel performs the locking of the + mutex. */ + 41: movq 16(%rsp), %rdi +- testl %r15d, %r15d ++ testb %r15b, %r15b + jnz 64f + + callq __pthread_mutex_cond_lock +diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +index 6194852..ec403cd 100644 +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +@@ -136,19 +136,36 @@ __pthread_cond_wait: + cmpl $PI_BIT, %eax + jne 61f + +-90: + movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi + movl $SYS_futex, %eax + syscall + +- movl $1, %r8d +- cmpq $-EAGAIN, %rax +- je 91f ++ cmpl $0, %eax ++ sete %r8b ++ + #ifdef __ASSUME_REQUEUE_PI + jmp 62f + #else +- cmpq $-4095, %rax +- jnae 62f ++ je 62f ++ ++ /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns ++ successfully, it has already locked the mutex for us and the ++ pi_flag (%r8b) is set to denote that fact. However, if another ++ thread changed the futex value before we entered the wait, the ++ syscall may return an EAGAIN and the mutex is not locked. We go ++ ahead with a success anyway since later we look at the pi_flag to ++ decide if we got the mutex or not. The sequence numbers then make ++ sure that only one of the threads actually wake up. We retry using ++ normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal ++ and PI futexes don't mix. ++ ++ Note that we don't check for EAGAIN specifically; we assume that the ++ only other error the futex function could return is EAGAIN since ++ anything else would mean an error in our function. It is too ++ expensive to do that check for every call (which is quite common in ++ case of a large number of threads), so it has been skipped. */ ++ cmpl $-ENOSYS, %eax ++ jne 62f + + # ifndef __ASSUME_PRIVATE_FUTEX + movl $FUTEX_WAIT, %esi +@@ -161,7 +178,7 @@ __pthread_cond_wait: + #else + orl %fs:PRIVATE_FUTEX, %esi + #endif +-60: xorl %r8d, %r8d ++60: xorb %r8b, %r8b + movl $SYS_futex, %eax + syscall + +@@ -191,10 +208,10 @@ __pthread_cond_wait: + jne 16f + + cmpq 24(%rsp), %r9 +- jbe 8b ++ jbe 19f + + cmpq %rax, %r9 +- jna 8b ++ jna 19f + + incq woken_seq(%rdi) + +@@ -236,7 +253,7 @@ __pthread_cond_wait: + /* If requeue_pi is used the kernel performs the locking of the + mutex. */ + 11: movq 16(%rsp), %rdi +- testl %r8d, %r8d ++ testb %r8b, %r8b + jnz 18f + + callq __pthread_mutex_cond_lock +@@ -253,6 +270,23 @@ __pthread_cond_wait: + xorl %eax, %eax + jmp 14b + ++ /* We need to go back to futex_wait. If we're using requeue_pi, then ++ release the mutex we had acquired and go back. */ ++19: testb %r8b, %r8b ++ jz 8b ++ ++ /* Adjust the mutex values first and then unlock it. The unlock ++ should always succeed or else the kernel did not lock the mutex ++ correctly. */ ++ movq 16(%rsp), %rdi ++ callq __pthread_mutex_cond_lock_adjust ++ movq %rdi, %r8 ++ xorl %esi, %esi ++ callq __pthread_mutex_unlock_usercnt ++ /* Reload cond_var. */ ++ movq 8(%rsp), %rdi ++ jmp 8b ++ + /* Initial locking failed. */ + 1: + #if cond_lock != 0 +@@ -331,69 +365,6 @@ __pthread_cond_wait: + 13: movq %r10, %rax + jmp 14b + +-91: +-.LcleanupSTART2: +- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to +- call it again. */ +- movq 8(%rsp), %rdi +- +- /* Get internal lock. */ +- movl $1, %esi +- xorl %eax, %eax +- LOCK +-#if cond_lock == 0 +- cmpxchgl %esi, (%rdi) +-#else +- cmpxchgl %esi, cond_lock(%rdi) +-#endif +- jz 92f +- +-#if cond_lock != 0 +- addq $cond_lock, %rdi +-#endif +- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) +- movl $LLL_PRIVATE, %eax +- movl $LLL_SHARED, %esi +- cmovne %eax, %esi +- callq __lll_lock_wait +-#if cond_lock != 0 +- subq $cond_lock, %rdi +-#endif +-92: +- /* Increment the cond_futex value again, so it can be used as a new +- expected value. */ +- incl cond_futex(%rdi) +- movl cond_futex(%rdi), %edx +- +- /* Release internal lock. */ +- LOCK +-#if cond_lock == 0 +- decl (%rdi) +-#else +- decl cond_lock(%rdi) +-#endif +- jz 93f +- +-#if cond_lock != 0 +- addq $cond_lock, %rdi +-#endif +- LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) +- movl $LLL_PRIVATE, %eax +- movl $LLL_SHARED, %esi +- cmovne %eax, %esi +- /* The call preserves %rdx. */ +- callq __lll_unlock_wake +-#if cond_lock != 0 +- subq $cond_lock, %rdi +-#endif +-93: +- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ +- xorq %r10, %r10 +- mov dep_mutex(%rdi), %R8_LP +- leaq cond_futex(%rdi), %rdi +- jmp 90b +-.LcleanupEND2: +- + .size __pthread_cond_wait, .-__pthread_cond_wait + versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, + GLIBC_2_3_2) +@@ -547,10 +518,6 @@ __condvar_cleanup1: + .uleb128 .LcleanupEND-.LcleanupSTART + .uleb128 __condvar_cleanup1-.LSTARTCODE + .uleb128 0 +- .uleb128 .LcleanupSTART2-.LSTARTCODE +- .uleb128 .LcleanupEND2-.LcleanupSTART2 +- .uleb128 __condvar_cleanup1-.LSTARTCODE +- .uleb128 0 + .uleb128 .LcallUR-.LSTARTCODE + .uleb128 .LENDCODE-.LcallUR + .uleb128 0 +diff --git a/nptl/tst-cond24.c b/nptl/tst-cond24.c +new file mode 100644 +index 0000000..2eb2df1 +--- /dev/null ++++ b/nptl/tst-cond24.c +@@ -0,0 +1,249 @@ ++/* Verify that condition variables synchronized by PI mutexes don't hang. ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C 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.1 of the License, or (at your option) any later version. ++ ++ The GNU C 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 the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <pthread.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <errno.h> ++#include <sys/types.h> ++#include <sys/syscall.h> ++#include <unistd.h> ++#include <sys/time.h> ++#include <time.h> ++ ++#define THREADS_NUM 5 ++#define MAXITER 50000 ++ ++static pthread_mutex_t mutex; ++static pthread_mutexattr_t mutex_attr; ++static pthread_cond_t cond; ++static pthread_t threads[THREADS_NUM]; ++static int pending = 0; ++ ++typedef void * (*threadfunc) (void *); ++ ++void * ++thread_fun_timed (void *arg) ++{ ++ int *ret = arg; ++ int rv, i; ++ ++ printf ("Started thread_fun_timed[%d]\n", *ret); ++ ++ for (i = 0; i < MAXITER / THREADS_NUM; i++) ++ { ++ rv = pthread_mutex_lock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ ++ while (!pending) ++ { ++ struct timespec ts; ++ clock_gettime(CLOCK_REALTIME, &ts); ++ ts.tv_sec += 20; ++ rv = pthread_cond_timedwait (&cond, &mutex, &ts); ++ ++ /* There should be no timeout either. */ ++ if (rv) ++ { ++ printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ pending--; ++ ++ rv = pthread_mutex_unlock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ *ret = 0; ++ ++out: ++ return ret; ++} ++ ++void * ++thread_fun (void *arg) ++{ ++ int *ret = arg; ++ int rv, i; ++ ++ printf ("Started thread_fun[%d]\n", *ret); ++ ++ for (i = 0; i < MAXITER / THREADS_NUM; i++) ++ { ++ rv = pthread_mutex_lock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ ++ while (!pending) ++ { ++ rv = pthread_cond_wait (&cond, &mutex); ++ ++ if (rv) ++ { ++ printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ pending--; ++ ++ rv = pthread_mutex_unlock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv); ++ *ret = 1; ++ goto out; ++ } ++ } ++ ++ *ret = 0; ++ ++out: ++ return ret; ++} ++ ++static int ++do_test_wait (threadfunc f) ++{ ++ int i; ++ int rv; ++ int counter = 0; ++ int retval[THREADS_NUM]; ++ ++ puts ("Starting test"); ++ ++ rv = pthread_mutexattr_init (&mutex_attr); ++ if (rv) ++ { ++ printf ("pthread_mutexattr_init: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_mutexattr_setprotocol (&mutex_attr, PTHREAD_PRIO_INHERIT); ++ if (rv) ++ { ++ printf ("pthread_mutexattr_setprotocol: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_mutex_init (&mutex, &mutex_attr); ++ if (rv) ++ { ++ printf ("pthread_mutex_init: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_cond_init (&cond, NULL); ++ if (rv) ++ { ++ printf ("pthread_cond_init: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ for (i = 0; i < THREADS_NUM; i++) ++ { ++ retval[i] = i; ++ rv = pthread_create (&threads[i], NULL, f, &retval[i]); ++ if (rv) ++ { ++ printf ("pthread_create: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ } ++ ++ for (; counter < MAXITER; counter++) ++ { ++ rv = pthread_mutex_lock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ if (!(counter % 100)) ++ printf ("counter: %d\n", counter); ++ pending += 1; ++ ++ rv = pthread_cond_signal (&cond); ++ if (rv) ++ { ++ printf ("pthread_cond_signal: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ ++ rv = pthread_mutex_unlock (&mutex); ++ if (rv) ++ { ++ printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ } ++ ++ for (i = 0; i < THREADS_NUM; i++) ++ { ++ void *ret; ++ rv = pthread_join (threads[i], &ret); ++ if (rv) ++ { ++ printf ("pthread_join: %s(%d)\n", strerror (rv), rv); ++ return 1; ++ } ++ if (ret && *(int *)ret) ++ { ++ printf ("Thread %d returned with an error\n", i); ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ puts ("Testing pthread_cond_wait"); ++ int ret = do_test_wait (thread_fun); ++ if (ret) ++ return ret; ++ ++ puts ("Testing pthread_cond_timedwait"); ++ return do_test_wait (thread_fun_timed); ++} ++ ++#define TIMEOUT 10 ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +-- +1.7.3.4 + diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install index 7f85ade96..4486a3b2d 100644 --- a/testing/glibc/glibc.install +++ b/testing/glibc/glibc.install @@ -2,19 +2,19 @@ infodir=usr/share/info filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11}) post_upgrade() { - sbin/ldconfig -r . - [ -x sbin/init ] && sbin/init u - usr/sbin/locale-gen + ldconfig -r . + [[ ! -e sys/fs/cgroup/systemd && -x sbin/init ]] && init u + locale-gen - [ -x usr/bin/install-info ] || return 0 + [[ -x usr/bin/install-info ]] || return 0 for file in ${filelist[@]}; do - usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null + install-info $infodir/$file.gz $infodir/dir 2> /dev/null done } pre_remove() { - [ -x usr/bin/install-info ] || return 0 + [[ -x usr/bin/install-info ]] || return 0 for file in ${filelist[@]}; do - usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null done } diff --git a/testing/glibc/nscd.service b/testing/glibc/nscd.service index de5315e9b..bc80a0730 100644 --- a/testing/glibc/nscd.service +++ b/testing/glibc/nscd.service @@ -9,7 +9,7 @@ ExecStop=/usr/sbin/nscd --shutdown ExecReload=/usr/sbin/nscd -i passwd ExecReload=/usr/sbin/nscd -i group ExecReload=/usr/sbin/nscd -i hosts -ExecReload=/usr/sbin/nscd -i service +ExecReload=/usr/sbin/nscd -i services Restart=always PIDFile=/run/nscd/nscd.pid diff --git a/testing/gnome-documents/PKGBUILD b/testing/gnome-documents/PKGBUILD index 21416f4af..18a05b7e7 100644 --- a/testing/gnome-documents/PKGBUILD +++ b/testing/gnome-documents/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 169230 2012-10-18 19:27:05Z jgc $ +# $Id: PKGBUILD 169605 2012-10-24 09:10:49Z jgc $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> pkgname=gnome-documents -pkgver=3.6.0 +pkgver=3.6.1 pkgrel=1 pkgdesc="Documents Manager for GNOME" arch=(i686 x86_64) @@ -16,7 +16,7 @@ optdepends=('unoconv: Support for Libreoffice document types') options=('!libtool') install=gnome-documents.install source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('a4a5c525cba047a6c8f712f8a0d73fc26dc0445d4c8278c10ecbeac4efd342e2') +sha256sums=('16a241db8abcac69c80e4c1a4f3319fbc0c1a99fb5f707eca45368043cc809ac') build() { cd $pkgname-$pkgver diff --git a/testing/hugin/PKGBUILD b/testing/hugin/PKGBUILD index 71876466c..c76a7bfeb 100644 --- a/testing/hugin/PKGBUILD +++ b/testing/hugin/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 164679 2012-08-02 15:21:40Z andrea $ +# $Id: PKGBUILD 169638 2012-10-25 01:35:06Z eric $ # Maintainer: Tobias Kieslich <tobias@archlinux.org> # Contributor: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Dominik Ryba <domryba@post.pl> pkgname=hugin pkgver=2011.4.0 -pkgrel=5 +pkgrel=7 pkgdesc="A frontend to the panorama-tools" arch=('i686' 'x86_64') url="http://hugin.sourceforge.net/" license=('GPL') depends=('wxgtk' 'boost-libs' 'enblend-enfuse' 'exiv2' 'autopano-sift-c' 'lapack' 'desktop-file-utils' 'make' 'perl-image-exiftool') -makedepends=('zip' 'cmake' 'boost' 'tclap') +makedepends=('zip' 'cmake' 'boost' 'tclap' 'mesa') install=hugin.install source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2" gcc47.patch) diff --git a/testing/ilmbase/PKGBUILD b/testing/ilmbase/PKGBUILD new file mode 100644 index 000000000..fe1618f48 --- /dev/null +++ b/testing/ilmbase/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=ilmbase +pkgver=1.0.3 +pkgrel=1 +depends=('gcc-libs') +pkgdesc="Base libraries from ILM for OpenEXR" +arch=(i686 x86_64) +url="http://www.openexr.com" +license=('custom') +options=('!libtool') +source=(https://github.com/downloads/openexr/openexr/$pkgname-$pkgver.tar.gz + ilmbase-IexMath.patch) +md5sums=('d99962ec7e2bfac0647aaabf6b91d5de' + '9c8efaf15f60bccf79749ec879657962') + +build() { + cd "${srcdir}/$pkgname-$pkgver" + patch -p0 -i "${srcdir}/ilmbase-IexMath.patch" + ./configure --prefix=/usr + make +} + +check() { + cd "${srcdir}/$pkgname-$pkgver" + # one of the tests fails randomly for an unknown reason + make check || true +} + +package() { + cd "${srcdir}/$pkgname-$pkgver" + make DESTDIR="${pkgdir}" install + install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" +} diff --git a/testing/ilmbase/ilmbase-IexMath.patch b/testing/ilmbase/ilmbase-IexMath.patch new file mode 100644 index 000000000..546034966 --- /dev/null +++ b/testing/ilmbase/ilmbase-IexMath.patch @@ -0,0 +1,12 @@ +--- IexMath/IexMathFpu.cpp.orig 2012-07-26 20:51:55.000000000 +0200 ++++ IexMath/IexMathFpu.cpp 2012-10-04 15:30:47.000000000 +0200 +@@ -27,8 +27,7 @@ + #endif + + +-#ifdef HAVE_UCONTEXT_H +- ++#if defined(HAVE_UCONTEXT_H) && (defined(x86_64) || defined(i386_)) + + #include <ucontext.h> + #include <signal.h> diff --git a/testing/imagemagick/PKGBUILD b/testing/imagemagick/PKGBUILD new file mode 100644 index 000000000..985a18f01 --- /dev/null +++ b/testing/imagemagick/PKGBUILD @@ -0,0 +1,82 @@ +# $Id: PKGBUILD 169640 2012-10-25 01:35:11Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> + +pkgbase=imagemagick +pkgname=('imagemagick' 'imagemagick-doc') +pkgver=6.8.0.1 +pkgrel=1 +arch=('i686' 'x86_64') +url="http://www.imagemagick.org/" +license=('custom') +makedepends=('libltdl' 'lcms2' 'libxt' 'fontconfig' 'libxext' 'ghostscript' \ + 'openexr' 'libwmf' 'librsvg' 'libxml2' 'jasper' 'liblqr') +source=(ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \ + perlmagick.rpath.patch) +sha1sums=('47926535dd68b38f5ae8a01e470cebf671018831' + '23405f80904b1de94ebd7bd6fe2a332471b8c283') + +build() { + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} + + sed '/AC_PATH_XTRA/d' -i configure.ac + autoreconf --force --install + patch -p0 -i ../perlmagick.rpath.patch + + ./configure --prefix=/usr --sysconfdir=/etc --with-modules --disable-static \ + --disable-openmp --with-wmf --with-openexr --with-xml --with-lcms2 --with-jp2 \ + --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \ + --with-perl --with-perl-options="INSTALLDIRS=vendor" --with-lqr --with-rsvg \ + --without-gvc --without-djvu --without-autotrace --without-webp \ + --without-jbig --without-fpx --without-dps --without-fftw + make +} + +check() { + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} +# make check +} + +package_imagemagick() { + pkgdesc="An image viewing/manipulation program" + depends=('perl' 'libltdl' 'lcms2' 'libxt' 'fontconfig' 'libxext' 'liblqr') + optdepends=('ghostscript: for Ghostscript support' + 'openexr: for OpenEXR support' + 'libwmf: for WMF support' + 'librsvg: for SVG support' + 'libxml2: for XML support' + 'jasper: for JPEG-2000 support' + 'libpng: for PNG support') + backup=('etc/ImageMagick/coder.xml' + 'etc/ImageMagick/colors.xml' + 'etc/ImageMagick/delegates.xml' + 'etc/ImageMagick/log.xml' + 'etc/ImageMagick/magic.xml' + 'etc/ImageMagick/mime.xml' + 'etc/ImageMagick/policy.xml' + 'etc/ImageMagick/quantization-table.xml' + 'etc/ImageMagick/thresholds.xml' + 'etc/ImageMagick/type.xml' + 'etc/ImageMagick/type-dejavu.xml' + 'etc/ImageMagick/type-ghostscript.xml' + 'etc/ImageMagick/type-windows.xml') + options=('!docs' 'libtool' '!emptydirs') + + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} + make DESTDIR="${pkgdir}" install + chmod 755 "${pkgdir}/usr/lib/perl5/vendor_perl/auto/Image/Magick/Magick.so" + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick/LICENSE" + install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick/NOTICE" + +#Cleaning + find "${pkgdir}" -name '*.bs' -delete + rm -f "${pkgdir}"/usr/lib/*.la +} + +package_imagemagick-doc() { + pkgdesc="The ImageMagick documentation (utilities manuals and libraries API)" + + cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.} + make DESTDIR="${pkgdir}" install-data-html + install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick-doc/LICENSE" + install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick-doc/NOTICE" +} diff --git a/testing/imagemagick/perlmagick.rpath.patch b/testing/imagemagick/perlmagick.rpath.patch new file mode 100644 index 000000000..958c0f2ee --- /dev/null +++ b/testing/imagemagick/perlmagick.rpath.patch @@ -0,0 +1,10 @@ +--- Makefile.in.orig 2009-05-26 16:22:11.000000000 -0300 ++++ Makefile.in 2009-05-26 16:23:27.000000000 -0300 +@@ -10067,6 +10067,7 @@ + + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@$(PERLMAKEFILE): perl-sources $(PERLMAKEMAKER) + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @PERL@ Makefile.PL $(PERL_MAKE_OPTIONS) ++@WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @SED@ -i 's|LD_RUN_PATH|DIE_LD_RUN_PATH_DIE|g' Makefile + + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@install-exec-perl: $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(PERLMAKEFILE) + @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && $(MAKE) CC='@CC@' install diff --git a/testing/inkscape/PKGBUILD b/testing/inkscape/PKGBUILD index a7f67a502..762134903 100644 --- a/testing/inkscape/PKGBUILD +++ b/testing/inkscape/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 169323 2012-10-19 13:28:35Z andyrtr $ +# $Id: PKGBUILD 169641 2012-10-25 01:35:14Z eric $ # 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=6 +pkgrel=7 pkgdesc='Vector graphics editor using the SVG file format' url='http://inkscape.sourceforge.net/' license=('GPL' 'LGPL') diff --git a/testing/kdelibs3/PKGBUILD b/testing/kdelibs3/PKGBUILD new file mode 100644 index 000000000..b3efef435 --- /dev/null +++ b/testing/kdelibs3/PKGBUILD @@ -0,0 +1,97 @@ +# $Id: PKGBUILD 169643 2012-10-25 01:35:25Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> +# Contributor: Pierre Schmitz <pierre@archlinux.de> +# Contributor: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=kdelibs3 +pkgver=3.5.10 +pkgrel=15 +pkgdesc='KDE3 Core Libraries' +arch=('i686' 'x86_64') +url='http://www.kde.org' +license=('GPL' 'LGPL') +depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 'libcups' 'jasper' + 'libidn' 'openexr' 'aspell' 'qt3' 'ca-certificates') +makedepends=('cups' 'hspell') +optdepends=('hspell: for Hebrew spell-checking support') +options=('libtool' '!makeflags') +install=kdelibs3.install +source=("ftp://ftp.kde.org/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2" + 'ftp://ftp.archlinux.org/other/kde/kde-3.5-1074156.patch.gz' + 'acinclude.patch' + 'kde3.profile' + 'kde4-compatibility.patch' + 'kconf_updaterc' + 'openssl.patch' + 'kdelibs3-missing-include.patch' + 'kdelibs3-cups16.patch') +sha1sums=('c930a25f4419134def55b8466c3a6f737227fb82' + 'c8ca21e4848a627760746d0a8a64bf4f90684c3e' + '50c9de71b102507fb78b192ecc22a5fc3e031bc3' + 'fbd6e773edf3e8bb8e1272629984025e041da2ca' + '5fbbf7a5e2032878815fa055bfb5020f478d2b25' + '35e56fe4c5f71685e64b13f448dcacc620166e06' + '50e92950498463defb9149ffcf8cbc2e8cd1063b' + 'e5f5b8c060a2db9cedb82bf18caadfa869921779' + '6a6c544b3336bfe89bb17ef737d783a7ec006c6c') + +build() { + cd "$srcdir"/kdelibs-${pkgver} + + . /etc/profile.d/qt3.sh + . "$srcdir"/kde3.profile + + patch -p0 -i "$srcdir"/kde-3.5-1074156.patch + patch -p1 -i "$srcdir"/acinclude.patch + patch -p1 -i "$srcdir"/kde4-compatibility.patch + patch -p1 -i "${srcdir}"/openssl.patch + patch -p0 -i "$srcdir"/kdelibs3-missing-include.patch + patch -p1 -i "${srcdir}"/kdelibs3-cups16.patch + + sed -iautomake -e 's|automake\*1.10\*|automake\*1.1[0-5]\*|' admin/cvs.sh + make -f admin/Makefile.common cvs + + ./configure --prefix=/opt/kde \ + --with-distribution='Arch Linux' \ + --with-alsa \ + --disable-debug \ + --disable-dnssd \ + --disable-dnotify \ + --enable-inotify \ + --enable-sendfile \ + --without-lua \ + --with-hspell \ + --enable-gcc-hidden-visibility \ + --enable-final \ + --enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \ + --without-arts \ + --disable-libfam + make +} + +package() { + cd "$srcdir"/kdelibs-${pkgver} + + make DESTDIR="$pkgdir" install + + # disable broken kconf_update by default + install -D -m644 "$srcdir"/kconf_updaterc \ + "$pkgdir"/opt/kde/share/config/kconf_updaterc + + # install KDE3 profile + install -D -m755 "$srcdir"/kde3.profile "$pkgdir"/etc/profile.d/kde3.sh + # make KDE3 styles available to Qt3 + install -d -m755 "$pkgdir"/opt/qt/plugins + ln -sf /opt/kde/lib/kde3/plugins/styles "$pkgdir"/opt/qt/plugins/styles + + # cert bundle seems to be hardcoded + # link it to the one from ca-certificates + rm -f "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt + ln -sf /etc/ssl/certs/ca-certificates.crt "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt + + # we don't have khelpcenter anyway + rm -rf "$pkgdir"/opt/kde/share/doc + + install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/ + echo '/opt/kde/lib' > "${pkgdir}"/etc/ld.so.conf.d/kdelibs3.conf +} diff --git a/testing/kdelibs3/acinclude.patch b/testing/kdelibs3/acinclude.patch new file mode 100644 index 000000000..0610d6df5 --- /dev/null +++ b/testing/kdelibs3/acinclude.patch @@ -0,0 +1,66 @@ +2009-12-10 Stepan Kasal <skasal@redhat.com> + +The change of implementation of AC_REQUIRE in 2.64 caused a regression +in the arts project. +This can be fixed by shuffling some macro calls. + +I suppose that most of this patch will not be needed with a future +release of Autoconf. +But the last chunk of this patch is a real bug in this source and +should go upstream. + +--- arts-1.5.10/admin/acinclude.m4.in 2008-08-20 18:07:05.000000000 +0200 ++++ arts-1.5.10/admin/acinclude.m4.in 2009-12-09 17:30:57.000000000 +0100 +@@ -3081,8 +3081,18 @@ + fi + ]) + ++AC_DEFUN([AC_CHECK_COMPILERS_CC], ++[ ++ dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS ++ CFLAGS=" $CFLAGS" ++ AC_PROG_CC ++ CXXFLAGS=" $CXXFLAGS" ++ AC_PROG_CXX ++]) ++ + AC_DEFUN([AC_CHECK_COMPILERS], + [ ++ AC_REQUIRE([AC_CHECK_COMPILERS_CC]) + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), + [ +@@ -3141,11 +3151,6 @@ + [kde_use_profiling="no"] + ) + +- dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS +- CFLAGS=" $CFLAGS" +- +- AC_PROG_CC +- + AC_PROG_CPP + + if test "$GCC" = "yes"; then +@@ -3174,10 +3179,6 @@ + LDFLAGS="" + fi + +- CXXFLAGS=" $CXXFLAGS" +- +- AC_PROG_CXX +- + KDE_CHECK_FOR_BAD_COMPILER + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then +@@ -3503,8 +3504,8 @@ + AC_REQUIRE([AC_LIBTOOL_DLOPEN]) + AC_REQUIRE([KDE_CHECK_LIB64]) + +-AC_OBJEXT +-AC_EXEEXT ++AC_REQUIRE([AC_OBJEXT]) ++AC_REQUIRE([AC_EXEEXT]) + + AM_PROG_LIBTOOL + AC_LIBTOOL_CXX diff --git a/testing/kdelibs3/kconf_updaterc b/testing/kdelibs3/kconf_updaterc new file mode 100644 index 000000000..24c2623fb --- /dev/null +++ b/testing/kdelibs3/kconf_updaterc @@ -0,0 +1,2 @@ +updateInfoAdded=false +autoUpdateDisabled=true diff --git a/testing/kdelibs3/kde3.profile b/testing/kdelibs3/kde3.profile new file mode 100755 index 000000000..ef09631ff --- /dev/null +++ b/testing/kdelibs3/kde3.profile @@ -0,0 +1,6 @@ +export PATH=$PATH:/opt/kde/bin +if [ ! -z $XDG_DATA_DIRS ]; then + export XDG_DATA_DIRS=$XDG_DATA_DIRS:/opt/kde/share +else + export XDG_DATA_DIRS=/opt/kde/share +fi diff --git a/testing/kdelibs3/kde4-compatibility.patch b/testing/kdelibs3/kde4-compatibility.patch new file mode 100644 index 000000000..129c314ae --- /dev/null +++ b/testing/kdelibs3/kde4-compatibility.patch @@ -0,0 +1,1012 @@ +diff -Nura kdelibs-3.5.10/kdecore/kcrash.cpp kdelibs-3.5.10.new/kdecore/kcrash.cpp +--- kdelibs-3.5.10/kdecore/kcrash.cpp 2007-01-15 12:34:17.000000000 +0100 ++++ kdelibs-3.5.10.new/kdecore/kcrash.cpp 2009-08-06 06:18:06.000000000 +0200 +@@ -158,7 +158,7 @@ + int i = 0; + + // argument 0 has to be drkonqi +- argv[i++] = "drkonqi"; ++ argv[i++] = "/usr/lib/kde4/libexec/drkonqi"; + + #if defined Q_WS_X11 + // start up on the correct display +@@ -325,7 +325,7 @@ + _exit(253); + if(!geteuid() && setuid(getuid()) < 0) + _exit(253); +- execvp("drkonqi", const_cast< char** >( argv )); ++ execvp("/usr/lib/kde4/libexec/drkonqi", const_cast< char** >( argv )); + _exit(errno); + } + else +diff -Nura kdelibs-3.5.10/kded/Makefile.am kdelibs-3.5.10.new/kded/Makefile.am +--- kdelibs-3.5.10/kded/Makefile.am 2005-10-10 17:06:29.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/Makefile.am 2009-08-06 06:21:37.000000000 +0200 +@@ -58,7 +58,7 @@ + servicetype_DATA = kdedmodule.desktop + servicetypedir = $(kde_servicetypesdir) + +-xdg_menu_DATA = applications.menu ++xdg_menu_DATA = kde-applications.menu + + update_DATA = kded.upd + updatedir = $(kde_datadir)/kconf_update +diff -Nura kdelibs-3.5.10/kded/Makefile.in kdelibs-3.5.10.new/kded/Makefile.in +--- kdelibs-3.5.10/kded/Makefile.in 2008-08-20 18:05:57.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/Makefile.in 2009-08-06 06:22:19.000000000 +0200 +@@ -535,7 +535,7 @@ + + servicetype_DATA = kdedmodule.desktop + servicetypedir = $(kde_servicetypesdir) +-xdg_menu_DATA = applications.menu ++xdg_menu_DATA = kde-applications.menu + update_DATA = kded.upd + updatedir = $(kde_datadir)/kconf_update + #>- all: all-am +@@ -1173,7 +1173,7 @@ + -rm -f kded.moc vfolder_menu.moc kdedmodule.moc kbuildsycoca.moc + + #>+ 2 +-KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am ++KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h kde-applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am + + #>+ 2 + docs-am: +diff -Nura kdelibs-3.5.10/kded/applications.menu kdelibs-3.5.10.new/kded/applications.menu +--- kdelibs-3.5.10/kded/applications.menu 2005-09-10 10:27:40.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/applications.menu 1970-01-01 01:00:00.000000000 +0100 +@@ -1,469 +0,0 @@ +- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" +- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> +- +-<Menu> +- <Name>Applications</Name> +- <Directory>kde-main.directory</Directory> +- <!-- Search the default locations --> +- <KDELegacyDirs/> +- <DefaultAppDirs/> +- <DefaultDirectoryDirs/> +- <DefaultLayout> +- <Merge type="menus"/> +- <Merge type="files"/> +- <Separator/> +- <Menuname>More</Menuname> +- </DefaultLayout> +- <Layout> +- <Merge type="menus"/> +- <Menuname>Applications</Menuname> +- <Merge type="files"/> +- </Layout> +- +- <Menu> +- <Name>Applications</Name> +- <Directory>kde-unknown.directory</Directory> +- <OnlyUnallocated/> +- <Include> +- <Not> +- <!-- Don't list non-KDE core applications --> +- <And> +- <Category>Core</Category> +- <Not><Category>KDE</Category></Not> +- </And> +- <!-- Don't list SUSE's YaST in here --> +- <Category>X-SuSE-YaST</Category> +- </Not> +- </Include> +- </Menu> +- <Menu> +- <Name>Development</Name> +- <Directory>kde-development.directory</Directory> +- <Menu> +- <Name>X-KDE-KDevelopIDE</Name> +- <Directory>kde-development-kdevelop.directory</Directory> +- <Include> +- <And> +- <Category>Development</Category> +- <Category>X-KDE-KDevelopIDE</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Translation</Name> +- <Directory>kde-development-translation.directory</Directory> +- <Include> +- <And> +- <Category>Development</Category> +- <Category>Translation</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Web Development</Name> +- <Directory>kde-development-webdevelopment.directory</Directory> +- <Include> +- <And> +- <Category>Development</Category> +- <Category>WebDevelopment</Category> +- </And> +- </Include> +- </Menu> +- <Include> +- <And> +- <Category>Development</Category> +- <Not><Category>X-KDE-KDevelopIDE</Category></Not> +- <Not><Category>Translation</Category></Not> +- <Not><Category>WebDevelopment</Category></Not> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Science</Name> +- <Directory>kde-science.directory</Directory> +- <Include> +- <And><!-- Include /any/ Science app which is not an Education app --> +- <Or> +- <Category>Astronomy</Category> +- <Category>Biology</Category> +- <Category>Chemistry</Category> +- <Category>Geology</Category> +- <Category>MedicalSoftware</Category> +- <Category>Physics</Category> +- <Category>Math</Category> +- <Category>Science</Category> +- </Or> +- <Not><Category>Education</Category></Not> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Edutainment</Name> +- <Directory>kde-edutainment.directory</Directory> +- <Menu> +- <Name>Languages</Name> +- <Directory>kde-edu-languages.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Or> +- <Category>Languages</Category> +- <Category>X-KDE-Edu-Language</Category> +- </Or> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Mathematics</Name> +- <Directory>kde-edu-mathematics.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Category>Math</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Miscellaneous</Name> +- <Directory>kde-edu-miscellaneous.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Not> +- <Category>Languages</Category> +- <Category>X-KDE-Edu-Language</Category> +- <Category>Math</Category> +- <Category>Science</Category> +- <Category>Teaching</Category> +- <Category>X-KDE-Edu-Teaching</Category> +- </Not> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Science</Name> +- <Directory>kde-edu-science.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Category>Science</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Tools</Name> +- <Directory>kde-edu-tools.directory</Directory> +- <Include> +- <And> +- <Category>Education</Category> +- <Or> +- <Category>Teaching</Category> +- <Category>X-KDE-Edu-Teaching</Category> +- </Or> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Games</Name> +- <Directory>kde-games.directory</Directory> +- <Menu> +- <Name>Arcade</Name> +- <Directory>kde-games-arcade.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>ArcadeGame</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Board</Name> +- <Directory>kde-games-board.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>BoardGame</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Card</Name> +- <Directory>kde-games-card.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>CardGame</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Kidsgames</Name> +- <Directory>kde-games-kids.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Or> +- <Category>X-KDE-KidsGame</Category> +- <Category>KidsGame</Category> +- </Or> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>TacticStrategy</Name> +- <Directory>kde-games-strategy.directory</Directory> +- <Include> +- <And> +- <Category>Game</Category> +- <Category>StrategyGame</Category> +- </And> +- </Include> +- </Menu> +- <Include> +- <And> +- <Category>Game</Category> +- <Not> +- <Category>ArcadeGame</Category> +- <Category>BoardGame</Category> +- <Category>CardGame</Category> +- <Category>X-KDE-KidsGame</Category> +- <Category>KidsGame</Category> +- <Category>StrategyGame</Category> +- </Not> +- </And> +- </Include> +- <Menu> +- <Name>Toys</Name> +- <Directory>kde-toys.directory</Directory> +- <Include> +- <Category>Amusement</Category> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Graphics</Name> +- <Directory>kde-graphics.directory</Directory> +- <Include> +- <And> +- <Category>Graphics</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Graphics</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Internet</Name> +- <Directory>kde-internet.directory</Directory> +- <Include> +- <And> +- <Category>Network</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>Terminal</Name> +- <Directory>kde-internet-terminal.directory</Directory> +- </Menu> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Network</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Multimedia</Name> +- <Directory>kde-multimedia.directory</Directory> +- <Include> +- <And> +- <Category>AudioVideo</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>AudioVideo</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Office</Name> +- <Directory>kde-office.directory</Directory> +- <Layout> +- <Merge type="menus"/> +- <Filename>kde-koshell.desktop</Filename> +- <Filename>kde-Kontact.desktop</Filename> +- <Separator/> +- <Filename>kde-kword.desktop</Filename> +- <Filename>kde-kspread.desktop</Filename> +- <Filename>kde-kpresenter.desktop</Filename> +- <Merge type="files"/> +- <Separator/> +- <Menuname>More</Menuname> +- </Layout> +- <Include> +- <And> +- <Category>Office</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Office</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Menu> +- <Name>Settingsmenu</Name> +- <Directory>kde-settingsmenu.directory</Directory> +- <Include> +- <Category>Settings</Category> +- </Include> +- </Menu> +- <Menu> +- <Name>System</Name> +- <Directory>kde-system.directory</Directory> +- <Include> +- <And> +- <Category>System</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>System</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>ScreenSavers</Name> +- <Directory>kde-system-screensavers.directory</Directory> +- </Menu> +- <Menu> +- <Name>Terminal</Name> +- <Directory>kde-system-terminal.directory</Directory> +- </Menu> +- </Menu> +- <Menu> +- <Name>Utilities</Name> +- <Directory>kde-utilities.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Not><Category>Accessibility</Category></Not> +- <Not><Category>X-KDE-Utilities-Desktop</Category></Not> +- <Not><Category>X-KDE-Utilities-File</Category></Not> +- <Not><Category>X-KDE-Utilities-Peripherals</Category></Not> +- <Not><Category>X-KDE-Utilities-PIM</Category></Not> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- <Menu> +- <Name>Accessibility</Name> +- <Directory>kde-utilities-accessibility.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>Accessibility</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Desktop</Name> +- <Directory>kde-utilities-desktop.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-Desktop</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Editors</Name> +- <Directory>kde-editors.directory</Directory> +- <Include> +- <Category>TextEditor</Category> +- </Include> +- </Menu> +- <Menu> +- <Name>File</Name> +- <Directory>kde-utilities-file.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-File</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>Peripherals</Name> +- <Directory>kde-utilities-peripherals.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-Peripherals</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>PIM</Name> +- <Directory>kde-utilities-pim.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-Utilities-PIM</Category> +- </And> +- </Include> +- </Menu> +- <Menu> +- <Name>XUtilities</Name> +- <Directory>kde-utilities-xutils.directory</Directory> +- </Menu> +- <Menu> +- <Name>More</Name> +- <Directory>kde-more.directory</Directory> +- <Include> +- <And> +- <Category>Utility</Category> +- <Category>X-KDE-More</Category> +- </And> +- </Include> +- </Menu> +- </Menu> +- <Include> +- <And> +- <Category>KDE</Category> +- <Category>Core</Category> +- </And> +- </Include> +- <DefaultMergeDirs/> +- <MergeFile>applications-kmenuedit.menu</MergeFile> +-</Menu> +diff -Nura kdelibs-3.5.10/kded/kbuildsycoca.cpp kdelibs-3.5.10.new/kded/kbuildsycoca.cpp +--- kdelibs-3.5.10/kded/kbuildsycoca.cpp 2007-05-14 09:52:43.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/kbuildsycoca.cpp 2009-08-06 06:23:48.000000000 +0200 +@@ -379,7 +379,7 @@ + connect(g_vfolder, SIGNAL(newService(const QString &, KService **)), + this, SLOT(slotCreateEntry(const QString &, KService **))); + +- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true); ++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true); + + KServiceGroup *entry = g_bsgf->addNew("/", kdeMenu->directoryFile, 0, false); + entry->setLayoutInfo(kdeMenu->layoutList); +diff -Nura kdelibs-3.5.10/kded/kde-applications.menu kdelibs-3.5.10.new/kded/kde-applications.menu +--- kdelibs-3.5.10/kded/kde-applications.menu 1970-01-01 01:00:00.000000000 +0100 ++++ kdelibs-3.5.10.new/kded/kde-applications.menu 2005-09-10 10:27:40.000000000 +0200 +@@ -0,0 +1,469 @@ ++ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" ++ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> ++ ++<Menu> ++ <Name>Applications</Name> ++ <Directory>kde-main.directory</Directory> ++ <!-- Search the default locations --> ++ <KDELegacyDirs/> ++ <DefaultAppDirs/> ++ <DefaultDirectoryDirs/> ++ <DefaultLayout> ++ <Merge type="menus"/> ++ <Merge type="files"/> ++ <Separator/> ++ <Menuname>More</Menuname> ++ </DefaultLayout> ++ <Layout> ++ <Merge type="menus"/> ++ <Menuname>Applications</Menuname> ++ <Merge type="files"/> ++ </Layout> ++ ++ <Menu> ++ <Name>Applications</Name> ++ <Directory>kde-unknown.directory</Directory> ++ <OnlyUnallocated/> ++ <Include> ++ <Not> ++ <!-- Don't list non-KDE core applications --> ++ <And> ++ <Category>Core</Category> ++ <Not><Category>KDE</Category></Not> ++ </And> ++ <!-- Don't list SUSE's YaST in here --> ++ <Category>X-SuSE-YaST</Category> ++ </Not> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Development</Name> ++ <Directory>kde-development.directory</Directory> ++ <Menu> ++ <Name>X-KDE-KDevelopIDE</Name> ++ <Directory>kde-development-kdevelop.directory</Directory> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Category>X-KDE-KDevelopIDE</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Translation</Name> ++ <Directory>kde-development-translation.directory</Directory> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Category>Translation</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Web Development</Name> ++ <Directory>kde-development-webdevelopment.directory</Directory> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Category>WebDevelopment</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Include> ++ <And> ++ <Category>Development</Category> ++ <Not><Category>X-KDE-KDevelopIDE</Category></Not> ++ <Not><Category>Translation</Category></Not> ++ <Not><Category>WebDevelopment</Category></Not> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Science</Name> ++ <Directory>kde-science.directory</Directory> ++ <Include> ++ <And><!-- Include /any/ Science app which is not an Education app --> ++ <Or> ++ <Category>Astronomy</Category> ++ <Category>Biology</Category> ++ <Category>Chemistry</Category> ++ <Category>Geology</Category> ++ <Category>MedicalSoftware</Category> ++ <Category>Physics</Category> ++ <Category>Math</Category> ++ <Category>Science</Category> ++ </Or> ++ <Not><Category>Education</Category></Not> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Edutainment</Name> ++ <Directory>kde-edutainment.directory</Directory> ++ <Menu> ++ <Name>Languages</Name> ++ <Directory>kde-edu-languages.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Or> ++ <Category>Languages</Category> ++ <Category>X-KDE-Edu-Language</Category> ++ </Or> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Mathematics</Name> ++ <Directory>kde-edu-mathematics.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Category>Math</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Miscellaneous</Name> ++ <Directory>kde-edu-miscellaneous.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Not> ++ <Category>Languages</Category> ++ <Category>X-KDE-Edu-Language</Category> ++ <Category>Math</Category> ++ <Category>Science</Category> ++ <Category>Teaching</Category> ++ <Category>X-KDE-Edu-Teaching</Category> ++ </Not> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Science</Name> ++ <Directory>kde-edu-science.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Category>Science</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Tools</Name> ++ <Directory>kde-edu-tools.directory</Directory> ++ <Include> ++ <And> ++ <Category>Education</Category> ++ <Or> ++ <Category>Teaching</Category> ++ <Category>X-KDE-Edu-Teaching</Category> ++ </Or> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Games</Name> ++ <Directory>kde-games.directory</Directory> ++ <Menu> ++ <Name>Arcade</Name> ++ <Directory>kde-games-arcade.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>ArcadeGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Board</Name> ++ <Directory>kde-games-board.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>BoardGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Card</Name> ++ <Directory>kde-games-card.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>CardGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Kidsgames</Name> ++ <Directory>kde-games-kids.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Or> ++ <Category>X-KDE-KidsGame</Category> ++ <Category>KidsGame</Category> ++ </Or> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>TacticStrategy</Name> ++ <Directory>kde-games-strategy.directory</Directory> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Category>StrategyGame</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Include> ++ <And> ++ <Category>Game</Category> ++ <Not> ++ <Category>ArcadeGame</Category> ++ <Category>BoardGame</Category> ++ <Category>CardGame</Category> ++ <Category>X-KDE-KidsGame</Category> ++ <Category>KidsGame</Category> ++ <Category>StrategyGame</Category> ++ </Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>Toys</Name> ++ <Directory>kde-toys.directory</Directory> ++ <Include> ++ <Category>Amusement</Category> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Graphics</Name> ++ <Directory>kde-graphics.directory</Directory> ++ <Include> ++ <And> ++ <Category>Graphics</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Graphics</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Internet</Name> ++ <Directory>kde-internet.directory</Directory> ++ <Include> ++ <And> ++ <Category>Network</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>Terminal</Name> ++ <Directory>kde-internet-terminal.directory</Directory> ++ </Menu> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Network</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Multimedia</Name> ++ <Directory>kde-multimedia.directory</Directory> ++ <Include> ++ <And> ++ <Category>AudioVideo</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>AudioVideo</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Office</Name> ++ <Directory>kde-office.directory</Directory> ++ <Layout> ++ <Merge type="menus"/> ++ <Filename>kde-koshell.desktop</Filename> ++ <Filename>kde-Kontact.desktop</Filename> ++ <Separator/> ++ <Filename>kde-kword.desktop</Filename> ++ <Filename>kde-kspread.desktop</Filename> ++ <Filename>kde-kpresenter.desktop</Filename> ++ <Merge type="files"/> ++ <Separator/> ++ <Menuname>More</Menuname> ++ </Layout> ++ <Include> ++ <And> ++ <Category>Office</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Office</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Settingsmenu</Name> ++ <Directory>kde-settingsmenu.directory</Directory> ++ <Include> ++ <Category>Settings</Category> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>System</Name> ++ <Directory>kde-system.directory</Directory> ++ <Include> ++ <And> ++ <Category>System</Category> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>System</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>ScreenSavers</Name> ++ <Directory>kde-system-screensavers.directory</Directory> ++ </Menu> ++ <Menu> ++ <Name>Terminal</Name> ++ <Directory>kde-system-terminal.directory</Directory> ++ </Menu> ++ </Menu> ++ <Menu> ++ <Name>Utilities</Name> ++ <Directory>kde-utilities.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Not><Category>Accessibility</Category></Not> ++ <Not><Category>X-KDE-Utilities-Desktop</Category></Not> ++ <Not><Category>X-KDE-Utilities-File</Category></Not> ++ <Not><Category>X-KDE-Utilities-Peripherals</Category></Not> ++ <Not><Category>X-KDE-Utilities-PIM</Category></Not> ++ <Not><Category>X-KDE-More</Category></Not> ++ </And> ++ </Include> ++ <Menu> ++ <Name>Accessibility</Name> ++ <Directory>kde-utilities-accessibility.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>Accessibility</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Desktop</Name> ++ <Directory>kde-utilities-desktop.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-Desktop</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Editors</Name> ++ <Directory>kde-editors.directory</Directory> ++ <Include> ++ <Category>TextEditor</Category> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>File</Name> ++ <Directory>kde-utilities-file.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-File</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>Peripherals</Name> ++ <Directory>kde-utilities-peripherals.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-Peripherals</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>PIM</Name> ++ <Directory>kde-utilities-pim.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-Utilities-PIM</Category> ++ </And> ++ </Include> ++ </Menu> ++ <Menu> ++ <Name>XUtilities</Name> ++ <Directory>kde-utilities-xutils.directory</Directory> ++ </Menu> ++ <Menu> ++ <Name>More</Name> ++ <Directory>kde-more.directory</Directory> ++ <Include> ++ <And> ++ <Category>Utility</Category> ++ <Category>X-KDE-More</Category> ++ </And> ++ </Include> ++ </Menu> ++ </Menu> ++ <Include> ++ <And> ++ <Category>KDE</Category> ++ <Category>Core</Category> ++ </And> ++ </Include> ++ <DefaultMergeDirs/> ++ <MergeFile>applications-kmenuedit.menu</MergeFile> ++</Menu> diff --git a/testing/kdelibs3/kdelibs3-cups16.patch b/testing/kdelibs3/kdelibs3-cups16.patch new file mode 100644 index 000000000..6736d49d3 --- /dev/null +++ b/testing/kdelibs3/kdelibs3-cups16.patch @@ -0,0 +1,724 @@ +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/cupsdconf2/cupsdconf.cpp kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2012-10-06 15:08:17.460612585 -0400 +@@ -629,26 +629,26 @@ + cups_lang_t* lang = cupsLangDefault(); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang)); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language); +- request_->request.op.operation_id = CUPS_GET_PRINTERS; ++ ippSetOperation(request_, CUPS_GET_PRINTERS); + request_ = cupsDoRequest(http_, request_, "/printers/"); + if (request_) + { + QString name; + int type(0); +- ipp_attribute_t *attr = request_->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); + while (attr) + { + // check new printer (keep only local non-implicit printers) +- if (!attr->name) ++ if (!ippGetName(attr)) + { + if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty()) + resources_.append(new CupsResource("/printers/"+name)); + name = ""; + type = 0; + } +- else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text; +- else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer; +- attr = attr->next; ++ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL); ++ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0); ++ attr = ippNextAttribute(request_); + } + if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty()) + resources_.append(new CupsResource("/printers/"+name)); +@@ -658,26 +658,26 @@ + request_ = ippNew(); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang)); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language); +- request_->request.op.operation_id = CUPS_GET_CLASSES; ++ ippSetOperation(request_, CUPS_GET_CLASSES); + request_ = cupsDoRequest(http_, request_, "/classes/"); + if (request_) + { + QString name; + int type(0); +- ipp_attribute_t *attr = request_->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); + while (attr) + { + // check new class (keep only local classes) +- if (!attr->name) ++ if (!ippGetName(attr)) + { + if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty()) + resources_.append(new CupsResource("/classes/"+name)); + name = ""; + type = 0; + } +- else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text; +- else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer; +- attr = attr->next; ++ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL); ++ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0); ++ attr = ippNextAttribute(request_); + } + if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty()) + resources_.append(new CupsResource("/classes/"+name)); +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.cpp kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp 2012-10-06 15:12:00.919127451 -0400 +@@ -51,32 +51,34 @@ + kdDebug(500) << "Null request" << endl; + return; + } +- kdDebug(500) << "State = 0x" << QString::number(req->state, 16) << endl; +- kdDebug(500) << "ID = 0x" << QString::number(req->request.status.request_id, 16) << endl; ++ kdDebug(500) << "State = 0x" << QString::number(ippGetState(req), 16) << endl; ++ kdDebug(500) << "ID = 0x" << QString::number(ippGetRequestId(req), 16) << endl; + if (answer) + { +- kdDebug(500) << "Status = 0x" << QString::number(req->request.status.status_code, 16) << endl; +- kdDebug(500) << "Status message = " << ippErrorString(req->request.status.status_code) << endl; ++ kdDebug(500) << "Status = 0x" << QString::number(ippGetStatusCode(req), 16) << endl; ++ kdDebug(500) << "Status message = " << ippErrorString(ippGetStatusCode(req)) << endl; + } + else +- kdDebug(500) << "Operation = 0x" << QString::number(req->request.op.operation_id, 16) << endl; +- kdDebug(500) << "Version = " << (int)(req->request.status.version[0]) << "." << (int)(req->request.status.version[1]) << endl; ++ kdDebug(500) << "Operation = 0x" << QString::number(ippGetOperation(req), 16) << endl; ++ int minorVersion; ++ int majorVersion = ippGetVersion(req, &minorVersion); ++ kdDebug(500) << "Version = " << (int)(majorVersion) << "." << (int)(minorVersion) << endl; + kdDebug(500) << endl; + +- ipp_attribute_t *attr = req->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(req); + while (attr) + { +- QString s = QString::fromLatin1("%1 (0x%2) = ").arg(attr->name).arg(attr->value_tag, 0, 16); +- for (int i=0;i<attr->num_values;i++) ++ QString s = QString::fromLatin1("%1 (0x%2) = ").arg(ippGetName(attr)).arg(ippGetValueTag(attr), 0, 16); ++ for (int i=0;i<ippGetCount(attr);i++) + { +- switch (attr->value_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: + case IPP_TAG_ENUM: +- s += ("0x"+QString::number(attr->values[i].integer, 16)); ++ s += ("0x"+QString::number(ippGetInteger(attr, i), 16)); + break; + case IPP_TAG_BOOLEAN: +- s += (attr->values[i].boolean ? "true" : "false"); ++ s += (ippGetBoolean(attr, i) ? "true" : "false"); + break; + case IPP_TAG_STRING: + case IPP_TAG_TEXT: +@@ -88,16 +90,16 @@ + case IPP_TAG_TEXTLANG: + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: +- s += attr->values[i].string.text; ++ s += ippGetString(attr, i, NULL); + break; + default: + break; + } +- if (i != (attr->num_values-1)) ++ if (i != (ippGetCount(attr)-1)) + s += ", "; + } + kdDebug(500) << s << endl; +- attr = attr->next; ++ attr = ippNextAttribute(req); + } + } + +@@ -177,7 +179,7 @@ + ipp_attribute_t *attr = ippAddStrings(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL,NULL); + int i(0); + for (QStringList::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].string.text = strdup((*it).local8Bit()); ++ ippSetString(request_, &attr, i, strdup((*it).local8Bit())); + } + } + +@@ -193,7 +195,7 @@ + ipp_attribute_t *attr = ippAddIntegers(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL); + int i(0); + for (QValueList<int>::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].integer = *it; ++ ippSetInteger(request_, &attr, i, *it); + } + } + +@@ -209,19 +211,19 @@ + ipp_attribute_t *attr = ippAddBooleans(request_,(ipp_tag_t)group,name.latin1(),(int)(values.count()),NULL); + int i(0); + for (QValueList<bool>::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].boolean = (char)(*it); ++ ippSetBoolean(request_, &attr, i, (char)(*it)); + } + } + + void IppRequest::setOperation(int op) + { +- request_->request.op.operation_id = (ipp_op_t)op; +- request_->request.op.request_id = 1; // 0 is not RFC-compliant, should be at least 1 ++ ippSetOperation(request_, (ipp_op_t)op); ++ ippSetRequestId(request_, 1); // 0 is not RFC-compliant, should be at least 1 + } + + int IppRequest::status() + { +- return (request_ ? request_->request.status.status_code : (connect_ ? cupsLastError() : -2)); ++ return (request_ ? ippGetStatusCode(request_) : (connect_ ? cupsLastError() : -2)); + } + + QString IppRequest::statusMessage() +@@ -248,7 +250,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type); + if (attr) + { +- value = attr->values[0].integer; ++ value = ippGetInteger(attr, 0); + return true; + } + else return false; +@@ -260,7 +262,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type); + if (attr) + { +- value = QString::fromLocal8Bit(attr->values[0].string.text); ++ value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL)); + return true; + } + else return false; +@@ -273,8 +275,8 @@ + values.clear(); + if (attr) + { +- for (int i=0;i<attr->num_values;i++) +- values.append(QString::fromLocal8Bit(attr->values[i].string.text)); ++ for (int i=0;i<ippGetCount(attr);i++) ++ values.append(QString::fromLocal8Bit(ippGetString(attr, i, NULL))); + return true; + } + else return false; +@@ -286,7 +288,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), IPP_TAG_BOOLEAN); + if (attr) + { +- value = (bool)attr->values[0].boolean; ++ value = (bool)ippGetBoolean(attr, 0); + return true; + } + else return false; +@@ -338,10 +340,10 @@ + } + + /* No printers found */ +- if ( request_ && request_->request.status.status_code == 0x406 ) ++ if ( request_ && ippGetStatusCode(request_) == 0x406 ) + return true; + +- if (!request_ || request_->state == IPP_ERROR || (request_->request.status.status_code & 0x0F00)) ++ if (!request_ || ippGetState(request_) == IPP_ERROR || (ippGetStatusCode(request_) & 0x0F00)) + return false; + + +@@ -356,36 +358,36 @@ + output << "<tr><th bgcolor=\"dark blue\"><font color=\"white\">" << i18n("Attribute") << "</font></th>" << endl; + output << "<th bgcolor=\"dark blue\"><font color=\"white\">" << i18n("Values") << "</font></th></tr>" << endl; + // go to the first attribute of the specified group +- ipp_attribute_t *attr = request_->attrs; +- while (attr && attr->group_tag != group) +- attr = attr->next; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); ++ while (attr && ippGetGroupTag(attr) != group) ++ attr = ippNextAttribute(request_); + // print each attribute +- ipp_uchar_t *d; +- QCString dateStr; +- QDateTime dt; +- bool bg(false); +- while (attr && attr->group_tag == group) ++ const ipp_uchar_t *d; ++ QCString dateStr; ++ QDateTime dt; ++ bool bg(false); ++ while (attr && ippGetGroupTag(attr) == group) + { +- output << " <tr bgcolor=\"" << (bg ? "#ffffd9" : "#ffffff") << "\">\n <td><b>" << attr->name << "</b></td>\n <td>" << endl; ++ output << " <tr bgcolor=\"" << (bg ? "#ffffd9" : "#ffffff") << "\">\n <td><b>" << ippGetName(attr) << "</b></td>\n <td>" << endl; + bg = !bg; +- for (int i=0; i<attr->num_values; i++) ++ for (int i=0; i<ippGetCount(attr); i++) + { +- switch (attr->value_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: +- if (attr->name && strstr(attr->name, "time")) ++ if (ippGetName(attr) && strstr(ippGetName(attr), "time")) + { +- dt.setTime_t((unsigned int)(attr->values[i].integer)); ++ dt.setTime_t((unsigned int)(ippGetInteger(attr, i))); + output << dt.toString(); + } + else +- output << attr->values[i].integer; ++ output << ippGetInteger(attr, i); + break; + case IPP_TAG_ENUM: +- output << "0x" << hex << attr->values[i].integer << dec; ++ output << "0x" << hex << ippGetInteger(attr, i) << dec; + break; + case IPP_TAG_BOOLEAN: +- output << (attr->values[i].boolean ? i18n("True") : i18n("False")); ++ output << (ippGetBoolean(attr, i) ? i18n("True") : i18n("False")); + break; + case IPP_TAG_STRING: + case IPP_TAG_TEXTLANG: +@@ -397,18 +399,25 @@ + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: + case IPP_TAG_MIMETYPE: +- output << attr->values[i].string.text; ++ output << ippGetString(attr, i, NULL); + break; + case IPP_TAG_RESOLUTION: +- output << "( " << attr->values[i].resolution.xres +- << ", " << attr->values[i].resolution.yres << " )"; ++ int xres; ++ int yres; ++ ipp_res_t units; ++ xres = ippGetResolution(attr, i, &yres, &units); ++ output << "( " << xres ++ << ", " << yres << " )"; + break; + case IPP_TAG_RANGE: +- output << "[ " << (attr->values[i].range.lower > 0 ? attr->values[i].range.lower : 1) +- << ", " << (attr->values[i].range.upper > 0 ? attr->values[i].range.upper : 65535) << " ]"; ++ int lowervalue; ++ int uppervalue; ++ lowervalue = ippGetRange(attr, i, &uppervalue); ++ output << "[ " << (lowervalue > 0 ? lowervalue : 1) ++ << ", " << (uppervalue > 0 ? uppervalue : 65535) << " ]"; + break; + case IPP_TAG_DATE: +- d = attr->values[i].date; ++ d = ippGetDate(attr, i); + dateStr.sprintf("%.4d-%.2d-%.2d, %.2d:%.2d:%.2d %c%.2d%.2d", + d[0]*256+d[1], d[2], d[3], + d[4], d[5], d[6], +@@ -418,11 +427,11 @@ + default: + continue; + } +- if (i < attr->num_values-1) ++ if (i < ippGetCount(attr)-1) + output << "<br>"; + } + output << "</td>\n </tr>" << endl; +- attr = attr->next; ++ attr = ippNextAttribute(request_); + } + // end table + output << "</table>" << endl; +@@ -438,31 +447,34 @@ + ipp_attribute_t *attr = first(); + while (attr) + { +- if (group != -1 && attr->group_tag != group) ++ if (group != -1 && ippGetGroupTag(attr) != group) + { +- attr = attr->next; ++ attr = ippNextAttribute(request_); + continue; + } + QString value; +- for (int i=0; i<attr->num_values; i++) ++ for (int i=0; i<ippGetCount(attr); i++) + { +- switch (attr->value_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: + case IPP_TAG_ENUM: +- value.append(QString::number(attr->values[i].integer)).append(","); ++ value.append(QString::number(ippGetInteger(attr, i))).append(","); + break; + case IPP_TAG_BOOLEAN: +- value.append((attr->values[i].boolean ? "true" : "false")).append(","); ++ value.append((ippGetBoolean(attr, i) ? "true" : "false")).append(","); + break; + case IPP_TAG_RANGE: +- if (attr->values[i].range.lower > 0) +- value.append(QString::number(attr->values[i].range.lower)); +- if (attr->values[i].range.lower != attr->values[i].range.upper) ++ int lowervalue; ++ int uppervalue; ++ lowervalue = ippGetRange(attr, i, &uppervalue); ++ if (lowervalue > 0) ++ value.append(QString::number(lowervalue)); ++ if (lowervalue != uppervalue) + { + value.append("-"); +- if (attr->values[i].range.upper > 0) +- value.append(QString::number(attr->values[i].range.upper)); ++ if (uppervalue > 0) ++ value.append(QString::number(uppervalue)); + } + value.append(","); + break; +@@ -476,7 +488,7 @@ + case IPP_TAG_TEXTLANG: + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: +- value.append(QString::fromLocal8Bit(attr->values[i].string.text)).append(","); ++ value.append(QString::fromLocal8Bit(ippGetString(attr, i, NULL))).append(","); + break; + default: + break; +@@ -484,8 +496,8 @@ + } + if (!value.isEmpty()) + value.truncate(value.length()-1); +- opts[QString::fromLocal8Bit(attr->name)] = value; +- attr = attr->next; ++ opts[QString::fromLocal8Bit(ippGetName(attr))] = value; ++ attr = ippNextAttribute(request_); + } + } + return opts; +@@ -542,3 +554,7 @@ + } + #endif + } ++ ++ ++ipp_attribute_t* IppRequest::first() ++{ return (request_ ? ippFirstAttribute(request_) : NULL); } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.h kdelibs-3.5.10/kdeprint/cups/ipprequest.h +--- kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.h 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/ipprequest.h 2012-10-06 15:06:05.581489574 -0400 +@@ -72,7 +72,7 @@ + bool keyword(const QString& name, QStringList& value); + bool mime(const QString& name, QString& value); + ipp_attribute_t* first(); +- ipp_attribute_t* last(); ++ ipp_t* request(); + QMap<QString,QString> toMap(int group = -1); + void setMap(const QMap<QString,QString>& opts); + +@@ -178,12 +178,6 @@ + inline bool IppRequest::doRequest(const QString& res) + { return doFileRequest(res); } + +-inline ipp_attribute_t* IppRequest::first() +-{ return (request_ ? request_->attrs : NULL); } +- +-inline ipp_attribute_t* IppRequest::last() +-{ return (request_ ? request_->last : NULL); } +- + inline void IppRequest::setHost(const QString& host) + { host_ = host; } + +@@ -193,4 +187,7 @@ + inline void IppRequest::dump(int state) + { dump_ = state; } + ++inline ipp_t* IppRequest::request() ++{ return request_; } ++ + #endif +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsjobmanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsjobmanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp 2012-10-06 15:13:31.451859386 -0400 +@@ -36,6 +36,8 @@ + #include <kdebug.h> + #include <kurl.h> + ++#include "config.h" ++ + KMCupsJobManager::KMCupsJobManager(QObject *parent, const char *name, const QStringList & /*args*/) + : KMJobManager(parent,name) + { +@@ -166,17 +168,18 @@ + void KMCupsJobManager::parseListAnswer(IppRequest& req, KMPrinter *pr) + { + ipp_attribute_t *attr = req.first(); ++ ipp_attribute_t *nextAttr; + KMJob *job = new KMJob(); + QString uri; + while (attr) + { +- QString name(attr->name); +- if (name == "job-id") job->setId(attr->values[0].integer); +- else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(attr->values[0].string.text)); +- else if (name == "job-name") job->setName(QString::fromLocal8Bit(attr->values[0].string.text)); ++ QString name(ippGetName(attr)); ++ if (name == "job-id") job->setId(ippGetInteger(attr, 0)); ++ else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); ++ else if (name == "job-name") job->setName(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + else if (name == "job-state") + { +- switch (attr->values[0].integer) ++ switch (ippGetInteger(attr, 0)) + { + case IPP_JOB_PENDING: + job->setState(KMJob::Queued); +@@ -204,29 +207,30 @@ + break; + } + } +- else if (name == "job-k-octets") job->setSize(attr->values[0].integer); +- else if (name == "job-originating-user-name") job->setOwner(QString::fromLocal8Bit(attr->values[0].string.text)); +- else if (name == "job-k-octets-completed") job->setProcessedSize(attr->values[0].integer); +- else if (name == "job-media-sheets") job->setPages(attr->values[0].integer); +- else if (name == "job-media-sheets-completed") job->setProcessedPages(attr->values[0].integer); ++ else if (name == "job-k-octets") job->setSize(ippGetInteger(attr, 0)); ++ else if (name == "job-originating-user-name") job->setOwner(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); ++ else if (name == "job-k-octets-completed") job->setProcessedSize(ippGetInteger(attr, 0)); ++ else if (name == "job-media-sheets") job->setPages(ippGetInteger(attr, 0)); ++ else if (name == "job-media-sheets-completed") job->setProcessedPages(ippGetInteger(attr, 0)); + else if (name == "job-printer-uri" && !pr->isRemote()) + { +- QString str(attr->values[0].string.text); ++ QString str(ippGetString(attr, 0, NULL)); + int p = str.findRev('/'); + if (p != -1) + job->setPrinter(str.mid(p+1)); + } + else if (name == "job-priority") + { +- job->setAttribute(0, QString::fromLatin1("%1").arg(attr->values[0].integer, 3)); ++ job->setAttribute(0, QString::fromLatin1("%1").arg(ippGetInteger(attr, 0), 3)); + } + else if (name == "job-billing") + { + job->setAttributeCount(2); +- job->setAttribute(1, QString::fromLocal8Bit(attr->values[0].string.text)); ++ job->setAttribute(1, QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + } + +- if (name.isEmpty() || attr == req.last()) ++ nextAttr = ippNextAttribute(req.request()); ++ if (name.isEmpty() || (!nextAttr)) + { + if (job->printer().isEmpty()) + job->setPrinter(pr->printerName()); +@@ -234,8 +238,7 @@ + addJob(job); // don't use job after this call !!! + job = new KMJob(); + } +- +- attr = attr->next; ++ attr = nextAttr; + } + delete job; + } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsmanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsmanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp 2012-10-06 15:14:22.311521604 -0400 +@@ -476,19 +476,20 @@ + void KMCupsManager::processRequest(IppRequest* req) + { + ipp_attribute_t *attr = req->first(); ++ ipp_attribute_t *nextAttr; + KMPrinter *printer = new KMPrinter(); + while (attr) + { +- QString attrname(attr->name); ++ QString attrname(ippGetName(attr)); + if (attrname == "printer-name") + { +- QString value = QString::fromLocal8Bit(attr->values[0].string.text); ++ QString value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL)); + printer->setName(value); + printer->setPrinterName(value); + } + else if (attrname == "printer-type") + { +- int value = attr->values[0].integer; ++ int value = ippGetInteger(attr, 0); + printer->setType(0); + printer->addType(((value & CUPS_PRINTER_CLASS) || (value & CUPS_PRINTER_IMPLICIT) ? KMPrinter::Class : KMPrinter::Printer)); + if ((value & CUPS_PRINTER_REMOTE)) printer->addType(KMPrinter::Remote); +@@ -499,7 +500,7 @@ + } + else if (attrname == "printer-state") + { +- switch (attr->values[0].integer) ++ switch (ippGetInteger(attr, 0)) + { + case IPP_PRINTER_IDLE: printer->setState(KMPrinter::Idle); break; + case IPP_PRINTER_PROCESSING: printer->setState(KMPrinter::Processing); break; +@@ -508,22 +509,24 @@ + } + else if (attrname == "printer-uri-supported") + { +- printer->setUri(KURL(attr->values[0].string.text)); ++ printer->setUri(KURL(ippGetString(attr, 0, NULL))); + } + else if (attrname == "printer-location") + { +- printer->setLocation(QString::fromLocal8Bit(attr->values[0].string.text)); ++ printer->setLocation(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + } + else if (attrname == "printer-is-accepting-jobs") + { +- printer->setAcceptJobs(attr->values[0].boolean); ++ printer->setAcceptJobs(ippGetBoolean(attr, 0)); + } +- if (attrname.isEmpty() || attr == req->last()) ++ ++ nextAttr = ippNextAttribute(req->request()); ++ if (attrname.isEmpty() || (!nextAttr)) + { + addPrinter(printer); + printer = new KMPrinter(); + } +- attr = attr->next; ++ attr = nextAttr; + } + delete printer; + } +@@ -817,6 +820,7 @@ + { + QStringList list; + IppRequest req; ++ ipp_attribute_t *nextAttr; + req.setOperation(CUPS_GET_DEVICES); + if (req.doRequest("/")) + { +@@ -824,12 +828,13 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- QString attrname(attr->name); +- if (attrname == "device-info") desc = attr->values[0].string.text; +- else if (attrname == "device-make-and-model") printer = attr->values[0].string.text; +- else if (attrname == "device-uri") uri = attr->values[0].string.text; +- else if ( attrname == "device-class" ) cl = attr->values[ 0 ].string.text; +- if (attrname.isEmpty() || attr == req.last()) ++ QString attrname(ippGetName(attr)); ++ if (attrname == "device-info") desc = ippGetString(attr, 0, NULL); ++ else if (attrname == "device-make-and-model") printer = ippGetString(attr, 0, NULL); ++ else if (attrname == "device-uri") uri = ippGetString(attr, 0, NULL); ++ else if ( attrname == "device-class" ) cl = ippGetString(attr, 0, NULL); ++ nextAttr = ippNextAttribute(req.request()); ++ if (attrname.isEmpty() || (!nextAttr)) + { + if (!uri.isEmpty()) + { +@@ -838,7 +843,7 @@ + } + uri = desc = printer = cl = QString::null; + } +- attr = attr->next; ++ attr = nextAttr; + } + } + return list; +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsuimanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsuimanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp 2012-10-06 15:14:55.177970017 -0400 +@@ -60,6 +60,8 @@ + #include <kaction.h> + #include <kmessagebox.h> + ++#include "config.h" ++ + KMCupsUiManager::KMCupsUiManager(QObject *parent, const char *name, const QStringList & /*args*/) + : KMUiManager(parent,name) + { +@@ -143,22 +145,22 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"device-uri") == 0) ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0) + { +- if (strncmp(attr->values[0].string.text,"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true); +- else if (strncmp(attr->values[0].string.text,"parallel",8) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"serial",6) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"smb",3) == 0) backend->enableBackend(KMWizard::SMB,true); +- else if (strncmp(attr->values[0].string.text,"lpd",3) == 0) backend->enableBackend(KMWizard::LPD,true); +- else if (strncmp(attr->values[0].string.text,"usb",3) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"http",4) == 0 || strncmp(attr->values[0].string.text,"ipp",3) == 0) ++ if (strncmp(ippGetString(attr, 0, NULL),"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"parallel",8) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"serial",6) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"smb",3) == 0) backend->enableBackend(KMWizard::SMB,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"lpd",3) == 0) backend->enableBackend(KMWizard::LPD,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"usb",3) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"http",4) == 0 || strncmp(ippGetString(attr, 0, NULL),"ipp",3) == 0) + { + backend->enableBackend(KMWizard::IPP,true); + backend->enableBackend(KMWizard::Custom+1,true); + } +- else if (strncmp(attr->values[0].string.text,"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true); + } +- attr = attr->next; ++ attr = ippNextAttribute(req.request()); + } + backend->enableBackend(KMWizard::Class, true); + backend->enableBackend(KMWizard::Custom+5, true); +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmwfax.cpp kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmwfax.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp 2012-10-06 15:15:28.044418449 -0400 +@@ -30,6 +30,8 @@ + #include <kiconloader.h> + #include <kurl.h> + ++#include "config.h" ++ + KMWFax::KMWFax(QWidget *parent, const char *name) + : KMWizardPage(parent,name) + { +@@ -55,11 +57,11 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"device-uri") == 0 && strncmp(attr->values[0].string.text,"fax",3) == 0) ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0 && strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0) + { +- m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(attr->values[0].string.text)); ++ m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(ippGetString(attr, 0, NULL))); + } +- attr = attr->next; ++ attr = ippNextAttribute(req.request()); + } + } + } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmwippselect.cpp kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmwippselect.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp 2012-10-06 15:15:56.867560417 -0400 +@@ -29,6 +29,8 @@ + #include <kdebug.h> + #include <kiconloader.h> + ++#include "config.h" ++ + KMWIppSelect::KMWIppSelect(QWidget *parent, const char *name) + : KMWizardPage(parent,name) + { +@@ -83,9 +85,9 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"printer-name") == 0) +- m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(attr->values[0].string.text)); +- attr = attr->next; ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"printer-name") == 0) ++ m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(ippGetString(attr, 0, NULL))); ++ attr = ippNextAttribute(req.request()); + } + m_list->sort(); + } diff --git a/testing/kdelibs3/kdelibs3-missing-include.patch b/testing/kdelibs3/kdelibs3-missing-include.patch new file mode 100644 index 000000000..5b84ef746 --- /dev/null +++ b/testing/kdelibs3/kdelibs3-missing-include.patch @@ -0,0 +1,10 @@ +--- kdeprint/cups/cupsdconf2/cups-util.c.old 2012-01-19 01:30:26.000000000 -0500 ++++ kdeprint/cups/cupsdconf2/cups-util.c 2012-01-19 01:31:33.000000000 -0500 +@@ -2,6 +2,7 @@ + #include <cups/http.h> + #include <cups/cups.h> + #include <stdlib.h> ++#include <stdio.h> + #include <fcntl.h> + #include <sys/stat.h> + #include <unistd.h> diff --git a/testing/kdelibs3/kdelibs3.install b/testing/kdelibs3/kdelibs3.install new file mode 100644 index 000000000..7291ac0a2 --- /dev/null +++ b/testing/kdelibs3/kdelibs3.install @@ -0,0 +1,12 @@ +post_install() { + post_remove +} + +post_upgrade() { + post_remove +} + +post_remove() { + # this can be removed in future versions + sed -ie '/\/opt\/kde\/lib/d' etc/ld.so.conf +} diff --git a/testing/kdelibs3/openssl.patch b/testing/kdelibs3/openssl.patch new file mode 100644 index 000000000..a948b884a --- /dev/null +++ b/testing/kdelibs3/openssl.patch @@ -0,0 +1,180 @@ +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.cc +--- kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x 2009-09-04 23:10:53.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -96,9 +96,14 @@ static int (*K_BIO_write) (BIO *b, cons + static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *, + const EVP_CIPHER *,unsigned char *,int , + pem_password_cb *, void *) = 0L; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L; ++static ASN1_ITEM *K_NETSCAPE_X509_it = 0L; ++#else + static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L; + static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L; + static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L; ++#endif + static int (*K_X509_print_fp) (FILE *, X509*) = 0L; + static int (*K_i2d_PKCS12) (PKCS12*, unsigned char**) = 0L; + static int (*K_i2d_PKCS12_fp) (FILE *, PKCS12*) = 0L; +@@ -430,9 +435,14 @@ KConfig *cfg; + K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) _cryptoLib->symbol("BIO_ctrl"); + K_BIO_write = (int (*) (BIO *b, const void *data, int len)) _cryptoLib->symbol("BIO_write"); + K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) _cryptoLib->symbol("PEM_ASN1_write_bio"); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_item_i2d_fp"); ++ K_NETSCAPE_X509_it = (ASN1_ITEM *) _cryptoLib->symbol("NETSCAPE_X509_it"); ++#else + K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) _cryptoLib->symbol("X509_asn1_meth"); + K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_i2d_fp"); + K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) _cryptoLib->symbol("i2d_ASN1_HEADER"); ++#endif + K_X509_print_fp = (int (*)(FILE*, X509*)) _cryptoLib->symbol("X509_print_fp"); + K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) _cryptoLib->symbol("i2d_PKCS12"); + K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) _cryptoLib->symbol("i2d_PKCS12_fp"); +@@ -594,7 +604,7 @@ KConfig *cfg; + K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) _sslLib->symbol("SSL_set_session"); + K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, long)) _sslLib->symbol("d2i_SSL_SESSION"); + K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) _sslLib->symbol("i2d_SSL_SESSION"); +- K_SSL_get_ciphers = (STACK *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); ++ K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); + #endif + + +@@ -982,7 +992,13 @@ int KOpenSSLProxy::PEM_write_bio_X509(BI + else return -1; + } + +- ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) { ++ if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it) ++ return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x); ++ else return -1; ++} ++#else + ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) { + if (K_X509_asn1_meth) return (K_X509_asn1_meth)(); + else return 0L; +@@ -994,7 +1010,7 @@ int KOpenSSLProxy::ASN1_i2d_fp(FILE *out + return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x); + else return -1; + } +- ++#endif + + int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) { + if (K_X509_print_fp) return (K_X509_print_fp)(fp, x); +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.h +--- kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x 2006-07-22 10:16:39.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.h 2009-09-04 23:10:53.000000000 +0200 +@@ -48,6 +48,9 @@ class KOpenSSLProxyPrivate; + #include <openssl/stack.h> + #include <openssl/bn.h> + #undef crypt ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++#define STACK _STACK ++#endif + #endif + + #include <kstaticdeleter.h> +@@ -446,12 +449,12 @@ public: + */ + int PEM_write_bio_X509(BIO *bp, X509 *x); + +- ++#if OPENSSL_VERSION_NUMBER < 0x10000000L + /* + * X509_asn1_meth - used for netscape output + */ + ASN1_METHOD *X509_asn1_meth(); +- ++#endif + + /* + * ASN1_i2d_fp - used for netscape output +@@ -531,6 +534,9 @@ public: + */ + void sk_free(STACK *s); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); } ++#endif + + /* + * Number of elements in the stack +@@ -543,6 +549,9 @@ public: + */ + char *sk_value(STACK *s, int n); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); } ++#endif + + /* + * Create a new stack +@@ -555,6 +564,9 @@ public: + */ + int sk_push(STACK *s, char *d); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); } ++#endif + + /* + * Duplicate the stack +diff -up kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc +--- kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x 2005-10-10 17:05:44.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -87,7 +87,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate + + + STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList<KSSLCertificate> &certs) { +- STACK_OF(X509) *x509 = sk_new(NULL); ++ STACK_OF(X509) *x509 = reinterpret_cast<STACK_OF(X509)*>(sk_new(NULL)); + KSSLCertificate *cert = certs.first(); + while(cert) { + sk_X509_push(x509, cert->getCert()); +diff -up kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksslcertificate.cc +--- kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x 2006-01-19 18:06:12.000000000 +0100 ++++ kdelibs-3.5.10/kio/kssl/ksslcertificate.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -1003,17 +1003,31 @@ return qba; + QByteArray KSSLCertificate::toNetscape() { + QByteArray qba; + #ifdef KSSL_HAVE_SSL +-ASN1_HEADER ah; +-ASN1_OCTET_STRING os; +-KTempFile ktf; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ NETSCAPE_X509 nx; ++ ASN1_OCTET_STRING hdr; ++#else ++ ASN1_HEADER ah; ++ ASN1_OCTET_STRING os; ++#endif ++ KTempFile ktf; + +- os.data = (unsigned char *)NETSCAPE_CERT_HDR; +- os.length = strlen(NETSCAPE_CERT_HDR); +- ah.header = &os; +- ah.data = (char *)getCert(); +- ah.meth = d->kossl->X509_asn1_meth(); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ hdr.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ hdr.length = strlen(NETSCAPE_CERT_HDR); ++ nx.header = &hdr; ++ nx.cert = getCert(); ++ ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx); ++#else ++ os.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ os.length = strlen(NETSCAPE_CERT_HDR); ++ ah.header = &os; ++ ah.data = (char *)getCert(); ++ ah.meth = d->kossl->X509_asn1_meth(); + +- d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++#endif + + ktf.close(); + diff --git a/testing/obex-data-server/PKGBUILD b/testing/obex-data-server/PKGBUILD new file mode 100644 index 000000000..2ab25c6b1 --- /dev/null +++ b/testing/obex-data-server/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 169644 2012-10-25 01:35:28Z eric $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Geoffroy Carrier <geoffroy@archlinux.org> +# Contributor: Roman Kyrylych <roman@archlinux.org> +# Contributor: Keerthi <keerthi.linux@gmail.com> + +pkgname=obex-data-server +pkgver=0.4.6 +pkgrel=3 +pkgdesc="A D-Bus service providing high-level OBEX client and server side functionality" +arch=('i686' 'x86_64') +url="http://wiki.muiline.com/obex-data-server" +license=('GPL') +depends=('dbus-glib' 'openobex' 'imagemagick') +source=("http://tadas.dailyda.com/software/${pkgname}-${pkgver}.tar.gz") +md5sums=('961ca5db6fe9c97024e133cc6203cc4d') + +build() { + cd ${pkgname}-${pkgver} + ./configure --prefix=/usr \ + --sysconfdir=/etc + make +} + +package() { + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install +} diff --git a/testing/opencv/PKGBUILD b/testing/opencv/PKGBUILD index 308df61c3..90bdbbe68 100644 --- a/testing/opencv/PKGBUILD +++ b/testing/opencv/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 163133 2012-07-07 20:34:06Z schiv $ +# $Id: PKGBUILD 169645 2012-10-25 01:35:31Z eric $ # Maintainer: Ray Rashif <schiv@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> @@ -6,14 +6,14 @@ pkgbase=opencv pkgname=('opencv' 'opencv-docs' 'opencv-samples') _realname=OpenCV pkgver=2.4.2 -pkgrel=2 +pkgrel=5 pkgdesc="Open Source Computer Vision Library" arch=('i686' 'x86_64') license=('BSD') url="http://opencv.org/" -depends=('jasper' 'gstreamer0.10-base' 'openexr' - 'gtk2' 'xine-lib' 'libdc1394' 'v4l-utils') -makedepends=('pkg-config' 'cmake' 'python2-numpy' 'eigen2') +depends=('jasper' 'gstreamer0.10-base' 'openexr>=1.7.0' + 'gtk2' 'xine-lib' 'libdc1394' 'v4l-utils' 'ilmbase>=1.0.3') +makedepends=('cmake' 'python2-numpy' 'eigen2') optdepends=('opencv-docs' 'opencv-samples' 'eigen2' @@ -69,13 +69,6 @@ package_opencv() { cd "$pkgdir/usr/share" - # prepare FSH-friendly dirs - #if [ -d OpenCV ]; then - # mv opencv/samples OpenCV/ - # rm -r opencv - # mv OpenCV opencv - #fi - # separate docs package; also be -R friendly [ -d $_realname/doc ] && mv $_realname/doc "$srcdir/opencv-doc" diff --git a/testing/openexr/PKGBUILD b/testing/openexr/PKGBUILD new file mode 100644 index 000000000..4c54c859b --- /dev/null +++ b/testing/openexr/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 169646 2012-10-25 01:35:34Z eric $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=openexr +pkgver=1.7.1 +pkgrel=2 +pkgdesc="An high dynamic-range image file format library" +url="http://www.openexr.com/" +arch=('i686' 'x86_64') +license=('BSD') +depends=('zlib' 'ilmbase') +options=('!libtool') +source=("https://github.com/downloads/${pkgname}/${pkgname}/${pkgname}-${pkgver}.tar.gz" + 'gcc43.patch') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -p0 -i "${srcdir}/gcc43.patch" + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} + +md5sums=('a9e0369dfd68941c50cdaa93e9d7a8d1' + 'd91fae759053a70bcedcf02eb33ca4a2') diff --git a/testing/openexr/gcc43.patch b/testing/openexr/gcc43.patch new file mode 100644 index 000000000..ab99eb9a1 --- /dev/null +++ b/testing/openexr/gcc43.patch @@ -0,0 +1,11 @@ +--- exrenvmap/blurImage.cpp ++++ exrenvmap/blurImage.cpp +@@ -39,6 +39,8 @@ + // + //----------------------------------------------------------------------------- + ++#include <cstring> ++ + #include <blurImage.h> + + #include <resizeImage.h> diff --git a/testing/psiconv/PKGBUILD b/testing/psiconv/PKGBUILD new file mode 100644 index 000000000..1dc2e588d --- /dev/null +++ b/testing/psiconv/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 169647 2012-10-25 01:35:36Z eric $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=psiconv +pkgver=0.9.8 +pkgrel=10 +pkgdesc="Converts Psion 5(MX) files to more commonly used file formats" +arch=('i686' 'x86_64') +url="http://software.frodo.looijaard.name/psiconv/" +license=('GPL') +depends=('imagemagick') +makedepends=('bc') +backup=('etc/psiconv/psiconv.conf') +options=('!libtool') +source=("http://software.frodo.looijaard.name/${pkgname}/files/${pkgname}-${pkgver}.tar.gz") +md5sums=('8d7548e3c6b9cd408544736133728acd') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/testing/pstoedit/PKGBUILD b/testing/pstoedit/PKGBUILD new file mode 100644 index 000000000..1915d9b37 --- /dev/null +++ b/testing/pstoedit/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 169648 2012-10-25 01:35:40Z eric $ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Contributor: damir <damir@archlinux.org> +# Contributor: Tobias Powalowski <t.powa@gmx.de> + +pkgname=pstoedit +pkgver=3.60 +pkgrel=3 +pkgdesc="Translates PostScript and PDF graphics into other vector formats" +arch=('i686' 'x86_64') +url="http://www.pstoedit.net/" +license=('GPL') +depends=('gcc-libs' 'plotutils' 'gd' 'imagemagick') +makedepends=('ghostscript') +options=('!libtool' '!makeflags') +source=("http://downloads.sourceforge.net/sourceforge/pstoedit/pstoedit-${pkgver}.tar.gz" + 'pstoedit-3.50-parallel.patch' 'pstoedit-3.50-plugin-close.patch') +sha1sums=('649ade3d873429548eb6dd9f3e13cb79a8d6a1a2' + '6e278b164d3e59fbb11e7fd5ae8ffb038932d69a' + '54bbe019de66eb4cb8525371462595d21fbd074e') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + sed -i 's/-pedantic//' configure + + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/testing/pstoedit/pstoedit-3.50-parallel.patch b/testing/pstoedit/pstoedit-3.50-parallel.patch new file mode 100644 index 000000000..4f1f73b04 --- /dev/null +++ b/testing/pstoedit/pstoedit-3.50-parallel.patch @@ -0,0 +1,47 @@ +diff --git a/src/Makefile.am b/src/Makefile.am +index d6178df..66f377b 100755 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -86,6 +86,7 @@ libp2edrvstd_la_SOURCES= \ + $(sample_drivers_src) + libp2edrvstd_la_LIBADD=-L. libpstoedit.la + libp2edrvstd_la_LDFLAGS=-no-undefined -module ++libp2edrvstd_la_DEPENDENCIES = libpstoedit.la + + #libp2edrvplugins_la_SOURCES=drvmif.cpp drvcgm.cpp drvrtf.cpp drvwwmf.cpp + #libp2edrvplugins_la_LIBADD= +@@ -95,15 +96,18 @@ libp2edrvstd_la_LDFLAGS=-no-undefined -module + libp2edrvlplot_la_SOURCES=drvlplot.cpp drvlplot.h initlibrary.cpp + libp2edrvlplot_la_LIBADD=$(LIBPLOTTER_LDFLAGS) -L. libpstoedit.la + libp2edrvlplot_la_LDFLAGS=-no-undefined -module ++libp2edrvlplot_la_DEPENDENCIES = libpstoedit.la + + libp2edrvswf_la_SOURCES=drvswf.cpp drvswf.h initlibrary.cpp + libp2edrvswf_la_LIBADD=$(LIBMING_LDFLAGS) -L. libpstoedit.la + libp2edrvswf_la_LDFLAGS=-no-undefined -module ++libp2edrvswf_la_DEPENDENCIES = libpstoedit.la + + # note the __ stand for ++ - automake treats all no alphanums chars as _ + libp2edrvmagick___la_SOURCES=drvmagick++.cpp drvmagick++.h initlibrary.cpp + libp2edrvmagick___la_LIBADD=-L. libpstoedit.la + libp2edrvmagick___la_LDFLAGS=-no-undefined ${LIBMAGICK_LDFLAGS} -module ++libp2edrvmagick___la_DEPENDENCIES = libpstoedit.la + # moved to configure.ac because needed only for g++ libp2edrvmagick___la_CPPFLAGS=$(LIBMAGICK_CFLAGS) $(AM_CPPFLAGS) -Wno-long-long + + if USE_EMFBYSOURCE +@@ -113,6 +117,7 @@ else + libp2edrvwmf_la_SOURCES=drvwmf.cpp drvwmf.h initlibrary.cpp + libp2edrvwmf_la_LDFLAGS=-no-undefined $(LIBEMF_LDFLAGS) -L. libpstoedit.la -module + endif ++libp2edrvwmf_la_DEPENDENCIES = libpstoedit.la + + libpstoedit_la_SOURCES = \ + dynload.cpp dynload.h \ +@@ -135,6 +140,7 @@ libpstoedit_la_LDFLAGS = -no-undefined + + pstoedit_SOURCES = cmdmain.cpp + pstoedit_LDFLAGS = -no-undefined -L. libpstoedit.la ${LIBLD_LDFLAGS} ++pstoedit_DEPENDENCIES = libpstoedit.la + + pkginclude_HEADERS = \ + pstoedit.h \ diff --git a/testing/pstoedit/pstoedit-3.50-plugin-close.patch b/testing/pstoedit/pstoedit-3.50-plugin-close.patch new file mode 100644 index 000000000..6787d6aef --- /dev/null +++ b/testing/pstoedit/pstoedit-3.50-plugin-close.patch @@ -0,0 +1,14 @@ +http://bugzilla.redhat.com/507035 + +diff --git a/src/dynload.cpp b/src/dynload.cpp +index c0db355..7c073ef 100644 +--- a/src/dynload.cpp ++++ b/src/dynload.cpp +@@ -147,7 +147,6 @@ void DynLoader::close() + + DynLoader::~DynLoader() + { +- close(); + libname=0; + } + diff --git a/testing/systemd/PKGBUILD b/testing/systemd/PKGBUILD index 1b295076f..cce4b8e44 100644 --- a/testing/systemd/PKGBUILD +++ b/testing/systemd/PKGBUILD @@ -4,7 +4,7 @@ pkgbase=systemd pkgname=('systemd' 'systemd-sysvcompat') pkgver=195 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/systemd" license=('GPL2' 'LGPL2.1' 'MIT') diff --git a/testing/systemd/systemd.install b/testing/systemd/systemd.install index 5d6689c59..aad9691b0 100644 --- a/testing/systemd/systemd.install +++ b/testing/systemd/systemd.install @@ -4,18 +4,28 @@ sd_booted() { [ -e sys/fs/cgroup/systemd ] } +post_common() { + systemd-machine-id-setup + + setcap cap_dac_override,cap_sys_ptrace+ep usr/bin/systemd-detect-virt + + if sd_booted; then + systemctl --system daemon-reexec + fi +} + post_install() { + post_common + # enable getty@tty1 by default, but don't track the file systemctl enable getty@.service - systemd-machine-id-setup - echo ":: Append 'init=/bin/systemd' to your kernel command line in your" echo " bootloader to replace sysvinit with systemd" } post_upgrade() { - systemd-machine-id-setup + post_common # getty@tty1.service is no longer enabled by default, but we don't want to break # existing setups. diff --git a/testing/tracker/PKGBUILD b/testing/tracker/PKGBUILD index 3c396174c..9d9cde003 100644 --- a/testing/tracker/PKGBUILD +++ b/testing/tracker/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 169148 2012-10-18 19:22:25Z jgc $ +# $Id: PKGBUILD 169619 2012-10-24 17:52:34Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Alexander Fehr <pizzapunk gmail com> pkgbase=tracker pkgname=(tracker libtracker-sparql) -pkgver=0.14.2 +pkgver=0.14.3 _tver=${pkgver%.*} -pkgrel=2 +pkgrel=1 pkgdesc="All-in-one indexer, search tool and metadata database" arch=('i686' 'x86_64') license=('GPL') @@ -18,18 +18,12 @@ makedepends=('libgee' 'libgnome-keyring' 'upower' 'libexif' 'exempi' 'taglib' 'nautilus' 'gnome-panel' 'libvorbis' 'flac' 'vala') url="http://www.gnome.org" options=('!libtool' '!emptydirs') -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/$_tver/$pkgbase-$pkgver.tar.xz - bug675660.patch - tracker-extract-pdf-crash-fix.patch) -sha256sums=('9b59330aa2e9e09feee587ded895e9247f71fc25f46b023d616d9969314bc7f1' - '77c1377860f09aba42fc0bb662cb188613d5ed3744f3ffb3a710d1e60499cb8c' - 'afa14805b9a1adb2442dc4a6032b1575a07a87aa969599ca28669a2cf975e772') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/$_tver/$pkgbase-$pkgver.tar.xz) +sha256sums=('7c1ecf3705ecbd2a0278d04277cd1bd8c89d5838913de922fef32321ce67abe4') build() { cd $pkgbase-$pkgver - patch -Np1 -i "${srcdir}/bug675660.patch" - patch -Np1 -i "${srcdir}/tracker-extract-pdf-crash-fix.patch" ./configure \ --prefix=/usr \ --sysconfdir=/etc \ diff --git a/testing/transcode/PKGBUILD b/testing/transcode/PKGBUILD index f8c6bb74d..7fb798ef7 100644 --- a/testing/transcode/PKGBUILD +++ b/testing/transcode/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 163067 2012-07-06 15:22:20Z ibiru $ +# $Id: PKGBUILD 169649 2012-10-25 01:35:43Z eric $ # Maintainer: # Contributor: Sarah Hay <sarahhay@mb.sympatico.ca> # Contributor: roberto <roberto@archlinux.org> @@ -6,7 +6,7 @@ pkgname=transcode _sripver=0.3-4 pkgver=1.1.7 -pkgrel=5 +pkgrel=6 pkgdesc="A video/DVD ripper and encoder for the terminal/console" arch=('i686' 'x86_64') url="http://tcforge.berlios.de/" @@ -23,7 +23,7 @@ sha1sums=('e35df68b960eb56ef0a59a4cdbed1491be56aee6' 'd93ff3578dd5f722c8f4ef16bc0903eec5781a0d' 'fa05aa1770d9350d90b7cf315aa7c4a1fd921ac7' '591943a33235342a66c3df0625a164a1479c09ae' - '765dacce5ee463adf5c124556d68bb873ef436c6') + '3d2dcdc23f14938e87d14cfc03000bb3b649b85e') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/testing/transcode/ffmpeg-0.11.patch b/testing/transcode/ffmpeg-0.11.patch index 24beb1069..b5601fe2f 100644 --- a/testing/transcode/ffmpeg-0.11.patch +++ b/testing/transcode/ffmpeg-0.11.patch @@ -128,3 +128,14 @@ diff -Naur transcode-1.1.7/libtc/tcavcodec.h fixed-tc/libtc/tcavcodec.h avcodec_register_all(); \ TC_UNLOCK_LIBAVCODEC; \ } while (0) +--- transcode-1.1.7/export/export_ffmpeg.c.orig 2012-10-19 23:25:16.442303175 -0400 ++++ transcode-1.1.7/export/export_ffmpeg.c 2012-10-19 23:26:23.904268733 -0400 +@@ -1249,7 +1249,7 @@ + return TC_EXPORT_ERROR; + } + +- if (lavc_venc_context->codec->encode == NULL) { ++ if (lavc_venc_context->codec->encode2 == NULL) { + tc_log_warn(MOD_NAME, "could not open FFMPEG codec " + "(lavc_venc_context->codec->encode == NULL)"); + return TC_EXPORT_ERROR; diff --git a/testing/xf86-video-nouveau/PKGBUILD b/testing/xf86-video-nouveau/PKGBUILD index bb486be2d..30f70d501 100644 --- a/testing/xf86-video-nouveau/PKGBUILD +++ b/testing/xf86-video-nouveau/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 168232 2012-10-06 20:07:48Z andyrtr $ +# $Id: PKGBUILD 169614 2012-10-24 13:01:41Z ibiru $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: buddabrod <buddabrod@gmail.com> pkgname=xf86-video-nouveau -pkgver=1.0.2 -pkgrel=2 +pkgver=1.0.3 +pkgrel=1 pkgdesc="Open Source 2D acceleration driver for nVidia cards" arch=('i686' 'x86_64') url="http://nouveau.freedesktop.org/" @@ -14,8 +14,8 @@ makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=13' 'resourceproto' 'sc conflicts=('xorg-server<1.13.0' 'X-ABI-VIDEODRV_VERSION<13' 'X-ABI-VIDEODRV_VERSION>=14') options=('!libtool') install=$pkgname.install -source=($url/release/$pkgname-$pkgver.tar.bz2) -sha256sums=('765731c2a91d434d4360517a128d18af70b158f727e49813f1a42e26cccbc45d') +source=(http://xorg.freedesktop.org/archive/individual/driver/$pkgname-$pkgver.tar.bz2) +sha256sums=('a2ae34046324e1ec620f5a8dee3c8fe5a295acbb5d51825604c8ad28fb75a559') build() { cd $pkgname-$pkgver diff --git a/testing/xine-lib/PKGBUILD b/testing/xine-lib/PKGBUILD index 5112660a3..6a9f18c0f 100644 --- a/testing/xine-lib/PKGBUILD +++ b/testing/xine-lib/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 168288 2012-10-07 22:15:57Z eric $ +# $Id: PKGBUILD 169650 2012-10-25 01:35:46Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=xine-lib pkgver=1.2.2 -pkgrel=2 +pkgrel=3 pkgdesc="A multimedia playback engine" arch=('i686' 'x86_64') url="http://www.xine-project.org" |