Message ID | 20220720051833.23801-1-jgart@dismail.de |
---|---|
State | Accepted |
Headers | show |
Series | [bug#50833,v2] gnu: Add bower. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git-branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
On 20-07-2022 07:18, jgart via Guix-patches via wrote: > * gnu/packages/mail.scm (bower): New variable. > > Hi Maxim, Here's v2 patching the executables you requested. Sorry for the delay. > > all best, > > jgart > --- > gnu/packages/mail.scm | 80 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 80 insertions(+) > > diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm > index 556c5b4305..afad1cc4bf 100644 > --- a/gnu/packages/mail.scm > +++ b/gnu/packages/mail.scm > @@ -48,6 +48,7 @@ > ;;; Copyright © 2022 Justin Veilleux<terramorpha@cock.li> > ;;; Copyright © 2022 Thiago Jung Bauermann<bauermann@kolabnow.com> > ;;; Copyright © 2022 Guillaume Le Vaillant<glv@posteo.net> > +;;; Copyright © 2022 jgart<jgart@dismail.de> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -124,6 +125,7 @@ (define-module (gnu packages mail) > #:use-module (gnu packages lua) > #:use-module (gnu packages m4) > #:use-module (gnu packages man) > + #:use-module (gnu packages mercury) > #:use-module (gnu packages ncurses) > #:use-module (gnu packages nettle) > #:use-module (gnu packages networking) > @@ -1522,6 +1524,84 @@ (define-public python-notmuch2 > (synopsis "Pythonic bindings for the notmuch mail database using CFFI") > (license license:gpl3+))) > > +(define-public bower > + (package > + (name "bower") > + (version "0.13") > + (home-page"https://github.com/wangp/bower") > + (source > + (origin > + (method git-fetch) > + (uri > + (git-reference > + (url home-page) > + (commit version))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "0r5s16pc3ym5nd33lv9ljv1p1gpb7yysrdni4g7w7yvjrnwk35l6")))) > + (build-system gnu-build-system) > + (arguments > + `(#:make-flags > + (list > + "bower" > + "man" > + (string-append "CC=" ,(cc-for-target)) > + (string-append "prefix=" %output)) IIRC, %output is not documented -- you can use #$output instead: (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) > + (let ((file (assoc-ref inputs "file")) > + (base64 (assoc-ref inputs "coreutils")) > + (lynx (assoc-ref inputs "lynx")) > + (sendmail (assoc-ref inputs "sendmail")) > + (notmuch (assoc-ref inputs "notmuch"))) > + (substitute* "src/detect_mime_type.m" > + (("\"file") > + (string-append "\"" file "/bin/file"))) Not using input labels is preferred (such that package transformations can easily be used to, say, replace "coreutils" with something sufficiently compatible that isn't "coreutils"). You can use search-input-file instead. E.g.,: (substitute* "src/detect_mime_type.m" ("\"file") (string-append "\"" (search-input-file inputs "/bin/file"))) [...]) and likewise for the other substitutions. > + (substitute* "src/compose.m" > + (("\"base64") > + (string-append "\"" base64 "/bin/base64")) > + (("\"lynx") > + (string-append "\"" lynx "/bin/lynx"))) > + (substitute* "src/prog_config.m" > + (("\"notmuch\"") > + (string-append "\"" notmuch "/bin/notmuch\"")) > + (("/usr/bin/sendmail") > + (string-append sendmail "/sbin/sendmail")) > + (("\"lynx") > + (string-append "\"" lynx "/bin/lynx")))))) > + (replace 'check > + (lambda* (#:key inputs outputs tests? #:allow-other-keys) You are not using inputs or outputs here, so they can be removed. > + (when tests? > + (chdir "tests") > + (invoke "make")))) Due to the issue noted below, I recommend keeping the 'chdir' unconditional. I believe (with-directory-excursion ...) to be even better, as it restores the change in directory automatically, less room for trouble. > + (replace 'install > + (lambda* (#:key outpus #:allow-other-keys) You are not using 'outpus' here (also, 'outpus' -> 'outputs'), so it can be removed. > + (let ((bin (string-append (assoc-ref %outputs "out") "/bin")) > + (man (string-append (assoc-ref %outputs "out") "/share/man/man1"))) I'd replace (assoc-ref %outputs "out") by #$output (don't forget to add #~ before the (modify-phases ...)) to avoid the assoc-ref construct and %outputs in favour of the simpler #$output. > + (chdir "..") This is to undo the (chdir "tests") above, right? If so, remember that the (chdir "tests") above is unconditional, so this will break when tests are disabled (in case of --without-tests, or in case of cross-compiling with --target=aarch64-linux-gnu or such). So it needs to be made conditional on tests? as well, or the (chdir "tests") from above would need to be made unconditional, or the with-directory-excursion. Greetings, Maxime
On Wed, 20 Jul 2022 13:59:19 +0200 Maxime Devos <maximedevos@telenet.be> wrote: > > On 20-07-2022 07:18, jgart via Guix-patches via wrote: Hi Maxime, Thanks for the review! Give me till next weekend to try again with your new suggestions. all best, jgart
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 556c5b4305..afad1cc4bf 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -48,6 +48,7 @@ ;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li> ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -124,6 +125,7 @@ (define-module (gnu packages mail) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages man) + #:use-module (gnu packages mercury) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages networking) @@ -1522,6 +1524,84 @@ (define-public python-notmuch2 (synopsis "Pythonic bindings for the notmuch mail database using CFFI") (license license:gpl3+))) +(define-public bower + (package + (name "bower") + (version "0.13") + (home-page "https://github.com/wangp/bower") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r5s16pc3ym5nd33lv9ljv1p1gpb7yysrdni4g7w7yvjrnwk35l6")))) + (build-system gnu-build-system) + (arguments + `(#: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) + (let ((file (assoc-ref inputs "file")) + (base64 (assoc-ref inputs "coreutils")) + (lynx (assoc-ref inputs "lynx")) + (sendmail (assoc-ref inputs "sendmail")) + (notmuch (assoc-ref inputs "notmuch"))) + (substitute* "src/detect_mime_type.m" + (("\"file") + (string-append "\"" file "/bin/file"))) + (substitute* "src/compose.m" + (("\"base64") + (string-append "\"" base64 "/bin/base64")) + (("\"lynx") + (string-append "\"" lynx "/bin/lynx"))) + (substitute* "src/prog_config.m" + (("\"notmuch\"") + (string-append "\"" notmuch "/bin/notmuch\"")) + (("/usr/bin/sendmail") + (string-append sendmail "/sbin/sendmail")) + (("\"lynx") + (string-append "\"" lynx "/bin/lynx")))))) + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (when tests? + (chdir "tests") + (invoke "make")))) + (replace 'install + (lambda* (#:key outpus #:allow-other-keys) + (let ((bin (string-append (assoc-ref %outputs "out") "/bin")) + (man (string-append (assoc-ref %outputs "out") "/share/man/man1"))) + (chdir "..") + (install-file "bower" bin) + (install-file "bower.1" man))))))) + (native-inputs + (list diffutils + gawk + mercury + pandoc + util-linux)) + (inputs + (list gpgme + coreutils + lynx + 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}.") + (license license:gpl3+))) + (define-public muchsync (package (name "muchsync")