From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:51172) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iFbQe-0003py-Sr for guix-patches@gnu.org; Wed, 02 Oct 2019 06:00:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iFbQc-0000Bp-Ua for guix-patches@gnu.org; Wed, 02 Oct 2019 06:00:16 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:54925) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iFbQc-0000Bb-OZ for guix-patches@gnu.org; Wed, 02 Oct 2019 06:00:14 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iFbQc-0000ag-MF for guix-patches@gnu.org; Wed, 02 Oct 2019 06:00:14 -0400 Subject: [bug#36477] [PATCH v4 16/23] gnu: crda: Fix cross-compilation Resent-Message-ID: From: Mathieu Othacehe Date: Wed, 2 Oct 2019 11:58:57 +0200 Message-Id: <20191002095904.6325-17-m.othacehe@gmail.com> In-Reply-To: <20191002095904.6325-1-m.othacehe@gmail.com> References: <20191002095904.6325-1-m.othacehe@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 36477@debbugs.gnu.org Cc: Pierre-Moana Levesque From: Pierre-Moana Levesque * gnu/packages/linux.scm (crda)[arguments]: Patch Makefile to use cross pkg-config when cross-compiling. Also search for wireless-regdb in both native-inputs and inputs. Set CC variable to cross-compiler when cross-compiling. --- gnu/packages/linux.scm | 67 ++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8ba3c7d9db..177c8f44ed 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2810,13 +2810,23 @@ interface.") (patches (search-patches "crda-optional-gcrypt.patch")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (delete 'configure) (add-after 'unpack 'gzip-determinism (lambda _ (substitute* "Makefile" (("gzip") "gzip --no-name")) #t)) + ,@(if (%current-target-system) + '((add-after + 'unpack 'fix-pkg-config + (lambda* (#:key target #:allow-other-keys) + (substitute* + "Makefile" + (("pkg-config") + (string-append target "-pkg-config"))) + #t))) + '()) (add-before 'build 'no-werror-no-ldconfig (lambda _ @@ -2826,37 +2836,44 @@ interface.") #t)) (add-before 'build 'set-regulator-db-file-name - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key native-inputs inputs #:allow-other-keys) ;; Tell CRDA where to find our database. - (let ((regdb (assoc-ref inputs "wireless-regdb"))) + (let ((regdb (assoc-ref (or native-inputs inputs) + "wireless-regdb"))) (substitute* "crda.c" (("\"/lib/crda/regulatory.bin\"") (string-append "\"" regdb "/lib/crda/regulatory.bin\""))) #t)))) #:test-target "verify" - #:make-flags (let ((out (assoc-ref %outputs "out")) - (regdb (assoc-ref %build-inputs "wireless-regdb"))) - (list "CC=gcc" "V=1" - - ;; Disable signature-checking on 'regulatory.bin'. - ;; The reason is that this simplifies maintenance - ;; on our side (no need to manage a distro key - ;; pair), and we can guarantee integrity of - ;; 'regulatory.bin' by other means anyway, such as - ;; 'guix gc --verify'. See - ;; - ;; for a discssion. - "USE_OPENSSL=0" - - (string-append "PREFIX=" out) - (string-append "SBINDIR=" out "/sbin/") - (string-append "UDEV_RULE_DIR=" - out "/lib/udev/rules.d") - (string-append "LDFLAGS=-Wl,-rpath=" - out "/lib -L.") - (string-append "REG_BIN=" regdb - "/lib/crda/regulatory.bin"))))) + #:make-flags (let ((out (assoc-ref %outputs "out")) + (regdb (assoc-ref %build-inputs "wireless-regdb")) + (target ,(%current-target-system))) + (list + (string-append + "CC=" (if target + (string-append target "-gcc") "gcc")) + "V=1" + + ;; Disable signature-checking on 'regulatory.bin'. + ;; The reason is that this simplifies maintenance + ;; on our side (no need to manage a distro key + ;; pair), and we can guarantee integrity of + ;; 'regulatory.bin' by other means anyway, such as + ;; 'guix gc --verify'. See + ;; + ;; for a discssion. + "USE_OPENSSL=0" + + (string-append "PREFIX=" out) + (string-append "SBINDIR=" out "/sbin/") + (string-append "UDEV_RULE_DIR=" + out "/lib/udev/rules.d") + (string-append "LDFLAGS=-Wl,-rpath=" + out "/lib -L.") + (string-append "REG_BIN=" regdb + "/lib/crda/regulatory.bin") + "all_noverify")))) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python-2) ("wireless-regdb" ,wireless-regdb))) -- 2.23.0