tx11-drivers/xf86-video-intel: Add 2.99.917 with musl-libc support. - parlay - yet another gentoo overlay HTML git clone https://git.parazyd.org/parlay DIR Log DIR Files DIR Refs DIR README --- DIR commit 8c2def76264e22617f349618df0b39fcb59e59a3 DIR parent c19729b9a5f0295e99c48f51d7e23a849bbd158a HTML Author: parazyd <parazyd@dyne.org> Date: Sun, 2 Oct 2016 22:13:16 +0200 x11-drivers/xf86-video-intel: Add 2.99.917 with musl-libc support. Diffstat: A x11-drivers/xf86-video-intel/Manif… | 2 ++ A x11-drivers/xf86-video-intel/files… | 65 +++++++++++++++++++++++++++++++ A x11-drivers/xf86-video-intel/files… | 57 +++++++++++++++++++++++++++++++ A x11-drivers/xf86-video-intel/files… | 27 +++++++++++++++++++++++++++ A x11-drivers/xf86-video-intel/xf86-… | 76 +++++++++++++++++++++++++++++++ A x11-drivers/xf86-video-intel/xf86-… | 84 +++++++++++++++++++++++++++++++ 6 files changed, 311 insertions(+), 0 deletions(-) --- DIR diff --git a/x11-drivers/xf86-video-intel/Manifest b/x11-drivers/xf86-video-intel/Manifest t@@ -0,0 +1,2 @@ +DIST xf86-video-intel-2.99.917.tar.bz2 2259040 SHA256 00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9 SHA512 cbf4d46ad1ad5e5587c0f1f620ff534ef0645270517b60056b9f03e83d8216e2f456de46352a06c37c0c46963cc4ed20b71b815b20ec1bf680ff046e535f580f WHIRLPOOL b26f1b303a27825120e1036f15493119e8869ebae74a2663204fe1ee63cf9fc217e593c469d6c33151a73c9ea6e9df88d0e3a0bb74ece5109b51593785fd4d7d +DIST xf86-video-intel-2.99.917_p20160829.tar.xz 942680 SHA256 0541e3a0eb3ee1a30968fa4a2ae0db9a1f5768d0931582f7fc647cc8ee26127e SHA512 7b35f1f994639f017c1201231f659704fb5f2ddbdda73d054780922e7f9a29a0dba859c477651c59be9d84831dd5473794a52cd18e97185dbbdb0c051cef5d26 WHIRLPOOL 53126bfb47e51371420715dbb5dde64828e734899debd022de2efa2d04cc069f70d88dae3e6a3b4f4e70887d315dae1d26605d8b591d1684583ed576f317f614 DIR diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-libdrm-kernel-4_0-crash.patch t@@ -0,0 +1,65 @@ +From 7fe2b2948652443ff43d907855bd7a051d54d309 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu, 19 Mar 2015 23:14:17 +0000 +Subject: sna: Protect against ABI breakage in recent versions of libdrm + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + +diff --git a/src/sna/kgem.c b/src/sna/kgem.c +index 11f0828..6f16cba 100644 +--- a/src/sna/kgem.c ++++ b/src/sna/kgem.c +@@ -182,6 +182,15 @@ struct local_i915_gem_caching { + #define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching) + #define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching) + ++struct local_i915_gem_mmap { ++ uint32_t handle; ++ uint32_t pad; ++ uint64_t offset; ++ uint64_t size; ++ uint64_t addr_ptr; ++}; ++#define LOCAL_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct local_i915_gem_mmap) ++ + struct local_i915_gem_mmap2 { + uint32_t handle; + uint32_t pad; +@@ -514,15 +523,15 @@ retry_wc: + + static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo) + { +- struct drm_i915_gem_mmap mmap_arg; ++ struct local_i915_gem_mmap arg; + int err; + + retry: +- VG_CLEAR(mmap_arg); +- mmap_arg.handle = bo->handle; +- mmap_arg.offset = 0; +- mmap_arg.size = bytes(bo); +- if ((err = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))) { ++ VG_CLEAR(arg); ++ arg.handle = bo->handle; ++ arg.offset = 0; ++ arg.size = bytes(bo); ++ if ((err = do_ioctl(kgem->fd, LOCAL_IOCTL_I915_GEM_MMAP, &arg))) { + assert(err != EINVAL); + + if (__kgem_throttle_retire(kgem, 0)) +@@ -536,10 +545,10 @@ retry: + return NULL; + } + +- VG(VALGRIND_MAKE_MEM_DEFINED(mmap_arg.addr_ptr, bytes(bo))); ++ VG(VALGRIND_MAKE_MEM_DEFINED(arg.addr_ptr, bytes(bo))); + + DBG(("%s: caching CPU vma for %d\n", __FUNCTION__, bo->handle)); +- return bo->map__cpu = (void *)(uintptr_t)mmap_arg.addr_ptr; ++ return bo->map__cpu = (void *)(uintptr_t)arg.addr_ptr; + } + + static int gem_write(int fd, uint32_t handle, +-- +cgit v0.10.2 + DIR diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-sna-udev-fstat.patch t@@ -0,0 +1,57 @@ +From 12af8a575d1518d40416f83195049157c3a062a5 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Tue, 24 Feb 2015 15:25:40 +0000 +Subject: sna: udev integration depends on fstat and sys/stat.h + +src/sna/sna_driver.c: In function 'sna_handle_uevents': +src/sna/sna_driver.c:759:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration] + +Also take the opportunity to include udev support in the configure +summary. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + +diff --git a/configure.ac b/configure.ac +index 7476e2b..de3a4b3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -197,11 +197,15 @@ AC_ARG_ENABLE(udev, + + if test "x$UDEV" != "xno"; then + PKG_CHECK_MODULES(UDEV, [libudev], [udev="yes"], [udev="no"]) ++ AC_CHECK_HEADERS([sys/stat.h], [], [udev="no"]) + if test "x$UDEV" = "xyes" -a "x$udev" != "xyes"; then + AC_MSG_ERROR([udev support requested but not found (libudev)]) + fi + if test "x$udev" = "xyes"; then + AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection]) ++ udev_msg=" yes" ++ else ++ udev_msg=" no" + fi + fi + +@@ -911,6 +915,7 @@ echo " Support for Kernel Mode Setting? $KMS" + echo " Support for legacy User Mode Setting (for i810)? $UMS" + echo " Support for Direct Rendering Infrastructure:$dri_msg" + echo " Support for Xv motion compensation (XvMC and libXvMC):$xvmc_msg" ++echo " Support for display hotplug notifications (udev):$udev_msg" + echo " Build additional tools and utilities?$tools_msg" + if test -n "$xp_msg"; then + echo " Experimental support:$xp_msg" +diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c +index 8c0d0b5..bc20ef0 100644 +--- a/src/sna/sna_driver.c ++++ b/src/sna/sna_driver.c +@@ -740,6 +740,8 @@ sna_wakeup_handler(WAKEUPHANDLER_ARGS_DECL) + } + + #if HAVE_UDEV ++#include <sys/stat.h> ++ + static void + sna_handle_uevents(int fd, void *closure) + { +-- +cgit v0.10.2 + DIR diff --git a/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch b/x11-drivers/xf86-video-intel/files/xf86-video-intel-2.99.917-uxa-udev-fstat.patch t@@ -0,0 +1,27 @@ +From 369ceec0e4910ba2c37736a59c55c0d6c26433bf Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Tue, 24 Feb 2015 15:25:40 +0000 +Subject: uxa: udev integration depends on fstat and sys/stat.h + +src/uxa/intel_driver.c: In function 'I830HandleUEvents': +src/uxa/intel_driver.c:738:14: error: storage size of 's' isn't known +src/uxa/intel_driver.c:746:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration] + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + +diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c +index c554124..6e64b8c 100644 +--- a/src/uxa/intel_driver.c ++++ b/src/uxa/intel_driver.c +@@ -728,6 +728,8 @@ intel_flush_callback(CallbackListPtr *list, + } + + #if HAVE_UDEV ++#include <sys/stat.h> ++ + static void + I830HandleUEvents(int fd, void *closure) + { +-- +cgit v0.10.2 + DIR diff --git a/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917-r999.ebuild b/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917-r999.ebuild t@@ -0,0 +1,76 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +XORG_DRI=dri +XORG_EAUTORECONF=yes +inherit linux-info xorg-2 + +DESCRIPTION="X.Org driver for Intel cards" + +KEYWORDS="amd64 x86 ~amd64-fbsd -x86-fbsd" +IUSE="debug +sna +udev uxa xvmc" + +REQUIRED_USE=" + || ( sna uxa ) +" + +RDEPEND="x11-libs/libXext + x11-libs/libXfixes + >=x11-libs/pixman-0.27.1 + >=x11-libs/libdrm-2.4.29[video_cards_intel] + sna? ( + >=x11-base/xorg-server-1.10 + ) + udev? ( + virtual/udev + ) + xvmc? ( + x11-libs/libXvMC + >=x11-libs/libxcb-1.5 + x11-libs/xcb-util + ) +" +DEPEND="${RDEPEND} + >=x11-proto/dri2proto-2.6 + x11-proto/dri3proto + x11-proto/presentproto + x11-proto/resourceproto" + +PATCHES=( + "${FILESDIR}"/${P}-sna-udev-fstat.patch + "${FILESDIR}"/${P}-uxa-udev-fstat.patch + "${FILESDIR}"/${P}-libdrm-kernel-4_0-crash.patch +) + +src_configure() { + XORG_CONFIGURE_OPTIONS=( + $(use_enable debug) + $(use_enable dri) + $(use_enable sna) + $(use_enable uxa) + $(use_enable udev) + $(use_enable xvmc) + # Legacy driver is broken on MUSL, so whole driver fails. + --enable-kms-only + --disable-dri3 + ) + xorg-2_src_configure +} + +pkg_postinst() { + if linux_config_exists \ + && ! linux_chkconfig_present DRM_I915_KMS; then + echo + ewarn "This driver requires KMS support in your kernel" + ewarn " Device Drivers --->" + ewarn " Graphics support --->" + ewarn " Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->" + ewarn " <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) --->" + ewarn " i915 driver" + ewarn " [*] Enable modesetting on intel by default" + echo + fi +} DIR diff --git a/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20160829-r999.ebuild b/x11-drivers/xf86-video-intel/xf86-video-intel-2.99.917_p20160829-r999.ebuild t@@ -0,0 +1,84 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +XORG_DRI=dri +XORG_EAUTORECONF=yes +inherit linux-info xorg-2 + +DESCRIPTION="X.Org driver for Intel cards" + +KEYWORDS="~amd64 ~x86 ~amd64-fbsd -x86-fbsd" +IUSE="debug dri3 +sna +udev uxa xvmc" +COMMIT_ID="74e4c131daf99eec381c77bef6611111e74da502" +SRC_URI="https://cgit.freedesktop.org/xorg/driver/xf86-video-intel/snapshot/${COMMIT_ID}.tar.xz -> ${P}.tar.xz" + +S=${WORKDIR}/${COMMIT_ID} + +REQUIRED_USE=" + || ( sna uxa ) +" +RDEPEND="x11-libs/libXext + x11-libs/libXfixes + >=x11-libs/pixman-0.27.1 + >=x11-libs/libdrm-2.4.29[video_cards_intel] + dri3? ( + >=x11-base/xorg-server-1.18 + ) + sna? ( + >=x11-base/xorg-server-1.10 + ) + udev? ( + virtual/udev + ) + xvmc? ( + x11-libs/libXvMC + >=x11-libs/libxcb-1.5 + x11-libs/xcb-util + ) +" +DEPEND="${RDEPEND} + >=x11-proto/dri2proto-2.6 + x11-proto/dri3proto + x11-proto/presentproto + x11-proto/resourceproto" + +src_configure() { + XORG_CONFIGURE_OPTIONS=( + $(use_enable debug) + $(use_enable dri) + $(use_enable dri dri3) + $(usex dri3 "--with-default-dri=3") + $(use_enable sna) + $(use_enable udev) + $(use_enable uxa) + $(use_enable xvmc) + # Legacy driver is broken on MUSL, so whole driver fails. + --enable-kms-only + ) + xorg-2_src_configure +} + +pkg_postinst() { + if linux_config_exists && \ + kernel_is -lt 4 3 && ! linux_chkconfig_present DRM_I915_KMS; then + echo + ewarn "This driver requires KMS support in your kernel" + ewarn " Device Drivers --->" + ewarn " Graphics support --->" + ewarn " Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->" + ewarn " <*> Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) --->" + ewarn " i915 driver" + ewarn " [*] Enable modesetting on intel by default" + echo + fi + if use dri3; then + ewarn "There are reports of crashes when using DRI3, we recommend" + ewarn "to be careful when enabling this option. Check the following" + ewarn "bugs for discussion and a workaround patch for libdrm:" + ewarn "https://bugs.freedesktop.org/show_bug.cgi?id=71759" + ewarn "https://bugs.gentoo.org/show_bug.cgi?id=582544" + fi +}