about summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/build-managers')
-rw-r--r--pkgs/development/tools/build-managers/alire/default.nix20
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bam/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix5
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix5
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bob/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/boot/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/buck/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/buck2/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buck2/hashes.json10
-rw-r--r--pkgs/development/tools/build-managers/build2/bdep.nix1
-rw-r--r--pkgs/development/tools/build-managers/build2/bpkg.nix1
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/gn/generic.nix8
-rw-r--r--pkgs/development/tools/build-managers/kati/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/knit/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/mage/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/mill/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/moon/default.nix7
-rw-r--r--pkgs/development/tools/build-managers/msbuild/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/ninja/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/rebar/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/rebar3/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/redo-sh/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/remake/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/sbt/scala-native.nix6
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/shards/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/xmake/default.nix4
34 files changed, 61 insertions, 37 deletions
diff --git a/pkgs/development/tools/build-managers/alire/default.nix b/pkgs/development/tools/build-managers/alire/default.nix
index eaa87d573f8c..2eb837442ac4 100644
--- a/pkgs/development/tools/build-managers/alire/default.nix
+++ b/pkgs/development/tools/build-managers/alire/default.nix
@@ -1,31 +1,41 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , gprbuild
 , gnat
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "alire";
-  version = "1.2.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "alire-project";
     repo = "alire";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-rwNiSXOIIQR1I8wwp1ROVOfEChT6SCa5c6XnTRqekDc=";
+    hash = "sha256-WF7spXwQR04zIGWazUrbCdeLYOzsk8C6G+cfSS6bwdE=";
 
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ gprbuild gnat ];
 
-  # on HEAD (roughly 2c4e5a3), alire provides a dev/build.sh script. for now,
-  # just use gprbuild.
+  patches = [(fetchpatch {
+    name = "control-build-jobs.patch";
+    url = "https://github.com/alire-project/alire/pull/1651.patch";
+    hash = "sha256-CBQm8Doydze/KouLWuYm+WYlvnDguR/OuX8A4y4F6fo=";
+  })];
+
+  postPatch = ''
+    patchShebangs ./dev/build.sh
+  '';
+
   buildPhase = ''
     runHook preBuild
 
-    gprbuild -j$NIX_BUILD_CORES -P alr_env
+    export ALIRE_BUILD_JOBS="$NIX_BUILD_CORES"
+    ./dev/build.sh
 
     runHook postBuild
   '';
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index 3cf880499944..9e3ff98f285d 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://ant.apache.org/";
     description = "A Java-based build tool";
+    mainProgram = "ant";
 
     longDescription = ''
       Apache Ant is a Java-based build tool.  In theory, it is kind of like
