~ruther/guix-local

d7d42d6b242518b5bc664d7e2644a2a78d15225a — Andreas Enge 12 years ago e062d54
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>
3 files changed, 64 insertions(+), 0 deletions(-)

M gnu-system.am
M gnu/packages/linux.scm
A gnu/packages/patches/udev-gir-libtool.patch
M gnu-system.am => gnu-system.am +1 -0
@@ 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			\

M gnu/packages/linux.scm => gnu/packages/linux.scm +46 -0
@@ 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+

A gnu/packages/patches/udev-gir-libtool.patch => gnu/packages/patches/udev-gir-libtool.patch +17 -0
@@ 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 $@ \