diff --git a/packages/graphics/libdrm/build b/packages/graphics/libdrm/build index e993bdbb32..25c96b8b4b 100755 --- a/packages/graphics/libdrm/build +++ b/packages/graphics/libdrm/build @@ -8,12 +8,16 @@ $SCRIPTS/build udev get_graphicdrivers +DRM_CONFIG="--disable-libkms --disable-intel --disable-radeon" + for drv in $DRM_DRIVERS; do [ $drv = intel ] && \ - DRM_CONFIG="$DRM_CONFIG --enable-intel" + DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` \ + DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-intel/enable-intel/'` [ $drv = radeon ] && \ - DRM_CONFIG="$DRM_CONFIG --enable-radeon-experimental-api" + DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` \ + DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-radeon/enable-radeon/'` done export LIBUDEV_CFLAGS="-I`ls -d $ROOT/$BUILD/udev*`" @@ -28,6 +32,7 @@ cd $PKG_BUILD --enable-shared \ --enable-udev \ --enable-largefile \ + --with-kernel-source=$(kernel_path) \ $DRM_CONFIG \ make diff --git a/packages/graphics/libdrm/config/91-drm-modeset.rules b/packages/graphics/libdrm/config/91-drm-modeset.rules new file mode 100644 index 0000000000..789c9f49c7 --- /dev/null +++ b/packages/graphics/libdrm/config/91-drm-modeset.rules @@ -0,0 +1 @@ +KERNEL=="controlD[0-9]*", NAME="dri/%k", MODE="0666" diff --git a/packages/graphics/libdrm/install b/packages/graphics/libdrm/install index ceb0a34909..bb622b5ca9 100755 --- a/packages/graphics/libdrm/install +++ b/packages/graphics/libdrm/install @@ -2,11 +2,16 @@ . config/options +PKG_DIR=`find $PACKAGES -type d -name $1` + get_graphicdrivers mkdir -p $INSTALL/usr/lib cp -PR $PKG_BUILD/.libs/libdrm.so* $INSTALL/usr/lib +mkdir -p $INSTALL/lib/udev/rules.d + cp -PR $PKG_DIR/config/*.rules $INSTALL/lib/udev/rules.d + for drv in $DRM_DRIVERS; do cp -PR $PKG_BUILD/$drv/.libs/libdrm_$drv*.so* $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libdrm_$drv*.so*T diff --git a/packages/graphics/libdrm/patches/libdrm-2.4.18-missing_file_internal.h-0.1.diff b/packages/graphics/libdrm/patches/libdrm-2.4.18-missing_file_internal.h-0.1.diff new file mode 100644 index 0000000000..8ff2715bf4 --- /dev/null +++ b/packages/graphics/libdrm/patches/libdrm-2.4.18-missing_file_internal.h-0.1.diff @@ -0,0 +1,75 @@ +diff -Naur libdrm-2.4.18/libkms/internal.h libdrm-2.4.18.patch/libkms/internal.h +--- libdrm-2.4.18/libkms/internal.h 1970-01-01 01:00:00.000000000 +0100 ++++ libdrm-2.4.18.patch/libkms/internal.h 2010-02-17 15:39:32.294792943 +0100 +@@ -0,0 +1,71 @@ ++/************************************************************************** ++ * ++ * Copyright © 2009 VMware, Inc., Palo Alto, CA., USA ++ * All Rights Reserved. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the ++ * "Software"), to deal in the Software without restriction, including ++ * without limitation the rights to use, copy, modify, merge, publish, ++ * distribute, sub license, and/or sell copies of the Software, and to ++ * permit persons to whom the Software is furnished to do so, subject to ++ * the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the ++ * next paragraph) shall be included in all copies or substantial portions ++ * of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, ++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR ++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE ++ * USE OR OTHER DEALINGS IN THE SOFTWARE. ++ * ++ **************************************************************************/ ++ ++ ++#ifndef INTERNAL_H_ ++#define INTERNAL_H_ ++ ++#include "libkms.h" ++ ++struct kms_driver ++{ ++ int (*get_prop)(struct kms_driver *kms, const unsigned key, ++ unsigned *out); ++ int (*destroy)(struct kms_driver *kms); ++ ++ int (*bo_create)(struct kms_driver *kms, ++ unsigned width, ++ unsigned height, ++ enum kms_bo_type type, ++ const unsigned *attr, ++ struct kms_bo **out); ++ int (*bo_get_prop)(struct kms_bo *bo, const unsigned key, ++ unsigned *out); ++ int (*bo_map)(struct kms_bo *bo, void **out); ++ int (*bo_unmap)(struct kms_bo *bo); ++ int (*bo_destroy)(struct kms_bo *bo); ++ ++ int fd; ++}; ++ ++struct kms_bo ++{ ++ struct kms_driver *kms; ++ void *ptr; ++ size_t size; ++ size_t offset; ++ size_t pitch; ++ unsigned handle; ++}; ++ ++int linux_create(int fd, struct kms_driver **out); ++ ++int vmwgfx_create(int fd, struct kms_driver **out); ++ ++int intel_create(int fd, struct kms_driver **out); ++ ++#endif diff --git a/packages/graphics/libdrm/url b/packages/graphics/libdrm/url index 766084a0b3..b744aa1d59 100644 --- a/packages/graphics/libdrm/url +++ b/packages/graphics/libdrm/url @@ -1 +1 @@ -http://dri.freedesktop.org/libdrm/libdrm-2.4.17.tar.bz2 \ No newline at end of file +http://dri.freedesktop.org/libdrm/libdrm-2.4.18.tar.bz2 \ No newline at end of file