summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2014-06-07 21:27:30 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-22 15:02:20 +0200
commitd7d42d6b242518b5bc664d7e2644a2a78d15225a (patch)
tree1072faeaa25a2eab004d6fdecd1d6cbf821043d4 /gnu
parente062d54240af140393dc8368b27611d31fb29441 (diff)
downloadguix-d7d42d6b242518b5bc664d7e2644a2a78d15225a.tar.gz
gnu: Add udev.
* gnu/packages/linux.scm (udev): New variable.
* gnu/packages/patches/udev-gir-libtool.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/linux.scm46
-rw-r--r--gnu/packages/patches/udev-gir-libtool.patch17
2 files changed, 63 insertions, 0 deletions
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 $@ \