diff options
author | Michał Masłowski <mtjm@mtjm.eu> | 2012-05-14 17:12:15 +0200 |
---|---|---|
committer | Michał Masłowski <mtjm@mtjm.eu> | 2012-05-14 17:12:15 +0200 |
commit | 6feb300093e37e58027d52ca5734624565e09598 (patch) | |
tree | 418d2cc8c7e631c42898a28731ade8a29e3cb955 | |
parent | 216722b262c18f99fa53875247e7a258cb3b4b34 (diff) | |
parent | d3af8dc0117dc1ce4fea3d05c7a2d7786bd78986 (diff) |
Merge branch 'master' of ssh://parabolagnulinux.org:1863/home/parabola/abslibre-pre-mips64el
Conflicts:
community/openbox/PKGBUILD
community/powertop/PKGBUILD
core/libusb-compat/PKGBUILD
core/openssl/PKGBUILD
extra/libvpx/PKGBUILD
extra/php-apc/PKGBUILD
extra/pidgin/PKGBUILD
extra/pulseaudio/PKGBUILD
extra/pygobject/PKGBUILD
extra/xfce4-genmon-plugin/PKGBUILD
extra/xorg-server/PKGBUILD
multilib/gcc-multilib/PKGBUILD
multilib/lib32-cairo/PKGBUILD
multilib/lib32-glib2/PKGBUILD
multilib/lib32-libffi/PKGBUILD
multilib/lib32-libpulse/PKGBUILD
multilib/lib32-llvm/PKGBUILD
multilib/wine/PKGBUILD
testing/mdadm/PKGBUILD
testing/php/PKGBUILD
testing/xorg-server/PKGBUILD
testing/xorg-server/git-fixes.patch
137 files changed, 6294 insertions, 652 deletions
diff --git a/community/awesome/01-fix_glib2_build.patch b/community/awesome/01-fix_glib2_build.patch new file mode 100644 index 000000000..aeab63fbb --- /dev/null +++ b/community/awesome/01-fix_glib2_build.patch @@ -0,0 +1,31 @@ +From d3d8160e273b56d0262d2570cfa6bcb76b9ea771 Mon Sep 17 00:00:00 2001 +From: Thomas Moschny <thomas.moschny@gmx.de> +Date: Wed, 14 Dec 2011 20:00:53 +0100 +Subject: [PATCH] Fix build with glib2 2.31.0 + +Starting with glib2 2.31.0, It is no longer possible to +include individual headers (like "ghash.h") -- you must +#include <glib.h>. + +Signed-off-by: Thomas Moschny <thomas.moschny@gmx.de> +Signed-off-by: Uli Schlachter <psychon@znc.in> +--- + spawn.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/spawn.c b/spawn.c +index 3c8cf07..a6d6c5e 100644 +--- a/spawn.c ++++ b/spawn.c +@@ -24,7 +24,7 @@ + #include <sys/types.h> + #include <sys/wait.h> + +-#include <glib/gspawn.h> ++#include <glib.h> + + #include "spawn.h" + #include "screen.h" +-- +1.7.2.5 + diff --git a/community/awesome/PKGBUILD b/community/awesome/PKGBUILD new file mode 100644 index 000000000..b67f9c548 --- /dev/null +++ b/community/awesome/PKGBUILD @@ -0,0 +1,64 @@ +# $Id: PKGBUILD 70615 2012-05-12 21:06:01Z ibiru $ +# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> +# Contributor: xduugu +# Contributor: Ronald van Haren <ronald.archlinux.org> +# Contributor: Vesa Kaihlavirta + +pkgname=awesome +pkgver=3.4.11 +pkgrel=4 +pkgdesc='Highly configurable framework window manager' +arch=('i686' 'x86_64') +url='http://awesome.naquadah.org/' +license=('GPL2') +depends=( + 'cairo' + 'dbus' + 'imlib2' + 'libev' + 'libxdg-basedir' + 'lua' + 'pango' + 'startup-notification' + 'xcb-util-image' + 'xcb-util-keysyms' + 'xcb-util-wm' + 'xorg-xmessage' +) +makedepends=( + 'asciidoc' + 'cmake' + 'docbook-xsl' + 'doxygen' + 'gperf' + 'imagemagick' + 'luadoc' + 'xmlto' +) +optdepends=( + 'rlwrap: readline support for awesome-client' + 'feh: image background setter for awsetbg' +) +provides=('notification-daemon') +source=("$url/download/$pkgname-$pkgver.tar.xz" + "$pkgname.desktop" + '01-fix_glib2_build.patch') +md5sums=('d6aa71334b5cd4ef63ce69d6c612ecf2' + '0fdbeec43d211c6750041d7e37611a6a' + 'baa179074c36e26ef156ebb2060bfd5c') + +build() { + cd $pkgname-$pkgver + # to remove in 3.4.12 + patch -N -p1 -i ../01-fix_glib2_build.patch + make CMAKE_ARGS=' -DPREFIX=/usr -DSYSCONFDIR=/etc -DCMAKE_BUILD_TYPE=RELEASE' +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + # install desktop file so you can start awesome from your login manager + install -Dm644 ../awesome.desktop "$pkgdir/usr/share/xsessions/awesome.desktop" +} + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/awesome/awesome.desktop b/community/awesome/awesome.desktop new file mode 100644 index 000000000..453399c6e --- /dev/null +++ b/community/awesome/awesome.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Awesome +Comment=Highly configurable framework window manager +Type=XSession +Exec=awesome +TryExec=awesome diff --git a/community/bitcoin/PKGBUILD b/community/bitcoin/PKGBUILD index 00d2cc85f..fc1930db8 100644 --- a/community/bitcoin/PKGBUILD +++ b/community/bitcoin/PKGBUILD @@ -1,10 +1,11 @@ -# $Id: PKGBUILD 69400 2012-04-15 20:25:26Z tredaelli $ +# $Id: PKGBUILD 70477 2012-05-09 10:21:50Z tredaelli $ # Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com> # Contributor: shahid <helllamer@gmail.com> pkgbase=bitcoin pkgname=('bitcoin-daemon' 'bitcoin-qt') -pkgver=0.6.0 +pkgver=0.6.2 +_commit=06d764e pkgrel=1 arch=('i686' 'x86_64') url="http://www.bitcoin.org/" @@ -12,21 +13,18 @@ makedepends=('boost' 'automoc4' 'miniupnpc') conflicts=('bitcoin' 'bitcoin-bin' 'bitcoin-git') replaces=('bitcoin' 'bitcoin-bin' 'bitcoin-git') license=('MIT') -source=("http://downloads.sourceforge.net/sourceforge/${pkgbase}/${pkgbase}-${pkgver}-linux.tar.gz") -sha256sums=('13faa8b7c8c9ce3518ebe31ff2d97920f4feb4f06c1d08455b272fdaaeeb1f97') +source=("$pkgbase-$pkgver.tar.gz::https://github.com/bitcoin/$pkgbase/tarball/v$pkgver") +sha256sums=('03c72d7bcdec70cb88033abb785b50686880b95d4768e8586891a9728d498c5a') build() { - cd "$srcdir/$pkgbase-$pkgver-linux/src" - - # FIXME GCC 4.7.0 is too strict - echo "QMAKE_CXXFLAGS += $CXXFLAGS -fpermissive" >> bitcoin-qt.pro + cd "$srcdir/bitcoin-$pkgbase-$_commit" # and make qt gui qmake make # make bitcoind - make -f makefile.unix -C src CXXFLAGS="$CXXFLAGS -fpermissive" USE_UPNP=1 + make -f makefile.unix -C src CXXFLAGS="$CXXFLAGS" USE_UPNP=1 } @@ -35,7 +33,7 @@ package_bitcoin-qt() { depends=(boost-libs qt miniupnpc) install=bitcoin-qt.install - cd "$srcdir/$pkgbase-$pkgver-linux/src" + cd "$srcdir/bitcoin-$pkgbase-$_commit" install -Dm755 bitcoin-qt "$pkgdir"/usr/bin/bitcoin-qt install -Dm644 contrib/debian/bitcoin-qt.desktop \ "$pkgdir"/usr/share/applications/bitcoin.desktop @@ -49,7 +47,7 @@ package_bitcoin-daemon() { pkgdesc="Bitcoin is a peer-to-peer network based digital currency - daemon" depends=(boost-libs miniupnpc openssl) - cd "$srcdir/$pkgbase-$pkgver-linux/src" + cd "$srcdir/bitcoin-$pkgbase-$_commit" install -Dm755 src/bitcoind "$pkgdir"/usr/bin/bitcoind install -Dm644 contrib/debian/examples/bitcoin.conf \ "$pkgdir/usr/share/doc/$pkgname/examples/bitcoin.conf" diff --git a/community/blender/PKGBUILD b/community/blender/PKGBUILD index de29d6970..79bbbdae8 100644 --- a/community/blender/PKGBUILD +++ b/community/blender/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 69995 2012-04-28 00:27:10Z svenstaro $ +# $Id: PKGBUILD 70565 2012-05-11 20:09:37Z svenstaro $ # Contributor: John Sowiak <john@archlinux.org> # Contributor: tobias <tobias@archlinux.org> # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> @@ -13,9 +13,9 @@ _svn=false pkgname=blender -pkgver=2.63 +pkgver=2.63a pkgrel=1 -epoch=3 +epoch=4 pkgdesc="A fully integrated 3D graphics creation suite" arch=('i686' 'x86_64') license=('GPL') @@ -30,7 +30,7 @@ options=(!strip) install=blender.install if [ $_svn = false ]; then source=(http://download.blender.org/source/$pkgname-$pkgver.tar.gz) - md5sums=('1cc18a9074ba63313a5711887de76c54') + md5sums=('31a60b3ce5466d965cb7e2648995e092') else source=(ftp://ftp.archlinux.org/other/${pkgname}/$pkgname-$pkgver.tar.xz) md5sums=('7579d1139d0d6025df8afcfca64a65c4') diff --git a/community/cuda-sdk/PKGBUILD b/community/cuda-sdk/PKGBUILD new file mode 100644 index 000000000..152b3add9 --- /dev/null +++ b/community/cuda-sdk/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> +# Contributor: Thomas Jost <schnouki@schnouki.net> +# Contributor: Carson Reynolds <carson@k2.t.u-tokyo.ac.jp> + +pkgname=cuda-sdk +pkgver=4.2.9 +pkgrel=1 +pkgdesc="NVIDIA's GPU programming sdk" +arch=('i686' 'x86_64') +url="http://www.nvidia.com/object/cuda_home.html" +license=('custom') +depends=('cuda-toolkit' 'nvidia' 'opencl-nvidia' 'freeglut' 'libxmu') +makedepends=('perl') +source=(http://developer.download.nvidia.com/compute/cuda/4_2/rel/sdk/gpucomputingsdk_${pkgver}_linux.run) +md5sums=('693d969aca8bb06a5a1d51ef5c3ca04b') + +build() { + cd "$srcdir" + + sh gpucomputingsdk_${pkgver}_linux.run --noexec --keep --nox11 --nochown --target sdk >/dev/null + cd sdk + + find . -name *.cu | xargs sed -i "1 i #undef _GLIBCXX_ATOMIC_BUILTINS" + find . -name *.cu | xargs sed -i "1 i #undef _GLIBCXX_USE_INT128" + + #find . -name 'Makefile*' -exec sed -i 's/^\tmake /\t$(MAKE) /g; s/^\t@make /\t@$(MAKE) /g' "{}" + + + # Sadly we need to install this first and compile afterwards, this is why we only have build() + install -dm755 "$pkgdir/opt/cuda-sdk" + ./install-sdk-linux.pl --prefix="$pkgdir/opt/cuda-sdk" --cudaprefix="/opt/cuda-toolkit" >/dev/null + + cd "$pkgdir/opt/cuda-sdk" + make CUDA_INSTALL_PATH=/opt/cuda-toolkit NO_MPI=1 + # simpleMPI sometimes causes segfaults when building... + + install -Dm755 "$pkgdir/opt/cuda-sdk/License.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/community/dos2unix/PKGBUILD b/community/dos2unix/PKGBUILD index e85d40e06..0a8bbf17f 100644 --- a/community/dos2unix/PKGBUILD +++ b/community/dos2unix/PKGBUILD @@ -1,9 +1,10 @@ +# $Id: PKGBUILD 70487 2012-05-09 15:02:28Z bpiotrowski $ # Maintainer: BartÅ‚omiej Piotrowski # Contributor: Renato Garcia <fgar.renatoATgmailDOTcom> # Contributor: Gerson E. Ruotolo <gersonruotolo@globo.com> pkgname=dos2unix -pkgver=5.3.3 +pkgver=6.0 pkgrel=1 pkgdesc='Text file format converter' arch=('i686' 'x86_64') @@ -13,7 +14,7 @@ depends=('glibc') makedepends=('perl') conflicts=('hd2u') source=("http://waterlan.home.xs4all.nl/${pkgname}/${pkgname}-${pkgver}.tar.gz") -md5sums=('f352d648b97197c8a786eccc832764d8') +md5sums=('2fc8d6ebe9f1a519b15ebe0850e9aabd') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/community/go/PKGBUILD b/community/go/PKGBUILD index 4be7ea328..16f3154b8 100644 --- a/community/go/PKGBUILD +++ b/community/go/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 70381 2012-05-05 13:14:13Z arodseth $ +# $Id: PKGBUILD 70575 2012-05-11 22:56:57Z remy $ # Maintainer: Vesa Kaihlavirta <vegai@iki.fi> # Maintainer: Alexander Rødseth <rodseth@gmail.com> # Contributor: Andres Perera <andres87p gmail> @@ -9,36 +9,33 @@ pkgname=go pkgver=1.0.1 -pkgrel=1 +pkgrel=3 epoch=2 pkgdesc='Google Go compiler and tools (release version)' arch=('x86_64' 'i686') url="http://golang.org/" license=('custom') -depends=('perl' 'ed' 'gawk') +depends=('perl' 'gawk') makedepends=('inetutils') options=('!strip' '!emptydirs') install=go.install -source=("http://go.googlecode.com/files/${pkgname}$pkgver.src.tar.gz" - "$pkgname.run" - "$pkgname.sh") -sha1sums=('fc8a6d6725f7f2bf7c94685c5fd0880c9b7f67f6' - '655754d95688294b0cf2334a1155432884f92859' - 'a760c32cbad5a013f384a086efb3b8b8fd88794f') +source=("http://go.googlecode.com/files/${pkgname}$pkgver.src.tar.gz") +sha1sums=('fc8a6d6725f7f2bf7c94685c5fd0880c9b7f67f6') build() { cd "$srcdir/$pkgname" - - export GOROOT="$srcdir/$pkgname" - export GOOS_FINAL="/usr/lib/go" + export GOROOT_FINAL="/usr/lib/go" export GOOS=linux - export GOBIN="$GOROOT/bin" - export PATH="$GOBIN:$PATH" - mkdir -p "$GOROOT/bin" - cd "$GOROOT/src" + cd src && bash make.bash +} - . ./make.bash +check() { + # TestSimpleMulticastListener will fail in standard chroot. + cd "$srcdir/$pkgname" + export GOROOT="$srcdir/$pkgname" + export PATH="$srcdir/$pkgname/bin:$PATH" + cd src && bash run.bash --no-rebuild || true } package() { @@ -64,14 +61,14 @@ package() { mkdir -p $pkgdir/{etc/profile.d,usr/{share/go,lib/go,lib/go/src}} - cp -r bin $pkgdir/usr cp -r doc misc -t $pkgdir/usr/share/go ln -s /usr/share/go/doc $pkgdir/usr/lib/go/doc - cp -r pkg $pkgdir/usr/lib/go - cp -r $GOROOT/src/pkg $pkgdir/usr/lib/go/src/ - cp -r $GOROOT/src/cmd $pkgdir/usr/lib/go/src/cmd - cp -r $GOROOT/src/lib9 $pkgdir/usr/lib/go/src/ - cp -r $GOROOT/lib $pkgdir/usr/lib/go/ + cp -r --preserve=timestamps bin $pkgdir/usr + cp -r --preserve=timestamps pkg $pkgdir/usr/lib/go + cp -r --preserve=timestamps $GOROOT/src/pkg $pkgdir/usr/lib/go/src/ + cp -r --preserve=timestamps $GOROOT/src/cmd $pkgdir/usr/lib/go/src/cmd + cp -r --preserve=timestamps $GOROOT/src/lib9 $pkgdir/usr/lib/go/src/ + cp -r --preserve=timestamps $GOROOT/lib $pkgdir/usr/lib/go/ install -Dm644 src/Make.* $pkgdir/usr/lib/go/src @@ -85,10 +82,7 @@ package() { install -Dm644 src/pkg/runtime/cgocall.h \ $pkgdir/usr/lib/go/src/pkg/runtime/cgocall.h - install $srcdir/go.sh $pkgdir/etc/profile.d/ - - mv "$pkgdir/usr/bin/go" "$pkgdir/usr/bin/go.elf" - install -Dm755 "$srcdir/go.run" "$pkgdir/usr/bin/go" + rm -f "$pkgdir/usr/share/go/doc/articles/wiki/get.bin" } # vim:set ts=2 sw=2 et: diff --git a/community/gtkwave/PKGBUILD b/community/gtkwave/PKGBUILD index 30d7ddca1..358789e62 100644 --- a/community/gtkwave/PKGBUILD +++ b/community/gtkwave/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 69361 2012-04-14 14:13:25Z kkeen $ +# $Id: PKGBUILD 70580 2012-05-12 02:21:28Z kkeen $ # Maintainer: Kyle Keen <keenerd@gmail.com> # Contributor: Thomas Dziedzic < gostrc at gmail > # Contributor: Jared Casper <jaredcasper@gmail.com> pkgname=gtkwave -pkgver=3.3.35 +pkgver=3.3.36 pkgrel=1 pkgdesc='A wave viewer which reads LXT, LXT2, VZT, GHW and VCD/EVCD files' arch=('i686' 'x86_64' 'mips64el') @@ -14,7 +14,7 @@ depends=('bzip2' 'xz' 'gtk2') makedepends=('gperf') install='gtkwave.install' source=("http://gtkwave.sourceforge.net/gtkwave-${pkgver}.tar.gz") -md5sums=('f7de1e24ca4e3c5396d38dc6232d1f91') +md5sums=('a4275363369b0b7011afbaa7ec1667e6') build() { cd "${srcdir}/gtkwave-${pkgver}" diff --git a/community/gtranslator/PKGBUILD b/community/gtranslator/PKGBUILD index e0899ca41..b950c18df 100644 --- a/community/gtranslator/PKGBUILD +++ b/community/gtranslator/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 70021 2012-04-28 09:24:13Z allan $ +# $Id: PKGBUILD 70590 2012-05-12 10:14:49Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Hugo Doria <hugo@archlinux.org> # Contributor: Christer Solskogen (solskogen@carebears.mine.nu) pkgname=gtranslator -pkgver=2.91.3 -pkgrel=3 +pkgver=2.91.4 +pkgrel=1 pkgdesc="An enhanced gettext po file editor for the GNOME" arch=('i686' 'x86_64' 'mips64el') url="http://projects.gnome.org/gtranslator/" @@ -32,3 +32,4 @@ package() { make DESTDIR=${pkgdir} install } +sha256sums=('af4ede1495c0c52ecc1e7bd36c8ee6ce0bb35525144d687d1ce7cb4bf6630826') diff --git a/community/gtranslator/gtranslator.changelog b/community/gtranslator/gtranslator.changelog index c9b484e39..712c1cb22 100644 --- a/community/gtranslator/gtranslator.changelog +++ b/community/gtranslator/gtranslator.changelog @@ -1,3 +1,6 @@ +2011-10-28 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org> + * gtranslator 2.91.4-1 + 2012-04-23 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> * gtranslator 2.91.3-2 rebuild for gdl 3.4.2 diff --git a/community/guichan/PKGBUILD b/community/guichan/PKGBUILD index fe5467a56..d948c2b66 100644 --- a/community/guichan/PKGBUILD +++ b/community/guichan/PKGBUILD @@ -1,31 +1,32 @@ -# $Id: PKGBUILD 57204 2011-10-23 23:29:35Z andrea $ -# Maintainer: Mateusz Herych <heniekk@gmail.com> +# $Id: PKGBUILD 70598 2012-05-12 11:22:15Z jlichtblau $ +# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +# Contributor: Mateusz Herych <heniekk@gmail.com> # Contributor: Bjørn Lindeijer <bjorn@lindeijer.nl> pkgname=guichan pkgver=0.8.2 -pkgrel=2 +pkgrel=3 pkgdesc="A portable C++ GUI library designed for games using Allegro, SDL and/or OpenGL." arch=('i686' 'x86_64' 'mips64el') url="http://guichan.sourceforge.net/" license=('BSD') -makedepends=('sdl_image' 'allegro' 'libgl' 'glut') -conflicts=('guichan-sdl' 'guichan-allegro' 'guichan-opengl' 'guichan-glut') -provides=('guichan-sdl' 'guichan-allegro' 'guichan-opengl' 'guichan-glut') -options=(!libtool !strip) +makedepends=('sdl_image' 'allegro4' 'libgl' 'glut') +options=('!libtool' '!strip') source=(http://guichan.googlecode.com/files/$pkgname-$pkgver.tar.gz) -md5sums=('af535d7f387e774e3197cef8023ea105') +sha256sums=('eedf206eae5201eaae027b133226d0793ab9a287bfd74c5f82c7681e3684eeab') build() { - cd $srcdir/$pkgname-$pkgver - CXXFLAGS="-g" ./configure --prefix=/usr - make + cd ${srcdir}/$pkgname-$pkgver + + CXXFLAGS="-g" ./configure --prefix=/usr + make } package() { - cd $srcdir/$pkgname-$pkgver - make prefix=$pkgdir/usr install + cd ${srcdir}/$pkgname-$pkgver + + make prefix=${pkgdir}/usr install - # Install the license, as required for BSD - install -m644 -D COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE +# Install the license, as required for BSD + install -m644 -D COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE } diff --git a/community/i3lock/PKGBUILD b/community/i3lock/PKGBUILD index 761ace052..f73cfe2a5 100644 --- a/community/i3lock/PKGBUILD +++ b/community/i3lock/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 68957 2012-04-06 14:24:01Z ttopper $ +# $Id: PKGBUILD 70612 2012-05-12 19:42:37Z ttopper $ # Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de> pkgname=i3lock pkgver=2.4 -pkgrel=1 +pkgrel=2 pkgdesc="An improved screenlocker based upon XCB and PAM" arch=('i686' 'x86_64' 'mips64el') url="http://i3wm.org/i3lock/" license=('MIT') groups=("i3") -depends=('xcb-util-image' 'xcb-util-keysyms' 'pam' 'libev' 'libx11') +depends=('xcb-util-image' 'xcb-util-keysyms' 'pam' 'libev' 'libx11' 'cairo') options=('docs') source=("http://i3wm.org/i3lock/$pkgname-$pkgver.tar.bz2") md5sums=('728e2654d886ef97449708f0135e9fa5') build() { cd "${srcdir}/${pkgname}-${pkgver}" - make NOLIBCAIRO=y + make gzip i3lock.1 } diff --git a/community/i3status/PKGBUILD b/community/i3status/PKGBUILD index 88d8d46aa..1bfc6a24e 100644 --- a/community/i3status/PKGBUILD +++ b/community/i3status/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 70239 2012-05-02 17:41:16Z ttopper $ +# $Id: PKGBUILD 70601 2012-05-12 12:03:50Z ttopper $ # Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de> pkgname=i3status -pkgver=2.5 +pkgver=2.5.1 pkgrel=1 pkgdesc="Generates status bar to use with dzen2 or xmobar" arch=('i686' 'x86_64' 'mips64el') @@ -15,7 +15,7 @@ backup=('etc/i3status.conf') install=i3status.install options=('docs') source=("http://i3.zekjur.net/i3status/$pkgname-$pkgver.tar.bz2") -md5sums=('6c3c1d91fae1dc939a517bc3b853f65f') +md5sums=('28c27fc0c2294e12ae6ae390f3d89973') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/community/ipset/PKGBUILD b/community/ipset/PKGBUILD index ac95e6229..76c732531 100644 --- a/community/ipset/PKGBUILD +++ b/community/ipset/PKGBUILD @@ -1,17 +1,26 @@ -# $Id: PKGBUILD 62118 2012-01-16 09:00:54Z seblu $ +# $Id: PKGBUILD 70556 2012-05-11 12:51:57Z seblu $ # Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> pkgname=ipset -pkgver=6.11 +pkgver=6.12.1 pkgrel=1 pkgdesc='Administration tool for IP sets' arch=('i686' 'x86_64') url='http://ipset.netfilter.org' license=('GPL2') depends=('libmnl') -makedepends=('linux-headers') -source=("http://ipset.netfilter.org/$pkgname-$pkgver.tar.bz2") -md5sums=('bfcc92e30a0fcf10ae6e7c4affa03c84') +backup=('etc/ipset.conf' "etc/conf.d/$pkgname") +options=('!libtool') +source=("http://ipset.netfilter.org/$pkgname-$pkgver.tar.bz2" + "$pkgname.conf" + "$pkgname.rc" + "$pkgname.systemd" + "$pkgname.service") +md5sums=('80df500a4d93cb14e1373ae290716cda' + '61963bda45c002fb37977e58bb5b829c' + '888bf1eadffcc076b9e97de02e2147c8' + 'c5f38e5f3027066c1491a563e734796e' + 'b9ff3bd7b959cb1b97b8c492b52b8377') build() { cd $pkgname-$pkgver @@ -22,6 +31,20 @@ build() { package() { cd $pkgname-$pkgver make DESTDIR="$pkgdir" install + # install doc + install -dm755 "$pkgdir/usr/share/doc/$pkgname" + install -m644 README UPGRADE ChangeLog "$pkgdir/usr/share/doc/$pkgname" + # install initscripts + cd .. + install -Dm 755 $pkgname.rc "$pkgdir/etc/rc.d/$pkgname" + install -Dm 644 $pkgname.conf "$pkgdir/etc/conf.d/$pkgname" + # install systemd service + install -Dm 755 $pkgname.systemd \ + "$pkgdir/usr/lib/systemd/scripts/$pkgname" + install -Dm 644 $pkgname.service \ + "$pkgdir/usr/lib/systemd/system/$pkgname.service" + # default config file + install -Dm 644 /dev/null "$pkgdir/etc/$pkgname.conf" } # vim:set ts=2 sw=2 ft=sh et: diff --git a/community/ipset/ipset.conf b/community/ipset/ipset.conf new file mode 100644 index 000000000..686931f4c --- /dev/null +++ b/community/ipset/ipset.conf @@ -0,0 +1,3 @@ +# vim:set ts=2 sw=2 ft=sh et: + +IPSET_CONF='/etc/ipset.conf' diff --git a/community/ipset/ipset.rc b/community/ipset/ipset.rc new file mode 100644 index 000000000..1d5f7df8b --- /dev/null +++ b/community/ipset/ipset.rc @@ -0,0 +1,39 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/ipset + +case "$1" in + start) + stat_busy 'Loading IP Sets' + if [[ -f $IPSET_CONF ]] && ipset restore < "$IPSET_CONF"; then + add_daemon ipset + stat_done + else + stat_fail + fi + ;; + stop) + status 'Clearing IP Sets' ipset destroy + rm_daemon ipset + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + save) + stat_busy 'Saving IP Sets' + if ipset save > "$IPSET_CONF" 2>/dev/null; then + stat_done + else + stat_fail + fi + ;; + *) + echo "usage: ${0##*/} {start|stop|restart|save}" +esac +exit 0 + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/ipset/ipset.service b/community/ipset/ipset.service new file mode 100644 index 000000000..0e0dd4ff7 --- /dev/null +++ b/community/ipset/ipset.service @@ -0,0 +1,12 @@ +[Unit] +Description=IP Sets + +[Service] +Type=oneshot +ExecStart=/usr/lib/systemd/scripts/ipset start +ExecStop=/usr/sbin/ipset destroy +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target +Before=iptables.service diff --git a/community/ipset/ipset.systemd b/community/ipset/ipset.systemd new file mode 100644 index 000000000..36df5124a --- /dev/null +++ b/community/ipset/ipset.systemd @@ -0,0 +1,8 @@ +#!/bin/bash + +. /etc/conf.d/ipset + +[[ -f $IPSET_CONF ]] || exit 1 +ipset restore < "$IPSET_CONF" + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/kid3/PKGBUILD b/community/kid3/PKGBUILD index f3342df96..17fec81ce 100644 --- a/community/kid3/PKGBUILD +++ b/community/kid3/PKGBUILD @@ -1,30 +1,28 @@ -# $Id: PKGBUILD 67670 2012-03-13 17:34:12Z lcarlier $ +# $Id: PKGBUILD 70617 2012-05-12 21:33:45Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Alois Nespor <alois.nespor@gmail.com> pkgname=kid3 -pkgver=2.0.1 -pkgrel=2 +pkgver=2.1 +pkgrel=1 pkgdesc="An MP3, Ogg/Vorbis and FLAC tag editor for KDE" arch=('i686' 'x86_64' 'mips64el') url="http://kid3.sourceforge.net/" license=('GPL') depends=('id3lib' 'qt' 'tunepimp' 'kdelibs') -makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl') +makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl' 'chromaprint') options=('!makeflags') install=$pkgname.install changelog=$pkgname.changelog source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz) -sha256sums=('32c3bdf5a3f170076e46c5f3b9523f688e8ea6265d22d2264c1bcd318da9f32e') +sha256sums=('8925bde1a773d767ee9695229e65dfd64dc13edf850294560478f2e02ecc6225') build() { cd ${srcdir} mkdir build cd build - cmake ../${pkgname}-${pkgver} \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release + cmake ../${pkgname}-${pkgver} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release make } diff --git a/community/kid3/kid3.changelog b/community/kid3/kid3.changelog index 824a2406a..8c440c611 100644 --- a/community/kid3/kid3.changelog +++ b/community/kid3/kid3.changelog @@ -1,3 +1,6 @@ +2012-05-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> + * kid3 2.1-1 + 2011-11-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> * kid3 2.0.1-1 diff --git a/community/lazarus/ChangeLog b/community/lazarus/ChangeLog index 0a843b0ec..d435cb744 100644 --- a/community/lazarus/ChangeLog +++ b/community/lazarus/ChangeLog @@ -1,3 +1,7 @@ +2012-05-08 BlackIkeEagle + * fix FS#29807 + * should not have removed Makefiles + 2012-04-30 BlackIkeEagle * split pkgbuild * lazarus (can be used for compiling) diff --git a/community/lazarus/PKGBUILD b/community/lazarus/PKGBUILD index f38913c75..97c9c1c7c 100644 --- a/community/lazarus/PKGBUILD +++ b/community/lazarus/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 70224 2012-05-02 13:40:21Z idevolder $ +# $Id: PKGBUILD 70466 2012-05-08 18:21:20Z idevolder $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: Jens Adam (byte/jra) <j_adam@web.de> # Contributor: BlackIkeEagle <ike DOT devolder AT gmail DOT com> @@ -6,7 +6,7 @@ pkgbase=lazarus pkgname=('lazarus' 'lazarus-gtk2' 'lazarus-qt') pkgver=0.9.30.4 -pkgrel=2 +pkgrel=3 url='http://www.lazarus.freepascal.org/' license=('GPL2' 'MPL' 'custom:LGPL') arch=('i686' 'x86_64' 'mips64el') @@ -54,8 +54,7 @@ package_lazarus() { --exclude=".xvpics" --exclude="*.compiled" \ --exclude="killme*" --exclude=".gdb_hist*" \ --exclude="debian" --exclude="COPYING*" \ - --exclude="*.app" --exclude="Makefile*" \ - --exclude="tools/install" \ + --exclude="*.app" --exclude="tools/install" \ . "$pkgdir"/usr/lib/lazarus #remove some stuff, not needed or for in other package diff --git a/community/libquvi/PKGBUILD b/community/libquvi/PKGBUILD index 968433a92..d9a21c4c2 100644 --- a/community/libquvi/PKGBUILD +++ b/community/libquvi/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 66396 2012-02-24 12:56:50Z lfleischer $ +# $Id: PKGBUILD 70444 2012-05-07 08:28:44Z lfleischer $ # Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> pkgname=libquvi -pkgver=0.4.0 -pkgrel=3 +pkgver=0.4.1 +pkgrel=1 pkgdesc='Library for parsing video download links.' arch=('i686' 'x86_64' 'mips64el') url='http://quvi.sourceforge.net/' @@ -11,8 +11,9 @@ license=('LGPL') depends=('libquvi-scripts' 'curl' 'lua') conflicts=('quvi<0.4.0') options=('!libtool') -source=("http://downloads.sourceforge.net/sourceforge/quvi/${pkgname}-${pkgver}.tar.gz") -md5sums=('85c47035105b6b523a28793d4f6da9f1') +source=("http://downloads.sourceforge.net/sourceforge/quvi/${pkgname}-${pkgver}.tar.gz"{,.sig}) +md5sums=('a5fa8860c23655a529b3166f6e25c83a' + 'cc7f15518f8ab2fc134bc64f0e9d584b') build() { cd "${pkgname}-${pkgver}" diff --git a/community/luajit/PKGBUILD b/community/luajit/PKGBUILD index 8e1f0b122..7a9480d86 100644 --- a/community/luajit/PKGBUILD +++ b/community/luajit/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 67115 2012-03-04 14:30:22Z bpiotrowski $ +# $Id: PKGBUILD 70509 2012-05-09 20:30:54Z bpiotrowski $ # Maintainer: Chris Brannon <chris@the-brannons.com> # Maintainer: BartÅ‚omiej Piotrowski # Contributor: Paulo Matias <matiasΘarchlinux-br·org> # Contributor: Anders Bergh <anders1@gmail.com> pkgname=luajit -pkgver=2.0.0b9 +pkgver=2.0.0b10 pkgrel=1 pkgdesc="A Just-In-Time Compiler for Lua" arch=('i686' 'x86_64') @@ -13,18 +13,15 @@ url="http://luajit.org/" license=('MIT') depends=('gcc-libs') source=("http://luajit.org/download/LuaJIT-${pkgver/b/-beta}.tar.gz" - "http://luajit.org/download/beta${pkgver: -1}_hotfix1.patch" 'luaconf.patch' 'Makefile.patch') -md5sums=('e7e03e67e2550817358bc28b44270c6d' - '4920f04fcef1ce486891509faf26b4f1' +md5sums=('ed66689b96f7ad7bfeffe0b4ff2d63d4' 'c8da9c6790e20a12a0e2496f438d9dc3' '8997c5e5fa4f6e8e0b86cc6b888de631') build() { cd "$srcdir/LuaJIT-${pkgver/b/-beta}" - patch -Np1 -i "$srcdir/beta${pkgver: -1}_hotfix1.patch" patch -Np0 -i "$srcdir/luaconf.patch" patch -Np0 -i "$srcdir/Makefile.patch" diff --git a/community/lxdm/PKGBUILD b/community/lxdm/PKGBUILD index 10c69a84f..f47ddd09a 100644 --- a/community/lxdm/PKGBUILD +++ b/community/lxdm/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 68758 2012-04-01 15:10:08Z bpiotrowski $ +# $Id: PKGBUILD 70485 2012-05-09 14:58:36Z bpiotrowski $ # Maintainer: BartÅ‚omiej Piotrowski # Contributor: AndyRTR <andyrtr@archlinux.org> # Contributor: kiefer <jorgelmadrid@gmail.com> pkgname=lxdm pkgver=0.4.1 -pkgrel=9 +pkgrel=10 pkgdesc="Lightweight Display Manager (part of LXDE)" arch=('i686' 'x86_64' 'mips64el') url="http://sourceforge.net/projects/lxdm/" @@ -19,18 +19,22 @@ backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession' 'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown') source=(http://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.gz glib2-2.32.0.patch lxdm.patch lxdm.conf.patch Xsession.patch - lxdm-daemon lxdm-pam) + greeter-session.patch lxdm-daemon lxdm-pam) md5sums=('8da1cfc2be6dc9217c85a7cf51e1e821' 'a1e3c46a8bef691bc544028f5b6cfe22' 'baed9055e8825a5511712bc095197519' 'c50dd01b715b0a236407d48066191601' 'd2e4a4a22ee2aa1a986be154c647b6c6' + '28475239d0c8b4fd778ec49f5ec72962' '705f394052fdd0dec22e95321d170de0' 'b20fe3c8487a039050986d60e45233a9') build() { cd $srcdir/$pkgname-$pkgver + patch -Np1 -i $srcdir/glib2-2.32.0.patch + patch -Np1 -i $srcdir/greeter-session.patch + ./configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib/lxdm make diff --git a/community/lxdm/greeter-session.patch b/community/lxdm/greeter-session.patch new file mode 100644 index 000000000..f3b94a57a --- /dev/null +++ b/community/lxdm/greeter-session.patch @@ -0,0 +1,13 @@ +diff --git a/src/greeter.c b/src/greeter.c +index c0c150d..1f6b88e 100644 +--- a/src/greeter.c ++++ b/src/greeter.c +@@ -114,7 +114,7 @@ static char *get_session_exec(void) + GtkTreeModel* model; + GtkTreeIter it; + gchar *res; +- if(!lang) ++ if(!sessions) + return g_strdup(""); + + if(!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(sessions), &it)) diff --git a/community/mathomatic/PKGBUILD b/community/mathomatic/PKGBUILD index d098d45df..3c4cc47c2 100755 --- a/community/mathomatic/PKGBUILD +++ b/community/mathomatic/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 70112 2012-04-29 22:28:19Z ttopper $ +# $Id: PKGBUILD 70548 2012-05-11 05:36:19Z ttopper $ # Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de> # Contributor: Stefan Husmann <stefan-husmann@t-online.de> # Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de> pkgname=mathomatic -pkgver=15.8.3 +pkgver=15.8.4 pkgrel=1 pkgdesc="General purpose Computer Algebra System written in C" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ optdepends=('python2: for running /usr/share/doc/mathomatic/factorial/factorial' 'm4: for complex operations using the matho script' 'gnuplot: for plotting') source=(http://mathomatic.org/$pkgname-$pkgver.tar.bz2) -md5sums=('df4296e27840ecafe87f16ff9cf181ac') +md5sums=('9b58f8221e76a80f847f31a67bf01401') build() { cd "$srcdir"/$pkgname-$pkgver diff --git a/community/minidlna/PKGBUILD b/community/minidlna/PKGBUILD index 2114d29e5..03af311c7 100644 --- a/community/minidlna/PKGBUILD +++ b/community/minidlna/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 70262 2012-05-03 10:11:50Z spupykin $ +# $Id: PKGBUILD 70495 2012-05-09 17:17:28Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer:Biginoz < biginoz AT free point fr> # Contributor: Ignacio Galmarino <igalmarino@gmail.com> @@ -7,7 +7,7 @@ pkgname=minidlna pkgver=1.0.24 -pkgrel=3 +pkgrel=4 pkgdesc="A DLNA/UPnP-AV Media server (aka ReadyDLNA)" arch=('i686' 'x86_64' 'mips64el') url="http://sourceforge.net/projects/minidlna/" @@ -28,6 +28,7 @@ md5sums=('be9b4c91e3fcde592dc3f9828098ca0f' build() { cd "$srcdir/$pkgname-$pkgver" + sed -i 's|DB_PATH=.*|DB_PATH=/var/cache/minidlna|' genconfig.sh make } diff --git a/community/mosh/PKGBUILD b/community/mosh/PKGBUILD new file mode 100644 index 000000000..49a766641 --- /dev/null +++ b/community/mosh/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 68685 2012-03-31 16:54:07Z arodseth $ +# Maintainer: Alexander Rødseth <rodseth@gmail.com> +# Contributor: Christian Neukirchen <chneukirchen@gmail.com> +# Contributor: Thomas Weißschuh <thomas_weissschuh lavabit.com> + +pkgname=mosh +pkgver=1.2 +pkgrel=1 +pkgdesc='Mobile shell, surviving disconnects with local echo and line editing' +arch=('x86_64' 'i686') +url="http://mosh.mit.edu/" +license=('GPL3') +depends=('protobuf' 'ncurses' 'zlib' 'openssh' 'perl' 'perl-io-tty') +#optdepends=('libutempter: record of session in {u,t}wmp (recompile mosh afterwards)') +conflicts=('mosh-git') +source=("$pkgname-$pkgver.tgz::https://nodeload.github.com/keithw/mosh/tarball/master") +sha1sums=('690e301560808f13a8a7b19bd7740d81fecac262') + +build() { + cd "$srcdir/keithw-mosh-"* + + ./autogen.sh + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir/keithw-mosh-"* + + make DESTDIR="$pkgdir/" install +} + +# vim:set ts=2 sw=2 et: diff --git a/community/myodbc/PKGBUILD b/community/myodbc/PKGBUILD index 96a95a43b..6e55b0794 100644 --- a/community/myodbc/PKGBUILD +++ b/community/myodbc/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 70209 2012-05-02 12:44:37Z spupykin $ +# $Id: PKGBUILD 70531 2012-05-10 15:58:32Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> pkgname=myodbc pkgver=5.1.11 -pkgrel=1 +pkgrel=2 pkgdesc="ODBC driver/connector for MySQL" arch=(i686 x86_64 'mips64el') url="http://dev.mysql.com/downloads/connector/odbc/" @@ -18,6 +18,13 @@ md5sums=('1d868f404038bbce6623a28255c8a9f7' build() { cd $srcdir/mysql-connector-odbc-${pkgver}-src cp $srcdir/myconf.h.in driver/myconf.h.in + patch driver/Makefile.am <<EOF +55c55,56 +< driver.h +--- +> driver.h \\ +> my_stmt.c +EOF [ -x configure ] || { aclocal; libtoolize; automake --add-missing; autoreconf; } [ -f Makefile ] || CFLAGS="$CFLAGS -DTHREAD" \ ./configure --prefix=/usr --sysconfdir=/etc --with-unixODBC=/usr --with-odbc-ini=/etc/odbc.ini \ diff --git a/community/mythplugins/PKGBUILD b/community/mythplugins/PKGBUILD index af1a3aabb..984be7fad 100644 --- a/community/mythplugins/PKGBUILD +++ b/community/mythplugins/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 69346 2012-04-14 12:26:30Z jconder $ +# $Id: PKGBUILD 70479 2012-05-09 10:48:34Z jconder $ # Maintainer: Jonathan Conder <jonno.conder@gmail.com> # Contributor: Giovanni Scafora <giovanni@archlinux.org> @@ -14,7 +14,7 @@ pkgname=('mythplugins-mytharchive' 'mythplugins-mythweb' 'mythplugins-mythzoneminder') pkgver=0.25 -pkgrel=2 +pkgrel=3 epoch=1 arch=('i686' 'x86_64' 'mips64el') url="http://www.mythtv.org" @@ -25,14 +25,17 @@ makedepends=('cdrkit' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg' 'flac' 'libexif' 'perl-soap-lite' 'perl-xml-sax' 'perl-xml-simple' 'perl-xml-xpath' 'python2-oauth' 'python-imaging' 'python-pycurl' 'taglib' 'zlib') source=("ftp://ftp.osuosl.org/pub/mythtv/$pkgbase-$pkgver.tar.bz2" + 'php54.patch' 'mtd.rc') md5sums=('b3f2768372a38e92ca94841519daa05e' + '7a114c1b5a84ab5ee190e63cc9514086' '476c12ba074794ad7f4ae092bdf949d6') build() { cd "$srcdir/$pkgbase-$pkgver" find . -name '*.py' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' + patch -d 'mythweb' -Np0 -i "$srcdir/php54.patch" sed -re 's@/usr/local.*/usr/share@/usr/share@' -i 'mythweb/mythweb.php' sed -re 's@cstdio@cstdio>\n#include <unistd.h@' -i 'mythzoneminder/mythzmserver/zmserver.cpp' @@ -115,18 +118,19 @@ package_mythplugins-mythweb() { depends=('mythtv') optdepends=('lighttpd' 'php-apache') + install='mythplugins-mythweb.install' - mkdir -p "$pkgdir/srv/http/mythweb"/{image_cache,php_sessions} - cp -R "$srcdir/$pkgbase-$pkgver/mythweb"/* "$pkgdir/srv/http/mythweb" - chown -R http:http "$pkgdir/srv/http/mythweb" - chmod g+rw "$pkgdir/srv/http/mythweb"/{image_cache,php_sessions} + mkdir -p "$pkgdir/var/lib/mythtv/mythweb"/{image_cache,php_sessions} + cp -R "$srcdir/$pkgbase-$pkgver/mythweb"/* "$pkgdir/var/lib/mythtv/mythweb" + chown -R http:http "$pkgdir/var/lib/mythtv/mythweb" + chmod g+rw "$pkgdir/var/lib/mythtv/mythweb"/{image_cache,php_sessions} } package_mythplugins-mythzoneminder() { pkgdesc="View CCTV footage from zoneminder in MythTV" depends=('mythtv') - install='mythplugins-mythzoneminder.install' + cd "$srcdir/$pkgbase-$pkgver/mythzoneminder" make INSTALL_ROOT="$pkgdir" install } diff --git a/community/mythplugins/mythplugins-mythweb.install b/community/mythplugins/mythplugins-mythweb.install new file mode 100644 index 000000000..2c626c538 --- /dev/null +++ b/community/mythplugins/mythplugins-mythweb.install @@ -0,0 +1,4 @@ +post_upgrade() { + echo "MythWeb files are now in /var/lib/mythtv/mythweb" + echo "Please update your server configuration accordingly" +} diff --git a/community/mythplugins/php54.patch b/community/mythplugins/php54.patch new file mode 100644 index 000000000..afbe8f953 --- /dev/null +++ b/community/mythplugins/php54.patch @@ -0,0 +1,35 @@ +*** includes/sorting.php.old 2011-04-03 06:05:31.000000000 -0500 +--- includes/sorting.php 2012-03-27 05:05:51.000000000 -0500 +*************** +*** 123,129 **** + function by_user_choice(&$a, &$b) { + foreach ($GLOBALS['user_sort_choice'] as $sort) { + $function = 'by_'.$sort['field']; +! $response = $function(&$a, &$b); + // Identical response, go on to the next sort choice + if (!$response) + continue; +--- 123,129 ---- + function by_user_choice(&$a, &$b) { + foreach ($GLOBALS['user_sort_choice'] as $sort) { + $function = 'by_'.$sort['field']; +! $response = $function($a, $b); + // Identical response, go on to the next sort choice + if (!$response) + continue; +*** modules/tv/tmpl/default/schedules.php.old 2011-04-03 06:05:31.000000000 -0500 +--- modules/tv/tmpl/default/schedules.php 2012-03-27 05:37:40.000000000 -0500 +*************** +*** 90,95 **** +--- 90,100 ---- + </tr> + </thead> + <?php ++ // Hack: Disable warnings about "Creating default ++ // object from empty value" from below line ++ // "$schedule->channel->name = '[ '.t('Any').' ]';" ++ ini_set('error_reporting', E_ERROR); ++ + $prev_group = ''; + $cur_group = ''; + foreach ($the_schedules as $schedule) { diff --git a/community/onboard/PKGBUILD b/community/onboard/PKGBUILD new file mode 100644 index 000000000..8476b2c16 --- /dev/null +++ b/community/onboard/PKGBUILD @@ -0,0 +1,41 @@ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> + +pkgname=onboard +pkgver=0.97.0 +pkgrel=2 +pkgdesc="On-screen keyboard useful on tablet PCs or for mobility impaired users" +arch=('i686' 'x86_64') +url="https://launchpad.net/onboard" +license=('GPL') +depends=('python2-cairo' 'dbus-python' 'python2-gobject' 'libwnck3' 'python2-virtkey' 'desktop-file-utils' 'dconf' 'hicolor-icon-theme' 'xdg-utils') +makedepends=('python-distutils-extra') +optdepends=('at-spi2-atk: auto-show when editing text' + 'mousetweaks: hover click with mouse') +options=('!emptydirs') +install=$pkgname.install +source=(http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz + fix_unicode_translations.patch + fix_encoding_mismatch.patch) +md5sums=('258bf6653a840c54ce1b4898d31fb775' + '73d71d019dc27e6ac8d479ab3dd0ab21' + '8c7f6f31547e1454725ded8090cbdc41') + +build() { + cd "$srcdir/$pkgname-$pkgver" + + # https://bugs.launchpad.net/onboard/+bug/933030 + patch -Np0 -i "$srcdir/fix_unicode_translations.patch" + + # https://bugs.launchpad.net/onboard/+bug/958385 + patch -Np1 -i "$srcdir/fix_encoding_mismatch.patch" + + sed -i 's/\"python\"/\"python2\"/g' scripts/sokSettings.py + + python2 setup.py install --root=$pkgdir/ --optimize=1 +} + +package() { + cd "$pkgdir" + + find . -type f -name *.py | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' +} diff --git a/community/onboard/fix_encoding_mismatch.patch b/community/onboard/fix_encoding_mismatch.patch new file mode 100644 index 000000000..01750598c --- /dev/null +++ b/community/onboard/fix_encoding_mismatch.patch @@ -0,0 +1,187 @@ +Subject: Fix string encodings so as to not have a mismatch without mousetweaks +Author: marmuta +Origin: upstream, http://bazaar.launchpad.net/~onboard/onboard/0.91/revision/764 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/958385 + +--- + Onboard/Config.py | 9 +++++---- + Onboard/ConfigUtils.py | 9 ++++++--- + Onboard/Exceptions.py | 5 +++-- + Onboard/OnboardGtk.py | 5 +++-- + Onboard/settings.py | 7 ++++--- + Onboard/utils.py | 16 ++++++++++++++++ + 6 files changed, 37 insertions(+), 14 deletions(-) + +Index: onboard-0.97.0/Onboard/Config.py +=================================================================== +--- onboard-0.97.0.orig/Onboard/Config.py ++++ onboard-0.97.0/Onboard/Config.py +@@ -12,7 +12,7 @@ + + from gi.repository import GLib, Gtk + +-from Onboard.utils import show_confirmation_dialog, Version ++from Onboard.utils import show_confirmation_dialog, Version, unicode_str + from Onboard.WindowUtils import Handle + from Onboard.ConfigUtils import ConfigObject + from Onboard.MouseControl import Mousetweaks, ClickMapper +@@ -209,7 +209,7 @@ + try: + ConfigObject.__init__(self) + except SchemaError as e: +- _logger.error(str(e)) ++ _logger.error(unicode_str(e)) + sys.exit() + + # init paths +@@ -225,7 +225,8 @@ + try: + copytree(old_user_dir, user_dir) + except OSError as ex: # python >2.5 +- _logger.error(_("Failed to migrate user directory. ") + str(ex)) ++ _logger.error(_("Failed to migrate user directory. ") + \ ++ unicode_str(ex)) + + # Load system defaults (if there are any, not required). + # Used for distribution specific settings, aka branding. +@@ -347,7 +348,7 @@ + self.mousetweaks = Mousetweaks() + self.children.append(self.mousetweaks) + except (SchemaError, ImportError) as e: +- _logger.warning(str(e)) ++ _logger.warning(unicode_str(e)) + self.mousetweaks = None + + self.clickmapper = ClickMapper() +Index: onboard-0.97.0/Onboard/ConfigUtils.py +=================================================================== +--- onboard-0.97.0.orig/Onboard/ConfigUtils.py ++++ onboard-0.97.0/Onboard/ConfigUtils.py +@@ -22,7 +22,8 @@ + from gi.repository import Gio + + from Onboard.Exceptions import SchemaError +-from Onboard.utils import pack_name_value_list, unpack_name_value_list ++from Onboard.utils import pack_name_value_list, unpack_name_value_list, \ ++ unicode_str + + _CAN_SET_HOOK = "_can_set_" # return true if value is valid + _GSETTINGS_GET_HOOK = "_gsettings_get_" # retrieve from gsettings +@@ -388,7 +389,8 @@ + try: + filename = parser.read(paths) + except configparser.ParsingError as ex: +- _logger.error(_("Failed to read system defaults. " + str(ex))) ++ _logger.error(_("Failed to read system defaults. " + \ ++ unicode_str(ex))) + + if not filename: + _logger.info(_("No system defaults found.")) +@@ -501,7 +503,8 @@ + value = self.settings[self.key] + + except KeyError as ex: +- _logger.error(_("Failed to get gsettings value. ") + str(ex)) ++ _logger.error(_("Failed to get gsettings value. ") + \ ++ unicode_str(ex)) + + return value + +Index: onboard-0.97.0/Onboard/Exceptions.py +=================================================================== +--- onboard-0.97.0.orig/Onboard/Exceptions.py ++++ onboard-0.97.0/Onboard/Exceptions.py +@@ -4,6 +4,7 @@ + + from traceback import format_tb + import sys ++from Onboard.utils import unicode_str + + class ChainableError(Exception): + """ +@@ -40,10 +41,10 @@ + traceback = property(_get_traceback) + + def __str__(self): +- message = self._message + "\n" ++ message = unicode_str(self._message) + "\n" + if self.chained_exception: + message += "%s: %s" % (type(self.chained_exception).__name__, +- str(self.chained_exception)) ++ unicode_str(self.chained_exception)) + return message + + class SVGSyntaxError(ChainableError): +Index: onboard-0.97.0/Onboard/OnboardGtk.py +=================================================================== +--- onboard-0.97.0.orig/Onboard/OnboardGtk.py ++++ onboard-0.97.0/Onboard/OnboardGtk.py +@@ -26,7 +26,8 @@ + from Onboard.KeyGtk import * + from Onboard.KbdWindow import KbdWindow, KbdPlugWindow + from Onboard.KeyboardSVG import KeyboardSVG +-from Onboard.utils import show_confirmation_dialog, CallOnce, timeit ++from Onboard.utils import show_confirmation_dialog, CallOnce, timeit, \ ++ unicode_str + from Onboard.Appearance import Theme + + ### Config Singleton ### +@@ -485,7 +486,7 @@ + except virtkey.error as e: + t = time.time() + if t > self._vk_error_time + .2: # rate limit to once per 200ms +- _logger.warning("vk: "+str(e)) ++ _logger.warning("vk: " + unicode_str(e)) + self._vk_error_time = t + + return self._vk +Index: onboard-0.97.0/Onboard/settings.py +=================================================================== +--- onboard-0.97.0.orig/Onboard/settings.py ++++ onboard-0.97.0/Onboard/settings.py +@@ -24,7 +24,8 @@ + from Onboard.Appearance import Theme, ColorScheme + from Onboard.Scanner import ScanMode, ScanDevice + from Onboard.utils import show_ask_string_dialog, \ +- show_confirmation_dialog ++ show_confirmation_dialog, \ ++ unicode_str + + from virtkey import virtkey + from osk import Devices +@@ -400,8 +401,8 @@ + try: + Popen([filename, "universal-access"]) + except OSError as e: +- _logger.warning(_("System settings not found" +- " ({}): {}").format(filename, str(e))) ++ _logger.warning(_("System settings not found ({}): {}") \ ++ .format(filename, unicode_str(e))) + + def update_num_resize_handles_combobox(self): + self.num_resize_handles_list = Gtk.ListStore(str, int) +Index: onboard-0.97.0/Onboard/utils.py +=================================================================== +--- onboard-0.97.0.orig/Onboard/utils.py ++++ onboard-0.97.0/Onboard/utils.py +@@ -961,4 +961,20 @@ + return 1 + return 0 + ++def unicode_str(obj, encoding = "utf-8"): ++ """ ++ Safe str() function that always returns an unicode string. ++ Do nothing if the string was already unicode. ++ """ ++ if sys.version_info.major >= 3: # python 3? ++ return str(obj) ++ ++ if type(obj) == unicode: # unicode string? ++ return obj ++ ++ if hasattr(obj, "__unicode__"): # Exception object? ++ return unicode(obj) ++ ++ return str(obj).decode("utf-8") # strings, numbers, ... ++ + diff --git a/community/onboard/fix_unicode_translations.patch b/community/onboard/fix_unicode_translations.patch new file mode 100644 index 000000000..1eaf663cc --- /dev/null +++ b/community/onboard/fix_unicode_translations.patch @@ -0,0 +1,247 @@ +=== modified file 'Onboard/Appearance.py' +--- Onboard/Appearance.py 2012-02-14 08:16:34 +0000 ++++ Onboard/Appearance.py 2012-02-15 23:27:20 +0000 +@@ -11,7 +11,6 @@ + _logger = logging.getLogger("Appearance") + ############### + +-from gettext import gettext as _ + from xml.dom import minidom + import os + import re + +=== modified file 'Onboard/Config.py' +--- Onboard/Config.py 2012-02-15 10:58:02 +0000 ++++ Onboard/Config.py 2012-02-15 23:27:20 +0000 +@@ -9,7 +9,6 @@ + import sys + from shutil import copytree + from optparse import OptionParser +-from gettext import gettext as _ + + from gi.repository import GLib, Gtk + + +=== modified file 'Onboard/ConfigUtils.py' +--- Onboard/ConfigUtils.py 2012-02-08 14:56:38 +0000 ++++ Onboard/ConfigUtils.py 2012-02-15 23:27:20 +0000 +@@ -13,7 +13,6 @@ + import os + import sys + from ast import literal_eval +-from gettext import gettext as _ + try: + import configparser + except ImportError: +@@ -418,8 +417,8 @@ + # convert ini file strings to property values + sysdef_gskeys = dict((k.sysdef, k) for k in list(self.gskeys.values())) + for sysdef, value in items: +- _logger.info(_("Found system default '{}={}'") \ +- .format(sysdef, value)) ++ _logger.info(_("Found system default '[{}] {}={}'") \ ++ .format(self.sysdef_section, sysdef, value)) + + gskey = sysdef_gskeys.get(sysdef, None) + value = self._convert_sysdef_key(gskey, sysdef, value) + +=== modified file 'Onboard/IconPalette.py' +--- Onboard/IconPalette.py 2012-02-15 01:34:13 +0000 ++++ Onboard/IconPalette.py 2012-02-15 23:27:20 +0000 +@@ -43,7 +43,6 @@ + config = Config() + ######################## + +-from gettext import gettext as _ + + class IconPalette(Gtk.Window, WindowRectTracker, WindowManipulator): + """ + +=== modified file 'Onboard/Indicator.py' +--- Onboard/Indicator.py 2012-02-11 14:07:56 +0000 ++++ Onboard/Indicator.py 2012-02-15 23:27:20 +0000 +@@ -18,7 +18,6 @@ + config = Config() + ######################## + +-from gettext import gettext as _ + + class Indicator(GObject.GObject): + + +=== modified file 'Onboard/KbdWindow.py' +--- Onboard/KbdWindow.py 2012-02-15 10:18:48 +0000 ++++ Onboard/KbdWindow.py 2012-02-15 23:27:20 +0000 +@@ -11,7 +11,6 @@ + from Onboard.WindowUtils import Orientation, WindowRectTracker + from Onboard.IconPalette import IconPalette + +-from gettext import gettext as _ + + ### Logging ### + import logging + +=== modified file 'Onboard/Keyboard.py' +--- Onboard/Keyboard.py 2012-02-14 20:21:02 +0000 ++++ Onboard/Keyboard.py 2012-02-15 23:27:20 +0000 +@@ -3,7 +3,6 @@ + from __future__ import division, print_function, unicode_literals + + import sys +-from gettext import gettext as _ + + from gi.repository import GObject, Gtk, Gdk + + +=== modified file 'Onboard/KeyboardGTK.py' +--- Onboard/KeyboardGTK.py 2012-02-15 01:33:34 +0000 ++++ Onboard/KeyboardGTK.py 2012-02-15 23:27:20 +0000 +@@ -5,7 +5,6 @@ + + import os + import time +-from gettext import gettext as _ + + import cairo + from gi.repository import GObject, Gdk, Gtk + +=== modified file 'Onboard/KeyboardSVG.py' +--- Onboard/KeyboardSVG.py 2012-02-09 19:18:36 +0000 ++++ Onboard/KeyboardSVG.py 2012-02-15 23:27:20 +0000 +@@ -11,7 +11,6 @@ + import re + import sys + import shutil +-from gettext import gettext as _ + from xml.dom import minidom + + from Onboard import Exceptions + +=== modified file 'Onboard/MouseControl.py' +--- Onboard/MouseControl.py 2012-01-19 08:50:34 +0000 ++++ Onboard/MouseControl.py 2012-02-15 23:27:20 +0000 +@@ -5,7 +5,6 @@ + + from __future__ import division, print_function, unicode_literals + +-from gettext import gettext as _ + try: + import dbus + from dbus.mainloop.glib import DBusGMainLoop + +=== modified file 'Onboard/OnboardGtk.py' +--- Onboard/OnboardGtk.py 2012-02-15 10:58:02 +0000 ++++ Onboard/OnboardGtk.py 2012-02-15 23:27:20 +0000 +@@ -13,14 +13,14 @@ + import signal + import gettext + import os.path +-from gettext import gettext as _ + import virtkey +- + from gi.repository import GObject, Gio, Gdk, Gtk + ++# setup gettext, install _() function for all modules ++app = "onboard" ++gettext.install(app, unicode=True) + + from Onboard.Indicator import Indicator +- + from Onboard.Keyboard import Keyboard + from Onboard.Scanner import Scanner + from Onboard.KeyGtk import * +@@ -37,11 +37,6 @@ + import Onboard.KeyCommon + import Onboard.utils as utils + +-#setup gettext +-app="onboard" +-gettext.textdomain(app) +-gettext.bindtextdomain(app) +- + DEFAULT_FONTSIZE = 10 + + class OnboardGtk(Gtk.Application): + +=== modified file 'Onboard/SnippetView.py' +--- Onboard/SnippetView.py 2012-01-09 22:25:10 +0000 ++++ Onboard/SnippetView.py 2012-02-15 23:27:20 +0000 +@@ -4,7 +4,6 @@ + + from gi.repository import GObject, Gtk + +-from gettext import gettext as _ + + from Onboard.utils import show_error_dialog + + +=== modified file 'Onboard/TouchHandles.py' +--- Onboard/TouchHandles.py 2012-02-14 08:32:08 +0000 ++++ Onboard/TouchHandles.py 2012-02-15 23:27:20 +0000 +@@ -5,7 +5,6 @@ + + from math import pi, sqrt, sin, log + import cairo +-from gettext import gettext as _ + + from Onboard.utils import Rect + from Onboard.WindowUtils import Handle + +=== modified file 'Onboard/WindowUtils.py' +--- Onboard/WindowUtils.py 2012-02-15 10:23:36 +0000 ++++ Onboard/WindowUtils.py 2012-02-15 23:27:20 +0000 +@@ -5,7 +5,6 @@ + + import time + from math import sqrt +-from gettext import gettext as _ + + from gi.repository import GObject, Gtk, Gdk + + +=== modified file 'Onboard/settings.py' +--- Onboard/settings.py 2012-02-15 10:58:02 +0000 ++++ Onboard/settings.py 2012-02-15 23:27:20 +0000 +@@ -11,9 +11,14 @@ + from subprocess import Popen + from xml.parsers.expat import ExpatError + from xml.dom import minidom ++import gettext + + from gi.repository import GObject, Pango, Gdk, Gtk + ++# setup gettext, install _() function for all modules ++app = "onboard" ++gettext.install(app, unicode=True) ++ + from Onboard.KeyboardSVG import KeyboardSVG + from Onboard.SnippetView import SnippetView + from Onboard.Appearance import Theme, ColorScheme +@@ -36,14 +41,6 @@ + config = Config() + ######################## + +-#setup gettext +-import gettext +-from gettext import gettext as _ +-app = "onboard" +-gettext.textdomain(app) +-gettext.bindtextdomain(app) +- +- + + def LoadUI(filebase): + builder = Gtk.Builder() + +=== modified file 'Onboard/utils.py' +--- Onboard/utils.py 2012-02-15 01:33:34 +0000 ++++ Onboard/utils.py 2012-02-15 23:27:20 +0000 +@@ -11,7 +11,6 @@ + from subprocess import Popen + from math import pi, sqrt, sin + from contextlib import contextmanager +-from gettext import gettext as _ + + from gi.repository import GObject, Gtk + + diff --git a/community/onboard/onboard.install b/community/onboard/onboard.install new file mode 100644 index 000000000..aa4c3e059 --- /dev/null +++ b/community/onboard/onboard.install @@ -0,0 +1,13 @@ +post_install() { + glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q + xdg-icon-resource forceupdate +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/community/openbox/PKGBUILD b/community/openbox/PKGBUILD index 4659f948a..f5d92d960 100644 --- a/community/openbox/PKGBUILD +++ b/community/openbox/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 64899 2012-02-18 19:57:32Z bpiotrowski $ +# $Id: PKGBUILD 70588 2012-05-12 09:12:54Z bpiotrowski $ # Maintainer: BartÅ‚omiej Piotrowski <nospam@bpiotrowski.pl> # Contributor: Brad Fanella <bradfanella@archlinux.us> # Contributor: Andrea Scarpino <andrea@archlinux.org> @@ -6,8 +6,8 @@ pkgname=openbox pkgver=3.5.0 -pkgrel=5 -pkgdesc="A window manager for the X11 windowing system" +pkgrel=7 +pkgdesc="A highly configurable and lightweight X11 window manager" arch=('i686' 'x86_64' 'mips64el') url="http://openbox.org" license=('GPL') @@ -18,34 +18,40 @@ groups=('lxde') install=${pkgname}.install options=('!libtool') backup=('etc/xdg/openbox/menu.xml' 'etc/xdg/openbox/rc.xml') -source=("http://www.icculus.org/openbox/releases/${pkgname}-${pkgver}.tar.gz" - 'which-2.20.patch') +source=(http://www.icculus.org/openbox/releases/${pkgname}-${pkgver}.tar.gz + which-2.20.patch + movesize.patch + title-matching.patch) md5sums=('00441b53cf14c03566c8e82643544ff9' - '7ca3b5244bb092d46f5bcf1e2bdf4a18') + '7ca3b5244bb092d46f5bcf1e2bdf4a18' + 'e09d77842aac9a0cd7eebe112df88383' + '6f99711eee0b1c413dca9fa691917b71') build() { - cd "${srcdir}"/${pkgname}-${pkgver} + cd "${srcdir}"/${pkgname}-${pkgver} - # FS#11455 - patch -p1 -i "${srcdir}"/which-2.20.patch - sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \ - data/autostart/openbox-xdg-autostart + patch -Np1 -i "${srcdir}"/which-2.20.patch # FS#11455 + patch -Np1 -i "${srcdir}"/movesize.patch # FS#29812 + patch -Np0 -i "${srcdir}"/title-matching.patch # FS#5277 on Openbox bugtracker + + sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \ + data/autostart/openbox-xdg-autostart - ./configure --prefix=/usr \ - --with-x \ - --enable-startup-notification \ - --sysconfdir=/etc \ - --libexecdir=/usr/lib/openbox + ./configure --prefix=/usr \ + --with-x \ + --enable-startup-notification \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib/openbox - make + make } package() { - cd "${srcdir}"/${pkgname}-${pkgver} - make DESTDIR="${pkgdir}" install + cd "${srcdir}"/${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install - sed -i "s:startkde:/usr/bin/\0:" \ - "${pkgdir}"/usr/share/xsessions/openbox-kde.desktop - sed -i "s:=gnome-session:=/usr/bin/gnome-session:" \ - "${pkgdir}"/usr/share/xsessions/openbox-gnome.desktop + sed -i "s:startkde:/usr/bin/\0:" \ + "${pkgdir}"/usr/share/xsessions/openbox-kde.desktop + sed -i "s:=gnome-session:=/usr/bin/gnome-session:" \ + "${pkgdir}"/usr/share/xsessions/openbox-gnome.desktop } diff --git a/community/openbox/movesize.patch b/community/openbox/movesize.patch new file mode 100644 index 000000000..4f0e8595e --- /dev/null +++ b/community/openbox/movesize.patch @@ -0,0 +1,19 @@ +--- openbox-3.5.0/openbox/moveresize.c.orig 2011-08-01 21:14:58.000000000 +0100 ++++ openbox-3.5.0/openbox/moveresize.c 2012-03-28 20:04:36.100459920 +0100 +@@ -326,6 +326,16 @@ void moveresize_end(gboolean cancel) + #endif + } + ++ if (!moveresize_client) { ++ ob_debug("moveresize_end: moveresize_client is NULL!"); ++ return; ++ } ++ ++ if (!moveresize_in_progress) { ++ ob_debug("moveresize_end: moveresize_in_progress is FALSE!"); ++ return; ++ } ++ + /* don't use client_move() here, use the same width/height as + we've been using during the move, otherwise we get different results + when moving maximized windows between monitors of different sizes ! diff --git a/community/openbox/title-matching.patch b/community/openbox/title-matching.patch new file mode 100644 index 000000000..88ed73546 --- /dev/null +++ b/community/openbox/title-matching.patch @@ -0,0 +1,11 @@ +--- openbox/client.c 2011-08-01 22:14:58.000000000 +0200 ++++ openbox/client.c 2011-10-22 14:59:56.000000000 +0200 +@@ -883,7 +883,7 @@ + !g_pattern_match(app->role, + strlen(self->role), self->role, NULL)) + match = FALSE; +- else if (app->title && ++ else if (app->title && self->title && + !g_pattern_match(app->title, + strlen(self->title), self->title, NULL)) + match = FALSE; diff --git a/community/php-geoip/PKGBUILD b/community/php-geoip/PKGBUILD index 37b59a9be..f3f193205 100644 --- a/community/php-geoip/PKGBUILD +++ b/community/php-geoip/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 57315 2011-10-25 17:20:28Z foutrelis $ +# $Id: PKGBUILD 70501 2012-05-09 18:48:05Z pschmitz $ # Maintainer: Evangelos Foutras <evangelos@foutrelis.com> pkgname=php-geoip pkgver=1.0.8 -pkgrel=1 +pkgrel=2 pkgdesc="GeoIP module for PHP" arch=('i686' 'x86_64' 'mips64el') url="http://pecl.php.net/package/geoip" @@ -11,7 +11,7 @@ license=('PHP') depends=('php' 'geoip') backup=('etc/php/conf.d/geoip.ini') source=(http://pecl.php.net/get/geoip-$pkgver.tgz) -sha1sums=('f8d17da3e192002332ab54b9b4ab0f5deeaf9f15') +sha256sums=('08beeb2cbe9ab729d06b026795f5b9084aead6a1762493b0be53c4393d68d08a') build() { cd "$srcdir/geoip-$pkgver" diff --git a/community/php-memcache/PKGBUILD b/community/php-memcache/PKGBUILD index ac2f91fbc..8e9d67f97 100644 --- a/community/php-memcache/PKGBUILD +++ b/community/php-memcache/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 64649 2012-02-17 13:33:44Z foutrelis $ +# $Id: PKGBUILD 70503 2012-05-09 18:48:11Z pschmitz $ # Maintainer: Evangelos Foutras <evangelos@foutrelis.com> pkgname=php-memcache pkgver=3.0.6 -pkgrel=2 +pkgrel=3 pkgdesc="Memcache module for PHP" arch=('i686' 'x86_64' 'mips64el') url="http://pecl.php.net/package/memcache" diff --git a/community/php-memcached/PKGBUILD b/community/php-memcached/PKGBUILD index 90338e5ed..fedae5dae 100644 --- a/community/php-memcached/PKGBUILD +++ b/community/php-memcached/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 69284 2012-04-12 09:18:59Z foutrelis $ +# $Id: PKGBUILD 70505 2012-05-09 18:48:15Z pschmitz $ # Maintainer: Evangelos Foutras <evangelos@foutrelis.com> pkgname=php-memcached pkgver=2.0.1 -pkgrel=3 +pkgrel=4 pkgdesc="PHP extension for interfacing with memcached via libmemcached library" arch=('i686' 'x86_64' 'mips64el') url="http://pecl.php.net/package/memcached" diff --git a/community/pigeonhole/PKGBUILD b/community/pigeonhole/PKGBUILD index 8b75abcdd..84b646d14 100644 --- a/community/pigeonhole/PKGBUILD +++ b/community/pigeonhole/PKGBUILD @@ -4,12 +4,12 @@ # This must be built against the version of dovecot being used, # else mail delivery will fail. # Specify the version of dovecot to be used here: -_dcpkgver=2.1.5 +_dcpkgver=2.1.6 # Make sure to bump pkgrel if changing this. pkgname=pigeonhole pkgver=0.3.0 -pkgrel=6 +pkgrel=7 pkgdesc="Fully rewritten Sieve implementation for Dovecot v2.1" arch=('i686' 'x86_64' 'mips64el') url="http://pigeonhole.dovecot.org/" diff --git a/community/powertop/PKGBUILD b/community/powertop/PKGBUILD index e85e59349..9df9b58d9 100644 --- a/community/powertop/PKGBUILD +++ b/community/powertop/PKGBUILD @@ -1,31 +1,29 @@ -# $Id: PKGBUILD 67110 2012-03-04 12:47:55Z stativ $ +# $Id: PKGBUILD 70596 2012-05-12 11:08:44Z jlichtblau $ # Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> # Contributor: Alexander Fehr <pizzapunk gmail com> # Contributor: Xilon <xilonmu@gmail.com> pkgname=powertop -pkgver=1.13 -pkgrel=3 -pkgdesc="Tool that finds the software that makes your laptop use more power than necessary" +pkgver=2.0 +pkgrel=1 +pkgdesc="A tool to diagnose issues with power consumption and power management" arch=('i686' 'x86_64' 'mips64el') -url="http://www.lesswatts.org/projects/powertop/" +url="https://01.org/powertop/" license=('GPL2') -depends=('ncurses') -source=(http://www.lesswatts.org/projects/powertop/download/$pkgname-$pkgver.tar.gz \ - powertop-1.13-with-3.0.6.patch) -md5sums=('78aa17c8f55178004223bf236654298e' - '2b4c9d75fb0f5c96bcd549bcbbeb9c9d') +depends=('libnl' 'ncurses') +changelog=$pkgname.changelog +source=(https://01.org/powertop/sites/default/files/downloads/$pkgname-$pkgver.tar.bz2) +sha256sums=('7af51d320856b3446bcc314c9414385f3b05b9360f650883b0210cd3b12c5c1c') build() { - cd "$srcdir/powertop-$pkgver" - - # fix the reported batery usage on recent kernels - patch -Np1 < "$srcdir/powertop-1.13-with-3.0.6.patch" || true + cd ${srcdir}/$pkgname-$pkgver + ./configure --prefix=/usr make } package() { - cd "$srcdir/powertop-$pkgver" - make DESTDIR="$pkgdir" install + cd ${srcdir}/$pkgname-$pkgver + + make DESTDIR=${pkgdir} install } diff --git a/community/powertop/powertop.changelog b/community/powertop/powertop.changelog new file mode 100644 index 000000000..7e8deb15d --- /dev/null +++ b/community/powertop/powertop.changelog @@ -0,0 +1,2 @@ +2012-05-12 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org> + * powertop 2.0-1 diff --git a/community/pptpd/PKGBUILD b/community/pptpd/PKGBUILD index b1a5972dd..d6590b9c6 100644 --- a/community/pptpd/PKGBUILD +++ b/community/pptpd/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 70218 2012-05-02 13:03:21Z spupykin $ +# $Id: PKGBUILD 70497 2012-05-09 17:18:35Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> pkgname=pptpd pkgver=1.3.4 -pkgrel=6 +pkgrel=7 pkgdesc="Poptop server" arch=(i686 x86_64 'mips64el') url="http://poptop.sourceforge.net/" @@ -11,12 +11,15 @@ license=('GPL') depends=(ppp glibc) backup=(etc/pptpd.conf) source=(http://downloads.sourceforge.net/sourceforge/poptop/pptpd-$pkgver.tar.gz - pptpd) + pptpd + unrecognized-opt.patch) md5sums=('b38df9c431041922c997c1148bedf591' - 'e09f81beb5d59a0fdfba94e3a60d992b') + 'e09f81beb5d59a0fdfba94e3a60d992b' + 'cfa02c86d0413eb94fac15599986f54c') build() { cd $srcdir/$pkgname-$pkgver + patch -p1 <$srcdir/unrecognized-opt.patch autoreconf -i ./configure --prefix=/usr --libdir=/usr/lib --exec-prefix=/usr --mandir=/usr/share make diff --git a/community/pptpd/unrecognized-opt.patch b/community/pptpd/unrecognized-opt.patch new file mode 100644 index 000000000..17ec49e52 --- /dev/null +++ b/community/pptpd/unrecognized-opt.patch @@ -0,0 +1,13 @@ +diff -wbBur pptpd-1.3.4/pptpctrl.c pptpd-1.3.4.my/pptpctrl.c +--- pptpd-1.3.4/pptpctrl.c 2006-12-08 03:01:40.000000000 +0300 ++++ pptpd-1.3.4.my/pptpctrl.c 2012-05-09 21:13:30.000000000 +0400 +@@ -759,8 +759,8 @@ + syslog(LOG_DEBUG, "CTRL (PPPD Launcher): remote address = %s", pppaddrs[1]); + } + +- if (*pppaddrs[0] || *pppaddrs[1]) { + char pppInterfaceIPs[33]; ++ if (*pppaddrs[0] || *pppaddrs[1]) { + sprintf(pppInterfaceIPs, "%s:%s", pppaddrs[0], pppaddrs[1]); + pppd_argv[an++] = pppInterfaceIPs; + } diff --git a/community/python2-virtkey/PKGBUILD b/community/python2-virtkey/PKGBUILD new file mode 100644 index 000000000..237f64857 --- /dev/null +++ b/community/python2-virtkey/PKGBUILD @@ -0,0 +1,29 @@ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> +# Contributor: codl <codl@aquageek.net> +# Contributor: Megamixman <Megamixman@gmail.com> + +pkgname=python2-virtkey +_pkgname=python-virtkey +pkgver=0.60.0 +pkgrel=3 +pkgdesc="Python extension for emulating keypresses and getting layout information from the X server" +arch=('i686' 'x86_64') +url="https://launchpad.net/python-virtkey" +license=('LGPL') +depends=('python2' 'libxtst' 'gtk2') +replaces=('python-virtkey') +provides=('python-virtkey') +source=(http://launchpad.net/$_pkgname/${pkgver%.*}/$pkgver/+download/$_pkgname-$pkgver.tar.gz) +md5sums=('f4f6776f379bc635a29eac83a14fdde5') + +build() { + cd "$srcdir/$_pkgname-$pkgver" + + python2 setup.py build +} + +package() { + cd "$srcdir/$_pkgname-$pkgver" + + python2 setup.py install --root=$pkgdir/ --optimize=1 +} diff --git a/community/qtcreator/PKGBUILD b/community/qtcreator/PKGBUILD index 7d7806da5..7782b4c54 100644 --- a/community/qtcreator/PKGBUILD +++ b/community/qtcreator/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 63396 2012-02-01 14:18:50Z svenstaro $ +# $Id: PKGBUILD 70483 2012-05-09 14:56:54Z svenstaro $ # Maintainer: Imanol Celaya <ornitorrincos@archlinux-es.org> # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com> @@ -7,8 +7,8 @@ # Contributor: delor <bartekpiech gmail com> pkgname="qtcreator" -pkgver=2.4.1 -_pkgver=2.4.1 +pkgver=2.5.0 +_pkgver=2.5.0 pkgrel=1 pkgdesc='Lightweight, cross-platform integrated development environment' arch=('i686' 'x86_64' 'mips64el') @@ -23,11 +23,12 @@ optdepends=('qt-doc: for the integrated Qt documentation' 'openssh-askpass: for ssh support' 'git: for git support' 'mercurial: for mercurial support' - 'bzr: for bazaar support') + 'bzr: for bazaar support' + 'valgrind: for analyze support') install=qtcreator.install source=("http://get.qt.nokia.com/qtcreator/qt-creator-${_pkgver}-src.tar.gz" 'qtcreator.desktop') -md5sums=('e3a95b86df5ce9151b40cfbb2b8bbf3b' +md5sums=('31e26cdd1e3eeb8c406382ebe886dcc5' 'f1f4680b9838ff0b8f4cf11eb850d662') build() { diff --git a/community/quvi/PKGBUILD b/community/quvi/PKGBUILD index 5f2bedaa8..6aa010178 100644 --- a/community/quvi/PKGBUILD +++ b/community/quvi/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 59896 2011-12-02 07:00:15Z lfleischer $ +# $Id: PKGBUILD 70446 2012-05-07 08:29:18Z lfleischer $ # Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> # Contributor: joyfulgirl@archlinux.us pkgname=quvi -pkgver=0.4.1 +pkgver=0.4.2 pkgrel=1 pkgdesc='Command-line tool for parsing video download links.' arch=('i686' 'x86_64' 'mips64el') @@ -12,8 +12,8 @@ license=('LGPL') depends=('libquvi') options=('!libtool') source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig}) -md5sums=('0975e3d8cdf570d2143c49c249e698c5' - '53e2e206c17cb6a38c8c6b7b427b8b4a') +md5sums=('05f1e2c711d1ca9d4bc68b8de553941d' + '523b17d5a9024c8b0a1636917d79e792') build() { cd "${pkgname}-${pkgver}" diff --git a/community/r8168-lts/PKGBUILD b/community/r8168-lts/PKGBUILD index eab94b895..8475ae2aa 100644 --- a/community/r8168-lts/PKGBUILD +++ b/community/r8168-lts/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 68866 2012-04-04 09:58:28Z mtorromeo $ +# $Id: PKGBUILD 70550 2012-05-11 07:05:32Z mtorromeo $ # Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com> pkgname=r8168-lts _pkgname=r8168 -pkgver=8.028.00 -pkgrel=4 +pkgver=8.029.00 +pkgrel=1 pkgdesc="A kernel module for Realtek 8168 network cards for kernel26-lts" url="http://www.realtek.com.tw" license=("GPL") @@ -28,5 +28,5 @@ package() { find "$pkgdir" -name '*.ko' -exec gzip -9 {} \; } -md5sums=('4cc3c1706f00b55ab9bd6f5e06b758c2') -sha256sums=('c77873f43693eea5304e17e35ff3d6503f6581e358d28c38927573ea56f4d6a3') +md5sums=('5dc15a976950250b7b543876cc3350a8') +sha256sums=('211a2994c9caf57321dafdb3acdfaa877f0b3f447798dc2abd2e417db3b0e515') diff --git a/community/roxterm/PKGBUILD b/community/roxterm/PKGBUILD index 8c3ed34d6..653f04467 100644 --- a/community/roxterm/PKGBUILD +++ b/community/roxterm/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 69819 2012-04-23 17:44:21Z ttopper $ +# $Id: PKGBUILD 70468 2012-05-08 20:11:39Z ttopper $ # Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de> # Contributor: Alexander Fehr <pizzapunk gmail com> pkgname=roxterm -pkgver=2.6.2 +pkgver=2.6.3 pkgrel=1 pkgdesc="Tabbed, VTE-based terminal emulator" arch=('i686' 'x86_64' 'mips64el') @@ -13,8 +13,8 @@ depends=('dbus-glib' 'vte3' 'hicolor-icon-theme' 'libsm') makedepends=('docbook-xsl' 'xmlto' 'po4a' 'python2' 'python2-lockfile' 'imagemagick' 'librsvg') install=roxterm.install source=("http://downloads.sourceforge.net/roxterm/roxterm-$pkgver.tar.bz2") -sha1sums=('eca312666a1ff1412df2cddf93a12631c01d1a3a') -md5sums=('5e5dc51b3341855fdb392f736476d89d') +sha1sums=('f6f64cf35163338e539bdbc952d470b4a9217f9a') +md5sums=('3089fc54b3c9bb8f8e087280bf96b037') build() { diff --git a/community/shotwell/PKGBUILD b/community/shotwell/PKGBUILD index 8711dda85..58124460e 100644 --- a/community/shotwell/PKGBUILD +++ b/community/shotwell/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 69744 2012-04-23 09:08:15Z ibiru $ +# $Id: PKGBUILD 70567 2012-05-11 20:13:47Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer : Ionut Biru <ibiru@archlinux.org> # Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com> pkgname=shotwell -pkgver=0.12.2 +pkgver=0.12.3 pkgrel=1 pkgdesc="A digital photo organizer designed for the GNOME desktop environment" arch=('i686' 'x86_64' 'mips64el') @@ -15,7 +15,7 @@ depends=('libgee' 'libunique3' 'libwebkit3' 'libgexiv2' 'libraw' 'rest' makedepends=('intltool' 'vala') install=shotwell.install source=("http://yorba.org/download/shotwell/0.12/shotwell-${pkgver}.tar.bz2") -md5sums=('ce3a3204ca3c1dd451ac43e3b80c28d9') +md5sums=('de0e05350f8a7d557092489baf14d039') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/community/soundkonverter/PKGBUILD b/community/soundkonverter/PKGBUILD index e3ccf47d2..8fcdfbc57 100644 --- a/community/soundkonverter/PKGBUILD +++ b/community/soundkonverter/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 68236 2012-03-20 07:50:05Z stativ $ +# $Id: PKGBUILD 70533 2012-05-10 17:21:08Z stativ $ # Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com> # Contributor: Mateusz Herych <heniekk@gmail.com> # Contributor: Eric Belanger <eric@archlinux.org> # Contributor: Darwin Bautista <djclue917@gmail.com> pkgname=soundkonverter -pkgver=1.4.0 +pkgver=1.5.0 pkgrel=1 pkgdesc="Front-end to various audio converters" arch=('i686' 'x86_64' 'mips64el') @@ -31,7 +31,7 @@ optdepends=('cdrkit: cdda2wav backend' 'wavpack: wavpack backend') install=$pkgname.install source=("http://kde-apps.org/CONTENT/content-files/29024-${pkgname}-${pkgver}.tar.gz") -md5sums=('4d3d1ccab74c2dd41971c3a4a4e7fb57') +md5sums=('9cb8dcf64bd257965a227d79e3c6e7fb') build() { cd "$srcdir"/$pkgname-$pkgver diff --git a/community/sslh/PKGBUILD b/community/sslh/PKGBUILD index 5c74ce8df..8e63fd069 100644 --- a/community/sslh/PKGBUILD +++ b/community/sslh/PKGBUILD @@ -1,30 +1,35 @@ -# $Id: PKGBUILD 69659 2012-04-22 00:48:23Z seblu $ +# $Id: PKGBUILD 70458 2012-05-08 13:27:24Z seblu $ # Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> # Contributor: Le_suisse <lesuisse.dev+aur at gmail dot com> # Contributor: Jason Rodriguez <jason-aur@catloaf.net> pkgname=sslh -pkgver=1.11 +pkgver=1.12 pkgrel=1 pkgdesc='SSL/SSH/OpenVPN/XMPP/tinc port multiplexer' arch=('i686' 'x86_64' 'mips64el') url='http://www.rutschle.net/tech/sslh.shtml' license=('GPL2') -backup=('etc/conf.d/sslh') +depends=('libconfig') +backup=('etc/conf.d/sslh' 'etc/sslh.conf') source=("http://www.rutschle.net/tech/$pkgname-$pkgver.tar.gz" 'sslh.rc' 'sslh.conf' 'sslh.service') -md5sums=('4ea599f0fa31ae235646e5a200b8f8fb' - 'f64da291e97f1a99c33cb6ebf939b95b' - 'a098fb6b03a3435b223e16aed0e65e0b' +md5sums=('265014ecdae4512eacca91aaff0b9a81' + 'e1c44f8160b7fef397f81db63eec8421' + 'c51c63d2b28080bae4c1c7a0c469bab7' 'ee8a4fcfc1f6839f7c93deb6f59f7fd6') build() { cd $pkgname-$pkgver # fix archlinux path in manpage - sed -i -e "s/init.d/rc.d/" sslh.pod - sed -i -e "s+/etc/default+/etc/conf.d+" sslh.pod + sed -i 's/init.d/rc.d/' sslh.pod + sed -i 's+/etc/default+/etc/conf.d+' sslh.pod + # remove default pidfile in example + sed -i '/pidfile:/d' example.cfg + # daemon mode by default (as not overridable in command line) + sed -i 's/foreground: true;/foreground: false;/' example.cfg make } @@ -40,6 +45,7 @@ package() { install -Dm 0755 sslh-select "$pkgdir/usr/bin/sslh-select" ln -s sslh-fork "$pkgdir/usr/bin/sslh" install -Dm 0644 sslh.8.gz "$pkgdir/usr/share/man/man8/sslh.8.gz" + install -Dm 0644 example.cfg "$pkgdir/etc/sslh.conf" } # vim:set ts=2 sw=2 ft=sh et: diff --git a/community/sslh/sslh.conf b/community/sslh/sslh.conf index b22a325ef..d3a46d053 100644 --- a/community/sslh/sslh.conf +++ b/community/sslh/sslh.conf @@ -1,3 +1,3 @@ # vim:set ts=2 sw=2 ft=sh noet: -DAEMON_OPTS='-p 192.168.0.1:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 -u nobody' +DAEMON_OPTS='-F /etc/sslh.conf' diff --git a/community/sslh/sslh.rc b/community/sslh/sslh.rc index 9c31435a0..cd5397cad 100644 --- a/community/sslh/sslh.rc +++ b/community/sslh/sslh.rc @@ -4,31 +4,30 @@ . /etc/rc.d/functions . /etc/conf.d/${0##*/} -NAME=sslh DAEMON=/usr/bin/sslh PID=$(pidof -o %PPID $DAEMON) case "$1" in - start) - stat_busy "Starting $NAME daemon" - [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon $NAME && stat_done && exit 0 - stat_fail - ;; + start) + stat_busy "Starting ${0##*/} daemon" + [[ ! $PID ]] && $DAEMON $DAEMON_OPTS && add_daemon ${0##*/} && stat_done && exit 0 + stat_fail + ;; stop) - stat_busy "Stopping $NAME daemon" - [[ $PID ]] && kill $PID &> /dev/null && rm_daemon $NAME && stat_done && exit 0 - stat_fail - ;; + stat_busy "Stopping ${0##*/} daemon" + [[ $PID ]] && kill $PID &> /dev/null && rm_daemon ${0##*/} && stat_done && exit 0 + stat_fail + ;; restart) - $0 stop - $0 start - exit 0 - ;; + $0 stop + $0 start + exit 0 + ;; *) - echo "usage: ${0##*/} {start|stop|restart}" >&2 - ;; + echo "usage: ${0##*/} {start|stop|restart}" >&2 + ;; esac exit 1 -# vim:set ts=2 sw=2 ft=sh noet: +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/xapian-core/PKGBUILD b/community/xapian-core/PKGBUILD index 14a00e706..56c0aba25 100644 --- a/community/xapian-core/PKGBUILD +++ b/community/xapian-core/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 68835 2012-04-03 16:30:36Z foutrelis $ +# $Id: PKGBUILD 70569 2012-05-11 20:14:44Z spupykin $ # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Alexander Fehr <pizzapunk gmail com> # Contributor: William Rea <sillywilly@gmail.com> # Maintainer: Daniel J Griffiths <ghost1227@archlinux.us> pkgname=xapian-core -pkgver=1.2.9 +pkgver=1.2.10 pkgrel=1 pkgdesc='Open source search engine library.' arch=('i686' 'x86_64' 'mips64el') @@ -15,7 +15,7 @@ depends=('sh' 'gcc-libs' 'zlib' 'util-linux') # xapian config requires libxapian.la options=('libtool') source=("http://oligarchy.co.uk/xapian/${pkgver}/${pkgname}-${pkgver}.tar.gz") -md5sums=('909dd02931fe8f37690aa82a4daaa441') +md5sums=('c773df1aa9a84d3a056863532a7f6519') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/community/xdebug/PKGBUILD b/community/xdebug/PKGBUILD index 0c25492a4..5a2244bb9 100644 --- a/community/xdebug/PKGBUILD +++ b/community/xdebug/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 68086 2012-03-17 18:57:19Z spupykin $ +# $Id: PKGBUILD 70507 2012-05-09 18:48:25Z pschmitz $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer: Jonathan Wiersma <arch aur at jonw dot org> # Contributor: Jonathan Wiersma <arch aur at jonw dot org> # Contributor: sracker <smb.sac@gmail.com> pkgname=xdebug -pkgver=2.1.4 +pkgver=2.2.0 pkgrel=1 pkgdesc="PHP debugging extension" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ backup=('etc/php/conf.d/xdebug.ini') source=(http://www.xdebug.org/files/$pkgname-$pkgver.tgz xdebug-5.2.ini xdebug.ini) -md5sums=('0a1339ad8053eface15ed6420a295939' +md5sums=('27d8ad8224ffab04d12eecb5997a4f5d' '6b7fdbbe0bf381bda40e77e29981f439' '68de800943369d4c76bdf7eb35c8463b') diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD index 09bc23ca6..94d280a9b 100644 --- a/core/gcc/PKGBUILD +++ b/core/gcc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 156586 2012-04-21 10:26:57Z allan $ +# $Id: PKGBUILD 158746 2012-05-09 01:14:02Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -10,8 +10,8 @@ else pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc') fi pkgver=4.7.0 -pkgrel=5 -_snapshot=4.7-20120414 +pkgrel=6 +_snapshot=4.7-20120505 _libstdcppmanver=20120307 # Note: check source directory name when updating this pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64' 'mips64el') @@ -30,7 +30,7 @@ source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 gcc_pure64.patch gcc_mips64el_lib.patch gcc-4.7.0-cloog-0.17.patch) -md5sums=('9f9d082b64753d5908690500251fc52e' +md5sums=('8e2df3b9a755c9262db0df019cc3542e' '489d2f5311535800a120efd8d18db719' 'ced48436c1b3c981d721a829f1094de1' '474b8f5a7dee6ddd96b95a7240bfb961' @@ -164,8 +164,8 @@ package_gcc() make -j1 DESTDIR=${pkgdir} install - install -d $pkgdir/usr/share/gdb/auto-load - mv $pkgdir/usr/{lib/libstdc++.so.6.0.17-gdb.py,share/gdb/auto-load} + install -d $pkgdir/usr/share/gdb/auto-load/usr/lib + mv $pkgdir{,/usr/share/gdb/auto-load}/usr/lib/libstdc++.so.6.0.17-gdb.py # unfortunately it is much, much easier to install the lot and clean-up the mess... # -f makes rm return 0 if the archive doesn't exist diff --git a/core/glib2/PKGBUILD b/core/glib2/PKGBUILD index 46603ac2c..328319f1c 100644 --- a/core/glib2/PKGBUILD +++ b/core/glib2/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 157381 2012-04-28 09:25:44Z allan $ +# $Id: PKGBUILD 158759 2012-05-09 08:41:45Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=glib2 -pkgver=2.32.1 -pkgrel=3 +pkgver=2.32.2 +pkgrel=2 pkgdesc="Common C routines used by GTK+ and other libs" url="http://www.gtk.org/" arch=(i686 x86_64 'mips64el') @@ -16,7 +16,7 @@ source=(http://ftp.gnome.org/pub/GNOME/sources/glib/${pkgver%.*}/glib-$pkgver.ta glib2.sh glib2.csh revert-warn-glib-compile-schemas.patch) -sha256sums=('484d5b7fc09f3fa398355adaf74b369768f5859866c299f229c99721990f8398' +sha256sums=('b1764abf00bac96e0e93e29fb9715ce75f3583579acac40648e18771d43d6136' '9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a' '8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3' '049240975cd2f1c88fbe7deb28af14d4ec7d2640495f7ca8980d873bb710cc97') @@ -24,7 +24,7 @@ sha256sums=('484d5b7fc09f3fa398355adaf74b369768f5859866c299f229c99721990f8398' build() { cd glib-$pkgver patch -Rp1 -i "$srcdir/revert-warn-glib-compile-schemas.patch" - PYTHON=/usr/bin/python2 ./configure --prefix=/usr \ + PYTHON=/usr/bin/python2 ./configure --prefix=/usr --libdir=/usr/lib \ --sysconfdir=/etc \ --with-pcre=system \ --disable-fam diff --git a/core/gmp/PKGBUILD b/core/gmp/PKGBUILD index e2ddd4af4..ae2801d91 100644 --- a/core/gmp/PKGBUILD +++ b/core/gmp/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 156203 2012-04-16 03:46:32Z allan $ +# $Id: PKGBUILD 158748 2012-05-09 01:14:08Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=gmp -pkgver=5.0.4 +pkgver=5.0.5 pkgrel=1 pkgdesc="A free library for arbitrary precision arithmetic" arch=('i686' 'x86_64' 'mips64el') @@ -13,8 +13,8 @@ license=('LGPL3') options=(!libtool) install=gmp.install source=(ftp://ftp.gnu.org/gnu/gmp/gmp-${pkgver}.tar.xz{,.sig}) -md5sums=('0881f4ff2617226c673fc534ac39d448' - 'f9e448fff9eaeccdde6ee1f1df00c988') +md5sums=('8aef50959acec2a1ad41d144ffe0f3b5' + '406e8878aadc51b134d1b3dd845261ee') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/core/isl/PKGBUILD b/core/isl/PKGBUILD index aaf9fa824..132a0125a 100644 --- a/core/isl/PKGBUILD +++ b/core/isl/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 148648 2012-02-05 03:55:32Z allan $ +# $Id: PKGBUILD 158750 2012-05-09 01:14:11Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> pkgname=isl pkgver=0.09 -pkgrel=1 +pkgrel=2 pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints" arch=('i686' 'x86_64' 'mips64el') url="http://www.kotnet.org/~skimo/isl/" @@ -26,8 +26,7 @@ check() { package() { cd "$srcdir/$pkgname-$pkgver" make -j1 DESTDIR="$pkgdir/" install - - # this seems a better place for this file... - install -dm755 $pkgdir/usr/share/gdb/auto-load/ - mv $pkgdir/usr/{lib,share/gdb/auto-load}/libisl.so.9.0.0-gdb.py + + install -dm755 $pkgdir/usr/share/gdb/auto-load/usr/lib/ + mv $pkgdir/{,/usr/share/gdb/auto-load/}usr/lib/libisl.so.9.0.0-gdb.py } diff --git a/core/kmod/0001-libkmod-file-gracefully-handle-errors-from-zlib.patch b/core/kmod/0001-libkmod-file-gracefully-handle-errors-from-zlib.patch new file mode 100644 index 000000000..30c92b280 --- /dev/null +++ b/core/kmod/0001-libkmod-file-gracefully-handle-errors-from-zlib.patch @@ -0,0 +1,35 @@ +From c7d5a60d3df735a3816bbc1ff1b416a803a4f7a6 Mon Sep 17 00:00:00 2001 +From: Dave Reisner <dreisner@archlinux.org> +Date: Mon, 7 May 2012 19:41:41 -0400 +Subject: [PATCH 1/2] libkmod-file: gracefully handle errors from zlib + +zlib won't necessarily set the system errno, and this is particularly +evident on corrupted data (which results in a double free). Use zlib's +gzerror to detect the failure, returning a generic EINVAL when zlib +doesn't provide us with an errno. +--- + libkmod/libkmod-file.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/libkmod/libkmod-file.c b/libkmod/libkmod-file.c +index 46ad8d9..8beb7e3 100644 +--- a/libkmod/libkmod-file.c ++++ b/libkmod/libkmod-file.c +@@ -199,7 +199,13 @@ static int load_zlib(struct kmod_file *file) + if (r == 0) + break; + else if (r < 0) { +- err = -errno; ++ int gzerr; ++ const char *gz_errmsg = gzerror(file->gzf, &gzerr); ++ ++ ERR(file->ctx, "gzip: %s\n", gz_errmsg); ++ ++ /* gzip might not set errno here */ ++ err = gzerr == Z_ERRNO ? -errno : -EINVAL; + goto error; + } + did += r; +-- +1.7.10.1 + diff --git a/core/kmod/0002-depmod-report-failures-in-loading-symbols.patch b/core/kmod/0002-depmod-report-failures-in-loading-symbols.patch new file mode 100644 index 000000000..90c58d5da --- /dev/null +++ b/core/kmod/0002-depmod-report-failures-in-loading-symbols.patch @@ -0,0 +1,34 @@ +From 819f79a24d58e3c8429f1631df2f8f85a2f95d4a Mon Sep 17 00:00:00 2001 +From: Dave Reisner <dreisner@archlinux.org> +Date: Mon, 7 May 2012 19:41:42 -0400 +Subject: [PATCH 2/2] depmod: report failures in loading symbols + +Previously, depmod would relegate failures of kmod_module_get_symbols() +to debug output, assuming the "error" was simply a lack of symbols. +Leave the ENOENT return to debug output, but report anything else as a +real error. +--- + tools/kmod-depmod.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/tools/kmod-depmod.c b/tools/kmod-depmod.c +index e89dff6..bceb407 100644 +--- a/tools/kmod-depmod.c ++++ b/tools/kmod-depmod.c +@@ -1542,8 +1542,11 @@ static int depmod_load_symbols(struct depmod *depmod) + struct kmod_list *l, *list = NULL; + int err = kmod_module_get_symbols(mod->kmod, &list); + if (err < 0) { +- DBG("ignoring %s: no symbols: %s\n", +- mod->path, strerror(-err)); ++ if (err == -ENOENT) ++ DBG("ignoring %s: no symbols\n", mod->path); ++ else ++ ERR("failed to load symbols from %s: %s\n", ++ mod->path, strerror(-err)); + continue; + } + kmod_list_foreach(l, list) { +-- +1.7.10.1 + diff --git a/core/kmod/PKGBUILD b/core/kmod/PKGBUILD index 57a59af85..b3da1f7cd 100644 --- a/core/kmod/PKGBUILD +++ b/core/kmod/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 157131 2012-04-24 12:21:20Z dreisner $ +# $Id: PKGBUILD 158851 2012-05-12 13:02:54Z dreisner $ # Maintainer: Dave Reisner <dreisner@archlinux.org> pkgname=kmod pkgver=8 -pkgrel=1 +pkgrel=2 pkgdesc="Linux kernel module handling" arch=('i686' 'x86_64' 'mips64el') url='http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary' @@ -16,17 +16,25 @@ replaces=('module-init-tools') source=("ftp://ftp.kernel.org/pub/linux/utils/kernel/$pkgname/$pkgname-$pkgver.tar.xz" "depmod-search.conf" "0001-split-usr-read-configs-from-lib-depmod.d-modprobe.d.patch" - "0002-config-hardcode-the-path-to-modules-to-be-lib-module.patch") + "0002-config-hardcode-the-path-to-modules-to-be-lib-module.patch" + "0001-libkmod-file-gracefully-handle-errors-from-zlib.patch" + "0002-depmod-report-failures-in-loading-symbols.patch") md5sums=('d4e3d038b5370b1e8ff237c55666aa64' 'dd62cbf62bd8f212f51ef8c43bec9a77' 'ba73b9e98db1abbf41274f922fcfbd55' - 'c9af56636c5667cf4ce3a31ea56e03d9') + 'c9af56636c5667cf4ce3a31ea56e03d9' + '1a877b9863b94f91c8d3aec97c021c6b' + '1a9f132779f90556852e70279577ed22') build() { cd "$pkgname-$pkgver" - patch -p1 -i ../0001-split-usr-read-configs-from-lib-depmod.d-modprobe.d.patch - patch -p1 -i ../0002-config-hardcode-the-path-to-modules-to-be-lib-module.patch + patch -Np1 <"$srcdir"/0001-split-usr-read-configs-from-lib-depmod.d-modprobe.d.patch + patch -Np1 <"$srcdir"/0002-config-hardcode-the-path-to-modules-to-be-lib-module.patch + + # fix crash on corrupted zlib compression + patch -Np1 <"$srcdir"/0001-libkmod-file-gracefully-handle-errors-from-zlib.patch + patch -Np1 <"$srcdir"/0002-depmod-report-failures-in-loading-symbols.patch # Architecture-specific test. sed -ri 's:(&smodinfo_jonsmodules,):/*\1*/:' testsuite/test-modinfo.c diff --git a/core/libusb-compat/PKGBUILD b/core/libusb-compat/PKGBUILD index ff8b34a8b..9ce1c09c1 100644 --- a/core/libusb-compat/PKGBUILD +++ b/core/libusb-compat/PKGBUILD @@ -1,19 +1,19 @@ -# $Id: PKGBUILD 142817 2011-11-15 17:24:12Z andrea $ +# $Id: PKGBUILD 158829 2012-05-11 22:12:35Z eric $ # Maintainer: # Contributor: Tobias Powalowski <tpowa@archlinux.org> # Contributor: arjan <arjan@archlinux.org> pkgname=libusb-compat -pkgver=0.1.3 -pkgrel=2 +pkgver=0.1.4 +pkgrel=1 pkgdesc="Library to enable user space application programs to communicate with USB devices" arch=('i686' 'x86_64' 'mips64el') -depends=('libusb' 'sh') url="http://libusb.sourceforge.net/" license=('LGPL') -source=("http://downloads.sourceforge.net/${pkgname%-*}/${pkgname}-${pkgver%.*}/$pkgname-$pkgver/${pkgname}-${pkgver}.tar.bz2") +depends=('libusb' 'sh') options=('!libtool') -md5sums=('570ac2ea085b80d1f74ddc7c6a93c0eb') +source=("http://downloads.sourceforge.net/${pkgname%-*}/${pkgname}-${pkgver%.*}/$pkgname-$pkgver/${pkgname}-${pkgver}.tar.bz2") +md5sums=('2ca521fffadd0c28fdf174e6ec73865b') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -23,5 +23,5 @@ build() { package() { cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR=${pkgdir} install + make DESTDIR="${pkgdir}" install } diff --git a/core/mpfr/PKGBUILD b/core/mpfr/PKGBUILD index 880bb2051..e6749bb8c 100644 --- a/core/mpfr/PKGBUILD +++ b/core/mpfr/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 153420 2012-03-13 08:24:35Z allan $ +# $Id: PKGBUILD 158831 2012-05-11 23:28:49Z allan $ # Maintainer: Allan McRae <allan@archlinux.org> # Contributor: damir <damir@archlinux.org> pkgname=mpfr _pkgver=3.1.0 -_patchlevel=p7 +_patchlevel=p10 pkgver=${_pkgver}.${_patchlevel} pkgrel=1 pkgdesc="Multiple-precision floating-point library" @@ -18,7 +18,7 @@ source=(http://www.mpfr.org/mpfr-current/mpfr-${_pkgver}.tar.xz{,.asc} mpfr-${_pkgver}.${_patchlevel}.patch) md5sums=('6e495841bb026481567006cec0f821c3' '293374ee4b01527f8f7889fdfa9016f8' - 'fb1bf603a2ad5e6ecc1903c3c53f5e13') + '776954381923739ef0e618d992188535') build() { cd "${srcdir}/${pkgname}-${_pkgver}" diff --git a/core/mpfr/mpfr-3.1.0.p10.patch b/core/mpfr/mpfr-3.1.0.p10.patch new file mode 100644 index 000000000..0073be709 --- /dev/null +++ b/core/mpfr/mpfr-3.1.0.p10.patch @@ -0,0 +1,1896 @@ +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2011-10-05 21:39:57.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2011-10-05 21:39:57.000000000 +0000 +@@ -0,0 +1 @@ ++mpfr_unlikely +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2011-10-03 08:17:15.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2011-10-05 21:39:57.000000000 +0000 +@@ -1 +1 @@ +-3.1.0 ++3.1.0-p1 +diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h +--- mpfr-3.1.0-a/src/mpfr-impl.h 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr-impl.h 2011-10-05 21:39:57.000000000 +0000 +@@ -988,10 +988,11 @@ + ******************************************************/ + + /* Theses macros help the compiler to determine if a test is +- * likely or unlikely. */ ++ likely or unlikely. The !! is necessary in case x is larger ++ than a long. */ + #if __MPFR_GNUC(3,0) || __MPFR_ICC(8,1,0) + # define MPFR_LIKELY(x) (__builtin_expect(!!(x),1)) +-# define MPFR_UNLIKELY(x) (__builtin_expect((x),0)) ++# define MPFR_UNLIKELY(x) (__builtin_expect(!!(x),0)) + #else + # define MPFR_LIKELY(x) (x) + # define MPFR_UNLIKELY(x) (x) +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2011-10-05 21:39:57.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0" ++#define MPFR_VERSION_STRING "3.1.0-p1" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2011-10-05 21:39:57.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0"; ++ return "3.1.0-p1"; + } +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2011-10-14 10:43:32.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2011-10-14 10:43:32.000000000 +0000 +@@ -0,0 +1 @@ ++lib-search-path +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2011-10-05 21:39:57.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2011-10-14 10:43:32.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p1 ++3.1.0-p2 +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2011-10-05 21:39:57.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2011-10-14 10:43:32.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p1" ++#define MPFR_VERSION_STRING "3.1.0-p2" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2011-10-05 21:39:57.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2011-10-14 10:43:32.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p1"; ++ return "3.1.0-p2"; + } +diff -Naurd mpfr-3.1.0-a/tests/Makefile.am mpfr-3.1.0-b/tests/Makefile.am +--- mpfr-3.1.0-a/tests/Makefile.am 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/Makefile.am 2011-10-03 08:17:14.000000000 +0000 +@@ -65,8 +65,24 @@ + TESTS = $(check_PROGRAMS) + TESTS_ENVIRONMENT = MPFR_QUIET=1 $(VALGRIND) + +-# Option to prevent libtool from generating wrapper scripts for the tests. ++# The -no-install option prevents libtool from generating wrapper scripts ++# for the tests. + # This is useful to easily run the test scripts under valgrind or gdb. + # See discussion http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28033 + # http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28140 in particular. +-AM_LDFLAGS = -no-install ++# ++# The -L$(top_builddir)/src/.libs option is necessary for some platforms, ++# such as HP-UX, when --with-gmp or --with-gmp-lib is used and an old MPFR ++# library is already installed in the corresponding lib directory: its ++# purpose is to make sure that the local .libs comes first in the library ++# search path (otherwise the tests are linked against the old MPFR library ++# by the LINK command -- see the generated Makefile). See: ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00042.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00043.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00044.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00066.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00065.html ++# and ++# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9728 ++# ++AM_LDFLAGS = -no-install -L$(top_builddir)/src/.libs +diff -Naurd mpfr-3.1.0-a/tests/Makefile.in mpfr-3.1.0-b/tests/Makefile.in +--- mpfr-3.1.0-a/tests/Makefile.in 2011-10-03 08:17:35.000000000 +0000 ++++ mpfr-3.1.0-b/tests/Makefile.in 2011-10-03 08:17:35.000000000 +0000 +@@ -1124,11 +1124,27 @@ + TESTS = $(check_PROGRAMS) + TESTS_ENVIRONMENT = MPFR_QUIET=1 $(VALGRIND) + +-# Option to prevent libtool from generating wrapper scripts for the tests. ++# The -no-install option prevents libtool from generating wrapper scripts ++# for the tests. + # This is useful to easily run the test scripts under valgrind or gdb. + # See discussion http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28033 + # http://article.gmane.org/gmane.comp.lib.gnulib.bugs/28140 in particular. +-AM_LDFLAGS = -no-install ++# ++# The -L$(top_builddir)/src/.libs option is necessary for some platforms, ++# such as HP-UX, when --with-gmp or --with-gmp-lib is used and an old MPFR ++# library is already installed in the corresponding lib directory: its ++# purpose is to make sure that the local .libs comes first in the library ++# search path (otherwise the tests are linked against the old MPFR library ++# by the LINK command -- see the generated Makefile). See: ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00042.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00043.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00044.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00066.html ++# http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00065.html ++# and ++# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9728 ++# ++AM_LDFLAGS = -no-install -L$(top_builddir)/src/.libs + all: all-am + + .SUFFIXES: +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2011-11-03 15:15:11.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2011-11-03 15:15:11.000000000 +0000 +@@ -0,0 +1 @@ ++vasprintf +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2011-10-14 10:43:32.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2011-11-03 15:15:11.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p2 ++3.1.0-p3 +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2011-10-14 10:43:32.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2011-11-03 15:15:11.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p2" ++#define MPFR_VERSION_STRING "3.1.0-p3" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/vasprintf.c mpfr-3.1.0-b/src/vasprintf.c +--- mpfr-3.1.0-a/src/vasprintf.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/vasprintf.c 2011-11-03 15:15:11.000000000 +0000 +@@ -1178,7 +1178,7 @@ + mpfr_exp_t exp; + char * str; + const int spec_g = (spec.spec == 'g' || spec.spec == 'G'); +- const int keep_trailing_zeros = spec_g && spec.alt; ++ const int keep_trailing_zeros = !spec_g || spec.alt; + + /* WARNING: an empty precision field is forbidden (it means precision = 6 + and it should have been changed to 6 before the function call) */ +@@ -1356,7 +1356,7 @@ + else + /* 1 <= |p| */ + { +- size_t nsd; /* Number of significant digits */ ++ size_t str_len; + + /* Determine the position of the most significant decimal digit. */ + exp = floor_log10 (p); +@@ -1365,12 +1365,10 @@ + /* P is too large to print all its integral part digits */ + return -1; + +- np->ip_size = exp + 1; +- +- nsd = spec.prec + np->ip_size; + if (dec_info == NULL) +- { +- str = mpfr_get_str (NULL, &exp, 10, nsd, p, spec.rnd_mode); ++ { /* this case occurs with mpfr_printf ("%.0RUf", x) with x=9.5 */ ++ str = ++ mpfr_get_str (NULL, &exp, 10, spec.prec+exp+1, p, spec.rnd_mode); + register_string (np->sl, str); + } + else +@@ -1379,81 +1377,60 @@ + str = dec_info->str; + } + np->ip_ptr = MPFR_IS_NEG (p) ? ++str : str; /* skip sign */ ++ str_len = strlen (str); ++ ++ /* integral part */ ++ if (exp > str_len) ++ /* mpfr_get_str gives no trailing zero when p is rounded up to the next ++ power of 10 (p integer, so no fractional part) */ ++ { ++ np->ip_trailing_zeros = exp - str_len; ++ np->ip_size = str_len; ++ } ++ else ++ np->ip_size = exp; + + if (spec.group) + /* thousands separator in integral part */ + np->thousands_sep = MPFR_THOUSANDS_SEPARATOR; + +- if (nsd == 0 || (spec_g && !spec.alt)) +- /* compute how much non-zero digits in integral and fractional +- parts */ ++ /* fractional part */ ++ str += np->ip_size; ++ str_len -= np->ip_size; ++ if (!keep_trailing_zeros) ++ /* remove trailing zeros, if any */ + { +- size_t str_len; +- str_len = strlen (str); /* note: the sign has been skipped */ +- +- if (exp > str_len) +- /* mpfr_get_str doesn't give the trailing zeros when p is a +- multiple of 10 (p integer, so no fractional part) */ +- { +- np->ip_trailing_zeros = exp - str_len; +- np->ip_size = str_len; +- if (spec.alt) +- np->point = MPFR_DECIMAL_POINT; +- } +- else +- /* str may contain some digits which are in fractional part */ ++ char *ptr = str + str_len - 1; /* pointer to the last digit of ++ str */ ++ while ((*ptr == '0') && (str_len != 0)) + { +- char *ptr; +- +- ptr = str + str_len - 1; /* points to the end of str */ +- str_len -= np->ip_size; /* number of digits in fractional +- part */ +- +- if (!keep_trailing_zeros) +- /* remove trailing zeros, if any */ +- { +- while ((*ptr == '0') && (str_len != 0)) +- { +- --ptr; +- --str_len; +- } +- } +- +- if (str_len > INT_MAX) +- /* too many digits in fractional part */ +- return -1; +- +- if (str_len != 0) +- /* some digits in fractional part */ +- { +- np->point = MPFR_DECIMAL_POINT; +- np->fp_ptr = str + np->ip_size; +- np->fp_size = str_len; +- } ++ --ptr; ++ --str_len; + } + } +- else +- /* spec.prec digits in fractional part */ ++ ++ if (str_len > 0) ++ /* some nonzero digits in fractional part */ + { +- if (np->ip_size == exp - 1) +- /* the absolute value of the number has been rounded up to a power +- of ten. +- Insert an additional zero in integral part and put the rest of +- them in fractional part. */ +- np->ip_trailing_zeros = 1; ++ if (str_len > INT_MAX) ++ /* too many digits in fractional part */ ++ return -1; + +- if (spec.prec != 0) +- { +- MPFR_ASSERTD (np->ip_size + np->ip_trailing_zeros == exp); +- MPFR_ASSERTD (np->ip_size + spec.prec == nsd); ++ np->point = MPFR_DECIMAL_POINT; ++ np->fp_ptr = str; ++ np->fp_size = str_len; ++ } + +- np->point = MPFR_DECIMAL_POINT; +- np->fp_ptr = str + np->ip_size; +- np->fp_size = spec.prec; +- } +- else if (spec.alt) +- np->point = MPFR_DECIMAL_POINT; ++ if (keep_trailing_zeros && str_len < spec.prec) ++ /* add missing trailing zeros */ ++ { ++ np->point = MPFR_DECIMAL_POINT; ++ np->fp_trailing_zeros = spec.prec - np->fp_size; + } ++ ++ if (spec.alt) ++ /* add decimal point even if no digits follow it */ ++ np->point = MPFR_DECIMAL_POINT; + } + + return 0; +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2011-10-14 10:43:32.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2011-11-03 15:15:11.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p2"; ++ return "3.1.0-p3"; + } +diff -Naurd mpfr-3.1.0-a/tests/tsprintf.c mpfr-3.1.0-b/tests/tsprintf.c +--- mpfr-3.1.0-a/tests/tsprintf.c 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/tsprintf.c 2011-11-03 15:15:11.000000000 +0000 +@@ -475,6 +475,18 @@ + check_sprintf ("-1.", "%- #0.1RG", x); + + /* precision zero */ ++ mpfr_set_d (x, 9.5, MPFR_RNDN); ++ check_sprintf ("9", "%.0RDf", x); ++ check_sprintf ("10", "%.0RUf", x); ++ ++ mpfr_set_d (x, 19.5, MPFR_RNDN); ++ check_sprintf ("19", "%.0RDf", x); ++ check_sprintf ("20", "%.0RUf", x); ++ ++ mpfr_set_d (x, 99.5, MPFR_RNDN); ++ check_sprintf ("99", "%.0RDf", x); ++ check_sprintf ("100", "%.0RUf", x); ++ + mpfr_set_d (x, -9.5, MPFR_RNDN); + check_sprintf ("-10", "%.0RDf", x); + check_sprintf ("-10", "%.0RYf", x); +@@ -1078,6 +1090,23 @@ + mpfr_clear (x); + } + ++static void ++bug20111102 (void) ++{ ++ mpfr_t t; ++ char s[100]; ++ ++ mpfr_init2 (t, 84); ++ mpfr_set_str (t, "999.99999999999999999999", 10, MPFR_RNDN); ++ mpfr_sprintf (s, "%.20RNg", t); ++ if (strcmp (s, "1000") != 0) ++ { ++ printf ("Error in bug20111102, expected 1000, got %s\n", s); ++ exit (1); ++ } ++ mpfr_clear (t); ++} ++ + /* In particular, the following test makes sure that the rounding + * for %Ra and %Rb is not done on the MPFR number itself (as it + * would overflow). Note: it has been reported on comp.std.c that +@@ -1161,6 +1190,7 @@ + locale = setlocale (LC_ALL, "C"); + #endif + ++ bug20111102 (); + native_types (); + hexadecimal (); + binary (); +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2011-11-28 12:22:52.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2011-11-28 12:22:52.000000000 +0000 +@@ -0,0 +1 @@ ++gmp41compat +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2011-11-03 15:15:11.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2011-11-28 12:22:52.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p3 ++3.1.0-p4 +diff -Naurd mpfr-3.1.0-a/doc/mpfr.info mpfr-3.1.0-b/doc/mpfr.info +--- mpfr-3.1.0-a/doc/mpfr.info 2011-10-03 09:43:04.000000000 +0000 ++++ mpfr-3.1.0-b/doc/mpfr.info 2011-11-28 12:22:52.000000000 +0000 +@@ -2994,11 +2994,12 @@ + + * `mpfr_urandom' and `mpfr_urandomb' changed in MPFR 3.1. Their + behavior no longer depends on the platform (assuming this is also +- true for GMP's random generator). As a consequence, the returned +- values can be different between MPFR 3.1 and previous MPFR +- versions. Note: as the reproducibility of these functions was not +- specified before MPFR 3.1, the MPFR 3.1 behavior is _not_ regarded +- as backward incompatible with previous versions. ++ true for GMP's random generator, which is not the case between GMP ++ 4.1 and 4.2 if `gmp_randinit_default' is used). As a consequence, ++ the returned values can be different between MPFR 3.1 and previous ++ MPFR versions. Note: as the reproducibility of these functions ++ was not specified before MPFR 3.1, the MPFR 3.1 behavior is _not_ ++ regarded as backward incompatible with previous versions. + + + +@@ -4239,13 +4240,13 @@ + Node: Type and Macro Changes129308 + Node: Added Functions132029 + Node: Changed Functions134972 +-Node: Removed Functions139167 +-Node: Other Changes139579 +-Node: Contributors141108 +-Node: References143574 +-Node: GNU Free Documentation License145315 +-Node: Concept Index167758 +-Node: Function and Type Index173677 ++Node: Removed Functions139253 ++Node: Other Changes139665 ++Node: Contributors141194 ++Node: References143660 ++Node: GNU Free Documentation License145401 ++Node: Concept Index167844 ++Node: Function and Type Index173763 + + End Tag Table + +diff -Naurd mpfr-3.1.0-a/doc/mpfr.texi mpfr-3.1.0-b/doc/mpfr.texi +--- mpfr-3.1.0-a/doc/mpfr.texi 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/doc/mpfr.texi 2011-11-28 12:22:52.000000000 +0000 +@@ -3466,8 +3466,9 @@ + a lack of specification. + + @item @code{mpfr_urandom} and @code{mpfr_urandomb} changed in MPFR 3.1. +-Their behavior no longer depends on the platform (assuming this is also +-true for GMP's random generator). As a consequence, the returned values ++Their behavior no longer depends on the platform (assuming this is also true ++for GMP's random generator, which is not the case between GMP 4.1 and 4.2 if ++@code{gmp_randinit_default} is used). As a consequence, the returned values + can be different between MPFR 3.1 and previous MPFR versions. + Note: as the reproducibility of these functions was not specified + before MPFR 3.1, the MPFR 3.1 behavior is @emph{not} regarded as +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2011-11-03 15:15:11.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2011-11-28 12:22:52.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p3" ++#define MPFR_VERSION_STRING "3.1.0-p4" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2011-11-03 15:15:11.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2011-11-28 12:22:52.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p3"; ++ return "3.1.0-p4"; + } +diff -Naurd mpfr-3.1.0-a/tests/trandom.c mpfr-3.1.0-b/tests/trandom.c +--- mpfr-3.1.0-a/tests/trandom.c 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/trandom.c 2011-11-28 12:22:52.000000000 +0000 +@@ -114,21 +114,29 @@ + mpfr_t x; + gmp_randstate_t s; + ++#if __MPFR_GMP(4,2,0) ++# define C1 "0.895943" ++# define C2 "0.848824" ++#else ++# define C1 "0.479652" ++# define C2 "0.648529" ++#endif ++ + gmp_randinit_default (s); + gmp_randseed_ui (s, 42); + mpfr_init2 (x, 17); + mpfr_urandomb (x, s); +- if (mpfr_cmp_str1 (x, "0.895943") != 0) ++ if (mpfr_cmp_str1 (x, C1) != 0) + { +- printf ("Error in bug20100914, expected 0.895943, got "); ++ printf ("Error in bug20100914, expected " C1 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); + } + mpfr_urandomb (x, s); +- if (mpfr_cmp_str1 (x, "0.848824") != 0) ++ if (mpfr_cmp_str1 (x, C2) != 0) + { +- printf ("Error in bug20100914, expected 0.848824, got "); ++ printf ("Error in bug20100914, expected " C2 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); +diff -Naurd mpfr-3.1.0-a/tests/turandom.c mpfr-3.1.0-b/tests/turandom.c +--- mpfr-3.1.0-a/tests/turandom.c 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/turandom.c 2011-11-28 12:22:52.000000000 +0000 +@@ -160,23 +160,29 @@ + mpfr_t x; + gmp_randstate_t s; + ++#if __MPFR_GMP(4,2,0) ++# define C1 "0.8488312" ++# define C2 "0.8156509" ++#else ++# define C1 "0.6485367" ++# define C2 "0.9362717" ++#endif ++ + gmp_randinit_default (s); + gmp_randseed_ui (s, 42); + mpfr_init2 (x, 17); + mpfr_urandom (x, s, MPFR_RNDN); +- /* the following values are obtained on a 32-bit computer, we should get +- the same values on a 64-bit computer */ +- if (mpfr_cmp_str1 (x, "0.8488312") != 0) ++ if (mpfr_cmp_str1 (x, C1) != 0) + { +- printf ("Error in bug20100914, expected 0.8488312, got "); ++ printf ("Error in bug20100914, expected " C1 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); + } + mpfr_urandom (x, s, MPFR_RNDN); +- if (mpfr_cmp_str1 (x, "0.8156509") != 0) ++ if (mpfr_cmp_str1 (x, C2) != 0) + { +- printf ("Error in bug20100914, expected 0.8156509, got "); ++ printf ("Error in bug20100914, expected " C2 ", got "); + mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); + printf ("\n"); + exit (1); +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2012-02-24 12:44:49.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2012-02-24 12:44:49.000000000 +0000 +@@ -0,0 +1 @@ ++logging-freeze +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2011-11-28 12:22:52.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2012-02-24 12:44:49.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p4 ++3.1.0-p5 +diff -Naurd mpfr-3.1.0-a/src/add_d.c mpfr-3.1.0-b/src/add_d.c +--- mpfr-3.1.0-a/src/add_d.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/add_d.c 2012-02-24 12:44:49.000000000 +0000 +@@ -34,7 +34,7 @@ + (("b[%Pu]=%.*Rg c=%.20g rnd=%d", + mpfr_get_prec(b), mpfr_log_prec, b, c, rnd_mode), + ("a[%Pu]=%.*Rg inexact=%d", +- mpfr_get_prec (a), mpfr_get_prec, a, inexact)); ++ mpfr_get_prec (a), mpfr_log_prec, a, inexact)); + + MPFR_SAVE_EXPO_MARK (expo); + +diff -Naurd mpfr-3.1.0-a/src/add_ui.c mpfr-3.1.0-b/src/add_ui.c +--- mpfr-3.1.0-a/src/add_ui.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/add_ui.c 2012-02-24 12:44:49.000000000 +0000 +@@ -29,7 +29,7 @@ + MPFR_LOG_FUNC + (("x[%Pu]=%.*Rg u=%d rnd=%d", + mpfr_get_prec(x), mpfr_log_prec, x, u, rnd_mode), +- ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_get_prec, y)); ++ ("y[%Pu]=%.*Rg", mpfr_get_prec (y), mpfr_log_prec, y)); + + if (MPFR_LIKELY(u != 0) ) /* if u=0, do nothing */ + { +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2011-11-28 12:22:52.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2012-02-24 12:44:49.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p4" ++#define MPFR_VERSION_STRING "3.1.0-p5" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/mul_d.c mpfr-3.1.0-b/src/mul_d.c +--- mpfr-3.1.0-a/src/mul_d.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/mul_d.c 2012-02-24 12:44:49.000000000 +0000 +@@ -34,7 +34,7 @@ + (("b[%Pu]=%.*Rg c=%.20g rnd=%d", + mpfr_get_prec(b), mpfr_log_prec, b, c, rnd_mode), + ("a[%Pu]=%.*Rg inexact=%d", +- mpfr_get_prec (a), mpfr_get_prec, a, inexact)); ++ mpfr_get_prec (a), mpfr_log_prec, a, inexact)); + + MPFR_SAVE_EXPO_MARK (expo); + +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2011-11-28 12:22:52.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2012-02-24 12:44:49.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p4"; ++ return "3.1.0-p5"; + } +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2012-02-24 13:50:05.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2012-02-24 13:50:05.000000000 +0000 +@@ -0,0 +1 @@ ++logging-varfmt +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2012-02-24 12:44:49.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2012-02-24 13:50:05.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p5 ++3.1.0-p6 +diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h +--- mpfr-3.1.0-a/src/mpfr-impl.h 2011-10-05 21:39:57.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr-impl.h 2012-02-24 13:50:05.000000000 +0000 +@@ -1592,7 +1592,7 @@ + do \ + if ((MPFR_LOG_INTERNAL_F & mpfr_log_type) && \ + (mpfr_log_current <= mpfr_log_level)) \ +- LOG_PRINT ("%s.%d:%s[%#Pu]=%.*Rf\n", __func__, __LINE__, \ ++ LOG_PRINT ("%s.%d:%s[%#Pu]=%.*Rg\n", __func__, __LINE__, \ + #x, mpfr_get_prec (x), mpfr_log_prec, x); \ + while (0) + +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2012-02-24 12:44:49.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2012-02-24 13:50:05.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p5" ++#define MPFR_VERSION_STRING "3.1.0-p6" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2012-02-24 12:44:49.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2012-02-24 13:50:05.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p5"; ++ return "3.1.0-p6"; + } +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2012-03-08 15:17:03.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2012-03-08 15:17:03.000000000 +0000 +@@ -0,0 +1 @@ ++large-prec +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2012-02-24 13:50:05.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2012-03-08 15:17:03.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p6 ++3.1.0-p7 +diff -Naurd mpfr-3.1.0-a/src/add1.c mpfr-3.1.0-b/src/add1.c +--- mpfr-3.1.0-a/src/add1.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/add1.c 2012-03-08 15:17:03.000000000 +0000 +@@ -44,12 +44,12 @@ + bq = MPFR_PREC(b); + cq = MPFR_PREC(c); + +- an = (aq-1)/GMP_NUMB_BITS+1; /* number of limbs of a */ ++ an = MPFR_PREC2LIMBS (aq); /* number of limbs of a */ + aq2 = (mpfr_prec_t) an * GMP_NUMB_BITS; + sh = aq2 - aq; /* non-significant bits in low limb */ + +- bn = (bq-1)/GMP_NUMB_BITS+1; /* number of limbs of b */ +- cn = (cq-1)/GMP_NUMB_BITS+1; /* number of limbs of c */ ++ bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */ ++ cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */ + + ap = MPFR_MANT(a); + bp = MPFR_MANT(b); +@@ -124,7 +124,7 @@ + dif = aq2 - diff_exp; + /* dif is the number of bits of c which overlap with a' */ + +- difn = (dif-1)/GMP_NUMB_BITS + 1; ++ difn = MPFR_PREC2LIMBS (dif); + /* only the highest difn limbs from c have to be considered */ + if (MPFR_UNLIKELY(difn > cn)) + { +diff -Naurd mpfr-3.1.0-a/src/add1sp.c mpfr-3.1.0-b/src/add1sp.c +--- mpfr-3.1.0-a/src/add1sp.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/add1sp.c 2012-03-08 15:17:03.000000000 +0000 +@@ -107,7 +107,7 @@ + + /* Read prec and num of limbs */ + p = MPFR_PREC(b); +- n = (p+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; ++ n = MPFR_PREC2LIMBS (p); + MPFR_UNSIGNED_MINUS_MODULO(sh, p); + bx = MPFR_GET_EXP(b); + d = (mpfr_uexp_t) (bx - MPFR_GET_EXP(c)); +diff -Naurd mpfr-3.1.0-a/src/agm.c mpfr-3.1.0-b/src/agm.c +--- mpfr-3.1.0-a/src/agm.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/agm.c 2012-03-08 15:17:03.000000000 +0000 +@@ -91,7 +91,7 @@ + q = MPFR_PREC(r); + p = q + MPFR_INT_CEIL_LOG2(q) + 15; + MPFR_ASSERTD (p >= 7); /* see algorithms.tex */ +- s = (p - 1) / GMP_NUMB_BITS + 1; ++ s = MPFR_PREC2LIMBS (p); + + /* b (op2) and a (op1) are the 2 operands but we want b >= a */ + compare = mpfr_cmp (op1, op2); +@@ -285,7 +285,7 @@ + + /* Next iteration */ + MPFR_ZIV_NEXT (loop, p); +- s = (p - 1) / GMP_NUMB_BITS + 1; ++ s = MPFR_PREC2LIMBS (p); + } + MPFR_ZIV_FREE (loop); + +diff -Naurd mpfr-3.1.0-a/src/eq.c mpfr-3.1.0-b/src/eq.c +--- mpfr-3.1.0-a/src/eq.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/eq.c 2012-03-08 15:17:03.000000000 +0000 +@@ -56,8 +56,8 @@ + if (uexp != vexp) + return 0; /* no bit agree */ + +- usize = (MPFR_PREC(u) - 1) / GMP_NUMB_BITS + 1; +- vsize = (MPFR_PREC(v) - 1) / GMP_NUMB_BITS + 1; ++ usize = MPFR_LIMB_SIZE (u); ++ vsize = MPFR_LIMB_SIZE (v); + + if (vsize > usize) /* exchange u and v */ + { +diff -Naurd mpfr-3.1.0-a/src/exp.c mpfr-3.1.0-b/src/exp.c +--- mpfr-3.1.0-a/src/exp.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/exp.c 2012-03-08 15:17:03.000000000 +0000 +@@ -133,7 +133,7 @@ + mp_size_t yn; + int sh; + +- yn = 1 + (MPFR_PREC(y) - 1) / GMP_NUMB_BITS; ++ yn = MPFR_LIMB_SIZE (y); + sh = (mpfr_prec_t) yn * GMP_NUMB_BITS - MPFR_PREC(y); + MPFR_MANT(y)[0] += MPFR_LIMB_ONE << sh; + inexact = 1; +diff -Naurd mpfr-3.1.0-a/src/get_d.c mpfr-3.1.0-b/src/get_d.c +--- mpfr-3.1.0-a/src/get_d.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/get_d.c 2012-03-08 15:17:03.000000000 +0000 +@@ -100,7 +100,7 @@ + nbits += (1021 + e); + MPFR_ASSERTD (nbits >= 1); + } +- np = (nbits + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; ++ np = MPFR_PREC2LIMBS (nbits); + MPFR_ASSERTD ( np <= MPFR_LIMBS_PER_DOUBLE ); + carry = mpfr_round_raw_4 (tp, MPFR_MANT(src), MPFR_PREC(src), negative, + nbits, rnd_mode); +diff -Naurd mpfr-3.1.0-a/src/get_flt.c mpfr-3.1.0-b/src/get_flt.c +--- mpfr-3.1.0-a/src/get_flt.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/get_flt.c 2012-03-08 15:17:03.000000000 +0000 +@@ -92,7 +92,7 @@ + nbits += (125 + e); + MPFR_ASSERTD (nbits >= 1); + } +- np = (nbits + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; ++ np = MPFR_PREC2LIMBS (nbits); + MPFR_ASSERTD(np <= MPFR_LIMBS_PER_FLT); + carry = mpfr_round_raw_4 (tp, MPFR_MANT(src), MPFR_PREC(src), negative, + nbits, rnd_mode); +diff -Naurd mpfr-3.1.0-a/src/get_str.c mpfr-3.1.0-b/src/get_str.c +--- mpfr-3.1.0-a/src/get_str.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/get_str.c 2012-03-08 15:17:03.000000000 +0000 +@@ -2351,7 +2351,7 @@ + + /* the first digit will contain only r bits */ + prec = (m - 1) * pow2 + r; /* total number of bits */ +- n = (prec - 1) / GMP_NUMB_BITS + 1; ++ n = MPFR_PREC2LIMBS (prec); + + MPFR_TMP_MARK (marker); + x1 = MPFR_TMP_LIMBS_ALLOC (n + 1); +@@ -2417,12 +2417,12 @@ + exact = 1; + + /* number of limbs */ +- n = 1 + (prec - 1) / GMP_NUMB_BITS; ++ n = MPFR_PREC2LIMBS (prec); + + /* a will contain the approximation of the mantissa */ + a = MPFR_TMP_LIMBS_ALLOC (n); + +- nx = 1 + (MPFR_PREC(x) - 1) / GMP_NUMB_BITS; ++ nx = MPFR_LIMB_SIZE (x); + + if ((mpfr_exp_t) m == g) /* final exponent is 0, no multiplication or + division to perform */ +diff -Naurd mpfr-3.1.0-a/src/init2.c mpfr-3.1.0-b/src/init2.c +--- mpfr-3.1.0-a/src/init2.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/init2.c 2012-03-08 15:17:03.000000000 +0000 +@@ -51,7 +51,7 @@ + which both have an odd mantissa */ + MPFR_ASSERTN(p >= MPFR_PREC_MIN && p <= MPFR_PREC_MAX); + +- xsize = (mp_size_t) ((p - 1) / GMP_NUMB_BITS) + 1; ++ xsize = MPFR_PREC2LIMBS (p); + tmp = (mpfr_limb_ptr) (*__gmp_allocate_func)(MPFR_MALLOC_SIZE(xsize)); + + MPFR_PREC(x) = p; /* Set prec */ +diff -Naurd mpfr-3.1.0-a/src/lngamma.c mpfr-3.1.0-b/src/lngamma.c +--- mpfr-3.1.0-a/src/lngamma.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/lngamma.c 2012-03-08 15:17:03.000000000 +0000 +@@ -67,7 +67,7 @@ + + /* Now, the unit bit is represented. */ + +- prec = ((prec - 1) / GMP_NUMB_BITS + 1) * GMP_NUMB_BITS - expo; ++ prec = MPFR_PREC2LIMBS (prec) * GMP_NUMB_BITS - expo; + /* number of represented fractional bits (including the trailing 0's) */ + + x0 = *(MPFR_MANT (x) + prec / GMP_NUMB_BITS); +diff -Naurd mpfr-3.1.0-a/src/mpfr-impl.h mpfr-3.1.0-b/src/mpfr-impl.h +--- mpfr-3.1.0-a/src/mpfr-impl.h 2012-02-24 13:50:05.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr-impl.h 2012-03-09 12:06:26.000000000 +0000 +@@ -646,10 +646,24 @@ + **************** mpfr_t properties ******************* + ******************************************************/ + ++/* In the following macro, p is usually a mpfr_prec_t, but this macro ++ works with other integer types (without integer overflow). Checking ++ that p >= 1 in debug mode is useful here because this macro can be ++ used on a computed precision (in particular, this formula does not ++ work for a degenerate case p = 0, and could give different results ++ on different platforms). But let us not use an assertion checking ++ in the MPFR_LAST_LIMB() and MPFR_LIMB_SIZE() macros below to avoid ++ too much expansion for assertions (in practice, this should be a ++ problem just when testing MPFR with the --enable-assert configure ++ option and the -ansi -pedantic-errors gcc compiler flags). */ ++#define MPFR_PREC2LIMBS(p) \ ++ (MPFR_ASSERTD ((p) >= 1), ((p) - 1) / GMP_NUMB_BITS + 1) ++ + #define MPFR_PREC(x) ((x)->_mpfr_prec) + #define MPFR_EXP(x) ((x)->_mpfr_exp) + #define MPFR_MANT(x) ((x)->_mpfr_d) +-#define MPFR_LIMB_SIZE(x) ((MPFR_PREC((x))-1)/GMP_NUMB_BITS+1) ++#define MPFR_LAST_LIMB(x) ((MPFR_PREC (x) - 1) / GMP_NUMB_BITS) ++#define MPFR_LIMB_SIZE(x) (MPFR_LAST_LIMB (x) + 1) + + + /****************************************************** +@@ -749,7 +763,8 @@ + #define MPFR_IS_FP(x) (!MPFR_IS_NAN(x) && !MPFR_IS_INF(x)) + #define MPFR_IS_SINGULAR(x) (MPFR_EXP(x) <= MPFR_EXP_INF) + #define MPFR_IS_PURE_FP(x) (!MPFR_IS_SINGULAR(x) && \ +- (MPFR_ASSERTD (MPFR_MANT(x)[MPFR_LIMB_SIZE(x)-1] & MPFR_LIMB_HIGHBIT), 1)) ++ (MPFR_ASSERTD ((MPFR_MANT(x)[MPFR_LAST_LIMB(x)] \ ++ & MPFR_LIMB_HIGHBIT) != 0), 1)) + + #define MPFR_ARE_SINGULAR(x,y) \ + (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)) || MPFR_UNLIKELY(MPFR_IS_SINGULAR(y))) +@@ -1061,7 +1076,7 @@ + /* Set a number to 1 (Fast) - It doesn't check if 1 is in the exponent range */ + #define MPFR_SET_ONE(x) \ + do { \ +- mp_size_t _size = MPFR_LIMB_SIZE(x) - 1; \ ++ mp_size_t _size = MPFR_LAST_LIMB(x); \ + MPFR_SET_POS(x); \ + MPFR_EXP(x) = 1; \ + MPN_ZERO ( MPFR_MANT(x), _size); \ +@@ -1213,8 +1228,8 @@ + _destp = MPFR_MANT (dest); \ + if (MPFR_UNLIKELY (_destprec >= _srcprec)) \ + { \ +- _srcs = (_srcprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS; \ +- _dests = (_destprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS - _srcs; \ ++ _srcs = MPFR_PREC2LIMBS (_srcprec); \ ++ _dests = MPFR_PREC2LIMBS (_destprec) - _srcs; \ + MPN_COPY (_destp + _dests, srcp, _srcs); \ + MPN_ZERO (_destp, _dests); \ + inexact = 0; \ +@@ -1227,8 +1242,8 @@ + mp_limb_t _rb, _sb, _ulp; \ + \ + /* Compute Position and shift */ \ +- _srcs = (_srcprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS; \ +- _dests = (_destprec + GMP_NUMB_BITS-1)/GMP_NUMB_BITS; \ ++ _srcs = MPFR_PREC2LIMBS (_srcprec); \ ++ _dests = MPFR_PREC2LIMBS (_destprec); \ + MPFR_UNSIGNED_MINUS_MODULO (_sh, _destprec); \ + _sp = (srcp) + _srcs - _dests; \ + \ +@@ -1372,7 +1387,7 @@ + if (MPFR_LIKELY (MPFR_PREC (dest) == MPFR_PREC (src))) \ + { \ + MPN_COPY (MPFR_MANT (dest), MPFR_MANT (src), \ +- (MPFR_PREC (src) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS); \ ++ MPFR_LIMB_SIZE (src)); \ + inexact = 0; \ + } \ + else \ +@@ -1682,7 +1697,7 @@ + MPFR_ASSERTD (_prec >= MPFR_PREC_MIN); \ + if (MPFR_UNLIKELY (_prec > MPFR_PREC_MAX)) \ + mpfr_abort_prec_max (); \ +- _size = (mpfr_prec_t) (_prec + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; \ ++ _size = MPFR_PREC2LIMBS (_prec); \ + if (MPFR_UNLIKELY (_size * (num) > MPFR_GROUP_STATIC_SIZE)) \ + { \ + (g).alloc = (num) * _size * sizeof (mp_limb_t); \ +@@ -1733,7 +1748,7 @@ + MPFR_ASSERTD (_prec >= MPFR_PREC_MIN); \ + if (MPFR_UNLIKELY (_prec > MPFR_PREC_MAX)) \ + mpfr_abort_prec_max (); \ +- _size = (mpfr_prec_t) (_prec + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; \ ++ _size = MPFR_PREC2LIMBS (_prec); \ + (g).alloc = (num) * _size * sizeof (mp_limb_t); \ + if (MPFR_LIKELY (_oalloc == 0)) \ + (g).mant = (mp_limb_t *) (*__gmp_allocate_func) ((g).alloc); \ +@@ -1886,7 +1901,7 @@ + MPFR_NORETURN_ATTR; + + __MPFR_DECLSPEC void mpfr_rand_raw _MPFR_PROTO((mpfr_limb_ptr, gmp_randstate_t, +- unsigned long)); ++ mpfr_prec_t)); + + __MPFR_DECLSPEC mpz_t* mpfr_bernoulli_internal _MPFR_PROTO((mpz_t*, + unsigned long)); +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2012-02-24 13:50:05.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2012-03-08 15:17:03.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p6" ++#define MPFR_VERSION_STRING "3.1.0-p7" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/mul.c mpfr-3.1.0-b/src/mul.c +--- mpfr-3.1.0-a/src/mul.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/mul.c 2012-03-08 15:17:03.000000000 +0000 +@@ -93,15 +93,15 @@ + + ax = MPFR_GET_EXP (b) + MPFR_GET_EXP (c); + +- bq = MPFR_PREC(b); +- cq = MPFR_PREC(c); ++ bq = MPFR_PREC (b); ++ cq = MPFR_PREC (c); + +- MPFR_ASSERTD(bq+cq > bq); /* PREC_MAX is /2 so no integer overflow */ ++ MPFR_ASSERTN ((mpfr_uprec_t) bq + cq <= MPFR_PREC_MAX); + +- bn = (bq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of b */ +- cn = (cq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of c */ ++ bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */ ++ cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */ + k = bn + cn; /* effective nb of limbs used by b*c (= tn or tn+1) below */ +- tn = (bq + cq + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; ++ tn = MPFR_PREC2LIMBS (bq + cq); + /* <= k, thus no int overflow */ + MPFR_ASSERTD(tn <= k); + +@@ -292,12 +292,12 @@ + bq = MPFR_PREC (b); + cq = MPFR_PREC (c); + +- MPFR_ASSERTD (bq+cq > bq); /* PREC_MAX is /2 so no integer overflow */ ++ MPFR_ASSERTN ((mpfr_uprec_t) bq + cq <= MPFR_PREC_MAX); + +- bn = (bq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of b */ +- cn = (cq+GMP_NUMB_BITS-1)/GMP_NUMB_BITS; /* number of limbs of c */ ++ bn = MPFR_PREC2LIMBS (bq); /* number of limbs of b */ ++ cn = MPFR_PREC2LIMBS (cq); /* number of limbs of c */ + k = bn + cn; /* effective nb of limbs used by b*c (= tn or tn+1) below */ +- tn = (bq + cq + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; ++ tn = MPFR_PREC2LIMBS (bq + cq); + MPFR_ASSERTD (tn <= k); /* tn <= k, thus no int overflow */ + + /* Check for no size_t overflow*/ +diff -Naurd mpfr-3.1.0-a/src/pow.c mpfr-3.1.0-b/src/pow.c +--- mpfr-3.1.0-a/src/pow.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/pow.c 2012-03-08 15:17:03.000000000 +0000 +@@ -136,7 +136,7 @@ + (b) all the 'z' bits are zero + */ + +- prec = ((prec - 1) / GMP_NUMB_BITS + 1) * GMP_NUMB_BITS - expo; ++ prec = MPFR_PREC2LIMBS (prec) * GMP_NUMB_BITS - expo; + /* number of z+0 bits */ + + yn = prec / GMP_NUMB_BITS; +diff -Naurd mpfr-3.1.0-a/src/print_raw.c mpfr-3.1.0-b/src/print_raw.c +--- mpfr-3.1.0-a/src/print_raw.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/print_raw.c 2012-03-08 15:17:03.000000000 +0000 +@@ -84,7 +84,7 @@ + int i; + mpfr_prec_t count = 0; + char c; +- mp_size_t n = (r - 1) / GMP_NUMB_BITS + 1; ++ mp_size_t n = MPFR_PREC2LIMBS (r); + + printf("%s ", str); + for(n-- ; n>=0 ; n--) +@@ -109,7 +109,7 @@ + int i; + mpfr_prec_t count = 0; + char c; +- mp_size_t n = (r - 1) / GMP_NUMB_BITS + 1; ++ mp_size_t n = MPFR_PREC2LIMBS (r); + + for(n-- ; n>=0 ; n--) + { +diff -Naurd mpfr-3.1.0-a/src/round_prec.c mpfr-3.1.0-b/src/round_prec.c +--- mpfr-3.1.0-a/src/round_prec.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/round_prec.c 2012-03-08 15:17:03.000000000 +0000 +@@ -55,12 +55,12 @@ + + MPFR_ASSERTN(prec >= MPFR_PREC_MIN && prec <= MPFR_PREC_MAX); + +- nw = 1 + (prec - 1) / GMP_NUMB_BITS; /* needed allocated limbs */ ++ nw = MPFR_PREC2LIMBS (prec); /* needed allocated limbs */ + + /* check if x has enough allocated space for the significand */ + /* Get the number of limbs from the precision. + (Compatible with all allocation methods) */ +- ow = (MPFR_PREC (x) + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS; ++ ow = MPFR_LIMB_SIZE (x); + if (nw > ow) + { + /* FIXME: Variable can't be created using custom allocation, +diff -Naurd mpfr-3.1.0-a/src/round_raw_generic.c mpfr-3.1.0-b/src/round_raw_generic.c +--- mpfr-3.1.0-a/src/round_raw_generic.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/round_raw_generic.c 2012-03-08 15:17:03.000000000 +0000 +@@ -80,7 +80,7 @@ + (xprec <= yprec || MPFR_IS_LIKE_RNDZ (rnd_mode, neg))) + return 0; + +- xsize = (xprec-1)/GMP_NUMB_BITS + 1; ++ xsize = MPFR_PREC2LIMBS (xprec); + nw = yprec / GMP_NUMB_BITS; + rw = yprec & (GMP_NUMB_BITS - 1); + +diff -Naurd mpfr-3.1.0-a/src/set.c mpfr-3.1.0-b/src/set.c +--- mpfr-3.1.0-a/src/set.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/set.c 2012-03-08 15:17:03.000000000 +0000 +@@ -48,8 +48,7 @@ + /* Same precision and b is not singular: + * just copy the mantissa, and set the exponent and the sign + * The result is exact. */ +- MPN_COPY (MPFR_MANT (a), MPFR_MANT (b), +- (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS); ++ MPN_COPY (MPFR_MANT (a), MPFR_MANT (b), MPFR_LIMB_SIZE (b)); + MPFR_RET (0); + } + else +diff -Naurd mpfr-3.1.0-a/src/set_f.c mpfr-3.1.0-b/src/set_f.c +--- mpfr-3.1.0-a/src/set_f.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/set_f.c 2012-03-08 15:17:03.000000000 +0000 +@@ -43,7 +43,7 @@ + if (SIZ(x) * MPFR_FROM_SIGN_TO_INT(MPFR_SIGN(y)) < 0) + MPFR_CHANGE_SIGN (y); + +- sy = 1 + (MPFR_PREC(y) - 1) / GMP_NUMB_BITS; ++ sy = MPFR_LIMB_SIZE (y); + my = MPFR_MANT(y); + mx = PTR(x); + +diff -Naurd mpfr-3.1.0-a/src/set_prec.c mpfr-3.1.0-b/src/set_prec.c +--- mpfr-3.1.0-a/src/set_prec.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/set_prec.c 2012-03-08 15:17:03.000000000 +0000 +@@ -32,7 +32,7 @@ + MPFR_ASSERTN (p >= MPFR_PREC_MIN && p <= MPFR_PREC_MAX); + + /* Calculate the new number of limbs */ +- xsize = (p - 1) / GMP_NUMB_BITS + 1; ++ xsize = MPFR_PREC2LIMBS (p); + + /* Realloc only if the new size is greater than the old */ + xoldsize = MPFR_GET_ALLOC_SIZE (x); +diff -Naurd mpfr-3.1.0-a/src/setmax.c mpfr-3.1.0-b/src/setmax.c +--- mpfr-3.1.0-a/src/setmax.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/setmax.c 2012-03-08 15:17:03.000000000 +0000 +@@ -32,7 +32,7 @@ + mp_limb_t *xp; + + MPFR_SET_EXP (x, e); +- xn = 1 + (MPFR_PREC(x) - 1) / GMP_NUMB_BITS; ++ xn = MPFR_LIMB_SIZE (x); + sh = (mpfr_prec_t) xn * GMP_NUMB_BITS - MPFR_PREC(x); + xp = MPFR_MANT(x); + xp[0] = MP_LIMB_T_MAX << sh; +diff -Naurd mpfr-3.1.0-a/src/sqr.c mpfr-3.1.0-b/src/sqr.c +--- mpfr-3.1.0-a/src/sqr.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/sqr.c 2012-03-08 15:17:03.000000000 +0000 +@@ -56,11 +56,11 @@ + ax = 2 * MPFR_GET_EXP (b); + bq = MPFR_PREC(b); + +- MPFR_ASSERTD (2 * bq > bq); /* PREC_MAX is /2 so no integer overflow */ ++ MPFR_ASSERTN (2 * (mpfr_uprec_t) bq <= MPFR_PREC_MAX); + +- bn = MPFR_LIMB_SIZE(b); /* number of limbs of b */ +- tn = 1 + (2 * bq - 1) / GMP_NUMB_BITS; /* number of limbs of square, +- 2*bn or 2*bn-1 */ ++ bn = MPFR_LIMB_SIZE (b); /* number of limbs of b */ ++ tn = MPFR_PREC2LIMBS (2 * bq); /* number of limbs of square, ++ 2*bn or 2*bn-1 */ + + if (MPFR_UNLIKELY(bn > MPFR_SQR_THRESHOLD)) + return mpfr_mul (a, b, b, rnd_mode); +diff -Naurd mpfr-3.1.0-a/src/stack_interface.c mpfr-3.1.0-b/src/stack_interface.c +--- mpfr-3.1.0-a/src/stack_interface.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/stack_interface.c 2012-03-08 15:17:03.000000000 +0000 +@@ -26,7 +26,7 @@ + size_t + mpfr_custom_get_size (mpfr_prec_t prec) + { +- return (prec + GMP_NUMB_BITS -1) / GMP_NUMB_BITS * BYTES_PER_MP_LIMB; ++ return MPFR_PREC2LIMBS (prec) * BYTES_PER_MP_LIMB; + } + + #undef mpfr_custom_init +diff -Naurd mpfr-3.1.0-a/src/strtofr.c mpfr-3.1.0-b/src/strtofr.c +--- mpfr-3.1.0-a/src/strtofr.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/strtofr.c 2012-03-08 15:17:03.000000000 +0000 +@@ -467,7 +467,7 @@ + /* Set y to the value of the ~prec most significant bits of pstr->mant + (as long as we guarantee correct rounding, we don't need to get + exactly prec bits). */ +- ysize = (prec - 1) / GMP_NUMB_BITS + 1; ++ ysize = MPFR_PREC2LIMBS (prec); + /* prec bits corresponds to ysize limbs */ + ysize_bits = ysize * GMP_NUMB_BITS; + /* and to ysize_bits >= prec > MPFR_PREC (x) bits */ +diff -Naurd mpfr-3.1.0-a/src/sub1sp.c mpfr-3.1.0-b/src/sub1sp.c +--- mpfr-3.1.0-a/src/sub1sp.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/sub1sp.c 2012-03-08 15:17:03.000000000 +0000 +@@ -155,8 +155,8 @@ + MPFR_ASSERTD(MPFR_IS_PURE_FP(c)); + + /* Read prec and num of limbs */ +- p = MPFR_PREC(b); +- n = (p-1)/GMP_NUMB_BITS+1; ++ p = MPFR_PREC (b); ++ n = MPFR_PREC2LIMBS (p); + + /* Fast cmp of |b| and |c|*/ + bx = MPFR_GET_EXP (b); +diff -Naurd mpfr-3.1.0-a/src/urandomb.c mpfr-3.1.0-b/src/urandomb.c +--- mpfr-3.1.0-a/src/urandomb.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/urandomb.c 2012-03-08 15:17:03.000000000 +0000 +@@ -31,13 +31,20 @@ + a sufficient number of limbs */ + void + mpfr_rand_raw (mpfr_limb_ptr mp, gmp_randstate_t rstate, +- unsigned long int nbits) ++ mpfr_prec_t nbits) + { + mpz_t z; + ++ MPFR_ASSERTN (nbits >= 1); + /* To be sure to avoid the potential allocation of mpz_urandomb */ +- ALLOC(z) = SIZ(z) = ((nbits - 1) / GMP_NUMB_BITS) + 1; ++ ALLOC(z) = SIZ(z) = MPFR_PREC2LIMBS (nbits); + PTR(z) = mp; ++#if __MPFR_GMP(5,0,0) ++ /* Check for integer overflow (unless mp_bitcnt_t is signed, ++ but according to the GMP manual, this shouldn't happen). ++ Note: mp_bitcnt_t has been introduced in GMP 5.0.0. */ ++ MPFR_ASSERTN ((mp_bitcnt_t) -1 < 0 || nbits <= (mp_bitcnt_t) -1); ++#endif + mpz_urandomb (z, rstate, nbits); + } + +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2012-02-24 13:50:05.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2012-03-08 15:17:03.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p6"; ++ return "3.1.0-p7"; + } +diff -Naurd mpfr-3.1.0-a/tests/tinits.c mpfr-3.1.0-b/tests/tinits.c +--- mpfr-3.1.0-a/tests/tinits.c 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/tinits.c 2012-03-08 15:17:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-/* Test file for mpfr_inits, mpfr_inits2 and mpfr_clears. ++/* Test file for mpfr_init2, mpfr_inits, mpfr_inits2 and mpfr_clears. + + Copyright 2003, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. + Contributed by the Arenaire and Caramel projects, INRIA. +@@ -20,18 +20,43 @@ + http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ + ++#include <stdlib.h> ++ + #include "mpfr-test.h" + + int + main (void) + { + mpfr_t a, b, c; ++ long large_prec; + + tests_start_mpfr (); ++ + mpfr_inits (a, b, c, (mpfr_ptr) 0); + mpfr_clears (a, b, c, (mpfr_ptr) 0); + mpfr_inits2 (200, a, b, c, (mpfr_ptr) 0); + mpfr_clears (a, b, c, (mpfr_ptr) 0); ++ ++ /* test for precision 2^31-1, see ++ https://gforge.inria.fr/tracker/index.php?func=detail&aid=13918 */ ++ large_prec = 2147483647; ++ if (getenv ("MPFR_CHECK_LARGEMEM") != NULL) ++ { ++ /* We assume that the precision won't be increased internally. */ ++ if (large_prec > MPFR_PREC_MAX) ++ large_prec = MPFR_PREC_MAX; ++ mpfr_inits2 (large_prec, a, b, (mpfr_ptr) 0); ++ mpfr_set_ui (a, 17, MPFR_RNDN); ++ mpfr_set (b, a, MPFR_RNDN); ++ if (mpfr_get_ui (a, MPFR_RNDN) != 17) ++ { ++ printf ("Error in mpfr_init2 with precision 2^31-1\n"); ++ exit (1); ++ } ++ mpfr_clears (a, b, (mpfr_ptr) 0); ++ } ++ + tests_end_mpfr (); ++ + return 0; + } +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2012-03-12 11:59:47.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2012-03-12 11:59:47.000000000 +0000 +@@ -0,0 +1 @@ ++__gmp_const +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2012-03-08 15:17:03.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2012-03-12 11:59:47.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p7 ++3.1.0-p8 +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2012-03-08 15:17:03.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2012-03-12 11:59:47.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p7" ++#define MPFR_VERSION_STRING "3.1.0-p8" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +@@ -39,6 +39,18 @@ + # include <gmp.h> + #endif + ++/* GMP's internal __gmp_const macro has been removed on 2012-03-04: ++ http://gmplib.org:8000/gmp/rev/d287cfaf6732 ++ const is standard and now assumed to be available. If the __gmp_const ++ definition is no longer present in GMP, this probably means that GMP ++ assumes that const is available; thus let's define it to const. ++ Note: this is a temporary fix that can be backported to previous MPFR ++ versions. In the future, __gmp_const should be replaced by const like ++ in GMP. */ ++#ifndef __gmp_const ++# define __gmp_const const ++#endif ++ + /* Avoid some problems with macro expansion if the user defines macros + with the same name as keywords. By convention, identifiers and macro + names starting with mpfr_ are reserved by MPFR. */ +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2012-03-08 15:17:03.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2012-03-12 11:59:47.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p7"; ++ return "3.1.0-p8"; + } +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2012-04-27 01:13:15.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2012-04-27 01:13:15.000000000 +0000 +@@ -0,0 +1 @@ ++gamma-underflow +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2012-03-12 11:59:47.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2012-04-27 01:13:15.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p8 ++3.1.0-p9 +diff -Naurd mpfr-3.1.0-a/src/gamma.c mpfr-3.1.0-b/src/gamma.c +--- mpfr-3.1.0-a/src/gamma.c 2011-10-03 08:17:09.000000000 +0000 ++++ mpfr-3.1.0-b/src/gamma.c 2012-04-27 01:13:15.000000000 +0000 +@@ -296,7 +296,7 @@ + /* we want an upper bound for x * [log(2-x)-1]. + since x < 0, we need a lower bound on log(2-x) */ + mpfr_ui_sub (xp, 2, x, MPFR_RNDD); +- mpfr_log2 (xp, xp, MPFR_RNDD); ++ mpfr_log (xp, xp, MPFR_RNDD); + mpfr_sub_ui (xp, xp, 1, MPFR_RNDD); + mpfr_mul (xp, xp, x, MPFR_RNDU); + +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2012-03-12 11:59:47.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2012-04-27 01:13:15.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p8" ++#define MPFR_VERSION_STRING "3.1.0-p9" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2012-03-12 11:59:47.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2012-04-27 01:13:15.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p8"; ++ return "3.1.0-p9"; + } +diff -Naurd mpfr-3.1.0-a/tests/tgamma.c mpfr-3.1.0-b/tests/tgamma.c +--- mpfr-3.1.0-a/tests/tgamma.c 2011-10-03 08:17:14.000000000 +0000 ++++ mpfr-3.1.0-b/tests/tgamma.c 2012-04-27 01:13:15.000000000 +0000 +@@ -478,6 +478,36 @@ + mpfr_clear (x); + } + ++/* bug found by Giridhar Tammana */ ++static void ++test20120426 (void) ++{ ++ mpfr_t xa, xb; ++ int i; ++ mpfr_exp_t emin; ++ ++ mpfr_init2 (xa, 53); ++ mpfr_init2 (xb, 53); ++ mpfr_set_d (xb, -168.5, MPFR_RNDN); ++ emin = mpfr_get_emin (); ++ mpfr_set_emin (-1073); ++ i = mpfr_gamma (xa, xb, MPFR_RNDN); ++ i = mpfr_subnormalize (xa, i, MPFR_RNDN); /* new ternary value */ ++ mpfr_set_str (xb, "-9.5737343987585366746184749943e-304", 10, MPFR_RNDN); ++ if (!((i > 0) && (mpfr_cmp (xa, xb) == 0))) ++ { ++ printf ("Error in test20120426, i=%d\n", i); ++ printf ("expected "); ++ mpfr_print_binary (xb); putchar ('\n'); ++ printf ("got "); ++ mpfr_print_binary (xa); putchar ('\n'); ++ exit (1); ++ } ++ mpfr_set_emin (emin); ++ mpfr_clear (xa); ++ mpfr_clear (xb); ++} ++ + static void + exprange (void) + { +@@ -821,6 +851,7 @@ + gamma_integer (); + test20071231 (); + test20100709 (); ++ test20120426 (); + + data_check ("data/gamma", mpfr_gamma, "mpfr_gamma"); + +diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES +--- mpfr-3.1.0-a/PATCHES 2012-05-07 18:52:45.000000000 +0000 ++++ mpfr-3.1.0-b/PATCHES 2012-05-07 18:52:45.000000000 +0000 +@@ -0,0 +1 @@ ++gamma-overunderflow +diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION +--- mpfr-3.1.0-a/VERSION 2012-04-27 01:13:15.000000000 +0000 ++++ mpfr-3.1.0-b/VERSION 2012-05-07 18:52:45.000000000 +0000 +@@ -1 +1 @@ +-3.1.0-p9 ++3.1.0-p10 +diff -Naurd mpfr-3.1.0-a/src/gamma.c mpfr-3.1.0-b/src/gamma.c +--- mpfr-3.1.0-a/src/gamma.c 2012-04-27 01:13:15.000000000 +0000 ++++ mpfr-3.1.0-b/src/gamma.c 2012-05-07 18:52:45.000000000 +0000 +@@ -100,7 +100,8 @@ + mpfr_t xp, GammaTrial, tmp, tmp2; + mpz_t fact; + mpfr_prec_t realprec; +- int compared, inex, is_integer; ++ int compared, is_integer; ++ int inex = 0; /* 0 means: result gamma not set yet */ + MPFR_GROUP_DECL (group); + MPFR_SAVE_EXPO_DECL (expo); + MPFR_ZIV_DECL (loop); +@@ -377,6 +378,15 @@ + mpfr_mul (GammaTrial, tmp2, xp, MPFR_RNDN); /* Pi*(2-x), error (1+u)^2 */ + err_g = MPFR_GET_EXP(GammaTrial); + mpfr_sin (GammaTrial, GammaTrial, MPFR_RNDN); /* sin(Pi*(2-x)) */ ++ /* If tmp is +Inf, we compute exp(lngamma(x)). */ ++ if (mpfr_inf_p (tmp)) ++ { ++ inex = mpfr_explgamma (gamma, x, &expo, tmp, tmp2, rnd_mode); ++ if (inex) ++ goto end; ++ else ++ goto ziv_next; ++ } + err_g = err_g + 1 - MPFR_GET_EXP(GammaTrial); + /* let g0 the true value of Pi*(2-x), g the computed value. + We have g = g0 + h with |h| <= |(1+u^2)-1|*g. +@@ -411,11 +421,16 @@ + if (MPFR_LIKELY (MPFR_CAN_ROUND (GammaTrial, realprec - err_g, + MPFR_PREC(gamma), rnd_mode))) + break; ++ ++ ziv_next: + MPFR_ZIV_NEXT (loop, realprec); + } ++ ++ end: + MPFR_ZIV_FREE (loop); + +- inex = mpfr_set (gamma, GammaTrial, rnd_mode); ++ if (inex == 0) ++ inex = mpfr_set (gamma, GammaTrial, rnd_mode); + MPFR_GROUP_CLEAR (group); + mpz_clear (fact); + +diff -Naurd mpfr-3.1.0-a/src/lngamma.c mpfr-3.1.0-b/src/lngamma.c +--- mpfr-3.1.0-a/src/lngamma.c 2012-03-08 15:17:03.000000000 +0000 ++++ mpfr-3.1.0-b/src/lngamma.c 2012-05-07 18:52:45.000000000 +0000 +@@ -49,9 +49,72 @@ + mpfr_set_ui_2exp (s, 9, -1, MPFR_RNDN); /* 4.5 */ + } + +-#ifndef IS_GAMMA ++#ifdef IS_GAMMA ++ ++/* This function is called in case of intermediate overflow/underflow. ++ The s1 and s2 arguments are temporary MPFR numbers, having the ++ working precision. If the result could be determined, then the ++ flags are updated via pexpo, y is set to the result, and the ++ (non-zero) ternary value is returned. Otherwise 0 is returned ++ in order to perform the next Ziv iteration. */ + static int +-unit_bit (mpfr_srcptr (x)) ++mpfr_explgamma (mpfr_ptr y, mpfr_srcptr x, mpfr_save_expo_t *pexpo, ++ mpfr_ptr s1, mpfr_ptr s2, mpfr_rnd_t rnd) ++{ ++ mpfr_t t1, t2; ++ int inex1, inex2, sign; ++ MPFR_BLOCK_DECL (flags1); ++ MPFR_BLOCK_DECL (flags2); ++ MPFR_GROUP_DECL (group); ++ ++ MPFR_BLOCK (flags1, inex1 = mpfr_lgamma (s1, &sign, x, MPFR_RNDD)); ++ MPFR_ASSERTN (inex1 != 0); ++ /* s1 = RNDD(lngamma(x)), inexact */ ++ if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags1))) ++ { ++ if (MPFR_SIGN (s1) > 0) ++ { ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (*pexpo, MPFR_FLAGS_OVERFLOW); ++ return mpfr_overflow (y, rnd, sign); ++ } ++ else ++ { ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (*pexpo, MPFR_FLAGS_UNDERFLOW); ++ return mpfr_underflow (y, rnd == MPFR_RNDN ? MPFR_RNDZ : rnd, sign); ++ } ++ } ++ ++ mpfr_set (s2, s1, MPFR_RNDN); /* exact */ ++ mpfr_nextabove (s2); /* v = RNDU(lngamma(z0)) */ ++ ++ if (sign < 0) ++ rnd = MPFR_INVERT_RND (rnd); /* since the result with be negated */ ++ MPFR_GROUP_INIT_2 (group, MPFR_PREC (y), t1, t2); ++ MPFR_BLOCK (flags1, inex1 = mpfr_exp (t1, s1, rnd)); ++ MPFR_BLOCK (flags2, inex2 = mpfr_exp (t2, s2, rnd)); ++ /* t1 is the rounding with mode 'rnd' of a lower bound on |Gamma(x)|, ++ t2 is the rounding with mode 'rnd' of an upper bound, thus if both ++ are equal, so is the wanted result. If t1 and t2 differ or the flags ++ differ, at some point of Ziv's loop they should agree. */ ++ if (mpfr_equal_p (t1, t2) && flags1 == flags2) ++ { ++ MPFR_ASSERTN ((inex1 > 0 && inex2 > 0) || (inex1 < 0 && inex2 < 0)); ++ mpfr_set4 (y, t1, MPFR_RNDN, sign); /* exact */ ++ if (sign < 0) ++ inex1 = - inex1; ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (*pexpo, flags1); ++ } ++ else ++ inex1 = 0; /* couldn't determine the result */ ++ MPFR_GROUP_CLEAR (group); ++ ++ return inex1; ++} ++ ++#else ++ ++static int ++unit_bit (mpfr_srcptr x) + { + mpfr_exp_t expo; + mpfr_prec_t prec; +@@ -75,6 +138,7 @@ + + return (x0 >> (prec % GMP_NUMB_BITS)) & 1; + } ++ + #endif + + /* lngamma(x) = log(gamma(x)). +@@ -99,12 +163,14 @@ + mpfr_t s, t, u, v, z; + unsigned long m, k, maxm; + mpz_t *INITIALIZED(B); /* variable B declared as initialized */ +- int inexact, compared; ++ int compared; ++ int inexact = 0; /* 0 means: result y not set yet */ + mpfr_exp_t err_s, err_t; + unsigned long Bm = 0; /* number of allocated B[] */ + unsigned long oldBm; + double d; + MPFR_SAVE_EXPO_DECL (expo); ++ MPFR_ZIV_DECL (loop); + + compared = mpfr_cmp_ui (z0, 1); + +@@ -122,7 +188,7 @@ + if (MPFR_EXP(z0) <= - (mpfr_exp_t) MPFR_PREC(y)) + { + mpfr_t l, h, g; +- int ok, inex2; ++ int ok, inex1, inex2; + mpfr_prec_t prec = MPFR_PREC(y) + 14; + MPFR_ZIV_DECL (loop); + +@@ -157,14 +223,14 @@ + mpfr_sub (h, h, g, MPFR_RNDD); + mpfr_mul (g, z0, z0, MPFR_RNDU); + mpfr_add (h, h, g, MPFR_RNDU); +- inexact = mpfr_prec_round (l, MPFR_PREC(y), rnd); ++ inex1 = mpfr_prec_round (l, MPFR_PREC(y), rnd); + inex2 = mpfr_prec_round (h, MPFR_PREC(y), rnd); + /* Caution: we not only need l = h, but both inexact flags should + agree. Indeed, one of the inexact flags might be zero. In that + case if we assume lngamma(z0) cannot be exact, the other flag + should be correct. We are conservative here and request that both + inexact flags agree. */ +- ok = SAME_SIGN (inexact, inex2) && mpfr_cmp (l, h) == 0; ++ ok = SAME_SIGN (inex1, inex2) && mpfr_cmp (l, h) == 0; + if (ok) + mpfr_set (y, h, rnd); /* exact */ + mpfr_clear (l); +@@ -172,8 +238,9 @@ + mpfr_clear (g); + if (ok) + { ++ MPFR_ZIV_FREE (loop); + MPFR_SAVE_EXPO_FREE (expo); +- return mpfr_check_range (y, inexact, rnd); ++ return mpfr_check_range (y, inex1, rnd); + } + /* since we have log|gamma(x)| = - log|x| - gamma*x + O(x^2), + if x ~ 2^(-n), then we have a n-bit approximation, thus +@@ -205,9 +272,10 @@ + thus lngamma(x) = log(Pi*(x-1)/sin(Pi*(2-x))) - lngamma(2-x) */ + + w = precy + MPFR_INT_CEIL_LOG2 (precy); ++ w += MPFR_INT_CEIL_LOG2 (w) + 14; ++ MPFR_ZIV_INIT (loop, w); + while (1) + { +- w += MPFR_INT_CEIL_LOG2 (w) + 14; + MPFR_ASSERTD(w >= 3); + mpfr_set_prec (s, w); + mpfr_set_prec (t, w); +@@ -288,7 +356,9 @@ + + (rnd == MPFR_RNDN))) + goto end; + } ++ MPFR_ZIV_NEXT (loop, w); + } ++ MPFR_ZIV_FREE (loop); + } + + /* now z0 > 1 */ +@@ -298,10 +368,10 @@ + /* since k is O(w), the value of log(z0*...*(z0+k-1)) is about w*log(w), + so there is a cancellation of ~log(w) in the argument reconstruction */ + w = precy + MPFR_INT_CEIL_LOG2 (precy); +- +- do ++ w += MPFR_INT_CEIL_LOG2 (w) + 13; ++ MPFR_ZIV_INIT (loop, w); ++ while (1) + { +- w += MPFR_INT_CEIL_LOG2 (w) + 13; + MPFR_ASSERTD (w >= 3); + + /* argument reduction: we compute gamma(z0 + k), where the series +@@ -441,6 +511,15 @@ + #ifdef IS_GAMMA + err_s = MPFR_GET_EXP(s); + mpfr_exp (s, s, MPFR_RNDN); ++ /* If s is +Inf, we compute exp(lngamma(z0)). */ ++ if (mpfr_inf_p (s)) ++ { ++ inexact = mpfr_explgamma (y, z0, &expo, s, t, rnd); ++ if (inexact) ++ goto end0; ++ else ++ goto ziv_next; ++ } + /* before the exponential, we have s = s0 + h where + |h| <= (2m+48)*ulp(s), thus exp(s0) = exp(s) * exp(-h). + For |h| <= 1/4, we have |exp(h)-1| <= 1.2*|h| thus +@@ -480,16 +559,26 @@ + err_s = (err_t == err_s) ? 1 + err_s : ((err_t > err_s) ? err_t : err_s); + err_s += 1 - MPFR_GET_EXP(s); + #endif ++ if (MPFR_LIKELY (MPFR_CAN_ROUND (s, w - err_s, precy, rnd))) ++ break; ++#ifdef IS_GAMMA ++ ziv_next: ++#endif ++ MPFR_ZIV_NEXT (loop, w); + } +- while (MPFR_UNLIKELY (!MPFR_CAN_ROUND (s, w - err_s, precy, rnd))); + ++#ifdef IS_GAMMA ++ end0: ++#endif + oldBm = Bm; + while (Bm--) + mpz_clear (B[Bm]); + (*__gmp_free_func) (B, oldBm * sizeof (mpz_t)); + + end: +- inexact = mpfr_set (y, s, rnd); ++ if (inexact == 0) ++ inexact = mpfr_set (y, s, rnd); ++ MPFR_ZIV_FREE (loop); + + mpfr_clear (s); + mpfr_clear (t); +diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h +--- mpfr-3.1.0-a/src/mpfr.h 2012-04-27 01:13:15.000000000 +0000 ++++ mpfr-3.1.0-b/src/mpfr.h 2012-05-07 18:52:45.000000000 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "3.1.0-p9" ++#define MPFR_VERSION_STRING "3.1.0-p10" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c +--- mpfr-3.1.0-a/src/version.c 2012-04-27 01:13:15.000000000 +0000 ++++ mpfr-3.1.0-b/src/version.c 2012-05-07 18:52:45.000000000 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.0-p9"; ++ return "3.1.0-p10"; + } +diff -Naurd mpfr-3.1.0-a/tests/tgamma.c mpfr-3.1.0-b/tests/tgamma.c +--- mpfr-3.1.0-a/tests/tgamma.c 2012-04-27 01:13:15.000000000 +0000 ++++ mpfr-3.1.0-b/tests/tgamma.c 2012-05-07 18:52:45.000000000 +0000 +@@ -838,6 +838,175 @@ + exit (1); + } + ++/* Test mpfr_gamma in precision p1 by comparing it with exp(lgamma(x)) ++ computing with a working precision p2. Assume that x is not an ++ integer <= 2. */ ++static void ++exp_lgamma (mpfr_t x, mpfr_prec_t p1, mpfr_prec_t p2) ++{ ++ mpfr_t yd, yu, zd, zu; ++ int inexd, inexu, sign; ++ int underflow = -1, overflow = -1; /* -1: we don't know */ ++ int got_underflow, got_overflow; ++ ++ if (mpfr_integer_p (x) && mpfr_cmp_si (x, 2) <= 0) ++ { ++ printf ("Warning! x is an integer <= 2 in exp_lgamma: "); ++ mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); putchar ('\n'); ++ return; ++ } ++ mpfr_inits2 (p2, yd, yu, (mpfr_ptr) 0); ++ inexd = mpfr_lgamma (yd, &sign, x, MPFR_RNDD); ++ mpfr_set (yu, yd, MPFR_RNDN); /* exact */ ++ if (inexd) ++ mpfr_nextabove (yu); ++ mpfr_clear_flags (); ++ mpfr_exp (yd, yd, MPFR_RNDD); ++ if (! mpfr_underflow_p ()) ++ underflow = 0; ++ if (mpfr_overflow_p ()) ++ overflow = 1; ++ mpfr_clear_flags (); ++ mpfr_exp (yu, yu, MPFR_RNDU); ++ if (mpfr_underflow_p ()) ++ underflow = 1; ++ if (! mpfr_overflow_p ()) ++ overflow = 0; ++ if (sign < 0) ++ { ++ mpfr_neg (yd, yd, MPFR_RNDN); /* exact */ ++ mpfr_neg (yu, yu, MPFR_RNDN); /* exact */ ++ mpfr_swap (yd, yu); ++ } ++ /* yd < Gamma(x) < yu (strict inequalities since x != 1 and x != 2) */ ++ mpfr_inits2 (p1, zd, zu, (mpfr_ptr) 0); ++ mpfr_clear_flags (); ++ inexd = mpfr_gamma (zd, x, MPFR_RNDD); /* zd <= Gamma(x) < yu */ ++ got_underflow = underflow == -1 ? -1 : !! mpfr_underflow_p (); ++ got_overflow = overflow == -1 ? -1 : !! mpfr_overflow_p (); ++ if (! mpfr_less_p (zd, yu) || inexd > 0 || ++ got_underflow != underflow || ++ got_overflow != overflow) ++ { ++ printf ("Error in exp_lgamma on x = "); ++ mpfr_out_str (stdout, 16, 0, x, MPFR_RNDN); putchar ('\n'); ++ printf ("yu = "); ++ mpfr_dump (yu); ++ printf ("zd = "); ++ mpfr_dump (zd); ++ printf ("got inexd = %d, expected <= 0\n", inexd); ++ printf ("got underflow = %d, expected %d\n", got_underflow, underflow); ++ printf ("got overflow = %d, expected %d\n", got_overflow, overflow); ++ exit (1); ++ } ++ mpfr_clear_flags (); ++ inexu = mpfr_gamma (zu, x, MPFR_RNDU); /* zu >= Gamma(x) > yd */ ++ got_underflow = underflow == -1 ? -1 : !! mpfr_underflow_p (); ++ got_overflow = overflow == -1 ? -1 : !! mpfr_overflow_p (); ++ if (! mpfr_greater_p (zu, yd) || inexu < 0 || ++ got_underflow != underflow || ++ got_overflow != overflow) ++ { ++ printf ("Error in exp_lgamma on x = "); ++ mpfr_out_str (stdout, 16, 0, x, MPFR_RNDN); putchar ('\n'); ++ printf ("yd = "); ++ mpfr_dump (yd); ++ printf ("zu = "); ++ mpfr_dump (zu); ++ printf ("got inexu = %d, expected >= 0\n", inexu); ++ printf ("got underflow = %d, expected %d\n", got_underflow, underflow); ++ printf ("got overflow = %d, expected %d\n", got_overflow, overflow); ++ exit (1); ++ } ++ if (mpfr_equal_p (zd, zu)) ++ { ++ if (inexd != 0 || inexu != 0) ++ { ++ printf ("Error in exp_lgamma on x = "); ++ mpfr_out_str (stdout, 16, 0, x, MPFR_RNDN); putchar ('\n'); ++ printf ("zd = zu, thus exact, but inexd = %d and inexu = %d\n", ++ inexd, inexu); ++ exit (1); ++ } ++ MPFR_ASSERTN (got_underflow == 0); ++ MPFR_ASSERTN (got_overflow == 0); ++ } ++ else if (inexd == 0 || inexu == 0) ++ { ++ printf ("Error in exp_lgamma on x = "); ++ mpfr_out_str (stdout, 16, 0, x, MPFR_RNDN); putchar ('\n'); ++ printf ("zd != zu, thus inexact, but inexd = %d and inexu = %d\n", ++ inexd, inexu); ++ exit (1); ++ } ++ mpfr_clears (yd, yu, zd, zu, (mpfr_ptr) 0); ++} ++ ++static void ++exp_lgamma_tests (void) ++{ ++ mpfr_t x; ++ mpfr_exp_t emin, emax; ++ int i; ++ ++ emin = mpfr_get_emin (); ++ emax = mpfr_get_emax (); ++ set_emin (MPFR_EMIN_MIN); ++ set_emax (MPFR_EMAX_MAX); ++ ++ mpfr_init2 (x, 96); ++ for (i = 3; i <= 8; i++) ++ { ++ mpfr_set_ui (x, i, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ mpfr_nextbelow (x); ++ exp_lgamma (x, 53, 64); ++ mpfr_nextabove (x); ++ mpfr_nextabove (x); ++ exp_lgamma (x, 53, 64); ++ } ++ mpfr_set_str (x, "1.7", 10, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ mpfr_set_str (x, "-4.6308260837372266e+07", 10, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ mpfr_set_str (x, "-90.6308260837372266e+15", 10, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ /* The following test gives a large positive result < +Inf */ ++ mpfr_set_str (x, "1.2b13fc45a92dea1@14", 16, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ /* Idem for a large negative result > -Inf */ ++ mpfr_set_str (x, "-1.2b13fc45a92de81@14", 16, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ /* The following two tests trigger an endless loop in r8186 ++ on 64-bit machines (64-bit exponent). The second one (due ++ to undetected overflow) is a direct consequence of the ++ first one, due to the call of Gamma(2-x) if x < 1. */ ++ mpfr_set_str (x, "1.2b13fc45a92dec8@14", 16, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ mpfr_set_str (x, "-1.2b13fc45a92dea8@14", 16, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ /* Similar tests (overflow threshold) for 32-bit machines. */ ++ mpfr_set_str (x, "2ab68d8.657542f855111c61", 16, MPFR_RNDN); ++ exp_lgamma (x, 12, 64); ++ mpfr_set_str (x, "-2ab68d6.657542f855111c61", 16, MPFR_RNDN); ++ exp_lgamma (x, 12, 64); ++ /* The following test is an overflow on 32-bit and 64-bit machines. ++ Revision r8189 fails on 64-bit machines as the flag is unset. */ ++ mpfr_set_str (x, "1.2b13fc45a92ded8@14", 16, MPFR_RNDN); ++ exp_lgamma (x, 53, 64); ++ /* On the following tests, with r8196, one gets an underflow on ++ 32-bit machines, while a normal result is expected (see FIXME ++ in gamma.c:382). */ ++ mpfr_set_str (x, "-2ab68d6.657542f855111c6104", 16, MPFR_RNDN); ++ exp_lgamma (x, 12, 64); /* failure on 32-bit machines */ ++ mpfr_set_str (x, "-12b13fc45a92deb.1c6c5bc964", 16, MPFR_RNDN); ++ exp_lgamma (x, 12, 64); /* failure on 64-bit machines */ ++ mpfr_clear (x); ++ ++ set_emin (emin); ++ set_emax (emax); ++} ++ + int + main (int argc, char *argv[]) + { +@@ -852,6 +1021,7 @@ + test20071231 (); + test20100709 (); + test20120426 (); ++ exp_lgamma_tests (); + + data_check ("data/gamma", mpfr_gamma, "mpfr_gamma"); + diff --git a/core/openssl/PKGBUILD b/core/openssl/PKGBUILD index 5b616b90b..03cf93533 100644 --- a/core/openssl/PKGBUILD +++ b/core/openssl/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 157379 2012-04-28 09:02:47Z pierre $ +# $Id: PKGBUILD 158833 2012-05-11 23:33:03Z pierre $ # Maintainer: Pierre Schmitz <pierre@archlinux.de> pkgname=openssl -_ver=1.0.1b +_ver=1.0.1c # use a pacman compatible version scheme pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}} #pkgver=$_ver @@ -19,7 +19,7 @@ source=("https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz" 'fix-manpages.patch' 'no-rpath.patch' 'ca-dir.patch') -md5sums=('a1da58ce63baef3812004714fa302c47' +md5sums=('ae412727c8c15b67880aef7bd2999b2e' '5bbc0655bda2af95bc8eb568963ce8ba' 'dc78d3d06baffc16217519242ce92478' '3bf51be3a1bbd262be46dc619f92aa90') diff --git a/extra/cairo/PKGBUILD b/extra/cairo/PKGBUILD index 652d2da9d..5ce2c5fa9 100644 --- a/extra/cairo/PKGBUILD +++ b/extra/cairo/PKGBUILD @@ -1,38 +1,57 @@ -# $Id: PKGBUILD 148684 2012-02-05 11:46:48Z ibiru $ +# $Id: PKGBUILD 158854 2012-05-12 13:09:25Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Brice Carpentier <brice@daknet.org> pkgname=cairo -pkgver=1.10.2 -pkgrel=3 +#_gitdate=20120426 +#_gitver=957a9cc619965178a8927d114fe852034fc2385c +pkgver=1.12.2 +pkgrel=1 pkgdesc="Cairo vector graphics library" arch=(i686 x86_64 'mips64el') license=('LGPL' 'MPL') url="http://cairographics.org/" depends=('libpng' 'libxrender' 'fontconfig' 'pixman' 'glib2' 'sh') +makedepends=('librsvg' 'poppler-glib' 'libspectre' 'gtk-doc') # 'libdrm') +optdepends=('xcb-util: for XCB backend') # really needed? +provides=('cairo-xcb') +replaces=('cairo-xcb') options=('!libtool') -source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.gz - cairo-1.10.0-buggy_gradients.patch) -sha1sums=('ccce5ae03f99c505db97c286a0c9a90a926d3c6e' - '8b843a9934e5112b6188e5bcf4adfc1fdaf9fa04') +source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz + #$pkgname-$pkgver.tar.gz::http://cgit.freedesktop.org/cairo/snapshot/cairo-${_gitver}.tar.gz + cairo-1.10.0-buggy_gradients.patch + #git_fixes.patch +) +md5sums=('87649eb75789739d517c743e94879e51' + '9b323790dab003e228c6955633cb888e') build() { cd "$srcdir/$pkgname-$pkgver" - patch -Np1 -i "${srcdir}/cairo-1.10.0-buggy_gradients.patch" + #cd ${srcdir}/${pkgname}-${_gitver} + patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch + # status is 2012-04-26 last commit: image: Fix typo in _blit_spans() + #patch -Np1 -i ${srcdir}/git_fixes.patch + autoreconf -vfi + #./autogen.sh --prefix=/usr \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static \ - --enable-tee + --enable-tee \ + --disable-xlib-xcb \ + # --enable-test-surfaces \ takes ages + #--enable-drm # breaks build make } -check() { - cd "$srcdir/$pkgname-$pkgver" - make check || /bin/true # 248 Passed, 65 Failed [2 crashed, 8 expected], 28 Skipped -} +#check() { +# #cd "$srcdir/$pkgname-$pkgver" +# cd $srcdir/$pkgname-${_gitver} +# make -k check || /bin/true # 165 Passed, 316 Failed [3 crashed, 10 expected], 23 Skipped +#} package() { cd "$srcdir/$pkgname-$pkgver" + #cd $srcdir/$pkgname-${_gitver} make DESTDIR="$pkgdir" install } diff --git a/extra/cairo/git_fixes.patch b/extra/cairo/git_fixes.patch new file mode 100644 index 000000000..6ad8979eb --- /dev/null +++ b/extra/cairo/git_fixes.patch @@ -0,0 +1,1086 @@ +From ede11b2954db19e3ca9d31cef7d04a7bf0e42ddc Mon Sep 17 00:00:00 2001 +From: Behdad Esfahbod <behdad@behdad.org> +Date: Sun, 25 Mar 2012 18:37:14 +0000 +Subject: Fix math in comments + +--- +diff --git a/src/cairo-arc.c b/src/cairo-arc.c +index dc07fee..6977e88 100644 +--- a/src/cairo-arc.c ++++ b/src/cairo-arc.c +@@ -139,7 +139,7 @@ _arc_segments_needed (double angle, + + From that paper, a very practical value of h is: + +- h = 4/3 * tan(angle/4) ++ h = 4/3 * R * tan(angle/4) + + This value does not give the spline with minimal error, but it does + provide a very good approximation, (6th-order convergence), and the +-- +cgit v0.9.0.2-2-gbebe +From fba21ef2a4c4eb343668267fda713aedbb6af2a4 Mon Sep 17 00:00:00 2001 +From: Henry (Yu) Song <hsong@sisa.samsung.com> +Date: Tue, 27 Mar 2012 21:25:37 +0000 +Subject: gl: use font's antialias option to check whether it needs mask + +There is need to loop over number of glyphs to check wether the glyph +image is a ARGB32 as the font's antialias option can be used for checking. +If antialias is SUBPIXEL or BEST, the glyph surface will be ARGB32, +otherwise it will be A8 format. Therefore we will only be using +component-alpha at SUBPIXEL (or better) font quality and only then need +a mask for multiple pass glyph composition. +--- +diff --git a/src/cairo-gl-glyphs.c b/src/cairo-gl-glyphs.c +index 832956f..9756ea4 100644 +--- a/src/cairo-gl-glyphs.c ++++ b/src/cairo-gl-glyphs.c +@@ -427,23 +427,15 @@ _cairo_gl_composite_glyphs (void *_dst, + + TRACE ((stderr, "%s\n", __FUNCTION__)); + +- /* If any of the glyphs are component alpha, we have to go through a mask, +- * since only _cairo_gl_surface_composite() currently supports component +- * alpha. ++ /* If any of the glyphs require component alpha, we have to go through ++ * a mask, since only _cairo_gl_surface_composite() currently supports ++ * component alpha. + */ +- if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER) { +- for (i = 0; i < info->num_glyphs; i++) { +- cairo_scaled_glyph_t *scaled_glyph; +- +- if (_cairo_scaled_glyph_lookup (info->font, info->glyphs[i].index, +- CAIRO_SCALED_GLYPH_INFO_SURFACE, +- &scaled_glyph) == CAIRO_INT_STATUS_SUCCESS && +- scaled_glyph->surface->format == CAIRO_FORMAT_ARGB32) +- { +- info->use_mask = TRUE; +- break; +- } +- } ++ if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER && ++ (info->font->options.antialias == CAIRO_ANTIALIAS_SUBPIXEL || ++ info->font->options.antialias == CAIRO_ANTIALIAS_BEST)) ++ { ++ info->use_mask = TRUE; + } + + if (info->use_mask) { +-- +cgit v0.9.0.2-2-gbebe +From d304f0e57be8036719c3709e2419487326369105 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed, 28 Mar 2012 23:32:36 +0000 +Subject: composite-rectangles: Trim extents for SOURCE and CLEAR to the mask + +The SOURCE and CLEAR are the odd pair in Cairo's range of operators that +are bound by the shape/mask, but are unbound by the source. This +regularly leads to bugs as only track the bound/unbound rectangles and +confuse the meaning when bound only by the mask. + +What is required is that the unbound extents in this case is only +trimmed by the mask (the bounded extents are still the intersection of +all). + +Fixes bug-source-cu + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c +index 106571e..8c5cd5a 100644 +--- a/src/cairo-composite-rectangles.c ++++ b/src/cairo-composite-rectangles.c +@@ -147,8 +147,12 @@ _cairo_composite_rectangles_intersect (cairo_composite_rectangles_t *extents, + if (! ret && extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + +- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) ++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { + extents->unbounded = extents->bounded; ++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { ++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) ++ return CAIRO_INT_STATUS_NOTHING_TO_DO; ++ } + + extents->clip = _cairo_clip_reduce_for_composite (clip, extents); + if (_cairo_clip_is_all_clipped (extents->clip)) +@@ -199,8 +203,12 @@ _cairo_composite_rectangles_intersect_source_extents (cairo_composite_rectangles + rect.height == extents->bounded.height) + return CAIRO_INT_STATUS_SUCCESS; + +- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) ++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { + extents->unbounded = extents->bounded; ++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { ++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) ++ return CAIRO_INT_STATUS_NOTHING_TO_DO; ++ } + + clip = extents->clip; + extents->clip = _cairo_clip_reduce_for_composite (clip, extents); +@@ -253,8 +261,12 @@ _cairo_composite_rectangles_intersect_mask_extents (cairo_composite_rectangles_t + mask.height == extents->bounded.height) + return CAIRO_INT_STATUS_SUCCESS; + +- if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) ++ if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { + extents->unbounded = extents->bounded; ++ } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { ++ if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) ++ return CAIRO_INT_STATUS_NOTHING_TO_DO; ++ } + + clip = extents->clip; + extents->clip = _cairo_clip_reduce_for_composite (clip, extents); +-- +cgit v0.9.0.2-2-gbebe +From af6e084dd78fcbb8ecce46c57f655f5e24343b8c Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu, 29 Mar 2012 13:48:24 +0000 +Subject: cairoint: Mark PDF surface as requiring the deflate stream output + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairoint.h b/src/cairoint.h +index 9a8003e..9f20d51 100644 +--- a/src/cairoint.h ++++ b/src/cairoint.h +@@ -73,7 +73,10 @@ + #include "cairo-compiler-private.h" + #include "cairo-error-private.h" + +-#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_SCRIPT_SURFACE || CAIRO_HAS_XML_SURFACE ++#if CAIRO_HAS_PDF_SURFACE || \ ++ CAIRO_HAS_PS_SURFACE || \ ++ CAIRO_HAS_SCRIPT_SURFACE || \ ++ CAIRO_HAS_XML_SURFACE + #define CAIRO_HAS_DEFLATE_STREAM 1 + #endif + +@@ -84,7 +87,9 @@ + #define CAIRO_HAS_FONT_SUBSET 1 + #endif + +-#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_PDF_SURFACE || CAIRO_HAS_FONT_SUBSET ++#if CAIRO_HAS_PS_SURFACE || \ ++ CAIRO_HAS_PDF_SURFACE || \ ++ CAIRO_HAS_FONT_SUBSET + #define CAIRO_HAS_PDF_OPERATORS 1 + #endif + +-- +cgit v0.9.0.2-2-gbebe +From a965b0f95fdeb567f7ccb51f7c8c47735a61e2d9 Mon Sep 17 00:00:00 2001 +From: Henry (Yu) Song <hsong@sisa.samsung.com> +Date: Thu, 29 Mar 2012 01:08:51 +0000 +Subject: gl: fix y-axis origin when map_to_image() for non texture GL surface + +We need to fix y-axis origin when map a GL surface to image surface for +non-texture GL surface. + +Test cases: extended-blend-alpha-mask, extended-blend-mask. +Although the image outputs is not right, but the image on the first grid +(upper-left corner) is correct comparing to image output. +--- +diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c +index 8bbf939..32ecf63 100644 +--- a/src/cairo-gl-surface.c ++++ b/src/cairo-gl-surface.c +@@ -985,6 +985,7 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, + unsigned int cpp; + cairo_bool_t invert; + cairo_status_t status; ++ int y; + + /* Want to use a switch statement here but the compiler gets whiny. */ + if (surface->base.content == CAIRO_CONTENT_COLOR_ALPHA) { +@@ -1065,7 +1066,12 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, + glPixelStorei (GL_PACK_ROW_LENGTH, image->stride / cpp); + if (invert) + glPixelStorei (GL_PACK_INVERT_MESA, 1); +- glReadPixels (extents->x, extents->y, ++ ++ y = extents->y; ++ if (! _cairo_gl_surface_is_texture (surface)) ++ y = surface->height - extents->y - extents->height; ++ ++ glReadPixels (extents->x, y, + extents->width, extents->height, + format, type, image->data); + if (invert) +-- +cgit v0.9.0.2-2-gbebe +From c77112c5464d7ff21052527f82f4d729cc509291 Mon Sep 17 00:00:00 2001 +From: Uli Schlachter <psychon@znc.in> +Date: Mon, 02 Apr 2012 18:43:00 +0000 +Subject: xcb: Fix SHM in _get_image() + +Commit 2283ab9 introduced a logic error. Instead of falling back to the non-SHM +path when getting the image via SHM failed, we now did the fallback when getting +the image via SHM worked (which means that the SHM operation was a waste of +time). + +Signed-off-by: Uli Schlachter <psychon@znc.in> +--- +diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c +index fff4f52..6bedbda 100644 +--- a/src/cairo-xcb-surface.c ++++ b/src/cairo-xcb-surface.c +@@ -367,7 +367,7 @@ _get_image (cairo_xcb_surface_t *surface, + if (use_shm) { + image = _get_shm_image (surface, x, y, width, height); + if (image) { +- if (image->status) { ++ if (image->status == CAIRO_STATUS_SUCCESS) { + _cairo_xcb_connection_release (connection); + return image; + } +-- +cgit v0.9.0.2-2-gbebe +From cc247c346b75353f16ab40ac74c54cdd9663d16b Mon Sep 17 00:00:00 2001 +From: Henry (Yu) Song <hsong@sisa.samsung.com> +Date: Mon, 02 Apr 2012 21:29:47 +0000 +Subject: gl: Remove an unused variable + +--- +diff --git a/src/cairo-gl-gradient.c b/src/cairo-gl-gradient.c +index b364b92..ce7c0dd 100644 +--- a/src/cairo-gl-gradient.c ++++ b/src/cairo-gl-gradient.c +@@ -207,7 +207,6 @@ _cairo_gl_gradient_create (cairo_gl_context_t *ctx, + cairo_status_t status; + int tex_width; + void *data; +- cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + + if ((unsigned int) ctx->max_texture_size / 2 <= n_stops) + return CAIRO_INT_STATUS_UNSUPPORTED; +-- +cgit v0.9.0.2-2-gbebe +From 7a262fd398c8a1f3c9052e8d9ec459e27ff91b4d Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Wed, 04 Apr 2012 10:23:09 +0000 +Subject: fix bug in _cairo_image_analyze_color + +--- +diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c +index 8208a15..e860e1b 100644 +--- a/src/cairo-image-surface.c ++++ b/src/cairo-image-surface.c +@@ -1130,9 +1130,12 @@ _cairo_image_analyze_color (cairo_image_surface_t *image) + if (image->color != CAIRO_IMAGE_UNKNOWN_COLOR) + return image->color; + +- if (image->format == CAIRO_FORMAT_A1 || image->format == CAIRO_FORMAT_A8) ++ if (image->format == CAIRO_FORMAT_A1) + return image->color = CAIRO_IMAGE_IS_MONOCHROME; + ++ if (image->format == CAIRO_FORMAT_A8) ++ return image->color = CAIRO_IMAGE_IS_GRAYSCALE; ++ + if (image->format == CAIRO_FORMAT_ARGB32) { + image->color = CAIRO_IMAGE_IS_MONOCHROME; + for (y = 0; y < image->height; y++) { +-- +cgit v0.9.0.2-2-gbebe +From 70b2856ed3d31b41e69b3d82fb9c5c11c2b3d3d4 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Thu, 05 Apr 2012 23:43:35 +0000 +Subject: type1-subset: use fallback font if glyph widths are calculated + +Bug 48349 has a pdf file with a Type 1 font where the glyph widths are +of the form: + +34 9302 19 div hsbw +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index 607ac8e..ba1008a 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -751,6 +751,9 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + command = *p++; + switch (command) { + case TYPE1_CHARSTRING_COMMAND_HSBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ + font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; +@@ -797,6 +800,9 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + break; + + case TYPE1_CHARSTRING_COMMAND_SBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ + font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; +-- +cgit v0.9.0.2-2-gbebe +From a6d955fcc46ae2da8d6f3b2cadeae64c03066461 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Thu, 05 Apr 2012 23:53:50 +0000 +Subject: fix indentation in cairo_type1_font_subset_parse_charstring + +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index ba1008a..ddef8ae 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -1,3 +1,4 @@ ++/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */ + /* cairo - a vector graphics library with display and print output + * + * Copyright © 2006 Red Hat, Inc +@@ -750,86 +751,79 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + if (*p < 32) { + command = *p++; + switch (command) { +- case TYPE1_CHARSTRING_COMMAND_HSBW: +- if (! last_op_was_integer) +- return CAIRO_INT_STATUS_UNSUPPORTED; ++ case TYPE1_CHARSTRING_COMMAND_HSBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; ++ break; ++ ++ case TYPE1_CHARSTRING_COMMAND_CALLSUBR: ++ if (font->subset_subrs && ++ last_op_was_integer && ++ font->build_stack.top_value >= 0 && ++ font->build_stack.top_value < font->num_subrs) ++ { ++ subr_num = font->build_stack.top_value; ++ font->subrs[subr_num].used = TRUE; ++ last_op_was_integer = FALSE; ++ status = cairo_type1_font_subset_parse_charstring (font, ++ glyph, ++ font->subrs[subr_num].subr_string, ++ font->subrs[subr_num].subr_length); ++ } else { ++ font->subset_subrs = FALSE; ++ } ++ break; ++ ++ case TYPE1_CHARSTRING_COMMAND_ESCAPE: ++ command = command << 8 | *p++; ++ switch (command) { ++ case TYPE1_CHARSTRING_COMMAND_SEAC: ++ /* The seac command takes five integer arguments. The ++ * last two are glyph indices into the PS standard ++ * encoding give the names of the glyphs that this ++ * glyph is composed from. All we need to do is to ++ * make sure those glyphs are present in the subset ++ * under their standard names. */ ++ status = use_standard_encoding_glyph (font, font->build_stack.stack[3]); ++ if (unlikely (status)) ++ return status; ++ ++ status = use_standard_encoding_glyph (font, font->build_stack.stack[4]); ++ if (unlikely (status)) ++ return status; + +- font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; + break; + +- case TYPE1_CHARSTRING_COMMAND_CALLSUBR: +- if (font->subset_subrs && +- last_op_was_integer && +- font->build_stack.top_value >= 0 && +- font->build_stack.top_value < font->num_subrs) +- { +- subr_num = font->build_stack.top_value; +- font->subrs[subr_num].used = TRUE; +- last_op_was_integer = FALSE; +- status = cairo_type1_font_subset_parse_charstring (font, +- glyph, +- font->subrs[subr_num].subr_string, +- font->subrs[subr_num].subr_length); +- } else { +- font->subset_subrs = FALSE; +- } ++ case TYPE1_CHARSTRING_COMMAND_SBW: ++ if (! last_op_was_integer) ++ return CAIRO_INT_STATUS_UNSUPPORTED; ++ ++ font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; + break; + +- case TYPE1_CHARSTRING_COMMAND_ESCAPE: +- command = command << 8 | *p++; +- switch (command) { +- case TYPE1_CHARSTRING_COMMAND_SEAC: +- /* The seac command takes five integer arguments. The +- * last two are glyph indices into the PS standard +- * encoding give the names of the glyphs that this +- * glyph is composed from. All we need to do is to +- * make sure those glyphs are present in the subset +- * under their standard names. */ +- status = use_standard_encoding_glyph (font, font->build_stack.stack[3]); +- if (unlikely (status)) +- return status; +- +- status = use_standard_encoding_glyph (font, font->build_stack.stack[4]); +- if (unlikely (status)) +- return status; +- +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; +- +- case TYPE1_CHARSTRING_COMMAND_SBW: +- if (! last_op_was_integer) +- return CAIRO_INT_STATUS_UNSUPPORTED; +- +- font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; +- +- case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: +- for (i = 0; i < font->build_stack.sp; i++) +- font->ps_stack.other_subr_args[i] = font->build_stack.stack[i]; +- font->ps_stack.num_other_subr_args = font->build_stack.sp; +- font->ps_stack.cur_other_subr_arg = 0; +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; +- +- case TYPE1_CHARSTRING_COMMAND_POP: +- if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) { +- font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++]; +- last_op_was_integer = TRUE; +- } else { +- font->subset_subrs = FALSE; +- } +- break; +- +- default: +- font->build_stack.sp = 0; +- last_op_was_integer = FALSE; +- break; ++ case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: ++ for (i = 0; i < font->build_stack.sp; i++) ++ font->ps_stack.other_subr_args[i] = font->build_stack.stack[i]; ++ font->ps_stack.num_other_subr_args = font->build_stack.sp; ++ font->ps_stack.cur_other_subr_arg = 0; ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; ++ break; ++ ++ case TYPE1_CHARSTRING_COMMAND_POP: ++ if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) { ++ font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++]; ++ last_op_was_integer = TRUE; ++ } else { ++ font->subset_subrs = FALSE; + } + break; + +@@ -837,6 +831,13 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, + font->build_stack.sp = 0; + last_op_was_integer = FALSE; + break; ++ } ++ break; ++ ++ default: ++ font->build_stack.sp = 0; ++ last_op_was_integer = FALSE; ++ break; + } + } else { + /* integer argument */ +-- +cgit v0.9.0.2-2-gbebe +From 8886220b5027296f5b3b95e9c2f93509108d3b9e Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Fri, 06 Apr 2012 00:13:53 +0000 +Subject: type1-subset: if font name is prefixed with a subset tag, strip it off + +--- +diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c +index ddef8ae..e507abe 100644 +--- a/src/cairo-type1-subset.c ++++ b/src/cairo-type1-subset.c +@@ -381,6 +381,7 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font) + { + const char *start, *end, *segment_end; + char *s; ++ int i; + + segment_end = font->header_segment + font->header_segment_size; + start = find_token (font->header_segment, segment_end, "/FontName"); +@@ -406,6 +407,16 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font) + return CAIRO_INT_STATUS_UNSUPPORTED; + } + ++ /* If font name is prefixed with a subset tag, strip it off. */ ++ if (strlen(start) > 7 && start[6] == '+') { ++ for (i = 0; i < 6; i++) { ++ if (start[i] < 'A' || start[i] > 'Z') ++ break; ++ } ++ if (i == 6) ++ start += 7; ++ } ++ + font->base.base_font = strdup (start); + free (s); + if (unlikely (font->base.base_font == NULL)) +-- +cgit v0.9.0.2-2-gbebe +From 8657ca10e34b0034602680b4304d47ecf90ccbfd Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Fri, 06 Apr 2012 11:50:40 +0000 +Subject: fix _cairo_pattern_get_ink_extents to work with snapshot recording surfaces + +It had caused pdf bbox sizes to regress to page size bboxes. +--- +diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c +index 27ba004..5b3e177 100644 +--- a/src/cairo-pattern.c ++++ b/src/cairo-pattern.c +@@ -37,6 +37,7 @@ + #include "cairo-path-private.h" + #include "cairo-pattern-private.h" + #include "cairo-recording-surface-private.h" ++#include "cairo-surface-snapshot-private.h" + + #include <float.h> + +@@ -3666,6 +3667,9 @@ _cairo_pattern_get_ink_extents (const cairo_pattern_t *pattern, + (const cairo_surface_pattern_t *) pattern; + cairo_surface_t *surface = surface_pattern->surface; + ++ if (_cairo_surface_is_snapshot (surface)) ++ surface = _cairo_surface_snapshot_get_target (surface); ++ + if (_cairo_surface_is_recording (surface)) { + cairo_matrix_t imatrix; + cairo_box_t box; +-- +cgit v0.9.0.2-2-gbebe +From 6f28f0b33cb12f3b2dd48c87da0018bd00c17107 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 08 Apr 2012 10:28:59 +0000 +Subject: stroke: Fix misuse of half_line_x for vertical caps on dashes + +A typo using half_line_x instead of half_line_y when emitting dashed +segments of the rectilinear stroke. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-path-stroke-boxes.c b/src/cairo-path-stroke-boxes.c +index 3e8c5a4..cc9dd19 100644 +--- a/src/cairo-path-stroke-boxes.c ++++ b/src/cairo-path-stroke-boxes.c +@@ -342,15 +342,15 @@ _cairo_rectilinear_stroker_emit_segments_dashed (cairo_rectilinear_stroker_t *st + box.p1.x = box.p2.x - half_line_x; + } + if (out_slope.dy >= 0) +- box.p1.y -= half_line_x; ++ box.p1.y -= half_line_y; + if (out_slope.dy <= 0) +- box.p2.y += half_line_x; ++ box.p2.y += half_line_y; + } else { + if (box.p1.y <= box.p2.y) { + box.p1.y = box.p2.y; +- box.p2.y += half_line_x; ++ box.p2.y += half_line_y; + } else { +- box.p1.y = box.p2.y - half_line_x; ++ box.p1.y = box.p2.y - half_line_y; + } + if (out_slope.dx >= 0) + box.p1.x -= half_line_x; +-- +cgit v0.9.0.2-2-gbebe +From 113ec6bf0c8ed1ff12293d1ed2a2de9bd5b9904b Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 08 Apr 2012 16:58:13 +0000 +Subject: traps: Clip the trapezoid extents against the clip extents + +Just in case the clip polygon turns out to be much larger than the +operation extents (silly us for not reducing it correctly) and lead to +catastrophe, such as: + +Program received signal SIGSEGV, Segmentation fault. +pixman_fill_sse2 (bits=<optimized out>, stride=4, bpp=8, x=0, y=0, +width=3, height=-34811, data=0) at pixman-sse2.c:3369 +3369 *(uint16_t *)d = data; + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c +index 284a0be..c49e208 100644 +--- a/src/cairo-traps-compositor.c ++++ b/src/cairo-traps-compositor.c +@@ -218,8 +218,13 @@ combine_clip_as_traps (const cairo_traps_compositor_t *compositor, + _cairo_traps_fini (&traps); + cairo_surface_destroy (src); + +- if (status == CAIRO_INT_STATUS_SUCCESS && +- (fixup.width < extents->width || fixup.height < extents->height)) { ++ if (unlikely (status)) ++ return status; ++ ++ if (! _cairo_rectangle_intersect (&fixup, extents)) ++ return CAIRO_STATUS_SUCCESS; ++ ++ if (fixup.width < extents->width || fixup.height < extents->height) { + cairo_boxes_t clear; + + _cairo_boxes_init (&clear); +-- +cgit v0.9.0.2-2-gbebe +From de61681574eb7d6e0e497ea7f25797e3d9b20ac4 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon, 09 Apr 2012 11:47:34 +0000 +Subject: build: Disable -Wset-but-unused-variable + +This is too noisy in the current build, and masking more important +warnings. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings +index 3eb0104..f1b17f4 100644 +--- a/build/configure.ac.warnings ++++ b/build/configure.ac.warnings +@@ -21,6 +21,9 @@ MAYBE_WARN="-Wall -Wextra \ + -Wno-missing-field-initializers -Wno-unused-parameter \ + -Wno-attributes -Wno-long-long -Winline" + ++# -Wunused-but-set-variable is too noisy at present ++NO_WARN="-Wno-unused-but-set-variable" ++ + dnl Sun Studio 12 likes to rag at us for abusing enums like + dnl having cairo_status_t variables hold cairo_int_status_t + dnl values. It's bad, we know. Now please be quiet. +@@ -34,6 +37,8 @@ MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common -flto" + dnl Also to turn various gcc/glibc-specific preprocessor checks + MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2" + ++MAYBE_WARN="$MAYBE_WARN $NO_WARN" ++ + # invalidate cached value if MAYBE_WARN has changed + if test "x$cairo_cv_warn_maybe" != "x$MAYBE_WARN"; then + unset cairo_cv_warn_cflags +-- +cgit v0.9.0.2-2-gbebe +From 7cb5053c0694992320b5f7ea3b91ea497431813b Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon, 09 Apr 2012 11:49:20 +0000 +Subject: analysis: Apply the integer translation to the bbox as well + +The bbox is used to compute the ink extents (and so the pattern extents +of a recording surface) and if given an integer translation we failed to +transform the bbox into the target space. + +Fixes mask (pdf). + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +--- +diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c +index b8abe02..8878f62 100644 +--- a/src/cairo-analysis-surface.c ++++ b/src/cairo-analysis-surface.c +@@ -220,6 +220,14 @@ _add_operation (cairo_analysis_surface_t *surface, + if (_cairo_matrix_is_integer_translation (&surface->ctm, &tx, &ty)) { + rect->x += tx; + rect->y += ty; ++ ++ tx = _cairo_fixed_from_int (tx); ++ bbox.p1.x += tx; ++ bbox.p2.x += tx; ++ ++ ty = _cairo_fixed_from_int (ty); ++ bbox.p1.y += ty; ++ bbox.p2.y += ty; + } else { + _cairo_matrix_transform_bounding_box_fixed (&surface->ctm, + &bbox, NULL); +-- +cgit v0.9.0.2-2-gbebe +From 038e4991912656a3239ca82d60056ca129016ba6 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Mon, 09 Apr 2012 08:31:44 +0000 +Subject: pdf: avoid unnecessary use of patterns in mask groups + +--- +diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c +index 4930e72..78537ce 100644 +--- a/src/cairo-pdf-surface.c ++++ b/src/cairo-pdf-surface.c +@@ -5703,56 +5703,68 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface, + if (unlikely (status)) + return status; + +- pattern_res.id = 0; +- gstate_res.id = 0; +- status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL, +- &pattern_res, &gstate_res); +- if (unlikely (status)) +- return status; +- +- if (gstate_res.id != 0) { +- smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); +- if (unlikely (smask_group == NULL)) +- return _cairo_error (CAIRO_STATUS_NO_MEMORY); +- +- smask_group->width = group->width; +- smask_group->height = group->height; +- smask_group->operation = PDF_PAINT; +- smask_group->source = cairo_pattern_reference (group->mask); +- smask_group->source_res = pattern_res; +- status = _cairo_pdf_surface_add_smask_group (surface, smask_group); +- if (unlikely (status)) { +- _cairo_pdf_smask_group_destroy (smask_group); +- return status; +- } +- +- status = _cairo_pdf_surface_add_smask (surface, gstate_res); +- if (unlikely (status)) +- return status; +- +- status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (_can_paint_pattern (group->mask)) { ++ _cairo_output_stream_printf (surface->output, "q\n"); ++ status = _cairo_pdf_surface_paint_pattern (surface, ++ group->mask, ++ &group->extents, ++ FALSE); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "q /s%d gs /x%d Do Q\n", +- gstate_res.id, +- smask_group->group_res.id); ++ _cairo_output_stream_printf (surface->output, "Q\n"); + } else { +- status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE); ++ pattern_res.id = 0; ++ gstate_res.id = 0; ++ status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL, ++ &pattern_res, &gstate_res); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "%f %f %f %f re f\n", +- bbox.p1.x, +- bbox.p1.y, +- bbox.p2.x - bbox.p1.x, +- bbox.p2.y - bbox.p1.y); ++ if (gstate_res.id != 0) { ++ smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); ++ if (unlikely (smask_group == NULL)) ++ return _cairo_error (CAIRO_STATUS_NO_MEMORY); + +- status = _cairo_pdf_surface_unselect_pattern (surface); +- if (unlikely (status)) +- return status; ++ smask_group->width = group->width; ++ smask_group->height = group->height; ++ smask_group->operation = PDF_PAINT; ++ smask_group->source = cairo_pattern_reference (group->mask); ++ smask_group->source_res = pattern_res; ++ status = _cairo_pdf_surface_add_smask_group (surface, smask_group); ++ if (unlikely (status)) { ++ _cairo_pdf_smask_group_destroy (smask_group); ++ return status; ++ } ++ ++ status = _cairo_pdf_surface_add_smask (surface, gstate_res); ++ if (unlikely (status)) ++ return status; ++ ++ status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "q /s%d gs /x%d Do Q\n", ++ gstate_res.id, ++ smask_group->group_res.id); ++ } else { ++ status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "%f %f %f %f re f\n", ++ bbox.p1.x, ++ bbox.p1.y, ++ bbox.p2.x - bbox.p1.x, ++ bbox.p2.y - bbox.p1.y); ++ ++ status = _cairo_pdf_surface_unselect_pattern (surface); ++ if (unlikely (status)) ++ return status; ++ } + } + + status = _cairo_pdf_surface_close_group (surface, &mask_group); +@@ -5764,54 +5776,66 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface, + if (unlikely (status)) + return status; + +- pattern_res.id = 0; +- gstate_res.id = 0; +- status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL, +- &pattern_res, &gstate_res); +- if (unlikely (status)) +- return status; +- +- if (gstate_res.id != 0) { +- smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); +- if (unlikely (smask_group == NULL)) +- return _cairo_error (CAIRO_STATUS_NO_MEMORY); +- +- smask_group->operation = PDF_PAINT; +- smask_group->source = cairo_pattern_reference (group->source); +- smask_group->source_res = pattern_res; +- status = _cairo_pdf_surface_add_smask_group (surface, smask_group); +- if (unlikely (status)) { +- _cairo_pdf_smask_group_destroy (smask_group); +- return status; +- } +- +- status = _cairo_pdf_surface_add_smask (surface, gstate_res); +- if (unlikely (status)) +- return status; +- +- status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (_can_paint_pattern (group->source)) { ++ _cairo_output_stream_printf (surface->output, "q\n"); ++ status = _cairo_pdf_surface_paint_pattern (surface, ++ group->source, ++ &group->extents, ++ FALSE); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "q /s%d gs /x%d Do Q\n", +- gstate_res.id, +- smask_group->group_res.id); ++ _cairo_output_stream_printf (surface->output, "Q\n"); + } else { +- status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE); ++ pattern_res.id = 0; ++ gstate_res.id = 0; ++ status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL, ++ &pattern_res, &gstate_res); + if (unlikely (status)) + return status; + +- _cairo_output_stream_printf (surface->output, +- "%f %f %f %f re f\n", +- bbox.p1.x, +- bbox.p1.y, +- bbox.p2.x - bbox.p1.x, +- bbox.p2.y - bbox.p1.y); ++ if (gstate_res.id != 0) { ++ smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); ++ if (unlikely (smask_group == NULL)) ++ return _cairo_error (CAIRO_STATUS_NO_MEMORY); + +- status = _cairo_pdf_surface_unselect_pattern (surface); +- if (unlikely (status)) +- return status; ++ smask_group->operation = PDF_PAINT; ++ smask_group->source = cairo_pattern_reference (group->source); ++ smask_group->source_res = pattern_res; ++ status = _cairo_pdf_surface_add_smask_group (surface, smask_group); ++ if (unlikely (status)) { ++ _cairo_pdf_smask_group_destroy (smask_group); ++ return status; ++ } ++ ++ status = _cairo_pdf_surface_add_smask (surface, gstate_res); ++ if (unlikely (status)) ++ return status; ++ ++ status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "q /s%d gs /x%d Do Q\n", ++ gstate_res.id, ++ smask_group->group_res.id); ++ } else { ++ status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE); ++ if (unlikely (status)) ++ return status; ++ ++ _cairo_output_stream_printf (surface->output, ++ "%f %f %f %f re f\n", ++ bbox.p1.x, ++ bbox.p1.y, ++ bbox.p2.x - bbox.p1.x, ++ bbox.p2.y - bbox.p1.y); ++ ++ status = _cairo_pdf_surface_unselect_pattern (surface); ++ if (unlikely (status)) ++ return status; ++ } + } + + status = _cairo_pdf_surface_close_group (surface, NULL); +-- +cgit v0.9.0.2-2-gbebe +From 9fcbe25c2dcf831783bb0fd20af9754c0b5c409b Mon Sep 17 00:00:00 2001 +From: Maarten Bosmans <mkbosmans@gmail.com> +Date: Mon, 09 Apr 2012 19:33:50 +0000 +Subject: Protect code using dlfcn.h with CAIRO_HAS_DLSYM + +--- +diff --git a/configure.ac b/configure.ac +index cedfebe..5d2e6ec 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -52,6 +52,7 @@ AM_CONDITIONAL(CAIRO_HAS_DL, test "x$have_dl" = "xyes") + if test "x$have_dlsym" = "xyes"; then + AC_DEFINE([CAIRO_HAS_DLSYM], 1, [Define to 1 if dlsym is available]) + fi ++AM_CONDITIONAL(CAIRO_HAS_DLSYM, test "x$have_dlsym" = "xyes") + + dnl =========================================================================== + +diff --git a/util/Makefile.am b/util/Makefile.am +index f202f35..82d0a80 100644 +--- a/util/Makefile.am ++++ b/util/Makefile.am +@@ -12,20 +12,24 @@ endif + + if CAIRO_HAS_TRACE + SUBDIRS += cairo-trace ++if CAIRO_HAS_DLSYM + if CAIRO_HAS_SCRIPT_SURFACE + if CAIRO_HAS_TEE_SURFACE + SUBDIRS += cairo-fdr + endif + endif + endif ++endif + + if BUILD_SPHINX ++if CAIRO_HAS_DLSYM + if CAIRO_HAS_SCRIPT_SURFACE + if CAIRO_HAS_TEE_SURFACE + SUBDIRS += cairo-sphinx + endif + endif + endif ++endif + + AM_CPPFLAGS = -I$(top_srcdir)/src \ + -I$(top_builddir)/src \ +-- +cgit v0.9.0.2-2-gbebe +From c7b86ab97be1d3d3ccf43b652832f148a2fcf290 Mon Sep 17 00:00:00 2001 +From: Adrian Johnson <ajohnson@redneon.com> +Date: Tue, 10 Apr 2012 13:04:05 +0000 +Subject: any2ppm: fix missing enumeration warning + +--- +diff --git a/test/any2ppm.c b/test/any2ppm.c +index 6b61c47..2403347 100644 +--- a/test/any2ppm.c ++++ b/test/any2ppm.c +@@ -193,6 +193,7 @@ write_ppm (cairo_surface_t *surface, int fd) + break; + case CAIRO_FORMAT_A1: + case CAIRO_FORMAT_RGB16_565: ++ case CAIRO_FORMAT_RGB30: + case CAIRO_FORMAT_INVALID: + default: + return "unhandled image format"; +-- +cgit v0.9.0.2-2-gbebe +From 09de481ce5f6ed1c38c0d5bf3af7c60642c4c947 Mon Sep 17 00:00:00 2001 +From: Gilles Espinasse <g.esp@free.fr> +Date: Sat, 07 Apr 2012 21:09:51 +0000 +Subject: Cosmetic configure fix + +'how to allow undefined symbols in shared libraries' test should use CAIRO_CC_TRY_FLAG_SILENT or configure display is a bit out of order like this + +checking how to allow undefined symbols in shared libraries used by test suite... checking whether gcc supports -Wl,--allow-shlib-undefined... yes +-Wl,--allow-shlib-undefined + +Signed-off-by: Gilles Espinasse <g.esp@free.fr> +Signed-off-by: Uli Schlachter <psychon@znc.in> +--- +diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings +index f1b17f4..3b2c6f3 100644 +--- a/build/configure.ac.warnings ++++ b/build/configure.ac.warnings +@@ -89,7 +89,7 @@ AC_DEFINE_UNQUOTED([WARN_UNUSED_RESULT], [$cairo_cv_warn_unused_result], + + dnl check linker flags + AC_CACHE_CHECK([how to allow undefined symbols in shared libraries used by test suite], cairo_cv_test_undefined_ldflags, +- [CAIRO_CC_TRY_FLAG([-Wl,--allow-shlib-undefined], [], ++ [CAIRO_CC_TRY_FLAG_SILENT([-Wl,--allow-shlib-undefined], [], + [cairo_cv_test_undefined_ldflags="-Wl,--allow-shlib-undefined]")]) + CAIRO_TEST_UNDEFINED_LDFLAGS="$cairo_cv_test_undefined_ldflags" + AC_SUBST(CAIRO_TEST_UNDEFINED_LDFLAGS) +-- +cgit v0.9.0.2-2-gbebe +From 07fc63676dfdaa57ed919ad7be8f59c97c615473 Mon Sep 17 00:00:00 2001 +From: Uli Schlachter <psychon@znc.in> +Date: Wed, 11 Apr 2012 19:37:55 +0000 +Subject: xlib: Disable fallback compositor with xlib-xcb + +When xlib-xcb is enabled, this is just dead code which is never used. Thus, this +shouldn't hurt. However, this does include cairo-xlib-private.h. Shouldn't be a +problem? Well, that header contains static inline functions which some compiler +on Solaris will emit even when they are unused. + +This brings us to the real problem: That static inline function refers to a +function which isn't compiled with xlib-xcb and thus linking fails with +undefined symbols. + +This can be reproduced with GCC by adding a call to +_cairo_xlib_screen_put_gc(NULL, NULL, 0, 0); to +_cairo_xlib_fallback_compositor_get. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48489 +Signed-off-by: Uli Schlachter <psychon@znc.in> +--- +diff --git a/src/cairo-xlib-fallback-compositor.c b/src/cairo-xlib-fallback-compositor.c +index 5391926..7d45cd1 100644 +--- a/src/cairo-xlib-fallback-compositor.c ++++ b/src/cairo-xlib-fallback-compositor.c +@@ -42,6 +42,8 @@ + + #include "cairoint.h" + ++#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS ++ + #include "cairo-xlib-private.h" + + #include "cairo-compositor-private.h" +@@ -52,3 +54,5 @@ _cairo_xlib_fallback_compositor_get (void) + /* XXX Do something interesting here to mitigate fallbacks ala xcb */ + return &_cairo_fallback_compositor; + } ++ ++#endif /* !CAIRO_HAS_XLIB_XCB_FUNCTIONS */ +-- +cgit v0.9.0.2-2-gbebe diff --git a/extra/cifs-utils/PKGBUILD b/extra/cifs-utils/PKGBUILD index 8c9b3dcf8..f8b72b637 100644 --- a/extra/cifs-utils/PKGBUILD +++ b/extra/cifs-utils/PKGBUILD @@ -1,17 +1,20 @@ -# $Id: PKGBUILD 151756 2012-03-02 08:44:51Z tpowa $ +# $Id: PKGBUILD 158736 2012-05-08 14:32:25Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=cifs-utils -pkgver=5.3 -pkgrel=2 +pkgver=5.4 +pkgrel=1 pkgdesc="CIFS filesystem user-space tools" arch=(i686 x86_64 'mips64el') url="http://wiki.samba.org/index.php/LinuxCIFS_utils" license=('GPL') depends=('libcap-ng' 'keyutils' 'krb5' 'talloc' 'libwbclient') -source=(ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/$pkgname-$pkgver.tar.bz2) +source=(ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/$pkgname-$pkgver.tar.bz2 + mount.cifs-fix-up-some-D_FORTIFY_SOURCE-2-warnings.patch) build() { cd "$srcdir/$pkgname-$pkgver" + # add fedora build patch + patch -Np1 -i ../mount.cifs-fix-up-some-D_FORTIFY_SOURCE-2-warnings.patch ./configure --prefix=/usr make } @@ -22,4 +25,5 @@ package() { # set mount.cifs uid, to enable none root mounting form fstab chmod +s $pkgdir/sbin/mount.cifs } -md5sums=('e1a428558a96d2d28ccdaacdc47ea0b7') +md5sums=('dde98336c833b59777114145cb8f3c64' + 'b1b0a5a21aedd5421ff6e1e1a8720771') diff --git a/extra/cifs-utils/mount.cifs-fix-up-some-D_FORTIFY_SOURCE-2-warnings.patch b/extra/cifs-utils/mount.cifs-fix-up-some-D_FORTIFY_SOURCE-2-warnings.patch new file mode 100644 index 000000000..8ca3b2674 --- /dev/null +++ b/extra/cifs-utils/mount.cifs-fix-up-some-D_FORTIFY_SOURCE-2-warnings.patch @@ -0,0 +1,72 @@ +From 900875dbda261dd8a9283bdda3c3dbe551fe0f7c Mon Sep 17 00:00:00 2001 +From: Jeff Layton <jlayton@samba.org> +Date: Wed, 18 Apr 2012 21:41:05 -0400 +Subject: [PATCH] mount.cifs: fix up some -D_FORTIFY_SOURCE=2 warnings + +...and add -D_FORTIFY_SOURCE=2 to the default $CFLAGS. + +Signed-off-by: Jeff Layton <jlayton@samba.org> +--- + Makefile.am | 2 +- + mount.cifs.c | 10 ++++++---- + mtab.c | 4 +++- + 3 files changed, 10 insertions(+), 6 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index d95142a..05729ca 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,4 +1,4 @@ +-AM_CFLAGS = -Wall -Wextra -Werror ++AM_CFLAGS = -Wall -Wextra -Werror -D_FORTIFY_SOURCE=2 + ACLOCAL_AMFLAGS = -I aclocal + + root_sbindir = $(ROOTSBINDIR) +diff --git a/mount.cifs.c b/mount.cifs.c +index f0b073e..4f1ea40 100644 +--- a/mount.cifs.c ++++ b/mount.cifs.c +@@ -928,9 +928,9 @@ parse_options(const char *data, struct parsed_mount_info *parsed_info) + } + } else { + /* domain/username%password */ +- const int max = MAX_DOMAIN_SIZE + +- MAX_USERNAME_SIZE + +- MOUNT_PASSWD_SIZE + 2; ++ const unsigned int max = MAX_DOMAIN_SIZE + ++ MAX_USERNAME_SIZE + ++ MOUNT_PASSWD_SIZE + 2; + if (strnlen(value, max + 1) >= max + 1) { + fprintf(stderr, "username too long\n"); + return EX_USAGE; +@@ -1603,8 +1603,10 @@ add_mtab(char *devname, char *mountpoint, unsigned long flags, const char *fstyp + mountent.mnt_passno = 0; + rc = addmntent(pmntfile, &mountent); + if (rc) { ++ int ignore __attribute__((unused)); ++ + fprintf(stderr, "unable to add mount entry to mtab\n"); +- ftruncate(fd, statbuf.st_size); ++ ignore = ftruncate(fd, statbuf.st_size); + rc = EX_FILEIO; + } + tmprc = my_endmntent(pmntfile, statbuf.st_size); +diff --git a/mtab.c b/mtab.c +index de545b7..3d42ac0 100644 +--- a/mtab.c ++++ b/mtab.c +@@ -271,8 +271,10 @@ my_endmntent(FILE *stream, off_t size) + + /* truncate file back to "size" -- best effort here */ + if (rc) { ++ int ignore __attribute__((unused)); ++ + rc = errno; +- ftruncate(fd, size); ++ ignore = ftruncate(fd, size); + } + + endmntent(stream); +-- +1.7.7.6 + diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD index 583913187..bab18a03e 100644 --- a/extra/dovecot/PKGBUILD +++ b/extra/dovecot/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 157092 2012-04-23 16:33:36Z andyrtr $ +# $Id: PKGBUILD 158862 2012-05-12 13:27:15Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Paul Mattal <paul@mattal.com> # Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com> # Contributor: GARETTE Emmanuel <gnunux at laposte dot net> pkgname=dovecot -pkgver=2.1.5 +pkgver=2.1.6 pkgrel=1 pkgdesc="An IMAP and POP3 server written with security primarily in mind" arch=('i686' 'x86_64' 'mips64el') @@ -20,8 +20,8 @@ provides=('imap-server' 'pop3-server') options=('!libtool') install=$pkgname.install source=(http://dovecot.org/releases/2.1/${pkgname}-${pkgver}.tar.gz{,.sig} dovecot.sh) -md5sums=('c857e3442f2f14b3e46f1154b13b0b4b' - '4ef0a9647b82e0a1bdc667492a151881' +md5sums=('56d2a8d5273d39caa41d6a8dd9f4442c' + 'f4eed12984b9ddf6eea37fc9f1828af8' '587159e84e2da6f83d70b3c706ba87cc') build() { diff --git a/extra/fcitx/PKGBUILD b/extra/fcitx/PKGBUILD index 2c15d7d4a..fd64605c5 100644 --- a/extra/fcitx/PKGBUILD +++ b/extra/fcitx/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 157020 2012-04-23 09:27:29Z ibiru $ +# $Id: PKGBUILD 158796 2012-05-10 06:10:24Z eric $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: csslayer <wengxt AT gmail com> pkgbase=fcitx pkgname=('fcitx' 'fcitx-gtk2' 'fcitx-gtk3' 'fcitx-qt') -pkgver=4.2.2 +pkgver=4.2.3 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://code.google.com/p/fcitx/" license=('GPL') -makedepends=('cmake' 'intltool' 'doxygen' 'gtk2' 'gtk3' 'qt' 'dbus-glib' 'icu') +makedepends=('cmake' 'intltool' 'doxygen' 'gtk2' 'gtk3' 'qt' 'icu') source=(http://fcitx.googlecode.com/files/${pkgbase}-${pkgver}.tar.xz) -sha1sums=('09d2e7110f652027ea7c285c5845070f8a353f38') +sha1sums=('8cd33487d1d6ad9c9c63743af8d76e667de4b859') build() { cd "${srcdir}" @@ -21,11 +21,17 @@ build() { -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DENABLE_OPENCC=OFF \ + -DENABLE_TEST=ON \ -DENABLE_GTK3_IM_MODULE=ON \ -DENABLE_QT_IM_MODULE=ON make } +check() { + cd "${srcdir}"/build + make test +} + package_fcitx() { pkgdesc="Free Chinese Input Toy of X - Input Method Server for X window system" depends=('dbus-core' 'pango' 'libxinerama' 'gtk-update-icon-cache' \ @@ -40,7 +46,7 @@ package_fcitx() { package_fcitx-gtk2() { pkgdesc='GTK2 IM Module for fcitx' - depends=('gtk2' 'dbus-glib' 'fcitx') + depends=('gtk2' 'fcitx') install=fcitx-gtk2.install cd "${srcdir}"/build/src/frontend/gtk2 @@ -49,7 +55,7 @@ package_fcitx-gtk2() { package_fcitx-gtk3() { pkgdesc='GTK3 IM Module for fcitx' - depends=('gtk3' 'dbus-glib' 'fcitx') + depends=('gtk3' 'fcitx') install=fcitx-gtk3.install cd "${srcdir}"/build/src/frontend/gtk3 diff --git a/extra/ffmpeg/PKGBUILD b/extra/ffmpeg/PKGBUILD index f3061e903..ac4623450 100644 --- a/extra/ffmpeg/PKGBUILD +++ b/extra/ffmpeg/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 153659 2012-03-17 13:50:07Z ibiru $ +# $Id: PKGBUILD 158782 2012-05-09 17:58:43Z ibiru $ # Maintainer : Ionut Biru <ibiru@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> # Contributor: Paul Mattal <paul@archlinux.org> pkgname=ffmpeg -pkgver=20120317 +pkgver=20120509 pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix" arch=('i686' 'x86_64' 'mips64el') @@ -18,7 +18,7 @@ if [ "${CARCH}" != "mips64el" ]; then fi #git clone git://git.videolan.org/ffmpeg.git source=(ftp://ftp.archlinux.org/other/ffmpeg/$pkgname-$pkgver.tar.xz) -md5sums=('2a2ef83ae73713fcef6bba8c430665ce') +md5sums=('a35359e424608f369d380f03e4dc9966') build() { cd "$pkgname" diff --git a/extra/git/PKGBUILD b/extra/git/PKGBUILD index 4d6d06c80..0a09ff856 100644 --- a/extra/git/PKGBUILD +++ b/extra/git/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158077 2012-05-02 14:24:00Z dan $ +# $Id: PKGBUILD 158835 2012-05-12 03:22:50Z dan $ # Maintainer: Dan McGee <dan@archlinux.org> pkgname=git -pkgver=1.7.10.1 +pkgver=1.7.10.2 pkgrel=1 pkgdesc="the fast distributed version control system" arch=(i686 x86_64 'mips64el') @@ -99,7 +99,7 @@ package() { install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf } -sha1sums=('870361f93fad7999f121bc7bc91a743feda68bdb' - '5bff761bc40a6b3cfe35ba824357dcf611dbd5d2' +sha1sums=('e4b7f746ff4e356baaddcad0b2911376efde031b' + '6cc3f80185bdd1a608cf373b05313b2adc82b898' 'f2b41828bd912b72e2cb3e14677739c4f370de66' '149e2da1ecb48872ddb31c0945afeaad1f9653d7') diff --git a/extra/glade/PKGBUILD b/extra/glade/PKGBUILD index 60303906d..c8b68a936 100644 --- a/extra/glade/PKGBUILD +++ b/extra/glade/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 156788 2012-04-23 09:05:39Z ibiru $ +# $Id: PKGBUILD 158695 2012-05-07 14:01:07Z ibiru $ # Maintainer: Douglas Soares de Andrade <douglas@archlinux.org> pkgname=glade -pkgver=3.12.0 +pkgver=3.12.1 pkgrel=1 pkgdesc="User interface builder for GTK+ and GNOME." arch=(i686 x86_64 mips64el) @@ -14,7 +14,7 @@ options=('!libtool') url="http://glade.gnome.org/" install=glade.install source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('70a820a0007fa3ed7761c92b011fe35ac1532038cab2f9ab30f4d29d5799d44d') +sha256sums=('27e89fb743adb9996c418aa70cde8ce3c0769103f3691cc8011e6c6846600e76') build() { cd "$pkgname-$pkgver" diff --git a/extra/graphviz/PKGBUILD b/extra/graphviz/PKGBUILD index 85b90ae82..7e3da5f1f 100644 --- a/extra/graphviz/PKGBUILD +++ b/extra/graphviz/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 150341 2012-02-17 03:33:20Z bisson $ +# $Id: PKGBUILD 158786 2012-05-09 18:48:24Z pierre $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: kevin <kevin@archlinux.org> # Contributor: John Proctor <jproctor@prium.net> pkgname=graphviz pkgver=2.28.0 -pkgrel=8 +pkgrel=9 pkgdesc='Graph visualization software' url='http://www.graphviz.org/' license=('custom:EPL') diff --git a/extra/gtk3/PKGBUILD b/extra/gtk3/PKGBUILD index af3455eb8..0bdb78742 100644 --- a/extra/gtk3/PKGBUILD +++ b/extra/gtk3/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 158335 2012-05-03 17:45:08Z heftig $ +# $Id: PKGBUILD 158899 2012-05-12 20:17:26Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=gtk3 -pkgver=3.4.2 -pkgrel=2 +pkgver=3.4.3 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3)" arch=('i686' 'x86_64' 'mips64el') url="http://www.gtk.org/" @@ -15,7 +15,7 @@ backup=(etc/gtk-3.0/settings.ini) license=('LGPL') source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz settings.ini wacom.patch) -sha256sums=('b1ab72bc61434418160ff0c7edfd93c74758ed8a35e2ed3d07e3e218c2705480' +sha256sums=('846010442a96590469cde16ed6a1fdfe09397e435165459f04d31cfa5713799f' 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621' '86bda95a14a99d0f596c4ecb2ed715689f71c207c65dfc90a39d4ae7f1c0c0f5') build() { diff --git a/extra/gtkhtml4/PKGBUILD b/extra/gtkhtml4/PKGBUILD index 5a7a167d2..3f89ca219 100644 --- a/extra/gtkhtml4/PKGBUILD +++ b/extra/gtkhtml4/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 156876 2012-04-23 09:08:07Z ibiru $ +# $Id: PKGBUILD 158752 2012-05-09 07:43:11Z jgc $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=gtkhtml4 _pkgbasename=gtkhtml pkgver=4.4.1 -pkgrel=1 +pkgrel=2 pkgdesc="A lightweight HTML renderer/editor widget for GTK3" arch=(i686 x86_64 'mips64el') license=('GPL') @@ -12,11 +12,14 @@ depends=('gtk3' 'enchant' 'iso-codes' 'gnome-icon-theme' 'libsoup') makedepends=('intltool') url="http://www.gnome.org" options=('!libtool') -source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz) -sha256sums=('2fb3286c5ab8b6349a694156f803e1162c5a234d30548eb0afdf82e139923236') +source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-$pkgver.tar.xz + fix-selection-behaviour-in-iframe.patch) +sha256sums=('2fb3286c5ab8b6349a694156f803e1162c5a234d30548eb0afdf82e139923236' + 'ed1d9a4515f9137aaa94511f421b610af04091c56573ff9b74ba104a2ca1b207') build() { cd "$_pkgbasename-$pkgver" + patch -Np1 -i "${srcdir}/fix-selection-behaviour-in-iframe.patch" ./configure --prefix=/usr --sysconfdir=/etc \ --libexecdir=/usr/lib/gtkhtml4 \ --localstatedir=/var --disable-static diff --git a/extra/gtkhtml4/fix-selection-behaviour-in-iframe.patch b/extra/gtkhtml4/fix-selection-behaviour-in-iframe.patch new file mode 100644 index 000000000..06bce4a0f --- /dev/null +++ b/extra/gtkhtml4/fix-selection-behaviour-in-iframe.patch @@ -0,0 +1,35 @@ +From 9ec36544203d4c1b98aa843c2c3ff0a4f725da68 Mon Sep 17 00:00:00 2001 +From: Sam Thursfield <sam.thursfield@codethink.co.uk> +Date: Thu, 03 May 2012 19:04:20 +0000 +Subject: Bug 672582 - Fix selection behavior inside <iframe> + +Since kinetic scrolling was introduced in Gtk+, GtkScrolledWindow +has had its own GdkWindow. This means we need to use the allocation +of the GtkScrolledWindow rather than its child GtkHTML widget when we +want to translate pointer coordinates relative to the iframe, because +a widget's GtkAllocation is relative to the parent GdkWindow. + +(cherry picked from commit 7b7b37745d2f46914be314e4d7aef7a575529345) +--- +diff --git a/gtkhtml/gtkhtml.c b/gtkhtml/gtkhtml.c +index 697b16e..6284855 100644 +--- a/gtkhtml/gtkhtml.c ++++ b/gtkhtml/gtkhtml.c +@@ -1823,9 +1823,14 @@ shift_to_iframe_parent (GtkWidget *widget, + gint *y) + { + while (GTK_HTML (widget)->iframe_parent) { ++ GtkWidget *scrolled_window; + GtkAllocation allocation; + +- gtk_widget_get_allocation (widget, &allocation); ++ scrolled_window = gtk_widget_get_parent (widget); ++ ++ g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), widget); ++ ++ gtk_widget_get_allocation (scrolled_window, &allocation); + + if (x) + *x += allocation.x - GTK_HTML (widget)->engine->x_offset; +-- +cgit v0.9.0.2 diff --git a/extra/gvfs/PKGBUILD b/extra/gvfs/PKGBUILD index 2929c1c63..367d5cdc7 100644 --- a/extra/gvfs/PKGBUILD +++ b/extra/gvfs/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 157347 2012-04-27 16:15:04Z ibiru $ +# $Id: PKGBUILD 158913 2012-05-13 02:45:39Z eric $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=gvfs @@ -10,11 +10,14 @@ license=('LGPL') makedepends=('avahi' 'bluez' 'dbus-glib' 'fuse' 'intltool' 'libarchive' 'libcdio' 'libgphoto2' 'libimobiledevice' 'libsoup-gnome' 'smbclient' 'udisks2') url="http://www.gnome.org" options=(!libtool) -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz) -sha256sums=('998b9d0089d21e451e455b6bc5f421eb08bcb3e5ff0aceda98e424cc42ef6616') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz + gvfs-1.12.2-afp-g_clear_object.patch) +sha256sums=('998b9d0089d21e451e455b6bc5f421eb08bcb3e5ff0aceda98e424cc42ef6616' + '6a93963644317d9e55aebac723008bd94cf97d42349dbf48ab6996fa5d9eed89') build() { cd "$pkgbase-$pkgver" + patch -p1 -i ../gvfs-1.12.2-afp-g_clear_object.patch ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --disable-static \ --libexecdir=/usr/lib/gvfs \ diff --git a/extra/gvfs/gvfs-1.12.2-afp-g_clear_object.patch b/extra/gvfs/gvfs-1.12.2-afp-g_clear_object.patch new file mode 100644 index 000000000..09e11d888 --- /dev/null +++ b/extra/gvfs/gvfs-1.12.2-afp-g_clear_object.patch @@ -0,0 +1,35 @@ +From 01161473ed33ee682f340e6f12edcba5334475e0 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen <mclasen@redhat.com> +Date: Mon, 30 Apr 2012 06:09:30 -0400 +Subject: [PATCH] afp: Use g_clear_object properly + +g_clear_object expects the address of a pointer. A recent +change in its definition makes gcc complain about this. +(cherry picked from commit 7fe5deeae25f2396027f667d8960d2ec84c64716) +--- + daemon/gvfsafpvolume.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/daemon/gvfsafpvolume.c b/daemon/gvfsafpvolume.c +index 3fd33f2..5207459 100644 +--- a/daemon/gvfsafpvolume.c ++++ b/daemon/gvfsafpvolume.c +@@ -1082,7 +1082,7 @@ create_directory_get_filedir_parms_cb (GObject *source_object, GAsyncResult *res + return; + + error: +- g_clear_object (info); ++ g_clear_object (&info); + g_simple_async_result_take_error (simple, err); + g_simple_async_result_complete (simple); + g_object_unref (simple); +@@ -3033,4 +3033,4 @@ g_vfs_afp_volume_read_from_fork_finish (GVfsAfpVolume *volume, + *bytes_read = g_simple_async_result_get_op_res_gssize (simple); + + return TRUE; +-} +\ No newline at end of file ++} +-- +1.7.8.6 + diff --git a/extra/ifplugd/PKGBUILD b/extra/ifplugd/PKGBUILD index 1e7d6ad04..1487fbef6 100644 --- a/extra/ifplugd/PKGBUILD +++ b/extra/ifplugd/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 157472 2012-04-28 18:54:17Z dreisner $ +# $Id: PKGBUILD 158689 2012-05-07 09:54:25Z dreisner $ # Contributor: Manolis Tzanidakis # Contributor: kevin <kevin@archlinux.org> # Maintainer: pkgname=ifplugd pkgver=0.28 -pkgrel=10 +pkgrel=11 pkgdesc="A daemon which brings up/down network interfaces upon cable insertion/removal." arch=('i686' 'x86_64' 'mips64el') url="http://0pointer.de/lennart/projects/ifplugd" @@ -15,7 +15,7 @@ backup=('etc/ifplugd/ifplugd.conf' 'etc/ifplugd/ifplugd.action') options=('!makeflags') source=($url/${pkgname}-${pkgver}.tar.gz 'ifplugd' 'ifplugd.action' 'ifplugd-0.28-interface.patch' 'ifdown.01-route.sh' 'ifup.01-route.sh' 'ifup.02-ntpdate.sh') md5sums=('df6f4bab52f46ffd6eb1f5912d4ccee3' - 'ef27f40434ca85ccaf57a7e388eb001e' + '2281cd3eda9e3403857863e1a1bc00be' '6f98767c4ea2cf0580f73ced81efd21a' '54eb22844b5aeed161c0b80aa9008570' 'd6ce6c7bd481a0b3944c944c5b277c0b' diff --git a/extra/ifplugd/ifplugd b/extra/ifplugd/ifplugd index 667fc1f53..f7c34ade5 100644 --- a/extra/ifplugd/ifplugd +++ b/extra/ifplugd/ifplugd @@ -16,9 +16,11 @@ PID=$(pidof -o %PPID ifplugd) [[ -r $cfg ]] && . "$cfg" # discover interfaces to monitor -# (replacing INTERFACES with net_ifs, since AL +# (replacing INTERFACES with NET_IFS, since AL # already uses it in /etc/rc.conf) -if [[ -z $net_ifs ]]; then +if [[ $NET_IFS ]]; then + net_ifs=($NET_IFS) +else net_ifs=(/sys/class/net/!(lo)) net_ifs=("${net_ifs[@]##*/}") fi diff --git a/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD index 08a2aaac4..01a15a47e 100644 --- a/extra/kdebase-workspace/PKGBUILD +++ b/extra/kdebase-workspace/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 158377 2012-05-03 22:30:58Z andrea $ +# $Id: PKGBUILD 158761 2012-05-09 08:46:41Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> pkgname=kdebase-workspace _pkgname=kde-workspace pkgver=4.8.3 -pkgrel=1 +pkgrel=2 pkgdesc="KDE Base Workspace" arch=('i686' 'x86_64' 'mips64el') url='http://www.kde.org' @@ -29,7 +29,8 @@ backup=('usr/share/config/kdm/kdmrc' options=('emptydirs') source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz" 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' - 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch') + 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch' + 'fix-krunner-crash.patch') sha1sums=('23dbd023f76769ba6ea77dbc11314eca504ad3d2' '5db3a245201bd4a50e65aa2ef583cf5490e4f646' '712a90999bd429883dcef5dcaf288aace332ced8' @@ -37,13 +38,16 @@ sha1sums=('23dbd023f76769ba6ea77dbc11314eca504ad3d2' '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8' 'd7b5883f7e65c6839b1f65f94d58026673dd0226' 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee' - 'd509dac592bd8b310df27991b208c95b6d907514') + 'd509dac592bd8b310df27991b208c95b6d907514' + 'f898561d2b32dead8195f0610141edf7d423d46c') build() { cd "${srcdir}"/${_pkgname}-${pkgver} patch -p1 -i "${srcdir}"/kdm-xinitrd.patch patch -p0 -i "${srcdir}"/fixpath.patch patch -p0 -i "${srcdir}"/terminate-server.patch + + patch -p1 -i "${srcdir}"/fix-krunner-crash.patch cd "${srcdir}" mkdir build diff --git a/extra/kdebase-workspace/fix-krunner-crash.patch b/extra/kdebase-workspace/fix-krunner-crash.patch new file mode 100644 index 000000000..2bdf0b512 --- /dev/null +++ b/extra/kdebase-workspace/fix-krunner-crash.patch @@ -0,0 +1,13 @@ +diff --git a/libs/plasmagenericshell/panelshadows.cpp b/libs/plasmagenericshell/panelshadows.cpp +index ee55571..2f45153 100644 +--- a/libs/plasmagenericshell/panelshadows.cpp ++++ b/libs/plasmagenericshell/panelshadows.cpp +@@ -122,7 +122,7 @@ void PanelShadows::Private::initPixmap(const QString &element) + { + #ifdef Q_WS_X11 + QPixmap pix = q->pixmap(element); +- if (pix.handle() == 0) { ++ if (!pix.isNull() && pix.handle() == 0) { + Pixmap xPix = XCreatePixmap(QX11Info::display(), QX11Info::appRootWindow(), pix.width(), pix.height(), 32); + QPixmap tempPix = QPixmap::fromX11Pixmap(xPix, QPixmap::ExplicitlyShared); + tempPix.fill(Qt::transparent); diff --git a/extra/kdeplasma-applets-networkmanagement/PKGBUILD b/extra/kdeplasma-applets-networkmanagement/PKGBUILD index 236d31b6e..d163a353c 100644 --- a/extra/kdeplasma-applets-networkmanagement/PKGBUILD +++ b/extra/kdeplasma-applets-networkmanagement/PKGBUILD @@ -4,7 +4,7 @@ pkgname=kdeplasma-applets-networkmanagement epoch=1 -pkgver=0.9.0.1 +pkgver=0.9.0.2 pkgrel=1 pkgdesc="KDE control panel and widget network connections" arch=('i686' 'x86_64' 'mips64el') @@ -17,7 +17,7 @@ optdepends=('mobile-broadband-provider-info: Database of mobile broadband servic 'openconnect: Cisco AnyConnect compatible VPN client') install=${pkgname}.install source=("http://download.kde.org/unstable/networkmanagement/${pkgver}/src/networkmanagement-${pkgver}.tar.bz2") -sha1sums=('75e16397d00de06947fa183f09632caed11d8857') +sha1sums=('58b530d0dc97cc742f24413a54c58f20318cfa14') build() { cd "${srcdir}" diff --git a/extra/libvncserver/PKGBUILD b/extra/libvncserver/PKGBUILD index 5ce12bee4..c3c807c50 100644 --- a/extra/libvncserver/PKGBUILD +++ b/extra/libvncserver/PKGBUILD @@ -1,19 +1,19 @@ -# $Id: PKGBUILD 145736 2011-12-29 15:45:13Z andrea $ +# $Id: PKGBUILD 158727 2012-05-08 13:54:05Z andrea $ # Maintainer: # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=libvncserver -pkgver=0.9.8.2 +pkgver=0.9.9 pkgrel=1 pkgdesc="A cross-platform C libraries that allow you to easily implement VNC server" arch=('i686' 'x86_64' 'mips64el') url="http://libvncserver.sourceforge.net/" license=('GPL') -depends=('libjpeg' 'gnutls' 'libgcrypt') +depends=('libjpeg' 'gnutls' 'libgcrypt' 'openssl') options=('!libtool') source=("http://downloads.sourceforge.net/${pkgname}/LibVNCServer-${pkgver}.tar.gz") -md5sums=('dfed1dcc25cb338c7fdbcda2c3df7f50') +md5sums=('70422169b122765693d2a294d13e3714') build() { cd "${srcdir}/LibVNCServer-${pkgver}" diff --git a/extra/libvpx/PKGBUILD b/extra/libvpx/PKGBUILD index 4c1dd8889..93d3a494f 100644 --- a/extra/libvpx/PKGBUILD +++ b/extra/libvpx/PKGBUILD @@ -1,7 +1,7 @@ -# $Id: PKGBUILD 149274 2012-02-06 17:33:28Z ibiru $ +# $Id: PKGBUILD 158895 2012-05-12 18:37:10Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=libvpx -pkgver=1.0.0 +pkgver=1.1.0 pkgrel=1 pkgdesc="The VP8 Codec SDK" arch=('i686' 'x86_64' 'mips64el') @@ -11,7 +11,7 @@ depends=('glibc') makedepends=('yasm') source=(http://webm.googlecode.com/files/$pkgname-v$pkgver.tar.bz2 mips64el.patch) -sha1sums=('2919e11074fef72fc61ef1a75160050ffaad6074' +sha1sums=('356af5f770c50cd021c60863203d8f30164f6021' '4fd775826a4d737102f831c451235a58947f2cde') build() { @@ -33,7 +33,7 @@ build() { } package() { - cd "$srcdir/$pkgname-v$pkgver" + cd "$pkgname-v$pkgver" make DIST_DIR="$pkgdir/usr" install install -D -m 0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } diff --git a/extra/libxi/PKGBUILD b/extra/libxi/PKGBUILD index 4f70b7654..90b195551 100644 --- a/extra/libxi/PKGBUILD +++ b/extra/libxi/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 153296 2012-03-12 20:52:30Z andyrtr $ +# $Id: PKGBUILD 158868 2012-05-12 16:25:29Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=libxi -pkgver=1.6.0 +pkgver=1.6.1 pkgrel=1 pkgdesc="X11 Input extension library" arch=('i686' 'x86_64' 'mips64el') @@ -12,7 +12,7 @@ makedepends=('pkgconfig' 'xorg-util-macros') options=(!libtool) license=('custom') source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2) -sha1sums=('b7edf48f93e8abd13ca688fa7f597452c4b74346') +sha1sums=('4b53b41fdaa3acc86606c696c68d5eed11454612') build() { cd "${srcdir}/libXi-${pkgver}" diff --git a/extra/mpg123/PKGBUILD b/extra/mpg123/PKGBUILD index f1327deb8..53e73640f 100644 --- a/extra/mpg123/PKGBUILD +++ b/extra/mpg123/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 158020 2012-05-01 05:58:27Z eric $ +# $Id: PKGBUILD 158903 2012-05-12 20:49:50Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=mpg123 -pkgver=1.14.0 +pkgver=1.14.2 pkgrel=1 pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3" arch=('i686' 'x86_64' 'mips64el') @@ -17,8 +17,8 @@ conflicts=('mpg321') provides=('mpg321') options=('!libtool') source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig}) -sha1sums=('49a3d6791cc948336aa34914582f97ac6bb2a8ff' - '85386be9450abd66d8738f5cf1adc82aa8f5fb53') +sha1sums=('887a453e49e3d49d539a712ee66a8d9da16e3325' + '878c6ca9e8fb9f29f34953d8fe39d01411086baf') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/mysql/PKGBUILD b/extra/mysql/PKGBUILD index 43461bfb6..cba826fb8 100644 --- a/extra/mysql/PKGBUILD +++ b/extra/mysql/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 156076 2012-04-13 07:51:21Z andrea $ +# $Id: PKGBUILD 158713 2012-05-08 07:40:05Z andrea $ # Maintainer: # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> pkgbase=mysql pkgname=('libmysqlclient' 'mysql-clients' 'mysql') -pkgver=5.5.23 +pkgver=5.5.24 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') license=('GPL') @@ -15,7 +15,7 @@ options=('!libtool') source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz" 'mysqld' 'my.cnf') -md5sums=('b614481967dc146c148027b598397b54' +md5sums=('dc84f8a0305e054c859533944e79f803' '2234207625baa29b2ff7d7b4f088abce' '1c949c0dbea5206af0db14942d9927b6') diff --git a/extra/nautilus/PKGBUILD b/extra/nautilus/PKGBUILD index b6c7c8c43..30ce2f8a2 100644 --- a/extra/nautilus/PKGBUILD +++ b/extra/nautilus/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 156938 2012-04-23 09:09:28Z ibiru $ +# $Id: PKGBUILD 158697 2012-05-07 15:42:16Z ibiru $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=nautilus pkgver=3.4.1 -pkgrel=1 +pkgrel=2 pkgdesc="GNOME file manager" arch=('i686' 'x86_64' 'mips64el') license=('GPL') @@ -13,11 +13,14 @@ url="http://www.gnome.org" groups=('gnome') options=('!libtool' '!emptydirs') install=nautilus.install -source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz) -sha256sums=('02581c9475e9c4250960555b248378a6a1c63a5c029728ec48347c78ca77392d') +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz + samba-crash.patch) +sha256sums=('02581c9475e9c4250960555b248378a6a1c63a5c029728ec48347c78ca77392d' + 'e437ced7bbebe49d2454b4daecd10cff39d1c427e9631fe0fe5325072ed6aefd') build() { cd "$pkgname-$pkgver" + patch -Np1 -i "$srcdir/samba-crash.patch" ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --disable-static \ --libexecdir=/usr/lib/nautilus \ diff --git a/extra/nautilus/samba-crash.patch b/extra/nautilus/samba-crash.patch new file mode 100644 index 000000000..b10d39008 --- /dev/null +++ b/extra/nautilus/samba-crash.patch @@ -0,0 +1,32 @@ +From 4e59e4cfc7bc68534664d9f72d0c7ea680b79db3 Mon Sep 17 00:00:00 2001 +From: Cosimo Cecchi <cosimoc@gnome.org> +Date: Fri, 04 May 2012 18:38:43 +0000 +Subject: places-sidebar: don't double unref GMount objects + +Fixes a lot of reported crashers with NFS/Samba volumes. + +https://bugzilla.gnome.org/show_bug.cgi?id=674659 +--- +diff --git a/src/nautilus-places-sidebar.c b/src/nautilus-places-sidebar.c +index 61f3658..672a4b0 100644 +--- a/src/nautilus-places-sidebar.c ++++ b/src/nautilus-places-sidebar.c +@@ -774,7 +774,7 @@ update_places (NautilusPlacesSidebar *sidebar) + root = g_mount_get_default_location (mount); + + if (!g_file_is_native (root)) { +- network_mounts = g_list_prepend (network_mounts, g_object_ref (mount)); ++ network_mounts = g_list_prepend (network_mounts, mount); + continue; + } + +@@ -856,7 +856,6 @@ update_places (NautilusPlacesSidebar *sidebar) + name, icon, mount_uri, + NULL, NULL, mount, 0, tooltip); + g_object_unref (root); +- g_object_unref (mount); + g_object_unref (icon); + g_free (name); + g_free (mount_uri); +-- +cgit v0.9.0.2 diff --git a/extra/ntfs-3g_ntfsprogs/PKGBUILD b/extra/ntfs-3g_ntfsprogs/PKGBUILD index d6e7a3f35..bacb9b298 100644 --- a/extra/ntfs-3g_ntfsprogs/PKGBUILD +++ b/extra/ntfs-3g_ntfsprogs/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 156015 2012-04-11 14:16:02Z tomegun $ +# $Id: PKGBUILD 158725 2012-05-08 12:53:46Z tomegun $ # Maintainer: Tom Gundersen <teg@jklm.no> # Contributor: Ronald van Haren <ronald.archlinux.org> # Contributor: Thomas Bächler <thomas.archlinux.org> @@ -6,7 +6,7 @@ pkgbase=ntfs-3g_ntfsprogs pkgname=('ntfs-3g' 'ntfsprogs') pkgver=2012.1.15 -pkgrel=2 +pkgrel=3 url="http://www.tuxera.com" arch=('i686' 'x86_64' 'mips64el') license=('GPL2') @@ -20,7 +20,7 @@ build() { cd "$srcdir/$pkgbase-$pkgver" ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \ --with-fuse=external --disable-static \ - --mandir=/usr/share/man + --enable-posix-acls --mandir=/usr/share/man make } @@ -33,9 +33,13 @@ package_ntfs-3g() { done mv "$pkgdir"/lib/* "$pkgdir"/usr/lib/ - rm -rf "$pkgdir"/lib + mv "$pkgdir"/bin/* "$pkgdir"/usr/bin/ + rm -rf "$pkgdir"/{lib,{s,}bin} - ln -s /bin/ntfs-3g "$pkgdir/sbin/mount.ntfs" + cd "$pkgdir"/usr/bin + ln -s ntfs-3g mount.ntfs + ln -s ntfs-3g mount.ntfs-3g + ln -s lowntfs-3g mount.lowntfs-3g } package_ntfsprogs() { @@ -44,4 +48,7 @@ package_ntfsprogs() { cd "$srcdir/$pkgbase-$pkgver/ntfsprogs" make DESTDIR="$pkgdir" install + + mv "$pkgdir"/sbin/* "$pkgdir"/usr/bin/ + rm -rf "$pkgdir"/sbin } diff --git a/extra/nx/PKGBUILD b/extra/nx/PKGBUILD index 664358563..5807ad4a0 100644 --- a/extra/nx/PKGBUILD +++ b/extra/nx/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 157433 2012-04-28 09:58:35Z andyrtr $ +# $Id: PKGBUILD 158856 2012-05-12 13:09:28Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgbase=nx pkgname=('libxcomp' 'nxproxy' 'nx-x11' 'nx-xcompext' 'nxagent' 'nx-headers') -pkgver=3.5.0.12 -pkgrel=2 +pkgver=3.5.0.13 +pkgrel=1 arch=('i686' 'x86_64') url="http://wiki.x2go.org/" license=('GPL') @@ -14,7 +14,7 @@ makedepends=('libjpeg-turbo' 'libpng' 'bash' 'perl' # runtime dependencies from ) source=(http://code.x2go.org/releases/source/nx-libs/nx-libs_$pkgver-full.tar.gz nx-x11.ld.so.conf.d) -md5sums=('a2011e034a318016cf2260c30a567301' +md5sums=('2c80e570d35a25989f8606e1f3620026' 'f2ec60c7e2d81bef2f7292d2b33681a6') build() { diff --git a/extra/openconnect/PKGBUILD b/extra/openconnect/PKGBUILD index 4b9bbf1f2..13b72b32a 100644 --- a/extra/openconnect/PKGBUILD +++ b/extra/openconnect/PKGBUILD @@ -1,28 +1,28 @@ -# $Id: PKGBUILD 145723 2011-12-28 18:31:54Z ibiru $ +# $Id: PKGBUILD 158780 2012-05-09 17:43:27Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgname=openconnect -pkgver=3.15 +pkgver=3.18 pkgrel=1 epoch=1 pkgdesc="Open client for Cisco AnyConnect VPN" arch=('i686' 'x86_64' 'mips64el') license=('GPL') url="http://www.infradead.org/openconnect.html" -depends=('libxml2' 'openssl' 'libproxy') +depends=('libxml2' 'openssl' 'libproxy' 'vpnc') makedepends=('intltool') options=('!libtool' '!emptydirs') source=(ftp://ftp.infradead.org/pub/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('94245f4bac42a288100becab0b4ca29a') +md5sums=('5a440ad946cfec0f1ee7ee5519081cf1') build() { - cd "$srcdir/$pkgname-$pkgver" + cd "$pkgname-$pkgver" ./configure --prefix=/usr \ --disable-static make } package() { - cd "$srcdir/$pkgname-$pkgver" + cd "$pkgname-$pkgver" make DESTDIR="$pkgdir" install } diff --git a/extra/php-apc/PKGBUILD b/extra/php-apc/PKGBUILD index 3e2013369..6125d8117 100644 --- a/extra/php-apc/PKGBUILD +++ b/extra/php-apc/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 156069 2012-04-12 18:41:47Z pierre $ +# $Id: PKGBUILD 158790 2012-05-09 18:48:32Z pierre $ # Maintainer: Pierre Schmitz <pierre@archlinux.de> pkgname=php-apc pkgver=3.1.10 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64' 'mips64el') pkgdesc='A free, open, and robust framework for caching and optimizing PHP intermediate code' url='http://pecl.php.net/package/APC' diff --git a/extra/php-xcache/PKGBUILD b/extra/php-xcache/PKGBUILD new file mode 100644 index 000000000..12c602b92 --- /dev/null +++ b/extra/php-xcache/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: $ +# Maintainer: Pierre Schmitz <pierre@archlinux.de> + +pkgname=php-xcache +pkgver=2.0.0 +pkgrel=3 +arch=('i686' 'x86_64') +pkgdesc='A PHP opcode cacher' +url='http://xcache.lighttpd.net/' +depends=('php') +license=('custom') +source=("http://xcache.lighttpd.net/pub/Releases/${pkgver}/xcache-${pkgver}.tar.bz2" + 'xcache.ini') +backup=('etc/php/conf.d/xcache.ini') +md5sums=('0e30cdff075c635e475d70a5c37d0252' + 'bba7ead3e592a7980aa91a8600973587') + +build() { + cd $srcdir/xcache-$pkgver + phpize + ./configure --prefix=/usr + make +} + +# check() { +# cd $srcdir/xcache-$pkgver +# make test +# } + +package() { + cd $srcdir/xcache-$pkgver + make INSTALL_ROOT=$pkgdir install + + install -Dm644 $srcdir/xcache.ini $pkgdir/etc/php/conf.d/xcache.ini + + install -dm755 $pkgdir/usr/share/php-xcache/admin + install -m644 admin/* $pkgdir/usr/share/php-xcache/admin/ + + install -Dm644 COPYING $pkgdir/usr/share/licenses/php-xcache/COPYING +} diff --git a/extra/php-xcache/xcache.ini b/extra/php-xcache/xcache.ini new file mode 100644 index 000000000..c2677a5ca --- /dev/null +++ b/extra/php-xcache/xcache.ini @@ -0,0 +1,3 @@ +;zend_extension=/usr/lib/php/modules/xcache.so +xcache.size=64M +xcache.var_size=64M diff --git a/extra/php/PKGBUILD b/extra/php/PKGBUILD index 32068ea90..d01d75bb5 100644 --- a/extra/php/PKGBUILD +++ b/extra/php/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 158338 2012-05-03 18:28:53Z pierre $ +# $Id: PKGBUILD 158788 2012-05-09 18:48:29Z pierre $ # Maintainer: Pierre Schmitz <pierre@archlinux.de> pkgbase=php @@ -21,44 +21,35 @@ pkgname=('php' 'php-sqlite' 'php-tidy' 'php-xsl') -pkgver=5.3.12 -_suhosinver=5.3.9-0.9.10 +pkgver=5.4.3 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') license=('PHP') url='http://www.php.net' -makedepends=('apache' 'imap' 'postgresql-libs' 'libldap' 'postfix' +makedepends=('apache' 'imap' 'postgresql-libs' 'libldap' 'postfix' 'libvpx' 'sqlite' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds' 'libmcrypt' 'tidyhtml' 'aspell' 'libltdl' 'libpng' 'libjpeg' 'icu' 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2') source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2" - "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz" - "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz.sig" 'php.ini.patch' 'apache.conf' 'rc.d.php-fpm' 'php-fpm.conf.in.patch' - 'logrotate.d.php-fpm' 'suhosin.patch') -md5sums=('cf02c29be279c506cbd4ffc2819d7c82' - 'c099b3d7eac95018ababd41ded7f3066' - 'c15d18f846be1d69144a5d0056ee6506' - 'ffc338e8ce2a990f6f2a486355bbab65' + 'logrotate.d.php-fpm') +md5sums=('51f9488bf8682399b802c48656315cac' + '0b0bc7a917fc592bdf11dcd3c5c255e9' 'dec2cbaad64e3abf4f0ec70e1de4e8e9' 'b01be5f816988fcee7e78225836e5e27' - '740ec5fe2ecfd9d7febd4081c90ec65b' - '07c4e412909ac65a44ec90e7a2c4bade' - '07ca7da608553b4cb92797e655eb94f1') + '59b3a25f9eb3afc02f1adf9ee699808c' + '07c4e412909ac65a44ec90e7a2c4bade') build() { phpconfig="--srcdir=../${pkgbase}-${pkgver} \ + --config-cache \ --prefix=/usr \ --sysconfdir=/etc/php \ --localstatedir=/var \ --with-layout=GNU \ --with-config-file-path=/etc/php \ --with-config-file-scan-dir=/etc/php/conf.d \ - --enable-inline-optimization \ - --disable-debug \ --disable-rpath \ - --disable-static \ - --enable-shared \ --mandir=/usr/share/man \ --without-pear \ " @@ -70,36 +61,31 @@ build() { --enable-ftp=shared \ --enable-gd-native-ttf \ --enable-intl=shared \ - --enable-json=shared \ - --enable-mbregex \ --enable-mbstring \ - --enable-pdo \ --enable-phar=shared \ --enable-posix=shared \ - --enable-session \ --enable-shmop=shared \ --enable-soap=shared \ --enable-sockets=shared \ - --enable-sqlite-utf8 \ --enable-sysvmsg=shared \ --enable-sysvsem=shared \ --enable-sysvshm=shared \ - --enable-xml \ --enable-zip=shared \ --with-bz2=shared \ --with-curl=shared \ --with-db4=/usr \ --with-enchant=shared,/usr \ - --with-freetype-dir=shared,/usr \ + --with-freetype-dir=/usr \ --with-gd=shared \ - --with-gdbm=shared \ + --with-gdbm \ --with-gettext=shared \ --with-gmp=shared \ --with-iconv=shared \ --with-icu-dir=/usr \ - --with-imap-ssl=shared \ + --with-imap-ssl \ --with-imap=shared \ - --with-jpeg-dir=shared,/usr \ + --with-jpeg-dir=/usr \ + --with-vpx-dir=/usr \ --with-ldap=shared \ --with-ldap-sasl \ --with-mcrypt=shared \ @@ -115,19 +101,15 @@ build() { --with-pdo-pgsql=shared \ --with-pdo-sqlite=shared,/usr \ --with-pgsql=shared \ - --with-png-dir=shared,/usr \ + --with-png-dir=/usr \ --with-pspell=shared \ - --with-regex=php \ --with-snmp=shared \ --with-sqlite3=shared,/usr \ - --with-sqlite=shared \ --with-tidy=shared \ --with-unixODBC=shared,/usr \ --with-xmlrpc=shared \ --with-xsl=shared \ --with-zlib \ - --without-db2 \ - --without-db3 \ " EXTENSION_DIR=/usr/lib/php/modules @@ -135,14 +117,8 @@ build() { PEAR_INSTALLDIR=/usr/share/pear export PEAR_INSTALLDIR - # fix the suhosin patch - patch -i ${srcdir}/suhosin.patch - cd ${srcdir}/${pkgbase}-${pkgver} - # apply suhosin patch - patch -F3 -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch - # adjust paths patch -p0 -i ${srcdir}/php.ini.patch patch -p0 -i ${srcdir}/php-fpm.conf.in.patch @@ -280,11 +256,8 @@ package_php-pear() { backup=('etc/php/pear.conf') cd ${srcdir}/build-pear - make -j1 install-pear INSTALL_ROOT=${pkgdir} - local i - while read i; do - [ ! -e "$i" ] || rm -rf "$i" - done < <(find ${pkgdir} -name '.*') + make install-pear INSTALL_ROOT=${pkgdir} + rm -rf ${pkgdir}/usr/share/pear/.{channels,depdb,depdblock,filemap,lock,registry} } package_php-enchant() { @@ -294,7 +267,7 @@ package_php-enchant() { } package_php-gd() { - depends=('php' 'libpng' 'libjpeg' 'freetype2') + depends=('php' 'libpng' 'libjpeg' 'freetype2' 'libvpx') pkgdesc='gd module for PHP' install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so } diff --git a/extra/php/php-fpm.conf.in.patch b/extra/php/php-fpm.conf.in.patch index b923edb38..4e0f4a888 100644 --- a/extra/php/php-fpm.conf.in.patch +++ b/extra/php/php-fpm.conf.in.patch @@ -1,5 +1,5 @@ --- sapi/fpm/php-fpm.conf.in 2011-10-08 23:04:10.000000000 +0200 -+++ sapi/fpm/php-fpm.conf.in 2012-01-11 10:50:14.905161442 +0100 ++++ sapi/fpm/php-fpm.conf.in 2012-03-01 19:50:48.549947258 +0100 @@ -12,7 +12,7 @@ ; Relative path can also be used. They will be prefixed by: ; - the global prefix if it's been set (-p arguement) @@ -26,7 +26,7 @@ +;listen = 127.0.0.1:9000 +listen = /var/run/php-fpm/php-fpm.sock - ; Set listen(2) backlog. A value of '-1' means unlimited. + ; Set listen(2) backlog. ; Default Value: 128 (-1 on FreeBSD and OpenBSD) @@ -151,9 +152,9 @@ ; BSD-derived systems allow connections regardless of permissions. diff --git a/extra/php/php.ini.patch b/extra/php/php.ini.patch index 3dc5b6560..bbaae2152 100644 --- a/extra/php/php.ini.patch +++ b/extra/php/php.ini.patch @@ -1,6 +1,6 @@ ---- php.ini-production 2011-12-15 11:31:02.000000000 +0100 -+++ php.ini-production 2012-01-11 10:43:02.069936043 +0100 -@@ -376,7 +376,7 @@ +--- php.ini-production 2012-03-29 06:17:59.000000000 +0200 ++++ php.ini-production 2012-03-30 10:46:21.181340861 +0200 +@@ -305,7 +305,7 @@ ; or per-virtualhost web server configuration file. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. ; http://php.net/open-basedir @@ -9,7 +9,7 @@ ; This directive allows you to disable certain functions for security reasons. ; It receives a comma-delimited list of function names. This directive is -@@ -793,7 +793,7 @@ +@@ -702,7 +702,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" @@ -18,7 +18,7 @@ ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" -@@ -816,7 +816,7 @@ +@@ -725,7 +725,7 @@ ; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir @@ -27,7 +27,7 @@ ; On windows: ; extension_dir = "ext" -@@ -950,53 +950,49 @@ +@@ -859,51 +859,47 @@ ; If you only provide the name of the extension, PHP will look for it in its ; default extension directory. ; @@ -55,7 +55,6 @@ -;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client -;extension=php_openssl.dll -;extension=php_pdo_firebird.dll --;extension=php_pdo_mssql.dll -;extension=php_pdo_mysql.dll -;extension=php_pdo_oci.dll -;extension=php_pdo_odbc.dll @@ -71,7 +70,6 @@ - -;extension=php_soap.dll -;extension=php_sockets.dll --;extension=php_sqlite.dll -;extension=php_sqlite3.dll -;extension=php_sybase_ct.dll -;extension=php_tidy.dll @@ -92,7 +90,6 @@ +;extension=iconv.so +;extension=imap.so +;extension=intl.so -+extension=json.so +;extension=ldap.so +;extension=mcrypt.so +;extension=mssql.so @@ -113,7 +110,6 @@ +;extension=soap.so +;extension=sockets.so +;extension=sqlite3.so -+;extension=sqlite.so +;extension=sysvmsg.so +;extension=sysvsem.so +;extension=sysvshm.so diff --git a/extra/pidgin/PKGBUILD b/extra/pidgin/PKGBUILD index c3bd974da..cdc06f895 100644 --- a/extra/pidgin/PKGBUILD +++ b/extra/pidgin/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 156957 2012-04-23 09:10:00Z ibiru $ +# $Id: PKGBUILD 158683 2012-05-07 06:27:02Z foutrelis $ # Maintainer: Evangelos Foutras <evangelos@foutrelis.com> # Contributor: Ionut Biru <ibiru@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> @@ -6,8 +6,8 @@ # Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl> pkgname=('pidgin' 'libpurple' 'finch') -pkgver=2.10.3 -pkgrel=2 +pkgver=2.10.4 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://pidgin.im/" license=('GPL') @@ -16,21 +16,12 @@ makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm' 'farstream' 'avahi' 'tk' 'ca-certificates' 'intltool' 'networkmanager') options=('!libtool') -source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2 - port-to-farstream-v3.patch) -sha256sums=('0f67d96231fea3945c2735e6a3b4bd92590ef489fa1511fa69aa6a543cb4168b' - '4c11c10da01855afe865408f29f514672b736830105523fe48aa74676d5052ca') +source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2) +sha256sums=('8fbef835c8dfa2281532ad7064d664477d72015d6dcd4345362dcfe658aaee0e') build() { cd "$srcdir/$pkgname-$pkgver" - # Apply patch for farsight -> farstream transition - # http://developer.pidgin.im/ticket/14936 - patch -Np1 -i "$srcdir/port-to-farstream-v3.patch" - - # The farstream patch changes configure.ac - autoreconf -vi - # Use Python 2 sed -i 's/env python$/&2/' */plugins/*.py \ libpurple/purple-{remote,notifications-example,url-handler} @@ -54,9 +45,7 @@ package_pidgin(){ depends=('libpurple' 'startup-notification' 'gtkspell' 'libxss' 'libsm' 'gstreamer0.10' 'hicolor-icon-theme') optdepends=('aspell: for spelling correction' - 'ca-certificates: SSL CA certificates' - 'gstreamer0.10-good-plugins: video and voice support' - 'tk: Tcl/Tk scripting support') + 'gstreamer0.10-good-plugins: video and voice support') install=pidgin.install cd "$srcdir/pidgin-$pkgver" @@ -79,7 +68,9 @@ package_libpurple(){ pkgdesc="IM library extracted from Pidgin" depends=('farstream' 'libsasl' 'libidn' 'dbus-glib' 'nss') optdepends=('avahi: Bonjour protocol support' - 'dbus-python: for purple-remote and purple-url-handler') + 'ca-certificates: SSL CA certificates' + 'dbus-python: for purple-remote and purple-url-handler' + 'tk: Tcl/Tk scripting support') cd "$srcdir/pidgin-$pkgver" @@ -91,9 +82,6 @@ package_libpurple(){ package_finch(){ pkgdesc="A ncurses-based messaging client" depends=("libpurple=$pkgver-$pkgrel" 'python2' 'gstreamer0.10') - optdepends=('avahi: Bonjour protocol support' - 'ca-certificates: SSL CA certificates' - 'tk: Tcl/Tk scripting support') cd "$srcdir/pidgin-$pkgver" diff --git a/extra/pulseaudio/PKGBUILD b/extra/pulseaudio/PKGBUILD index 9ab731477..945cd757a 100644 --- a/extra/pulseaudio/PKGBUILD +++ b/extra/pulseaudio/PKGBUILD @@ -1,5 +1,5 @@ -# $Id: PKGBUILD 157751 2012-04-29 06:33:27Z allan $ -# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com> +# $Id: PKGBUILD 158827 2012-05-11 21:11:56Z heftig $ +# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> # Contributor: Corrado Primier <bardo@aur.archlinux.org> # Contributor: William Rea <sillywilly@gmail.com> @@ -7,23 +7,24 @@ pkgbase=pulseaudio pkgname=(pulseaudio libpulse) pkgdesc="A featureful, general-purpose sound server" -pkgver=1.1 -pkgrel=4 -arch=(i686 x86_64 mips64el) -url="http://pulseaudio.org/" +pkgver=2.0 +pkgrel=1 +arch=(i686 x86_64) +url="http://www.freedesktop.org/wiki/Software/PulseAudio" license=(GPL LGPL) makedepends=(libasyncns libcap attr libxtst libsm libsamplerate libtool rtkit - speex tdb udev dbus-core xcb-util avahi bluez gconf intltool jack - openssl fftw orc json-c gtk2) -[ "$CARCH" = "mips64el" ] || makedepends+=(lirc-utils) + speex tdb udev dbus-core avahi bluez gconf intltool jack + openssl fftw orc json-c gtk2 webrtc-audio-processing + libsystemd) +[ "$CARCH" != "mips64el" ] && makedepends+=(lirc-utils) options=(!emptydirs !libtool) source=(http://freedesktop.org/software/$pkgbase/releases/$pkgbase-$pkgver.tar.xz - $pkgbase.xinit) -sha256sums=('6fe531136f6ebce2d35872a2d2c914278cdc5dcdd5eea516dc52c81f9001f5ee' + pulseaudio.xinit) +sha256sums=('28b42edd42f4879a6884af5f0ec11801ac001eb7582881215b36649aa37e2061' 'a0db6cdc74fbf0ca10e2343c08e1e228f109221c6c0ff91b0bfade5c4bdf03cf') build() { - cd "$srcdir/$pkgbase-$pkgver" + cd $pkgbase-$pkgver ./configure --prefix=/usr \ --sysconfdir=/etc \ @@ -44,7 +45,7 @@ build() { package_pulseaudio() { depends=("libpulse=$pkgver-$pkgrel" rtkit libltdl speex tdb udev fftw orc - libsamplerate) + libsamplerate webrtc-audio-processing libsystemd) optdepends=('avahi: zeroconf support' 'bluez: bluetooth support' 'gconf: configuration through gconf (paprefs)' @@ -55,7 +56,7 @@ package_pulseaudio() { backup=(etc/pulse/{daemon.conf,default.pa,system.pa}) install=pulseaudio.install - cd "$srcdir/$pkgbase-$pkgver" + cd $pkgbase-$pkgver make -j1 DESTDIR="$pkgdir" install # Lower resample quality, saves CPU @@ -80,15 +81,20 @@ package_pulseaudio() { ### Split libpulse - mkdir -p "$srcdir"/libpulse/{etc/pulse,usr/{lib,share/man/man5}} + mkdir -p "$srcdir"/libpulse/{etc/pulse,usr/{lib/pulseaudio,share/man/man5}} mv {"$pkgdir","$srcdir/libpulse"}/etc/pulse/client.conf - mv "$pkgdir"/usr/lib/libpulse{,dsp,-simple,-mainloop-glib}.so* \ - "$pkgdir"/usr/lib/libpulsecommon-*.so \ + mv "$pkgdir"/usr/lib/libpulse{,-simple,-mainloop-glib}.so* \ "$srcdir/libpulse/usr/lib" + mv "$pkgdir"/usr/lib/pulseaudio/libpulsedsp.so \ + "$pkgdir"/usr/lib/pulseaudio/libpulsecommon-*.so \ + "$srcdir/libpulse/usr/lib/pulseaudio" + + mv {"$pkgdir","$srcdir/libpulse"}/usr/lib/cmake mv {"$pkgdir","$srcdir/libpulse"}/usr/lib/pkgconfig + mv {"$pkgdir","$srcdir/libpulse"}/usr/include mv {"$pkgdir","$srcdir/libpulse"}/usr/share/man/man5/pulse-client.conf.5 diff --git a/extra/pygobject/PKGBUILD b/extra/pygobject/PKGBUILD index db9df4f35..007f7e12c 100644 --- a/extra/pygobject/PKGBUILD +++ b/extra/pygobject/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 157407 2012-04-28 09:26:56Z allan $ +# $Id: PKGBUILD 158812 2012-05-10 19:18:57Z ibiru $ # Maintainer: Ionut Biru <ibiru@archlinux.org> pkgbase=pygobject pkgname=(python-gobject python2-gobject pygobject-devel) -pkgver=3.2.0 -pkgrel=2 +pkgver=3.2.1 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="https://live.gnome.org/PyGObject" license=('LGPL') makedepends=('python' 'python2' 'python-cairo' 'python2-cairo' 'gobject-introspection') source=(http://ftp.gnome.org/pub/gnome/sources/$pkgbase/${pkgver%.*}/$pkgbase-$pkgver.tar.xz) options=('!libtool') -sha256sums=('1a2140c4c4ce0c1a5d7abe74eeb7a7040f426cb17943c3ae7e57695b355151c3') +sha256sums=('0f07401289fa33e8caee7a9342f5c838bb44cd0a386cb99093505edb5e42817a') build() { cp -a "$pkgbase-$pkgver" python2-build diff --git a/extra/qemu-kvm/PKGBUILD b/extra/qemu-kvm/PKGBUILD index 826b062c7..46ced3666 100644 --- a/extra/qemu-kvm/PKGBUILD +++ b/extra/qemu-kvm/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 158632 2012-05-05 03:24:58Z allan $ +# $Id: PKGBUILD 158721 2012-05-08 10:22:47Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=qemu-kvm pkgver=1.0.1 -pkgrel=2 +pkgrel=3 pkgdesc="Latest KVM QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation." arch=(i686 x86_64 'mips64el') license=('GPL2' 'LGPL2.1') url="http://www.linux-kvm.org" -depends=('libjpeg' 'libpng' 'libsasl' 'curl' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux' 'libpulse') -makedepends=('git' 'iasl' 'texi2html' 'perl' 'python2') +depends=('libjpeg' 'libpng' 'libsasl' 'curl' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux' 'libpulse' 'seabios') +makedepends=('texi2html' 'perl' 'python2') backup=('etc/qemu/target-x86_64.conf') install=qemu-kvm.install conflicts=('qemu') @@ -29,26 +29,13 @@ build() --audio-card-list=ac97,sb16,es1370,hda \ --enable-docs make - - # Use latest seabios version - # https://bugs.archlinux.org/task/27616 - cd "${srcdir}/" - git clone git://git.seabios.org/seabios.git - cd seabios - #find 'tools/' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' - sed -i -e 's/python/python2/g' Makefile - make clean - make } package() { cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}" install - - # Use latest seabios version - # https://bugs.archlinux.org/task/27616 - cp "${srcdir}/seabios/out/bios.bin" "${pkgdir}/usr/share/qemu/bios.bin" + rm "${pkgdir}/usr/share/qemu/bios.bin" # symbolic link for backwards compatibility ln -s qemu-system-x86_64 "${pkgdir}/usr/bin/qemu-kvm" diff --git a/extra/qemu/PKGBUILD b/extra/qemu/PKGBUILD index f5e145be5..4d7de3849 100644 --- a/extra/qemu/PKGBUILD +++ b/extra/qemu/PKGBUILD @@ -1,14 +1,14 @@ -# $Id: PKGBUILD 158630 2012-05-05 03:24:55Z allan $ +# $Id: PKGBUILD 158723 2012-05-08 10:41:26Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> pkgname=qemu pkgver=1.0.1 -pkgrel=2 +pkgrel=3 pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation." arch=('i686' 'x86_64' 'mips64el') license=('GPL2' 'LGPL2.1') url="http://wiki.qemu.org/Index.html" -makedepends=('iasl' 'git' 'texi2html' 'perl' 'python2') -depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux' 'curl' 'libsasl' 'libgl' 'libpulse') +makedepends=('texi2html' 'perl' 'python2') +depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux' 'curl' 'libsasl' 'libgl' 'libpulse' 'seabios') backup=('etc/qemu/target-x86_64.conf') install=qemu.install source=(http://wiki.qemu.org/download/${pkgname}-${pkgver}.tar.gz @@ -24,22 +24,12 @@ build() --audio-card-list=ac97,sb16,es1370,hda \ --enable-docs make - # Use latest seabios version - # https://bugs.archlinux.org/task/27616 - cd "${srcdir}/" - git clone git://git.seabios.org/seabios.git - cd seabios - #find 'tools/' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' - make clean - make PYTHON=python2 } package() { cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}" install - # Use latest seabios version - # https://bugs.archlinux.org/task/27616 - cp "${srcdir}/seabios/out/bios.bin" "${pkgdir}/usr/share/qemu/bios.bin" + rm "${pkgdir}/usr/share/qemu/bios.bin" install -D -m644 "${srcdir}/65-kvm.rules" \ "${pkgdir}/usr/lib/udev/rules.d/65-kvm.rules" diff --git a/extra/slim/PKGBUILD b/extra/slim/PKGBUILD index 35a9ab373..62d5e5a82 100644 --- a/extra/slim/PKGBUILD +++ b/extra/slim/PKGBUILD @@ -1,62 +1,50 @@ -# $Id: PKGBUILD 148930 2012-02-05 11:56:28Z ibiru $ +# $Id: PKGBUILD 158801 2012-05-10 13:44:49Z tpowa $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: Thayer Williams <thayer@archlinux.org> # Contributor: Alexander Fehr <pizzapunk gmail com> # Contributor: Hugo Ideler <hugoideler@dse.nl> pkgname=slim -pkgver=1.3.2 -pkgrel=7 +pkgver=1.3.3 +pkgrel=3 pkgdesc='Desktop-independent graphical login manager for X11' arch=('i686' 'x86_64' 'mips64el') url='http://slim.berlios.de/' license=('GPL2') -depends=('pam' 'libxmu' 'libpng' 'libjpeg' 'libxft') +depends=('consolekit' 'pam' 'libxmu' 'libpng' 'libjpeg' 'libxft') +makedepends=('cmake') backup=('etc/slim.conf' 'etc/logrotate.d/slim' 'etc/pam.d/slim') source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz" 'rc.d' 'pam.d' 'logrotate' + 'slim.service' 'ptr_pam.patch' - 'no-host.patch' - 'restart.patch' - 'sigterm.patch' 'session-name.patch' - 'tty-slowness.patch' - 'slim-1.3.2-libpng15.patch') -sha1sums=('e421d5487732c8317f8f591906661e014b036358' - '6fe0ba83509af634bce47be34e30995965bffc79' - 'a0e991ef0ac5120465a3be014a26e70ba073b6ae' - 'b969cc902c1d9915a5609141a652c77b2732407b' - '640668c984a13593a1bfba8d3b503c005d5f401e' - 'b86eddd083fb9f6259e46c735f55ebe76c655bd3' - '2d526bc0c498bf307ee50e2d22b4f53ffa0c4435' - '0b35048723c527fb824c5e0f9b9064f751871785' - 'fdd35562ce010babaeb793f92f9906fdcdaf3f9f' - '213fefe8533c845ea8c40585b6a8097820d5e5d2' - '3cd674e548f4e0aadbbd32a67b4efd1ed263afef') + 'fix-numlock-1.3.3.patch') + install=install build() { - cd "${srcdir}/${pkgname}-${pkgver}" - - sed -i -e 's/png12/png15/g' Makefile + cd "${srcdir}/${pkgname}-${pkgver}" patch -p1 -i ../ptr_pam.patch # FS#23995: pointer mishandling confuses PAM - patch -p1 -i ../no-host.patch # cf patch: do not set PAM host - patch -p1 -i ../restart.patch # cf patch: restart X server if killed - patch -p1 -i ../sigterm.patch # FS#23984: do not wait for input when SIGTERM'd patch -p1 -i ../session-name.patch # FS#26693: fix default session name - patch -p1 -i ../tty-slowness.patch # FS#18313: fix sluggish TTY after slim start - patch -p0 -i ../slim-1.3.2-libpng15.patch - - make USE_PAM=1 + patch -p1 -i ../fix-numlock-1.3.3.patch # FS#29818: fix numlock handling + cd ${srcdir} + mkdir build + cd build + cmake ../${pkgbase}-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DUSE_PAM=yes -DUSE_CONSOLEKIT=yes + make } package() { - cd "${srcdir}/${pkgname}-${pkgver}" - - make DESTDIR="${pkgdir}" MANDIR=/usr/share/man install + cd ${srcdir}/build/ + make DESTDIR="${pkgdir}" install install -D -m755 ../rc.d "${pkgdir}"/etc/rc.d/slim install -D -m644 ../pam.d "${pkgdir}"/etc/pam.d/slim @@ -65,4 +53,14 @@ package() { # Provide sane defaults sed -i 's|#xserver_arguments.*|xserver_arguments -nolisten tcp vt07|' "${pkgdir}"/etc/slim.conf sed -i 's|/var/run/slim.lock|/var/lock/slim.lock|' "${pkgdir}"/etc/slim.conf + # install systemd files + install -D -m644 ${srcdir}/slim.service ${pkgdir}/usr/lib/systemd/system/slim.service } +md5sums=('ce53e44c1e4a2eacf5bb7688ee2a5de8' + 'd8ea9c4dee2811524b67f4f666311a1f' + 'ebfff3417058619a1328284ae0e2f48e' + '43da096480bf72c3ccec8ad8400f34f0' + 'aef560f5a765582b2a7fc1fac5b323a7' + 'ae4b237d472ec5d373e30080aa0ff804' + 'ebcb6829028615686de7b64ceeaaf8ed' + '6c29c93370e44ed310ff30132424b619') diff --git a/extra/slim/fix-numlock-1.3.3.patch b/extra/slim/fix-numlock-1.3.3.patch new file mode 100644 index 000000000..179fffcbf --- /dev/null +++ b/extra/slim/fix-numlock-1.3.3.patch @@ -0,0 +1,46 @@ +--- trunk/app.cpp 2012/02/21 23:57:28 211 ++++ trunk/app.cpp 2012/04/16 23:28:34 212 +@@ -332,6 +332,15 @@ + Login(); + } + } ++ ++ // Set NumLock ++ string numlock = cfg->getOption("numlock"); ++ if (numlock == "on") { ++ NumLock::setOn(Dpy); ++ } else if (numlock == "off") { ++ NumLock::setOff(Dpy); ++ } ++ + // Start looping + int panelclosed = 1; + Panel::ActionType Action; +@@ -971,13 +980,6 @@ + break; + } + +- string numlock = cfg->getOption("numlock"); +- if (numlock == "on") { +- NumLock::setOn(Dpy); +- } else if (numlock == "off") { +- NumLock::setOff(Dpy); +- } +- + delete args; + + serverStarted = true; +--- trunk/numlock.cpp 2012/02/21 23:57:28 211 ++++ trunk/numlock.cpp 2012/04/16 23:28:34 212 +@@ -68,9 +68,9 @@ + return; + + if( flag == true ) +- XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0); +- else + XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, mask); ++ else ++ XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0); + } + + void NumLock::setOn(Display *dpy) { diff --git a/extra/slim/pam.d b/extra/slim/pam.d index 78a981f74..4a6b53d0f 100644 --- a/extra/slim/pam.d +++ b/extra/slim/pam.d @@ -7,4 +7,3 @@ password required pam_unix.so session required pam_limits.so session required pam_unix.so session optional pam_loginuid.so -session optional pam_ck_connector.so diff --git a/extra/slim/slim.service b/extra/slim/slim.service new file mode 100644 index 000000000..26093a8bf --- /dev/null +++ b/extra/slim/slim.service @@ -0,0 +1,10 @@ +[Unit] +Description=SLiM Simple Login Manager +Requires=dev-tty7.device +After=dev-tty7.device systemd-user-sessions.service + +[Service] +ExecStart=/usr/bin/slim -nodaemon + +[Install] +WantedBy=graphical.target diff --git a/extra/taglib/PKGBUILD b/extra/taglib/PKGBUILD index 992b6bceb..fa8a2da1a 100644 --- a/extra/taglib/PKGBUILD +++ b/extra/taglib/PKGBUILD @@ -1,9 +1,10 @@ -# $Id: PKGBUILD 154265 2012-03-25 08:45:02Z eric $ -# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# $Id: PKGBUILD 158844 2012-05-12 11:47:35Z tomegun $ +# Maintainer: Tom Gundersen <teg@jklm.no> +# Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=taglib -pkgver=1.7.1 +pkgver=1.7.2 pkgrel=1 pkgdesc="A Library for reading and editing the meta-data of several popular audio formats" arch=('i686' 'x86_64' 'mips64el') @@ -14,8 +15,6 @@ makedepends=('cmake' 'pkg-config') options=('!libtool') source=("http://developer.kde.org/~wheeler/files/src/$pkgname-$pkgver.tar.gz" 'ape-idev2.patch') -sha1sums=('bafe0958eb884981cade83d45c18ee34165479b8' - '9bdae5c2da6bb4e1a2ea38a5a587773b850c3518') build() { cd "${srcdir}"/${pkgname}-${pkgver} @@ -36,3 +35,5 @@ package() { cd "${srcdir}"/build make DESTDIR="${pkgdir}" install } +md5sums=('b0a9e797d3833fb933c7c3176de3d720' + 'c7c165d99acf01456351ba39ff7056cb') diff --git a/extra/telepathy-rakia/0001-Check-for-gio-to-avoid-linking-issue.patch b/extra/telepathy-rakia/0001-Check-for-gio-to-avoid-linking-issue.patch new file mode 100644 index 000000000..7f3b033bd --- /dev/null +++ b/extra/telepathy-rakia/0001-Check-for-gio-to-avoid-linking-issue.patch @@ -0,0 +1,29 @@ +From 797d2b3792a0d4c4260075c2b05a1aba63715363 Mon Sep 17 00:00:00 2001 +From: Ionut Biru <ibiru@archlinux.org> +Date: Wed, 9 May 2012 17:34:10 +0000 +Subject: [PATCH] Check for gio to avoid linking issue + +/usr/bin/ld: note: 'g_inet_address_new_from_string' is defined in DSO +/usr/lib/libgio-2.0.so.0 so try adding it to the linker command line + +Signed-off-by: Ionut Biru <ibiru@archlinux.org> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 2a6cb2a..461d464 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -62,7 +62,7 @@ dnl GTK docs + GTK_DOC_CHECK + + dnl Check for Glib +-PKG_CHECK_MODULES(GLIB, gobject-2.0 >= 2.30, have_glib=yes, have_glib=no) ++PKG_CHECK_MODULES(GLIB, [gobject-2.0 >= 2.30, gio-2.0 >= 2.30], have_glib=yes, have_glib=no) + + if test x$have_glib = xno ; then + AC_MSG_ERROR([GLib development libraries not found]) +-- +1.7.10.1 + diff --git a/extra/telepathy-rakia/PKGBUILD b/extra/telepathy-rakia/PKGBUILD index 4504a2256..12338fa1f 100644 --- a/extra/telepathy-rakia/PKGBUILD +++ b/extra/telepathy-rakia/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 151254 2012-02-25 10:06:13Z ibiru $ +# $Id: PKGBUILD 158778 2012-05-09 17:40:49Z ibiru $ # Maintainer : Ionut Biru <ibiru@archlinux.org> pkgname=telepathy-rakia -pkgver=0.7.3 +pkgver=0.7.4 pkgrel=1 pkgdesc="SIP connection manager for Telepathy" arch=('i686' 'x86_64' 'mips64el') @@ -13,16 +13,20 @@ makedepends=('libxslt' 'python2') install=telepathy-rakia.install groups=('telepathy') replaces=('telepathy-sofiasip') -source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz) -md5sums=('dea76f93fe6234d18c6c7746c9ce0d6e') +source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz + 0001-Check-for-gio-to-avoid-linking-issue.patch) +md5sums=('f9f47f18db033afe29fd6963c7748e37' + '6d0372c4c8a22bf9682e4b45ee614d5c') build() { - cd "$srcdir/$pkgname-$pkgver" + cd "$pkgname-$pkgver" + patch -Np1 -i $srcdir/0001-Check-for-gio-to-avoid-linking-issue.patch + autoreconf -fi ./configure --prefix=/usr --libexecdir=/usr/lib/telepathy make } package() { - cd "$srcdir/$pkgname-$pkgver" - make DESTDIR="${pkgdir}" install + cd "$pkgname-$pkgver" + make DESTDIR="$pkgdir" install } diff --git a/extra/vpnc/PKGBUILD b/extra/vpnc/PKGBUILD index 4529ddacc..3f5b56b2c 100644 --- a/extra/vpnc/PKGBUILD +++ b/extra/vpnc/PKGBUILD @@ -1,11 +1,12 @@ -# $Id: PKGBUILD 154323 2012-03-26 10:17:14Z dreisner $ +# $Id: PKGBUILD 158810 2012-05-10 18:37:11Z dreisner $ # Maintainer: Dave Reisner <dreisner@archlinux.org> # Contributor: Thomas Baechler <thomas@archlinux.org> pkgname=vpnc _vpncver=0.5.3 +_git=1b65c39e3cdebb89ce5c75f05d44a0519a67ede6 pkgver=$_vpncver.svn516 -pkgrel=1 +pkgrel=2 pkgdesc="VPN client for cisco3000 VPN Concentrators" url="http://www.unix-ag.uni-kl.de/~massar/vpnc/" license=('GPL') @@ -13,9 +14,11 @@ depends=('libgcrypt' 'openssl' 'iproute2') optdepends=('openresolv: Let vpnc manage resolv.conf') arch=('i686' 'x86_64' 'mips64el') source=("ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.xz" + "http://git.infradead.org/users/dwmw2/vpnc-scripts.git/blob_plain/$_git:/vpnc-script" 'vpnc.conf') backup=('etc/vpnc/default.conf') md5sums=('2118c5ccc464250c0892be57dbfabdf7' + '6293c15ef6e7a3365ed7add5e336b806' 'a3f4e0cc682f437e310a1c86ae198e45') mktarball() { @@ -52,4 +55,5 @@ package() { make DESTDIR="$pkgdir" PREFIX=/usr install install -Dm644 "$srcdir"/vpnc.conf "$pkgdir"/etc/vpnc/default.conf + install -Dm755 "$srcdir"/vpnc-script "$pkgdir"/etc/vpnc/vpnc-script } diff --git a/extra/webrtc-audio-processing/PKGBUILD b/extra/webrtc-audio-processing/PKGBUILD new file mode 100644 index 000000000..d091b96bc --- /dev/null +++ b/extra/webrtc-audio-processing/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 158825 2012-05-11 21:11:52Z heftig $ +# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> + +pkgname=webrtc-audio-processing +pkgver=0.1 +pkgrel=1 +_gitrev=9413986 +pkgdesc="AudioProcessing library based on Google's implementation of WebRTC" +arch=(i686 x86_64) +url="http://freedesktop.org/software/pulseaudio/webrtc-audio-processing" +license=(custom) +depends=(gcc-libs) +options=(!libtool) +source=("$url/$pkgname-$pkgver.tar.xz") +sha256sums=('ed4b52f9c2688b97628035a5565377d74704d7c04de4254a768df3342c7afedc') + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr --disable-static + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + + install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" + install -Dm644 PATENTS "$pkgdir/usr/share/licenses/$pkgname/PATENTS" +} diff --git a/extra/xf86-input-synaptics/PKGBUILD b/extra/xf86-input-synaptics/PKGBUILD index 265a3e919..f905ded78 100644 --- a/extra/xf86-input-synaptics/PKGBUILD +++ b/extra/xf86-input-synaptics/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 157345 2012-04-27 12:08:41Z andyrtr $ +# $Id: PKGBUILD 158878 2012-05-12 16:51:09Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> # Contributor: Thomas Bächler <thomas@archlinux.org> # Contributor: Alexander Baldeck <alexander@archlinux.org> pkgname=xf86-input-synaptics -pkgver=1.5.99.904 +pkgver=1.6.1 pkgrel=1 pkgdesc="Synaptics driver for notebook touchpads" arch=('i686' 'x86_64' 'mips64el') @@ -22,7 +22,7 @@ options=(!libtool) backup=('etc/X11/xorg.conf.d/10-synaptics.conf') source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 10-synaptics.conf) -sha1sums=('4853bd933fa41b83ff513262cdf6e5b89f22d64b' +sha1sums=('963276a5dd240e84efff28d516f8d23cfeedaa13' '68e1f4ef5e1038231d210eb422fa4d18c5922f0f') build() { diff --git a/extra/xf86-input-wacom/PKGBUILD b/extra/xf86-input-wacom/PKGBUILD index 970044037..88c4fc79a 100644 --- a/extra/xf86-input-wacom/PKGBUILD +++ b/extra/xf86-input-wacom/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 158636 2012-05-05 03:31:18Z allan $ +# $Id: PKGBUILD 158905 2012-05-12 20:58:34Z andyrtr $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> # Contributor: M Rawash <mrawash@gmail.com> pkgname=xf86-input-wacom -pkgver=0.14.0 -pkgrel=2 +pkgver=0.15.0 +pkgrel=1 pkgdesc="X.Org Wacom tablet driver" arch=('i686' 'x86_64' 'mips64el') url="http://linuxwacom.sourceforge.net/" @@ -17,8 +17,8 @@ conflicts=('xorg-server<1.12.0') options=(!libtool) source=(http://downloads.sourceforge.net/project/linuxwacom/${pkgname}/${pkgname}-${pkgver}.tar.bz2 70-wacom.rules) -md5sums=('23d19a2b50a86b848df17297c745144f' - '10db4f8272286690255c1bcc18bfdd92') +sha1sums=('6e8e4fa2ccc2448cae97119c6f2842fe283f9b29' + '7cebb94459f9cf49693e65215f3af59cea5e2b73') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/xf86-video-apm/PKGBUILD b/extra/xf86-video-apm/PKGBUILD index 3cf6acff0..2914e15fc 100644 --- a/extra/xf86-video-apm/PKGBUILD +++ b/extra/xf86-video-apm/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 153319 2012-03-12 20:53:08Z andyrtr $ +# $Id: PKGBUILD 158880 2012-05-12 17:20:17Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=xf86-video-apm -pkgver=1.2.3 -pkgrel=5 +pkgver=1.2.4 +pkgrel=1 pkgdesc="X.org Alliance ProMotion video driver" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" @@ -13,14 +13,11 @@ makedepends=('xorg-server-devel>=1.11.99.902') conflicts=('xorg-server<1.11.99.902') groups=('xorg-drivers' 'xorg') options=('!libtool') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 - apm-1.2.3-git.patch) -sha1sums=('1fa7180cf985a74132f8d5b39a0bf9df08713fac' - 'ad9468519eb959bb879ba4e4993d6a83848d5c6f') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('d792ba6e8c39e60e00e0790b4e08f551044b2f7c') build() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i ${srcdir}/apm-1.2.3-git.patch ./configure --prefix=/usr make } diff --git a/extra/xf86-video-ati/0000-poor-man-s-solid-picture-support-for-r300-r600.patch b/extra/xf86-video-ati/0000-poor-man-s-solid-picture-support-for-r300-r600.patch new file mode 100644 index 000000000..bcfbf94db --- /dev/null +++ b/extra/xf86-video-ati/0000-poor-man-s-solid-picture-support-for-r300-r600.patch @@ -0,0 +1,571 @@ +From 837149c63929d7d5a8ef6f8204d396f8e6d5acd7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel@daenzer.net> +Date: Fri, 13 Apr 2012 11:12:51 +0200 +Subject: [PATCH 1/4] Poor man's acceleration of solid pictures for R3xx-R7xx + +The patch below implements basic acceleration of solid pictures via +scratch 1x1 pixmaps. It seems to at least alleviate some of the +corruption and performance issues exposed by Cairo 1.12, and should also +improve performance for other toolkits/apps using solid pictures. + +If there are no objections to this approach, maybe someone else can beat +me to extending this for Evergreen+ and R1/2xx. +--- + src/r600_exa.c | 160 ++++++++++++++++++++++++++-------------------- + src/radeon_exa_render.c | 115 ++++++++++++++++++++-------------- + src/radeon_exa_shared.c | 19 ++++++ + src/radeon_exa_shared.h | 1 + + 4 files changed, 179 insertions(+), 116 deletions(-) + +diff --git a/src/r600_exa.c b/src/r600_exa.c +index e1eb62f..c3ae553 100644 +--- a/src/r600_exa.c ++++ b/src/r600_exa.c +@@ -901,17 +901,8 @@ static Bool R600CheckCompositeTexture(PicturePtr pPict, + int op, + int unit) + { +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; + unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; + unsigned int i; +- int max_tex_w, max_tex_h; +- +- max_tex_w = 8192; +- max_tex_h = 8192; +- +- if ((w > max_tex_w) || (h > max_tex_h)) +- RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h)); + + for (i = 0; i < sizeof(R600TexFormats) / sizeof(R600TexFormats[0]); i++) { + if (R600TexFormats[i].fmt == pPict->format) +@@ -951,9 +942,7 @@ static Bool R600TextureSetup(PicturePtr pPict, PixmapPtr pPix, + ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; + RADEONInfoPtr info = RADEONPTR(pScrn); + struct radeon_accel_state *accel_state = info->accel_state; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; +- unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ unsigned int repeatType; + unsigned int i; + tex_resource_t tex_res; + tex_sampler_t tex_samp; +@@ -969,9 +958,16 @@ static Bool R600TextureSetup(PicturePtr pPict, PixmapPtr pPix, + } + + /* Texture */ ++ if (pPict->pDrawable) { ++ tex_res.w = pPict->pDrawable->width; ++ tex_res.h = pPict->pDrawable->height; ++ repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ } else { ++ tex_res.w = 1; ++ tex_res.h = 1; ++ repeatType = RepeatNormal; ++ } + tex_res.id = unit; +- tex_res.w = w; +- tex_res.h = h; + tex_res.pitch = accel_state->src_obj[unit].pitch; + tex_res.depth = 0; + tex_res.dim = SQ_TEX_DIM_2D; +@@ -1170,24 +1166,24 @@ static Bool R600TextureSetup(PicturePtr pPict, PixmapPtr pPix, + vs_alu_consts[0] = xFixedToFloat(pPict->transform->matrix[0][0]); + vs_alu_consts[1] = xFixedToFloat(pPict->transform->matrix[0][1]); + vs_alu_consts[2] = xFixedToFloat(pPict->transform->matrix[0][2]); +- vs_alu_consts[3] = 1.0 / w; ++ vs_alu_consts[3] = 1.0 / tex_res.w; + + vs_alu_consts[4] = xFixedToFloat(pPict->transform->matrix[1][0]); + vs_alu_consts[5] = xFixedToFloat(pPict->transform->matrix[1][1]); + vs_alu_consts[6] = xFixedToFloat(pPict->transform->matrix[1][2]); +- vs_alu_consts[7] = 1.0 / h; ++ vs_alu_consts[7] = 1.0 / tex_res.h; + } else { + accel_state->is_transform[unit] = FALSE; + + vs_alu_consts[0] = 1.0; + vs_alu_consts[1] = 0.0; + vs_alu_consts[2] = 0.0; +- vs_alu_consts[3] = 1.0 / w; ++ vs_alu_consts[3] = 1.0 / tex_res.w; + + vs_alu_consts[4] = 0.0; + vs_alu_consts[5] = 1.0; + vs_alu_consts[6] = 0.0; +- vs_alu_consts[7] = 1.0 / h; ++ vs_alu_consts[7] = 1.0 / tex_res.h; + } + + /* VS alu constants */ +@@ -1202,33 +1198,30 @@ static Bool R600CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP + { + uint32_t tmp1; + PixmapPtr pSrcPixmap, pDstPixmap; +- int max_tex_w, max_tex_h, max_dst_w, max_dst_h; + + /* Check for unsupported compositing operations. */ + if (op >= (int) (sizeof(R600BlendOp) / sizeof(R600BlendOp[0]))) + RADEON_FALLBACK(("Unsupported Composite op 0x%x\n", op)); + +- if (!pSrcPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); +- +- pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); ++ if (pSrcPicture->pDrawable) { ++ pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); + +- max_tex_w = 8192; +- max_tex_h = 8192; +- max_dst_w = 8192; +- max_dst_h = 8192; ++ if (pSrcPixmap->drawable.width >= 8192 || ++ pSrcPixmap->drawable.height >= 8192) { ++ RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", ++ pSrcPixmap->drawable.width, ++ pSrcPixmap->drawable.height)); ++ } + +- if (pSrcPixmap->drawable.width >= max_tex_w || +- pSrcPixmap->drawable.height >= max_tex_h) { +- RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", +- pSrcPixmap->drawable.width, +- pSrcPixmap->drawable.height)); +- } ++ if (!R600CheckCompositeTexture(pSrcPicture, pDstPicture, op, 0)) ++ return FALSE; ++ } else if (pSrcPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); + + pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable); + +- if (pDstPixmap->drawable.width >= max_dst_w || +- pDstPixmap->drawable.height >= max_dst_h) { ++ if (pDstPixmap->drawable.width >= 8192 || ++ pDstPixmap->drawable.height >= 8192) { + RADEON_FALLBACK(("Dest w/h too large (%d,%d).\n", + pDstPixmap->drawable.width, + pDstPixmap->drawable.height)); +@@ -1237,38 +1230,35 @@ static Bool R600CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP + if (pMaskPicture) { + PixmapPtr pMaskPixmap; + +- if (!pMaskPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); ++ if (pMaskPicture->pDrawable) { ++ pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + +- pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); +- +- if (pMaskPixmap->drawable.width >= max_tex_w || +- pMaskPixmap->drawable.height >= max_tex_h) { +- RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", +- pMaskPixmap->drawable.width, +- pMaskPixmap->drawable.height)); +- } ++ if (pMaskPixmap->drawable.width >= 8192 || ++ pMaskPixmap->drawable.height >= 8192) { ++ RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", ++ pMaskPixmap->drawable.width, ++ pMaskPixmap->drawable.height)); ++ } + +- if (pMaskPicture->componentAlpha) { +- /* Check if it's component alpha that relies on a source alpha and +- * on the source value. We can only get one of those into the +- * single source value that we get to blend with. +- */ +- if (R600BlendOp[op].src_alpha && +- (R600BlendOp[op].blend_cntl & COLOR_SRCBLEND_mask) != +- (BLEND_ZERO << COLOR_SRCBLEND_shift)) { +- RADEON_FALLBACK(("Component alpha not supported with source " +- "alpha and source value blending.\n")); ++ if (pMaskPicture->componentAlpha) { ++ /* Check if it's component alpha that relies on a source alpha and ++ * on the source value. We can only get one of those into the ++ * single source value that we get to blend with. ++ */ ++ if (R600BlendOp[op].src_alpha && ++ (R600BlendOp[op].blend_cntl & COLOR_SRCBLEND_mask) != ++ (BLEND_ZERO << COLOR_SRCBLEND_shift)) { ++ RADEON_FALLBACK(("Component alpha not supported with source " ++ "alpha and source value blending.\n")); ++ } + } +- } + +- if (!R600CheckCompositeTexture(pMaskPicture, pDstPicture, op, 1)) +- return FALSE; ++ if (!R600CheckCompositeTexture(pMaskPicture, pDstPicture, op, 1)) ++ return FALSE; ++ } else if (pMaskPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); + } + +- if (!R600CheckCompositeTexture(pSrcPicture, pDstPicture, op, 0)) +- return FALSE; +- + if (!R600GetDestFormat(pDstPicture, &tmp1)) + return FALSE; + +@@ -1280,7 +1270,8 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture, + PicturePtr pMaskPicture, PicturePtr pDstPicture, + PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst) + { +- ScrnInfoPtr pScrn = xf86Screens[pSrc->drawable.pScreen->myNum]; ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + RADEONInfoPtr info = RADEONPTR(pScrn); + struct radeon_accel_state *accel_state = info->accel_state; + uint32_t dst_format; +@@ -1288,15 +1279,21 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture, + shader_config_t vs_conf, ps_conf; + struct r600_accel_object src_obj, mask_obj, dst_obj; + +- if (pDst->drawable.bitsPerPixel < 8 || pSrc->drawable.bitsPerPixel < 8) ++ if (pDst->drawable.bitsPerPixel < 8 || (pSrc && pSrc->drawable.bitsPerPixel < 8)) + return FALSE; + ++ if (!pSrc) { ++ pSrc = RADEONSolidPixmap(pScreen, pSrcPicture->pSourcePict->solidFill.color); ++ if (!pSrc) ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ + #if defined(XF86DRM_MODE) + if (info->cs) { + src_obj.offset = 0; + dst_obj.offset = 0; +- src_obj.bo = radeon_get_pixmap_bo(pSrc); + dst_obj.bo = radeon_get_pixmap_bo(pDst); ++ src_obj.bo = radeon_get_pixmap_bo(pSrc); + dst_obj.tiling_flags = radeon_get_pixmap_tiling(pDst); + src_obj.tiling_flags = radeon_get_pixmap_tiling(pSrc); + dst_obj.surface = radeon_get_pixmap_surface(pDst); +@@ -1322,7 +1319,16 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture, + dst_obj.bpp = pDst->drawable.bitsPerPixel; + dst_obj.domain = RADEON_GEM_DOMAIN_VRAM; + +- if (pMask) { ++ if (pMaskPicture) { ++ if (!pMask) { ++ pMask = RADEONSolidPixmap(pScreen, pMaskPicture->pSourcePict->solidFill.color); ++ if (!pMask) { ++ if (!pSrcPicture->pDrawable) ++ pScreen->DestroyPixmap(pSrc); ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ } ++ + #if defined(XF86DRM_MODE) + if (info->cs) { + mask_obj.offset = 0; +@@ -1509,11 +1515,9 @@ static Bool R600PrepareComposite(int op, PicturePtr pSrcPicture, + return TRUE; + } + +-static void R600DoneComposite(PixmapPtr pDst) ++static void R600FinishComposite(ScrnInfoPtr pScrn, PixmapPtr pDst, ++ struct radeon_accel_state *accel_state) + { +- ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; +- RADEONInfoPtr info = RADEONPTR(pScrn); +- struct radeon_accel_state *accel_state = info->accel_state; + int vtx_size; + + if (accel_state->vsync) +@@ -1527,6 +1531,22 @@ static void R600DoneComposite(PixmapPtr pDst) + r600_finish_op(pScrn, vtx_size); + } + ++static void R600DoneComposite(PixmapPtr pDst) ++{ ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ RADEONInfoPtr info = RADEONPTR(pScrn); ++ struct radeon_accel_state *accel_state = info->accel_state; ++ ++ R600FinishComposite(pScrn, pDst, accel_state); ++ ++ if (!accel_state->src_pic->pDrawable) ++ pScreen->DestroyPixmap(accel_state->src_pix); ++ ++ if (accel_state->msk_pic && !accel_state->msk_pic->pDrawable) ++ pScreen->DestroyPixmap(accel_state->msk_pix); ++} ++ + static void R600Composite(PixmapPtr pDst, + int srcX, int srcY, + int maskX, int maskY, +@@ -1543,7 +1563,7 @@ static void R600Composite(PixmapPtr pDst, + + #ifdef XF86DRM_MODE + if (info->cs && CS_FULL(info->cs)) { +- R600DoneComposite(info->accel_state->dst_pix); ++ R600FinishComposite(pScrn, pDst, info->accel_state); + radeon_cs_flush_indirect(pScrn); + R600PrepareComposite(info->accel_state->composite_op, + info->accel_state->src_pic, +diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c +index e5c231f..b6cc9e4 100644 +--- a/src/radeon_exa_render.c ++++ b/src/radeon_exa_render.c +@@ -299,8 +299,8 @@ static Bool RADEONSetupSourceTile(PicturePtr pPict, + if (repeatType == RepeatNormal || repeatType == RepeatReflect) { + Bool badPitch = needMatchingPitch && !RADEONPitchMatches(pPix); + +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; ++ int w = pPict->pDrawable ? pPict->pDrawable->width : 1; ++ int h = pPict->pDrawable ? pPict->pDrawable->height : 1; + + if (pPict->transform) { + if (badPitch) +@@ -1112,23 +1112,8 @@ static Bool R300CheckCompositeTexture(PicturePtr pPict, + ScreenPtr pScreen = pDstPict->pDrawable->pScreen; + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + RADEONInfoPtr info = RADEONPTR(pScrn); +- + unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; + int i; +- int max_tex_w, max_tex_h; +- +- if (is_r500) { +- max_tex_w = 4096; +- max_tex_h = 4096; +- } else { +- max_tex_w = 2048; +- max_tex_h = 2048; +- } +- +- if ((w > max_tex_w) || (h > max_tex_h)) +- RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h)); + + for (i = 0; i < sizeof(R300TexFormats) / sizeof(R300TexFormats[0]); i++) + { +@@ -1139,7 +1124,7 @@ static Bool R300CheckCompositeTexture(PicturePtr pPict, + RADEON_FALLBACK(("Unsupported picture format 0x%x\n", + (int)pPict->format)); + +- if (!RADEONCheckTexturePOT(pPict, unit == 0)) { ++ if (pPict->pDrawable && !RADEONCheckTexturePOT(pPict, unit == 0)) { + if (info->cs) { + struct radeon_exa_pixmap_priv *driver_priv; + PixmapPtr pPix; +@@ -1181,15 +1166,23 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix, + { + RINFO_FROM_SCREEN(pPix->drawable.pScreen); + uint32_t txfilter, txformat0, txformat1, txoffset, txpitch, us_format = 0; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; ++ int w, h; + int i, pixel_shift, out_size = 6; +- unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ unsigned int repeatType; + struct radeon_exa_pixmap_priv *driver_priv; + ACCEL_PREAMBLE(); + + TRACE; + ++ if (pPict->pDrawable) { ++ w = pPict->pDrawable->width; ++ h = pPict->pDrawable->height; ++ repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ } else { ++ w = h = 1; ++ repeatType = RepeatNormal; ++ } ++ + txpitch = exaGetPixmapPitch(pPix); + txoffset = 0; + +@@ -1394,11 +1387,6 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP + if (op >= sizeof(RadeonBlendOp) / sizeof(RadeonBlendOp[0])) + RADEON_FALLBACK(("Unsupported Composite op 0x%x\n", op)); + +- if (!pSrcPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); +- +- pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); +- + if (IS_R500_3D) { + max_tex_w = 4096; + max_tex_h = 4096; +@@ -1416,13 +1404,6 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP + } + } + +- if (pSrcPixmap->drawable.width > max_tex_w || +- pSrcPixmap->drawable.height > max_tex_h) { +- RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", +- pSrcPixmap->drawable.width, +- pSrcPixmap->drawable.height)); +- } +- + pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable); + + if (pDstPixmap->drawable.width > max_dst_w || +@@ -1432,20 +1413,32 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP + pDstPixmap->drawable.height)); + } + ++ if (pSrcPicture->pDrawable) { ++ pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); ++ ++ if (pSrcPixmap->drawable.width > max_tex_w || ++ pSrcPixmap->drawable.height > max_tex_h) { ++ RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", ++ pSrcPixmap->drawable.width, ++ pSrcPixmap->drawable.height)); ++ } ++ } else if (pSrcPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); ++ + if (pMaskPicture) { + PixmapPtr pMaskPixmap; + +- if (!pMaskPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); ++ if (pMaskPicture->pDrawable) { ++ pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + +- pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); +- +- if (pMaskPixmap->drawable.width > max_tex_w || +- pMaskPixmap->drawable.height > max_tex_h) { +- RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", +- pMaskPixmap->drawable.width, +- pMaskPixmap->drawable.height)); +- } ++ if (pMaskPixmap->drawable.width > max_tex_w || ++ pMaskPixmap->drawable.height > max_tex_h) { ++ RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", ++ pMaskPixmap->drawable.width, ++ pMaskPixmap->drawable.height)); ++ } ++ } else if (pMaskPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); + + if (pMaskPicture->componentAlpha) { + /* Check if it's component alpha that relies on a source alpha and +@@ -1479,7 +1472,8 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + PicturePtr pMaskPicture, PicturePtr pDstPicture, + PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst) + { +- RINFO_FROM_SCREEN(pDst->drawable.pScreen); ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ RINFO_FROM_SCREEN(pScreen); + uint32_t dst_format, dst_pitch; + uint32_t txenable, colorpitch; + uint32_t blendcntl, output_fmt; +@@ -1508,9 +1502,24 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + if (((dst_pitch >> pixel_shift) & 0x7) != 0) + RADEON_FALLBACK(("Bad destination pitch 0x%x\n", (int)dst_pitch)); + ++ if (!pSrc) { ++ pSrc = RADEONSolidPixmap(pScreen, cpu_to_le32(pSrcPicture->pSourcePict->solidFill.color)); ++ if (!pSrc) ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ + if (!RADEONSetupSourceTile(pSrcPicture, pSrc, TRUE, FALSE)) + return FALSE; + ++ if (pMaskPicture && !pMask) { ++ pMask = RADEONSolidPixmap(pScreen, cpu_to_le32(pMaskPicture->pSourcePict->solidFill.color)); ++ if (!pMask) { ++ if (!pSrcPicture->pDrawable) ++ pScreen->DestroyPixmap(pSrc); ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ } ++ + RADEONPrepareCompositeCS(op, pSrcPicture, pMaskPicture, pDstPicture, + pSrc, pMask, pDst); + +@@ -2132,7 +2141,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, + return TRUE; + } + +-static void FUNC_NAME(RadeonDoneComposite)(PixmapPtr pDst) ++static void FUNC_NAME(RadeonFinishComposite)(PixmapPtr pDst) + { + RINFO_FROM_SCREEN(pDst->drawable.pScreen); + ACCEL_PREAMBLE(); +@@ -2179,6 +2188,20 @@ static void FUNC_NAME(RadeonDoneComposite)(PixmapPtr pDst) + LEAVE_DRAW(0); + } + ++static void FUNC_NAME(RadeonDoneComposite)(PixmapPtr pDst) ++{ ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ RINFO_FROM_SCREEN(pScreen); ++ struct radeon_accel_state *accel_state = info->accel_state; ++ ++ FUNC_NAME(RadeonFinishComposite)(pDst); ++ ++ if (!accel_state->src_pic->pDrawable) ++ pScreen->DestroyPixmap(accel_state->src_pix); ++ ++ if (accel_state->msk_pic && !accel_state->msk_pic->pDrawable) ++ pScreen->DestroyPixmap(accel_state->msk_pix); ++} + + #ifdef ACCEL_CP + +@@ -2257,7 +2280,7 @@ static void FUNC_NAME(RadeonCompositeTile)(ScrnInfoPtr pScrn, + if ((info->cs && CS_FULL(info->cs)) || + (!info->cs && (info->cp->indirectBuffer->used + 4 * 32) > + info->cp->indirectBuffer->total)) { +- FUNC_NAME(RadeonDoneComposite)(info->accel_state->dst_pix); ++ FUNC_NAME(RadeonFinishComposite)(info->accel_state->dst_pix); + if (info->cs) + radeon_cs_flush_indirect(pScrn); + else +diff --git a/src/radeon_exa_shared.c b/src/radeon_exa_shared.c +index be1d2fa..28dc335 100644 +--- a/src/radeon_exa_shared.c ++++ b/src/radeon_exa_shared.c +@@ -126,6 +126,25 @@ Bool RADEONCheckBPP(int bpp) + return FALSE; + } + ++PixmapPtr RADEONSolidPixmap(ScreenPtr pScreen, uint32_t solid) ++{ ++ PixmapPtr pPix = pScreen->CreatePixmap(pScreen, 1, 1, 32, 0); ++ struct radeon_bo *bo; ++ ++ exaMoveInPixmap(pPix); ++ bo = radeon_get_pixmap_bo(pPix); ++ ++ if (radeon_bo_map(bo, 1)) { ++ pScreen->DestroyPixmap(pPix); ++ return NULL; ++ } ++ ++ memcpy(bo->ptr, &solid, 4); ++ radeon_bo_unmap(bo); ++ ++ return pPix; ++} ++ + static Bool radeon_vb_get(ScrnInfoPtr pScrn) + { + RADEONInfoPtr info = RADEONPTR(pScrn); +diff --git a/src/radeon_exa_shared.h b/src/radeon_exa_shared.h +index 7b8b5ca..60a1045 100644 +--- a/src/radeon_exa_shared.h ++++ b/src/radeon_exa_shared.h +@@ -40,6 +40,7 @@ extern void RADEONVlineHelperClear(ScrnInfoPtr pScrn); + extern void RADEONVlineHelperSet(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2); + extern Bool RADEONValidPM(uint32_t pm, int bpp); + extern Bool RADEONCheckBPP(int bpp); ++extern PixmapPtr RADEONSolidPixmap(ScreenPtr pScreen, uint32_t solid); + + #define RADEON_TRACE_FALL 0 + #define RADEON_TRACE_DRAW 0 +-- +1.7.7.5 + diff --git a/extra/xf86-video-ati/0001-poor-man-s-solid-picture-support-for-evergreen.patch b/extra/xf86-video-ati/0001-poor-man-s-solid-picture-support-for-evergreen.patch new file mode 100644 index 000000000..e6b5433e1 --- /dev/null +++ b/extra/xf86-video-ati/0001-poor-man-s-solid-picture-support-for-evergreen.patch @@ -0,0 +1,290 @@ +From 761ef4b340e689490a76ec5ce520c858335e2106 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Sat, 14 Apr 2012 08:53:39 -0400 +Subject: [PATCH] poor man's solid picture support for evergreen + +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + src/evergreen_exa.c | 163 ++++++++++++++++++++++++++++++--------------------- + 1 files changed, 95 insertions(+), 68 deletions(-) + +diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c +index cee3ec2..61b47a4 100644 +--- a/src/evergreen_exa.c ++++ b/src/evergreen_exa.c +@@ -748,17 +748,8 @@ static Bool EVERGREENCheckCompositeTexture(PicturePtr pPict, + int op, + int unit) + { +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; + unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; + unsigned int i; +- int max_tex_w, max_tex_h; +- +- max_tex_w = 16384; +- max_tex_h = 16384; +- +- if ((w > max_tex_w) || (h > max_tex_h)) +- RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h)); + + for (i = 0; i < sizeof(EVERGREENTexFormats) / sizeof(EVERGREENTexFormats[0]); i++) { + if (EVERGREENTexFormats[i].fmt == pPict->format) +@@ -798,9 +789,16 @@ static void EVERGREENXFormSetup(PicturePtr pPict, PixmapPtr pPix, + ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; + RADEONInfoPtr info = RADEONPTR(pScrn); + struct radeon_accel_state *accel_state = info->accel_state; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; + int const_offset = unit * 8; ++ int w, h; ++ ++ if (pPict->pDrawable) { ++ w = pPict->pDrawable->width; ++ h = pPict->pDrawable->height; ++ } else { ++ w = 1; ++ h = 1; ++ } + + if (pPict->transform != 0) { + accel_state->is_transform[unit] = TRUE; +@@ -837,9 +835,7 @@ static Bool EVERGREENTextureSetup(PicturePtr pPict, PixmapPtr pPix, + ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; + RADEONInfoPtr info = RADEONPTR(pScrn); + struct radeon_accel_state *accel_state = info->accel_state; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; +- unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ unsigned int repeatType; + unsigned int i; + tex_resource_t tex_res; + tex_sampler_t tex_samp; +@@ -854,9 +850,17 @@ static Bool EVERGREENTextureSetup(PicturePtr pPict, PixmapPtr pPix, + } + + /* Texture */ ++ if (pPict->pDrawable) { ++ tex_res.w = pPict->pDrawable->width; ++ tex_res.h = pPict->pDrawable->height; ++ repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ } else { ++ tex_res.w = 1; ++ tex_res.h = 1; ++ repeatType = RepeatNormal; ++ } ++ + tex_res.id = unit; +- tex_res.w = w; +- tex_res.h = h; + tex_res.pitch = accel_state->src_obj[unit].pitch; + tex_res.depth = 0; + tex_res.dim = SQ_TEX_DIM_2D; +@@ -1054,33 +1058,30 @@ static Bool EVERGREENCheckComposite(int op, PicturePtr pSrcPicture, + { + uint32_t tmp1; + PixmapPtr pSrcPixmap, pDstPixmap; +- int max_tex_w, max_tex_h, max_dst_w, max_dst_h; + + /* Check for unsupported compositing operations. */ + if (op >= (int) (sizeof(EVERGREENBlendOp) / sizeof(EVERGREENBlendOp[0]))) + RADEON_FALLBACK(("Unsupported Composite op 0x%x\n", op)); + +- if (!pSrcPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); ++ if (pSrcPicture->pDrawable) { ++ pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); + +- pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); +- +- max_tex_w = 8192; +- max_tex_h = 8192; +- max_dst_w = 8192; +- max_dst_h = 8192; ++ if (pSrcPixmap->drawable.width >= 16384 || ++ pSrcPixmap->drawable.height >= 16384) { ++ RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", ++ pSrcPixmap->drawable.width, ++ pSrcPixmap->drawable.height)); ++ } + +- if (pSrcPixmap->drawable.width >= max_tex_w || +- pSrcPixmap->drawable.height >= max_tex_h) { +- RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", +- pSrcPixmap->drawable.width, +- pSrcPixmap->drawable.height)); +- } ++ if (!EVERGREENCheckCompositeTexture(pSrcPicture, pDstPicture, op, 0)) ++ return FALSE; ++ } else if (pSrcPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); + + pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable); + +- if (pDstPixmap->drawable.width >= max_dst_w || +- pDstPixmap->drawable.height >= max_dst_h) { ++ if (pDstPixmap->drawable.width >= 16384 || ++ pDstPixmap->drawable.height >= 16384) { + RADEON_FALLBACK(("Dest w/h too large (%d,%d).\n", + pDstPixmap->drawable.width, + pDstPixmap->drawable.height)); +@@ -1089,38 +1090,35 @@ static Bool EVERGREENCheckComposite(int op, PicturePtr pSrcPicture, + if (pMaskPicture) { + PixmapPtr pMaskPixmap; + +- if (!pMaskPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); +- +- pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); ++ if (pMaskPicture->pDrawable) { ++ pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + +- if (pMaskPixmap->drawable.width >= max_tex_w || +- pMaskPixmap->drawable.height >= max_tex_h) { +- RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", +- pMaskPixmap->drawable.width, +- pMaskPixmap->drawable.height)); +- } ++ if (pMaskPixmap->drawable.width >= 16384 || ++ pMaskPixmap->drawable.height >= 16384) { ++ RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", ++ pMaskPixmap->drawable.width, ++ pMaskPixmap->drawable.height)); ++ } + +- if (pMaskPicture->componentAlpha) { +- /* Check if it's component alpha that relies on a source alpha and +- * on the source value. We can only get one of those into the +- * single source value that we get to blend with. +- */ +- if (EVERGREENBlendOp[op].src_alpha && +- (EVERGREENBlendOp[op].blend_cntl & COLOR_SRCBLEND_mask) != +- (BLEND_ZERO << COLOR_SRCBLEND_shift)) { +- RADEON_FALLBACK(("Component alpha not supported with source " +- "alpha and source value blending.\n")); ++ if (pMaskPicture->componentAlpha) { ++ /* Check if it's component alpha that relies on a source alpha and ++ * on the source value. We can only get one of those into the ++ * single source value that we get to blend with. ++ */ ++ if (EVERGREENBlendOp[op].src_alpha && ++ (EVERGREENBlendOp[op].blend_cntl & COLOR_SRCBLEND_mask) != ++ (BLEND_ZERO << COLOR_SRCBLEND_shift)) { ++ RADEON_FALLBACK(("Component alpha not supported with source " ++ "alpha and source value blending.\n")); ++ } + } +- } + +- if (!EVERGREENCheckCompositeTexture(pMaskPicture, pDstPicture, op, 1)) +- return FALSE; ++ if (!EVERGREENCheckCompositeTexture(pMaskPicture, pDstPicture, op, 1)) ++ return FALSE; ++ } else if (pMaskPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); + } + +- if (!EVERGREENCheckCompositeTexture(pSrcPicture, pDstPicture, op, 0)) +- return FALSE; +- + if (!EVERGREENGetDestFormat(pDstPicture, &tmp1)) + return FALSE; + +@@ -1132,7 +1130,8 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture, + PicturePtr pMaskPicture, PicturePtr pDstPicture, + PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst) + { +- ScrnInfoPtr pScrn = xf86Screens[pSrc->drawable.pScreen->myNum]; ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + RADEONInfoPtr info = RADEONPTR(pScrn); + struct radeon_accel_state *accel_state = info->accel_state; + uint32_t dst_format; +@@ -1142,13 +1141,19 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture, + struct r600_accel_object src_obj, mask_obj, dst_obj; + float *cbuf; + +- if (pDst->drawable.bitsPerPixel < 8 || pSrc->drawable.bitsPerPixel < 8) ++ if (pDst->drawable.bitsPerPixel < 8 || (pSrc && pSrc->drawable.bitsPerPixel < 8)) + return FALSE; + ++ if (!pSrc) { ++ pSrc = RADEONSolidPixmap(pScreen, pSrcPicture->pSourcePict->solidFill.color); ++ if (!pSrc) ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ + src_obj.offset = 0; + dst_obj.offset = 0; +- src_obj.bo = radeon_get_pixmap_bo(pSrc); + dst_obj.bo = radeon_get_pixmap_bo(pDst); ++ src_obj.bo = radeon_get_pixmap_bo(pSrc); + dst_obj.surface = radeon_get_pixmap_surface(pDst); + src_obj.surface = radeon_get_pixmap_surface(pSrc); + dst_obj.tiling_flags = radeon_get_pixmap_tiling(pDst); +@@ -1166,7 +1171,15 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture, + dst_obj.bpp = pDst->drawable.bitsPerPixel; + dst_obj.domain = RADEON_GEM_DOMAIN_VRAM; + +- if (pMask) { ++ if (pMaskPicture) { ++ if (!pMask) { ++ pMask = RADEONSolidPixmap(pScreen, pMaskPicture->pSourcePict->solidFill.color); ++ if (!pMask) { ++ if (!pSrcPicture->pDrawable) ++ pScreen->DestroyPixmap(pSrc); ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ } + mask_obj.offset = 0; + mask_obj.bo = radeon_get_pixmap_bo(pMask); + mask_obj.tiling_flags = radeon_get_pixmap_tiling(pMask); +@@ -1363,11 +1376,9 @@ static Bool EVERGREENPrepareComposite(int op, PicturePtr pSrcPicture, + return TRUE; + } + +-static void EVERGREENDoneComposite(PixmapPtr pDst) ++static void EVERGREENFinishComposite(ScrnInfoPtr pScrn, PixmapPtr pDst, ++ struct radeon_accel_state *accel_state) + { +- ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; +- RADEONInfoPtr info = RADEONPTR(pScrn); +- struct radeon_accel_state *accel_state = info->accel_state; + int vtx_size; + + if (accel_state->vsync) +@@ -1381,6 +1392,22 @@ static void EVERGREENDoneComposite(PixmapPtr pDst) + evergreen_finish_op(pScrn, vtx_size); + } + ++static void EVERGREENDoneComposite(PixmapPtr pDst) ++{ ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ RADEONInfoPtr info = RADEONPTR(pScrn); ++ struct radeon_accel_state *accel_state = info->accel_state; ++ ++ EVERGREENFinishComposite(pScrn, pDst, accel_state); ++ ++ if (!accel_state->src_pic->pDrawable) ++ pScreen->DestroyPixmap(accel_state->src_pix); ++ ++ if (accel_state->msk_pic && !accel_state->msk_pic->pDrawable) ++ pScreen->DestroyPixmap(accel_state->msk_pix); ++} ++ + static void EVERGREENComposite(PixmapPtr pDst, + int srcX, int srcY, + int maskX, int maskY, +@@ -1393,7 +1420,7 @@ static void EVERGREENComposite(PixmapPtr pDst, + float *vb; + + if (CS_FULL(info->cs)) { +- EVERGREENDoneComposite(info->accel_state->dst_pix); ++ EVERGREENFinishComposite(pScrn, pDst, info->accel_state); + radeon_cs_flush_indirect(pScrn); + EVERGREENPrepareComposite(info->accel_state->composite_op, + info->accel_state->src_pic, +-- +1.7.7.5 + diff --git a/extra/xf86-video-ati/0002-poor-man-s-solid-picture-support-for-r100.patch b/extra/xf86-video-ati/0002-poor-man-s-solid-picture-support-for-r100.patch new file mode 100644 index 000000000..3a2779446 --- /dev/null +++ b/extra/xf86-video-ati/0002-poor-man-s-solid-picture-support-for-r100.patch @@ -0,0 +1,182 @@ +From f36b911ecc31f689ddceeeb11d10eb7cb4a3428d Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Fri, 13 Apr 2012 13:24:46 -0400 +Subject: [PATCH 2/3] poor man's solid picture support for r100 + +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + src/radeon_exa_render.c | 101 +++++++++++++++++++++++++++-------------------- + 1 files changed, 58 insertions(+), 43 deletions(-) + +diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c +index b6cc9e4..451a625 100644 +--- a/src/radeon_exa_render.c ++++ b/src/radeon_exa_render.c +@@ -338,17 +338,8 @@ static Bool R100CheckCompositeTexture(PicturePtr pPict, + int unit) + { + unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; + int i; + +- /* r100 limit should be 2048, there are issues with 2048 +- * see 197a62704742a4a19736c2637ac92d1dc5ab34ed +- */ +- +- if ((w > 2047) || (h > 2047)) +- RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h)); +- + for (i = 0; i < sizeof(R100TexFormats) / sizeof(R100TexFormats[0]); i++) { + if (R100TexFormats[i].fmt == pPict->format) + break; +@@ -357,7 +348,7 @@ static Bool R100CheckCompositeTexture(PicturePtr pPict, + RADEON_FALLBACK(("Unsupported picture format 0x%x\n", + (int)pPict->format)); + +- if (!RADEONCheckTexturePOT(pPict, unit == 0)) ++ if (pPict->pDrawable && !RADEONCheckTexturePOT(pPict, unit == 0)) + return FALSE; + + if (pPict->filter != PictFilterNearest && +@@ -392,15 +383,24 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix, + { + RINFO_FROM_SCREEN(pPix->drawable.pScreen); + uint32_t txfilter, txformat, txoffset, txpitch; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; +- unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; +- Bool repeat = (repeatType == RepeatNormal || repeatType == RepeatReflect) && +- !(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y)); +- int i; ++ unsigned int repeatType; ++ Bool repeat; ++ int i, w, h; + struct radeon_exa_pixmap_priv *driver_priv; + ACCEL_PREAMBLE(); + ++ if (pPict->pDrawable) { ++ w = pPict->pDrawable->width; ++ h = pPict->pDrawable->height; ++ repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ } else { ++ w = h = 1; ++ repeatType = RepeatNormal; ++ } ++ ++ repeat = (repeatType == RepeatNormal || repeatType == RepeatReflect) && ++ !(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y)); ++ + txpitch = exaGetPixmapPitch(pPix); + txoffset = 0; + +@@ -510,22 +510,6 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, + if (op >= sizeof(RadeonBlendOp) / sizeof(RadeonBlendOp[0])) + RADEON_FALLBACK(("Unsupported Composite op 0x%x\n", op)); + +- if (!pSrcPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); +- +- /* r100 limit should be 2048, there are issues with 2048 +- * see 197a62704742a4a19736c2637ac92d1dc5ab34ed +- */ +- +- pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); +- +- if (pSrcPixmap->drawable.width > 2047 || +- pSrcPixmap->drawable.height > 2047) { +- RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", +- pSrcPixmap->drawable.width, +- pSrcPixmap->drawable.height)); +- } +- + pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable); + + if (pDstPixmap->drawable.width > 2047 || +@@ -535,20 +519,35 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, + pDstPixmap->drawable.height)); + } + ++ if (pSrcPicture->pDrawable) { ++ /* r100 limit should be 2048, there are issues with 2048 ++ * see 197a62704742a4a19736c2637ac92d1dc5ab34ed ++ */ ++ pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); ++ ++ if (pSrcPixmap->drawable.width > 2047 || ++ pSrcPixmap->drawable.height > 2047) { ++ RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", ++ pSrcPixmap->drawable.width, ++ pSrcPixmap->drawable.height)); ++ } ++ } else if (pSrcPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); ++ + if (pMaskPicture) { + PixmapPtr pMaskPixmap; + +- if (!pMaskPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); +- +- pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); ++ if (pMaskPicture->pDrawable) { ++ pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + +- if (pMaskPixmap->drawable.width > 2047 || +- pMaskPixmap->drawable.height > 2047) { +- RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", +- pMaskPixmap->drawable.width, +- pMaskPixmap->drawable.height)); +- } ++ if (pMaskPixmap->drawable.width > 2047 || ++ pMaskPixmap->drawable.height > 2047) { ++ RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", ++ pMaskPixmap->drawable.width, ++ pMaskPixmap->drawable.height)); ++ } ++ } else if (pMaskPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); + + if (pMaskPicture->componentAlpha) { + /* Check if it's component alpha that relies on a source alpha and +@@ -624,7 +623,8 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op, + PixmapPtr pMask, + PixmapPtr pDst) + { +- RINFO_FROM_SCREEN(pDst->drawable.pScreen); ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ RINFO_FROM_SCREEN(pScreen); + uint32_t dst_format, dst_pitch, colorpitch; + uint32_t pp_cntl, blendcntl, cblend, ablend; + int pixel_shift; +@@ -648,12 +648,27 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op, + + CHECK_OFFSET(pDst, 0x0f, "destination"); + ++ if (!pSrc) { ++ pSrc = RADEONSolidPixmap(pScreen, cpu_to_le32(pSrcPicture->pSourcePict->solidFill.color)); ++ if (!pSrc) ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ + if (((dst_pitch >> pixel_shift) & 0x7) != 0) + RADEON_FALLBACK(("Bad destination pitch 0x%x\n", (int)dst_pitch)); + + if (!RADEONSetupSourceTile(pSrcPicture, pSrc, FALSE, TRUE)) + return FALSE; + ++ if (pMaskPicture && !pMask) { ++ pMask = RADEONSolidPixmap(pScreen, cpu_to_le32(pMaskPicture->pSourcePict->solidFill.color)); ++ if (!pMask) { ++ if (!pSrcPicture->pDrawable) ++ pScreen->DestroyPixmap(pSrc); ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ } ++ + RADEONPrepareCompositeCS(op, pSrcPicture, pMaskPicture, pDstPicture, + pSrc, pMask, pDst); + +-- +1.7.7.5 + diff --git a/extra/xf86-video-ati/0003-poor-man-s-solid-picture-support-for-r200.patch b/extra/xf86-video-ati/0003-poor-man-s-solid-picture-support-for-r200.patch new file mode 100644 index 000000000..0a448fc93 --- /dev/null +++ b/extra/xf86-video-ati/0003-poor-man-s-solid-picture-support-for-r200.patch @@ -0,0 +1,179 @@ +From c5c8310858f8018a1754f2457d7b102dc7d62b23 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Fri, 13 Apr 2012 13:28:10 -0400 +Subject: [PATCH 3/3] poor man's solid picture support for r200 + +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + src/radeon_exa_render.c | 101 +++++++++++++++++++++++++++-------------------- + 1 files changed, 58 insertions(+), 43 deletions(-) + +diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c +index 451a625..7f1a3ff 100644 +--- a/src/radeon_exa_render.c ++++ b/src/radeon_exa_render.c +@@ -756,17 +756,8 @@ static Bool R200CheckCompositeTexture(PicturePtr pPict, + int unit) + { + unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; + int i; + +- /* r200 limit should be 2048, there are issues with 2048 +- * see bug 19269 +- */ +- +- if ((w > 2047) || (h > 2047)) +- RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h)); +- + for (i = 0; i < sizeof(R200TexFormats) / sizeof(R200TexFormats[0]); i++) + { + if (R200TexFormats[i].fmt == pPict->format) +@@ -776,7 +767,7 @@ static Bool R200CheckCompositeTexture(PicturePtr pPict, + RADEON_FALLBACK(("Unsupported picture format 0x%x\n", + (int)pPict->format)); + +- if (!RADEONCheckTexturePOT(pPict, unit == 0)) ++ if (pPict->pDrawable && !RADEONCheckTexturePOT(pPict, unit == 0)) + return FALSE; + + if (pPict->filter != PictFilterNearest && +@@ -809,15 +800,24 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix, + { + RINFO_FROM_SCREEN(pPix->drawable.pScreen); + uint32_t txfilter, txformat, txoffset, txpitch; +- int w = pPict->pDrawable->width; +- int h = pPict->pDrawable->height; +- unsigned int repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; +- Bool repeat = (repeatType == RepeatNormal || repeatType == RepeatReflect) && +- !(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y)); +- int i; ++ unsigned int repeatType; ++ Bool repeat; ++ int i, w, h; + struct radeon_exa_pixmap_priv *driver_priv; + ACCEL_PREAMBLE(); + ++ if (pPict->pDrawable) { ++ w = pPict->pDrawable->width; ++ h = pPict->pDrawable->height; ++ repeatType = pPict->repeat ? pPict->repeatType : RepeatNone; ++ } else { ++ w = h = 1; ++ repeatType = RepeatNormal; ++ } ++ ++ repeat = (repeatType == RepeatNormal || repeatType == RepeatReflect) && ++ !(unit == 0 && (info->accel_state->need_src_tile_x || info->accel_state->need_src_tile_y)); ++ + txpitch = exaGetPixmapPitch(pPix); + + txoffset = 0; +@@ -926,22 +926,6 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP + if (op >= sizeof(RadeonBlendOp) / sizeof(RadeonBlendOp[0])) + RADEON_FALLBACK(("Unsupported Composite op 0x%x\n", op)); + +- if (!pSrcPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); +- +- /* r200 limit should be 2048, there are issues with 2048 +- * see bug 19269 +- */ +- +- pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); +- +- if (pSrcPixmap->drawable.width > 2047 || +- pSrcPixmap->drawable.height > 2047) { +- RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", +- pSrcPixmap->drawable.width, +- pSrcPixmap->drawable.height)); +- } +- + pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable); + + if (pDstPixmap->drawable.width > 2047 || +@@ -951,20 +935,35 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP + pDstPixmap->drawable.height)); + } + ++ if (pSrcPicture->pDrawable) { ++ /* r200 limit should be 2048, there are issues with 2048 ++ * see 197a62704742a4a19736c2637ac92d1dc5ab34ed ++ */ ++ pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable); ++ ++ if (pSrcPixmap->drawable.width > 2047 || ++ pSrcPixmap->drawable.height > 2047) { ++ RADEON_FALLBACK(("Source w/h too large (%d,%d).\n", ++ pSrcPixmap->drawable.width, ++ pSrcPixmap->drawable.height)); ++ } ++ } else if (pSrcPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); ++ + if (pMaskPicture) { + PixmapPtr pMaskPixmap; + +- if (!pMaskPicture->pDrawable) +- RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); +- +- pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); ++ if (pMaskPicture->pDrawable) { ++ pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + +- if (pMaskPixmap->drawable.width > 2047 || +- pMaskPixmap->drawable.height > 2047) { +- RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", +- pMaskPixmap->drawable.width, +- pMaskPixmap->drawable.height)); +- } ++ if (pMaskPixmap->drawable.width > 2047 || ++ pMaskPixmap->drawable.height > 2047) { ++ RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n", ++ pMaskPixmap->drawable.width, ++ pMaskPixmap->drawable.height)); ++ } ++ } else if (pMaskPicture->pSourcePict->type != SourcePictTypeSolidFill) ++ RADEON_FALLBACK(("Gradient pictures not supported yet\n")); + + if (pMaskPicture->componentAlpha) { + /* Check if it's component alpha that relies on a source alpha and +@@ -997,7 +996,8 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture, + PicturePtr pMaskPicture, PicturePtr pDstPicture, + PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst) + { +- RINFO_FROM_SCREEN(pDst->drawable.pScreen); ++ ScreenPtr pScreen = pDst->drawable.pScreen; ++ RINFO_FROM_SCREEN(pScreen); + uint32_t dst_format, dst_pitch; + uint32_t pp_cntl, blendcntl, cblend, ablend, colorpitch; + int pixel_shift; +@@ -1024,9 +1024,24 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture, + if (((dst_pitch >> pixel_shift) & 0x7) != 0) + RADEON_FALLBACK(("Bad destination pitch 0x%x\n", (int)dst_pitch)); + ++ if (!pSrc) { ++ pSrc = RADEONSolidPixmap(pScreen, cpu_to_le32(pSrcPicture->pSourcePict->solidFill.color)); ++ if (!pSrc) ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ + if (!RADEONSetupSourceTile(pSrcPicture, pSrc, FALSE, TRUE)) + return FALSE; + ++ if (pMaskPicture && !pMask) { ++ pMask = RADEONSolidPixmap(pScreen, cpu_to_le32(pMaskPicture->pSourcePict->solidFill.color)); ++ if (!pMask) { ++ if (!pSrcPicture->pDrawable) ++ pScreen->DestroyPixmap(pSrc); ++ RADEON_FALLBACK("Failed to create solid scratch pixmap\n"); ++ } ++ } ++ + RADEONPrepareCompositeCS(op, pSrcPicture, pMaskPicture, pDstPicture, + pSrc, pMask, pDst); + +-- +1.7.7.5 + diff --git a/extra/xf86-video-ati/PKGBUILD b/extra/xf86-video-ati/PKGBUILD index 09c47f815..341982471 100644 --- a/extra/xf86-video-ati/PKGBUILD +++ b/extra/xf86-video-ati/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 154644 2012-03-30 13:39:00Z andyrtr $ +# $Id: PKGBUILD 158858 2012-05-12 13:09:32Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Alexander Baldeck <alexander@archlinux.org> pkgname=xf86-video-ati pkgver=6.14.4 -pkgrel=2 +pkgrel=4 pkgdesc="X.org ati video driver" arch=('i686' 'x86_64') url="http://xorg.freedesktop.org/" @@ -14,11 +14,30 @@ makedepends=('xorg-server-devel>=1.11.99.902' 'xf86driproto' 'mesa' 'glproto') conflicts=('xorg-server<1.11.99.902') groups=('xorg-drivers' 'xorg') options=('!libtool') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -sha1sums=('75ad000bc00599e1797134f2d20d3094cba6af92') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 + git_fixes.diff + 0000-poor-man-s-solid-picture-support-for-r300-r600.patch + 0001-poor-man-s-solid-picture-support-for-evergreen.patch + 0002-poor-man-s-solid-picture-support-for-r100.patch + 0003-poor-man-s-solid-picture-support-for-r200.patch) +sha1sums=('75ad000bc00599e1797134f2d20d3094cba6af92' + '8b774e2f0310075cff2b7d874b0bed38d6245769' + '787f88c428f56ca6e96ba5eaf043a30bddfd0e23' + '69359a6623fe0f2214790c8ad40cac1a680a3825' + 'c0709ab82728e34838a8aeead7d1b79b7faf09bd' + '77a519e250c27a9fb94eeb52da655eed7c5f2eca') build() { cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np1 -i ${srcdir}/git_fixes.diff + + # fix rendering issues with recent cairo - testing attemp taken from https://bugs.freedesktop.org/show_bug.cgi?id=47266 + # and http://lists.x.org/archives/xorg-driver-ati/2012-April/022724.html + patch -Np1 -i ${srcdir}/0000-poor-man-s-solid-picture-support-for-r300-r600.patch + patch -Np1 -i ${srcdir}/0001-poor-man-s-solid-picture-support-for-evergreen.patch + patch -Np1 -i ${srcdir}/0002-poor-man-s-solid-picture-support-for-r100.patch + patch -Np1 -i ${srcdir}/0003-poor-man-s-solid-picture-support-for-r200.patch + ./configure --prefix=/usr --enable-dri make } diff --git a/extra/xf86-video-ati/git_fixes.diff b/extra/xf86-video-ati/git_fixes.diff new file mode 100644 index 000000000..0c4518319 --- /dev/null +++ b/extra/xf86-video-ati/git_fixes.diff @@ -0,0 +1,33 @@ +From d282719a9c2fb0ee32830aa75b8dfbb9392954ed Mon Sep 17 00:00:00 2001 +From: Jerome Glisse <jglisse@redhat.com> +Date: Wed, 04 Apr 2012 21:08:30 +0000 +Subject: r6xx-r9xx: force 1D tiling for buffer with height < 64 + +Due to some old kernel issue, height is 8 aligned insided the ddx +For buffer with height btw 57 & 63 this lead ddx to believe it can +allocate a 2D tiled surface while mesa will not align height and +will assume 1D tiled leading to disagreement and rendering issue. +This patch force buffer with height < 64 to be 1D tiled. + +Signed-off-by: Jerome Glisse <jglisse@redhat.com> +--- +diff --git a/src/radeon_exa.c b/src/radeon_exa.c +index 99a5806..270dad4 100644 +--- a/src/radeon_exa.c ++++ b/src/radeon_exa.c +@@ -511,6 +511,13 @@ void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height, + surface.last_level = 0; + surface.bpe = cpp; + surface.nsamples = 1; ++ if (height < 64) { ++ /* disable 2d tiling for small surface to work around ++ * the fact that ddx align height to 8 pixel for old ++ * obscure reason i can't remember ++ */ ++ tiling &= ~RADEON_TILING_MACRO; ++ } + surface.flags = RADEON_SURF_SCANOUT; + surface.flags |= RADEON_SURF_SET(RADEON_SURF_TYPE_2D, TYPE); + surface.flags |= RADEON_SURF_SET(RADEON_SURF_MODE_LINEAR, MODE); +-- +cgit v0.9.0.2-2-gbebe diff --git a/extra/xf86-video-i740/PKGBUILD b/extra/xf86-video-i740/PKGBUILD index 04217ad7e..6e796ce50 100644 --- a/extra/xf86-video-i740/PKGBUILD +++ b/extra/xf86-video-i740/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 153340 2012-03-12 20:53:33Z andyrtr $ +# $Id: PKGBUILD 158884 2012-05-12 17:37:01Z andyrtr $ #Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=xf86-video-i740 -pkgver=1.3.2 -pkgrel=8 +pkgver=1.3.3 +pkgrel=1 pkgdesc="X.org Intel i740 video driver" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" @@ -14,7 +14,7 @@ conflicts=('xorg-server<1.11.99.903') groups=('xorg-drivers' 'xorg') options=('!libtool') source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) -sha1sums=('aadd2168153f780c487778e5fdda5473ed4b243d') +sha1sums=('885660aad0d558ae0fb69f3b639c03f084a7a615') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/xf86-video-s3/PKGBUILD b/extra/xf86-video-s3/PKGBUILD index 613fd4831..8c9a6b8a7 100644 --- a/extra/xf86-video-s3/PKGBUILD +++ b/extra/xf86-video-s3/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 155417 2012-04-03 11:24:01Z jgc $ +# $Id: PKGBUILD 158890 2012-05-12 18:14:42Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=xf86-video-s3 -pkgver=0.6.3 -pkgrel=8 +pkgver=0.6.4 +pkgrel=1 pkgdesc="X.org S3 video driver" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" @@ -13,15 +13,13 @@ makedepends=('xorg-server-devel>=1.12.0') conflicts=('xorg-server<1.12.0') options=('!libtool') groups=('xorg-drivers' 'xorg') -source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 - git-fixes.patch) -md5sums=('5eb06d88533fb327d067928faeb20860' - '8b3033b16ee826a9e0870dd80717eafd') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('9170e57f966d810fdfc2de4473a7c8e814019c31') build() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i "${srcdir}/git-fixes.patch" - autoreconf -fi + #patch -Np1 -i "${srcdir}/git-fixes.patch" + #autoreconf -fi ./configure --prefix=/usr make } diff --git a/extra/xfce4-genmon-plugin/PKGBUILD b/extra/xfce4-genmon-plugin/PKGBUILD index 4ed4fe61a..a67ddcbd3 100644 --- a/extra/xfce4-genmon-plugin/PKGBUILD +++ b/extra/xfce4-genmon-plugin/PKGBUILD @@ -1,33 +1,38 @@ -# $Id: PKGBUILD 157859 2012-04-30 04:20:27Z foutrelis $ -# Maintainer: AndyRTR <andyrtr@archlinux.org> +# $Id: PKGBUILD 158882 2012-05-12 17:34:09Z foutrelis $ +# Maintainer: +# Contributor: AndyRTR <andyrtr@archlinux.org> # Contributor: Tobias Kieslich <tobias (at) archlinux.org> pkgname=xfce4-genmon-plugin -pkgver=3.3.1 -pkgrel=2 +pkgver=3.4.0 +pkgrel=1 pkgdesc="plugin that monitors customizable programs stdout for the Xfce4 panel" -arch=(i686 x86_64 'mips64el') +arch=('i686' 'x86_64' 'mips64el') license=('LGPL2.1') url="http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin" groups=('xfce4-goodies') -depends=('xfce4-panel' 'libxfcegui4') +depends=('xfce4-panel') makedepends=('intltool') options=('!libtool') -source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/3.3/${pkgname}-${pkgver}.tar.bz2) -md5sums=('e0022e15d4211a87c17d9f252b68e1d3') +source=(http://archive.xfce.org/src/panel-plugins/$pkgname/3.4/$pkgname-$pkgver.tar.bz2) +sha256sums=('b0a5337b49c85623dc89f3c9e47c7374b1d466af2418033d2d6dfc57a9790387') build() { - cd ${srcdir}/${pkgname}-${pkgver} - ./configure --prefix=/usr \ - --sysconfdir=/etc \ - --libexecdir=/usr/lib \ - --localstatedir=/var \ - --disable-static \ - --disable-debug + cd "$srcdir/$pkgname-3.4" + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --disable-static \ + --disable-debug make } package() { - cd ${srcdir}/${pkgname}-${pkgver} - make DESTDIR=${pkgdir} install + cd "$srcdir/$pkgname-3.4" + make DESTDIR="$pkgdir" install } + +# vim:set ts=2 sw=2 et: diff --git a/extra/xorg-server/EXA_Fall_back_earlier_and_more_thoroughly_from_exaGlyphsV2.diff b/extra/xorg-server/EXA_Fall_back_earlier_and_more_thoroughly_from_exaGlyphsV2.diff new file mode 100644 index 000000000..12c110151 --- /dev/null +++ b/extra/xorg-server/EXA_Fall_back_earlier_and_more_thoroughly_from_exaGlyphsV2.diff @@ -0,0 +1,116 @@ +--- xorg-server-1.12.1/exa/exa_glyphs.c 2012-03-30 04:57:25.000000000 +0200 ++++ xorg-server-1.12.1/exa_glyphs.c.new 2012-04-15 11:48:51.683214230 +0200 +@@ -686,6 +686,7 @@ + PixmapPtr pMaskPixmap = 0; + PicturePtr pMask = NULL; + ScreenPtr pScreen = pDst->pDrawable->pScreen; ++ ExaScreenPriv(pScreen); + int width = 0, height = 0; + int x, y; + int first_xOff = list->xOff, first_yOff = list->yOff; +@@ -697,7 +698,6 @@ + ExaGlyphBuffer buffer; + + if (maskFormat) { +- ExaScreenPriv(pScreen); + GCPtr pGC; + xRectangle rect; + +@@ -719,22 +719,20 @@ + maskFormat->depth, + CREATE_PIXMAP_USAGE_SCRATCH); + if (!pMaskPixmap) +- return; ++ goto fallback; + component_alpha = NeedsComponent(maskFormat->format); + pMask = CreatePicture(0, &pMaskPixmap->drawable, + maskFormat, CPComponentAlpha, &component_alpha, + serverClient, &error); +- if (!pMask || +- (!component_alpha && pExaScr->info->CheckComposite && +- !(*pExaScr->info->CheckComposite) (PictOpAdd, pSrc, NULL, pMask))) ++ (*pScreen->DestroyPixmap) (pMaskPixmap); ++ if (!pMask) ++ goto fallback; ++ ++ if (!component_alpha && pExaScr->info->CheckComposite && ++ !(*pExaScr->info->CheckComposite) (PictOpAdd, pSrc, NULL, pMask)) + { + PictFormatPtr argbFormat; + +- (*pScreen->DestroyPixmap) (pMaskPixmap); +- +- if (!pMask) +- return; +- + /* The driver can't seem to composite to a8, let's try argb (but + * without component-alpha) */ + FreePicture((pointer) pMask, (XID) 0); +@@ -748,15 +746,25 @@ + maskFormat->depth, + CREATE_PIXMAP_USAGE_SCRATCH); + if (!pMaskPixmap) +- return; ++ goto fallback; + + pMask = CreatePicture(0, &pMaskPixmap->drawable, maskFormat, 0, 0, + serverClient, &error); +- if (!pMask) { +- (*pScreen->DestroyPixmap) (pMaskPixmap); +- return; +- } ++ (*pScreen->DestroyPixmap) (pMaskPixmap); ++ if (!pMask) ++ goto fallback; + } ++ ++ if (pExaScr->info->CheckComposite && ++ (!(*pExaScr->info->CheckComposite) (PictOpAdd, pSrc, NULL, pMask) || ++ (!(*pExaScr->info->CheckComposite) (op, pSrc, pMask, pDst) && ++ (op != PictOpOver || ++ !(*pExaScr->info->CheckComposite) (PictOpOutReverse, pSrc, pMask, pDst) || ++ !(*pExaScr->info->CheckComposite) (PictOpOver, pSrc, pMask, pDst))))) { ++ FreePicture ((pointer) pMask, (XID) 0); ++ goto fallback; ++ } ++ + pGC = GetScratchGC(pMaskPixmap->drawable.depth, pScreen); + ValidateGC(&pMaskPixmap->drawable, pGC); + rect.x = 0; +@@ -769,6 +777,13 @@ + y = -extents.y1; + } + else { ++ if (pExaScr->info->CheckComposite && ++ !(*pExaScr->info->CheckComposite) (op, pSrc, NULL, pDst) && ++ (op != PictOpOver || ++ !(*pExaScr->info->CheckComposite) (PictOpOutReverse, pSrc, NULL, pDst) || ++ !(*pExaScr->info->CheckComposite) (PictOpOver, pSrc, NULL, pDst))) ++ goto fallback; ++ + x = 0; + y = 0; + } +@@ -834,6 +849,10 @@ + xSrc + x - first_xOff, + ySrc + y - first_yOff, 0, 0, x, y, width, height); + FreePicture((pointer) pMask, (XID) 0); +- (*pScreen->DestroyPixmap) (pMaskPixmap); + } ++ ++ return; ++ ++fallback: ++ ExaCheckGlyphs(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, list, glyphs); + } +--- xorg-server-1.12.1/exa/exa_render.c 2012-03-30 04:57:25.000000000 +0200 ++++ xorg-server-1.12.1/exa_render.c.new 2012-04-15 11:50:35.272482047 +0200 +@@ -878,7 +878,7 @@ + Bool saveMaskRepeat = pMask ? pMask->repeat : 0; + RegionRec region; + +- if (pExaScr->swappedOut) ++ if (pExaScr->fallback_counter || pExaScr->swappedOut) + goto fallback; + + /* Remove repeat in source if useless */ diff --git a/extra/xorg-server/PKGBUILD b/extra/xorg-server/PKGBUILD index ebad4ce88..55db80a1f 100644 --- a/extra/xorg-server/PKGBUILD +++ b/extra/xorg-server/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 156103 2012-04-14 07:35:46Z andyrtr $ +# $Id: PKGBUILD 158860 2012-05-12 13:09:37Z andyrtr $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgbase=xorg-server pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel') pkgver=1.12.1 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64' 'mips64el') license=('custom') url="http://xorg.freedesktop.org" @@ -17,6 +17,7 @@ options=('!libtool') source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2 autoconfig-nvidia.patch autoconfig-sis.patch + EXA_Fall_back_earlier_and_more_thoroughly_from_exaGlyphsV2.diff #git-fixes.patch xvfb-run xvfb-run.1 @@ -25,6 +26,7 @@ source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2 sha1sums=('922b963901f4711449b53fb32ce3e14f5b642766' '63836e5cfb4ae7353fb2e31239a544409c7ead32' '175de5630b43dbc97778adfba5563b7fdd77f11f' + '4acb39587f73bcbb9a331377d6ef99cb73eb95a8' 'c94f742d3f9cabf958ae58e4015d9dd185aabedc' '6838fc00ef4618c924a77e0fb03c05346080908a' '993798f3d22ad672d769dae5f48d1fa068d5578f' @@ -39,6 +41,11 @@ build() { # Use unofficial imedia SiS driver for supported SiS devices patch -Np0 -i "${srcdir}/autoconfig-sis.patch" + # fix glitches and crashes with EXA and cairo 1.12 + # taken from https://bugs.freedesktop.org/show_bug.cgi?id=47266 + # and reworked for 1.12.1 changes + patch -Np1 -i ${srcdir}/EXA_Fall_back_earlier_and_more_thoroughly_from_exaGlyphsV2.diff + # Add post-release patches from 1.11 branch # patch -Np1 -i "${srcdir}/git-fixes.patch" diff --git a/testing/ntfs-3g_ntfsprogs/PKGBUILD b/testing/ntfs-3g_ntfsprogs/PKGBUILD deleted file mode 100644 index d1084ddee..000000000 --- a/testing/ntfs-3g_ntfsprogs/PKGBUILD +++ /dev/null @@ -1,54 +0,0 @@ -# $Id: PKGBUILD 158659 2012-05-05 16:20:23Z tomegun $ -# Maintainer: Tom Gundersen <teg@jklm.no> -# Contributor: Ronald van Haren <ronald.archlinux.org> -# Contributor: Thomas Bächler <thomas.archlinux.org> - -pkgbase=ntfs-3g_ntfsprogs -pkgname=('ntfs-3g' 'ntfsprogs') -pkgver=2012.1.15 -pkgrel=3 -url="http://www.tuxera.com" -arch=('i686' 'x86_64') -license=('GPL2') -depends=('glibc' 'fuse') -makedepends=('pkgconfig') -options=('!libtool') -source=(http://tuxera.com/opensource/$pkgbase-$pkgver.tgz) -sha1sums=('8d55cf49afde172fefa369a0a85289e09c4d7bbb') - -build() { - cd "$srcdir/$pkgbase-$pkgver" - ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \ - --with-fuse=external --disable-static \ - --enable-posix-acls --mandir=/usr/share/man - make -} - -package_ntfs-3g() { - pkgdesc="Stable read and write NTFS driver" - - for DIR in src libntfs-3g include; do - cd "$srcdir/$pkgbase-$pkgver/$DIR" - make DESTDIR="$pkgdir" install - done - - mv "$pkgdir"/lib/* "$pkgdir"/usr/lib/ - mv "$pkgdir"/bin/* "$pkgdir"/usr/bin/ - rm -rf "$pkgdir"/{lib,{s,}bin} - - cd "$pkgdir"/usr/bin - ln -s ntfs-3g mount.ntfs - ln -s ntfs-3g mount.ntfs-3g - ln -s lowntfs-3g mount.lowntfs-3g -} - -package_ntfsprogs() { - pkgdesc="NTFS filesystem utilities" - depends=('util-linux' 'ntfs-3g') - - cd "$srcdir/$pkgbase-$pkgver/ntfsprogs" - make DESTDIR="$pkgdir" install - - mv "$pkgdir"/sbin/* "$pkgdir"/usr/bin/ - rm -rf "$pkgdir"/sbin -} |