Subject: [bug#35244] [PATCH 2/6] gnu: groff: Fix cross compilation.

From: Ludovic Courtès <[email-masked]>
Date: Sun, 14 Apr 2019 17:22:52 +0200

Hi,

Mathieu Othacehe <[email-masked]> 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/[email-masked]/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’.