diff --git a/templates/libdrm-devel b/templates/libdrm-devel
new file mode 120000
index 00000000000..65c590a735d
--- /dev/null
+++ b/templates/libdrm-devel
@@ -0,0 +1 @@
+libdrm
\ No newline at end of file
diff --git a/templates/libdrm/build.diff b/templates/libdrm/build.diff
new file mode 100644
index 00000000000..234f57cb00d
--- /dev/null
+++ b/templates/libdrm/build.diff
@@ -0,0 +1,121 @@
+--- configure.orig 2009-03-19 05:36:13.939762633 +0100
++++ configure 2009-03-19 05:36:54.883713332 +0100
+@@ -21220,118 +21220,6 @@ echo "${ECHO_T}no" >&6; }
+ fi
+
+ pkg_failed=no
+-{ echo "$as_me:$LINENO: checking for PTHREADSTUBS" >&5
+-echo $ECHO_N "checking for PTHREADSTUBS... $ECHO_C" >&6; }
+-
+-if test -n "$PKG_CONFIG"; then
+- if test -n "$PTHREADSTUBS_CFLAGS"; then
+- pkg_cv_PTHREADSTUBS_CFLAGS="$PTHREADSTUBS_CFLAGS"
+- else
+- if test -n "$PKG_CONFIG" && \
+- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pthread-stubs\"") >&5
+- ($PKG_CONFIG --exists --print-errors "pthread-stubs") 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- pkg_cv_PTHREADSTUBS_CFLAGS=`$PKG_CONFIG --cflags "pthread-stubs" 2>/dev/null`
+-else
+- pkg_failed=yes
+-fi
+- fi
+-else
+- pkg_failed=untried
+-fi
+-if test -n "$PKG_CONFIG"; then
+- if test -n "$PTHREADSTUBS_LIBS"; then
+- pkg_cv_PTHREADSTUBS_LIBS="$PTHREADSTUBS_LIBS"
+- else
+- if test -n "$PKG_CONFIG" && \
+- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"pthread-stubs\"") >&5
+- ($PKG_CONFIG --exists --print-errors "pthread-stubs") 2>&5
+- ac_status=$?
+- echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- pkg_cv_PTHREADSTUBS_LIBS=`$PKG_CONFIG --libs "pthread-stubs" 2>/dev/null`
+-else
+- pkg_failed=yes
+-fi
+- fi
+-else
+- pkg_failed=untried
+-fi
+-
+-
+-
+-if test $pkg_failed = yes; then
+-
+-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+- _pkg_short_errors_supported=yes
+-else
+- _pkg_short_errors_supported=no
+-fi
+- if test $_pkg_short_errors_supported = yes; then
+- PTHREADSTUBS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "pthread-stubs"`
+- else
+- PTHREADSTUBS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pthread-stubs"`
+- fi
+- # Put the nasty error message in config.log where it belongs
+- echo "$PTHREADSTUBS_PKG_ERRORS" >&5
+-
+- { { echo "$as_me:$LINENO: error: Package requirements (pthread-stubs) were not met:
+-
+-$PTHREADSTUBS_PKG_ERRORS
+-
+-Consider adjusting the PKG_CONFIG_PATH environment variable if you
+-installed software in a non-standard prefix.
+-
+-Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS
+-and PTHREADSTUBS_LIBS to avoid the need to call pkg-config.
+-See the pkg-config man page for more details.
+-" >&5
+-echo "$as_me: error: Package requirements (pthread-stubs) were not met:
+-
+-$PTHREADSTUBS_PKG_ERRORS
+-
+-Consider adjusting the PKG_CONFIG_PATH environment variable if you
+-installed software in a non-standard prefix.
+-
+-Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS
+-and PTHREADSTUBS_LIBS to avoid the need to call pkg-config.
+-See the pkg-config man page for more details.
+-" >&2;}
+- { (exit 1); exit 1; }; }
+-elif test $pkg_failed = untried; then
+- { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
+-is in your PATH or set the PKG_CONFIG environment variable to the full
+-path to pkg-config.
+-
+-Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS
+-and PTHREADSTUBS_LIBS to avoid the need to call pkg-config.
+-See the pkg-config man page for more details.
+-
+-To get pkg-config, see .
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+-is in your PATH or set the PKG_CONFIG environment variable to the full
+-path to pkg-config.
+-
+-Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS
+-and PTHREADSTUBS_LIBS to avoid the need to call pkg-config.
+-See the pkg-config man page for more details.
+-
+-To get pkg-config, see .
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }
+-else
+- PTHREADSTUBS_CFLAGS=$pkg_cv_PTHREADSTUBS_CFLAGS
+- PTHREADSTUBS_LIBS=$pkg_cv_PTHREADSTUBS_LIBS
+- { echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6; }
+- :
+-fi
+-
+-
+-
+ pkgconfigdir=${libdir}/pkgconfig
+
+ # Check whether --enable-udev was given.
diff --git a/templates/libdrm/depends b/templates/libdrm/depends
new file mode 100644
index 00000000000..977112ac373
--- /dev/null
+++ b/templates/libdrm/depends
@@ -0,0 +1,2 @@
+abi_depends=2.4.5
+api_depends=${abi_depends}
diff --git a/templates/libdrm/devel.template b/templates/libdrm/devel.template
new file mode 100644
index 00000000000..dc99b7c288a
--- /dev/null
+++ b/templates/libdrm/devel.template
@@ -0,0 +1,17 @@
+# Template file for 'libdrm-devel'.
+#
+short_desc="${short_desc} (development files)"
+long_desc="${long_desc}
+
+ This package contains files for development, headers, static libs, etc."
+
+Add_dependency run libdrm
+
+do_install()
+{
+ mkdir -p ${DESTDIR}/usr/lib
+ mv ${SRCPKGDESTDIR}/usr/include ${DESTDIR}/usr
+ mv ${SRCPKGDESTDIR}/usr/lib/lib*.*a ${DESTDIR}/usr/lib
+ mv ${SRCPKGDESTDIR}/usr/lib/lib*.so ${DESTDIR}/usr/lib
+ mv ${SRCPKGDESTDIR}/usr/lib/pkgconfig ${DESTDIR}/usr/lib
+}
diff --git a/templates/libdrm/template b/templates/libdrm/template
index e3e58fd190f..375225e1da5 100644
--- a/templates/libdrm/template
+++ b/templates/libdrm/template
@@ -1,14 +1,18 @@
# Template build file for 'libdrm'.
pkgname=libdrm
-version=2.3.1
-distfiles="
-http://dri.freedesktop.org/libdrm/$pkgname-$version.tar.bz2"
+sourcepkg=$pkgname
+version=2.4.5
+distfiles="http://dri.freedesktop.org/libdrm/$pkgname-$version.tar.bz2"
build_style=gnu_configure
-pkgconfig_override="libdrm.pc"
+configure_args="--enable-udev"
short_desc="Userspace interface to kernel DRM services"
maintainer="Juan RP "
-checksum=9a268aef4f7a4f3c8f968202d6a531f2200080a5
+checksum=95daf23bce3fc7fc644e68ac17f1415a85c671511eb227183834204fec43a094
long_desc="
This package provides a library which offers a userspace interface
to kernel DRM (Direct Rendering Manager) services for access to
graphics hardware."
+
+subpackages="devel"
+Add_dependency full glibc
+Add_dependency full udev