GNU bug report logs - #35244
[PATCH 0/6] Fix some cross-compilation issues.

Previous Next

Package: guix-patches;

Reported by: Mathieu Othacehe <m.othacehe <at> gmail.com>

Date: Fri, 12 Apr 2019 13:14:02 UTC

Severity: normal

Tags: patch

Done: Mathieu Othacehe <m.othacehe <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35244 in the body.
You can then email your comments to 35244 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Fri, 12 Apr 2019 13:14:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mathieu Othacehe <m.othacehe <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 12 Apr 2019 13:14:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH 0/6] Fix some cross-compilation issues.
Date: Fri, 12 Apr 2019 15:13:31 +0200
Hello,

Here's a first step in the guix system cross compilation support direction.

Thanks,

Mathieu

Mathieu Othacehe (6):
  gnu: bash-completion: Fix cross-compilation.
  gnu: groff: Fix cross compilation.
  gnu: glibc-utf8-locales: Always use native package.
  gnu: firmware: Fix cross compilation.
  linux-initrd: Fix cross compilation.
  gnu: python: Fix cross compilation.

 gnu/installer.scm                   |  4 ++--
 gnu/packages/bash.scm               |  8 ++++++--
 gnu/packages/firmware.scm           |  5 +++--
 gnu/packages/groff.scm              | 31 +++++++++++++++++++++++++++--
 gnu/packages/package-management.scm | 16 +++++++++------
 gnu/packages/python.scm             |  5 ++++-
 gnu/services/base.scm               |  6 +++---
 gnu/system/linux-initrd.scm         |  7 +++++--
 guix/profiles.scm                   |  3 ++-
 guix/self.scm                       |  3 ++-
 10 files changed, 66 insertions(+), 22 deletions(-)

-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Fri, 12 Apr 2019 13:17:01 GMT) Full text and rfc822 format available.

