aboutsummaryrefslogtreecommitdiffstats
path: root/main/xf86-video-ati
diff options
context:
space:
mode:
Diffstat (limited to 'main/xf86-video-ati')
-rw-r--r--main/xf86-video-ati/APKBUILD22
-rw-r--r--main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch118
2 files changed, 136 insertions, 4 deletions
diff --git a/main/xf86-video-ati/APKBUILD b/main/xf86-video-ati/APKBUILD
index 7d3d543c55..37d10581b4 100644
--- a/main/xf86-video-ati/APKBUILD
+++ b/main/xf86-video-ati/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xf86-video-ati
pkgver=6.14.3
-pkgrel=1
+pkgrel=2
pkgdesc="ATI video driver"
url="http://xorg.freedesktop.org/"
arch="all"
@@ -10,10 +10,23 @@ subpackages="$pkgname-doc"
depends="mesa-dri-ati"
makedepends="pkgconfig xorg-server-dev libxi-dev fontsproto randrproto
videoproto renderproto libdrm-dev xf86driproto glproto mesa-dev
- xineramaproto udev-dev pixman-dev
+ xineramaproto udev-dev pixman-dev util-macros
+ autoconf automake libtool
"
-source="http://xorg.freedesktop.org/releases/individual/driver/$pkgname-$pkgver.tar.bz2"
+source="http://xorg.freedesktop.org/releases/individual/driver/$pkgname-$pkgver.tar.bz2
+ xf86-video-ati-6.14.3-xorg-server-1.12.patch
+ "
+
+prepare() {
+ cd "$srcdir"/$pkgname-$pkgver
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+ aclocal && autoreconf
+}
build() {
cd "$srcdir"/$pkgname-$pkgver
@@ -32,4 +45,5 @@ package() {
rm "$pkgdir"/usr/lib/xorg/modules/*/*.la || return 1
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-md5sums="19126c8421a05d9605883dcf7498d876 xf86-video-ati-6.14.3.tar.bz2"
+md5sums="19126c8421a05d9605883dcf7498d876 xf86-video-ati-6.14.3.tar.bz2
+ff01b935d15ab799d3e3f415a810d0fe xf86-video-ati-6.14.3-xorg-server-1.12.patch"
diff --git a/main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch b/main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch
new file mode 100644
index 0000000000..43fa945f9a
--- /dev/null
+++ b/main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch
@@ -0,0 +1,118 @@
+From c66ae235700f5efe64eb168327551b8f1d153c9c Mon Sep 17 00:00:00 2001
+From: Michel Dänzer <michel.daenzer@amd.com>
+Date: Mon, 13 Feb 2012 09:43:58 +0000
+Subject: Handle new xorg_list API.
+
+Fixes https://bugs.freedesktop.org/show_bug.cgi?id=45937
+
+Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+---
+diff --git a/configure.ac b/configure.ac
+index 29f129a..0083325 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -234,10 +234,18 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
+ [#include "xorg-server.h"])
+
+ AC_CHECK_HEADERS([list.h],
+- [], [],
++ [have_list_h="yes"], [have_list_h="no"],
+ [#include <X11/Xdefs.h>
+ #include "xorg-server.h"])
+
++if test "x$have_list_h" = xyes; then
++ AC_CHECK_DECL(xorg_list_init,
++ [AC_DEFINE(HAVE_XORG_LIST, 1, [Have xorg_list API])], [],
++ [#include <X11/Xdefs.h>
++ #include "xorg-server.h"
++ #include "list.h"])
++fi
++
+ CPPFLAGS="$SAVE_CPPFLAGS"
+
+ AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes)
+diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
+index 835575f..cf905a1 100644
+--- a/src/radeon_dri2.c
++++ b/src/radeon_dri2.c
+@@ -40,6 +40,13 @@
+
+ #if HAVE_LIST_H
+ #include "list.h"
++#if !HAVE_XORG_LIST
++#define xorg_list list
++#define xorg_list_init list_init
++#define xorg_list_add list_add
++#define xorg_list_del list_del
++#define xorg_list_for_each_entry list_for_each_entry
++#endif
+ #endif
+
+ #ifdef RADEON_DRI2
+@@ -515,11 +522,11 @@ typedef struct _DRI2FrameEvent {
+
+ Bool valid;
+
+- struct list link;
++ struct xorg_list link;
+ } DRI2FrameEventRec, *DRI2FrameEventPtr;
+
+ typedef struct _DRI2ClientEvents {
+- struct list reference_list;
++ struct xorg_list reference_list;
+ } DRI2ClientEventsRec, *DRI2ClientEventsPtr;
+
+ #if HAS_DEVPRIVATEKEYREC
+@@ -538,7 +545,7 @@ DevPrivateKey DRI2ClientEventsPrivateKey = &DRI2ClientEventsPrivateKeyIndex;
+ dixLookupPrivate(&(pClient)->devPrivates, DRI2ClientEventsPrivateKey))
+
+ static int
+-ListAddDRI2ClientEvents(ClientPtr client, struct list *entry)
++ListAddDRI2ClientEvents(ClientPtr client, struct xorg_list *entry)
+ {
+ DRI2ClientEventsPtr pClientPriv;
+ pClientPriv = GetDRI2ClientEvents(client);
+@@ -547,12 +554,12 @@ ListAddDRI2ClientEvents(ClientPtr client, struct list *entry)
+ return BadAlloc;
+ }
+
+- list_add(entry, &pClientPriv->reference_list);
++ xorg_list_add(entry, &pClientPriv->reference_list);
+ return 0;
+ }
+
+ static void
+-ListDelDRI2ClientEvents(ClientPtr client, struct list *entry)
++ListDelDRI2ClientEvents(ClientPtr client, struct xorg_list *entry)
+ {
+ DRI2ClientEventsPtr pClientPriv;
+ pClientPriv = GetDRI2ClientEvents(client);
+@@ -560,7 +567,7 @@ ListDelDRI2ClientEvents(ClientPtr client, struct list *entry)
+ if (!pClientPriv) {
+ return;
+ }
+- list_del(entry);
++ xorg_list_del(entry);
+ }
+
+ static void
+@@ -574,7 +581,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d
+
+ switch (pClient->clientState) {
+ case ClientStateInitial:
+- list_init(&pClientEventsPriv->reference_list);
++ xorg_list_init(&pClientEventsPriv->reference_list);
+ break;
+ case ClientStateRunning:
+ break;
+@@ -582,7 +589,7 @@ radeon_dri2_client_state_changed(CallbackListPtr *ClientStateCallback, pointer d
+ case ClientStateRetained:
+ case ClientStateGone:
+ if (pClientEventsPriv) {
+- list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) {
++ xorg_list_for_each_entry(ref, &pClientEventsPriv->reference_list, link) {
+ ref->valid = FALSE;
+ }
+ }
+--
+cgit v0.9.0.2-2-gbebe