Message ID | 20190412131556.25282-2-m.othacehe@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | Fix some cross-compilation issues. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | success | Successfully applied |
Hi, Mathieu Othacehe <m.othacehe@gmail.com> skribis: > * gnu/packages/groff.scm (groff)[arguments]: Replace build phase to pass > GROFF_BIN_PATH and GROFFBIN variables when cross-compiling. > > Also add native groff as an input. You’d need to mention ‘self-native-input?’ explicitly. > + (self-native-input? #t) However, this field no longer exists: see commit a7646bc5e17a829d23519d0b199a576fb1edbd04, and see 528ea990c3a815cb4b0ded913ea22cdc778839bd for how to adjust your package. > + (replace 'build > + (lambda* (#:key > + make-flags parallel-build? > + native-inputs target #:allow-other-keys) > + ;; When cross-compiling, native groff is needed, see: > + ;; http://www.mail-archive.com/bug-groff@gnu.org/msg01335.html > + (let ((parallel > + (if parallel-build? > + `("-j" ,(number->string (parallel-job-count))) > + '())) > + (flags > + (if target > + (let ((groff (or > + (assoc-ref native-inputs "groff") > + (assoc-ref native-inputs "self")))) > + (append > + make-flags > + (list > + (string-append "GROFF_BIN_PATH=" groff) > + (string-append "GROFFBIN=" groff > + "/bin/groff")))) > + make-flags))) > + (apply invoke `("make" ,@parallel ,@flags))) If you make it conditional on (%current-target-system) , that’ll avoid a massive rebuild of the 4K packages that depend on ‘groff’, and thus it’ll be applicable on ‘master’. Could you send an updated patch? Thanks, Ludo’.
diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm index cf392f5468..6f01395691 100644 --- a/gnu/packages/groff.scm +++ b/gnu/packages/groff.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -53,6 +54,7 @@ ;; own HTML doc, nor does it change its capabilities, so we removed netpbm ;; from 'inputs'. + (self-native-input? #t) (inputs `(("ghostscript" ,ghostscript))) (native-inputs `(("bison" ,bison) ("perl" ,perl) @@ -65,7 +67,31 @@ (add-after 'unpack 'setenv (lambda _ (setenv "GS_GENERATE_UUIDS" "0") - #t))))) + #t)) + (replace 'build + (lambda* (#:key + make-flags parallel-build? + native-inputs target #:allow-other-keys) + ;; When cross-compiling, native groff is needed, see: + ;; http://www.mail-archive.com/bug-groff@gnu.org/msg01335.html + (let ((parallel + (if parallel-build? + `("-j" ,(number->string (parallel-job-count))) + '())) + (flags + (if target + (let ((groff (or + (assoc-ref native-inputs "groff") + (assoc-ref native-inputs "self")))) + (append + make-flags + (list + (string-append "GROFF_BIN_PATH=" groff) + (string-append "GROFFBIN=" groff + "/bin/groff")))) + make-flags))) + (apply invoke `("make" ,@parallel ,@flags))) + #t))))) (synopsis "Typesetting from plain text mixed with formatting commands") (description "Groff is a typesetting package that reads plain text and produces @@ -86,7 +112,8 @@ is usually the formatter of \"man\" documentation pages.") ;; Omit the DVI, PS, PDF, and HTML backends. (inputs '()) (native-inputs `(("bison" ,bison) - ("perl" ,perl))) + ("perl" ,perl) + ("groff" ,groff))) (arguments `(#:disallowed-references (,perl)