Message #8 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: 35244 <at> debbugs.gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH 1/6] gnu: bash-completion: Fix cross-compilation.
Date: Fri, 12 Apr 2019 15:15:51 +0200
* gnu/packages/bash.scm (bash-completion)[arguments]: Search for util-linux in
native-inputs and inputs during "remove-redundant-completions" phase.
---
 gnu/packages/bash.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index fb4e3f4be3..ef93a11085 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015, 2017 Leo Famulari <leo <at> famulari.name>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -291,13 +292,16 @@ without modification.")
      `(#:phases (modify-phases %standard-phases
                   (add-after
                    'install 'remove-redundant-completions
-                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (lambda* (#:key
+                             inputs native-inputs
+                             outputs #:allow-other-keys)
                      ;; Util-linux comes with a bunch of completion files for
                      ;; its own commands which are more sophisticated and
                      ;; up-to-date than those of bash-completion.  Remove those
                      ;; from bash-completion.
                      (let* ((out         (assoc-ref outputs "out"))
-                            (util-linux  (assoc-ref inputs "util-linux"))
+                            (util-linux  (assoc-ref (or native-inputs inputs)
+                                                    "util-linux"))
                             (completions (string-append out
                                                         "/share/bash-completion"
                                                         "/completions"))
-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Fri, 12 Apr 2019 13:17:03 GMT) Full text and rfc822 format available.

Message #11 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: 35244 <at> debbugs.gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH 2/6] gnu: groff: Fix cross compilation.
Date: Fri, 12 Apr 2019 15:15:52 +0200
* 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.
---
 gnu/packages/groff.scm | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

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 <at> netris.org>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado <at> elephly.net>
 ;;; Copyright © 2017 Ludovic Courtès <ludo <at> gnu.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe <at> 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 <at> 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)
-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Fri, 12 Apr 2019 13:17:04 GMT) Full text and rfc822 format available.

Message #14 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: 35244 <at> debbugs.gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH 5/6] linux-initrd: Fix cross compilation.
Date: Fri, 12 Apr 2019 15:15:55 +0200
* gnu/system/linux-initrd.scm (default-initrd-modules): Check system name
against %current-target-system first in case we are cross-compiling.
---
 gnu/system/linux-initrd.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 656afd1ddb..c90b87c023 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo <at> gnu.org>
 ;;; Copyright © 2016 Mark H Weaver <mhw <at> netris.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke <at> gnu.org>
-;;; Copyright © 2017 Mathieu Othacehe <m.othacehe <at> gmail.com>
+;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -273,7 +273,10 @@ FILE-SYSTEMS."
   (append-map (compose file-system-type-modules file-system-type)
               file-systems))
 
-(define* (default-initrd-modules #:optional (system (%current-system)))
+(define* (default-initrd-modules
+           #:optional
+           (system (or (%current-target-system)
+                       (%current-system))))
   "Return the list of modules included in the initrd by default."
   (define virtio-modules
     ;; Modules for Linux para-virtualized devices, for use in QEMU guests.
-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Fri, 12 Apr 2019 13:17:04 GMT) Full text and rfc822 format available.

Message #17 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: 35244 <at> debbugs.gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH 4/6] gnu: firmware: Fix cross compilation.
Date: Fri, 12 Apr 2019 15:15:54 +0200
* gnu/packages/firmware.scm (ath9k-htc-firmware)[phases]: Search for
"cross-gcc" in native-inputs in "configure" phase.
---
 gnu/packages/firmware.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 4df4b22843..68476ed826 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant <at> debian.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,7 +60,7 @@
      '(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key native-inputs #:allow-other-keys)
              (chdir "target_firmware")
 
              ;; 'configure' is a simple script that runs 'cmake' with
@@ -67,7 +68,7 @@
              (substitute* "configure"
                (("^TOOLCHAIN=.*$")
                 (string-append "TOOLCHAIN="
-                               (assoc-ref inputs "cross-gcc")
+                               (assoc-ref native-inputs "cross-gcc")
                                "\n")))
              #t))
          (replace 'install
-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Fri, 12 Apr 2019 13:17:05 GMT) Full text and rfc822 format available.

Message #20 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: 35244 <at> debbugs.gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH 3/6] gnu: glibc-utf8-locales: Always use native package.
Date: Fri, 12 Apr 2019 15:15:53 +0200
* gnu/installer.scm (build-compiled-file): Use native glibc-utf8-locales.
* gnu/services/base.scm (guix-shepherd-service): Ditto,
(guix-publish-shepherd-service): ditto.
* guix/profiles.scm (profile-derivation): Ditto.
* guix/self.scm (guix-command): Ditto.
* gnu/packages/package-management.scm (guix)[inputs]: Move glibc-utf8-locales
from here ...,
[native-inputs]: ... to here,
[phases]: search for glibc-utf8-locales in native-inputs and inputs in
'wrap-program phase.
---
 gnu/installer.scm                   |  4 ++--
 gnu/packages/package-management.scm | 16 ++++++++++------
 gnu/services/base.scm               |  6 +++---
 guix/profiles.scm                   |  3 ++-
 guix/self.scm                       |  3 ++-
 5 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/gnu/installer.scm b/gnu/installer.scm
index 50e2e7d85e..bbf2441061 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe <at> gmail.com>
+;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo <at> gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -62,7 +62,7 @@ version of this file."
   (define set-utf8-locale
     #~(begin
         (setenv "LOCPATH"
-                #$(file-append glibc-utf8-locales "/lib/locale/"
+                #+(file-append glibc-utf8-locales "/lib/locale/"
                                (version-major+minor
                                 (package-version glibc-utf8-locales))))
         (setlocale LC_ALL "en_US.utf8")))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 4808687227..6720cac783 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018 Eric Bavier <bavier <at> member.fsf.org>
 ;;; Copyright © 2019 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2019 Vagrant Cascadian <vagrant <at> reproducible-builds.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -217,7 +218,10 @@
                         (setenv "SHELL" (which "sh"))
                         #t))
                     (add-after 'install 'wrap-program
-                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (lambda* (#:key
+                                inputs native-inputs
+                                outputs
+                                #:allow-other-keys)
                         ;; Make sure the 'guix' command finds GnuTLS,
                         ;; Guile-JSON, and Guile-Git automatically.
                         (let* ((out    (assoc-ref outputs "out"))
@@ -230,7 +234,8 @@
                                                   "guile-bytestructures"))
                                (ssh    (assoc-ref inputs "guile-ssh"))
                                (gnutls (assoc-ref inputs "gnutls"))
-                               (locales (assoc-ref inputs "glibc-utf8-locales"))
+                               (locales (assoc-ref (or native-inputs inputs)
+                                                   "glibc-utf8-locales"))
                                (deps   (list gcrypt json sqlite gnutls
                                              git bs ssh))
                                (effective
@@ -258,7 +263,8 @@
                             `("GUIX_LOCPATH" ":" suffix (,locpath)))
 
                           #t))))))
