Subject: [bug#30037] [PATCH] gnu: whois: Remove bundled mkpasswd.

From: Tobias Geerinckx-Rice <[email-masked]>
Date: Tue, 9 Jan 2018 02:01:38 +0100

* gnu/packages/networking.scm (whois)[source]: Remove mkpasswd sources in a
snippet.
[native-inputs]: Add gettext.
[arguments]: Add ‘update-po’ phase.
[description]: Remove historical not about bundled mkpasswd.
---

Guix,

A quick TODO item glanced in a recent commit notification, done.

While everything could be done in a single phase, I prefer ripping such
cruft out early. Manually building the modified sources works fine, at
the cost of slightly bloated .po files with some unused strings. It's
unlikely someone will want to unpack this to build mkpasswd...

Then again, it's not a licence issue so I don't really care that much.

Kind regards,

T G-R

 gnu/packages/networking.scm | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 94621052d..9a8993be2 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2015, 2016, 2017 Stefan Reichör <[email-masked]>
 ;;; Copyright © 2016 Raimon Grau <[email-masked]>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2016 John Darrington <[email-masked]>
 ;;; Copyright © 2016, 2017 Nicolas Goaziou <[email-masked]>
 ;;; Copyright © 2016 Eric Bavier <[email-masked]>
@@ -458,15 +458,31 @@ and up to 1 Mbit/s downstream.")
                            name "_" version ".tar.xz"))
        (sha256
         (base32
-         "02f00vpgrdb77w7lskl9jfm2akpy21ws9cjazs13gash2xksnj38"))))
+         "02f00vpgrdb77w7lskl9jfm2akpy21ws9cjazs13gash2xksnj38"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove unused ‘mkpasswd’ bundled for historical reasons.
+           (for-each delete-file
+                     (find-files "." "^mkpasswd\\."))
+           (substitute* "Makefile"
+             ((" (install-|)mkpasswd ") " "))
+           (substitute* "po/Makefile"
+             (("\\.\\./mkpasswd\\.c") ""))
+           #t))))
     (build-system gnu-build-system)
-    ;; TODO: unbundle mkpasswd binary + its po files.
+    (native-inputs
+     `(("gettext" ,gettext)))           ; for update-po phase
     (arguments
      `(#:tests? #f ; Does not exist
        #:make-flags (list "CC=gcc"
                           (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'update-po
+           ;; Remove harmless but useless ‘mkpasswd’ remnants from .po files.
+           (lambda _
+             (invoke "make" "-C" "po" "update-po")))
          (delete 'configure) ; No configure
          (add-before 'build 'setenv
            (lambda _
@@ -481,9 +497,7 @@ and up to 1 Mbit/s downstream.")
        ("pkg-config" ,pkg-config)))
     (synopsis "Improved whois client")
     (description "This whois client is intelligent and can
-automatically select the appropriate whois server for most queries.
-Because of historical reasons this also includes a tool called mkpasswd
-which can be used to encrypt a password with @code{crypt(3)}.")
+automatically select the appropriate whois server for most queries.")
     (home-page "https://github.com/rfc1036/whois")
     (license license:gpl2+)))
 
-- 
2.15.0