diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers')
20 files changed, 138 insertions, 103 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix index 3f43cad17c4..49f8435b377 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, coreutils, makeWrapper }: -let version = "1.9.6"; in +let version = "1.9.15"; in stdenv.mkDerivation { pname = "ant"; @@ -10,7 +10,7 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2"; - sha256 = "1cwd5vq175gyicw0hkm8idwa33zxwhf7xlxywaqxcqqdjql0jfx4"; + sha256 = "0yfx5qsvrg12lar4908ndbnlpppy7g7qk8ay41y4sz9g873v07mr"; }; contrib = fetchurl { diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix index f06467867ce..b0411090fbe 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, coreutils, makeWrapper }: -let version = "1.10.2"; in +let version = "1.10.8"; in stdenv.mkDerivation { pname = "ant"; @@ -10,12 +10,12 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2"; - sha256 = "0662qammjvibh9kgkxzadkayfn2r7iwnagbwaw28crqqclrb2rp1"; + sha256 = "0zh94csb2hl6ir2ccn18ps506mjgh3mffnrb8wpsmp1x5fcykha5"; }; contrib = fetchurl { url = "mirror://sourceforge/ant-contrib/ant-contrib-1.0b3-bin.tar.bz2"; - sha256 = "96effcca2581c1ab42a4828c770b48d54852edf9e71cefc9ed2ffd6590571ad1"; + sha256 = "1l8say86bz9gxp4yy777z7nm4j6m905pg342li1aphc14p5grvwn"; }; installPhase = diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix index 6d4ba50a9fb..c507169cf37 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix @@ -236,6 +236,8 @@ stdenv.mkDerivation rec { fetch --experimental_distdir=${distDir} build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')" build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')" + build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')" + build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')" build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')" build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')" build --host_javabase='@local_jdk//:jdk' @@ -245,6 +247,8 @@ stdenv.mkDerivation rec { # add the same environment vars to compile.sh sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \ diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix index 19d33235a34..ad6e9ee4456 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix @@ -417,6 +417,8 @@ stdenv.mkDerivation rec { fetch --distdir=${distDir} build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')" build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')" + build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')" + build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')" build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')" build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')" build --host_javabase='@local_jdk//:jdk' @@ -426,6 +428,8 @@ stdenv.mkDerivation rec { # add the same environment vars to compile.sh sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \ diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix index eff8aede6c1..8dcdc71415f 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix @@ -417,6 +417,8 @@ stdenv.mkDerivation rec { fetch --distdir=${distDir} build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')" build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')" + build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')" + build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')" build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')" build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')" build --host_javabase='@local_jdk//:jdk' @@ -426,6 +428,8 @@ stdenv.mkDerivation rec { # add the same environment vars to compile.sh sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \ diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix index 60c1662f9ff..0bfc9071d7e 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix @@ -419,10 +419,18 @@ stdenv.mkDerivation rec { # add nix environment vars to .bazelrc cat >> .bazelrc <<EOF + # Limit the resources Bazel is allowed to use during the build to 1/2 the + # available RAM and 3/4 the available CPU cores. This should help avoid + # overwhelming the build machine. + build --local_ram_resources=HOST_RAM*.5 + build --local_cpu_resources=HOST_CPUS*.75 + build --distdir=${distDir} fetch --distdir=${distDir} build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')" build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')" + build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')" + build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')" build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')" build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')" build --host_javabase='@local_jdk//:jdk' @@ -432,6 +440,8 @@ stdenv.mkDerivation rec { # add the same environment vars to compile.sh sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \ + -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \ diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix index 83182983455..dd9bc4016f5 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix @@ -24,6 +24,5 @@ buildGoPackage rec { homepage = "https://github.com/bazelbuild/buildtools"; license = licenses.asl20; maintainers = with maintainers; [ elasticdog uri-canva marsam ]; - platforms = platforms.all; }; } diff --git a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix index dd1342a37de..c3049edee64 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { pname = "bloop"; - version = "1.4.3"; + version = "1.4.4"; bloop-coursier-channel = fetchurl { url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json"; - sha256 = "0abl91l2sb08pwr98mw910zibzwk6lss9r62h2s3g7qnnxp3z59r"; + sha256 = "1pyf559bpnsmvca4kw36nb9lwkwa9q0ghrpa117s96dhvrp3i2bv"; }; bloop-bash = fetchurl { @@ -54,8 +54,8 @@ stdenv.mkDerivation rec { outputHashMode = "recursive"; outputHashAlgo = "sha256"; - outputHash = if stdenv.isLinux && stdenv.isx86_64 then "1ncl34f39mvk0zb5jl1l77cwjdg3xfnhjxbzz11pdfqw0d7wqywj" - else if stdenv.isDarwin && stdenv.isx86_64 then "06c885w088yvh8l1r1jbrz0549gx2xvc8xr6rlxy6y27jk5655p2" + outputHash = if stdenv.isLinux && stdenv.isx86_64 then "0hf0priy93zqba78a9nvbgl3mzwlc4jz43gz7cv2cdkj6x0lp0y1" + else if stdenv.isDarwin && stdenv.isx86_64 then "0g2rnmlfnqymji4f4rn0kaz7hipgv3bakdpn08600gg1f3s8gabw" else throw "unsupported platform"; }; diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix index 0b296f023ad..559a4c191b6 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, pkgconfig +{ stdenv, lib, fetchurl, pkgconfig, fetchpatch , bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash , buildPackages # darwin attributes @@ -19,12 +19,12 @@ stdenv.mkDerivation rec { + lib.optionalString useNcurses "-cursesUI" + lib.optionalString withQt5 "-qt5UI" + lib.optionalString useQt4 "-qt4UI"; - version = "3.18.0"; + version = "3.18.2"; src = fetchurl { url = "${meta.homepage}files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz"; # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt - sha256 = "0aby67jn3i0rqhj6cvpm0f7idw3dl7jayaqxa9hkk9w2jk5zzd43"; + sha256 = "0zhxsnxm5d8wdarz2gs3r41r1dfrnh35ki75fa684gaxfzy40kjx"; }; patches = [ @@ -110,8 +110,17 @@ stdenv.mkDerivation rec { doCheck = false; # fails meta = with lib; { - homepage = "http://www.cmake.org/"; + homepage = "https://cmake.org/"; + changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/" + + "release/${lib.versions.majorMinor version}.html"; description = "Cross-Platform Makefile Generator"; + longDescription = '' + CMake is an open-source, cross-platform family of tools designed to + build, test and package software. CMake is used to control the software + compilation process using simple platform and compiler independent + configuration files, and generate native makefiles and workspaces that + can be used in the compiler environment of your choice. + ''; platforms = if useQt4 then qt4.meta.platforms else platforms.all; maintainers = with maintainers; [ ttuegel lnl7 ]; license = licenses.bsd3; diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh index 73f24a9a205..0bb695615fc 100755 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -48,7 +48,7 @@ cmakeConfigurePhase() { # on macOS we want to prefer Unix-style headers to Frameworks # because we usually do not package the framework - cmakeFlags="-DCMAKE_FIND_FRAMEWORK=last $cmakeFlags" + cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags" # on macOS i686 was only relevant for 10.5 or earlier. cmakeFlags="-DCMAKE_OSX_ARCHITECTURES=x86_64 $cmakeFlags" @@ -77,7 +77,7 @@ cmakeConfigurePhase() { fi # The argument sometimes contains garbage or variable interpolation. # When that is the case, let’s fall back to the derivation name. - if [[ -z "$shareDocName" ]] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-+]'; then + if [[ -z "$shareDocName" ]] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_+-]'; then if [[ -n "${pname-}" ]]; then shareDocName="$pname" else diff --git a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix index 1d5ef75fb22..73e9bc7b560 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix @@ -51,15 +51,15 @@ rec { }; }; - gradle_latest = gradle_6_5; + gradle_latest = gradle_6_6; - gradle_6_5 = gradleGen rec { - name = "gradle-6.5.1"; - nativeVersion = "0.22-milestone-3"; + gradle_6_6 = gradleGen rec { + name = "gradle-6.6"; + nativeVersion = "0.22-milestone-4"; src = fetchurl { url = "https://services.gradle.org/distributions/${name}-bin.zip"; - sha256 = "0jmmipjh4fbsn92zpifa5cqg5ws2a4ha0s4jzqhrg4zs542x79sh"; + sha256 = "09a0fnz6fn8yaxm3q3iwyjm3nnaz7k8i1xlpc7sm414py043by76"; }; }; diff --git a/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix index e21410fb6f3..6c9d8bfc838 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix @@ -13,6 +13,8 @@ buildGoModule rec { vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5"; + doCheck = false; + buildFlagsArray = [ "-ldflags=" "-X github.com/magefile/mage/mage.commitHash=v${version}" @@ -25,6 +27,5 @@ buildGoModule rec { homepage = "https://magefile.org/"; license = licenses.asl20; maintainers = with maintainers; [ swdunlop ]; - platforms = platforms.all; }; } diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch index bd81efd5208..e5ac95d0b9d 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch +++ b/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch @@ -1,6 +1,6 @@ --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py -@@ -483,7 +483,6 @@ class CoreData: +@@ -491,7 +491,6 @@ class CoreData: return value if option.endswith('dir') and value.is_absolute() and \ option not in builtin_dir_noprefix_options: @@ -8,7 +8,7 @@ # commonpath will always return a path in the native format, so we # must use pathlib.PurePath to do the same conversion before # comparing. -@@ -495,7 +494,7 @@ class CoreData: +@@ -503,7 +502,7 @@ class CoreData: try: value = value.relative_to(prefix) except ValueError: diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch new file mode 100644 index 00000000000..f1e3c76e8b5 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch @@ -0,0 +1,20 @@ +diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py +index 4176b9a03..faaabf616 100644 +--- a/mesonbuild/scripts/depfixer.py ++++ b/mesonbuild/scripts/depfixer.py +@@ -336,6 +336,15 @@ class Elf(DataSizes): + if not new_rpath: + self.remove_rpath_entry(entrynum) + else: ++ # Clear old rpath to avoid stale references, ++ # not heeding the warning above about de-duplication ++ # since it does not seem to cause issues for us ++ # and not doing so trips up Nix’s reference checker. ++ # See https://github.com/NixOS/nixpkgs/pull/46020 ++ # and https://github.com/NixOS/nixpkgs/issues/95163 ++ self.bf.seek(rp_off) ++ self.bf.write(b'\0'*len(old_rpath)) ++ + self.bf.seek(rp_off) + self.bf.write(new_rpath) + self.bf.write(b'\0') diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix b/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix index 5b1266da382..aa11ba7638b 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix @@ -1,33 +1,29 @@ { lib -, python3Packages +, python3 , stdenv , writeTextDir , substituteAll , pkgsHostHost +, fetchpatch }: -python3Packages.buildPythonApplication rec { +python3.pkgs.buildPythonApplication rec { pname = "meson"; - version = "0.54.2"; + version = "0.55.1"; - src = python3Packages.fetchPypi { + src = python3.pkgs.fetchPypi { inherit pname version; - sha256 = "0m84zb0q67vnxmd6ldz477w6yjdnk9c44xhlwh1g1pzqx3m6wwd7"; + sha256 = "O1dB+ITgSSi9+hlHRn/wavpsmOYjwlzvda33HKOc4IA="; }; - postFixup = '' - pushd $out/bin - # undo shell wrapper as meson tools are called with python - for i in *; do - mv ".$i-wrapped" "$i" - done - popd - - # Do not propagate Python - rm $out/nix-support/propagated-build-inputs - ''; - patches = [ + # Meson 0.55.0 incorrectly considers skipped tests as failures, + # which makes some packages like gjs fail to build. + (fetchpatch { + url = "https://github.com/mesonbuild/meson/commit/7db49db67d4aa7582cf46feb7157235e66aa95b1.diff"; + sha256 = "1chq52sgk24afdlswssr8n8p6fa2wz8rjlxvkjhpqg1kg3qnqc9p"; + }) + # Upstream insists on not allowing bindir and other dir options # outside of prefix for some reason: # https://github.com/mesonbuild/meson/issues/2561 @@ -55,6 +51,14 @@ python3Packages.buildPythonApplication rec { src = ./fix-rpath.patch; inherit (builtins) storeDir; }) + + # When Meson removes build_rpath from DT_RUNPATH entry, it just writes + # the shorter NUL-terminated new rpath over the old one to reduce + # the risk of potentially breaking the ELF files. + # But this can cause much bigger problem for Nix as it can produce + # cut-in-half-by-\0 store path references. + # Let’s just clear the whole rpath and hope for the best. + ./clear-old-rpath.patch ]; setupHook = ./setup-hook.sh; @@ -68,6 +72,18 @@ python3Packages.buildPythonApplication rec { # checkInputs = [ ninja pkgconfig ]; # checkPhase = "python ./run_project_tests.py"; + postFixup = '' + pushd $out/bin + # undo shell wrapper as meson tools are called with python + for i in *; do + mv ".$i-wrapped" "$i" + done + popd + + # Do not propagate Python + rm $out/nix-support/propagated-build-inputs + ''; + meta = with lib; { homepage = "https://mesonbuild.com"; description = "SCons-like build system that use python as a front-end language and Ninja as a building backend"; diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch index 6cf7afc2bdf..d34b6c4c434 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch +++ b/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch @@ -1,56 +1,24 @@ ---- a/mesonbuild/linkers.py -+++ b/mesonbuild/linkers.py -@@ -527,8 +527,10 @@ class GnuLikeDynamicLinkerMixin: - # In order to avoid relinking for RPATH removal, the binary needs to contain just - # enough space in the ELF header to hold the final installation RPATH. - paths = ':'.join(all_paths) -- if len(paths) < len(install_rpath): -- padding = 'X' * (len(install_rpath) - len(paths)) -+ store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), all_paths)) -+ extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths) -+ if extra_space_needed > 0: -+ padding = 'X' * extra_space_needed - if not paths: - paths = padding - else: -@@ -902,8 +904,10 @@ class SolarisDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): - # In order to avoid relinking for RPATH removal, the binary needs to contain just - # enough space in the ELF header to hold the final installation RPATH. - paths = ':'.join(all_paths) -- if len(paths) < len(install_rpath): -- padding = 'X' * (len(install_rpath) - len(paths)) -+ store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), all_paths)) -+ extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths) -+ if extra_space_needed > 0: -+ padding = 'X' * extra_space_needed - if not paths: - paths = padding - else: ---- a/mesonbuild/scripts/depfixer.py -+++ b/mesonbuild/scripts/depfixer.py -@@ -303,6 +303,14 @@ class Elf(DataSizes): - return - self.bf.seek(rp_off) - old_rpath = self.read_str() +--- a/mesonbuild/backend/backends.py ++++ b/mesonbuild/backend/backends.py +@@ -456,6 +456,21 @@ class Backend: + args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang)) + except Exception: + pass + -+ if new_rpath: -+ new_rpath += b':' -+ else: -+ new_rpath = b'' ++ nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split() ++ next_is_path = False ++ # Try to add rpaths set by user or ld-wrapper so that they are not removed. ++ # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177 ++ for flag in nix_ldflags: ++ if flag == '-rpath' or flag == '-L': ++ next_is_path = True ++ elif next_is_path or flag.startswith('-L/'): ++ if flag.startswith('-L/'): ++ flag = flag[2:] ++ if flag.startswith('@storeDir@'): ++ dirs.add(flag) ++ next_is_path = False + -+ new_rpath += b':'.join(filter(lambda path: path.startswith(b'@storeDir@'), old_rpath.split(b':'))) -+ - if len(old_rpath) < len(new_rpath): - sys.exit("New rpath must not be longer than the old one.") - # The linker does read-only string deduplication. If there is a -@@ -316,6 +324,10 @@ class Elf(DataSizes): - if not new_rpath: - self.remove_rpath_entry(entrynum) - else: -+ # clean old rpath to avoid stale references -+ # (see https://github.com/NixOS/nixpkgs/pull/46020) -+ self.bf.seek(rp_off) -+ self.bf.write(b'\0'*len(old_rpath)) - self.bf.seek(rp_off) - self.bf.write(new_rpath) - self.bf.write(b'\0') + # Match rpath formats: + # -Wl,-rpath= + # -Wl,-rpath, diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch index e59795486aa..0c924bacf73 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch +++ b/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch @@ -1,8 +1,8 @@ --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py -@@ -801,6 +801,13 @@ class GnomeModule(ExtensionModule): - scan_command += ['--sources-top-dirs', os.path.join(state.environment.get_source_dir(), self.interpreter.subproject_dir, state.subproject)] - scan_command += ['--sources-top-dirs', os.path.join(state.environment.get_build_dir(), self.interpreter.subproject_dir, state.subproject)] +@@ -807,6 +807,13 @@ class GnomeModule(ExtensionModule): + if fatal_warnings: + scan_command.append('--warn-error') + if len(set([girtarget.get_custom_install_dir()[0] for girtarget in girtargets])) > 1: + raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets]))) diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch index 6326f5ec3cf..ada58fff6d4 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch +++ b/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch @@ -1,8 +1,8 @@ diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py -index 17058df6b..7a68b7f15 100644 +index 219b62ec8..e3ceaddbd 100644 --- a/mesonbuild/envconfig.py +++ b/mesonbuild/envconfig.py -@@ -120,7 +120,7 @@ def get_env_var_pair(for_machine: MachineChoice, +@@ -94,7 +94,7 @@ def get_env_var_pair(for_machine: MachineChoice, # compiling we fall back on the unprefixed host version. This # allows native builds to never need to worry about the 'BUILD_*' # ones. diff --git a/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix b/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix index efe9a495494..bc5ad7744d6 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix @@ -4,13 +4,13 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "ninja"; - version = "1.10.0"; + version = "1.10.1"; src = fetchFromGitHub { owner = "ninja-build"; repo = "ninja"; rev = "v${version}"; - sha256 = "1fbzl7mrcrwp527sgkc1npfl3k6bbpydpiq98xcf1a1hkrx0z5x4"; + sha256 = "1bmv7zfqwp48ga6vnqvy0gzkclv40xgq19q4ihl58r6cn4swccn3"; }; nativeBuildInputs = [ python3 re2c ] ++ optionals buildDocs [ asciidoc docbook_xml_dtd_45 docbook_xsl libxslt.bin ]; diff --git a/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix index 41149522e72..f146929019f 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "rocm-cmake"; - version = "3.5.0"; + version = "3.7.0"; src = fetchFromGitHub { owner = "RadeonOpenCompute"; |