diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 4ee42349f8..474e914c13 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1568,7 +1568,7 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "2.1.1") + (version "3.1.5") (source (origin (method url-fetch) (uri (string-append @@ -1576,55 +1576,15 @@ from the module-init-tools project.") version ".tar.gz")) (sha256 (base32 - "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva")) - (patches (list (search-patch "eudev-rules-directory.patch"))) - (modules '((guix build utils))) - (snippet - ;; 'configure' checks uses as an indication of - ;; whether Linux headers are available, but it doesn't actually - ;; use it, and our 'linux-libre-headers' package doesn't - ;; provide it. So just remove that. - '(substitute* "configure" - (("linux/btrfs\\.h") - ""))))) + "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p")) + (patches (list (search-patch "eudev-rules-directory.patch"))))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("gperf" ,gperf) - ("glib" ,glib "bin") ; glib-genmarshal, etc. - ("perl" ,perl) ; for the tests - ("python" ,python-2))) ; ditto + ("perl" ,perl) + ("gperf" ,gperf))) (inputs - `(("kmod" ,kmod) - ("pciutils" ,pciutils) - ("usbutils" ,usbutils) - ("util-linux" ,util-linux) - ("glib" ,glib) - ("gobject-introspection" ,gobject-introspection))) - (arguments - `(#:configure-flags (list "--enable-libkmod" - - (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") - #:phases - (alist-cons-before - 'build 'pre-build - ;; The program 'g-ir-scanner' (part of the package - ;; 'gobject-introspection'), to generate .gir files, makes some - ;; library pre-processing. During that phase it looks for the C - ;; compiler as either 'cc' or as defined by the environment variable - ;; 'CC' (with code in 'giscanner/dumper.py'). - (lambda* _ - (setenv "CC" "gcc")) - %standard-phases))) + `(("kmod" ,kmod))) (home-page "http://www.gentoo.org/proj/en/eudev/") (synopsis "Userspace device management") (description "Udev is a daemon which dynamically creates and removes diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch index 9173e22f76..54fc01c6d5 100644 --- a/gnu/packages/patches/eudev-rules-directory.patch +++ b/gnu/packages/patches/eudev-rules-directory.patch @@ -4,9 +4,9 @@ The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed the search path to be customized, but eudev no longer has this, hence this hack. ---- eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:21:59.615980259 +0200 -+++ eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:24:13.839976335 +0200 -@@ -46,15 +46,11 @@ +--- eudev-3.1.5/src/udev/udev-rules.c 2015-10-13 06:22:14.000000000 +0800 ++++ eudev-3.1.5/src/udev/udev-rules.c 2015-10-16 20:45:38.491934336 +0800 +@@ -47,15 +47,11 @@ }; }; @@ -14,23 +14,23 @@ this hack. +static const char* rules_dirs[] = { UDEV_CONF_DIR "/rules.d", UDEV_RULES_DIR, -- "/run/udev/rules.d", +- UDEV_ROOT_RUN "/udev/rules.d", UDEV_LIBEXEC_DIR "/rules.d", -#ifdef HAVE_SPLIT_USR - "/lib/udev/rules.d", - "/usr/lib/udev/rules.d", -#endif -+ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ ++ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ NULL}; struct udev_rules { -@@ -1637,6 +1633,9 @@ +@@ -1704,6 +1700,9 @@ udev_rules_check_timestamp(rules); -+ /* Allow the user to specify an additional rules directory. */ -+ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY"); ++ /* Allow the user to specify an additional rules directory. */ ++ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY"); + r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs); if (r < 0) { - log_error("failed to enumerate rules files: %s", strerror(-r)); + log_error_errno(r, "failed to enumerate rules files: %m");