Subject: Re: bug#50833: [PATCH] Add Bower (notmuch curses email client)
From: Maxim Cournoyer <[email-masked]>
To: jgart <[email-masked]>
Cc: [email-masked], Ludovic Courtès <[email-masked]>, Sarah Morgensen <[email-masked]>
Date: Fri, 02 Sep 2022 10:05:25 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

jgart <[email-masked]> writes:

> * gnu/packages/mail.scm (bower): New variable.
>
> Hi Maxim,
>
> Here's a version 3 patch set.
>
> I bumped bower to version 1.0 which was released a few days ago.

Thanks.

I've made the following changes:

--8<---------------cut here---------------start------------->8---
modified   gnu/packages/mail.scm
@@ -1517,51 +1517,50 @@ (define-public bower
     (source
      (origin
        (method git-fetch)
-       (uri
-        (git-reference
-         (url home-page)
-         (commit version)))
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0vcsbxlsvr2wv3c7sfr3yj21kbqy259skpxg00vf5bdkbc8qknq4"))))
     (build-system gnu-build-system)
     (arguments
-      (list
-        #:make-flags
-        #~(list
-           "bower"
-           "man"
-           (string-append "CC=" #+(cc-for-target))
-           (string-append "prefix=" #$output))
-        #:phases
-        #~(modify-phases %standard-phases
-            (delete 'configure)
-            (add-after 'unpack 'patch-executables
-              (lambda* (#:key inputs #:allow-other-keys)
-                (substitute* "src/detect_mime_type.m"
-                  (("\"file")
-                   (string-append "\"" (search-input-file inputs "/bin/file"))))
-                (substitute* "src/compose.m"
-                  (("\"base64")
-                   (string-append "\"" (search-input-file inputs "/bin/base64"))))
-                (substitute* "src/prog_config.m"
-                  (("\\(\"false")
-                   (string-append "(\"" (search-input-file inputs "/bin/false")))
-                  (("\\(\"notmuch\"")
-                   (string-append "(\"" (search-input-file inputs "/bin/notmuch") "\""))
-                  (("/usr/bin/sendmail")
-                   (search-input-file inputs "/sbin/sendmail")))))
-            (replace 'check
-              (lambda* (#:key tests? #:allow-other-keys)
-                (when tests?
-                  (with-directory-excursion "tests"
-                    (invoke "make")))))
-            (replace 'install
-              (lambda* _
-                (let ((bin (string-append #$output "/bin"))
-                      (man (string-append #$output "/share/man/man1")))
-                  (install-file "bower" bin)
-                  (install-file "bower.1" man)))))))
+     (list
+      #:make-flags #~(list "bower" "man"
+                           (string-append "CC=" #+(cc-for-target))
+                           (string-append "prefix=" #$output))
+      #:parallel-tests? #f              ;parallelism breaks test suite
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure)
+          (add-after 'unpack 'patch-executables
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/detect_mime_type.m"
+                (("\"file\"")
+                 (format #f "~s" (search-input-file inputs "bin/file"))))
+              (substitute* "src/compose.m"
+                (("\"base64\"")
+                 (format #f "~s" (search-input-file inputs "bin/base64"))))
+              (substitute* "src/prog_config.m"
+                (("shell_quoted\\(\"false\")")
+                 (format #f "shell_quoted(~s)"
+                         (search-input-file inputs "bin/false")))
+                (("shell_quoted\\(\"notmuch\")")
+                 (format #f "shell_quoted(~s)"
+                         (search-input-file inputs "bin/notmuch")))
+                (("/usr/bin/sendmail")
+                 (search-input-file inputs "/sbin/sendmail")))))
+          (replace 'check
+            (lambda* (#:key parallel-tests? tests? #:allow-other-keys)
+              (when tests?
+                (invoke "make" "-C" "tests"
+                        "-j" (if parallel-tests?
+                                 (number->string (parallel-job-count))
+                                 "1")))))
+          (replace 'install
+            (lambda* _
+              (install-file "bower" (string-append #$output "/bin"))
+              (install-file "bower.1" (string-append #$output
+                                                     "/share/man/man1")))))))
     (native-inputs
      (list diffutils
            gawk
@@ -1569,14 +1568,14 @@ (define-public bower
            pandoc
            util-linux))
     (inputs
-     (list gpgme
-           coreutils
+     (list coreutils
+           gpgme
+           ncurses
            notmuch
-           sendmail
-           ncurses))
-    (synopsis "Terminal client for the notmuch email system")
-    (description "@code{bower} is a curses frontend for the notmuch email
-system.  It is written in @{mercury}.")
+           sendmail))
+    (synopsis "Terminal client for the Notmuch email system")
+    (description "@code{bower} is a curses front-end for the Notmuch email
+system, written in the Mercury language.")
     (license license:gpl3+)))
--8<---------------cut here---------------end--------------->8---

I also added:

--8<---------------cut here---------------start------------->8---
(properties `((cpe-name . "bower-cpe-refers-to-a-different-bower")))
--8<---------------cut here---------------end--------------->8---

After realizing the CPE database referred to a different package with
the same name, reporting a false positive.

And pushed!

Thank you,

Closing.

Maxim