-      (native-inputs `(("pkg-config" ,pkg-config)
+      (native-inputs `(("glibc-utf8-locales" ,glibc-utf8-locales)
+                       ("pkg-config" ,pkg-config)
 
                        ;; XXX: Keep the development inputs here even though
                        ;; they're unnecessary, just so that 'guix environment
@@ -288,9 +294,7 @@
          ,@(if (and (not (%current-target-system))
                     (string=? (%current-system) "x86_64-linux"))
                `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")))
-               '())
-
-         ("glibc-utf8-locales" ,glibc-utf8-locales)))
+               '())))
       (propagated-inputs
        `(("gnutls" ,gnutls)
          ("guile-gcrypt" ,guile-gcrypt)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 65f7ff29c8..760d65e5ca 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <leo <at> famulari.name>
 ;;; Copyright © 2016 David Craven <david <at> craven.ch>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado <at> elephly.net>
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe <at> gmail.com>
+;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;; Copyright © 2019 Efraim Flashner <efraim <at> flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -1638,7 +1638,7 @@ archive' public keys, with GUIX."
                      ;; file names such as 'nss-certs'.  See
                      ;; <https://bugs.gnu.org/32942>.
                      (string-append "GUIX_LOCPATH="
-                                    #$glibc-utf8-locales "/lib/locale")
+                                    #+glibc-utf8-locales "/lib/locale")
                      "LC_ALL=en_US.utf8")
 
                #:log-file #$log-file))
@@ -1774,7 +1774,7 @@ archive' public keys, with GUIX."
                       ;; as 'nss-certs'.  See <https://bugs.gnu.org/26948>.
                       #:environment-variables
                       (list (string-append "GUIX_LOCPATH="
-                                           #$glibc-utf8-locales "/lib/locale")
+                                           #+glibc-utf8-locales "/lib/locale")
                             "LC_ALL=en_US.utf8")))
             (stop #~(make-kill-destructor)))))))
 
diff --git a/guix/profiles.scm b/guix/profiles.scm
index dfc9ba1ca0..252910d0e5 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Chris Marusich <cmmarusich <at> gmail.com>
 ;;; Copyright © 2017 Huang Ying <huang.ying.caritas <at> gmail.com>
 ;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1477,7 +1478,7 @@ are cross-built for TARGET."
       ;; install a UTF-8 locale.
       #~(begin
           (setenv "LOCPATH"
-                  #$(file-append glibc-utf8-locales "/lib/locale/"
+                  #+(file-append glibc-utf8-locales "/lib/locale/"
                                  (version-major+minor
                                   (package-version glibc-utf8-locales))))
           (setlocale LC_ALL "en_US.utf8")))
diff --git a/guix/self.scm b/guix/self.scm
index 7ba2764eb9..dc0aba8987 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo <at> gnu.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -421,7 +422,7 @@ load path."
                               (string-append (if locpath
                                                  (string-append locpath ":")
                                                  "")
-                                             #$(file-append glibc-utf8-locales
+                                             #+(file-append glibc-utf8-locales
                                                             "/lib/locale"))))
 
                     (let ((guix-main (module-ref (resolve-interface '(guix ui))
-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Fri, 12 Apr 2019 13:17:05 GMT) Full text and rfc822 format available.

Message #23 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: 35244 <at> debbugs.gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH 6/6] gnu: python: Fix cross compilation.
Date: Fri, 12 Apr 2019 15:15:56 +0200
* gnu/packages/python.scm (python-2.7)[arguments]: Add a configure flag to
disable a check failing when cross-compiling. This is covered here:

https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html
---
 gnu/packages/python.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 57ced499cb..e3a484f5cd 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis <at> gmail.com>
 ;;; Copyright © 2017, 2018 Adriano Peluso <catonano <at> gmail.com>
 ;;; Copyright © 2017 Ben Sturmfels <ben <at> sturm.com.au>
-;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe <at> gmail.com>
+;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k <at> openmailbox.org>
 ;;; Copyright © 2017 Roel Janssen <roel <at> gnu.org>
 ;;; Copyright © 2017, 2018 Kei Kebreau <kkebreau <at> posteo.net>
@@ -134,6 +134,9 @@
              "--with-system-ffi"                  ;build ctypes
              "--with-ensurepip=install"           ;install pip and setuptools
              "--enable-unicode=ucs4"
+             ;; Disable runtime check failing if cross-compiling, see:
+             ;; https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html
+             "ac_cv_buggy_getaddrinfo=no"
              (string-append "LDFLAGS=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib"))
 
-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Sun, 14 Apr 2019 15:20:01 GMT) Full text and rfc822 format available.

Message #26 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Mathieu Othacehe <m.othacehe <at> gmail.com>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 1/6] gnu: bash-completion: Fix
 cross-compilation.
Date: Sun, 14 Apr 2019 17:19:22 +0200
Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:

> * gnu/packages/bash.scm (bash-completion)[arguments]: Search for util-linux in
> native-inputs and inputs during "remove-redundant-completions" phase.

LGTM!




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Sun, 14 Apr 2019 15:24:01 GMT) Full text and rfc822 format available.

Message #29 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Mathieu Othacehe <m.othacehe <at> gmail.com>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 2/6] gnu: groff: Fix cross compilation.
Date: Sun, 14 Apr 2019 17:22:52 +0200
Hi,

Mathieu Othacehe <m.othacehe <at> 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 <at> 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’.




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Sun, 14 Apr 2019 15:25:02 GMT) Full text and rfc822 format available.

