Subject: [bug#36477] [PATCH v2 46/61] gnu: libnl: Fix cross-compilation.

From: Mathieu Othacehe <[email-masked]>
Date: Wed, 21 Aug 2019 10:54:40 +0200

From: Pierre-Moana Levesque <[email-masked]>

* gnu/packages/linux.scm (libnl)[native-inputs]: Add python-2 and python-3,
[arguments]: In install-python phase, use the cross-compiler and linker to
build extensions. In install-doc phase, search libnl3-doc in both inputs and
native-inputs.
---
 gnu/packages/linux.scm | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index cf403c46f1..7503e47805 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -36,6 +36,7 @@
 ;;; Copyright © 2019 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2019 Stefan Stefanović <[email-masked]>
 ;;; Copyright © 2019 Pierre Langlois <[email-masked]>
+;;; Copyright © 2019 Pierre-Moana Levesque <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1941,6 +1942,8 @@ transparently through a bridge.")
        ("flex" ,flex)
        ("pkg-config" ,pkg-config)
        ("swig" ,swig)
+       ("python-2" ,python-2)
+       ("python-3" ,python-3)
        ("libnl3-doc"
         ,(origin
            (method url-fetch)
@@ -1961,24 +1964,27 @@ transparently through a bridge.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-python
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key target outputs #:allow-other-keys)
              (define (python-inst python)
                (invoke python "setup.py" "build")
                (invoke python "setup.py" "install"
                        (string-append "--prefix="
                                       (assoc-ref %outputs python)))
                (invoke python "setup.py" "clean"))
+             (when target
+               (setenv "CC" (string-append target "-gcc"))
+               (setenv "LDSHARED" (string-append target "-gcc -shared")))
              (setenv "LDFLAGS" (format #f "-Wl,-rpath=~a/lib"
                                        (assoc-ref %outputs "out")))
              (with-directory-excursion "./python"
                (for-each python-inst '("python2" "python3")))
              #t))
          (add-after 'install 'install-doc
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
              (let ((dest (string-append (assoc-ref outputs "doc")
                                         "/share/doc/libnl")))
                (mkdir-p dest)
-               (invoke "tar" "xf" (assoc-ref inputs "libnl3-doc")
+               (invoke "tar" "xf" (assoc-ref (or native-inputs inputs) "libnl3-doc")
                        "--strip-components=1" "-C" dest)))))))
     (home-page "https://www.infradead.org/~tgr/libnl/")
     (synopsis "NetLink protocol library suite")
-- 
2.17.1