diff options
Diffstat (limited to 'main/xf86-video-ati')
-rw-r--r-- | main/xf86-video-ati/APKBUILD | 22 | ||||
-rw-r--r-- | main/xf86-video-ati/xf86-video-ati-6.14.3-xorg-server-1.12.patch | 118 |
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 |