summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/linux.scm46
-rw-r--r--gnu/packages/patches/udev-gir-libtool.patch17
3 files changed, 64 insertions, 0 deletions
diff --git a/gnu-system.am b/gnu-system.am
index bf90b8e77f..eb3c55d180 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -363,6 +363,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/superlu-dist-scotchmetis.patch		\
   gnu/packages/patches/tcsh-fix-autotest.patch			\
   gnu/packages/patches/teckit-cstdio.patch			\
+  gnu/packages/patches/udev-gir-libtool.patch			\
   gnu/packages/patches/util-linux-perl.patch			\
   gnu/packages/patches/valgrind-glibc.patch			\
   gnu/packages/patches/vpnc-script.patch			\
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1a3e5a6d8d..9c5d59ce70 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -27,8 +27,10 @@
                 #:renamer (symbol-prefix-proc 'guix:))
   #:use-module (gnu packages flex)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages gperf)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pciutils)
   #:use-module (gnu packages bdb)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -1222,3 +1224,47 @@ These tools are designed on top of libkmod, a library that is shipped with
 kmod.  The aim is to be compatible with tools, configurations and indices
 from the module-init-tools project.")
     (license gpl2+))) ; library under lgpl2.1+
+
+(define-public udev
+  (package
+    (name "udev")
+    (version "182")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://kernel.org/linux/utils/kernel/hotplug/udev-"
+                   version ".tar.xz"))
+             (sha256
+              (base32
+               "1awp7p07gi083w0dwqhhbbas68a7fx2sbm1yf1ip2jwf7cpqkf5d"))
+             (patches (list (search-patch "udev-gir-libtool.patch")))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list (string-append
+                                "--with-pci-ids-path="
+                                (assoc-ref %build-inputs "pciutils")
+                                "/share/pci.ids.gz")
+
+                               "--with-firmware-path=/no/firmware"
+
+                               ;; Work around undefined reference to
+                               ;; 'mq_getattr' in sc-daemon.c.
+                               "LDFLAGS=-lrt")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gperf" ,gperf)
+       ("perl" ,perl)                             ; for the tests
+       ("python" ,python-2)))                     ; ditto
+    (inputs
+     `(("kmod" ,kmod)
+       ("pciutils" ,pciutils)
+       ("usbutils" ,usbutils)
+       ("util-linux" ,util-linux)
+       ("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)))
+    (home-page "http://www.freedesktop.org/software/systemd/libudev/")
+    (synopsis "Userspace device management")
+    (description "Udev is a daemon which dynamically creates and removes
+device nodes from /dev/, handles hotplug events and loads drivers at boot
+time.")
+    (license gpl2+))) ; libudev is under lgpl2.1+
diff --git a/gnu/packages/patches/udev-gir-libtool.patch b/gnu/packages/patches/udev-gir-libtool.patch
new file mode 100644
index 0000000000..7504f87eb8
--- /dev/null
+++ b/gnu/packages/patches/udev-gir-libtool.patch
@@ -0,0 +1,17 @@
+Without this patch, 'ld' as invoked by 'g-ir-scanner' fails to find -lgudev-1.0
+This is because libtool puts it in $(top_builddir)/.libs.
+
+This patch forces 'g-ir-scanner' to use libtool, which enables it to find
+libgudev-1.0.la.
+
+--- udev-182/Makefile.in	2014-06-22 14:55:07.000000000 +0200
++++ udev-182/Makefile.in	2014-06-22 14:55:15.000000000 +0200
+@@ -3622,7 +3622,7 @@ test-sys-distclean:
+ @ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--namespace GUdev \
+ @ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--nsversion=1.0 \
+ @ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--include=GObject-2.0 \
+-@ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--library=gudev-1.0 \
++@ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--library=gudev-1.0 --libtool=$(top_builddir)/libtool \
+ @ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--library-path=$(top_builddir)/src \
+ @ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--library-path=$(top_builddir)/src/gudev \
+ @ENABLE_GUDEV_TRUE@@ENABLE_INTROSPECTION_TRUE@		--output $@ \