Message #32 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Mathieu Othacehe <m.othacehe <at> gmail.com>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 3/6] gnu: glibc-utf8-locales: Always use
 native package.
Date: Sun, 14 Apr 2019 17:24:24 +0200
Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:

> * gnu/installer.scm (build-compiled-file): Use native glibc-utf8-locales.
> * gnu/services/base.scm (guix-shepherd-service): Ditto,
> (guix-publish-shepherd-service): ditto.
> * guix/profiles.scm (profile-derivation): Ditto.
> * guix/self.scm (guix-command): Ditto.
> * gnu/packages/package-management.scm (guix)[inputs]: Move glibc-utf8-locales
> from here ...,
> [native-inputs]: ... to here,
> [phases]: search for glibc-utf8-locales in native-inputs and inputs in
> 'wrap-program phase.

Do you have evidence that locale data is architecture-independent?

It’s not all that clear to me; that it goes to $libdir, not $datadir,
suggests it’s indeed architecture-dependent.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Sun, 14 Apr 2019 15:27:02 GMT) Full text and rfc822 format available.

Message #35 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Mathieu Othacehe <m.othacehe <at> gmail.com>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 4/6] gnu: firmware: Fix cross compilation.
Date: Sun, 14 Apr 2019 17:26:11 +0200
Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:

> * gnu/packages/firmware.scm (ath9k-htc-firmware)[phases]: Search for
> "cross-gcc" in native-inputs in "configure" phase.

The subject line should mention ‘ath9k-htc-firmware’, not ‘firmware’.
:-)

>               (substitute* "configure"
>                 (("^TOOLCHAIN=.*$")
>                  (string-append "TOOLCHAIN="
> -                               (assoc-ref inputs "cross-gcc")
> +                               (assoc-ref native-inputs "cross-gcc")
>                                 "\n")))

It still works natively, right?

It it does, it LGTM!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Sun, 14 Apr 2019 15:28:02 GMT) Full text and rfc822 format available.

Message #38 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Mathieu Othacehe <m.othacehe <at> gmail.com>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 6/6] gnu: python: Fix cross compilation.
Date: Sun, 14 Apr 2019 17:27:17 +0200
Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:

> * gnu/packages/python.scm (python-2.7)[arguments]: Add a configure flag to
> disable a check failing when cross-compiling. This is covered here:
>
> https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html

[...]

> +             ;; Disable runtime check failing if cross-compiling, see:
> +             ;; https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html
> +             "ac_cv_buggy_getaddrinfo=no"

Can you make it conditional on (%current-target-system)?  That way we
can apply it on master without rebuilding the world.

Otherwise LGTM.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Sun, 14 Apr 2019 15:30:02 GMT) Full text and rfc822 format available.

Message #41 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Mathieu Othacehe <m.othacehe <at> gmail.com>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 5/6] linux-initrd: Fix cross compilation.
Date: Sun, 14 Apr 2019 17:29:16 +0200
Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:

