meson: rename patches

This commit is contained in:
Anderson Torres 2023-10-27 14:18:04 -03:00
parent 9cf584eb57
commit 1a3bec02f0
7 changed files with 65 additions and 47 deletions

View File

@ -28,25 +28,13 @@ python3.pkgs.buildPythonApplication rec {
}; };
patches = [ patches = [
# Meson is currently inspecting fewer variables than autoconf does, which # In typical distributions, RPATH is only needed for internal libraries so
# makes it harder for us to use setup hooks, etc. Taken from
# https://github.com/mesonbuild/meson/pull/6827
./more-env-vars.patch
# Unlike libtool, vanilla Meson does not pass any information
# about the path library will be installed to to g-ir-scanner,
# breaking the GIR when path other than ${!outputLib}/lib is used.
# We patch Meson to add a --fallback-library-path argument with
# library install_dir to g-ir-scanner.
./gir-fallback-path.patch
# In common distributions, RPATH is only needed for internal libraries so
# meson removes everything else. With Nix, the locations of libraries # meson removes everything else. With Nix, the locations of libraries
# are not as predictable, therefore we need to keep them in the RPATH. # are not as predictable, therefore we need to keep them in the RPATH.
# At the moment we are keeping the paths starting with /nix/store. # At the moment we are keeping the paths starting with /nix/store.
# https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634 # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634
(substituteAll { (substituteAll {
src = ./fix-rpath.patch; src = ./001-fix-rpath.patch;
inherit (builtins) storeDir; inherit (builtins) storeDir;
}) })
@ -56,50 +44,89 @@ python3.pkgs.buildPythonApplication rec {
# But this can cause much bigger problem for Nix as it can produce # But this can cause much bigger problem for Nix as it can produce
# cut-in-half-by-\0 store path references. # cut-in-half-by-\0 store path references.
# Lets just clear the whole rpath and hope for the best. # Lets just clear the whole rpath and hope for the best.
./clear-old-rpath.patch ./002-clear-old-rpath.patch
# Meson is currently inspecting fewer variables than autoconf does, which
# makes it harder for us to use setup hooks, etc.
# https://github.com/mesonbuild/meson/pull/6827
./003-more-env-vars.patch
# Unlike libtool, vanilla Meson does not pass any information about the path
# library will be installed to to g-ir-scanner, breaking the GIR when path
# other than ${!outputLib}/lib is used.
# We patch Meson to add a --fallback-library-path argument with library
# install_dir to g-ir-scanner.
./004-gir-fallback-path.patch
# Patch out default boost search paths to avoid impure builds on # Patch out default boost search paths to avoid impure builds on
# unsandboxed non-NixOS builds, see: # unsandboxed non-NixOS builds, see:
# https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774 # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
./boost-Do-not-add-system-paths-on-nix.patch ./005-boost-Do-not-add-system-paths-on-nix.patch
# Nixpkgs cctools does not have bitcode support. # Nixpkgs cctools does not have bitcode support.
./disable-bitcode.patch ./006-disable-bitcode.patch
# Fix passing multiple --define-variable arguments to pkg-config. # Fix passing multiple --define-variable arguments to pkg-config.
# https://github.com/mesonbuild/meson/pull/10670 # https://github.com/mesonbuild/meson/pull/10670
(fetchpatch { (fetchpatch {
url = "https://github.com/mesonbuild/meson/commit/d5252c5d4cf1c1931fef0c1c98dd66c000891d21.patch"; url = "https://github.com/mesonbuild/meson/commit/d5252c5d4cf1c1931fef0c1c98dd66c000891d21.patch";
sha256 = "GiUNVul1N5Fl8mfqM7vA/r1FdKqImiDYLXMVDt77gvw="; hash = "sha256-GiUNVul1N5Fl8mfqM7vA/r1FdKqImiDYLXMVDt77gvw=";
excludes = [ excludes = [
"docs/yaml/objects/dep.yaml" "docs/yaml/objects/dep.yaml"
]; ];
}) })
]; ];
setupHook = ./setup-hook.sh; buildInputs = lib.optionals (python3.pythonOlder "3.9") [
libxcrypt
];
nativeCheckInputs = [ ninja pkg-config ]; nativeBuildInputs = [ installShellFiles ];
checkInputs = [ zlib ]
++ lib.optionals stdenv.isDarwin [ Foundation OpenGL AppKit Cocoa ];
checkPhase = ''
runHook preCheck
patchShebangs 'test cases' nativeCheckInputs = [
substituteInPlace 'test cases/native/8 external program shebang parsing/script.int.in' \ ninja
--replace /usr/bin/env ${coreutils}/bin/env pkg-config
];
checkInputs = [
zlib
]
++ lib.optionals stdenv.isDarwin [
AppKit
Cocoa
Foundation
OpenGL
];
checkPhase = lib.concatStringsSep "\n" ([
"runHook preCheck"
''
patchShebangs 'test cases'
substituteInPlace \
'test cases/native/8 external program shebang parsing/script.int.in' \
--replace /usr/bin/env ${coreutils}/bin/env
''
]
# Remove problematic tests
++ (builtins.map (f: ''rm -vr "${f}";'') [
# requires git, creating cyclic dependency # requires git, creating cyclic dependency
rm -r 'test cases/common/66 vcstag' ''test cases/common/66 vcstag''
# requires glib, creating cyclic dependency # requires glib, creating cyclic dependency
rm -r 'test cases/linuxlike/6 subdir include order' ''test cases/linuxlike/6 subdir include order''
rm -r 'test cases/linuxlike/9 compiler checks with dependencies' ''test cases/linuxlike/9 compiler checks with dependencies''
# requires static zlib, see #66461 # requires static zlib, see #66461
rm -r 'test cases/linuxlike/14 static dynamic linkage' ''test cases/linuxlike/14 static dynamic linkage''
# Nixpkgs cctools does not have bitcode support. # Nixpkgs cctools does not have bitcode support.
rm -r 'test cases/osx/7 bitcode' ''test cases/osx/7 bitcode''
HOME="$TMPDIR" python ./run_project_tests.py ])
++ [
''HOME="$TMPDIR" python ./run_project_tests.py''
"runHook postCheck"
]);
runHook postCheck postInstall = ''
installShellCompletion --zsh data/shell-completions/zsh/_meson
installShellCompletion --bash data/shell-completions/bash/meson
''; '';
postFixup = '' postFixup = ''
@ -117,18 +144,9 @@ python3.pkgs.buildPythonApplication rec {
--replace "python3 -c " "${python3.interpreter} -c " --replace "python3 -c " "${python3.interpreter} -c "
''; '';
buildInputs = lib.optionals (python3.pythonOlder "3.9") [ setupHook = ./setup-hook.sh;
libxcrypt
];
nativeBuildInputs = [ installShellFiles ]; meta = {
postInstall = ''
installShellCompletion --zsh data/shell-completions/zsh/_meson
installShellCompletion --bash data/shell-completions/bash/meson
'';
meta = with lib; {
homepage = "https://mesonbuild.com"; homepage = "https://mesonbuild.com";
description = "An open source, fast and friendly build system made in Python"; description = "An open source, fast and friendly build system made in Python";
longDescription = '' longDescription = ''
@ -140,8 +158,8 @@ python3.pkgs.buildPythonApplication rec {
second spent waiting for the build system to actually start compiling second spent waiting for the build system to actually start compiling
code. code.
''; '';
license = licenses.asl20; license = lib.licenses.asl20;
maintainers = with maintainers; [ mbe AndersonTorres ]; maintainers = with lib.maintainers; [ AndersonTorres ];
inherit (python3.meta) platforms; inherit (python3.meta) platforms;
}; };
} }