From 802307fe6f6ce5cb89addc9ab25b5e488c443575 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 7 Oct 2021 14:54:08 -0400 Subject: [PATCH] gnu: meson: Patch to allow installing to independent prefixes. Meson goes to lengths at preventing installation to directories outside of the main installation prefix. This isn't convenient or desirable in Guix; patch it out using a patch maintained by Nix. * gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch: Add patch. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/build-tools.scm (meson): Use it. --- gnu/local.mk | 1 + gnu/packages/build-tools.scm | 4 +++- .../meson-allow-dirs-outside-of-prefix.patch | 20 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch diff --git a/gnu/local.mk b/gnu/local.mk index cd92b825a35cb3cd9901e44117e742082331d8cc..3952795c3baa78694331a2d7ae9e67b1683b97de 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1468,6 +1468,7 @@ dist_patch_DATA = \ %D%/packages/patches/mesa-opencl-all-targets.patch \ %D%/packages/patches/mesa-skip-tests.patch \ %D%/packages/patches/mescc-tools-boot.patch \ + %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch \ %D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch \ diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index c92fe0b0c06f63804522fa96b092d2765d1d74da..a02d1a7d80f58e54850e64b0597d8e33922f0658 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -272,7 +272,9 @@ files and generates build instructions for the Ninja build system.") version ".tar.gz")) (sha256 (base32 - "0v9m0bazhj48kwc8x3gkxg5c3kcvknvqfjlq22z6pm2h2r2nln6v")))) + "0v9m0bazhj48kwc8x3gkxg5c3kcvknvqfjlq22z6pm2h2r2nln6v")) + (patches (search-patches + "meson-allow-dirs-outside-of-prefix.patch")))) (build-system python-build-system) (arguments `(;; FIXME: Tests require many additional inputs and patching many diff --git a/gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch b/gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch new file mode 100644 index 0000000000000000000000000000000000000000..f16daa800961a064216a85f7ee82538f561b9b18 --- /dev/null +++ b/gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch @@ -0,0 +1,20 @@ +Source: https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch +--- a/mesonbuild/coredata.py ++++ b/mesonbuild/coredata.py +@@ -506,7 +506,6 @@ class CoreData: + return value + if option.name.endswith('dir') and value.is_absolute() and \ + option not in BULITIN_DIR_NOPREFIX_OPTIONS: +- # Value must be a subdir of the prefix + # commonpath will always return a path in the native format, so we + # must use pathlib.PurePath to do the same conversion before + # comparing. +@@ -518,7 +517,7 @@ class CoreData: + try: + value = value.relative_to(prefix) + except ValueError: +- raise MesonException(msg.format(option, value, prefix)) ++ pass + if '..' in str(value): + raise MesonException(msg.format(option, value, prefix)) + return value.as_posix()