> * gnu/system/linux-initrd.scm (default-initrd-modules): Check system name
> against %current-target-system first in case we are cross-compiling.

LGTM!

Glad we’re making process on system cross-compilation!  Are you
targeting low-end ARMv7 devices?

Thank you,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Tue, 25 Jun 2019 19:43:02 GMT) Full text and rfc822 format available.

Message #44 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 1/6] gnu: bash-completion: Fix
 cross-compilation.
Date: Tue, 25 Jun 2019 21:42:08 +0200
> Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:
>
>> * gnu/packages/bash.scm (bash-completion)[arguments]: Search for util-linux in
>> native-inputs and inputs during "remove-redundant-completions" phase.
>
> LGTM!

Pushed as d8dbfbce.

Sorry for the looong reaction.

Mathieu




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Tue, 25 Jun 2019 19:48:01 GMT) Full text and rfc822 format available.

Message #47 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 5/6] linux-initrd: Fix cross compilation.
Date: Tue, 25 Jun 2019 21:47:42 +0200
> LGTM!

Pushed as fdbf4447b.

> Glad we’re making process on system cross-compilation!  Are you
> targeting low-end ARMv7 devices?

Yes as well as more powerful aarch64 boards. I would like to use Guix as
an alternative to various tools such as Yocto/Buildroot at
work. Cross-compiling is the only viable way as target compilation and
qemu-binfmt alternatives are way too slow.

I'll try to resume the rest of the serie soon.

Mathieu




Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Wed, 26 Jun 2019 08:20:01 GMT) Full text and rfc822 format available.

Message #50 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: 35244 <at> debbugs.gnu.org
Cc: Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: [PATCH] gnu: perl: Fix cross-compilation.
Date: Wed, 26 Jun 2019 10:19:01 +0200
* gnu/packages/perl.scm (perl)[arguments]: Use cross-libc instead of libc when
cross-compiling.
---
 gnu/packages/perl.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 63b8e387b8..b348a3e088 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail <at> ambrevar.xyz>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau <at> posteo.net>
 ;;; Copyright © 2019 Alex Griffin <a <at> ajgrf.com>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -81,7 +82,7 @@
                        "perl-reproducible-build-date.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f
+     `(#:tests? #f
        #:configure-flags
        (let ((out  (assoc-ref %outputs "out"))
              (libc (assoc-ref %build-inputs "libc")))
@@ -130,7 +131,9 @@
          (add-after 'install 'remove-extra-references
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out     (assoc-ref outputs "out"))
-                    (libc    (assoc-ref inputs "libc"))
+                    (libc    (assoc-ref inputs
+                                        ,(if (%current-target-system)
+                                             "cross-libc" "libc")))
                     (config1 (car (find-files (string-append out "/lib/perl5")
                                               "^Config_heavy\\.pl$")))
                     (config2 (find-files (string-append out "/lib/perl5")
-- 
2.17.1





Information forwarded to guix-patches <at> gnu.org:
bug#35244; Package guix-patches. (Wed, 26 Jun 2019 08:59:01 GMT) Full text and rfc822 format available.

Message #53 received at 35244 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Mathieu Othacehe <m.othacehe <at> gmail.com>
Cc: 35244 <at> debbugs.gnu.org
Subject: Re: [bug#35244] [PATCH 5/6] linux-initrd: Fix cross compilation.
Date: Wed, 26 Jun 2019 10:57:53 +0200
Hello,

Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:

>> LGTM!
>
> Pushed as fdbf4447b.

\o/

>> Glad we’re making process on system cross-compilation!  Are you
>> targeting low-end ARMv7 devices?
>
> Yes as well as more powerful aarch64 boards. I would like to use Guix as
> an alternative to various tools such as Yocto/Buildroot at
> work. Cross-compiling is the only viable way as target compilation and
> qemu-binfmt alternatives are way too slow.

qemu-binfmt might be OK if you get enough substitutes and thus have
little to build locally.

Thanks!

Ludo’.




bug closed, send any further explanations to 35244 <at> debbugs.gnu.org and Mathieu Othacehe <m.othacehe <at> gmail.com> Request was from Mathieu Othacehe <m.othacehe <at> gmail.com> to control <at> debbugs.gnu.org. (Mon, 08 Jul 2019 10:00:27 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 05 Aug 2019 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 264 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.