summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/awesome/01-fix_glib2_build.patch31
-rw-r--r--community/awesome/PKGBUILD64
-rw-r--r--community/awesome/awesome.desktop7
-rw-r--r--community/bitcoin/PKGBUILD20
-rw-r--r--community/blender/PKGBUILD8
-rw-r--r--community/cuda-sdk/PKGBUILD37
-rw-r--r--community/dos2unix/PKGBUILD5
-rw-r--r--community/go/PKGBUILD48
-rw-r--r--community/gtkwave/PKGBUILD6
-rw-r--r--community/gtranslator/PKGBUILD7
-rw-r--r--community/gtranslator/gtranslator.changelog3
-rw-r--r--community/guichan/PKGBUILD31
-rw-r--r--community/i3lock/PKGBUILD8
-rw-r--r--community/i3status/PKGBUILD6
-rw-r--r--community/ipset/PKGBUILD33
-rw-r--r--community/ipset/ipset.conf3
-rw-r--r--community/ipset/ipset.rc39
-rw-r--r--community/ipset/ipset.service12
-rw-r--r--community/ipset/ipset.systemd8
-rw-r--r--community/kid3/PKGBUILD14
-rw-r--r--community/kid3/kid3.changelog3
-rw-r--r--community/lazarus/ChangeLog4
-rw-r--r--community/lazarus/PKGBUILD7
-rw-r--r--community/libquvi/PKGBUILD11
-rw-r--r--community/luajit/PKGBUILD9
-rw-r--r--community/lxdm/PKGBUILD10
-rw-r--r--community/lxdm/greeter-session.patch13
-rwxr-xr-xcommunity/mathomatic/PKGBUILD6
-rw-r--r--community/minidlna/PKGBUILD5
-rw-r--r--community/mosh/PKGBUILD33
-rw-r--r--community/myodbc/PKGBUILD11
-rw-r--r--community/mythplugins/PKGBUILD18
-rw-r--r--community/mythplugins/mythplugins-mythweb.install4
-rw-r--r--community/mythplugins/php54.patch35
-rw-r--r--community/onboard/PKGBUILD41
-rw-r--r--community/onboard/fix_encoding_mismatch.patch187
-rw-r--r--community/onboard/fix_unicode_translations.patch247
-rw-r--r--community/onboard/onboard.install13
-rw-r--r--community/openbox/PKGBUILD52
-rw-r--r--community/openbox/movesize.patch19
-rw-r--r--community/openbox/title-matching.patch11
-rw-r--r--community/php-geoip/PKGBUILD6
-rw-r--r--community/php-memcache/PKGBUILD4
-rw-r--r--community/php-memcached/PKGBUILD4
-rw-r--r--community/pigeonhole/PKGBUILD4
-rw-r--r--community/powertop/PKGBUILD30
-rw-r--r--community/powertop/powertop.changelog2
-rw-r--r--community/pptpd/PKGBUILD11
-rw-r--r--community/pptpd/unrecognized-opt.patch13
-rw-r--r--community/python2-virtkey/PKGBUILD29
-rw-r--r--community/qtcreator/PKGBUILD11
-rw-r--r--community/quvi/PKGBUILD8
-rw-r--r--community/r8168-lts/PKGBUILD10
-rw-r--r--community/roxterm/PKGBUILD8
-rw-r--r--community/shotwell/PKGBUILD6
-rw-r--r--community/soundkonverter/PKGBUILD6
-rw-r--r--community/sslh/PKGBUILD22
-rw-r--r--community/sslh/sslh.conf2
-rw-r--r--community/sslh/sslh.rc33
-rw-r--r--community/xapian-core/PKGBUILD6
-rw-r--r--community/xdebug/PKGBUILD6
-rw-r--r--core/gcc/PKGBUILD12
-rw-r--r--core/glib2/PKGBUILD10
-rw-r--r--core/gmp/PKGBUILD8
-rw-r--r--core/isl/PKGBUILD11
-rw-r--r--core/kmod/0001-libkmod-file-gracefully-handle-errors-from-zlib.patch35
-rw-r--r--core/kmod/0002-depmod-report-failures-in-loading-symbols.patch34
-rw-r--r--core/kmod/PKGBUILD20
-rw-r--r--core/libusb-compat/PKGBUILD14
-rw-r--r--core/mpfr/PKGBUILD6
-rw-r--r--core/mpfr/mpfr-3.1.0.p10.patch1896
-rw-r--r--core/openssl/PKGBUILD6
-rw-r--r--extra/cairo/PKGBUILD45
-rw-r--r--extra/cairo/git_fixes.patch1086
-rw-r--r--extra/cifs-utils/PKGBUILD14
-rw-r--r--extra/cifs-utils/mount.cifs-fix-up-some-D_FORTIFY_SOURCE-2-warnings.patch72
-rw-r--r--extra/dovecot/PKGBUILD8
-rw-r--r--extra/fcitx/PKGBUILD18
-rw-r--r--extra/ffmpeg/PKGBUILD6
-rw-r--r--extra/git/PKGBUILD8
-rw-r--r--extra/glade/PKGBUILD6
-rw-r--r--extra/graphviz/PKGBUILD4
-rw-r--r--extra/gtk3/PKGBUILD8
-rw-r--r--extra/gtkhtml4/PKGBUILD11
-rw-r--r--extra/gtkhtml4/fix-selection-behaviour-in-iframe.patch35
-rw-r--r--extra/gvfs/PKGBUILD9
-rw-r--r--extra/gvfs/gvfs-1.12.2-afp-g_clear_object.patch35
-rw-r--r--extra/ifplugd/PKGBUILD6
-rw-r--r--extra/ifplugd/ifplugd6
-rw-r--r--extra/kdebase-workspace/PKGBUILD12
-rw-r--r--extra/kdebase-workspace/fix-krunner-crash.patch13
-rw-r--r--extra/kdeplasma-applets-networkmanagement/PKGBUILD4
-rw-r--r--extra/libvncserver/PKGBUILD8
-rw-r--r--extra/libvpx/PKGBUILD8
-rw-r--r--extra/libxi/PKGBUILD6
-rw-r--r--extra/mpg123/PKGBUILD8
-rw-r--r--extra/mysql/PKGBUILD6
-rw-r--r--extra/nautilus/PKGBUILD11
-rw-r--r--extra/nautilus/samba-crash.patch32
-rw-r--r--extra/ntfs-3g_ntfsprogs/PKGBUILD17
-rw-r--r--extra/nx/PKGBUILD8
-rw-r--r--extra/openconnect/PKGBUILD12
-rw-r--r--extra/php-apc/PKGBUILD4
-rw-r--r--extra/php-xcache/PKGBUILD40
-rw-r--r--extra/php-xcache/xcache.ini3
-rw-r--r--extra/php/PKGBUILD63
-rw-r--r--extra/php/php-fpm.conf.in.patch4
-rw-r--r--extra/php/php.ini.patch16
-rw-r--r--extra/pidgin/PKGBUILD30
-rw-r--r--extra/pulseaudio/PKGBUILD40
-rw-r--r--extra/pygobject/PKGBUILD8
-rw-r--r--extra/qemu-kvm/PKGBUILD23
-rw-r--r--extra/qemu/PKGBUILD20
-rw-r--r--extra/slim/PKGBUILD64
-rw-r--r--extra/slim/fix-numlock-1.3.3.patch46
-rw-r--r--extra/slim/pam.d1
-rw-r--r--extra/slim/slim.service10
-rw-r--r--extra/taglib/PKGBUILD11
-rw-r--r--extra/telepathy-rakia/0001-Check-for-gio-to-avoid-linking-issue.patch29
-rw-r--r--extra/telepathy-rakia/PKGBUILD18
-rw-r--r--extra/vpnc/PKGBUILD8
-rw-r--r--extra/webrtc-audio-processing/PKGBUILD29
-rw-r--r--extra/xf86-input-synaptics/PKGBUILD6
-rw-r--r--extra/xf86-input-wacom/PKGBUILD10
-rw-r--r--extra/xf86-video-apm/PKGBUILD13
-rw-r--r--extra/xf86-video-ati/0000-poor-man-s-solid-picture-support-for-r300-r600.patch571
-rw-r--r--extra/xf86-video-ati/0001-poor-man-s-solid-picture-support-for-evergreen.patch290
-rw-r--r--extra/xf86-video-ati/0002-poor-man-s-solid-picture-support-for-r100.patch182
-rw-r--r--extra/xf86-video-ati/0003-poor-man-s-solid-picture-support-for-r200.patch179
-rw-r--r--extra/xf86-video-ati/PKGBUILD27
-rw-r--r--extra/xf86-video-ati/git_fixes.diff33
-rw-r--r--extra/xf86-video-i740/PKGBUILD8
-rw-r--r--extra/xf86-video-s3/PKGBUILD16
-rw-r--r--extra/xfce4-genmon-plugin/PKGBUILD39
-rw-r--r--extra/xorg-server/EXA_Fall_back_earlier_and_more_thoroughly_from_exaGlyphsV2.diff116
-rw-r--r--extra/xorg-server/PKGBUILD11
-rw-r--r--testing/ntfs-3g_ntfsprogs/PKGBUILD54
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
-}