Subject: [bug#28562] [PATCHv2] gnu: eudev: Update to 3.2.4 and generate manpages.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 25 Sep 2017 16:54:57 -0400

Thomas Danckaert <[email-masked]> writes:

> Hi Maxim,
>
> thanks for the patch!
>
> Only one thing: we don't have to substitute the location of autoreconf
> in autogen.sh: because autoconf is a native input, its executables are
> already in the build environment PATH:
>
>> +     '(#: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")))
>
> If you agree, I can push with that change (and will try to remember to
> push to staging :0) ).
>
> Thomas

Hi Thomas,

Thanks for the review! You are right about the unnecessary autoreconf
substitution; I just removed that part and could rebuild
successfully. If you need the modified patch I've attached it.

Thank you!

Maxim
From a6c1ba796a49e46ef637a2b50e718692e01aafbc 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 | 50 +++++++++++++++++++++++++++++++++++---------------
 1 file changed, 35 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9352b4f65..29de3363f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2055,30 +2055,50 @@ 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* "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