diff options
Diffstat (limited to 'pkgs/development')
48 files changed, 352 insertions, 1454 deletions
diff --git a/pkgs/development/compilers/gcc/default.nix b/pkgs/development/compilers/gcc/default.nix index 0fe23000cc9..01f17251308 100644 --- a/pkgs/development/compilers/gcc/default.nix +++ b/pkgs/development/compilers/gcc/default.nix @@ -108,8 +108,8 @@ let inherit version; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.isMinGW; - stageNameAddon = if withoutTargetLibc then "stage-static" else "stage-final"; - crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-"; + stageNameAddon = optionalString withoutTargetLibc "-nolibc"; + crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}${stageNameAddon}-"; javaAwtGtk = langJava && x11Support; xlibs = [ diff --git a/pkgs/development/interpreters/python/catch_conflicts/catch_conflicts.py b/pkgs/development/interpreters/python/catch_conflicts/catch_conflicts.py index bb82900c65a..d5c99e64751 100644 --- a/pkgs/development/interpreters/python/catch_conflicts/catch_conflicts.py +++ b/pkgs/development/interpreters/python/catch_conflicts/catch_conflicts.py @@ -1,30 +1,34 @@ -import pkg_resources +from importlib.metadata import PathDistribution +from pathlib import Path import collections import sys + do_abort = False packages = collections.defaultdict(list) -for f in sys.path: - for req in pkg_resources.find_distributions(f): - if req not in packages[req.project_name]: - # some exceptions inside buildPythonPackage - if req.project_name in ['setuptools', 'pip', 'wheel']: - continue - packages[req.project_name].append(req) + +for path in sys.path: + for dist_info in Path(path).glob("*.dist-info"): + dist = PathDistribution(dist_info) + + packages[dist._normalized_name].append( + f"{dist._normalized_name} {dist.version} ({dist._path})" + ) for name, duplicates in packages.items(): if len(duplicates) > 1: do_abort = True print("Found duplicated packages in closure for dependency '{}': ".format(name)) - for dup in duplicates: - print(" " + repr(dup)) + for duplicate in duplicates: + print(f"\t{duplicate}") if do_abort: print("") print( - 'Package duplicates found in closure, see above. Usually this ' - 'happens if two packages depend on different version ' - 'of the same dependency.') + "Package duplicates found in closure, see above. Usually this " + "happens if two packages depend on different version " + "of the same dependency." + ) sys.exit(1) diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index 42244dabb0d..a907cda5f11 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -107,7 +107,7 @@ in { makePythonHook { name = "python-catch-conflicts-hook"; substitutions = { - inherit pythonInterpreter pythonSitePackages setuptools; + inherit pythonInterpreter pythonSitePackages; catchConflicts=../catch_conflicts/catch_conflicts.py; }; } ./python-catch-conflicts-hook.sh) {}; diff --git a/pkgs/development/libraries/glibc/0001-aarch64-math-vector.h-add-NVCC-include-guard.patch b/pkgs/development/libraries/glibc/0001-aarch64-math-vector.h-add-NVCC-include-guard.patch new file mode 100644 index 00000000000..234bc1943c9 --- /dev/null +++ b/pkgs/development/libraries/glibc/0001-aarch64-math-vector.h-add-NVCC-include-guard.patch @@ -0,0 +1,37 @@ +From 44d0a3a9bd8c6fe59f6ccb44206a50a900bfcf4a Mon Sep 17 00:00:00 2001 +From: Connor Baker <connor.baker@tweag.io> +Date: Tue, 31 Oct 2023 14:30:24 +0000 +Subject: [PATCH] aarch64/math-vector.h: add NVCC include guard + +--- + sysdeps/aarch64/fpu/bits/math-vector.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index 7c200599c1..583a426494 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -25,17 +25,17 @@ + /* Get default empty definitions for simd declarations. */ + #include <bits/libm-simd-decl-stubs.h> + +-#if __GNUC_PREREQ(9, 0) ++#if __GNUC_PREREQ(9, 0) && !defined(__CUDACC__) + # define __ADVSIMD_VEC_MATH_SUPPORTED + typedef __Float32x4_t __f32x4_t; + typedef __Float64x2_t __f64x2_t; +-#elif __glibc_clang_prereq(8, 0) ++#elif __glibc_clang_prereq(8, 0) && !defined(__CUDACC__) + # define __ADVSIMD_VEC_MATH_SUPPORTED + typedef __attribute__ ((__neon_vector_type__ (4))) float __f32x4_t; + typedef __attribute__ ((__neon_vector_type__ (2))) double __f64x2_t; + #endif + +-#if __GNUC_PREREQ(10, 0) || __glibc_clang_prereq(11, 0) ++#if (__GNUC_PREREQ(10, 0) || __glibc_clang_prereq(11, 0)) && !defined(__CUDACC__) + # define __SVE_VEC_MATH_SUPPORTED + typedef __SVFloat32_t __sv_f32_t; + typedef __SVFloat64_t __sv_f64_t; +-- +2.42.0 + diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 646242de611..3e17817c0ba 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -97,6 +97,18 @@ stdenv.mkDerivation ({ */ ./reenable_DT_HASH.patch ] + /* NVCC does not support ARM intrinsics. Since <math.h> is pulled in by almost + every HPC piece of software, without this patch CUDA compilation on ARM + is effectively broken. See + https://forums.developer.nvidia.com/t/nvcc-fails-to-build-with-arm-neon-instructions-cpp-vs-cu/248355/2. + */ + ++ ( + let + isAarch64 = stdenv.buildPlatform.isAarch64 || stdenv.hostPlatform.isAarch64; + isLinux = stdenv.buildPlatform.isLinux || stdenv.hostPlatform.isLinux; + in + lib.optional (isAarch64 && isLinux) ./0001-aarch64-math-vector.h-add-NVCC-include-guard.patch + ) ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch; @@ -276,7 +288,7 @@ stdenv.mkDerivation ({ license = licenses.lgpl2Plus; - maintainers = with maintainers; [ eelco ma27 ]; + maintainers = with maintainers; [ eelco ma27 connorbaker ]; platforms = platforms.linux; } // (args.meta or {}); }) diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix index 0cfe4c79458..4dec79e0e2d 100644 --- a/pkgs/development/libraries/gpgme/default.nix +++ b/pkgs/development/libraries/gpgme/default.nix @@ -26,11 +26,11 @@ let in stdenv.mkDerivation rec { pname = "gpgme"; - version = "1.22.0"; + version = "1.23.0"; src = fetchurl { url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2"; - hash = "sha256-lVHjcIGtO96BAYoNJPJFw/ggaZBUlZj7Mal6aDgKe3E="; + hash = "sha256-BD4u/hi0rSK5bUNN3nY/vtMs+NbCINxp3w0P+53Gb8Y="; }; patches = [ diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix index 84c3abd575c..daf3bad132d 100644 --- a/pkgs/development/libraries/grpc/default.nix +++ b/pkgs/development/libraries/grpc/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { pname = "grpc"; - version = "1.57.0"; # N.B: if you change this, please update: + version = "1.59.1"; # N.B: if you change this, please update: # pythonPackages.grpcio-tools # pythonPackages.grpcio-status @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { owner = "grpc"; repo = "grpc"; rev = "v${version}"; - hash = "sha256-ZPhPi4ODAAohCySVKeypaDID4ZUXvnfidOGK5EMXvh4="; + hash = "sha256-4bou7oFQOgyxjFqJdmiFT8xEMCsOap9v34W6SPrT4WQ="; fetchSubmodules = true; }; @@ -37,14 +37,8 @@ stdenv.mkDerivation rec { (fetchpatch { # armv6l support, https://github.com/grpc/grpc/pull/21341 name = "grpc-link-libatomic.patch"; - url = "https://github.com/lopsided98/grpc/commit/164f55260262c816e19cd2c41b564486097d62fe.patch"; - hash = "sha256-d6kMyjL5ZnEnEz4XZfRgXJBH53gp1r7q1tlwh+HM6+Y="; - }) - # Fix generated CMake config file - # FIXME: remove when merged - (fetchpatch { - url = "https://github.com/grpc/grpc/pull/33361/commits/117dc80eb43021dd5619023ef6d02d0d6ec7ae7a.patch"; - hash = "sha256-VBk3ZD5h9uOQVN0st+quUQK/wXqvfFNk8G8AN4f2MQo="; + url = "https://github.com/lopsided98/grpc/commit/a9b917666234f5665c347123d699055d8c2537b2.patch"; + hash = "sha256-Lm0GQsz/UjBbXXEE14lT0dcRzVmCKycrlrdBJj+KLu8="; }) ]; @@ -95,13 +89,12 @@ stdenv.mkDerivation rec { export LD_LIBRARY_PATH=$(pwd)''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ''; - env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " ( - lib.optionals stdenv.cc.isClang [ - "-Wno-error=unknown-warning-option" - ] ++ lib.optionals stdenv.isAarch64 [ - "-Wno-error=format-security" - ] - ); + env.NIX_CFLAGS_COMPILE = toString ([ + "-Wno-error" + ] ++ lib.optionals stdenv.isDarwin [ + # Workaround for https://github.com/llvm/llvm-project/issues/48757 + "-Wno-elaborated-enum-base" + ]); enableParallelBuilds = true; diff --git a/pkgs/development/libraries/libaom/default.nix b/pkgs/development/libraries/libaom/default.nix index 6be0370a177..c5e40babfd6 100644 --- a/pkgs/development/libraries/libaom/default.nix +++ b/pkgs/development/libraries/libaom/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, fetchzip, yasm, perl, cmake, pkg-config, python3 , enableButteraugli ? true, libjxl , enableVmaf ? true, libvmaf +, gitUpdater }: let @@ -8,11 +9,11 @@ let in stdenv.mkDerivation rec { pname = "libaom"; - version = "3.6.1"; + version = "3.7.0"; src = fetchzip { url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"; - sha256 = "sha256-U7hmKdpjTtqStM4UIjCvgJ2swpZ1x0Px1Q9+gSHbaeQ="; + hash = "sha256-Zf0g/CMI73O9Dkn9o7aIvwZ/8wh3lCmVY8nZaPwBp68="; stripRoot = false; }; @@ -64,6 +65,14 @@ stdenv.mkDerivation rec { outputs = [ "out" "bin" "dev" "static" ]; + passthru = { + updateScript = gitUpdater { + url = "https://aomedia.googlesource.com/aom"; + rev-prefix = "v"; + ignoredVersions = "(alpha|beta|rc).*"; + }; + }; + meta = with lib; { description = "Alliance for Open Media AV1 codec library"; longDescription = '' diff --git a/pkgs/development/libraries/libnsl/default.nix b/pkgs/development/libraries/libnsl/default.nix index 4f9d7d09caa..59e16071ce7 100644 --- a/pkgs/development/libraries/libnsl/default.nix +++ b/pkgs/development/libraries/libnsl/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "libnsl"; - version = "2.0.0"; + version = "2.0.1"; src = fetchFromGitHub { owner = "thkukuk"; repo = pname; rev = "v${version}"; - sha256 = "sha256-f9kNzzR8baf5mLgrh+bKO/rBRZA5ZYc1tJdyLE7Bi1w="; + sha256 = "sha256-bCToqXVE4RZcoZ2eTNZcVHyzKlWyIpSAssQCOZcfmEA="; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index cb8333704ff..9c1c8b422a9 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -2,6 +2,7 @@ , stdenv , fetchurl , buildPackages +, ncurses , pkg-config , abiVersion ? "6" , enableStatic ? stdenv.hostPlatform.isStatic @@ -48,20 +49,20 @@ stdenv.mkDerivation (finalAttrs: { "/usr/share/terminfo" # upstream default, probably all FHS-based distros "/run/current-system/sw/share/terminfo" # NixOS ]}" + ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "--with-build-cc=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" ]; # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris: CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED"; strictDeps = true; - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; nativeBuildInputs = [ pkg-config ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - buildPackages.ncurses + # for `tic`, build already depends on for build `cc` so it's weird the build doesn't just build `tic`. + ncurses ]; buildInputs = lib.optional (mouseSupport && stdenv.isLinux) gpm; diff --git a/pkgs/development/libraries/oniguruma/default.nix b/pkgs/development/libraries/oniguruma/default.nix index 3062c3cb4e1..a1a9dc87573 100644 --- a/pkgs/development/libraries/oniguruma/default.nix +++ b/pkgs/development/libraries/oniguruma/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "oniguruma"; - version = "6.9.8"; + version = "6.9.9"; # Note: do not use fetchpatch or fetchFromGitHub to keep this package available in __bootPackages src = fetchurl { url = "https://github.com/kkos/oniguruma/releases/download/v${version}/onig-${version}.tar.gz"; - sha256 = "sha256-KM1iwUZGI8eRBWX7HMqqAQSy/osSvNZG6B9ztHU1IT4="; + sha256 = "sha256-YBYr07n8b0iG1MegeSX/03QWdzL1Xc6MSRv9nNgYps8="; }; outputs = [ "dev" "lib" "out" ]; diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix index 05741652f46..3876a5c892a 100644 --- a/pkgs/development/libraries/pipewire/default.nix +++ b/pkgs/development/libraries/pipewire/default.nix @@ -81,7 +81,7 @@ let self = stdenv.mkDerivation rec { pname = "pipewire"; - version = "0.3.83"; + version = "0.3.84"; outputs = [ "out" @@ -97,7 +97,7 @@ let owner = "pipewire"; repo = "pipewire"; rev = version; - sha256 = "sha256-12g8/zLTCQkBtgwE6zt3yEDwcHCr2LQXJCjB1nqbmB0="; + sha256 = "sha256-9W9y+wtS/CYUaPRrCRmRDeyvuS1XllMBNQLy6GAMqBM="; }; patches = [ diff --git a/pkgs/development/libraries/re2/default.nix b/pkgs/development/libraries/re2/default.nix index c5f74854f77..a1a22fb38e4 100644 --- a/pkgs/development/libraries/re2/default.nix +++ b/pkgs/development/libraries/re2/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "re2"; - version = "2023-09-01"; + version = "2023-11-01"; src = fetchFromGitHub { owner = "google"; repo = "re2"; rev = version; - hash = "sha256-dCEkwjIs8ITVUZ4N0+qeGoShGNqKkdvJ88teyGKN6pg="; + hash = "sha256-cKXe8r5MUag/z+seem4Zg/gmqIQjaCY7DBxiKlrnXPs="; }; outputs = [ "out" "dev" ]; diff --git a/pkgs/development/libraries/s2n-tls/default.nix b/pkgs/development/libraries/s2n-tls/default.nix index 9c826aa4dde..73092a803d6 100644 --- a/pkgs/development/libraries/s2n-tls/default.nix +++ b/pkgs/development/libraries/s2n-tls/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "s2n-tls"; - version = "1.3.55"; + version = "1.3.56"; src = fetchFromGitHub { owner = "aws"; repo = pname; rev = "v${version}"; - hash = "sha256-d/h6vBqef4pE/6cb1bQboIXAAMRxdAALKHUVW07jOlE="; + hash = "sha256-VS/85qu0Dc3HSeD0DYm2f4ur+ZRPhb1Srf7BeK7Pdfk="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/python-modules/deal/default.nix b/pkgs/development/python-modules/deal/default.nix index 0333bb37ce3..13704b20939 100644 --- a/pkgs/development/python-modules/deal/default.nix +++ b/pkgs/development/python-modules/deal/default.nix @@ -77,13 +77,17 @@ buildPythonPackage rec { "test_scheme_contract_is_satisfied_when_setting_arg" "test_scheme_contract_is_satisfied_within_chain" "test_scheme_errors_rewrite_message" - # broken since pytest > 7.1.3 - "test_exception_hook" + # assert errors + "test_doctest" + "test_no_violations" ]; disabledTestPaths = [ # needs internet access "tests/test_runtime/test_offline.py" + # depends on typeguard <4.0.0 for tests, but >=4.0.0 seems fine for runtime + # https://github.com/life4/deal/blob/9be70fa1c5a0635880619b2cea83a9f6631eb236/pyproject.toml#L40 + "tests/test_testing.py" ]; pythonImportsCheck = [ "deal" ]; diff --git a/pkgs/development/python-modules/grpcio-health-checking/default.nix b/pkgs/development/python-modules/grpcio-health-checking/default.nix index ce1a78f02cf..4c028e4ec71 100644 --- a/pkgs/development/python-modules/grpcio-health-checking/default.nix +++ b/pkgs/development/python-modules/grpcio-health-checking/default.nix @@ -8,12 +8,12 @@ buildPythonPackage rec { pname = "grpcio-health-checking"; - version = "1.58.0"; + version = "1.59.0"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-B9WGI/J77PGGyGLLrn39elS9Y/SzdZTHfIuPyTPxHC8="; + hash = "sha256-4CIcpupsITlhQXmAi4+LMjA30LG977D8TN2agUmZVx4="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/grpcio-status/default.nix b/pkgs/development/python-modules/grpcio-status/default.nix index c03c1faa9d4..e7d6fd55095 100644 --- a/pkgs/development/python-modules/grpcio-status/default.nix +++ b/pkgs/development/python-modules/grpcio-status/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "grpcio-status"; - version = "1.58.0"; + version = "1.59.0"; format = "setuptools"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - hash = "sha256-C0LnDAQFpmqC2emGf6JV/lnmGJZKYJmyBWjDHdkJl2Y="; + hash = "sha256-+TucM+CiYWLvhDG/z/zD4fshfM2Ne1swYbbp+BPmmLU="; }; postPatch = '' diff --git a/pkgs/development/python-modules/grpcio-testing/default.nix b/pkgs/development/python-modules/grpcio-testing/default.nix index 904c0b24a0a..bb3024d4407 100644 --- a/pkgs/development/python-modules/grpcio-testing/default.nix +++ b/pkgs/development/python-modules/grpcio-testing/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "grpcio-testing"; - version = "1.58.0"; + version = "1.59.0"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-ABZMp+VTsyf2HE50cnHf9wdCOeGlAqpbuMWlbsWE/qY="; + hash = "sha256-YiqbhlOsyoAT/uYNPbLQK5c2T8cYGEDXVkAPIzCaOQ4="; }; postPatch = '' diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix index 285f3477dea..cd0b0abcb12 100644 --- a/pkgs/development/python-modules/grpcio-tools/default.nix +++ b/pkgs/development/python-modules/grpcio-tools/default.nix @@ -2,12 +2,12 @@ buildPythonPackage rec { pname = "grpcio-tools"; - version = "1.58.0"; + version = "1.59.0"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-b02AzrWR4xyk3O7HR9vlYTLhOSoKm7HI/gAdG1ysiYo="; + hash = "sha256-qkAY8thmKsTZgwRF09JToRs+CW6K/iCGVUcTeqEWDpM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/icontract/default.nix b/pkgs/development/python-modules/icontract/default.nix index 77565311efb..76e1814dddd 100644 --- a/pkgs/development/python-modules/icontract/default.nix +++ b/pkgs/development/python-modules/icontract/default.nix @@ -50,6 +50,13 @@ buildPythonPackage rec { # mypy decorator checks don't pass. For some reason mypy # doesn't check the python file provided in the test. "tests/test_mypy_decorators.py" + # those tests seems to simply re-run some typeguard tests + "tests/test_typeguard.py" + ]; + + pytestFlagsArray = [ + # RuntimeWarning: coroutine '*' was never awaited + "-W" "ignore::RuntimeWarning" ]; pythonImportsCheck = [ "icontract" ]; diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix index 49125a286e9..41789a796dd 100644 --- a/pkgs/development/python-modules/mocket/default.nix +++ b/pkgs/development/python-modules/mocket/default.nix @@ -1,37 +1,51 @@ { lib -, aiohttp -, asgiref , buildPythonPackage +, fetchPypi +, pythonOlder +, stdenv + +# build-system +, hatchling + +# dependencies , decorator +, httptools +, python-magic +, urllib3 + +# optional-dependencies +, xxhash +, pook + +# tests +, aiohttp +, asgiref , fastapi -, fetchPypi , gevent -, httptools , httpx -, isPy3k -, pook -, pytest-mock +, pytest-asyncio , pytestCheckHook -, python-magic -, pythonOlder , redis +, redis-server , requests , sure -, urllib3 + }: buildPythonPackage rec { pname = "mocket"; - version = "3.11.1"; - format = "setuptools"; - - disabled = pythonOlder "3.7"; + version = "3.12.0"; + pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-sEPLUN9nod4AKYcoCNQZ4FBblUCLCPV1dFOrNC6xDWo="; + hash = "sha256-brvBWwTWT2F/usVBRr7wz9L0kct4X1Fddl4mu5LUENA="; }; + nativeBuildInputs = [ + hatchling + ]; + propagatedBuildInputs = [ decorator httptools @@ -43,52 +57,58 @@ buildPythonPackage rec { pook = [ pook ]; + speedups = [ + xxhash + ]; }; nativeCheckInputs = [ - aiohttp asgiref fastapi gevent httpx - pytest-mock + pytest-asyncio pytestCheckHook redis requests sure - ] ++ passthru.optional-dependencies.pook; + ] ++ lib.optionals (pythonOlder "3.12") [ + aiohttp + ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); - # Skip http tests - SKIP_TRUE_HTTP = true; + preCheck = lib.optionalString stdenv.isLinux '' + ${redis-server}/bin/redis-server & + REDIS_PID=$! + ''; - disabledTestPaths = [ - # Requires a live Redis instance - "tests/main/test_redis.py" - ]; + postCheck = lib.optionalString stdenv.isLinux '' + kill $REDIS_PID + ''; + + # Skip http tests, they require network access + env.SKIP_TRUE_HTTP = true; + + _darwinAllowLocalNetworking = true; disabledTests = [ # tests that require network access (like DNS lookups) - "test_truesendall" - "test_truesendall_with_chunk_recording" - "test_truesendall_with_gzip_recording" - "test_truesendall_with_recording" - "test_wrongpath_truesendall" "test_truesendall_with_dump_from_recording" - "test_truesendall_with_recording_https" - "test_truesendall_after_mocket_session" - "test_real_request_session" "test_asyncio_record_replay" "test_gethostbyname" ]; + disabledTestPaths = lib.optionals stdenv.isDarwin [ + "tests/main/test_redis.py" + ]; + pythonImportsCheck = [ "mocket" ]; meta = with lib; { + changelog = "https://github.com/mindflayer/python-mocket/releases/tag/${version}"; description = "A socket mock framework for all kinds of sockets including web-clients"; homepage = "https://github.com/mindflayer/python-mocket"; - changelog = "https://github.com/mindflayer/python-mocket/releases/tag/${version}"; license = licenses.bsd3; maintainers = with maintainers; [ hexa ]; }; diff --git a/pkgs/development/python-modules/pytest-datadir/default.nix b/pkgs/development/python-modules/pytest-datadir/default.nix index bca05a0010a..90b7e6f55e2 100644 --- a/pkgs/development/python-modules/pytest-datadir/default.nix +++ b/pkgs/development/python-modules/pytest-datadir/default.nix @@ -1,30 +1,41 @@ { lib , buildPythonPackage +, pythonOlder , fetchFromGitHub +, setuptools , setuptools-scm , pytestCheckHook }: buildPythonPackage rec { pname = "pytest-datadir"; - version = "1.4.1"; + version = "1.5.0"; format = "pyproject"; + disabled = pythonOlder "3.8"; + src = fetchFromGitHub { owner = "gabrielcnr"; repo = "pytest-datadir"; - rev = "refs/tags/${version}"; - hash = "sha256-HyJ0rU1nHqRv8SHFS8m3GZ5409+JZIkoDgIVjy4ol54="; + rev = "refs/tags/v${version}"; + hash = "sha256-sRLqL+8Jf5Kz+qscuG3hClUuPA+33PQa+ob1ht/7CJE="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; - nativeBuildInputs = [ setuptools-scm ]; + + nativeBuildInputs = [ + setuptools + setuptools-scm + ]; + nativeCheckInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "pytest_datadir" ]; meta = with lib; { description = "Pytest plugin for manipulating test data directories and files"; homepage = "https://github.com/gabrielcnr/pytest-datadir"; + changelog = "https://github.com/gabrielcnr/pytest-datadir/blob/v${version}/CHANGELOG.rst"; license = licenses.mit; maintainers = with maintainers; [ kira-bruneau ]; }; diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix index d557bcf15e9..a00b59c425b 100644 --- a/pkgs/development/python-modules/pytest/default.nix +++ b/pkgs/development/python-modules/pytest/default.nix @@ -3,10 +3,10 @@ , callPackage , pythonOlder , fetchPypi -, isPyPy , writeText # build +, setuptools , setuptools-scm # propagates @@ -21,12 +21,12 @@ buildPythonPackage rec { pname = "pytest"; - version = "7.4.2"; - format = "pyproject"; + version = "7.4.3"; + pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-p2YlnPq1ZKKtUssarhuIGnXD6340yjd5aXwj7UfEcGk="; + hash = "sha256-2YnRNpgt5OOynavMg4rVgcZOjtUsEfvobd69naCBjNU="; }; outputs = [ @@ -35,6 +35,7 @@ buildPythonPackage rec { ]; nativeBuildInputs = [ + setuptools setuptools-scm ]; diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix index 7fd258e9123..23e3bdc5b54 100644 --- a/pkgs/development/python-modules/typeguard/default.nix +++ b/pkgs/development/python-modules/typeguard/default.nix @@ -54,8 +54,12 @@ buildPythonPackage rec { ]; disabledTests = [ - # not compatible with python3.10 - "test_typed_dict" + # AssertionError: 'type of argument "x" must be ' != 'None' + "TestPrecondition::test_precondition_ok_and_typeguard_fails" + # AttributeError: 'C' object has no attribute 'x' + "TestInvariant::test_invariant_ok_and_typeguard_fails" + # AttributeError: 'D' object has no attribute 'x' + "TestInheritance::test_invariant_ok_and_typeguard_fails" ]; meta = with lib; { diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix index a43520ecb4b..c8046b68cd9 100644 --- a/pkgs/development/tools/analysis/valgrind/default.nix +++ b/pkgs/development/tools/analysis/valgrind/default.nix @@ -6,11 +6,11 @@ stdenv.mkDerivation rec { pname = "valgrind"; - version = "3.21.0"; + version = "3.22.0"; src = fetchurl { url = "https://sourceware.org/pub/${pname}/${pname}-${version}.tar.bz2"; - hash = "sha256-EM4WGLs+M/rRbreVUrCj4SEXYkSKDX/OEcimJDuayXE="; + hash = "sha256-yBHbWt0sX3KZRMr0fE56Zdyqu5Rh5HK1eHZd179tLUw="; }; patches = [ diff --git a/pkgs/development/tools/build-managers/cmake/001-search-path.diff b/pkgs/development/tools/build-managers/cmake/001-search-path.diff deleted file mode 100644 index 04ab0847a70..00000000000 --- a/pkgs/development/tools/build-managers/cmake/001-search-path.diff +++ /dev/null @@ -1,95 +0,0 @@ -diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake -index b9381c3d7d..5e944640b5 100644 ---- a/Modules/Platform/UnixPaths.cmake -+++ b/Modules/Platform/UnixPaths.cmake -@@ -26,9 +26,6 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) - # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst - # synchronized - list(APPEND CMAKE_SYSTEM_PREFIX_PATH -- # Standard -- /usr/local /usr / -- - # CMake install location - "${_CMAKE_INSTALL_DIR}" - ) -@@ -47,48 +44,49 @@ endif() - - # Non "standard" but common install prefixes - list(APPEND CMAKE_SYSTEM_PREFIX_PATH -- /usr/X11R6 -- /usr/pkg -- /opt - ) - - # List common include file locations not under the common prefixes. -+if(DEFINED ENV{NIX_CC} -+ AND IS_DIRECTORY "$ENV{NIX_CC}" -+ AND EXISTS "$ENV{NIX_CC}/nix-support/orig-libc" -+ AND EXISTS "$ENV{NIX_CC}/nix-support/orig-libc-dev") -+ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc" _nix_cmake_libc) -+ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc-dev" _nix_cmake_libc_dev) -+else() -+ set(_nix_cmake_libc @libc_lib@) -+ set(_nix_cmake_libc_dev @libc_dev@) -+endif() -+ - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH -- # X11 -- /usr/include/X11 -+ "${_nix_cmake_libc_dev}/include" - ) - - list(APPEND CMAKE_SYSTEM_LIBRARY_PATH -- # X11 -- /usr/lib/X11 -+ "${_nix_cmake_libc}/lib" - ) - - list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES -- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 -+ "${_nix_cmake_libc}/lib" - ) - --if(CMAKE_SYSROOT_COMPILE) -- set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}") --else() -- set(_cmake_sysroot_compile "${CMAKE_SYSROOT}") --endif() -- - # Default per-language values. These may be later replaced after - # parsing the implicit directory information from compiler output. - set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - --unset(_cmake_sysroot_compile) -+unset(_nix_cmake_libc) -+unset(_nix_cmake_libc_dev) - - # Reminder when adding new locations computed from environment variables - # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst -diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake -index b9e2f17979..ab517cd4a7 100644 ---- a/Modules/Platform/WindowsPaths.cmake -+++ b/Modules/Platform/WindowsPaths.cmake -@@ -70,7 +70,7 @@ endif() - - if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set) -- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) -+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) - endif() - - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH diff --git a/pkgs/development/tools/build-managers/cmake/002-application-services.diff b/pkgs/development/tools/build-managers/cmake/002-application-services.diff deleted file mode 100644 index 56f7cd266b7..00000000000 --- a/pkgs/development/tools/build-managers/cmake/002-application-services.diff +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur cmake-3.25.1-old/Source/CMakeLists.txt cmake-3.25.1-new/Source/CMakeLists.txt ---- cmake-3.25.1-old/Source/CMakeLists.txt 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Source/CMakeLists.txt 2022-12-19 01:00:08.412064304 -0300 -@@ -916,7 +916,6 @@ - # On Apple we need CoreFoundation and CoreServices - if(APPLE) - target_link_libraries(CMakeLib PUBLIC "-framework CoreFoundation") -- target_link_libraries(CMakeLib PUBLIC "-framework CoreServices") - endif() - - if(WIN32 AND NOT UNIX) -diff -Naur cmake-3.25.1-old/Source/cmGlobalXCodeGenerator.cxx cmake-3.25.1-new/Source/cmGlobalXCodeGenerator.cxx ---- cmake-3.25.1-old/Source/cmGlobalXCodeGenerator.cxx 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Source/cmGlobalXCodeGenerator.cxx 2022-12-19 01:00:56.065135169 -0300 -@@ -56,10 +56,6 @@ - - #if !defined(CMAKE_BOOTSTRAP) && defined(__APPLE__) - # include <CoreFoundation/CoreFoundation.h> --# if !TARGET_OS_IPHONE --# define HAVE_APPLICATION_SERVICES --# include <ApplicationServices/ApplicationServices.h> --# endif - #endif - - #if !defined(CMAKE_BOOTSTRAP) -diff -Naur cmake-3.25.1-old/Utilities/cmlibarchive/CMakeLists.txt cmake-3.25.1-new/Utilities/cmlibarchive/CMakeLists.txt ---- cmake-3.25.1-old/Utilities/cmlibarchive/CMakeLists.txt 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Utilities/cmlibarchive/CMakeLists.txt 2022-12-19 01:01:43.392205981 -0300 -@@ -2041,10 +2041,6 @@ - ADD_CUSTOM_TARGET(run_all_tests) - ENDIF(ENABLE_TEST) - --# We need CoreServices on Mac OS. --IF(APPLE) -- LIST(APPEND ADDITIONAL_LIBS "-framework CoreServices") --ENDIF(APPLE) - - add_subdirectory(libarchive) - IF(0) # CMake does not build libarchive's command-line tools. diff --git a/pkgs/development/tools/build-managers/cmake/003-libuv-application-services.diff b/pkgs/development/tools/build-managers/cmake/003-libuv-application-services.diff deleted file mode 100644 index 6607a9c6ed1..00000000000 --- a/pkgs/development/tools/build-managers/cmake/003-libuv-application-services.diff +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt -index 7625cf65d9..167903e309 100644 ---- a/Utilities/cmlibuv/CMakeLists.txt -+++ b/Utilities/cmlibuv/CMakeLists.txt -@@ -193,6 +193,22 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - src/unix/kqueue.c - src/unix/proctitle.c - ) -+ -+ include(CheckIncludeFile) -+ -+ check_include_file("ApplicationServices/ApplicationServices.h" HAVE_ApplicationServices) -+ if (HAVE_ApplicationServices) -+ list(APPEND uv_defines -+ HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H=1 -+ ) -+ endif() -+ -+ check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices) -+ if (HAVE_CoreServices) -+ list(APPEND uv_defines -+ HAVE_CORESERVICES_CORESERVICES_H=1 -+ ) -+ endif() - endif() - - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") -diff --git a/Utilities/cmlibuv/src/unix/fsevents.c b/Utilities/cmlibuv/src/unix/fsevents.c -index a51f29b3f6..3f6bf01968 100644 ---- a/Utilities/cmlibuv/src/unix/fsevents.c -+++ b/Utilities/cmlibuv/src/unix/fsevents.c -@@ -21,7 +21,7 @@ - #include "uv.h" - #include "internal.h" - --#if TARGET_OS_IPHONE || MAC_OS_X_VERSION_MAX_ALLOWED < 1070 -+#if !HAVE_CORESERVICES_CORESERVICES_H || MAC_OS_X_VERSION_MAX_ALLOWED < 1070 - - /* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */ - /* macOS prior to 10.7 doesn't provide the full FSEvents API so use kqueue */ -@@ -39,7 +39,7 @@ int uv__fsevents_close(uv_fs_event_t* handle) { - void uv__fsevents_loop_delete(uv_loop_t* loop) { - } - --#else /* TARGET_OS_IPHONE */ -+#else /* !HAVE_CORESERVICES_CORESERVICES_H */ - - #include "darwin-stub.h" - -@@ -920,4 +920,4 @@ int uv__fsevents_close(uv_fs_event_t* handle) { - return 0; - } - --#endif /* TARGET_OS_IPHONE */ -+#endif /* !HAVE_CORESERVICES_CORESERVICES_H */ diff --git a/pkgs/development/tools/build-managers/cmake/004-cygwin.diff b/pkgs/development/tools/build-managers/cmake/004-cygwin.diff deleted file mode 100644 index 982aba17e87..00000000000 --- a/pkgs/development/tools/build-managers/cmake/004-cygwin.diff +++ /dev/null @@ -1,274 +0,0 @@ ---- cmake-3.2.2/Source/cmFileCommand.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/ccmFileCommand.cxx 2015-06-10 11:02:27.345598700 +0200 -@@ -1179,7 +1179,7 @@ - MatchProperties CollectMatchProperties(const char* file) - { - // Match rules are case-insensitive on some platforms. --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - std::string lower = cmSystemTools::LowerCase(file); - const char* file_to_match = lower.c_str(); - #else ---- cmake-3.2.2/Source/cmInstallCommand.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/cmInstallCommand.cxx 2015-06-10 11:04:19.257935200 +0200 -@@ -1138,7 +1138,7 @@ - { - literal_args += " REGEX \""; - // Match rules are case-insensitive on some platforms. --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - std::string regex = cmSystemTools::LowerCase(args[i]); - #else - std::string regex = args[i]; ---- cmake-3.2.2/Source/kwsys/Glob.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/Glob.cxx 2015-06-10 11:05:51.602674000 +0200 -@@ -37,7 +37,7 @@ - #include <string.h> - namespace KWSYS_NAMESPACE - { --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - // On Windows and apple, no difference between lower and upper case - # define KWSYS_GLOB_CASE_INDEPENDENT - #endif ---- cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-06-10 11:13:00.308303500 +0200 -@@ -911,7 +911,7 @@ - // Hide implementation details in an anonymous namespace. - namespace { - // ***************************************************************************** --#if defined(__linux) || defined(__APPLE__) -+#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) - int LoadLines( - FILE *file, - kwsys_stl::vector<kwsys_stl::string> &lines) -@@ -947,7 +947,7 @@ - return nRead; - } - --# if defined(__linux) -+# if defined(__linux) || defined(__CYGWIN__) - // ***************************************************************************** - int LoadLines( - const char *fileName, -@@ -986,7 +986,7 @@ - } - #endif - --#if defined(__linux) -+#if defined(__linux) || defined(__CYGWIN__) - // **************************************************************************** - template<typename T> - int GetFieldsFromFile( -@@ -3132,7 +3132,6 @@ - pos = buffer.find("processor\t",pos+1); - } - --#ifdef __linux - // Find the largest physical id. - int maxId = -1; - kwsys_stl::string idc = -@@ -3165,14 +3164,6 @@ - atoi(this->ExtractValueFromCpuInfoFile(buffer,"ncpus active").c_str()); - } - --#else // __CYGWIN__ -- // does not have "physical id" entries, neither "cpu cores" -- // this has to be fixed for hyper-threading. -- kwsys_stl::string cpucount = -- this->ExtractValueFromCpuInfoFile(buffer,"cpu count"); -- this->NumberOfPhysicalCPU= -- this->NumberOfLogicalCPU = atoi(cpucount.c_str()); --#endif - // gotta have one, and if this is 0 then we get a / by 0n - // better to have a bad answer than a crash - if(this->NumberOfPhysicalCPU <= 0) -@@ -3370,7 +3361,7 @@ - GlobalMemoryStatusEx(&statex); - return statex.ullTotalPhys/1024; - # endif --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - SystemInformation::LongLong memTotal=0; - int ierr=GetFieldFromFile("/proc/meminfo","MemTotal:",memTotal); - if (ierr) -@@ -3501,7 +3492,7 @@ - GlobalMemoryStatusEx(&statex); - return (statex.ullTotalPhys - statex.ullAvailPhys)/1024; - # endif --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - const char *names[3]={"MemTotal:","MemFree:",NULL}; - SystemInformation::LongLong values[2]={SystemInformation::LongLong(0)}; - int ierr=GetFieldsFromFile("/proc/meminfo",names,values); -@@ -3560,7 +3551,7 @@ - return -2; - } - return pmc.WorkingSetSize/1024; --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - SystemInformation::LongLong memUsed=0; - int ierr=GetFieldFromFile("/proc/self/status","VmRSS:",memUsed); - if (ierr) -@@ -3612,7 +3603,7 @@ - { - #if defined(_WIN32) - return GetCurrentProcessId(); --#elif defined(__linux) || defined(__APPLE__) -+#elif defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) - return getpid(); - #else - return -1; ---- cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-06-10 11:21:58.980443200 +0200 -@@ -93,19 +93,12 @@ - # if defined(_MSC_VER) && _MSC_VER >= 1800 - # define KWSYS_WINDOWS_DEPRECATED_GetVersionEx - # endif --#elif defined (__CYGWIN__) --# include <windows.h> --# undef _WIN32 - #endif - - #if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H - extern char **environ; - #endif - --#ifdef __CYGWIN__ --# include <sys/cygwin.h> --#endif -- - // getpwnam doesn't exist on Windows and Cray Xt3/Catamount - // same for TIOCGWINSZ - #if defined(_WIN32) || defined (__LIBCATAMOUNT__) -@@ -1148,15 +1141,7 @@ - { - return false; - } --#if defined(__CYGWIN__) -- // Convert filename to native windows path if possible. -- char winpath[MAX_PATH]; -- if(SystemTools::PathCygwinToWin32(filename.c_str(), winpath)) -- { -- return (GetFileAttributesA(winpath) != INVALID_FILE_ATTRIBUTES); -- } -- return access(filename.c_str(), R_OK) == 0; --#elif defined(_WIN32) -+#if defined(_WIN32) - return (GetFileAttributesW( - SystemTools::ConvertToWindowsExtendedPath(filename).c_str()) - != INVALID_FILE_ATTRIBUTES); -@@ -1190,28 +1175,6 @@ - } - - //---------------------------------------------------------------------------- --#ifdef __CYGWIN__ --bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path) --{ -- SystemToolsTranslationMap::iterator i = -- SystemTools::Cyg2Win32Map->find(path); -- -- if (i != SystemTools::Cyg2Win32Map->end()) -- { -- strncpy(win32_path, i->second.c_str(), MAX_PATH); -- } -- else -- { -- if(cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, MAX_PATH) != 0) -- { -- win32_path[0] = 0; -- } -- SystemToolsTranslationMap::value_type entry(path, win32_path); -- SystemTools::Cyg2Win32Map->insert(entry); -- } -- return win32_path[0] != 0; --} --#endif - - bool SystemTools::Touch(const kwsys_stl::string& filename, bool create) - { -@@ -4307,7 +4270,7 @@ - - bool SystemTools::FileIsFullPath(const char* in_name, size_t len) - { --#if defined(_WIN32) || defined(__CYGWIN__) -+#if defined(_WIN32) - // On Windows, the name must be at least two characters long. - if(len < 2) - { -@@ -5078,9 +5041,6 @@ - static unsigned int SystemToolsManagerCount; - SystemToolsTranslationMap *SystemTools::TranslationMap; - SystemToolsTranslationMap *SystemTools::LongPathMap; --#ifdef __CYGWIN__ --SystemToolsTranslationMap *SystemTools::Cyg2Win32Map; --#endif - - // SystemToolsManager manages the SystemTools singleton. - // SystemToolsManager should be included in any translation unit -@@ -5126,9 +5086,6 @@ - // Allocate the translation map first. - SystemTools::TranslationMap = new SystemToolsTranslationMap; - SystemTools::LongPathMap = new SystemToolsTranslationMap; --#ifdef __CYGWIN__ -- SystemTools::Cyg2Win32Map = new SystemToolsTranslationMap; --#endif - - // Add some special translation paths for unix. These are not added - // for windows because drive letters need to be maintained. Also, -@@ -5183,9 +5140,6 @@ - { - delete SystemTools::TranslationMap; - delete SystemTools::LongPathMap; --#ifdef __CYGWIN__ -- delete SystemTools::Cyg2Win32Map; --#endif - } - - ---- cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-06-10 11:24:24.271286600 +0200 -@@ -298,15 +298,6 @@ - static bool FileExists(const kwsys_stl::string& filename); - - /** -- * Converts Cygwin path to Win32 path. Uses dictionary container for -- * caching and calls to cygwin_conv_to_win32_path from Cygwin dll -- * for actual translation. Returns true on success, else false. -- */ --#ifdef __CYGWIN__ -- static bool PathCygwinToWin32(const char *path, char *win32_path); --#endif -- -- /** - * Return file length - */ - static unsigned long FileLength(const kwsys_stl::string& filename); -@@ -942,9 +933,6 @@ - */ - static SystemToolsTranslationMap *TranslationMap; - static SystemToolsTranslationMap *LongPathMap; --#ifdef __CYGWIN__ -- static SystemToolsTranslationMap *Cyg2Win32Map; --#endif - friend class SystemToolsManager; - }; - ---- cmake-3.2.2/Modules/FindCurses.cmake 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Modules/FindCurses.cmake 2015-06-10 12:10:19.682030300 +0200 -@@ -60,15 +60,6 @@ - if(CURSES_NCURSES_LIBRARY AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES)) - set(CURSES_USE_NCURSES TRUE) - endif() --# http://cygwin.com/ml/cygwin-announce/2010-01/msg00002.html --# cygwin ncurses stopped providing curses.h symlinks see above --# message. Cygwin is an ncurses package, so force ncurses on --# cygwin if the curses.h is missing --if(CYGWIN) -- if(NOT EXISTS /usr/include/curses.h) -- set(CURSES_USE_NCURSES TRUE) -- endif() --endif() - - - # Not sure the logic is correct here. diff --git a/pkgs/development/tools/build-managers/cmake/005-remove-systemconfiguration-dep.diff b/pkgs/development/tools/build-managers/cmake/005-remove-systemconfiguration-dep.diff deleted file mode 100644 index 76aa91cff92..00000000000 --- a/pkgs/development/tools/build-managers/cmake/005-remove-systemconfiguration-dep.diff +++ /dev/null @@ -1,67 +0,0 @@ ---- a/Utilities/cmcurl/CMakeLists.txt -+++ b/Utilities/cmcurl/CMakeLists.txt -@@ -391,13 +391,6 @@ if(ENABLE_IPV6 AND NOT WIN32) - - if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT ENABLE_ARES) - set(use_core_foundation ON) -- -- find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration") -- if(NOT SYSTEMCONFIGURATION_FRAMEWORK) -- message(FATAL_ERROR "SystemConfiguration framework not found") -- endif() -- -- list(APPEND CURL_LIBS "-framework SystemConfiguration") - endif() - endif() - ---- a/Utilities/cmcurl/lib/curl_setup.h -+++ b/Utilities/cmcurl/lib/curl_setup.h -@@ -257,11 +257,7 @@ - * performing this task will result in a synthesized IPv6 address. - */ - #if defined(__APPLE__) && !defined(USE_ARES) --#include <TargetConditionals.h> - #define USE_RESOLVE_ON_IPS 1 --# if defined(TARGET_OS_OSX) && TARGET_OS_OSX --# define CURL_OSX_CALL_COPYPROXIES 1 --# endif - #endif - - #ifdef USE_LWIPSOCK ---- a/Utilities/cmcurl/lib/hostip.c -+++ b/Utilities/cmcurl/lib/hostip.c -@@ -68,10 +68,6 @@ - #include "curl_memory.h" - #include "memdebug.h" - --#if defined(ENABLE_IPV6) && defined(CURL_OSX_CALL_COPYPROXIES) --#include <SystemConfiguration/SCDynamicStoreCopySpecific.h> --#endif -- - #if defined(CURLRES_SYNCH) && \ - defined(HAVE_ALARM) && defined(SIGALRM) && defined(HAVE_SIGSETJMP) - /* alarm-based timeouts can only be used with all the dependencies satisfied */ -@@ -661,23 +657,6 @@ enum resolve_t Curl_resolv(struct Curl_easy *data, - return CURLRESOLV_ERROR; - } - --#if defined(ENABLE_IPV6) && defined(CURL_OSX_CALL_COPYPROXIES) -- { -- /* -- * The automagic conversion from IPv4 literals to IPv6 literals only -- * works if the SCDynamicStoreCopyProxies system function gets called -- * first. As Curl currently doesn't support system-wide HTTP proxies, we -- * therefore don't use any value this function might return. -- * -- * This function is only available on a macOS and is not needed for -- * IPv4-only builds, hence the conditions above. -- */ -- CFDictionaryRef dict = SCDynamicStoreCopyProxies(NULL); -- if(dict) -- CFRelease(dict); -- } --#endif -- - #ifndef USE_RESOLVE_ON_IPS - /* First check if this is an IPv4 address string */ - if(Curl_inet_pton(AF_INET, hostname, &in) > 0) diff --git a/pkgs/development/tools/build-managers/cmake/006-darwin-always-set-runtime-c-flag.diff b/pkgs/development/tools/build-managers/cmake/006-darwin-always-set-runtime-c-flag.diff deleted file mode 100644 index dc10e6b3423..00000000000 --- a/pkgs/development/tools/build-managers/cmake/006-darwin-always-set-runtime-c-flag.diff +++ /dev/null @@ -1,14 +0,0 @@ -Revert of commit 1af23c4de2c7d58c06171d70b37794b5c860d5f4. ---- b/Modules/Platform/Darwin.cmake -+++ a/Modules/Platform/Darwin.cmake -@@ -47,9 +47,7 @@ - set(CMAKE_SHARED_MODULE_SUFFIX ".so") - set(CMAKE_MODULE_EXISTS 1) - set(CMAKE_DL_LIBS "") -+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") --if(NOT "${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5") -- set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") --endif() - - foreach(lang C CXX OBJC OBJCXX) - set(CMAKE_${lang}_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") diff --git a/pkgs/development/tools/build-managers/cmake/check-pc-files-hook.sh b/pkgs/development/tools/build-managers/cmake/check-pc-files-hook.sh deleted file mode 100644 index 94d1b7b5355..00000000000 --- a/pkgs/development/tools/build-managers/cmake/check-pc-files-hook.sh +++ /dev/null @@ -1,18 +0,0 @@ -cmakePcfileCheckPhase() { - while IFS= read -rd $'\0' file; do - grepout=$(grep --line-number '}//nix/store' "$file" || true) - if [ -n "$grepout" ]; then - { - echo "Broken paths found in a .pc file! $file" - echo "The following lines have issues (specifically '//' in paths)." - echo "$grepout" - echo "It is very likely that paths are being joined improperly." - echo 'ex: "${prefix}/@CMAKE_INSTALL_LIBDIR@" should be "@CMAKE_INSTALL_FULL_LIBDIR@"' - echo "Please see https://github.com/NixOS/nixpkgs/issues/144170 for more details." - exit 1 - } 1>&2 - fi - done < <(find "${!outputDev}" -iname "*.pc" -print0) -} - -postFixupHooks+=(cmakePcfileCheckPhase) diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix deleted file mode 100644 index 00715130a00..00000000000 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ /dev/null @@ -1,173 +0,0 @@ -{ lib -, stdenv -, fetchurl -, buildPackages -, bzip2 -, curlMinimal -, expat -, libarchive -, libuv -, ncurses -, openssl -, pkg-config -, ps -, rhash -, sphinx -, texinfo -, xz -, zlib -, isBootstrap ? false -, useOpenSSL ? !isBootstrap -, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin) -, uiToolkits ? [] # can contain "ncurses" and/or "qt5" -, buildDocs ? !(isBootstrap || (uiToolkits == [])) -, darwin -, libsForQt5 -}: - -let - inherit (darwin.apple_sdk.frameworks) SystemConfiguration; - inherit (libsForQt5) qtbase wrapQtAppsHook; - cursesUI = lib.elem "ncurses" uiToolkits; - qt5UI = lib.elem "qt5" uiToolkits; -in -# Accepts only "ncurses" and "qt5" as possible uiToolkits -assert lib.subtractLists [ "ncurses" "qt5" ] uiToolkits == []; -# Minimal, bootstrap cmake does not have toolkits -assert isBootstrap -> (uiToolkits == []); -stdenv.mkDerivation (finalAttrs: { - pname = "cmake" - + lib.optionalString isBootstrap "-boot" - + lib.optionalString cursesUI "-cursesUI" - + lib.optionalString qt5UI "-qt5UI"; - version = "3.26.4"; - - src = fetchurl { - url = "https://cmake.org/files/v${lib.versions.majorMinor finalAttrs.version}/cmake-${finalAttrs.version}.tar.gz"; - hash = "sha256-MTtogMKRvU/jHAqlHW5iZZKCpSHmlfMNXMDSWrvVwgg="; - }; - - patches = [ - # Don't search in non-Nix locations such as /usr, but do search in our libc. - ./001-search-path.diff - # Don't depend on frameworks. - ./002-application-services.diff - # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d - ./003-libuv-application-services.diff - ] - ++ lib.optional stdenv.isCygwin ./004-cygwin.diff - # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51 - ++ lib.optional (stdenv.isDarwin && isBootstrap) ./005-remove-systemconfiguration-dep.diff - # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG. - ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff; - - outputs = [ "out" ] ++ lib.optionals buildDocs [ "man" "info" ]; - setOutputFlags = false; - - setupHooks = [ - ./setup-hook.sh - ./check-pc-files-hook.sh - ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - nativeBuildInputs = finalAttrs.setupHooks ++ [ - pkg-config - ] - ++ lib.optionals buildDocs [ texinfo ] - ++ lib.optionals qt5UI [ wrapQtAppsHook ]; - - buildInputs = lib.optionals useSharedLibraries [ - bzip2 - curlMinimal - expat - libarchive - xz - zlib - libuv - rhash - ] - ++ lib.optional useOpenSSL openssl - ++ lib.optional cursesUI ncurses - ++ lib.optional qt5UI qtbase - ++ lib.optional (stdenv.isDarwin && !isBootstrap) SystemConfiguration; - - propagatedBuildInputs = lib.optional stdenv.isDarwin ps; - - preConfigure = '' - fixCmakeFiles . - substituteInPlace Modules/Platform/UnixPaths.cmake \ - --subst-var-by libc_bin ${lib.getBin stdenv.cc.libc} \ - --subst-var-by libc_dev ${lib.getDev stdenv.cc.libc} \ - --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc} - # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake - configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD $configureFlags" - ''; - - configureFlags = [ - "CXXFLAGS=-Wno-elaborated-enum-base" - "--docdir=share/doc/${finalAttrs.pname}-${finalAttrs.version}" - ] ++ (if useSharedLibraries - then [ "--no-system-jsoncpp" "--system-libs" ] - else [ "--no-system-libs" ]) # FIXME: cleanup - ++ lib.optional qt5UI "--qt-gui" - ++ lib.optionals buildDocs [ - "--sphinx-build=${sphinx}/bin/sphinx-build" - "--sphinx-info" - "--sphinx-man" - ] - # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568 - ++ lib.optionals stdenv.hostPlatform.is32bit [ - "CFLAGS=-D_FILE_OFFSET_BITS=64" - "CXXFLAGS=-D_FILE_OFFSET_BITS=64" - ] - ++ [ - "--" - # We should set the proper `CMAKE_SYSTEM_NAME`. - # http://www.cmake.org/Wiki/CMake_Cross_Compiling - # - # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and - # strip. Otherwise they are taken to be relative to the source root of the - # package being built. - "-DCMAKE_CXX_COMPILER=${stdenv.cc.targetPrefix}c++" - "-DCMAKE_C_COMPILER=${stdenv.cc.targetPrefix}cc" - "-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar" - "-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib" - "-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip" - - "-DCMAKE_USE_OPENSSL=${if useOpenSSL then "ON" else "OFF"}" - # Avoid depending on frameworks. - "-DBUILD_CursesDialog=${if cursesUI then "ON" else "OFF"}" - ]; - - # make install attempts to use the just-built cmake - preInstall = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - sed -i 's|bin/cmake|${buildPackages.cmakeMinimal}/bin/cmake|g' Makefile - ''; - - dontUseCmakeConfigure = true; - enableParallelBuilding = true; - - # This isn't an autoconf configure script; triples are passed via - # CMAKE_SYSTEM_NAME, etc. - configurePlatforms = [ ]; - - doCheck = false; # fails - - meta = { - homepage = "https://cmake.org/"; - description = "Cross-platform, open-source build system 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. - ''; - changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor finalAttrs.version}/release/${lib.versions.majorMinor finalAttrs.version}.html"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ ttuegel lnl7 AndersonTorres ]; - platforms = lib.platforms.all; - broken = (qt5UI && stdenv.isDarwin); - }; -}) diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh deleted file mode 100755 index b28ed42b689..00000000000 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ /dev/null @@ -1,184 +0,0 @@ -addCMakeParams() { - addToSearchPath CMAKE_PREFIX_PATH $1 -} - -fixCmakeFiles() { - # Replace occurences of /usr and /opt by /var/empty. - echo "fixing cmake files..." - find "$1" \( -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt \) -print | - while read fn; do - sed -e 's^/usr\([ /]\|$\)^/var/empty\1^g' -e 's^/opt\([ /]\|$\)^/var/empty\1^g' < "$fn" > "$fn.tmp" - mv "$fn.tmp" "$fn" - done -} - -cmakeConfigurePhase() { - runHook preConfigure - - # default to CMake defaults if unset - : ${cmakeBuildDir:=build} - - export CTEST_OUTPUT_ON_FAILURE=1 - if [ -n "${enableParallelChecking-1}" ]; then - export CTEST_PARALLEL_LEVEL=$NIX_BUILD_CORES - fi - - if [ -z "${dontFixCmake-}" ]; then - fixCmakeFiles . - fi - - if [ -z "${dontUseCmakeBuildDir-}" ]; then - mkdir -p "$cmakeBuildDir" - cd "$cmakeBuildDir" - : ${cmakeDir:=..} - else - : ${cmakeDir:=.} - fi - - if [ -z "${dontAddPrefix-}" ]; then - cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags" - fi - - # We should set the proper `CMAKE_SYSTEM_NAME`. - # http://www.cmake.org/Wiki/CMake_Cross_Compiling - # - # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and - # strip. Otherwise they are taken to be relative to the source root of the - # package being built. - cmakeFlags="-DCMAKE_CXX_COMPILER=$CXX $cmakeFlags" - cmakeFlags="-DCMAKE_C_COMPILER=$CC $cmakeFlags" - cmakeFlags="-DCMAKE_AR=$(command -v $AR) $cmakeFlags" - cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLIB) $cmakeFlags" - cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags" - - # 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" - - # we never want to use the global macOS SDK - cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags" - - # correctly detect our clang compiler - cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags" - - # This installs shared libraries with a fully-specified install - # name. By default, cmake installs shared libraries with just the - # basename as the install name, which means that, on Darwin, they - # can only be found by an executable at runtime if the shared - # libraries are in a system path or in the same directory as the - # executable. This flag makes the shared library accessible from its - # nix/store directory. - cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags" - - # The docdir flag needs to include PROJECT_NAME as per GNU guidelines, - # try to extract it from CMakeLists.txt. - if [[ -z "$shareDocName" ]]; then - local cmakeLists="${cmakeDir}/CMakeLists.txt" - if [[ -f "$cmakeLists" ]]; then - local shareDocName="$(grep --only-matching --perl-regexp --ignore-case '\bproject\s*\(\s*"?\K([^[:space:]")]+)' < "$cmakeLists" | head -n1)" - 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 [[ -n "${pname-}" ]]; then - shareDocName="$pname" - else - shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')" - fi - fi - fi - - # This ensures correct paths with multiple output derivations - # It requires the project to use variables from GNUInstallDirs module - # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html - cmakeFlags="-DCMAKE_INSTALL_BINDIR=${!outputBin}/bin $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_SBINDIR=${!outputBin}/sbin $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputInclude}/include $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_OLDINCLUDEDIR=${!outputInclude}/include $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_MANDIR=${!outputMan}/share/man $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_INFODIR=${!outputInfo}/share/info $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName} $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LIBEXECDIR=${!outputLib}/libexec $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LOCALEDIR=${!outputLib}/share/locale $cmakeFlags" - - # Don’t build tests when doCheck = false - if [ -z "${doCheck-}" ]; then - cmakeFlags="-DBUILD_TESTING=OFF $cmakeFlags" - fi - - # Always build Release, to ensure optimisation flags - cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} $cmakeFlags" - - # Disable user package registry to avoid potential side effects - # and unecessary attempts to access non-existent home folder - # https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#disabling-the-package-registry - cmakeFlags="-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON $cmakeFlags" - cmakeFlags="-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF $cmakeFlags" - cmakeFlags="-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF $cmakeFlags" - - if [ "${buildPhase-}" = ninjaBuildPhase ]; then - cmakeFlags="-GNinja $cmakeFlags" - fi - - echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}" - - cmake "$cmakeDir" $cmakeFlags "${cmakeFlagsArray[@]}" - - if ! [[ -v enableParallelBuilding ]]; then - enableParallelBuilding=1 - echo "cmake: enabled parallel building" - fi - - if ! [[ -v enableParallelInstalling ]]; then - enableParallelInstalling=1 - echo "cmake: enabled parallel installing" - fi - - runHook postConfigure -} - -if [ -z "${dontUseCmakeConfigure-}" -a -z "${configurePhase-}" ]; then - setOutputFlags= - configurePhase=cmakeConfigurePhase -fi - -addEnvHooks "$targetOffset" addCMakeParams - -makeCmakeFindLibs(){ - isystem_seen= - iframework_seen= - for flag in ${NIX_CFLAGS_COMPILE-} ${NIX_LDFLAGS-}; do - if test -n "$isystem_seen" && test -d "$flag"; then - isystem_seen= - export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag}" - elif test -n "$iframework_seen" && test -d "$flag"; then - iframework_seen= - export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag}" - else - isystem_seen= - iframework_seen= - case $flag in - -I*) - export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag:2}" - ;; - -L*) - export CMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH-}${CMAKE_LIBRARY_PATH:+:}${flag:2}" - ;; - -F*) - export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag:2}" - ;; - -isystem) - isystem_seen=1 - ;; - -iframework) - iframework_seen=1 - ;; - esac - fi - done -} - -# not using setupHook, because it could be a setupHook adding additional -# include flags to NIX_CFLAGS_COMPILE -postHooks+=(makeCmakeFindLibs) diff --git a/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch b/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch deleted file mode 100644 index 0a2eda9de9a..00000000000 --- a/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur meson-0.60.2-old/mesonbuild/dependencies/boost.py meson-0.60.2-new/mesonbuild/dependencies/boost.py ---- meson-0.60.2-old/mesonbuild/dependencies/boost.py 2021-11-02 16:58:07.000000000 -0300 -+++ meson-0.60.2-new/mesonbuild/dependencies/boost.py 2021-12-12 19:21:27.895705897 -0300 -@@ -682,16 +682,7 @@ - else: - tmp = [] # type: T.List[Path] - -- # Add some default system paths -- tmp += [Path('/opt/local')] -- tmp += [Path('/usr/local/opt/boost')] -- tmp += [Path('/usr/local')] -- tmp += [Path('/usr')] -- -- # Cleanup paths -- tmp = [x for x in tmp if x.is_dir()] -- tmp = [x.resolve() for x in tmp] -- roots += tmp -+ # Remove such spurious, non-explicit "system" paths for Nix&Nixpkgs - - self.check_and_set_roots(roots, use_system=True) - diff --git a/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch deleted file mode 100644 index f1e3c76e8b5..00000000000 --- a/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch +++ /dev/null @@ -1,20 +0,0 @@ -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/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix deleted file mode 100644 index 6674fbe7819..00000000000 --- a/pkgs/development/tools/build-managers/meson/default.nix +++ /dev/null @@ -1,148 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, installShellFiles -, ninja -, pkg-config -, python3 -, zlib -, coreutils -, substituteAll -, Foundation -, OpenGL -, AppKit -, Cocoa -, libxcrypt -}: - -python3.pkgs.buildPythonApplication rec { - pname = "meson"; - version = "1.2.3"; - - src = fetchFromGitHub { - owner = "mesonbuild"; - repo = "meson"; - rev = "refs/tags/${version}"; - hash = "sha256-dgYYz3tQDG6Z4eE77WO2dXdardxVzzGaFLQ5znPcTlw="; - }; - - patches = [ - # Meson is currently inspecting fewer variables than autoconf does, which - # 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 - # 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. - # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634 - (substituteAll { - 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 - - # Patch out default boost search paths to avoid impure builds on - # unsandboxed non-NixOS builds, see: - # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774 - ./boost-Do-not-add-system-paths-on-nix.patch - - # Nixpkgs cctools does not have bitcode support. - ./disable-bitcode.patch - - # Fix passing multiple --define-variable arguments to pkg-config. - # https://github.com/mesonbuild/meson/pull/10670 - (fetchpatch { - url = "https://github.com/mesonbuild/meson/commit/d5252c5d4cf1c1931fef0c1c98dd66c000891d21.patch"; - sha256 = "GiUNVul1N5Fl8mfqM7vA/r1FdKqImiDYLXMVDt77gvw="; - excludes = [ - "docs/yaml/objects/dep.yaml" - ]; - }) - ]; - - setupHook = ./setup-hook.sh; - - nativeCheckInputs = [ ninja pkg-config ]; - checkInputs = [ zlib ] - ++ lib.optionals stdenv.isDarwin [ Foundation OpenGL AppKit Cocoa ]; - checkPhase = '' - runHook preCheck - - patchShebangs 'test cases' - substituteInPlace 'test cases/native/8 external program shebang parsing/script.int.in' \ - --replace /usr/bin/env ${coreutils}/bin/env - # requires git, creating cyclic dependency - rm -r 'test cases/common/66 vcstag' - # requires glib, creating cyclic dependency - rm -r 'test cases/linuxlike/6 subdir include order' - rm -r 'test cases/linuxlike/9 compiler checks with dependencies' - # requires static zlib, see #66461 - rm -r 'test cases/linuxlike/14 static dynamic linkage' - # Nixpkgs cctools does not have bitcode support. - rm -r 'test cases/osx/7 bitcode' - HOME="$TMPDIR" python ./run_project_tests.py - - runHook postCheck - ''; - - 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 - - substituteInPlace "$out/share/bash-completion/completions/meson" \ - --replace "python3 -c " "${python3.interpreter} -c " - ''; - - buildInputs = lib.optionals (python3.pythonOlder "3.9") [ - libxcrypt - ]; - - nativeBuildInputs = [ installShellFiles ]; - - postInstall = '' - installShellCompletion --zsh data/shell-completions/zsh/_meson - installShellCompletion --bash data/shell-completions/bash/meson - ''; - - meta = with lib; { - homepage = "https://mesonbuild.com"; - description = "An open source, fast and friendly build system made in Python"; - longDescription = '' - Meson is an open source build system meant to be both extremely fast, and, - even more importantly, as user friendly as possible. - - The main design point of Meson is that every moment a developer spends - writing or debugging build definitions is a second wasted. So is every - second spent waiting for the build system to actually start compiling - code. - ''; - license = licenses.asl20; - maintainers = with maintainers; [ mbe AndersonTorres ]; - inherit (python3.meta) platforms; - }; -} -# TODO: a more Nixpkgs-tailoired test suite diff --git a/pkgs/development/tools/build-managers/meson/disable-bitcode.patch b/pkgs/development/tools/build-managers/meson/disable-bitcode.patch deleted file mode 100644 index a72997c1043..00000000000 --- a/pkgs/development/tools/build-managers/meson/disable-bitcode.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/mesonbuild/compilers/mixins/clang.py -+++ b/mesonbuild/compilers/mixins/clang.py -@@ -56,10 +56,6 @@ class ClangCompiler(GnuLikeCompiler): - {OptionKey('b_colorout'), OptionKey('b_lto_threads'), OptionKey('b_lto_mode'), OptionKey('b_thinlto_cache'), - OptionKey('b_thinlto_cache_dir')}) - -- # TODO: this really should be part of the linker base_options, but -- # linkers don't have base_options. -- if isinstance(self.linker, AppleDynamicLinker): -- self.base_options.add(OptionKey('b_bitcode')) - # All Clang backends can also do LLVM IR - self.can_compile_suffixes.add('ll') - ---- a/mesonbuild/linkers/linkers.py -+++ b/mesonbuild/linkers/linkers.py -@@ -785,7 +785,7 @@ class AppleDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): - return self._apply_prefix('-headerpad_max_install_names') - - def bitcode_args(self) -> T.List[str]: -- return self._apply_prefix('-bitcode_bundle') -+ raise MesonException('Nixpkgs cctools does not support bitcode bundles') - - def fatal_warnings(self) -> T.List[str]: - return self._apply_prefix('-fatal_warnings') diff --git a/pkgs/development/tools/build-managers/meson/emulator-hook.sh b/pkgs/development/tools/build-managers/meson/emulator-hook.sh deleted file mode 100644 index 4f08087cf5f..00000000000 --- a/pkgs/development/tools/build-managers/meson/emulator-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -add_meson_exe_wrapper_cross_flag() { - mesonFlagsArray+=(--cross-file=@crossFile@) -} - -preConfigureHooks+=(add_meson_exe_wrapper_cross_flag) diff --git a/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/fix-rpath.patch deleted file mode 100644 index 29bec7903ca..00000000000 --- a/pkgs/development/tools/build-managers/meson/fix-rpath.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/mesonbuild/backend/backends.py -+++ b/mesonbuild/backend/backends.py -@@ -723,6 +723,21 @@ - @staticmethod - def get_rpath_dirs_from_link_args(args: T.List[str]) -> T.Set[str]: - dirs: T.Set[str] = set() -+ -+ 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 -+ - # Match rpath formats: - # -Wl,-rpath= - # -Wl,-rpath, diff --git a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch deleted file mode 100644 index e6d74026527..00000000000 --- a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index 1c6952df7..9466a0b7d 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -923,6 +923,16 @@ class GnomeModule(ExtensionModule): - if fatal_warnings: - scan_command.append('--warn-error') - -+ if len(set(girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir())) > 1: -+ raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets]))) -+ -+ if girtargets[0].get_custom_install_dir(): -+ fallback_libpath = girtargets[0].get_custom_install_dir()[0] -+ else: -+ fallback_libpath = None -+ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/": -+ scan_command += ['--fallback-library-path=' + fallback_libpath] -+ - generated_files = [f for f in libsources if isinstance(f, (GeneratedList, CustomTarget, CustomTargetIndex))] - - scan_target = self._make_gir_target(state, girfile, scan_command, generated_files, depends, kwargs) diff --git a/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/more-env-vars.patch deleted file mode 100644 index e4ad4355042..00000000000 --- a/pkgs/development/tools/build-managers/meson/more-env-vars.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur meson-0.60.2-old/mesonbuild/environment.py meson-0.60.2-new/mesonbuild/environment.py ---- meson-0.60.2-old/mesonbuild/environment.py 2021-11-02 16:58:13.000000000 -0300 -+++ meson-0.60.2-new/mesonbuild/environment.py 2021-12-12 17:44:00.350499307 -0300 -@@ -68,7 +68,7 @@ - # compiling we fall back on the unprefixed host version. This - # allows native builds to never need to worry about the 'BUILD_*' - # ones. -- ([var_name + '_FOR_BUILD'] if is_cross else [var_name]), -+ [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]), - # Always just the unprefixed host versions - [var_name] - )[for_machine] diff --git a/pkgs/development/tools/build-managers/meson/setup-hook.sh b/pkgs/development/tools/build-managers/meson/setup-hook.sh deleted file mode 100644 index dc7780b2fd3..00000000000 --- a/pkgs/development/tools/build-managers/meson/setup-hook.sh +++ /dev/null @@ -1,71 +0,0 @@ -mesonConfigurePhase() { - runHook preConfigure - - if [ -z "${dontAddPrefix-}" ]; then - mesonFlags="--prefix=$prefix $mesonFlags" - fi - - # See multiple-outputs.sh and meson’s coredata.py - mesonFlags="\ - --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \ - --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \ - --includedir=${!outputInclude}/include \ - --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \ - --localedir=${!outputLib}/share/locale \ - -Dauto_features=${mesonAutoFeatures:-enabled} \ - -Dwrap_mode=${mesonWrapMode:-nodownload} \ - $mesonFlags" - - mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-plain} $mesonFlags" - - echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}" - - meson setup build $mesonFlags "${mesonFlagsArray[@]}" - cd build - - if ! [[ -v enableParallelBuilding ]]; then - enableParallelBuilding=1 - echo "meson: enabled parallel building" - fi - - if [[ ${checkPhase-ninjaCheckPhase} = ninjaCheckPhase && -z $dontUseMesonCheck ]]; then - checkPhase=mesonCheckPhase - fi - if [[ ${installPhase-ninjaInstallPhase} = ninjaInstallPhase && -z $dontUseMesonInstall ]]; then - installPhase=mesonInstallPhase - fi - - runHook postConfigure -} - -mesonCheckPhase() { - runHook preCheck - - local flagsArray=($mesonCheckFlags "${mesonCheckFlagsArray[@]}") - - echoCmd 'check flags' "${flagsArray[@]}" - meson test --no-rebuild "${flagsArray[@]}" - - runHook postCheck -} - -mesonInstallPhase() { - runHook preInstall - - # shellcheck disable=SC2086 - local flagsArray=($mesonInstallFlags "${mesonInstallFlagsArray[@]}") - - if [[ -n "$mesonInstallTags" ]]; then - flagsArray+=("--tags" "${mesonInstallTags// /,}") - fi - - echoCmd 'install flags' "${flagsArray[@]}" - meson install --no-rebuild "${flagsArray[@]}" - - runHook postInstall -} - -if [ -z "${dontUseMesonConfigure-}" -a -z "${configurePhase-}" ]; then - setOutputFlags= - configurePhase=mesonConfigurePhase -fi diff --git a/pkgs/development/tools/build-managers/scons/3.1.2.nix b/pkgs/development/tools/build-managers/scons/3.1.2.nix new file mode 100644 index 00000000000..097a8ffd519 --- /dev/null +++ b/pkgs/development/tools/build-managers/scons/3.1.2.nix @@ -0,0 +1,38 @@ +{ lib, fetchurl, python3 }: + +let + pname = "scons"; + version = "3.1.2"; + src = fetchurl { + url = "mirror://sourceforge/scons/scons-${version}.tar.gz"; + hash = "sha256-eAHz9i9lRSjict94C+EMDpM36JdlC2Ldzunzn94T+Ps="; + }; +in +python3.pkgs.buildPythonApplication { + inherit pname version src; + + setupHook = ./setup-hook.sh; + + doCheck = true; + + passthru = { + # expose the used python version so tools using this (and extensing scos + # with other python modules) can use the exact same python version. + inherit python3; + python = python3; + }; + + meta = { + description = "An improved, cross-platform substitute for Make"; + longDescription = '' + SCons is an Open Source software construction tool. Think of SCons as an + improved, cross-platform substitute for the classic Make utility with + integrated functionality similar to autoconf/automake and compiler caches + such as ccache. In short, SCons is an easier, more reliable and faster way + to build software. + ''; + homepage = "https://scons.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ AndersonTorres ]; + }; +} diff --git a/pkgs/development/tools/build-managers/scons/4.1.0.nix b/pkgs/development/tools/build-managers/scons/4.1.0.nix new file mode 100644 index 00000000000..65499280c2c --- /dev/null +++ b/pkgs/development/tools/build-managers/scons/4.1.0.nix @@ -0,0 +1,50 @@ +{ lib, fetchurl, python3 }: + +let + pname = "scons"; + version = "4.1.0"; + src = fetchurl { + url = "mirror://sourceforge/scons/scons-${version}.tar.gz"; + hash = "sha256-ctKNdi4hJnh/Fz49WeCJI5+LL06e8xFNV/ELEgaYXYU="; + }; +in +python3.pkgs.buildPythonApplication { + inherit pname version src; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "build/dist" "dist" \ + --replace "build/doc/man/" "" + ''; + + postInstall = '' + mkdir -p "$out/share/man/man1" + mv "$out/"*.1 "$out/share/man/man1/" + ''; + + setupHook = ./setup-hook.sh; + + # The release tarballs don't contain any tests (runtest.py and test/*): + doCheck = false; + + passthru = { + # expose the used python version so tools using this (and extensing scos + # with other python modules) can use the exact same python version. + inherit python3; + python = python3; + }; + + meta = { + description = "An improved, cross-platform substitute for Make"; + longDescription = '' + SCons is an Open Source software construction tool. Think of SCons as an + improved, cross-platform substitute for the classic Make utility with + integrated functionality similar to autoconf/automake and compiler caches + such as ccache. In short, SCons is an easier, more reliable and faster way + to build software. + ''; + homepage = "https://scons.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ AndersonTorres ]; + }; +} diff --git a/pkgs/development/tools/build-managers/scons/4.5.2.nix b/pkgs/development/tools/build-managers/scons/4.5.2.nix new file mode 100644 index 00000000000..61d1719642e --- /dev/null +++ b/pkgs/development/tools/build-managers/scons/4.5.2.nix @@ -0,0 +1,54 @@ +{ lib, fetchurl, python3 }: + +let + pname = "scons"; + version = "4.5.2"; + src = fetchurl { + url = "mirror://sourceforge/project/scons/scons/${version}/SCons-${version}.tar.gz"; + hash = "sha256-ziaqyV01CnmkGSGWsL6sPLJPTMq84BI+so0zcPV28HI="; + }; +in +python3.pkgs.buildPythonApplication { + inherit pname version src; + + patches = [ + ./env.patch + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "build/dist" "dist" \ + --replace "build/doc/man/" "" + ''; + + postInstall = '' + mkdir -p "$out/share/man/man1" + mv "$out/"*.1 "$out/share/man/man1/" + ''; + + setupHook = ./setup-hook.sh; + + # The release tarballs don't contain any tests (runtest.py and test/*): + doCheck = false; + + passthru = { + # expose the used python version so tools using this (and extensing scos + # with other python modules) can use the exact same python version. + inherit python3; + python = python3; + }; + + meta = { + description = "An improved, cross-platform substitute for Make"; + longDescription = '' + SCons is an Open Source software construction tool. Think of SCons as an + improved, cross-platform substitute for the classic Make utility with + integrated functionality similar to autoconf/automake and compiler caches + such as ccache. In short, SCons is an easier, more reliable and faster way + to build software. + ''; + homepage = "https://scons.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ AndersonTorres ]; + }; +} diff --git a/pkgs/development/tools/build-managers/scons/common.nix b/pkgs/development/tools/build-managers/scons/common.nix deleted file mode 100644 index 64890d12cea..00000000000 --- a/pkgs/development/tools/build-managers/scons/common.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ version, sha256 }: - -{ fetchurl, python, lib }: - -python.pkgs.buildPythonApplication rec { - pname = "scons"; - inherit version; - - src = fetchurl { - url = - if lib.versionAtLeast version "4.3.0" then - "mirror://sourceforge/project/scons/scons/${version}/SCons-${version}.tar.gz" - else - "mirror://sourceforge/scons/scons-${version}.tar.gz"; - inherit sha256; - }; - - setupHook = ./setup-hook.sh; - - patches = lib.optionals (lib.versionAtLeast version "4.3.0") [ - ./env.patch - ]; - - postPatch = lib.optionalString (lib.versionAtLeast version "4.0.0") '' - substituteInPlace setup.cfg \ - --replace "build/dist" "dist" - '' + lib.optionalString (lib.versionAtLeast version "4.1.0") '' - substituteInPlace setup.cfg \ - --replace "build/doc/man/" "" - ''; - - # The release tarballs don't contain any tests (runtest.py and test/*): - doCheck = lib.versionOlder version "4.0.0"; - - postInstall = lib.optionalString (lib.versionAtLeast version "4.1.0") '' - mkdir -p "$out/share/man/man1" - mv "$out/"*.1 "$out/share/man/man1/" - ''; - - passthru = { - # expose the used python version so tools using this (and extensing scos with other python modules) - # can use the exact same python version. - inherit python; - }; - - meta = with lib; { - description = "An improved, cross-platform substitute for Make"; - longDescription = '' - SCons is an Open Source software construction tool. Think of - SCons as an improved, cross-platform substitute for the classic - Make utility with integrated functionality similar to - autoconf/automake and compiler caches such as ccache. In short, - SCons is an easier, more reliable and faster way to build - software. - ''; - homepage = "https://scons.org/"; - changelog = "https://raw.githubusercontent.com/SConsProject/scons/rel_${version}/src/CHANGES.txt"; - license = licenses.mit; - platforms = platforms.all; - maintainers = with lib.maintainers; [ AndersonTorres ]; - }; -} diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix deleted file mode 100644 index f338d346a70..00000000000 --- a/pkgs/development/tools/build-managers/scons/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ callPackage, python2, python3 }: - -let - mkScons = args: callPackage (import ./common.nix args) { - python = python3; - }; -in { - scons_3_1_2 = (mkScons { - version = "3.1.2"; - sha256 = "1yzq2gg9zwz9rvfn42v5jzl3g4qf1khhny6zfbi2hib55zvg60bq"; - }); - scons_4_1_0 = mkScons { - version = "4.1.0"; - sha256 = "11axk03142ziax6i3wwy9qpqp7r3i7h5jg9y2xzph9i15rv8vlkj"; - }; - scons_latest = mkScons { - version = "4.5.2"; - sha256 = "sha256-ziaqyV01CnmkGSGWsL6sPLJPTMq84BI+so0zcPV28HI="; - }; -} |