From 79d4d47b99591e4edd8cefee907fbb0d930f78aa Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Thu, 19 Jul 2018 19:11:46 +0200 Subject: guix: ant-build-system: Reorder before generating INDEX.LIST. * guix/build/ant-build-system.scm (%standard-phases): Add reorder-jar-content phase. --- guix/build/ant-build-system.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'guix') diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index d79b4d503b..d79a2d55ed 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -173,7 +173,7 @@ (define* (build #:key (make-flags '()) (build-target "jar") (define* (generate-jar-indices #:key outputs #:allow-other-keys) "Generate file \"META-INF/INDEX.LIST\". This file does not use word wraps -and is preferred over \"META-INF/MAINFEST.MF\", which does use word wraps, +and is preferred over \"META-INF/MANIFEST.MF\", which does use word wraps, by Java when resolving dependencies. So we make sure to create it so that grafting works - and so that the garbage collector doesn't collect dependencies of this jar file." @@ -245,7 +245,9 @@ (define %standard-phases (replace 'build build) (replace 'check check) (replace 'install install) - (add-after 'install 'generate-jar-indices generate-jar-indices) + (add-after 'install 'reorder-jar-content + strip-jar-timestamps) + (add-after 'reorder-jar-content 'generate-jar-indices generate-jar-indices) (add-after 'generate-jar-indices 'strip-jar-timestamps strip-jar-timestamps))) -- cgit v1.2.3 From 94eb59fb4ac3dfa501e9cac42454c030506ab7f1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 26 Jul 2018 23:44:26 +0200 Subject: build-system/meson: Remove RUNPATH workarounds. * guix/build-system/meson.scm (default-patchelf): Remove. (lower)[build-inputs]: Remove PATCHELF. (meson-build): Don't delete 'fix-runpath' phase on armhf. * guix/build/meson-build-system.scm (configure): Add "--c_link_args" and "-cpp_link_args" instead of setting LDFLAGS. (meson-build): Don't apply 'fix-runpath' phase. --- guix/build-system/meson.scm | 20 +------------------- guix/build/meson-build-system.scm | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 30 deletions(-) (limited to 'guix') diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index e894e1472d..fddf899092 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -58,12 +58,6 @@ (define (default-meson) (let ((module (resolve-interface '(gnu packages build-tools)))) (module-ref module 'meson-for-build))) -(define (default-patchelf) - "Return the default patchelf package." - ;; Lazily resolve the binding to avoid a circular dependency. - (let ((module (resolve-interface '(gnu packages elf)))) - (module-ref module 'patchelf))) - (define* (lower name #:key source inputs native-inputs outputs system target (meson (default-meson)) @@ -81,15 +75,6 @@ (define private-keywords (system system) (build-inputs `(("meson" ,meson) ("ninja" ,ninja) - ;; XXX PatchELF fails to build on armhf, so we skip - ;; the 'fix-runpath' phase there for now. It is used - ;; to avoid superfluous entries in RUNPATH as described - ;; in , so armhf may now - ;; have different runtime dependencies from other arches. - ,@(if (not (string-prefix? "arm" (or (%current-target-system) - (%current-system)))) - `(("patchelf" ,(default-patchelf))) - '()) ,@native-inputs)) (host-inputs `(,@(if source `(("source" ,source)) @@ -147,10 +132,7 @@ (define builder #:inputs %build-inputs #:search-paths ',(map search-path-specification->sexp search-paths) - #:phases - (if (string-prefix? "arm" ,system) - (modify-phases build-phases (delete 'fix-runpath)) - build-phases) + #:phases build-phases #:configure-flags ,configure-flags #:build-type ,build-type #:tests? ,tests? diff --git a/guix/build/meson-build-system.scm b/guix/build/meson-build-system.scm index e4aae8212f..80e54723c5 100644 --- a/guix/build/meson-build-system.scm +++ b/guix/build/meson-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Peter Mikkelsen +;;; Copyright © 2018 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,18 +45,13 @@ (define* (configure #:key outputs configure-flags build-type (prefix (assoc-ref outputs "out")) (args `(,(string-append "--prefix=" prefix) ,(string-append "--buildtype=" build-type) + ,(string-append "-Dc_link_args=-Wl,-rpath=" + (assoc-ref outputs "out") "/lib") + ,(string-append "-Dcpp_link_args=-Wl,-rpath=" + (assoc-ref outputs "out") "/lib") ,@configure-flags ,source-dir))) - ;; Meson lacks good facilities for dealing with RUNPATH, so we - ;; add the output "lib" directory here to avoid doing that in - ;; many users. Related issues: - ;; * - ;; * - ;; * - (unless (getenv "LDFLAGS") - (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))) - (mkdir build-dir) (chdir build-dir) (apply invoke "meson" args))) @@ -148,8 +144,13 @@ (define %standard-phases (replace 'configure configure) (replace 'build build) (replace 'check check) - (replace 'install install) - (add-after 'strip 'fix-runpath fix-runpath))) + ;; XXX: We used to have 'fix-runpath' here, but it appears no longer + ;; necessary with newer Meson. However on 'core-updates' there is a + ;; useful 'strip-runpath' procedure to ensure no bogus directories in + ;; RUNPATH (remember that we tell Meson to not touch RUNPATH in + ;; (@ (gnu packages build-tools) meson-for-build)), so it should be + ;; re-added there sans the augment-rpath calls (which are not needed). + (replace 'install install))) (define* (meson-build #:key inputs phases #:allow-other-keys #:rest args) -- cgit v1.2.3 From f60784228a05c21aabc0a97b62fb158ce479525c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 7 Aug 2018 18:00:16 +0200 Subject: import: cabal, hackage: Avoid error when custom setup section is missing. Fixes . * guix/import/cabal.scm (eval-cabal): Avoid mis-match when the custom-setup section cannot be created. * guix/import/hackage.scm (cabal-custom-setup-dependencies->names): Do not crash when cabal-package-custom-setup returns #F. --- guix/import/cabal.scm | 7 ++++--- guix/import/hackage.scm | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'guix') diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm index 1b8bda6f4e..13c2f3f48c 100644 --- a/guix/import/cabal.scm +++ b/guix/import/cabal.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -831,9 +832,9 @@ (define (cabal-evaluated-sexp->package evaluated-sexp) (test-suites (make-cabal-section evaluated-sexp 'test-suite)) (flags (make-cabal-section evaluated-sexp 'flag)) (eval-environment '()) - (custom-setup (match - (make-cabal-section evaluated-sexp 'custom-setup) - ((x) x)))) + (custom-setup (match (make-cabal-section evaluated-sexp 'custom-setup) + ((x) x) + (_ #f)))) (make-cabal-package name version license home-page-or-hackage source-repository synopsis description executables lib test-suites flags eval-environment custom-setup))) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 6f80d84b70..3b138f8c98 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2016 Nils Gillmann +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -178,8 +179,9 @@ (define (cabal-test-dependencies->names cabal) (define (cabal-custom-setup-dependencies->names cabal) "Return the list of custom-setup dependencies from the CABAL package object." - (let* ((custom-setup-dependencies (and=> (cabal-package-custom-setup cabal) - cabal-custom-setup-dependencies))) + (let* ((custom-setup-dependencies (or (and=> (cabal-package-custom-setup cabal) + cabal-custom-setup-dependencies) + '()))) (map cabal-dependency-name custom-setup-dependencies))) (define (filter-dependencies dependencies own-name) -- cgit v1.2.3