gnu: eudev: Update to 3.1.5.

* gnu/packages/linux.scm (eudev): Update to 3.1.5.
* gnu/packages/patches/eudev-rules-directory.patch: Adapt to it.
This commit is contained in:
宋文武 2015-10-16 21:13:02 +08:00
parent 37fe56cff6
commit e75230c1b7
2 changed files with 15 additions and 55 deletions

View File

@ -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 <linux/btrfs.h> 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

View File

@ -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");