From d09822c394ac78eefa156196550e8f5f60d68252 Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Tue, 24 Aug 2021 10:36:08 +0200 Subject: gnu: mozjs-60: Fix cross-compilation build errors. Presumably the other versions of mozjs need some changes as well, but for now only fix mozjs@60, which is a dependency of polkit. * gnu/packages/gnuzilla.scm (mozjs-60)[arguments]<#:configure-flags>: Set --with-nspr-prefix and set --host and --target inappropriately when cross-compiling. (mozjs-60)[arguments]<#:phases>{set-PKG_CONFIG}: New phase when cross-compiling. --- gnu/packages/gnuzilla.scm | 51 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 14 deletions(-) (limited to 'gnu/packages/gnuzilla.scm') diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 58ea1f7ade..5dd90e4e20 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2020 Jonathan Brielmaier ;;; Copyright © 2020 Marius Bakke ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 Maxime Devos ;;; ;;; This file is part of GNU Guix. ;;; @@ -368,22 +369,44 @@ in C/C++.") `(#:tests? #f ; FIXME: all tests pass, but then the check phase fails anyway. #:test-target "check-jstests" #:configure-flags - '("--enable-ctypes" - "--enable-optimize" - "--enable-pie" - "--enable-readline" - "--enable-shared-js" - "--enable-system-ffi" - "--with-system-nspr" - "--with-system-zlib" - "--with-system-icu" - "--with-intl-api" - ;; This is important because without it gjs will segfault during the - ;; configure phase. With jemalloc only the standalone mozjs console - ;; will work. - "--disable-jemalloc") + ;; TODO(core-updates): unconditionally use 'quasiquote + ,#~(#$(if (%current-target-system) + #~quasiquote + #~quote) + ("--enable-ctypes" + "--enable-optimize" + "--enable-pie" + "--enable-readline" + "--enable-shared-js" + "--enable-system-ffi" + "--with-system-nspr" + #$@(if (%current-target-system) + #~(,(string-append "--with-nspr-prefix=" + #$(this-package-input "nspr"))) + #~()) + "--with-system-zlib" + "--with-system-icu" + "--with-intl-api" + ;; This is important because without it gjs will segfault during the + ;; configure phase. With jemalloc only the standalone mozjs console + ;; will work. + "--disable-jemalloc" + ;; Mozilla deviates from Autotools conventions due to historical + ;; reasons. + #$@(if (%current-target-system) + #~(#$(string-append + "--host=" + (nix-system->gnu-triplet (%current-system))) + #$(string-append "--target=" (%current-target-system))) + #~()))) #:phases (modify-phases %standard-phases + ;; Make sure pkg-config will be found. + ,@(if (%current-target-system) + `((add-before 'configure 'set-PKG-CONFIG + (lambda _ + (setenv "PKG_CONFIG" ,(pkg-config-for-target))))) + '()) (replace 'configure (lambda* (#:key inputs outputs configure-flags #:allow-other-keys) ;; The configure script does not accept environment variables as -- cgit v1.2.3