aboutsummaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2018-08-13 20:39:08 +0200
committerRicardo Wurmus <rekado@elephly.net>2018-08-13 20:39:32 +0200
commitb86c019efbc5c4ea35f3cd6d2f52985f40e49e6c (patch)
tree01c8ec8d4172c2834bef1e8859d6ca8b99338470 /guix
parent25bd72678ae4048b0b84ee82bc5f2644367e9715 (diff)
parent7b38f045c04fe69001ff5c2f04486cc51a69ae82 (diff)
downloadgnu-guix-b86c019efbc5c4ea35f3cd6d2f52985f40e49e6c.tar
gnu-guix-b86c019efbc5c4ea35f3cd6d2f52985f40e49e6c.tar.gz
Merge branch 'staging' into core-updates
Diffstat (limited to 'guix')
-rw-r--r--guix/build-system/meson.scm20
-rw-r--r--guix/build/ant-build-system.scm6
-rw-r--r--guix/build/meson-build-system.scm23
-rw-r--r--guix/import/cabal.scm7
-rw-r--r--guix/import/hackage.scm6
5 files changed, 25 insertions, 37 deletions
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 @@
(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 @@
(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 <https://bugs.gnu.org/28444#46>, 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 @@ has a 'meson.build' file."
#: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/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 @@ to the default GNU unpack strategy."
(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 @@ repack them. This is necessary to ensure that archives are reproducible."
(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)))
diff --git a/guix/build/meson-build-system.scm b/guix/build/meson-build-system.scm
index 9724764424..f6b8b49801 100644
--- a/guix/build/meson-build-system.scm
+++ b/guix/build/meson-build-system.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,18 +46,13 @@
(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:
- ;; * <https://github.com/mesonbuild/meson/issues/314>
- ;; * <https://github.com/mesonbuild/meson/issues/3038>
- ;; * <https://github.com/NixOS/nixpkgs/issues/31222>
- (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 @@ for example libraries only needed for the tests."
(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)
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 <beffa@fbengineering.ch>
+;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -831,9 +832,9 @@ See the manual for limitations.")))))))
(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 <beffa@fbengineering.ch>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -178,8 +179,9 @@ object."
(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)