[arch-commits] Commit in libdrm/trunk (PKGBUILD bug18922.patch)

Jan de Groot jgc at archlinux.org
Sat Feb 14 23:05:31 UTC 2009


    Date: Saturday, February 14, 2009 @ 18:05:31
  Author: jgc
Revision: 26956

upgpkg: libdrm 2.3.1-3
    Fix FS#12821

Added:
  libdrm/trunk/bug18922.patch
Modified:
  libdrm/trunk/PKGBUILD

----------------+
 PKGBUILD       |    9 +++++--
 bug18922.patch |   65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-02-14 22:52:14 UTC (rev 26955)
+++ PKGBUILD	2009-02-14 23:05:31 UTC (rev 26956)
@@ -3,17 +3,20 @@
 
 pkgname=libdrm
 pkgver=2.3.1
-pkgrel=2
+pkgrel=3
 pkgdesc="Userspace interface to kernel DRM services"
 arch=(i686 x86_64)
 depends=('glibc')
 options=('!libtool' 'force')
 url="http://dri.freedesktop.org/"
-source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('620fe7dd02c3236c3e9881a3a238173d')
+source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+	bug18922.patch)
+md5sums=('620fe7dd02c3236c3e9881a3a238173d'
+	 '028d2832c159b618198e24a0a1e93701')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i "${srcdir}/bug18922.patch" || return 1
   ./configure --prefix=/usr || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1

Added: bug18922.patch
===================================================================
--- bug18922.patch	                        (rev 0)
+++ bug18922.patch	2009-02-14 23:05:31 UTC (rev 26956)
@@ -0,0 +1,65 @@
+diff -Naur libdrm-2.3.1.orig/libdrm/Makefile.am libdrm-2.3.1/libdrm/Makefile.am
+--- libdrm-2.3.1.orig/libdrm/Makefile.am	2008-07-01 09:51:40.000000000 +0200
++++ libdrm-2.3.1/libdrm/Makefile.am	2009-01-17 13:10:33.000000000 +0100
+@@ -21,6 +21,7 @@
+ libdrm_la_LTLIBRARIES = libdrm.la
+ libdrm_ladir = $(libdir)
+ libdrm_la_LDFLAGS = -version-number 2:3:1 -no-undefined
++libdrm_la_LIBADD = -lrt
+ 
+ AM_CFLAGS = -I$(top_srcdir)/shared-core
+ libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c
+diff -Naur libdrm-2.3.1.orig/libdrm/Makefile.in libdrm-2.3.1/libdrm/Makefile.in
+--- libdrm-2.3.1.orig/libdrm/Makefile.in	2008-07-01 09:55:48.000000000 +0200
++++ libdrm-2.3.1/libdrm/Makefile.in	2009-01-17 13:11:27.000000000 +0100
+@@ -73,7 +73,7 @@
+ 	"$(DESTDIR)$(libdrmincludedir)"
+ libdrm_laLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(libdrm_la_LTLIBRARIES)
+-libdrm_la_LIBADD =
++libdrm_la_LIBADD = -lrt
+ am_libdrm_la_OBJECTS = xf86drm.lo xf86drmHash.lo xf86drmRandom.lo \
+ 	xf86drmSL.lo
+ libdrm_la_OBJECTS = $(am_libdrm_la_OBJECTS)
+diff -Naur libdrm-2.3.1.orig/libdrm/xf86drm.c libdrm-2.3.1/libdrm/xf86drm.c
+--- libdrm-2.3.1.orig/libdrm/xf86drm.c	2008-07-01 09:51:40.000000000 +0200
++++ libdrm-2.3.1/libdrm/xf86drm.c	2009-01-17 13:10:33.000000000 +0100
+@@ -42,6 +42,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <signal.h>
++#include <time.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #define stat_t struct stat
+@@ -1851,13 +1852,30 @@
+  */
+ int drmWaitVBlank(int fd, drmVBlankPtr vbl)
+ {
++    struct timespec timeout, cur;
+     int ret;
+ 
++    ret = clock_gettime(CLOCK_MONOTONIC, &timeout);
++    if (ret < 0) {
++	fprintf(stderr, "clock_gettime failed: %s\n", strerror(ret));
++	goto out;
++    }
++    timeout.tv_sec++;
++
+     do {
+        ret = ioctl(fd, DRM_IOCTL_WAIT_VBLANK, vbl);
+        vbl->request.type &= ~DRM_VBLANK_RELATIVE;
++       clock_gettime(CLOCK_MONOTONIC, &cur);
++       /* Timeout after 1s */
++       if (cur.tv_sec > timeout.tv_sec + 1 ||
++	   cur.tv_sec == timeout.tv_sec && cur.tv_nsec >= timeout.tv_nsec) {
++	   errno = EBUSY;
++	   ret = -1;
++	   break;
++       }
+     } while (ret && errno == EINTR);
+ 
++out:
+     return ret;
+ }
+ 




More information about the arch-commits mailing list