summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/acpid/PKGBUILD6
-rw-r--r--community/assimp/PKGBUILD29
-rw-r--r--community/bitcoin/PKGBUILD62
-rw-r--r--community/bitcoin/bitcoin-qt.install11
-rw-r--r--community/desmume/PKGBUILD21
-rw-r--r--community/glfw/PKGBUILD6
-rw-r--r--community/midori/PKGBUILD6
-rw-r--r--community/mythtv/PKGBUILD8
-rw-r--r--community/mythtv/mythbackend.conf1
-rw-r--r--community/naev/PKGBUILD6
-rw-r--r--community/sslh/PKGBUILD29
-rw-r--r--community/sslh/sslh.rc4
-rw-r--r--community/sslh/sslh.service9
-rw-r--r--community/uget/PKGBUILD13
-rw-r--r--core/expat/PKGBUILD2
-rw-r--r--core/gmp/PKGBUILD2
-rw-r--r--core/pkg-config/PKGBUILD2
-rw-r--r--extra/llvm/PKGBUILD4
-rw-r--r--extra/tomcat-native/PKGBUILD6
-rw-r--r--extra/xf86-video-intel/0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch533
-rw-r--r--extra/xf86-video-intel/0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch50
-rw-r--r--extra/xf86-video-intel/0003-uxa-Remove-hook-for-CompositeRectangles.patch255
-rw-r--r--extra/xf86-video-intel/0004-uxa-Remove-broken-render-glyphs-to-dst.patch391
-rw-r--r--extra/xf86-video-intel/0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch40
-rw-r--r--extra/xf86-video-intel/PKGBUILD27
-rw-r--r--kernels/linux-libre-xen/PKGBUILD22
-rw-r--r--kernels/linux-libre-xen/config.i6863
-rw-r--r--kernels/linux-libre-xen/ext4-options.patch3
-rw-r--r--kernels/linux-libre-xen/linux-libre-xen.install2
-rw-r--r--libre/linux-libre-api-headers/PKGBUILD21
-rw-r--r--libre/linux-libre-lts/.directory2
-rw-r--r--libre/linux-libre-lts/PKGBUILD4
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.install2
-rw-r--r--libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch61
34 files changed, 1552 insertions, 91 deletions
diff --git a/community/acpid/PKGBUILD b/community/acpid/PKGBUILD
index 66537479d..53ff54a87 100644
--- a/community/acpid/PKGBUILD
+++ b/community/acpid/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 68371 2012-03-23 10:07:50Z seblu $
+# $Id: PKGBUILD 69396 2012-04-15 17:01:41Z seblu $
# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org>
# Contributor: xduugu
# Contributor: Manolis Tzanidakis
# Contributor: Jonathan Schmidt <j.schmidt@archlinux.us
pkgname=acpid
-pkgver=2.0.15
+pkgver=2.0.16
pkgrel=1
pkgdesc='A daemon for delivering ACPI power management events with netlink support'
arch=('i686' 'x86_64')
@@ -20,7 +20,7 @@ source=("http://www.tedfelix.com/linux/$pkgname-$pkgver.tar.xz"
'anything'
'handler.sh'
'acpid.conf.d')
-md5sums=('1b1c8775adab6a994a386c45af6b86dc'
+md5sums=('d59fc02c9c34f0d5c137495302e2c074'
'd69203a032c4583f9abaafcf21a7ed84'
'2d37b98d6e74bab815604b8b48c6cfd4'
'615439f4a89716c747907d4fc3c8df75'
diff --git a/community/assimp/PKGBUILD b/community/assimp/PKGBUILD
new file mode 100644
index 000000000..8dc5bff69
--- /dev/null
+++ b/community/assimp/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: jepaan <jepaan at hotmail dot com>
+
+pkgname=assimp
+pkgver=2.0.863
+pkgrel=1
+pkgdesc="Portable Open Source library to import various well-known 3D model formats in an uniform manner"
+arch=('i686' 'x86_64')
+license=('BSD')
+makedepends=('cmake' 'boost')
+url=('http://assimp.sourceforge.net/index.html')
+source=("http://downloads.sourceforge.net/assimp/assimp--${pkgver}-sdk.zip")
+md5sums=('9f41662501bd9d9533c4cf03b7c25d5b')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}--${pkgver}-sdk \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+
+ make DESTDIR=$pkgdir install
+ install -Dm644 ${srcdir}/${pkgname}--${pkgver}-sdk/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/bitcoin/PKGBUILD b/community/bitcoin/PKGBUILD
new file mode 100644
index 000000000..00d2cc85f
--- /dev/null
+++ b/community/bitcoin/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 69400 2012-04-15 20:25:26Z tredaelli $
+# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
+# Contributor: shahid <helllamer@gmail.com>
+
+pkgbase=bitcoin
+pkgname=('bitcoin-daemon' 'bitcoin-qt')
+pkgver=0.6.0
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.bitcoin.org/"
+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')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver-linux/src"
+
+ # FIXME GCC 4.7.0 is too strict
+ echo "QMAKE_CXXFLAGS += $CXXFLAGS -fpermissive" >> bitcoin-qt.pro
+
+ # and make qt gui
+ qmake
+ make
+
+ # make bitcoind
+ make -f makefile.unix -C src CXXFLAGS="$CXXFLAGS -fpermissive" USE_UPNP=1
+}
+
+
+package_bitcoin-qt() {
+ pkgdesc="Bitcoin is a peer-to-peer network based digital currency - QT"
+ depends=(boost-libs qt miniupnpc)
+ install=bitcoin-qt.install
+
+ cd "$srcdir/$pkgbase-$pkgver-linux/src"
+ install -Dm755 bitcoin-qt "$pkgdir"/usr/bin/bitcoin-qt
+ install -Dm644 contrib/debian/bitcoin-qt.desktop \
+ "$pkgdir"/usr/share/applications/bitcoin.desktop
+ install -Dm644 share/pixmaps/bitcoin80.xpm \
+ "$pkgdir"/usr/share/pixmaps/bitcoin80.xpm
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+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"
+ install -Dm755 src/bitcoind "$pkgdir"/usr/bin/bitcoind
+ install -Dm644 contrib/debian/examples/bitcoin.conf \
+ "$pkgdir/usr/share/doc/$pkgname/examples/bitcoin.conf"
+ install -Dm644 contrib/debian/manpages/bitcoind.1 \
+ "$pkgdir"/usr/share/man/man1/bitcoind.1
+ install -Dm644 contrib/debian/manpages/bitcoin.conf.5 \
+ "$pkgdir"/usr/share/man/man5/bitcoin.conf.5
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
diff --git a/community/bitcoin/bitcoin-qt.install b/community/bitcoin/bitcoin-qt.install
new file mode 100644
index 000000000..f98ba7338
--- /dev/null
+++ b/community/bitcoin/bitcoin-qt.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/desmume/PKGBUILD b/community/desmume/PKGBUILD
index 5138954fd..187177a00 100644
--- a/community/desmume/PKGBUILD
+++ b/community/desmume/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 67526 2012-03-13 10:38:03Z giovanni $
+# $Id: PKGBUILD 69392 2012-04-15 16:03:24Z schuay $
# Maintainer: Jonathan Conder <jonno dot conder at gmail dot com>
# Maintainer: Brad Fanella <bradfanella@archlinux.us>
# Contributor: Arkham <arkham at archlinux dot us>
@@ -11,27 +11,22 @@
# Contributor: Asher256 <achrafcherti at gmail dot com>
pkgname=desmume
-pkgver=0.9.7
-pkgrel=4
+pkgver=0.9.8
+pkgrel=1
pkgdesc="Nintendo DS emulator"
arch=('i686' 'x86_64')
url="http://desmume.org/"
license=('GPL')
-depends=('agg' 'gtkglext' 'libglade' 'desktop-file-utils' 'libpcap')
+depends=('agg' 'gtkglext' 'libglade' 'desktop-file-utils' 'libpcap'
+ 'soundtouch' 'alsa-lib' 'zziplib')
makedepends=('intltool')
-replaces=('desmume-core' 'desmume-cli' 'desmume-gtk' 'desmume-glade')
install=desmume.install
-source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
- 'desmume-0.9.7-zlib.1.2.6-fix.patch')
-sha256sums=('0a0f7ef3cc76ff0bbc6f3df47c3689653617074ea7ffc354e9fa1240c5336523'
- 'baaf68be32f09690975d6309af6988c038e708ef322ed7e4b370d87087c7b6ba')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
build() {
cd "$srcdir/$pkgname-$pkgver"
- patch -Np1 -i "${srcdir}/desmume-0.9.7-zlib.1.2.6-fix.patch"
- ./configure --prefix=/usr \
- --enable-wifi
+ ./configure --prefix=/usr --enable-wifi
make
}
@@ -40,3 +35,5 @@ package() {
make DESTDIR="$pkgdir/" install
}
+
+sha256sums=('f405b44e2d7ab3578d6be91a6546bbaa0afc60b2a8d193e4415fea5c5332d585')
diff --git a/community/glfw/PKGBUILD b/community/glfw/PKGBUILD
index 452f0cb2e..dda84c6ff 100644
--- a/community/glfw/PKGBUILD
+++ b/community/glfw/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 68357 2012-03-22 23:04:26Z svenstaro $
+# $Id: PKGBUILD 69414 2012-04-16 00:32:44Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: philefou <tuxication AT gmail DOT com>
# Contributor: lindquist <tomas@famolsen.dk>
@@ -7,7 +7,7 @@
# Contributor: SpepS <dreamspepser at yahoo dot it>
pkgname=glfw
-pkgver=2.7.4
+pkgver=2.7.5
pkgrel=1
pkgdesc="A free, open source, portable framework for OpenGL application development"
arch=('i686' 'x86_64')
@@ -16,7 +16,7 @@ license=('custom:ZLIB')
depends=('libgl' 'libxrandr')
makedepends=('mesa')
source=("http://switch.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2")
-md5sums=('cf3843ff6b4324a3e8003252f6b20cd0')
+md5sums=('b9ef11d08b6283b1b4a274fcf995fd79')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/midori/PKGBUILD b/community/midori/PKGBUILD
index de185bc66..22da899e8 100644
--- a/community/midori/PKGBUILD
+++ b/community/midori/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 67337 2012-03-09 05:57:19Z bpiotrowski $
+# $Id: PKGBUILD 69383 2012-04-15 05:22:45Z bpiotrowski $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: rabyte <rabyte.at.gmail.dot.com>
# Contributor: Johannes Krampf <wuischke.at.amule.dot.org>
pkgname=midori
-pkgver=0.4.4
+pkgver=0.4.5
pkgrel=1
pkgdesc="A lightweight web browser based on Gtk WebKit"
arch=('i686' 'x86_64')
@@ -15,7 +15,7 @@ depends=('libwebkit>=1.3.13' 'libunique' 'hicolor-icon-theme' 'desktop-file-util
makedepends=('libxml2' 'intltool' 'gtk-doc' 'librsvg' 'python2>=2.7.1' 'vala') # 'git'
optdepends=('vala: for use in extensions')
source=(http://archive.xfce.org/src/apps/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
-md5sums=('a6578ebfd237c0f22cce49113b95f70c')
+md5sums=('14288197a1e2251b7c0803e1448daa0e')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/community/mythtv/PKGBUILD b/community/mythtv/PKGBUILD
index 37a58eecd..108d6605c 100644
--- a/community/mythtv/PKGBUILD
+++ b/community/mythtv/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 69262 2012-04-11 06:53:29Z jconder $
+# $Id: PKGBUILD 69416 2012-04-16 01:26:19Z jconder $
# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Juergen Hoetzel <juergen@archlinux.org>
@@ -7,7 +7,7 @@
pkgname=mythtv
pkgver=0.25
-pkgrel=1
+pkgrel=2
epoch=1
pkgdesc="A Homebrew PVR project"
arch=('i686' 'x86_64')
@@ -24,6 +24,8 @@ optdepends=('glew: for GPU commercial flagging'
'libxml2: to read blu-ray metadata'
'openssl: for AirTunes (RAOP) support'
'xmltv: to download tv listings')
+conflicts=('myththemes')
+replaces=('myththemes')
backup=('etc/conf.d/mythbackend')
install='mythtv.install'
source=("ftp://ftp.osuosl.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2"
@@ -33,7 +35,7 @@ source=("ftp://ftp.osuosl.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2"
md5sums=('e49c81de40e279c83dcb1b2aa9a45748'
'6090f5f22a8584db80b76cf19869ee41'
'62fd98347c56b1d9b795792f83269d25'
- '1f72db0586f97a7c3fd3155dfa9a6c6f')
+ 'ab962d83614cbd0ac11ce3fcc929829d')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/mythtv/mythbackend.conf b/community/mythtv/mythbackend.conf
index 15a248450..49bbca877 100644
--- a/community/mythtv/mythbackend.conf
+++ b/community/mythtv/mythbackend.conf
@@ -1,4 +1,3 @@
-#!/bin/bash
#
# Copyright (c) by the MythTV Development Team.
#
diff --git a/community/naev/PKGBUILD b/community/naev/PKGBUILD
index d16836288..b5b065b6e 100644
--- a/community/naev/PKGBUILD
+++ b/community/naev/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 68487 2012-03-26 07:00:35Z svenstaro $
+# $Id: PKGBUILD 69406 2012-04-15 22:34:54Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Johan Rehnberg <cleanrock@gmail.com>
pkgname=naev
-pkgver=0.5.2
+pkgver=0.5.3
pkgrel=1
pkgdesc='2D action/rpg space game'
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ license=('GPL3')
depends=('openal' 'libvorbis' 'sdl_image' 'sdl_mixer' 'libgl' 'libxml2' 'freetype2' 'libpng' 'naev-data')
makedepends=('freeglut')
source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('c23a2ca80553a7d1d75497dc6672e61b')
+md5sums=('bec719b3daa33ec190d785120a7b0159')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/sslh/PKGBUILD b/community/sslh/PKGBUILD
index 2f882aa11..297188a87 100644
--- a/community/sslh/PKGBUILD
+++ b/community/sslh/PKGBUILD
@@ -1,22 +1,24 @@
-# $Id$
-# Maintainer: Sebastien Luttringer <seblu+arch@seblu.net>
+# $Id: PKGBUILD 69412 2012-04-15 23:37:55Z 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.10
-pkgrel=5
+pkgrel=6
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')
-source=("http://www.rutschle.net/tech/${pkgname}-${pkgver}.tar.gz"
+source=("http://www.rutschle.net/tech/$pkgname-$pkgver.tar.gz"
'sslh.rc'
- 'sslh.conf')
+ 'sslh.conf'
+ 'sslh.service')
md5sums=('bc34e9a4770d634633e70589c72708cc'
- '0680f09267c33205acf16ac6d4adf926'
- '808199410bd6ab67421bf3544f805d1a')
+ 'f64da291e97f1a99c33cb6ebf939b95b'
+ '808199410bd6ab67421bf3544f805d1a'
+ 'ee8a4fcfc1f6839f7c93deb6f59f7fd6')
build() {
cd $pkgname-$pkgver
@@ -27,10 +29,17 @@ build() {
}
package() {
- install -D -m 755 sslh.rc "${pkgdir}/etc/rc.d/sslh"
- install -D -m 644 sslh.conf "${pkgdir}/etc/conf.d/sslh"
+ # install initscripts
+ install -Dm 755 sslh.rc "$pkgdir/etc/rc.d/sslh"
+ install -Dm 644 sslh.conf "$pkgdir/etc/conf.d/sslh"
+ # install systemd service
+ install -Dm 644 sslh.service "$pkgdir/usr/lib/systemd/system/sslh.service"
+ # manually install to have both ssl-fork and ssl-select
cd $pkgname-$pkgver
- make PREFIX="$pkgdir/usr" install
+ install -Dm 0755 sslh-fork "$pkgdir/usr/bin/sslh-fork"
+ 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"
}
# vim:set ts=2 sw=2 ft=sh et:
diff --git a/community/sslh/sslh.rc b/community/sslh/sslh.rc
index 05b03bc3e..9c31435a0 100644
--- a/community/sslh/sslh.rc
+++ b/community/sslh/sslh.rc
@@ -5,7 +5,7 @@
. /etc/conf.d/${0##*/}
NAME=sslh
-DAEMON=/usr/sbin/sslh
+DAEMON=/usr/bin/sslh
PID=$(pidof -o %PPID $DAEMON)
case "$1" in
@@ -24,7 +24,7 @@ case "$1" in
$0 start
exit 0
;;
- *)
+ *)
echo "usage: ${0##*/} {start|stop|restart}" >&2
;;
esac
diff --git a/community/sslh/sslh.service b/community/sslh/sslh.service
new file mode 100644
index 000000000..7ccad70e9
--- /dev/null
+++ b/community/sslh/sslh.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=SSL/SSH multiplexer
+
+[Service]
+EnvironmentFile=/etc/conf.d/sslh
+ExecStart=/usr/bin/sslh --foreground $DAEMON_OPTS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/uget/PKGBUILD b/community/uget/PKGBUILD
index 01eb6df30..bf103729d 100644
--- a/community/uget/PKGBUILD
+++ b/community/uget/PKGBUILD
@@ -1,26 +1,23 @@
-# $Id: PKGBUILD 68396 2012-03-24 05:49:50Z bgyorgy $
+# $Id: PKGBUILD 69404 2012-04-15 22:27:21Z bgyorgy $
# Maintainer: Balló György <ballogyor+arch at gmail dot com>
pkgname=uget
-pkgver=1.8.0
-pkgrel=3
+pkgver=1.8.1
+pkgrel=1
pkgdesc="GTK+ download manager featuring download classification and HTML import"
arch=('i686' 'x86_64')
url="http://urlget.sourceforge.net/"
-license=('GPL')
+license=('LGPL')
depends=('libnotify' 'gtk3' 'gstreamer0.10' 'curl' 'hicolor-icon-theme' 'xdg-utils')
makedepends=('intltool')
optdepends=('aria2: alternative backend')
install=$pkgname.install
source=(http://downloads.sourceforge.net/urlget/$pkgname-$pkgver.tar.gz)
-md5sums=('2e0ad66ecdd0104b8fb27b29fdb44df1')
+md5sums=('e3fc14042820f0496f12c85c3847c6f8')
build() {
cd "$srcdir/$pkgname-$pkgver"
- # Fix aria2 arguments
- sed -i 's/\"--enable-xml-rpc\"/"--enable-rpc"/' uget-gtk/UgSetting.c
-
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--disable-appindicator --with-gtk3
make
diff --git a/core/expat/PKGBUILD b/core/expat/PKGBUILD
index 9a06455d7..a57f076ff 100644
--- a/core/expat/PKGBUILD
+++ b/core/expat/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 155403 2012-04-03 11:10:06Z allan $
+# $Id: PKGBUILD 156201 2012-04-16 03:41:12Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Committer: Judd Vinet <jvinet@zeroflux.org>
diff --git a/core/gmp/PKGBUILD b/core/gmp/PKGBUILD
index fdf85819b..e2ddd4af4 100644
--- a/core/gmp/PKGBUILD
+++ b/core/gmp/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 150226 2012-02-15 09:53:48Z allan $
+# $Id: PKGBUILD 156203 2012-04-16 03:46:32Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Maintainer: Jan de Groot <jgc@archlinux.org>
diff --git a/core/pkg-config/PKGBUILD b/core/pkg-config/PKGBUILD
index ed96f3380..edaaa0a5e 100644
--- a/core/pkg-config/PKGBUILD
+++ b/core/pkg-config/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 142076 2011-11-04 23:36:11Z allan $
+# $Id: PKGBUILD 156205 2012-04-16 03:57:28Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# Committer: Judd Vinet <jvinet@zeroflux.org>
diff --git a/extra/llvm/PKGBUILD b/extra/llvm/PKGBUILD
index 49238012b..262416a74 100644
--- a/extra/llvm/PKGBUILD
+++ b/extra/llvm/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 156067 2012-04-12 16:34:12Z foutrelis $
+# $Id: PKGBUILD 156168 2012-04-15 04:29:31Z heftig $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Sebastian Nowicki <sebnow@gmail.com>
@@ -11,7 +11,7 @@
pkgname=('llvm' 'llvm-ocaml' 'clang' 'clang-analyzer')
pkgver=3.0
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64' 'mips64el')
url="http://llvm.org/"
license=('custom:University of Illinois/NCSA Open Source License')
diff --git a/extra/tomcat-native/PKGBUILD b/extra/tomcat-native/PKGBUILD
index 9e7ac5f54..37869770f 100644
--- a/extra/tomcat-native/PKGBUILD
+++ b/extra/tomcat-native/PKGBUILD
@@ -2,16 +2,16 @@
# Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua
pkgname=tomcat-native
-pkgver=1.1.22
+pkgver=1.1.23
pkgrel=1
pkgdesc="The Apache Tomcat Native Library"
arch=('i686' 'x86_64' 'mips64el')
url="http://tomcat.apache.org/"
-license="Apache"
+license=("Apache")
depends=('apr' 'openssl')
makedepends=('java-environment')
source=(http://www.apache.org/dist/tomcat/tomcat-connectors/native/${pkgver}/source/${pkgname}-${pkgver}-src.tar.gz)
-md5sums=('44d764f8d99d0454c7337ba9701558ee')
+md5sums=('f2a55b5a19adbe491edc98e0c11d9028')
build() {
cd "${srcdir}/tomcat-native-${pkgver}-src/jni/native"
diff --git a/extra/xf86-video-intel/0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch b/extra/xf86-video-intel/0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch
new file mode 100644
index 000000000..5c3b1d7d6
--- /dev/null
+++ b/extra/xf86-video-intel/0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch
@@ -0,0 +1,533 @@
+From fbee314a4194671bfc6dfaa90141498a2f45de4e Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon, 27 Feb 2012 16:29:38 +0000
+Subject: [PATCH 1/5] uxa/gen3: Remove special casing of solid pictures
+
+Fixes use of alpha-groups and opacity masks in cairo.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+ src/i915_render.c | 366 ++++++++++++++++++-----------------------------------
+ 1 file changed, 122 insertions(+), 244 deletions(-)
+
+diff --git a/src/i915_render.c b/src/i915_render.c
+index 87d2336..6210035 100644
+--- a/src/i915_render.c
++++ b/src/i915_render.c
+@@ -257,11 +257,8 @@ i915_check_composite_texture(ScreenPtr screen, PicturePtr picture)
+ return FALSE;
+ }
+
+- if (picture->pSourcePict) {
+- SourcePict *source = picture->pSourcePict;
+- if (source->type == SourcePictTypeSolidFill)
+- return TRUE;
+- }
++ if (picture->pSourcePict)
++ return FALSE;
+
+ if (picture->pDrawable) {
+ int w, h, i;
+@@ -387,23 +384,6 @@ static Bool i915_texture_setup(PicturePtr picture, PixmapPtr pixmap, int unit)
+ }
+
+ static void
+-i915_emit_composite_primitive_constant(intel_screen_private *intel,
+- int srcX, int srcY,
+- int maskX, int maskY,
+- int dstX, int dstY,
+- int w, int h)
+-{
+- OUT_VERTEX(dstX + w);
+- OUT_VERTEX(dstY + h);
+-
+- OUT_VERTEX(dstX);
+- OUT_VERTEX(dstY + h);
+-
+- OUT_VERTEX(dstX);
+- OUT_VERTEX(dstY);
+-}
+-
+-static void
+ i915_emit_composite_primitive_identity_source(intel_screen_private *intel,
+ int srcX, int srcY,
+ int maskX, int maskY,
+@@ -470,29 +450,6 @@ i915_emit_composite_primitive_affine_source(intel_screen_private *intel,
+ }
+
+ static void
+-i915_emit_composite_primitive_constant_identity_mask(intel_screen_private *intel,
+- int srcX, int srcY,
+- int maskX, int maskY,
+- int dstX, int dstY,
+- int w, int h)
+-{
+- OUT_VERTEX(dstX + w);
+- OUT_VERTEX(dstY + h);
+- OUT_VERTEX((maskX + w) * intel->scale_units[0][0]);
+- OUT_VERTEX((maskY + h) * intel->scale_units[0][1]);
+-
+- OUT_VERTEX(dstX);
+- OUT_VERTEX(dstY + h);
+- OUT_VERTEX(maskX * intel->scale_units[0][0]);
+- OUT_VERTEX((maskY + h) * intel->scale_units[0][1]);
+-
+- OUT_VERTEX(dstX);
+- OUT_VERTEX(dstY);
+- OUT_VERTEX(maskX * intel->scale_units[0][0]);
+- OUT_VERTEX(maskY * intel->scale_units[0][1]);
+-}
+-
+-static void
+ i915_emit_composite_primitive_identity_source_mask(intel_screen_private *intel,
+ int srcX, int srcY,
+ int maskX, int maskY,
+@@ -536,63 +493,61 @@ i915_emit_composite_primitive(intel_screen_private *intel,
+
+ per_vertex = 2; /* dest x/y */
+
+- if (! intel->render_source_is_solid) {
+- src_unit = tex_unit++;
+-
+- is_affine_src = intel_transform_is_affine(intel->transform[src_unit]);
+- if (is_affine_src) {
+- if (!intel_get_transformed_coordinates(srcX, srcY,
+- intel->
+- transform[src_unit],
+- &src_x[0],
+- &src_y[0]))
+- return;
+-
+- if (!intel_get_transformed_coordinates(srcX, srcY + h,
+- intel->
+- transform[src_unit],
+- &src_x[1],
+- &src_y[1]))
+- return;
+-
+- if (!intel_get_transformed_coordinates(srcX + w, srcY + h,
+- intel->
+- transform[src_unit],
+- &src_x[2],
+- &src_y[2]))
+- return;
+-
+- per_vertex += 2; /* src x/y */
+- } else {
+- if (!intel_get_transformed_coordinates_3d(srcX, srcY,
+- intel->
+- transform[src_unit],
+- &src_x[0],
+- &src_y[0],
+- &src_w[0]))
+- return;
+-
+- if (!intel_get_transformed_coordinates_3d(srcX, srcY + h,
+- intel->
+- transform[src_unit],
+- &src_x[1],
+- &src_y[1],
+- &src_w[1]))
+- return;
+-
+- if (!intel_get_transformed_coordinates_3d(srcX + w, srcY + h,
+- intel->
+- transform[src_unit],
+- &src_x[2],
+- &src_y[2],
+- &src_w[2]))
+- return;
+-
+- per_vertex += 4; /* src x/y/z/w */
+- }
++ src_unit = tex_unit++;
++
++ is_affine_src = intel_transform_is_affine(intel->transform[src_unit]);
++ if (is_affine_src) {
++ if (!intel_get_transformed_coordinates(srcX, srcY,
++ intel->
++ transform[src_unit],
++ &src_x[0],
++ &src_y[0]))
++ return;
++
++ if (!intel_get_transformed_coordinates(srcX, srcY + h,
++ intel->
++ transform[src_unit],
++ &src_x[1],
++ &src_y[1]))
++ return;
++
++ if (!intel_get_transformed_coordinates(srcX + w, srcY + h,
++ intel->
++ transform[src_unit],
++ &src_x[2],
++ &src_y[2]))
++ return;
++
++ per_vertex += 2; /* src x/y */
++ } else {
++ if (!intel_get_transformed_coordinates_3d(srcX, srcY,
++ intel->
++ transform[src_unit],
++ &src_x[0],
++ &src_y[0],
++ &src_w[0]))
++ return;
++
++ if (!intel_get_transformed_coordinates_3d(srcX, srcY + h,
++ intel->
++ transform[src_unit],
++ &src_x[1],
++ &src_y[1],
++ &src_w[1]))
++ return;
++
++ if (!intel_get_transformed_coordinates_3d(srcX + w, srcY + h,
++ intel->
++ transform[src_unit],
++ &src_x[2],
++ &src_y[2],
++ &src_w[2]))
++ return;
++
++ per_vertex += 4; /* src x/y/z/w */
+ }
+
+- if (intel->render_mask && ! intel->render_mask_is_solid) {
++ if (intel->render_mask) {
+ mask_unit = tex_unit++;
+
+ is_affine_mask = intel_transform_is_affine(intel->transform[mask_unit]);
+@@ -650,15 +605,13 @@ i915_emit_composite_primitive(intel_screen_private *intel,
+
+ OUT_VERTEX(dstX + w);
+ OUT_VERTEX(dstY + h);
+- if (! intel->render_source_is_solid) {
+- OUT_VERTEX(src_x[2] * intel->scale_units[src_unit][0]);
+- OUT_VERTEX(src_y[2] * intel->scale_units[src_unit][1]);
+- if (!is_affine_src) {
++ OUT_VERTEX(src_x[2] * intel->scale_units[src_unit][0]);
++ OUT_VERTEX(src_y[2] * intel->scale_units[src_unit][1]);
++ if (!is_affine_src) {
+ OUT_VERTEX(0.0);
+ OUT_VERTEX(src_w[2]);
+- }
+ }
+- if (intel->render_mask && ! intel->render_mask_is_solid) {
++ if (intel->render_mask) {
+ OUT_VERTEX(mask_x[2] * intel->scale_units[mask_unit][0]);
+ OUT_VERTEX(mask_y[2] * intel->scale_units[mask_unit][1]);
+ if (!is_affine_mask) {
+@@ -669,15 +622,13 @@ i915_emit_composite_primitive(intel_screen_private *intel,
+
+ OUT_VERTEX(dstX);
+ OUT_VERTEX(dstY + h);
+- if (! intel->render_source_is_solid) {
+- OUT_VERTEX(src_x[1] * intel->scale_units[src_unit][0]);
+- OUT_VERTEX(src_y[1] * intel->scale_units[src_unit][1]);
+- if (!is_affine_src) {
++ OUT_VERTEX(src_x[1] * intel->scale_units[src_unit][0]);
++ OUT_VERTEX(src_y[1] * intel->scale_units[src_unit][1]);
++ if (!is_affine_src) {
+ OUT_VERTEX(0.0);
+ OUT_VERTEX(src_w[1]);
+- }
+ }
+- if (intel->render_mask && ! intel->render_mask_is_solid) {
++ if (intel->render_mask) {
+ OUT_VERTEX(mask_x[1] * intel->scale_units[mask_unit][0]);
+ OUT_VERTEX(mask_y[1] * intel->scale_units[mask_unit][1]);
+ if (!is_affine_mask) {
+@@ -688,15 +639,13 @@ i915_emit_composite_primitive(intel_screen_private *intel,
+
+ OUT_VERTEX(dstX);
+ OUT_VERTEX(dstY);
+- if (! intel->render_source_is_solid) {
+- OUT_VERTEX(src_x[0] * intel->scale_units[src_unit][0]);
+- OUT_VERTEX(src_y[0] * intel->scale_units[src_unit][1]);
+- if (!is_affine_src) {
++ OUT_VERTEX(src_x[0] * intel->scale_units[src_unit][0]);
++ OUT_VERTEX(src_y[0] * intel->scale_units[src_unit][1]);
++ if (!is_affine_src) {
+ OUT_VERTEX(0.0);
+ OUT_VERTEX(src_w[0]);
+- }
+ }
+- if (intel->render_mask && ! intel->render_mask_is_solid) {
++ if (intel->render_mask) {
+ OUT_VERTEX(mask_x[0] * intel->scale_units[mask_unit][0]);
+ OUT_VERTEX(mask_y[0] * intel->scale_units[mask_unit][1]);
+ if (!is_affine_mask) {
+@@ -729,29 +678,11 @@ i915_prepare_composite(int op, PicturePtr source_picture,
+ intel->render_dest_picture = dest_picture;
+ intel->render_dest = dest;
+
+- intel->render_source_is_solid = FALSE;
+- if (source_picture->pSourcePict) {
+- SourcePict *source = source_picture->pSourcePict;
+- if (source->type == SourcePictTypeSolidFill) {
+- intel->render_source_is_solid = TRUE;
+- intel->render_source_solid = source->solidFill.color;
+- }
+- }
+- if (!intel->render_source_is_solid && !intel_check_pitch_3d(source))
++ if (!intel_check_pitch_3d(source))
+ return FALSE;
+
+- intel->render_mask_is_solid = FALSE;
+- if (mask) {
+- if (mask_picture->pSourcePict) {
+- SourcePict *source = mask_picture->pSourcePict;
+- if (source->type == SourcePictTypeSolidFill) {
+- intel->render_mask_is_solid = TRUE;
+- intel->render_mask_solid = source->solidFill.color;
+- }
+- }
+- if (!intel->render_mask_is_solid && !intel_check_pitch_3d(mask))
+- return FALSE;
+- }
++ if (mask && !intel_check_pitch_3d(mask))
++ return FALSE;
+
+ if (!intel_check_pitch_3d(dest))
+ return FALSE;
+@@ -787,31 +718,27 @@ i915_prepare_composite(int op, PicturePtr source_picture,
+ intel->scale_units[1][1] = -1;
+
+ floats_per_vertex = 2; /* dest x/y */
+- if (! intel->render_source_is_solid) {
+- if (!i915_texture_setup(source_picture, source, tex_unit++)) {
+- intel_debug_fallback(scrn, "fail to setup src texture\n");
+- return FALSE;
+- }
+-
+- if (intel_transform_is_affine(source_picture->transform))
+- floats_per_vertex += 2; /* src x/y */
+- else
+- floats_per_vertex += 4; /* src x/y/z/w */
++ if (!i915_texture_setup(source_picture, source, tex_unit++)) {
++ intel_debug_fallback(scrn, "fail to setup src texture\n");
++ return FALSE;
+ }
+
+- if (mask != NULL) {
+- if (! intel->render_mask_is_solid) {
+- if (!i915_texture_setup(mask_picture, mask, tex_unit++)) {
+- intel_debug_fallback(scrn,
+- "fail to setup mask texture\n");
+- return FALSE;
+- }
++ if (intel_transform_is_affine(source_picture->transform))
++ floats_per_vertex += 2; /* src x/y */
++ else
++ floats_per_vertex += 4; /* src x/y/z/w */
+
+- if (intel_transform_is_affine(mask_picture->transform))
+- floats_per_vertex += 2; /* mask x/y */
+- else
+- floats_per_vertex += 4; /* mask x/y/z/w */
++ if (mask != NULL) {
++ if (!i915_texture_setup(mask_picture, mask, tex_unit++)) {
++ intel_debug_fallback(scrn,
++ "fail to setup mask texture\n");
++ return FALSE;
+ }
++
++ if (intel_transform_is_affine(mask_picture->transform))
++ floats_per_vertex += 2; /* mask x/y */
++ else
++ floats_per_vertex += 4; /* mask x/y/z/w */
+ }
+
+ intel->i915_render_state.op = op;
+@@ -827,17 +754,13 @@ i915_prepare_composite(int op, PicturePtr source_picture,
+
+ intel->prim_emit = i915_emit_composite_primitive;
+ if (!mask) {
+- if (intel->render_source_is_solid)
+- intel->prim_emit = i915_emit_composite_primitive_constant;
+- else if (intel->transform[0] == NULL)
++ if (intel->transform[0] == NULL)
+ intel->prim_emit = i915_emit_composite_primitive_identity_source;
+ else if (intel_transform_is_affine(intel->transform[0]))
+ intel->prim_emit = i915_emit_composite_primitive_affine_source;
+ } else {
+ if (intel->transform[0] == NULL) {
+- if (intel->render_source_is_solid)
+- intel->prim_emit = i915_emit_composite_primitive_constant_identity_mask;
+- else if (intel->transform[1] == NULL)
++ if (intel->transform[1] == NULL)
+ intel->prim_emit = i915_emit_composite_primitive_identity_source_mask;
+ }
+ }
+@@ -856,39 +779,25 @@ i915_composite_emit_shader(intel_screen_private *intel, CARD8 op)
+ PicturePtr mask_picture = intel->render_mask_picture;
+ PixmapPtr mask = intel->render_mask;
+ int src_reg, mask_reg;
+- Bool is_solid_src, is_solid_mask;
+ Bool dest_is_alpha = PIXMAN_FORMAT_RGB(intel->render_dest_picture->format) == 0;
+- int tex_unit, t;
+ FS_LOCALS();
+
+- is_solid_src = intel->render_source_is_solid;
+- is_solid_mask = intel->render_mask_is_solid;
+-
+ FS_BEGIN();
+
+ /* Declare the registers necessary for our program. */
+- t = 0;
+- if (is_solid_src) {
+- i915_fs_dcl(FS_T8);
+- src_reg = FS_T8;
+- } else {
+- i915_fs_dcl(FS_T0);
+- i915_fs_dcl(FS_S0);
+- t++;
+- }
++ i915_fs_dcl(FS_T0);
++ i915_fs_dcl(FS_S0);
+ if (!mask) {
+ /* No mask, so load directly to output color */
+- if (! is_solid_src) {
+- if (dest_is_alpha)
+- src_reg = FS_R0;
+- else
+- src_reg = FS_OC;
++ if (dest_is_alpha)
++ src_reg = FS_R0;
++ else
++ src_reg = FS_OC;
+
+- if (intel_transform_is_affine(intel->transform[0]))
+- i915_fs_texld(src_reg, FS_S0, FS_T0);
+- else
+- i915_fs_texldp(src_reg, FS_S0, FS_T0);
+- }
++ if (intel_transform_is_affine(intel->transform[0]))
++ i915_fs_texld(src_reg, FS_S0, FS_T0);
++ else
++ i915_fs_texldp(src_reg, FS_S0, FS_T0);
+
+ if (src_reg != FS_OC) {
+ if (dest_is_alpha)
+@@ -897,35 +806,24 @@ i915_composite_emit_shader(intel_screen_private *intel, CARD8 op)
+ i915_fs_mov(FS_OC, i915_fs_operand_reg(src_reg));
+ }
+ } else {
+- if (is_solid_mask) {
+- i915_fs_dcl(FS_T9);
+- mask_reg = FS_T9;
+- } else {
+- i915_fs_dcl(FS_T0 + t);
+- i915_fs_dcl(FS_S0 + t);
+- }
++ i915_fs_dcl(FS_T1);
++ i915_fs_dcl(FS_S1);
+
+- tex_unit = 0;
+- if (! is_solid_src) {
+- /* Load the source_picture texel */
+- if (intel_transform_is_affine(intel->transform[tex_unit]))
+- i915_fs_texld(FS_R0, FS_S0, FS_T0);
+- else
+- i915_fs_texldp(FS_R0, FS_S0, FS_T0);
++ /* Load the source_picture texel */
++ if (intel_transform_is_affine(intel->transform[0]))
++ i915_fs_texld(FS_R0, FS_S0, FS_T0);
++ else
++ i915_fs_texldp(FS_R0, FS_S0, FS_T0);
+
+- src_reg = FS_R0;
+- tex_unit++;
+- }
++ src_reg = FS_R0;
+
+- if (! is_solid_mask) {
+- /* Load the mask_picture texel */
+- if (intel_transform_is_affine(intel->transform[tex_unit]))
+- i915_fs_texld(FS_R1, FS_S0 + t, FS_T0 + t);
+- else
+- i915_fs_texldp(FS_R1, FS_S0 + t, FS_T0 + t);
++ /* Load the mask_picture texel */
++ if (intel_transform_is_affine(intel->transform[1]))
++ i915_fs_texld(FS_R1, FS_S1, FS_T1);
++ else
++ i915_fs_texldp(FS_R1, FS_S1, FS_T1);
+
+- mask_reg = FS_R1;
+- }
++ mask_reg = FS_R1;
+
+ if (dest_is_alpha) {
+ i915_fs_mul(FS_OC,
+@@ -972,7 +870,6 @@ static void i915_emit_composite_setup(ScrnInfoPtr scrn)
+ PicturePtr dest_picture = intel->render_dest_picture;
+ PixmapPtr mask = intel->render_mask;
+ PixmapPtr dest = intel->render_dest;
+- Bool is_solid_src, is_solid_mask;
+ int tex_count, t;
+
+ intel->needs_render_state_emit = FALSE;
+@@ -980,12 +877,7 @@ static void i915_emit_composite_setup(ScrnInfoPtr scrn)
+ IntelEmitInvarientState(scrn);
+ intel->last_3d = LAST_3D_RENDER;
+
+- is_solid_src = intel->render_source_is_solid;
+- is_solid_mask = intel->render_mask_is_solid;
+-
+- tex_count = 0;
+- tex_count += ! is_solid_src;
+- tex_count += mask && ! is_solid_mask;
++ tex_count = 1 + (mask != NULL);
+
+ assert(intel->in_batch_atomic);
+
+@@ -1007,15 +899,6 @@ static void i915_emit_composite_setup(ScrnInfoPtr scrn)
+ }
+ }
+
+- if (is_solid_src) {
+- OUT_BATCH (_3DSTATE_DFLT_DIFFUSE_CMD);
+- OUT_BATCH (intel->render_source_solid);
+- }
+- if (mask && is_solid_mask) {
+- OUT_BATCH (_3DSTATE_DFLT_SPEC_CMD);
+- OUT_BATCH (intel->render_mask_solid);
+- }
+-
+ /* BUF_INFO is an implicit flush, so avoid if the target has not changed.
+ * XXX However for reasons unfathomed, correct rendering in KDE requires
+ * at least a MI_FLUSH | INHIBIT_RENDER_CACHE_FLUSH here.
+@@ -1058,20 +941,15 @@ static void i915_emit_composite_setup(ScrnInfoPtr scrn)
+ uint32_t ss2;
+
+ ss2 = ~0;
+- t = 0;
+- if (! is_solid_src) {
+- ss2 &= ~S2_TEXCOORD_FMT(t, TEXCOORDFMT_NOT_PRESENT);
+- ss2 |= S2_TEXCOORD_FMT(t,
+- intel_transform_is_affine(intel->transform[t]) ?
+- TEXCOORDFMT_2D : TEXCOORDFMT_4D);
+- t++;
+- }
+- if (mask && ! is_solid_mask) {
+- ss2 &= ~S2_TEXCOORD_FMT(t, TEXCOORDFMT_NOT_PRESENT);
+- ss2 |= S2_TEXCOORD_FMT(t,
+- intel_transform_is_affine(intel->transform[t]) ?
++ ss2 &= ~S2_TEXCOORD_FMT(0, TEXCOORDFMT_NOT_PRESENT);
++ ss2 |= S2_TEXCOORD_FMT(0,
++ intel_transform_is_affine(intel->transform[0]) ?
++ TEXCOORDFMT_2D : TEXCOORDFMT_4D);
++ if (mask) {
++ ss2 &= ~S2_TEXCOORD_FMT(1, TEXCOORDFMT_NOT_PRESENT);
++ ss2 |= S2_TEXCOORD_FMT(1,
++ intel_transform_is_affine(intel->transform[1]) ?
+ TEXCOORDFMT_2D : TEXCOORDFMT_4D);
+- t++;
+ }
+
+ if (intel->needs_render_ca_pass) {
+--
+1.7.10
+
diff --git a/extra/xf86-video-intel/0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch b/extra/xf86-video-intel/0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch
new file mode 100644
index 000000000..89f43459d
--- /dev/null
+++ b/extra/xf86-video-intel/0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch
@@ -0,0 +1,50 @@
+From fd25a4586b0667b1591d85b23daaa99464e9b0d8 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon, 19 Mar 2012 15:51:43 +0000
+Subject: [PATCH 2/5] uxa: Defer the call to EnterVT till after outputs are
+ initialised
+
+We need to do this apparently or else we never perform the VT switch.
+However, we can not do it too early, especially not before we have
+finished intialising the outputs.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47395
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+ src/intel_driver.c | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/src/intel_driver.c b/src/intel_driver.c
+index e2e43fa..ff29754 100644
+--- a/src/intel_driver.c
++++ b/src/intel_driver.c
+@@ -1013,13 +1013,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ "Hardware cursor initialization failed\n");
+ }
+
+- /* Must force it before EnterVT, so we are in control of VT and
+- * later memory should be bound when allocating, e.g rotate_mem */
+- scrn->vtSema = TRUE;
+-
+- if (!I830EnterVT(scrnIndex, 0))
+- return FALSE;
+-
+ intel->BlockHandler = screen->BlockHandler;
+ screen->BlockHandler = I830BlockHandler;
+
+@@ -1092,7 +1085,11 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ I830UeventInit(scrn);
+ #endif
+
+- return TRUE;
++ /* Must force it before EnterVT, so we are in control of VT and
++ * later memory should be bound when allocating, e.g rotate_mem */
++ scrn->vtSema = TRUE;
++
++ return I830EnterVT(scrnIndex, 0);
+ }
+
+ static void i830AdjustFrame(int scrnIndex, int x, int y, int flags)
+--
+1.7.10
+
diff --git a/extra/xf86-video-intel/0003-uxa-Remove-hook-for-CompositeRectangles.patch b/extra/xf86-video-intel/0003-uxa-Remove-hook-for-CompositeRectangles.patch
new file mode 100644
index 000000000..c1c4d55e8
--- /dev/null
+++ b/extra/xf86-video-intel/0003-uxa-Remove-hook-for-CompositeRectangles.patch
@@ -0,0 +1,255 @@
+From b669f171adece9df7f0c340c664b70e94118a55e Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri, 23 Mar 2012 14:56:06 +0000
+Subject: [PATCH 3/5] uxa: Remove hook for CompositeRectangles
+
+It was broken and not flushing damage correctly. With the
+improvements made to the kernel, it is no longer a significant advantage
+per se and not worth its additional complexity.
+
+Reported-by: Tilman Sauerbeck <tilman@code-monkey.de>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32547
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+ uxa/uxa-priv.h | 1 -
+ uxa/uxa-render.c | 189 ------------------------------------------------------
+ uxa/uxa.c | 4 --
+ 3 files changed, 194 deletions(-)
+
+diff --git a/uxa/uxa-priv.h b/uxa/uxa-priv.h
+index 0de45f5..b24ec4f 100644
+--- a/uxa/uxa-priv.h
++++ b/uxa/uxa-priv.h
+@@ -123,7 +123,6 @@ typedef struct {
+ BitmapToRegionProcPtr SavedBitmapToRegion;
+ #ifdef RENDER
+ CompositeProcPtr SavedComposite;
+- CompositeRectsProcPtr SavedCompositeRects;
+ TrianglesProcPtr SavedTriangles;
+ GlyphsProcPtr SavedGlyphs;
+ TrapezoidsProcPtr SavedTrapezoids;
+diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
+index 877b286..1e88c5d 100644
+--- a/uxa/uxa-render.c
++++ b/uxa/uxa-render.c
+@@ -947,195 +947,6 @@ uxa_acquire_mask(ScreenPtr screen,
+ out_x, out_y);
+ }
+
+-static Bool
+-_pixman_region_init_rectangles(pixman_region16_t *region,
+- int num_rects,
+- xRectangle *rects,
+- int tx, int ty)
+-{
+- pixman_box16_t stack_boxes[64], *boxes = stack_boxes;
+- pixman_bool_t ret;
+- int i;
+-
+- if (num_rects > sizeof(stack_boxes) / sizeof(stack_boxes[0])) {
+- boxes = malloc(sizeof(pixman_box16_t) * num_rects);
+- if (boxes == NULL)
+- return FALSE;
+- }
+-
+- for (i = 0; i < num_rects; i++) {
+- boxes[i].x1 = rects[i].x + tx;
+- boxes[i].y1 = rects[i].y + ty;
+- boxes[i].x2 = rects[i].x + tx + rects[i].width;
+- boxes[i].y2 = rects[i].y + ty + rects[i].height;
+- }
+-
+- ret = pixman_region_init_rects(region, boxes, num_rects);
+-
+- if (boxes != stack_boxes)
+- free(boxes);
+-
+- return ret;
+-}
+-
+-void
+-uxa_solid_rects (CARD8 op,
+- PicturePtr dst,
+- xRenderColor *color,
+- int num_rects,
+- xRectangle *rects)
+-{
+- ScreenPtr screen = dst->pDrawable->pScreen;
+- uxa_screen_t *uxa_screen = uxa_get_screen(screen);
+- PixmapPtr dst_pixmap, src_pixmap = NULL;
+- pixman_region16_t region;
+- pixman_box16_t *boxes, *extents;
+- PicturePtr src;
+- int dst_x, dst_y;
+- int num_boxes;
+-
+- if (!pixman_region_not_empty(dst->pCompositeClip))
+- return;
+-
+- if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
+- int ok;
+-
+- uxa_picture_prepare_access(dst, UXA_GLAMOR_ACCESS_RW);
+- ok = glamor_composite_rects_nf(op, dst, color,
+- num_rects, rects);
+- uxa_picture_finish_access(dst, UXA_GLAMOR_ACCESS_RW);
+-
+- if (!ok)
+- goto fallback;
+-
+- return;
+- }
+-
+- if (dst->alphaMap)
+- goto fallback;
+-
+- dst_pixmap = uxa_get_offscreen_pixmap(dst->pDrawable, &dst_x, &dst_y);
+- if (!dst_pixmap)
+- goto fallback;
+-
+- if (!_pixman_region_init_rectangles(&region,
+- num_rects, rects,
+- dst->pDrawable->x, dst->pDrawable->y))
+- goto fallback;
+-
+- if (!pixman_region_intersect(&region, &region, dst->pCompositeClip)) {
+- pixman_region_fini(&region);
+- return;
+- }
+-
+- pixman_region_translate(&region, dst_x, dst_y);
+- boxes = pixman_region_rectangles(&region, &num_boxes);
+- extents = pixman_region_extents (&region);
+-
+- if (op == PictOpClear)
+- color->red = color->green = color->blue = color->alpha = 0;
+- if (color->alpha >= 0xff00 && op == PictOpOver) {
+- color->alpha = 0xffff;
+- op = PictOpSrc;
+- }
+-
+- /* Using GEM, the relocation costs outweigh the advantages of the blitter */
+- if (num_boxes == 1 && (op == PictOpSrc || op == PictOpClear)) {
+- CARD32 pixel;
+-
+-try_solid:
+- if (uxa_screen->info->check_solid &&
+- !uxa_screen->info->check_solid(&dst_pixmap->drawable, GXcopy, FB_ALLONES))
+- goto err_region;
+-
+- if (!uxa_get_pixel_from_rgba(&pixel,
+- color->red,
+- color->green,
+- color->blue,
+- color->alpha,
+- dst->format))
+- goto err_region;
+-
+- if (!uxa_screen->info->prepare_solid(dst_pixmap, GXcopy, FB_ALLONES, pixel))
+- goto err_region;
+-
+- while (num_boxes--) {
+- uxa_screen->info->solid(dst_pixmap,
+- boxes->x1, boxes->y1,
+- boxes->x2, boxes->y2);
+- boxes++;
+- }
+-
+- uxa_screen->info->done_solid(dst_pixmap);
+- } else {
+- int error;
+-
+- src = CreateSolidPicture(0, color, &error);
+- if (!src)
+- goto err_region;
+-
+- if (!uxa_screen->info->check_composite(op, src, NULL, dst,
+- extents->x2 - extents->x1,
+- extents->y2 - extents->y1)) {
+- if (op == PictOpSrc || op == PictOpClear) {
+- FreePicture(src, 0);
+- goto try_solid;
+- }
+-
+- goto err_src;
+- }
+-
+- if (!uxa_screen->info->check_composite_texture ||
+- !uxa_screen->info->check_composite_texture(screen, src)) {
+- PicturePtr solid;
+- int src_off_x, src_off_y;
+-
+- solid = uxa_acquire_solid(screen, src->pSourcePict);
+- if (!solid)
+- goto err_src;
+- FreePicture(src, 0);
+-
+- src = solid;
+- src_pixmap = uxa_get_offscreen_pixmap(src->pDrawable,
+- &src_off_x, &src_off_y);
+- if (!src_pixmap)
+- goto err_src;
+- }
+-
+- if (!uxa_screen->info->prepare_composite(op, src, NULL, dst, src_pixmap, NULL, dst_pixmap))
+- goto err_src;
+-
+- while (num_boxes--) {
+- uxa_screen->info->composite(dst_pixmap,
+- 0, 0, 0, 0,
+- boxes->x1,
+- boxes->y1,
+- boxes->x2 - boxes->x1,
+- boxes->y2 - boxes->y1);
+- boxes++;
+- }
+-
+- uxa_screen->info->done_composite(dst_pixmap);
+- FreePicture(src, 0);
+- }
+-
+- /* XXX xserver-1.8: CompositeRects is not tracked by Damage, so we must
+- * manually append the damaged regions ourselves.
+- */
+- pixman_region_translate(&region, -dst_x, -dst_y);
+- DamageRegionAppend(dst->pDrawable, &region);
+-
+- pixman_region_fini(&region);
+- return;
+-
+-err_src:
+- FreePicture(src, 0);
+-err_region:
+- pixman_region_fini(&region);
+-fallback:
+- uxa_screen->SavedCompositeRects(op, dst, color, num_rects, rects);
+-}
+-
+ static int
+ uxa_try_driver_composite(CARD8 op,
+ PicturePtr pSrc,
+diff --git a/uxa/uxa.c b/uxa/uxa.c
+index eb2ae03..b4a1da6 100644
+--- a/uxa/uxa.c
++++ b/uxa/uxa.c
+@@ -407,7 +407,6 @@ static Bool uxa_close_screen(int i, ScreenPtr pScreen)
+ #ifdef RENDER
+ if (ps) {
+ ps->Composite = uxa_screen->SavedComposite;
+- ps->CompositeRects = uxa_screen->SavedCompositeRects;
+ ps->Glyphs = uxa_screen->SavedGlyphs;
+ ps->Trapezoids = uxa_screen->SavedTrapezoids;
+ ps->AddTraps = uxa_screen->SavedAddTraps;
+@@ -536,9 +535,6 @@ Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver)
+ uxa_screen->SavedComposite = ps->Composite;
+ ps->Composite = uxa_composite;
+
+- uxa_screen->SavedCompositeRects = ps->CompositeRects;
+- ps->CompositeRects = uxa_solid_rects;
+-
+ uxa_screen->SavedGlyphs = ps->Glyphs;
+ ps->Glyphs = uxa_glyphs;
+
+--
+1.7.10
+
diff --git a/extra/xf86-video-intel/0004-uxa-Remove-broken-render-glyphs-to-dst.patch b/extra/xf86-video-intel/0004-uxa-Remove-broken-render-glyphs-to-dst.patch
new file mode 100644
index 000000000..3bf15c1a1
--- /dev/null
+++ b/extra/xf86-video-intel/0004-uxa-Remove-broken-render-glyphs-to-dst.patch
@@ -0,0 +1,391 @@
+From 1aee0af6d8296c108b6b4eb1bcf583aae385d22d Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri, 30 Mar 2012 12:47:21 +0100
+Subject: [PATCH 4/5] uxa: Remove broken render glyphs-to-dst
+
+Reported-by: Vincent Untz <vuntz@gnome.org>
+Reported-by: Robert Bradford <robert.bradford@intel.com>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48045
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+ uxa/uxa-glyphs.c | 330 +++---------------------------------------------------
+ 1 file changed, 17 insertions(+), 313 deletions(-)
+
+diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
+index 6172f2f..b754f4e 100644
+--- a/uxa/uxa-glyphs.c
++++ b/uxa/uxa-glyphs.c
+@@ -663,190 +663,6 @@ uxa_glyph_cache(ScreenPtr screen, GlyphPtr glyph, int *out_x, int *out_y)
+ return cache->picture;
+ }
+
+-static int
+-uxa_glyphs_to_dst(CARD8 op,
+- PicturePtr pSrc,
+- PicturePtr pDst,
+- INT16 src_x, INT16 src_y,
+- INT16 xDst, INT16 yDst,
+- int nlist, GlyphListPtr list, GlyphPtr * glyphs,
+- BoxPtr extents)
+-{
+- ScreenPtr screen = pDst->pDrawable->pScreen;
+- uxa_screen_t *uxa_screen = uxa_get_screen(screen);
+- PixmapPtr src_pixmap, dst_pixmap;
+- PicturePtr localSrc, glyph_atlas;
+- int x, y, n;
+- BoxRec box;
+-
+- if (uxa_screen->info->check_composite_texture &&
+- uxa_screen->info->check_composite_texture(screen, pSrc)) {
+- if (pSrc->pDrawable) {
+- int src_off_x, src_off_y;
+-
+- src_pixmap = uxa_get_offscreen_pixmap(pSrc->pDrawable, &src_off_x, &src_off_y);
+- if (src_pixmap == NULL)
+- return -1;
+-
+- src_x += pSrc->pDrawable->x + src_off_x;
+- src_y += pSrc->pDrawable->y + src_off_y;
+- } else {
+- src_pixmap = NULL;
+- }
+- localSrc = pSrc;
+- } else {
+- int width, height;
+-
+- if (extents == NULL) {
+- uxa_glyph_extents(nlist, list, glyphs, &box);
+- extents = &box;
+- }
+-
+- width = extents->x2 - extents->x1;
+- height = extents->y2 - extents->y1;
+- if (width == 0 || height == 0)
+- return 0;
+-
+- if (pSrc->pDrawable) {
+- int src_off_x, src_off_y;
+-
+- src_off_x = extents->x1 - xDst;
+- src_off_y = extents->y1 - yDst;
+- localSrc = uxa_acquire_drawable(screen, pSrc,
+- src_x + src_off_x, src_y + src_off_y,
+- width, height,
+- &src_x, &src_y);
+- if (uxa_screen->info->check_composite_texture &&
+- !uxa_screen->info->check_composite_texture(screen, localSrc)) {
+- if (localSrc != pSrc)
+- FreePicture(localSrc, 0);
+- return -1;
+- }
+-
+- src_pixmap = uxa_get_offscreen_pixmap(localSrc->pDrawable, &src_off_x, &src_off_y);
+- if (src_pixmap == NULL) {
+- if (localSrc != pSrc)
+- FreePicture(localSrc, 0);
+- return -1;
+- }
+-
+- src_x += localSrc->pDrawable->x + src_off_x;
+- src_y += localSrc->pDrawable->y + src_off_y;
+- } else {
+- localSrc = uxa_acquire_pattern(screen, pSrc,
+- PICT_a8r8g8b8, x, y, width, height);
+- if (!localSrc)
+- return 1;
+-
+- src_pixmap = uxa_get_drawable_pixmap(localSrc->pDrawable);
+- if (src_pixmap == NULL) {
+- FreePicture(localSrc, 0);
+- return -1;
+- }
+-
+- src_x = src_y = 0;
+- }
+- }
+-
+- dst_pixmap = uxa_get_offscreen_pixmap(pDst->pDrawable, &x, &y);
+- x += xDst + pDst->pDrawable->x - list->xOff;
+- y += yDst + pDst->pDrawable->y - list->yOff;
+-
+- glyph_atlas = NULL;
+- while (nlist--) {
+- x += list->xOff;
+- y += list->yOff;
+- n = list->len;
+- while (n--) {
+- GlyphPtr glyph = *glyphs++;
+- PicturePtr this_atlas;
+- int mask_x, mask_y, nrect;
+- struct uxa_glyph *priv;
+- BoxPtr rects;
+-
+- if (glyph->info.width == 0 || glyph->info.height == 0)
+- goto next_glyph;
+-
+- priv = uxa_glyph_get_private(glyph);
+- if (priv != NULL) {
+- mask_x = priv->x;
+- mask_y = priv->y;
+- this_atlas = priv->cache->picture;
+- } else {
+- if (glyph_atlas) {
+- uxa_screen->info->done_composite(dst_pixmap);
+- glyph_atlas = NULL;
+- }
+- this_atlas = uxa_glyph_cache(screen, glyph, &mask_x, &mask_y);
+- if (this_atlas == NULL) {
+- /* no cache for this glyph */
+- this_atlas = GlyphPicture(glyph)[screen->myNum];
+- mask_x = mask_y = 0;
+- }
+- }
+-
+- if (this_atlas != glyph_atlas) {
+- PixmapPtr mask_pixmap;
+-
+- if (glyph_atlas)
+- uxa_screen->info->done_composite(dst_pixmap);
+-
+- mask_pixmap =
+- uxa_get_drawable_pixmap(this_atlas->pDrawable);
+- if (!uxa_pixmap_is_offscreen(mask_pixmap) ||
+- !uxa_screen->info->prepare_composite(op,
+- localSrc, this_atlas, pDst,
+- src_pixmap, mask_pixmap, dst_pixmap))
+- return -1;
+-
+- glyph_atlas = this_atlas;
+- }
+-
+- rects = REGION_RECTS(pDst->pCompositeClip);
+- nrect = REGION_NUM_RECTS(pDst->pCompositeClip);
+- while (nrect--) {
+- int x1 = x - glyph->info.x, dx = 0;
+- int y1 = y - glyph->info.y, dy = 0;
+- int x2 = x1 + glyph->info.width;
+- int y2 = y1 + glyph->info.height;
+-
+- if (rects->y1 >= y2)
+- break;
+-
+- if (x1 < rects->x1)
+- dx = rects->x1 - x1, x1 = rects->x1;
+- if (x2 > rects->x2)
+- x2 = rects->x2;
+- if (y1 < rects->y1)
+- dy = rects->y1 - y1, y1 = rects->y1;
+- if (y2 > rects->y2)
+- y2 = rects->y2;
+-
+- if (x1 < x2 && y1 < y2) {
+- uxa_screen->info->composite(dst_pixmap,
+- x1 + src_x, y1 + src_y,
+- dx + mask_x, dy + mask_y,
+- x1, y1,
+- x2 - x1, y2 - y1);
+- }
+- rects++;
+- }
+-
+-next_glyph:
+- x += glyph->info.xOff;
+- y += glyph->info.yOff;
+- }
+- list++;
+- }
+- if (glyph_atlas)
+- uxa_screen->info->done_composite(dst_pixmap);
+-
+- if (localSrc != pSrc)
+- FreePicture(localSrc, 0);
+-
+- return 0;
+-}
+-
+ static void
+ uxa_clear_pixmap(ScreenPtr screen,
+ uxa_screen_t *uxa_screen,
+@@ -894,37 +710,30 @@ uxa_glyphs_via_mask(CARD8 op,
+ PicturePtr pDst,
+ PictFormatPtr maskFormat,
+ INT16 xSrc, INT16 ySrc,
+- INT16 xDst, INT16 yDst,
+- int nlist, GlyphListPtr list, GlyphPtr * glyphs,
+- BoxPtr extents)
++ int nlist, GlyphListPtr list, GlyphPtr * glyphs)
+ {
+ ScreenPtr screen = pDst->pDrawable->pScreen;
+ uxa_screen_t *uxa_screen = uxa_get_screen(screen);
+ CARD32 component_alpha;
+ PixmapPtr pixmap;
+ PicturePtr glyph_atlas, mask;
++ int xDst = list->xOff, yDst = list->yOff;
+ int x, y, width, height;
+ int dst_off_x, dst_off_y;
+ int n, error;
+ BoxRec box;
+
+- if (!extents) {
+- uxa_glyph_extents(nlist, list, glyphs, &box);
++ uxa_glyph_extents(nlist, list, glyphs, &box);
++ if (box.x2 <= box.x1 || box.y2 <= box.y1)
++ return 0;
+
+- if (box.x2 <= box.x1 || box.y2 <= box.y1)
+- return 0;
++ dst_off_x = box.x1;
++ dst_off_y = box.y1;
+
+- extents = &box;
+- dst_off_x = box.x1;
+- dst_off_y = box.y1;
+- } else {
+- dst_off_x = dst_off_y = 0;
+- }
+-
+- width = extents->x2 - extents->x1;
+- height = extents->y2 - extents->y1;
+- x = -extents->x1;
+- y = -extents->y1;
++ width = box.x2 - box.x1;
++ height = box.y2 - box.y1;
++ x = -box.x1;
++ y = -box.y1;
+
+ if (maskFormat->depth == 1) {
+ PictFormatPtr a8Format =
+@@ -1061,11 +870,6 @@ uxa_glyphs(CARD8 op,
+ {
+ ScreenPtr screen = pDst->pDrawable->pScreen;
+ uxa_screen_t *uxa_screen = uxa_get_screen(screen);
+- int xDst = list->xOff, yDst = list->yOff;
+- BoxRec extents = { 0, 0, 0, 0 };
+- Bool have_extents = FALSE;
+- int width, height, ret;
+- PicturePtr localDst = pDst;
+
+ if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
+ int ok;
+@@ -1128,112 +932,12 @@ fallback:
+ }
+ }
+
+- if (!maskFormat &&
+- uxa_screen->info->check_composite_target &&
+- !uxa_screen->info->check_composite_target(uxa_get_drawable_pixmap(pDst->pDrawable))) {
+- int depth = pDst->pDrawable->depth;
+- PixmapPtr pixmap;
+- int x, y, error;
+- GCPtr gc;
+-
+- pixmap = uxa_get_drawable_pixmap(pDst->pDrawable);
+- if (uxa_screen->info->check_copy &&
+- !uxa_screen->info->check_copy(pixmap, pixmap, GXcopy, FB_ALLONES))
+- goto fallback;
+-
+- uxa_glyph_extents(nlist, list, glyphs, &extents);
+-
+- /* clip against dst bounds */
+- if (extents.x1 < 0)
+- extents.x1 = 0;
+- if (extents.y1 < 0)
+- extents.y1 = 0;
+- if (extents.x2 > pDst->pDrawable->width)
+- extents.x2 = pDst->pDrawable->width;
+- if (extents.y2 > pDst->pDrawable->height)
+- extents.y2 = pDst->pDrawable->height;
+-
+- if (extents.x2 <= extents.x1 || extents.y2 <= extents.y1)
+- return;
+- width = extents.x2 - extents.x1;
+- height = extents.y2 - extents.y1;
+- x = -extents.x1;
+- y = -extents.y1;
+- have_extents = TRUE;
+-
+- xDst += x;
+- yDst += y;
+-
+- pixmap = screen->CreatePixmap(screen,
+- width, height, depth,
+- CREATE_PIXMAP_USAGE_SCRATCH);
+- if (!pixmap)
+- return;
+-
+- if (!uxa_pixmap_is_offscreen(pixmap)) {
+- screen->DestroyPixmap(pixmap);
+- goto fallback;
+- }
+-
+- gc = GetScratchGC(depth, screen);
+- if (!gc) {
+- screen->DestroyPixmap(pixmap);
+- return;
+- }
+-
+- ValidateGC(&pixmap->drawable, gc);
+- gc->ops->CopyArea(pDst->pDrawable, &pixmap->drawable, gc,
+- extents.x1, extents.y1,
+- width, height,
+- 0, 0);
+- FreeScratchGC(gc);
+-
+- localDst = CreatePicture(0, &pixmap->drawable,
+- PictureMatchFormat(screen, depth, pDst->format),
+- 0, 0, serverClient, &error);
+- screen->DestroyPixmap(pixmap);
+-
+- if (!localDst)
+- return;
+-
+- ValidatePicture(localDst);
+- }
+-
+- if (maskFormat) {
+- ret = uxa_glyphs_via_mask(op,
+- pSrc, localDst, maskFormat,
+- xSrc, ySrc,
+- xDst, yDst,
+- nlist, list, glyphs,
+- have_extents ? &extents : NULL);
+- } else {
+- ret = uxa_glyphs_to_dst(op,
+- pSrc, localDst,
+- xSrc, ySrc,
+- xDst, yDst,
+- nlist, list, glyphs,
+- have_extents ? &extents : NULL);
+- }
+- if (ret) {
+- if (localDst != pDst)
+- FreePicture(localDst, 0);
+-
++ if (!maskFormat)
+ goto fallback;
+- }
+
+- if (localDst != pDst) {
+- GCPtr gc;
+-
+- gc = GetScratchGC(pDst->pDrawable->depth, screen);
+- if (gc) {
+- ValidateGC(pDst->pDrawable, gc);
+- gc->ops->CopyArea(localDst->pDrawable, pDst->pDrawable, gc,
+- 0, 0,
+- width, height,
+- extents.x1, extents.y1);
+- FreeScratchGC(gc);
+- }
+-
+- FreePicture(localDst, 0);
+- }
++ if (uxa_glyphs_via_mask(op,
++ pSrc, pDst, maskFormat,
++ xSrc, ySrc,
++ nlist, list, glyphs))
++ goto fallback;
+ }
+--
+1.7.10
+
diff --git a/extra/xf86-video-intel/0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch b/extra/xf86-video-intel/0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch
new file mode 100644
index 000000000..865679078
--- /dev/null
+++ b/extra/xf86-video-intel/0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch
@@ -0,0 +1,40 @@
+From af5c698fd43308c3b799783b662b9cd871f90a62 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sat, 14 Apr 2012 19:03:25 +0100
+Subject: [PATCH 5/5] uxa: Fix leak of glyph mask for unhandled glyph
+ composition
+
+==1401== 7,344 bytes in 34 blocks are possibly lost in loss record 570 of 587
+==1401== at 0x4027034: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+==1401== by 0x8BE5150: drm_intel_gem_bo_alloc_internal (intel_bufmgr_gem.c:689)
+==1401== by 0x899FC04: intel_uxa_create_pixmap (intel_uxa.c:1077)
+==1401== by 0x89C2C41: uxa_glyphs (uxa-glyphs.c:254)
+==1401== by 0x21F05E: damageGlyphs (damage.c:647)
+==1401== by 0x218E06: ProcRenderCompositeGlyphs (render.c:1434)
+==1401== by 0x15AA40: Dispatch (dispatch.c:439)
+==1401== by 0x1499E9: main (main.c:287)
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+ uxa/uxa-glyphs.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
+index b754f4e..921b99c 100644
+--- a/uxa/uxa-glyphs.c
++++ b/uxa/uxa-glyphs.c
+@@ -812,8 +812,10 @@ uxa_glyphs_via_mask(CARD8 op,
+ if (!uxa_pixmap_is_offscreen(src_pixmap) ||
+ !uxa_screen->info->prepare_composite(PictOpAdd,
+ this_atlas, NULL, mask,
+- src_pixmap, NULL, pixmap))
++ src_pixmap, NULL, pixmap)) {
++ FreePicture(mask, 0);
+ return -1;
++ }
+
+ glyph_atlas = this_atlas;
+ }
+--
+1.7.10
+
diff --git a/extra/xf86-video-intel/PKGBUILD b/extra/xf86-video-intel/PKGBUILD
index ca1e15eb0..ad44b5329 100644
--- a/extra/xf86-video-intel/PKGBUILD
+++ b/extra/xf86-video-intel/PKGBUILD
@@ -1,23 +1,38 @@
-# $Id: PKGBUILD 153342 2012-03-12 20:53:36Z andyrtr $
+# $Id: PKGBUILD 156183 2012-04-15 12:22:45Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xf86-video-intel
pkgver=2.18.0
-pkgrel=1
+pkgrel=3
pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
license=('custom')
depends=('intel-dri' 'libxvmc' 'libpciaccess' 'libdrm' 'xcb-util>=0.3.8' 'libxfixes' 'udev')
-makedepends=('xorg-server-devel>=1.11.99.903' 'libx11' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'libxvmc' 'libxrender')
-conflicts=('xorg-server<1.11.99.903' 'xf86-video-i810' 'xf86-video-intel-legacy')
+makedepends=('xorg-server-devel>=1.12.0' 'libx11' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'libxvmc' 'libxrender')
+conflicts=('xorg-server<1.12.0' 'xf86-video-i810' 'xf86-video-intel-legacy')
options=('!libtool')
groups=('xorg-drivers' 'xorg')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('77fae98e73414140bf214dca5da32bcf079c4463')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch
+ 0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch
+ 0003-uxa-Remove-hook-for-CompositeRectangles.patch
+ 0004-uxa-Remove-broken-render-glyphs-to-dst.patch
+ 0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch)
+sha1sums=('77fae98e73414140bf214dca5da32bcf079c4463'
+ '8b46a5120c8c0b94fcd75801e5ce91d6baccd1ac'
+ 'd959c66ab40f521bfe4df66b6f43c98b13f59283'
+ '5525715f1bbf80edfc34d55946b0528f6b8dbf75'
+ '3e54a4b3911e004d29b6a8e07adb7c16eba5bc4f'
+ '32e2e5a53926ce29290bf6454e7dcdbd18e91d5e')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/0001-uxa-gen3-Remove-special-casing-of-solid-pictures.patch"
+ patch -Np1 -i "${srcdir}/0002-uxa-Defer-the-call-to-EnterVT-till-after-outputs-are.patch"
+ patch -Np1 -i "${srcdir}/0003-uxa-Remove-hook-for-CompositeRectangles.patch"
+ patch -Np1 -i "${srcdir}/0004-uxa-Remove-broken-render-glyphs-to-dst.patch"
+ patch -Np1 -i "${srcdir}/0005-uxa-Fix-leak-of-glyph-mask-for-unhandled-glyph-compo.patch"
./configure --prefix=/usr --enable-dri
make
}
diff --git a/kernels/linux-libre-xen/PKGBUILD b/kernels/linux-libre-xen/PKGBUILD
index 685710c52..caa0d045b 100644
--- a/kernels/linux-libre-xen/PKGBUILD
+++ b/kernels/linux-libre-xen/PKGBUILD
@@ -11,8 +11,7 @@ pkgname=('linux-libre-xen' 'linux-libre-xen-headers') # Build stock -LIBRE kerne
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE-XEN
_basekernel=3.3
-#pkgver=${_basekernel}.11
-pkgver=${_basekernel}
+pkgver=${_basekernel}.2
pkgrel=1
arch=('i686')
url="http://linux-libre.fsfla.org/"
@@ -20,7 +19,7 @@ license=('GPL2')
makedepends=('xmlto' 'docbook-xsl')
options=('!strip')
source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz"
- #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/patch-${_basekernel}-libre-${pkgver}-libre.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
# the main kernel config files
'config.i686'
# standard config files for mkinitcpio ramdisk
@@ -28,29 +27,26 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'boot-logo.patch'
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
- 'i915-gpu-finish.patch'
'ext4-options.patch')
md5sums=('5487da14ca81715a469c7594d39722fa'
- '1f29ffc2b18d7c37c781d7938ada59ab'
+ 'b43d3bdecfa355bf45bd1154819e3687'
+ '7e49ab7e4e63c890d0196be139a55656'
'b7c2805bb287a644c0a303bf7721e534'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
- '4cd79aa147825837dc8bc9f6b736c0a0'
- 'c8299cf750a84e12d60b372c8ca7e1e8')
+ 'bb7fd1aa23016c8057046b84fd4eb528')
build() {
cd "${srcdir}/linux-${_basekernel}"
-# patch -Np1 -i "${srcdir}/patch-${_basekernel}-libre-${pkgver}-libre"
+ if [ "${_basekernel}" != "${pkgver}" ]; then
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu"
+ fi
# Add freedo as boot logo
patch -Np1 -i "${srcdir}/boot-logo.patch"
- # fix FS#27883
- # drm/i915: Only clear the GPU domains upon a successful finish
- patch -Np1 -i "${srcdir}/i915-gpu-finish.patch"
-
# Some chips detect a ghost TV output
# mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
# Arch Linux bug report: FS#19234
@@ -171,7 +167,7 @@ package_linux-libre-xen-headers() {
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace video xen; do
+ media mtd net pcmcia scsi sound trace video xen; do
cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
done
diff --git a/kernels/linux-libre-xen/config.i686 b/kernels/linux-libre-xen/config.i686
index e6a221b4f..b1d41d390 100644
--- a/kernels/linux-libre-xen/config.i686
+++ b/kernels/linux-libre-xen/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.3.0 Kernel Configuration
+# Linux/i386 3.3.2 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -5120,7 +5120,6 @@ CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
diff --git a/kernels/linux-libre-xen/ext4-options.patch b/kernels/linux-libre-xen/ext4-options.patch
index 812b05f04..ea48c384b 100644
--- a/kernels/linux-libre-xen/ext4-options.patch
+++ b/kernels/linux-libre-xen/ext4-options.patch
@@ -46,4 +46,5 @@ index 502c61f..30de9cd 100644
+#endif
default:
ext4_msg(sb, KERN_ERR,
- "Unrecognized mount option \"%s\" " \ No newline at end of file
+ "Unrecognized mount option \"%s\" "
+
diff --git a/kernels/linux-libre-xen/linux-libre-xen.install b/kernels/linux-libre-xen/linux-libre-xen.install
index 55645b3fd..06c1f6ae8 100644
--- a/kernels/linux-libre-xen/linux-libre-xen.install
+++ b/kernels/linux-libre-xen/linux-libre-xen.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-xen
-KERNEL_VERSION=3.3.0-1-LIBRE-XEN
+KERNEL_VERSION=3.3.2-1-LIBRE-XEN
post_install () {
# updating module dependencies
diff --git a/libre/linux-libre-api-headers/PKGBUILD b/libre/linux-libre-api-headers/PKGBUILD
index 0a449ef3e..72f4c464d 100644
--- a/libre/linux-libre-api-headers/PKGBUILD
+++ b/libre/linux-libre-api-headers/PKGBUILD
@@ -5,8 +5,9 @@
# toolchain build order: linux-libre-api-headers->glibc->binutils->gcc->binutils->glibc
pkgname=linux-libre-api-headers
-pkgver=3.3
-_basever=3.3
+_basekernel=3.3
+_sublevel=2
+pkgver=${_basekernel}.${_sublevel}
pkgrel=1
pkgdesc="Kernel Libre headers sanitized for use in userspace"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,20 +16,24 @@ license=('GPL2')
provides=("linux-api-headers=${pkgver}" "kernel-headers=${pkgver}")
conflicts=('linux-api-headers' 'kernel-headers')
replaces=('linux-api-headers' 'kernel-headers')
-source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basever}-gnu/linux-libre-${_basever}-gnu.tar.xz")
- #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basever}-gnu-${pkgver}-gnu.xz")
-md5sums=('5487da14ca81715a469c7594d39722fa')
+source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz")
+md5sums=('5487da14ca81715a469c7594d39722fa'
+ 'b43d3bdecfa355bf45bd1154819e3687')
build() {
- cd ${srcdir}/linux-${_basever}
- [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${_basever}-gnu-${pkgver}-gnu
+ cd ${srcdir}/linux-${_basekernel}
+
+ if [ "${_basekernel}" != "${pkgver}" ]; then
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu"
+ fi
make mrproper
make headers_check
}
package() {
- cd ${srcdir}/linux-${_basever}
+ cd ${srcdir}/linux-${_basekernel}
make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
# use headers from libdrm
diff --git a/libre/linux-libre-lts/.directory b/libre/linux-libre-lts/.directory
index 60156bc93..89e875be9 100644
--- a/libre/linux-libre-lts/.directory
+++ b/libre/linux-libre-lts/.directory
@@ -1,2 +1,2 @@
[Dolphin]
-Timestamp=2012,3,15,16,10,14
+Timestamp=2012,4,16,17,55,34
diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD
index 790ea5e0b..5fe592460 100644
--- a/libre/linux-libre-lts/PKGBUILD
+++ b/libre/linux-libre-lts/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=('linux-libre-lts' 'linux-libre-lts-headers') # Build stock -LIBRE kerne
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE-LTS
_basekernel=3.0
-_sublevel=27
+_sublevel=28
pkgver=${_basekernel}.${_sublevel}
_lxopkgver=${_basekernel}.26 # nearly always the same as pkgver
pkgrel=1
@@ -32,7 +32,7 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'ext4-options.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('5f64180fe7df4e574dac5911b78f5067'
- '365d490f97b1960c8880eb22257d5ef0'
+ '150cef79eaa9a41cd5ccd65c696e7f10'
'c7acde811ca6808b294dc06480048c61'
'792766d6d403cc967977f6a46aa95d1d'
'd2c0701480bce49fd4b40dc46b9863f1'
diff --git a/libre/linux-libre-lts/linux-libre-lts.install b/libre/linux-libre-lts/linux-libre-lts.install
index acb2b71f5..5f32392c0 100644
--- a/libre/linux-libre-lts/linux-libre-lts.install
+++ b/libre/linux-libre-lts/linux-libre-lts.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-lts
-KERNEL_VERSION=3.0.27-1-LIBRE-LTS
+KERNEL_VERSION=3.0.28-1-LIBRE-LTS
post_install () {
# updating module dependencies
diff --git a/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch b/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch
new file mode 100644
index 000000000..ed8154df5
--- /dev/null
+++ b/libre/python2-libre/13156-revert-tls-changeset-subinterpreter.patch
@@ -0,0 +1,61 @@
+
+# HG changeset patch
+# User Charles-François Natali <neologix@free.fr>
+# Date 1318446474 -7200
+# Node ID ee4fe16d9b4822457ad855ea6c44e65030166304
+# Parent f6feed6ec3f9b024cecd0fd587595c403f55624f
+Issue #13156: revert changeset f6feed6ec3f9, which was only relevant for native
+TLS implementations, and fails with the ad-hoc TLS implementation when a thread
+doesn't have an auto thread state (e.g. a thread created outside of Python
+calling into a subinterpreter).
+
+diff --git a/Include/pystate.h b/Include/pystate.h
+--- a/Include/pystate.h
++++ b/Include/pystate.h
+@@ -111,7 +111,6 @@ PyAPI_FUNC(void) PyThreadState_Clear(PyT
+ PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *);
+ #ifdef WITH_THREAD
+ PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
+-PyAPI_FUNC(void) _PyGILState_Reinit(void);
+ #endif
+
+ PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);
+diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
+--- a/Modules/signalmodule.c
++++ b/Modules/signalmodule.c
+@@ -976,7 +976,6 @@ void
+ PyOS_AfterFork(void)
+ {
+ #ifdef WITH_THREAD
+- _PyGILState_Reinit();
+ PyEval_ReInitThreads();
+ main_thread = PyThread_get_thread_ident();
+ main_pid = getpid();
+diff --git a/Python/pystate.c b/Python/pystate.c
+--- a/Python/pystate.c
++++ b/Python/pystate.c
+@@ -537,23 +537,6 @@ void
+ autoInterpreterState = NULL;
+ }
+
+-/* Reset the TLS key - called by PyOS_AfterFork.
+- * This should not be necessary, but some - buggy - pthread implementations
+- * don't flush TLS on fork, see issue #10517.
+- */
+-void
+-_PyGILState_Reinit(void)
+-{
+- PyThreadState *tstate = PyGILState_GetThisThreadState();
+- PyThread_delete_key(autoTLSkey);
+- if ((autoTLSkey = PyThread_create_key()) == -1)
+- Py_FatalError("Could not allocate TLS entry");
+-
+- /* re-associate the current thread state with the new key */
+- if (PyThread_set_key_value(autoTLSkey, (void *)tstate) < 0)
+- Py_FatalError("Couldn't create autoTLSkey mapping");
+-}
+-
+ /* When a thread state is created for a thread by some mechanism other than
+ PyGILState_Ensure, it's important that the GILState machinery knows about
+ it so it doesn't try to create another thread state for the thread (this is
+