diff --git a/pkgs/development/tools/build-managers/bam/default.nix b/pkgs/development/tools/build-managers/bam/default.nix
index 556725cca6c4..c435e2fa16ec 100644
--- a/pkgs/development/tools/build-managers/bam/default.nix
+++ b/pkgs/development/tools/build-managers/bam/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Yet another build manager";
+    mainProgram = "bam";
     maintainers = with maintainers;
     [
       raskin
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 1692058dcac8..9f1058bd9e48 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/buchgr/bazel-remote";
     description = "A remote HTTP/1.1 cache for Bazel";
+    mainProgram = "bazel-remote";
     changelog = "https://github.com/buchgr/bazel-remote/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = lib.teams.bazel.members;
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix b/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
index 15854d524283..1761358c263e 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
@@ -73,11 +73,6 @@ let
     '' + lib.optionalString (stdenv.isDarwin) ''
         --cxxopt=-x --cxxopt=c++ \
         --host_cxxopt=-x --host_cxxopt=c++ \
-    '' + lib.optionalString (stdenv.cc.isClang && stdenv ? cc.libcxx.cxxabi.libName) ''
-        --linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
-        --host_linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --host_linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
     '' + lib.optionalString (stdenv.isDarwin && Foundation != null) ''
         --linkopt=-Wl,-F${Foundation}/Library/Frameworks \
         --linkopt=-L${darwin.libobjc}/lib \
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
index b3b161db42f5..92f4a52e028a 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
@@ -258,8 +258,6 @@ stdenv.mkDerivation rec {
 
   postPatch =
     let
-      # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
-      nixpkgs166205ldflag = lib.optionalString stdenv.cc.isClang "-l${stdenv.cc.libcxx.cxxabi.libName}";
       darwinPatches = ''
         bazelLinkFlags () {
           eval set -- "$NIX_LDFLAGS"
@@ -274,7 +272,7 @@ stdenv.mkDerivation rec {
 
         # Framework search paths aren't added by bintools hook
         # https://github.com/NixOS/nixpkgs/pull/41914
-        export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks -F${IOKit}/Library/Frameworks ${nixpkgs166205ldflag}"
+        export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks -F${IOKit}/Library/Frameworks"
 
         # libcxx includes aren't added by libcxx hook
         # https://github.com/NixOS/nixpkgs/pull/41589
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix b/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
index d50de32d4a3e..6658c0d5b0ed 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
@@ -157,11 +157,6 @@ let
         --javabase='@local_jdk//:jdk' \
     '' + lib.optionalString (stdenv.isDarwin) ''
         --cxxopt=-x --cxxopt=c++ --host_cxxopt=-x --host_cxxopt=c++ \
-    '' + lib.optionalString (stdenv.cc.isClang && stdenv ? cc.libcxx.cxxabi.libName) ''
-        --linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
-        --host_linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --host_linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
     '' + ''
 
     '';
diff --git a/pkgs/development/tools/build-managers/bear/default.nix b/pkgs/development/tools/build-managers/bear/default.nix
index 431f7b1773f6..0e8b20c7a9d4 100644
--- a/pkgs/development/tools/build-managers/bear/default.nix
+++ b/pkgs/development/tools/build-managers/bear/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool that generates a compilation database for clang tooling";
+    mainProgram = "bear";
     longDescription = ''
       Note: the bear command is very useful to generate compilation commands
       e.g. for YouCompleteMe.  You just enter your development nix-shell
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index e56344c40003..3870fa3f60a3 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     description = "A Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
+    mainProgram = "bloop";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kubukoz tomahna ];
   };
diff --git a/pkgs/development/tools/build-managers/bob/default.nix b/pkgs/development/tools/build-managers/bob/default.nix
index 97e67ce97798..6821dc19116f 100644
--- a/pkgs/development/tools/build-managers/bob/default.nix
+++ b/pkgs/development/tools/build-managers/bob/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A build system for microservices";
+    mainProgram = "bob";
     homepage = "https://bob.build";
     license = licenses.asl20;
     maintainers = with maintainers; [ zuzuleinen ];
diff --git a/pkgs/development/tools/build-managers/boot/default.nix b/pkgs/development/tools/build-managers/boot/default.nix
index 1590906206c1..dd296aa83188 100644
--- a/pkgs/development/tools/build-managers/boot/default.nix
+++ b/pkgs/development/tools/build-managers/boot/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Build tooling for Clojure";
+    mainProgram = "boot";
     homepage = "https://boot-clj.github.io/";
     license = licenses.epl10;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/tools/build-managers/buck/default.nix b/pkgs/development/tools/build-managers/buck/default.nix
index d283e1e321db..dff44f4cd240 100644
--- a/pkgs/development/tools/build-managers/buck/default.nix
+++ b/pkgs/development/tools/build-managers/buck/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://buck.build/";
     description = "A high-performance build tool";
+    mainProgram = "buck";
     maintainers = [ maintainers.jgertm maintainers.marsam ];
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/build-managers/buck2/default.nix b/pkgs/development/tools/build-managers/buck2/default.nix
index 20b1d184e8e1..3aad79ce1e58 100644
--- a/pkgs/development/tools/build-managers/buck2/default.nix
+++ b/pkgs/development/tools/build-managers/buck2/default.nix
@@ -38,7 +38,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # our version of buck2; this should be a git tag
-  version = "2024-01-15";
+  version = "2024-03-15";
 
   # the platform-specific, statically linked binary — which is also
   # zstd-compressed
@@ -63,7 +63,7 @@ let
   # tooling
   prelude-src =
     let
-      prelude-hash = "ccf6f5d1693cfa215b60212cf9863d27c6fd6a69";
+      prelude-hash = "c68a0e4b35928891e72df1738c890bfcb76a6174";
       name = "buck2-prelude-${version}.tar.gz";
       hash = buildHashes."_prelude";
       url = "https://github.com/facebook/buck2-prelude/archive/${prelude-hash}.tar.gz";
diff --git a/pkgs/development/tools/build-managers/buck2/hashes.json b/pkgs/development/tools/build-managers/buck2/hashes.json
index 687a2f585f02..280228e6f4e8 100644
--- a/pkgs/development/tools/build-managers/buck2/hashes.json
+++ b/pkgs/development/tools/build-managers/buck2/hashes.json
@@ -1,7 +1,7 @@
 { "_comment": "@generated by pkgs/development/tools/build-managers/buck2/update.sh"
-, "_prelude": "sha256-Bsd545xKass+Sua1sTFRNJgOokaHS62AKvhiLuqL58w="
-, "x86_64-linux": "sha256-Oxgz96x9INVDybJIRlBvIa76V7ngUxYh9Uo6Hdo/3pQ="
-, "x86_64-darwin": "sha256-tOlp6LKdQZg6TK2Ki8yf/e38Ibrx3fDrzOzC6bzGtrQ="
-, "aarch64-linux": "sha256-LmMbh/4tckZN1J8GJzMt8GyPmQbk3zc9DwXqJ004O7c="
-, "aarch64-darwin": "sha256-qsdHCxtJzu+UMVl1AcQh3cgDWQAITQNJEnfEN9A1W5M="
+, "_prelude": "sha256-PTetJetdpFU3bKLU1WESMwIEZox86IcrczvCxmaQzoE="
+, "x86_64-linux": "sha256-2vaKYCFRu2fNA/Nsu3HHT5DWtNeMnEfE8FVl7bat1HQ="
+, "x86_64-darwin": "sha256-zzB3sPOCDGWAb4CQO0yjb7Bph+ioi3cJoMYO/2YzXfU="
+, "aarch64-linux": "sha256-sx8rcADlfdAECL/SSHeB7vzxoedqx6+yT7yJp1qLBgM="
+, "aarch64-darwin": "sha256-GKQ8Xfe9iRpgq5SrM6nyyIPBh9gC25uN/vzGRjViQdQ="
 }
diff --git a/pkgs/development/tools/build-managers/build2/bdep.nix b/pkgs/development/tools/build-managers/build2/bdep.nix
index 904217e29d3a..90a58e4f1b51 100644
--- a/pkgs/development/tools/build-managers/build2/bdep.nix
+++ b/pkgs/development/tools/build-managers/build2/bdep.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "build2 project dependency manager";
+    mainProgram = "bdep";
     # https://build2.org/bdep/doc/bdep.xhtml
     longDescription = ''
       The build2 project dependency manager is used to manage the dependencies
diff --git a/pkgs/development/tools/build-managers/build2/bpkg.nix b/pkgs/development/tools/build-managers/build2/bpkg.nix
index 60b9d820ac2f..e395322df420 100644
--- a/pkgs/development/tools/build-managers/build2/bpkg.nix
+++ b/pkgs/development/tools/build-managers/build2/bpkg.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "build2 package dependency manager";
+    mainProgram = "bpkg";
     # https://build2.org/bpkg/doc/bpkg.xhtml
     longDescription = ''
       The build2 package dependency manager is used to manipulate build
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index 7226d4e3340a..a2f007a0fcf4 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -107,6 +107,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Decentralized and portable C/C++ package manager";
+    mainProgram = "conan";
     homepage = "https://conan.io";
     changelog = "https://github.com/conan-io/conan/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index 15954c61c15e..d815a9515dc6 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/development/tools/build-managers/dub/default.nix
@@ -149,6 +149,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Package and build manager for D applications and libraries";
+    mainProgram = "dub";
     homepage = "https://code.dlang.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ jtbx ];
diff --git a/pkgs/development/tools/build-managers/gn/generic.nix b/pkgs/development/tools/build-managers/gn/generic.nix
index bb72e4bb20b4..dab03ebfb758 100644
--- a/pkgs/development/tools/build-managers/gn/generic.nix
+++ b/pkgs/development/tools/build-managers/gn/generic.nix
@@ -1,6 +1,5 @@
 { stdenv, lib, fetchgit, darwin, writeText
 , ninja, python3
-, disable-warnings-if-gcc13
 , ...
 }:
 
@@ -18,7 +17,7 @@ let
     #endif  // OUT_LAST_COMMIT_POSITION_H_
   '';
 
-in disable-warnings-if-gcc13 (stdenv.mkDerivation {
+in stdenv.mkDerivation {
   pname = "gn-unstable";
   inherit version;
 
@@ -39,6 +38,8 @@ in disable-warnings-if-gcc13 (stdenv.mkDerivation {
     AppKit
   ]);
 
+  env.NIX_CFLAGS_COMPILE = "-Wno-error";
+
   buildPhase = ''
     python build/gen.py --no-last-commit-position
     ln -s ${lastCommitPosition} out/last_commit_position.h
@@ -53,9 +54,10 @@ in disable-warnings-if-gcc13 (stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A meta-build system that generates build files for Ninja";
+    mainProgram = "gn";
     homepage = "https://gn.googlesource.com/gn";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ stesie matthewbauer primeos ];
   };
-})
+}
diff --git a/pkgs/development/tools/build-managers/kati/default.nix b/pkgs/development/tools/build-managers/kati/default.nix
index ed5923e74d0a..dba8eb6381fa 100644
--- a/pkgs/development/tools/build-managers/kati/default.nix
+++ b/pkgs/development/tools/build-managers/kati/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "An experimental GNU make clone";
+    mainProgram = "ckati";
     homepage = "https://github.com/google/kati";
     platforms = platforms.all;
     license = licenses.asl20;
diff --git a/pkgs/development/tools/build-managers/knit/default.nix b/pkgs/development/tools/build-managers/knit/default.nix
index df2898239b78..6a2779cd7136 100644
--- a/pkgs/development/tools/build-managers/knit/default.nix
+++ b/pkgs/development/tools/build-managers/knit/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple and flexible build tool using Lua, similar to make/mk";
+    mainProgram = "knit";
     homepage = "https://github.com/zyedidia/knit";
     changelog = "https://github.com/zyedidia/knit/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/build-managers/mage/default.nix b/pkgs/development/tools/build-managers/mage/default.nix
index 2fdf1418f8ff..066bbef7d626 100644
--- a/pkgs/development/tools/build-managers/mage/default.nix
+++ b/pkgs/development/tools/build-managers/mage/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Make/Rake-like Build Tool Using Go";
+    mainProgram = "mage";
     homepage = "https://magefile.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ swdunlop ];
diff --git a/pkgs/development/tools/build-managers/mill/default.nix b/pkgs/development/tools/build-managers/mill/default.nix
index 4afc58bff65f..fc071b7e2122 100644
--- a/pkgs/development/tools/build-managers/mill/default.nix
+++ b/pkgs/development/tools/build-managers/mill/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
     homepage = "https://com-lihaoyi.github.io/mill/";
     license = licenses.mit;
     description = "A build tool for Scala, Java and more";
+    mainProgram = "mill";
     longDescription = ''
       Mill is a build tool borrowing ideas from modern tools like Bazel, to let you build
       your projects in a way that's simple, fast, and predictable. Mill has built in
diff --git a/pkgs/development/tools/build-managers/moon/default.nix b/pkgs/development/tools/build-managers/moon/default.nix
index b3261ee08f3b..192c7944fcd6 100644
--- a/pkgs/development/tools/build-managers/moon/default.nix
+++ b/pkgs/development/tools/build-managers/moon/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "moon";
-  version = "1.22.6";
+  version = "1.22.10";
 
   src = fetchFromGitHub {
     owner = "moonrepo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-xVjY9lrnNMFU97FLOQgwb/GKQNVtSBcFTY27KA0Iyns=";
+    hash = "sha256-BJ3Src412WS1uWt04OaRIjhtZt+8vh15Ve/+c2qZFdU=";
   };
 
-  cargoHash = "sha256-UHKRPb15H+91jmKyHy7OGiKfCCVVhir4aHITldAl0RA=";
+  cargoHash = "sha256-G/vZT/iOQtpr0gtT0pjRXIhhpPrjnR/kBg6fVAMuDB0=";
 
   env = {
     RUSTFLAGS = "-C strip=symbols";
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A task runner and repo management tool for the web ecosystem, written in Rust";
+    mainProgram = "moon";
     homepage = "https://github.com/moonrepo/moon";
     license = licenses.mit;
     maintainers = with maintainers; [ flemzord ];
diff --git a/pkgs/development/tools/build-managers/msbuild/default.nix b/pkgs/development/tools/build-managers/msbuild/default.nix
index 1b561470af79..1f5261649b85 100644
--- a/pkgs/development/tools/build-managers/msbuild/default.nix
+++ b/pkgs/development/tools/build-managers/msbuild/default.nix
@@ -150,6 +150,7 @@ EOF
 
   meta = with lib; {
     description = "Mono version of Microsoft Build Engine, the build platform for .NET, and Visual Studio";
+    mainProgram = "msbuild";
     homepage = "https://github.com/mono/msbuild";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix
index 7c2c79bf9e92..3402bcfca625 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/development/tools/build-managers/ninja/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Small build system with a focus on speed";
+    mainProgram = "ninja";
     longDescription = ''
       Ninja is a small build system with a focus on speed. It differs from
       other build systems in two major respects: it is designed to have its
diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix
index 2bdafa5fcfb0..b73553466cbb 100644
--- a/pkgs/development/tools/build-managers/rebar/default.nix
+++ b/pkgs/development/tools/build-managers/rebar/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/rebar/rebar";
     description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
+    mainProgram = "rebar";
 
     longDescription = ''
       rebar is a self-contained Erlang script, so it's easy to
diff --git a/pkgs/development/tools/build-managers/rebar3/default.nix b/pkgs/development/tools/build-managers/rebar3/default.nix
index b39a9537ee4c..0dd651a9d3f0 100644
--- a/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -53,6 +53,7 @@ let
     meta = {
       homepage = "https://github.com/rebar/rebar3";
       description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
+      mainProgram = "rebar3";
 
       longDescription = ''
         rebar is a self-contained Erlang script, so it's easy to distribute or
diff --git a/pkgs/development/tools/build-managers/redo-sh/default.nix b/pkgs/development/tools/build-managers/redo-sh/default.nix
index 093a825723c0..67dd66d8eeee 100644
--- a/pkgs/development/tools/build-managers/redo-sh/default.nix
+++ b/pkgs/development/tools/build-managers/redo-sh/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Redo implementation in Bourne Shell";
     homepage = "http://news.dieweltistgarnichtso.net/bin/redo-sh.html";
-    license  = licenses.agpl3;
+    license  = licenses.agpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/pkgs/development/tools/build-managers/remake/default.nix b/pkgs/development/tools/build-managers/remake/default.nix
index f2589c1e75c6..886034e4a270 100644
--- a/pkgs/development/tools/build-managers/remake/default.nix
+++ b/pkgs/development/tools/build-managers/remake/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "https://bashdb.sourceforge.net/remake/";
     license = lib.licenses.gpl3Plus;
     description = "GNU Make with comprehensible tracing and a debugger";
+    mainProgram = "remake";
     platforms = with lib.platforms; linux ++ darwin;
     maintainers = with lib.maintainers; [ bjornfor shamilton ];
   };
diff --git a/pkgs/development/tools/build-managers/sbt/scala-native.nix b/pkgs/development/tools/build-managers/sbt/scala-native.nix
index caa9feebb519..5dc5cf7eb3e0 100644
--- a/pkgs/development/tools/build-managers/sbt/scala-native.nix
+++ b/pkgs/development/tools/build-managers/sbt/scala-native.nix
@@ -7,8 +7,8 @@ sbt.overrideAttrs(previousAttrs: {
     wrapProgram $out/bin/sbt \
       --set CLANG_PATH      "${llvmPackages.clang}/bin/clang" \
       --set CLANGPP_PATH    "${llvmPackages.clang}/bin/clang" \
-      --set CPATH           "${lib.makeSearchPathOutput "dev" "include" [ re2 zlib boehmgc libunwind llvmPackages.libcxxabi llvmPackages.libcxx ]}/c++/v1" \
-      --set LIBRARY_PATH    "${lib.makeLibraryPath [ re2 zlib boehmgc libunwind llvmPackages.libcxxabi llvmPackages.libcxx ]}" \
-      --set NIX_CFLAGS_LINK "-lc++abi -lc++"
+      --set CPATH           "${lib.makeSearchPathOutput "dev" "include" [ re2 zlib boehmgc libunwind llvmPackages.libcxx ]}/c++/v1" \
+      --set LIBRARY_PATH    "${lib.makeLibraryPath [ re2 zlib boehmgc libunwind llvmPackages.libcxx ]}" \
+      --set NIX_CFLAGS_LINK "-lc++"
   '';
 })
diff --git a/pkgs/development/tools/build-managers/scala-cli/default.nix b/pkgs/development/tools/build-managers/scala-cli/default.nix
index 293607bf3d6b..5e2058899393 100644
--- a/pkgs/development/tools/build-managers/scala-cli/default.nix
+++ b/pkgs/development/tools/build-managers/scala-cli/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     description = "Command-line tool to interact with the Scala language";
+    mainProgram = "scala-cli";
     maintainers = [ maintainers.kubukoz ];
     inherit platforms;
   };
diff --git a/pkgs/development/tools/build-managers/shards/default.nix b/pkgs/development/tools/build-managers/shards/default.nix
index 721a70d22457..94e0bc9a2784 100644
--- a/pkgs/development/tools/build-managers/shards/default.nix
+++ b/pkgs/development/tools/build-managers/shards/default.nix
@@ -28,6 +28,7 @@ let
 
       meta = with lib; {
         description = "Dependency manager for the Crystal language";
+        mainProgram = "shards";
         license = licenses.asl20;
         maintainers = with maintainers; [ peterhoeg ];
         inherit (crystal.meta) homepage platforms;
diff --git a/pkgs/development/tools/build-managers/xmake/default.nix b/pkgs/development/tools/build-managers/xmake/default.nix
index 82d2fe7cf346..441ed8067cec 100644
--- a/pkgs/development/tools/build-managers/xmake/default.nix
+++ b/pkgs/development/tools/build-managers/xmake/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmake";
-  version = "2.8.8";
+  version = "2.8.9";
 
   src = fetchurl {
     url = "https://github.com/xmake-io/xmake/releases/download/v${version}/xmake-v${version}.tar.gz";
-    hash = "sha256-UJFlQJleO59K1xr3Gy0Zh751SkaNGzGZxE5CWyMv0KM=";
+    hash = "sha256-X3k8OTNG74Dkfwg63k08L9/ESGWKeRf9o1zNe9K5Ebg=";
   };
 
   nativeBuildInputs = [