summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemi Cardona <remi@gentoo.org>2008-10-19 21:36:06 +0000
committerRemi Cardona <remi@gentoo.org>2008-10-19 21:36:06 +0000
commit92735697100beacfce1405651939d384209f7dfe (patch)
tree87955d7e0ef305a1655c5dc3e2479c429f78d025 /x11-libs
parentdowngrade EAPI to 0 as this seems to cause troubles to some users (bug #24250... (diff)
downloadhistorical-92735697100beacfce1405651939d384209f7dfe.tar.gz
historical-92735697100beacfce1405651939d384209f7dfe.tar.bz2
historical-92735697100beacfce1405651939d384209f7dfe.zip
x11-libs/libdrm: bump to 2.4.0 (under p.mask, some drivers are broken, see bug #242698)
Package-Manager: portage-2.2_rc12/cvs/Linux 2.6.26-gentoo-r1 i686
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/libdrm/ChangeLog10
-rw-r--r--x11-libs/libdrm/Manifest16
-rw-r--r--x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch67
-rw-r--r--x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch29
-rw-r--r--x11-libs/libdrm/libdrm-2.4.0.ebuild47
5 files changed, 157 insertions, 12 deletions
diff --git a/x11-libs/libdrm/ChangeLog b/x11-libs/libdrm/ChangeLog
index 4d06dc328cf7..9a3dfc0a6daf 100644
--- a/x11-libs/libdrm/ChangeLog
+++ b/x11-libs/libdrm/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for x11-libs/libdrm
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/libdrm/ChangeLog,v 1.56 2008/07/01 08:32:48 dberkholz Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libdrm/ChangeLog,v 1.57 2008/10/19 21:36:06 remi Exp $
+
+*libdrm-2.4.0 (19 Oct 2008)
+
+ 19 Oct 2008; Rémi Cardona <remi@gentoo.org>
+ +files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch,
+ +files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch,
+ +libdrm-2.4.0.ebuild:
+ bump to 2.4.0 (under p.mask, some drivers are broken, see bug #242698)
*libdrm-2.3.1 (01 Jul 2008)
diff --git a/x11-libs/libdrm/Manifest b/x11-libs/libdrm/Manifest
index c9a8973a61cf..1c1413e53e1a 100644
--- a/x11-libs/libdrm/Manifest
+++ b/x11-libs/libdrm/Manifest
@@ -1,17 +1,11 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
+AUX 2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch 2095 RMD160 5513e5184ccbf27179997d8cd5d9bf04923edb85 SHA1 00cf20dd064d3a6a25afb5e8596e7e555ec5d32e SHA256 3c5c1dbf5e67df1f2991a477b7c9372bc713048fc09a80481997745786287779
+AUX 2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch 930 RMD160 870f4d959237bcebcb8dca3b77a75561e61826ee SHA1 f8e1f30034d1c9f7debfea05e8ed56a8e3d94fd4 SHA256 b82f95f8e59537120217b4f6e829b20b277ebbb69dd1fd1afe5d6742940ddfb9
DIST libdrm-2.3.0.tar.gz 391509 RMD160 2ca594cf17fc074b1addd1f370dd3409b5a03dd7 SHA1 fd62459b11c39a58e5b45b8af30a8217d5ce0e1b SHA256 76f90a22e141832bccea3fabf14e2b2a53e1ff72fe8414e2836ea8ac7e2e3dab
DIST libdrm-2.3.1.tar.gz 413300 RMD160 15c8f03bb11f58a272eaf89f988e96256a7f43f1 SHA1 007903c738df3bc2a3cdab0289635baa95a2ed7a SHA256 1d1ad058916a412ec56c3a541c6d921dda11e015909105e84bd260d87ae25465
+DIST libdrm-2.4.0.tar.gz 457926 RMD160 1020d3bcb0004c9e2454aa473db1de5b48173565 SHA1 d9659fe2821e5d6c9895dc91b7b255873205e9d2 SHA256 971004d5ceb7f21d697383e36514f60a9feaf63ed9e9ea50d2a5a7968ee37060
EBUILD libdrm-2.3.0.ebuild 1144 RMD160 5d6ba23e2d8df6a9fd1b2dd3eddad62013e8788c SHA1 17fd56acbe70e7c9f1ae23b90f809a8cac9419d8 SHA256 1eeb4c79f8937876ba23d1179c07932e21f1732a5ce6fa2e8772687859f08093
EBUILD libdrm-2.3.1.ebuild 1154 RMD160 1a0fc6e4567af1e6d84b2f0c682e0fa2668ca832 SHA1 c235c9ebff3165272eaa789a359ae53472c1a187 SHA256 782564e274c596a613874a1c86f2110abeeabee2ba5a8506c17b75d88d37531b
EBUILD libdrm-2.3.1_pre20080528.ebuild 1309 RMD160 b5117772e5a9374d266ff1f00a1ec47e64d5c389 SHA1 8ca8b4596dccb3129783d732f722bc6b7e27e8e2 SHA256 4e3b87c117e3a151c5653a3a42cb2ea9bd758b916b6868c1c38b512d51b7041f
-MISC ChangeLog 6963 RMD160 f7254f4b6f47a478702b7da046d5c3f728471483 SHA1 e07a27825146d838116f70bffa0777cd40b800ad SHA256 bc210901f8306727be4831edbc6ec1b1159c568d1fe45d6c4385672a1a8a1a9f
+EBUILD libdrm-2.4.0.ebuild 1416 RMD160 abc17054f0028706ebc742f4011fa421c4a1c9d1 SHA1 c3f6aa6d5ca25f68748134f32c4145c7590486da SHA256 d9f9abaec291c77acef2decc5d2dba89b1766362413613cb881e84e9dd2dad00
+MISC ChangeLog 7261 RMD160 14e1036e0b659a397716ca9c2ccfaa80d487c584 SHA1 74007416fafc4cbcc2fbd6be0eb1b5eabd626539 SHA256 af62316ae821d4b90df7dd0a7a43eaf82627f5993f7a461310c7ae175d54b933
MISC metadata.xml 156 RMD160 c1274bdccf57603d580de0075ba07a35b7509560 SHA1 6f78f604e3d079d39189b40aaaa1ddb06182ad91 SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.9 (GNU/Linux)
-
-iEYEARECAAYFAkhp67gACgkQXVaO67S1rtupRgCgkJggR5O6wChT/hrO5hOe6WUv
-jEkAn1H5aN8QpAEV9azq7YxezbcDwVV3
-=RYsn
------END PGP SIGNATURE-----
diff --git a/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch b/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch
new file mode 100644
index 000000000000..0aff822a294a
--- /dev/null
+++ b/x11-libs/libdrm/files/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch
@@ -0,0 +1,67 @@
+From 769197c8f16eaf3c0a476a4459e535afd4a939cb Mon Sep 17 00:00:00 2001
+From: Xiang, Haihao <haihao.xiang@intel.com>
+Date: Thu, 16 Oct 2008 10:37:30 +0800
+Subject: [PATCH] intel: avoid deadlock in intel_bufmgr_fake.
+
+---
+ libdrm/intel/intel_bufmgr_fake.c | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/libdrm/intel/intel_bufmgr_fake.c b/libdrm/intel/intel_bufmgr_fake.c
+index 8e476c4..c82ce5a 100644
+--- a/libdrm/intel/intel_bufmgr_fake.c
++++ b/libdrm/intel/intel_bufmgr_fake.c
+@@ -1053,12 +1053,10 @@ dri_fake_bo_unmap(dri_bo *bo)
+ }
+
+ static void
+-dri_fake_kick_all(dri_bufmgr_fake *bufmgr_fake)
++dri_fake_kick_all_locked(dri_bufmgr_fake *bufmgr_fake)
+ {
+ struct block *block, *tmp;
+
+- pthread_mutex_lock(&bufmgr_fake->lock);
+-
+ bufmgr_fake->performed_rendering = 0;
+ /* okay for ever BO that is on the HW kick it off.
+ seriously not afraid of the POLICE right now */
+@@ -1073,7 +1071,6 @@ dri_fake_kick_all(dri_bufmgr_fake *bufmgr_fake)
+ bo_fake->dirty = 1;
+ }
+
+- pthread_mutex_unlock(&bufmgr_fake->lock);
+ }
+
+ static int
+@@ -1358,7 +1355,7 @@ dri_fake_bo_exec(dri_bo *bo, int used,
+ if (bufmgr_fake->fail == 1) {
+ if (retry_count == 0) {
+ retry_count++;
+- dri_fake_kick_all(bufmgr_fake);
++ dri_fake_kick_all_locked(bufmgr_fake);
+ bufmgr_fake->fail = 0;
+ goto restart;
+ } else /* dump out the memory here */
+@@ -1369,8 +1366,10 @@ dri_fake_bo_exec(dri_bo *bo, int used,
+
+ if (bufmgr_fake->exec != NULL) {
+ int ret = bufmgr_fake->exec(bo, used, bufmgr_fake->exec_priv);
+- if (ret != 0)
++ if (ret != 0) {
++ pthread_mutex_unlock(&bufmgr_fake->lock);
+ return ret;
++ }
+ } else {
+ batch.start = bo->offset;
+ batch.used = used;
+@@ -1382,6 +1381,7 @@ dri_fake_bo_exec(dri_bo *bo, int used,
+ if (drmCommandWrite(bufmgr_fake->fd, DRM_I915_BATCHBUFFER, &batch,
+ sizeof(batch))) {
+ drmMsg("DRM_I915_BATCHBUFFER: %d\n", -errno);
++ pthread_mutex_unlock(&bufmgr_fake->lock);
+ return -errno;
+ }
+ }
+--
+1.6.0.2
+
diff --git a/x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch b/x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
new file mode 100644
index 000000000000..3c87595f8df1
--- /dev/null
+++ b/x11-libs/libdrm/files/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch
@@ -0,0 +1,29 @@
+From a59ea02ff839fa0801763a90beb8b232b933c746 Mon Sep 17 00:00:00 2001
+From: Keith Packard <keithp@keithp.com>
+Date: Thu, 16 Oct 2008 21:15:01 -0700
+Subject: [PATCH] intel: ioctl is not defined to return -errno
+
+Don't count on ioctl returning -errno; use errno directly.
+
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+---
+ libdrm/intel/intel_bufmgr_gem.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
+index 33853c4..081eb2a 100644
+--- a/libdrm/intel/intel_bufmgr_gem.c
++++ b/libdrm/intel/intel_bufmgr_gem.c
+@@ -790,7 +790,7 @@ dri_gem_bo_exec(dri_bo *bo, int used,
+
+ do {
+ ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_EXECBUFFER, &execbuf);
+- } while (ret == -EAGAIN);
++ } while (ret != 0 && errno == EAGAIN);
+
+ intel_update_buffer_offsets (bufmgr_gem);
+
+--
+1.6.0.2
+
diff --git a/x11-libs/libdrm/libdrm-2.4.0.ebuild b/x11-libs/libdrm/libdrm-2.4.0.ebuild
new file mode 100644
index 000000000000..13394a18b593
--- /dev/null
+++ b/x11-libs/libdrm/libdrm-2.4.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libdrm/libdrm-2.4.0.ebuild,v 1.1 2008/10/19 21:36:06 remi Exp $
+
+# Must be before x-modular eclass is inherited
+#SNAPSHOT="yes"
+
+inherit x-modular
+
+DESCRIPTION="X.Org libdrm library"
+HOMEPAGE="http://dri.freedesktop.org/"
+SRC_URI="http://dri.freedesktop.org/libdrm/${P}.tar.gz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE=""
+
+RDEPEND="
+ dev-libs/libpthread-stubs"
+DEPEND="${RDEPEND}"
+
+# FIXME, we should try to see how we can fit the --enable-udev configure flag
+
+PATCHES=(
+ "${FILESDIR}/2.4.0-intel-avoid-deadlock-in-intel_bufmgr_fake.patch"
+ "${FILESDIR}/2.4.0-intel-ioctl-is-not-defined-to-return-errno.patch"
+ )
+
+pkg_preinst() {
+ x-modular_pkg_preinst
+
+ if [[ -e ${ROOT}/usr/$(get_libdir)/libdrm.so.1 ]] ; then
+ cp -pPR "${ROOT}"/usr/$(get_libdir)/libdrm.so.{1,1.0.0} "${D}"/usr/$(get_libdir)/
+ fi
+}
+
+pkg_postinst() {
+ x-modular_pkg_postinst
+
+ if [[ -e ${ROOT}/usr/$(get_libdir)/libdrm.so.1 ]] ; then
+ elog "You must re-compile all packages that are linked against"
+ elog "libdrm 1 by using revdep-rebuild from gentoolkit:"
+ elog "# revdep-rebuild --library libdrm.so.1"
+ elog "After this, you can delete /usr/$(get_libdir)/libdrm.so.1"
+ elog "and /usr/$(get_libdir)/libdrm.so.1.0.0 ."
+ epause
+ fi
+}