~ruther/guix-local

e75230c1b7a34232ed3fb532d2696349fde507a3 — 宋文武 10 years ago 37fe56c
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.
2 files changed, 15 insertions(+), 55 deletions(-)

M gnu/packages/linux.scm
M gnu/packages/patches/eudev-rules-directory.patch
M gnu/packages/linux.scm => gnu/packages/linux.scm +6 -46
@@ 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

M gnu/packages/patches/eudev-rules-directory.patch => gnu/packages/patches/eudev-rules-directory.patch +9 -9
@@ 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");