Subject: Re: [bug#36477] [PATCH v3 16/48] gnu: eudev: Fix cross-compilation.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 04 Sep 2019 15:12:11 +0200

Mathieu Othacehe <[email-masked]> skribis:

> * gnu/packages/linux.scm (eudev)[arguments]: Look for xsltproc in both
> native-inputs and inputs. Also, do not run udevadm when cross-compiling.
>
> We need to find another way to generate hwdb.bin file for cross-built systems.

[...]

>           (add-before 'bootstrap 'patch-file-names
> -           (lambda* (#:key inputs #:allow-other-keys)
> +           (lambda* (#:key inputs native-inputs #:allow-other-keys)
>              (substitute* "man/make.sh"
>                (("/usr/bin/xsltproc")
> -                (string-append (assoc-ref inputs "xsltproc")
> +               (string-append (assoc-ref
> +                               (or native-inputs inputs) "xsltproc")
>                                 "/bin/xsltproc")))

Put this way this leads to a rebuild.  If you want to have it on master,
you’ll have to use ,@ tricks.  (And ‘core-updates’ is frozen.)

>           (add-after 'install 'build-hwdb
>             (lambda* (#:key outputs #:allow-other-keys)
>               ;; Build OUT/etc/udev/hwdb.bin.  This allows 'lsusb' and
>               ;; similar tools to display product names.
> +             ;;
> +             ;; XXX: This can't be done when cross-compiling. Find another way
> +             ;; to generate hwdb.bin for cross-built systems.
>               (let ((out (assoc-ref outputs "out")))
> -               (invoke (string-append out "/bin/udevadm")
> -                       "hwdb" "--update")))))

I guess we’d need to add ‘this-package’ to ‘native-inputs’ to do that,
right?

Ludo’.