Subject: [PATCH] gnu: eudev: Update to 3.2.4 and generate manpages.

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 22 Sep 2017 23:51:08 -0400

Hello,

The attached patch generates and installs the manpages for our eudev
package and updates it to the current 3.2.4 release.

I believe this should go to core-updates since it impacts more than 700
packages, based on `guix refresh --list-dependent eudev':

--8<---------------cut here---------------start------------->8---
Building the following 377 packages would ensure 718 dependent packages are rebuilt--8<---------------cut here---------------end--------------->8---

Thanks,

Maxim

>From 78115f0e5526ff516826ac830497123f26550640 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <[email-masked]>
Date: Fri, 22 Sep 2017 23:24:23 -0400
Subject: [PATCH] gnu: eudev: Update to 3.2.4 and generate manpages.

* gnu/packages/linux.scm (eudev)[version]: Bump to 3.2.4.
[uri]: Download the release from Github, which contains the script to generate
the manpages from source.
[file-name]: Add a file-name field to the origin record, per linter recommendation.
[sha256]: Adjust accordingly.
[phases]: Add a bootstrap phase to regenerate the manpages.
[configure-flags]: Add the "--enable-manpages" option, required to install the
manpages.
[native-inputs]: Add autoconf, automake and libtool for the bootstrap phase.
Add python-wrapper to run a test script that was previously skipped.
Add docbook-xml, docbook-xsl, libxml2 and libxslt for manpage generation.
---
 gnu/packages/linux.scm | 54 ++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 39 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 8a69f0d9c..3618b184a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2055,30 +2055,54 @@ from the module-init-tools project.")
   ;; The post-systemd fork, maintained by Gentoo.
   (package
     (name "eudev")
-    (version "3.2.2")
+    (version "3.2.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "http://dev.gentoo.org/~blueness/eudev/eudev-"
-                    version ".tar.gz"))
+              (uri (string-append "https://github.com/gentoo/eudev/archive/v"
+                                  version ".zip"))
+              (file-name (string-append name "-" version ".zip"))
               (sha256
                (base32
-                "0qqgbgpm5wdllk0s04pf80nwc8pr93xazwri1bylm1f15zn5ck1y"))
+                "1r1ag0snarygrj5qqxi2xdq9w6g3sfjd5jx1b0fl7zmqlsz3vvxx"))
               (patches (search-patches "eudev-rules-directory.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'install 'build-hwdb
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; Build OUT/etc/udev/hwdb.bin.  This allows 'lsusb' and
-                      ;; similar tools to display product names.
-                      (let ((out (assoc-ref outputs "out")))
-                        (zero? (system* (string-append out "/bin/udevadm")
-                                        "hwdb" "--update"))))))))
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'bootstrap
+           (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "autogen.sh"
+              (("autoreconf")
+               (string-append (assoc-ref inputs "autoconf")
+                              "/bin/autoreconf")))
+            (substitute* "man/make.sh"
+              (("/usr/bin/xsltproc")
+                (string-append (assoc-ref inputs "xsltproc")
+                               "/bin/xsltproc")))
+            ;; Manual pages are regenerated here.
+            (zero? (system* "./autogen.sh"))))
+         (add-after 'install 'build-hwdb
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Build OUT/etc/udev/hwdb.bin.  This allows 'lsusb' and
+             ;; similar tools to display product names.
+             (let ((out (assoc-ref outputs "out")))
+               (zero? (system* (string-append out "/bin/udevadm")
+                               "hwdb" "--update"))))))
+       #:configure-flags (list "--enable-manpages")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gperf" ,gperf)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ;; For tests.
        ("perl" ,perl)
-       ("gperf" ,gperf)))
+       ("python" ,python-wrapper)
+       ;; For documentation.
+       ("docbook-xml" ,docbook-xml-4.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("libxml2" ,libxml2)             ;for $XML_CATALOG_FILES
+       ("xsltproc", libxslt)))
     (inputs
      ;; When linked against libblkid, eudev can populate /dev/disk/by-label
      ;; and similar; it also installs the '60-persistent-storage.rules' file,
-- 
2.14.1