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. ;; The post-systemd fork, maintained by Gentoo.
(package (package
(name "eudev") (name "eudev")
(version "2.1.1") (version "3.1.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1576,55 +1576,15 @@ from the module-init-tools project.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva")) "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p"))
(patches (list (search-patch "eudev-rules-directory.patch"))) (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")
"")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("gperf" ,gperf) ("perl" ,perl)
("glib" ,glib "bin") ; glib-genmarshal, etc. ("gperf" ,gperf)))
("perl" ,perl) ; for the tests
("python" ,python-2))) ; ditto
(inputs (inputs
`(("kmod" ,kmod) `(("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)))
(home-page "http://www.gentoo.org/proj/en/eudev/") (home-page "http://www.gentoo.org/proj/en/eudev/")
(synopsis "Userspace device management") (synopsis "Userspace device management")
(description "Udev is a daemon which dynamically creates and removes (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 the search path to be customized, but eudev no longer has this, hence
this hack. this hack.
--- eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:21:59.615980259 +0200 --- eudev-3.1.5/src/udev/udev-rules.c 2015-10-13 06:22:14.000000000 +0800
+++ eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:24:13.839976335 +0200 +++ eudev-3.1.5/src/udev/udev-rules.c 2015-10-16 20:45:38.491934336 +0800
@@ -46,15 +46,11 @@ @@ -47,15 +47,11 @@
}; };
}; };
@ -14,23 +14,23 @@ this hack.
+static const char* rules_dirs[] = { +static const char* rules_dirs[] = {
UDEV_CONF_DIR "/rules.d", UDEV_CONF_DIR "/rules.d",
UDEV_RULES_DIR, UDEV_RULES_DIR,
- "/run/udev/rules.d", - UDEV_ROOT_RUN "/udev/rules.d",
UDEV_LIBEXEC_DIR "/rules.d", UDEV_LIBEXEC_DIR "/rules.d",
-#ifdef HAVE_SPLIT_USR -#ifdef HAVE_SPLIT_USR
- "/lib/udev/rules.d", - "/lib/udev/rules.d",
- "/usr/lib/udev/rules.d", - "/usr/lib/udev/rules.d",
-#endif -#endif
+ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ + NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */
NULL}; NULL};
struct udev_rules { struct udev_rules {
@@ -1637,6 +1633,9 @@ @@ -1704,6 +1700,9 @@
udev_rules_check_timestamp(rules); udev_rules_check_timestamp(rules);
+ /* Allow the user to specify an additional rules directory. */ + /* Allow the user to specify an additional rules directory. */
+ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY"); + rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY");
+ +
r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs); r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs);
if (r < 0) { if (r < 0) {
log_error("failed to enumerate rules files: %s", strerror(-r)); log_error_errno(r, "failed to enumerate rules files: %m");