diff --git a/nixos/modules/image/repart-image.nix b/nixos/modules/image/repart-image.nix index 41f68a0282ac..cc4c2211e3d3 100644 --- a/nixos/modules/image/repart-image.nix +++ b/nixos/modules/image/repart-image.nix @@ -30,7 +30,7 @@ , imageFileBasename , compression , fileSystems -, partitionsJSON +, finalPartitions , split , seed , definitionsDirectory @@ -110,7 +110,9 @@ in env = mkfsEnv; - inherit partitionsJSON definitionsDirectory; + inherit finalPartitions definitionsDirectory; + + partitionsJSON = builtins.toJSON finalAttrs.finalPartitions; # relative path to the repart definitions that are read by systemd-repart finalRepartDefinitions = "repart.d"; @@ -136,7 +138,7 @@ in patchPhase = '' runHook prePatch - amendedRepartDefinitionsDir=$(${amendRepartDefinitions} $partitionsJSON $definitionsDirectory) + amendedRepartDefinitionsDir=$(${amendRepartDefinitions} <(echo "$partitionsJSON") $definitionsDirectory) ln -vs $amendedRepartDefinitionsDir $finalRepartDefinitions runHook postPatch diff --git a/nixos/modules/image/repart-verity-store.nix b/nixos/modules/image/repart-verity-store.nix index 3f341ca421f2..e8706a5f79d0 100644 --- a/nixos/modules/image/repart-verity-store.nix +++ b/nixos/modules/image/repart-verity-store.nix @@ -163,21 +163,20 @@ in createEmpty = false; }).overrideAttrs ( - finalAttrs: previousAttrs: - let - copyUki = "CopyFiles=${config.system.build.uki}/${config.system.boot.loader.ukiFile}:${cfg.ukiPath}"; - in - { + finalAttrs: previousAttrs: { + # add entry to inject UKI into ESP + finalPartitions = lib.recursiveUpdate previousAttrs.finalPartitions { + ${cfg.partitionIds.esp}.contents = { + "${cfg.ukiPath}".source = "${config.system.build.uki}/${config.system.boot.loader.ukiFile}"; + }; + }; + nativeBuildInputs = previousAttrs.nativeBuildInputs ++ [ pkgs.systemdUkify verityHashCheck + pkgs.jq ]; - postPatch = '' - # add entry to inject UKI into ESP - echo '${copyUki}' >> $finalRepartDefinitions/${cfg.partitionIds.esp}.conf - ''; - preBuild = '' # check that we build the final image with the same intermediate image for # which the injected UKI was built by comparing the UKI cmdline with the repart output @@ -194,6 +193,24 @@ in chmod +w ${config.image.repart.imageFileBasename}.raw ''; + # replace "TBD" with the original roothash values + preInstall = '' + mv -v repart-output{.json,_orig.json} + + jq --slurp --indent -1 \ + '.[0] as $intermediate | .[1] as $final + | $intermediate | map(select(.roothash != null) | { "uuid":.uuid,"roothash":.roothash }) as $uuids + | $final + $uuids + | group_by(.uuid) + | map(add) + | sort_by(.offset)' \ + ${config.system.build.intermediateImage}/repart-output.json \ + repart-output_orig.json \ + > repart-output.json + + rm -v repart-output_orig.json + ''; + # the image will be self-contained so we can drop references # to the closure that was used to build it unsafeDiscardReferences.out = true; diff --git a/nixos/modules/image/repart.nix b/nixos/modules/image/repart.nix index b2f03d96ad35..544779cd6e9b 100644 --- a/nixos/modules/image/repart.nix +++ b/nixos/modules/image/repart.nix @@ -318,14 +318,12 @@ in format (lib.mapAttrs (_n: v: { Partition = v.repartConfig; }) cfg.finalPartitions); - partitionsJSON = pkgs.writeText "partitions.json" (builtins.toJSON cfg.finalPartitions); - mkfsEnv = mkfsOptionsToEnv cfg.mkfsOptions; in pkgs.callPackage ./repart-image.nix { systemd = cfg.package; - inherit (cfg) name version imageFileBasename compression split seed sectorSize; - inherit fileSystems definitionsDirectory partitionsJSON mkfsEnv; + inherit (cfg) name version imageFileBasename compression split seed sectorSize finalPartitions; + inherit fileSystems definitionsDirectory mkfsEnv; }; meta.maintainers = with lib.maintainers; [ nikstur willibutz ]; diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh index a89e3d817637..b5627ec8e571 100755 --- a/nixos/modules/system/boot/stage-2-init.sh +++ b/nixos/modules/system/boot/stage-2-init.sh @@ -125,14 +125,6 @@ ln -sfn "$systemConfig" /run/booted-system @shell@ @postBootCommands@ -# Ensure systemd doesn't try to populate /etc, by forcing its first-boot -# heuristic off. It doesn't matter what's in /etc/machine-id for this purpose, -# and systemd will immediately fill in the file when it starts, so just -# creating it is enough. This `: >>` pattern avoids forking and avoids changing -# the mtime if the file already exists. -: >> /etc/machine-id - - # No need to restore the stdout/stderr streams we never redirected and # especially no need to start systemd if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 14019a518a65..98ff9b0d88d9 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -33,6 +33,7 @@ let "nss-lookup.target" "nss-user-lookup.target" "time-sync.target" + "first-boot-complete.target" ] ++ optionals cfg.package.withCryptsetup [ "cryptsetup.target" "cryptsetup-pre.target" @@ -568,6 +569,15 @@ in "systemd/user-generators" = { source = hooks "user-generators" cfg.user.generators; }; "systemd/system-generators" = { source = hooks "system-generators" cfg.generators; }; "systemd/system-shutdown" = { source = hooks "system-shutdown" cfg.shutdown; }; + + # Ignore all other preset files so systemd doesn't try to enable/disable + # units during runtime. + "systemd/system-preset/00-nixos.preset".text = '' + ignore * + ''; + "systemd/user-preset/00-nixos.preset".text = '' + ignore * + ''; }); services.dbus.enable = true; diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix index 9f8b06561b07..ea38206d8438 100644 --- a/nixos/tests/nextcloud/default.nix +++ b/nixos/tests/nextcloud/default.nix @@ -44,13 +44,13 @@ let nodes = { client = { ... }: {}; - nextcloud = { + nextcloud = { lib, ... }: { networking.firewall.allowedTCPPorts = [ 80 ]; services.nextcloud = { enable = true; hostName = "nextcloud"; https = false; - database.createLocally = true; + database.createLocally = lib.mkDefault true; config = { adminpassFile = "${pkgs.writeText "adminpass" config.adminpass}"; # Don't try this at home! }; @@ -104,6 +104,7 @@ let }); in map callNextcloudTest [ ./basic.nix + ./with-declarative-redis-and-secrets.nix ./with-mysql-and-memcached.nix ./with-postgresql-and-redis.nix ./with-objectstore.nix diff --git a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix index b09ee1276a13..80041ed481b4 100644 --- a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix +++ b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix @@ -1,29 +1,18 @@ -args@{ nextcloudVersion ? 27, ... }: -(import ../make-test-python.nix ({ pkgs, ...}: let - adminuser = "custom_admin_username"; - # This will be used both for redis and postgresql - pass = "hunter2"; - # Don't do this at home, use a file outside of the nix store instead - passFile = toString (pkgs.writeText "pass-file" '' - ${pass} - ''); -in { - name = "nextcloud-with-declarative-redis"; +{ name, pkgs, testBase, system, ... }: + +with import ../../lib/testing-python.nix { inherit system pkgs; }; +runTest ({ config, ... }: let inherit (config) adminuser; in { + inherit name; meta = with pkgs.lib.maintainers; { maintainers = [ eqyiel ma27 ]; }; + imports = [ testBase ]; + nodes = { - # The only thing the client needs to do is download a file. - client = { ... }: {}; - nextcloud = { config, pkgs, ... }: { - networking.firewall.allowedTCPPorts = [ 80 ]; - + environment.systemPackages = [ pkgs.jq ]; services.nextcloud = { - enable = true; - hostName = "nextcloud"; - package = pkgs.${"nextcloud" + (toString nextcloudVersion)}; caching = { apcu = false; redis = true; @@ -35,10 +24,9 @@ in { dbtype = "pgsql"; dbname = "nextcloud"; dbuser = adminuser; - dbpassFile = passFile; - adminuser = adminuser; - adminpassFile = passFile; + dbpassFile = config.services.nextcloud.config.adminpassFile; }; + secretFile = "/etc/nextcloud-secrets.json"; settings = { @@ -68,7 +56,7 @@ in { package = pkgs.postgresql_14; }; systemd.services.postgresql.postStart = pkgs.lib.mkAfter '' - password=$(cat ${passFile}) + password=$(cat ${config.services.nextcloud.config.dbpassFile}) ${config.services.postgresql.package}/bin/psql < qt6 != null; stdenv.mkDerivation rec { pname = "wireshark-${if withQt then "qt" else "cli"}"; - version = "4.2.6"; + version = "4.2.7"; outputs = [ "out" "dev" ]; @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { repo = "wireshark"; owner = "wireshark"; rev = "v${version}"; - hash = "sha256-zlFTUgsEKraE9crS5SZ13r93JJzUb6eyBhusJbbGwsE="; + hash = "sha256-0tBAmZz8tQfcTtKZf0TZ+I3aaarUCxlpaBXM4zNzkxM="; }; patches = [ diff --git a/pkgs/by-name/ba/basedpyright/package.nix b/pkgs/by-name/ba/basedpyright/package.nix index 97cc7be20293..e899d7dbf187 100644 --- a/pkgs/by-name/ba/basedpyright/package.nix +++ b/pkgs/by-name/ba/basedpyright/package.nix @@ -13,13 +13,13 @@ }: let - version = "1.18.0"; + version = "1.18.2"; src = fetchFromGitHub { owner = "detachhead"; repo = "basedpyright"; rev = "refs/tags/v${version}"; - hash = "sha256-o2MHZMUuVnVjdv2b+GLIMjK1FT8KfLUzo7+zH7OU7HI="; + hash = "sha256-nYbxgrNFhQ576rN8W+Hf/Keohy1N8tihOeTQHItKPRc="; }; # To regenerate the patched package-lock.json, copy the patched package.json @@ -51,7 +51,7 @@ let pname = "pyright-internal"; inherit version src; sourceRoot = "${src.name}/packages/pyright-internal"; - npmDepsHash = "sha256-pavURV/smWxYUWpRjVM08pJqfdNl/fULds66miC2iwg="; + npmDepsHash = "sha256-Md17EF3a1GBfnHD2fnLGS76r0xiWYJmBBTzZWRc0j5c="; dontNpmBuild = true; # Uncomment this flag when using unreleased peer dependencies # npmFlags = [ "--legacy-peer-deps" ]; diff --git a/pkgs/by-name/ft/ftjam/package.nix b/pkgs/by-name/ft/ftjam/package.nix new file mode 100644 index 000000000000..7bfdc5f804a4 --- /dev/null +++ b/pkgs/by-name/ft/ftjam/package.nix @@ -0,0 +1,117 @@ +{ + lib, + bison, + buildPackages, + fetchurl, + installShellFiles, + pkgsBuildTarget, + stdenv, + testers, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "ftjam"; + version = "2.5.2"; + + src = fetchurl { + url = "https://downloads.sourceforge.net/project/freetype/ftjam/${finalAttrs.version}/ftjam-${finalAttrs.version}.tar.bz2"; + hash = "sha256-6JdzUAqSkS3pGOn+v/q+S2vOedaa8ZRDX04DK4ptZqM="; + }; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + nativeBuildInputs = [ + bison + installShellFiles + ]; + + # Doesn't understand how to cross compile once bootstrapped, so we'll just use + # the Makefile for the bootstrapping portion + configurePlatforms = [ + "build" + "target" + ]; + + configureFlags = [ + "CC=${buildPackages.stdenv.cc.targetPrefix}cc" + "--host=${stdenv.buildPlatform.config}" + ]; + + makeFlags = [ + "CC=${buildPackages.stdenv.cc.targetPrefix}cc" + ]; + + env = { + LOCATE_TARGET = "bin.unix"; + # Jam uses c89 conventions + NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-std=c89"; + }; + + enableParallelBuilding = true; + + strictDeps = true; + + # Jambase expects ar to have flags. + preConfigure = '' + export AR="$AR rc" + ''; + + # When cross-compiling, we need to set the preprocessor macros + # OSMAJOR/OSMINOR/OSPLAT to the values from the target platform, not the host + # platform. This looks a little ridiculous because the vast majority of build + # tools don't embed target-specific information into their binary, but in this + # case we behave more like a compiler than a make(1)-alike. + postPatch = + '' + substituteInPlace Jamfile \ + --replace "strip" "${stdenv.cc.targetPrefix}strip" + '' + + lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) '' + cat >>jam.h <>jam.h < Date: Sun, 26 May 2024 12:17:01 -0500 Subject: [PATCH] envoy: allow specification of external binary @@ -8,7 +8,7 @@ Subject: [PATCH] envoy: allow specification of external binary 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pkg/envoy/envoy.go b/pkg/envoy/envoy.go -index 62f2d34c..879001cd 100644 +index 6639d4bd..c6ca198f 100644 --- a/pkg/envoy/envoy.go +++ b/pkg/envoy/envoy.go @@ -8,9 +8,9 @@ import ( @@ -35,7 +35,7 @@ index 62f2d34c..879001cd 100644 type serverOptions struct { services string logLevel config.LogLevel -@@ -58,17 +62,16 @@ type Server struct { +@@ -59,17 +63,16 @@ type Server struct { // NewServer creates a new server with traffic routed by envoy. func NewServer(ctx context.Context, src config.Source, builder *envoyconfig.Builder) (*Server, error) { @@ -59,5 +59,5 @@ index 62f2d34c..879001cd 100644 grpcPort: src.GetConfig().GRPCPort, httpPort: src.GetConfig().HTTPPort, -- -2.44.1 +2.46.0 diff --git a/pkgs/servers/http/pomerium/package.json b/pkgs/by-name/po/pomerium/package.json similarity index 100% rename from pkgs/servers/http/pomerium/package.json rename to pkgs/by-name/po/pomerium/package.json diff --git a/pkgs/servers/http/pomerium/default.nix b/pkgs/by-name/po/pomerium/package.nix similarity index 93% rename from pkgs/servers/http/pomerium/default.nix rename to pkgs/by-name/po/pomerium/package.nix index 8e78b8f07287..75c13df48390 100644 --- a/pkgs/servers/http/pomerium/default.nix +++ b/pkgs/by-name/po/pomerium/package.nix @@ -1,4 +1,4 @@ -{ buildGoModule +{ buildGo123Module , fetchFromGitHub , lib , envoy @@ -11,17 +11,17 @@ let inherit (lib) concatStringsSep concatMap id mapAttrsToList; in -buildGoModule rec { +buildGo123Module rec { pname = "pomerium"; - version = "0.26.1"; + version = "0.27.1"; src = fetchFromGitHub { owner = "pomerium"; repo = "pomerium"; rev = "v${version}"; - hash = "sha256-lMI6dVCTInqHsz4N0HsOVUQo8TkheAwr54FW46r+DUA="; + hash = "sha256-+RKWl/weUYktS7jUB1lYpZCBKEfh7RMfKgRDbYV8Bjs="; }; - vendorHash = "sha256-AHlnhAh4RBz8aJoFJjbX/MUDHq81xK7b7gvCyuV3gjU="; + vendorHash = "sha256-/iYUZp6EASDGApLymNuR10395PH8D3zPU+TlmmAN8Zc="; ui = mkYarnPackage { inherit version; diff --git a/pkgs/servers/http/pomerium/updater.sh b/pkgs/by-name/po/pomerium/updater.sh similarity index 100% rename from pkgs/servers/http/pomerium/updater.sh rename to pkgs/by-name/po/pomerium/updater.sh diff --git a/pkgs/by-name/po/pomerium/yarn-hash b/pkgs/by-name/po/pomerium/yarn-hash new file mode 100644 index 000000000000..6f871e034fe3 --- /dev/null +++ b/pkgs/by-name/po/pomerium/yarn-hash @@ -0,0 +1 @@ +0bdrczn8mj5iidmba7xzkcyvsnwmbvcvrc1vgks2x4pxqbfyxaiv diff --git a/pkgs/by-name/zo/zoom-us/package.nix b/pkgs/by-name/zo/zoom-us/package.nix index b4dbcf3d853a..901659b0e77b 100644 --- a/pkgs/by-name/zo/zoom-us/package.nix +++ b/pkgs/by-name/zo/zoom-us/package.nix @@ -38,6 +38,7 @@ , util-linux , pulseaudioSupport ? true , libpulseaudio +, pulseaudio }: let @@ -112,6 +113,7 @@ let libkrb5 ] ++ lib.optional (pulseaudioSupport) libpulseaudio); + binPath = lib.makeBinPath ([ coreutils glib.dev pciutils procps util-linux ] ++ lib.optional pulseaudioSupport pulseaudio); in stdenv.mkDerivation rec { pname = "zoom"; @@ -158,7 +160,7 @@ stdenv.mkDerivation rec { substituteInPlace $out/share/applications/Zoom.desktop \ --replace-fail "Exec=/usr/bin/zoom" "Exec=$out/bin/zoom" - for i in aomhost zopen zoom ZoomLauncher; do + for i in aomhost zopen zoom ZoomLauncher ZoomWebviewHost; do patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zoom/$i done @@ -178,7 +180,13 @@ stdenv.mkDerivation rec { --unset QML2_IMPORT_PATH \ --unset QT_PLUGIN_PATH \ --unset QT_SCREEN_SCALE_FACTORS \ - --prefix PATH : ${lib.makeBinPath [ coreutils glib.dev pciutils procps util-linux ]} \ + --prefix PATH : ${binPath} \ + --prefix LD_LIBRARY_PATH ":" ${libs} + + wrapProgram $out/opt/zoom/ZoomWebviewHost \ + --unset QML2_IMPORT_PATH \ + --unset QT_PLUGIN_PATH \ + --unset QT_SCREEN_SCALE_FACTORS \ --prefix LD_LIBRARY_PATH ":" ${libs} # Backwards compatibility: we used to call it zoom-us diff --git a/pkgs/development/compilers/gcc/patches/11/libgcc-aarch64-darwin-detection.patch b/pkgs/development/compilers/gcc/patches/11/libgcc-aarch64-darwin-detection.patch deleted file mode 100644 index 08dbfec6b249..000000000000 --- a/pkgs/development/compilers/gcc/patches/11/libgcc-aarch64-darwin-detection.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -u a/libgcc/config.host b/libgcc/config.host ---- a/libgcc/config.host 2023-11-05 11:01:55.778638446 -0500 -+++ b/libgcc/config.host 2023-11-05 11:07:29.405103979 -0500 -@@ -227,7 +227,7 @@ - tmake_file="$tmake_file t-slibgcc-darwin" - # newer toolsets produce warnings when building for unsupported versions. - case ${host} in -- *-*-darwin1[89]* | *-*-darwin2* ) -+ *-*-darwin1[89]* | *-*-darwin2* | aarch64*-*-darwin*) - tmake_file="t-darwin-min-8 $tmake_file" - ;; - *-*-darwin9* | *-*-darwin1[0-7]*) -diff -ur a/libgcc/config/t-darwin-rpath b/libgcc/config/t-darwin-rpath ---- a/libgcc/config/t-darwin-rpath 2023-11-05 11:34:18.691150009 -0500 -+++ b/libgcc/config/t-darwin-rpath 2023-11-05 11:50:36.968920904 -0500 -@@ -2,4 +2,4 @@ - SHLIB_RPATH = @rpath - - # Which does not work for Darwin < 9 --HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.5 -+SHLIB_LOADER_PATH = -Wl,-rpath,@loader_path diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix index 9c756ccfa4ee..c25771a93723 100644 --- a/pkgs/development/compilers/gcc/patches/default.nix +++ b/pkgs/development/compilers/gcc/patches/default.nix @@ -157,9 +157,9 @@ in }) ]; "11" = [ (fetchpatch { # There are no upstream release tags in https://github.com/iains/gcc-11-branch. - # ff4bf32 is the commit from https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-11.4.0 - url = "https://github.com/iains/gcc-11-branch/compare/ff4bf326d03e750a8d4905ea49425fe7d15a04b8..gcc-11.4-darwin-r0.diff"; - hash = "sha256-6prPgR2eGVJs7vKd6iM1eZsEPCD1ShzLns2Z+29vlt4="; + # 5cc4c42a0d4de08715c2eef8715ad5b2e92a23b6 is the commit from https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-11.5.0 + url = "https://github.com/iains/gcc-11-branch/compare/5cc4c42a0d4de08715c2eef8715ad5b2e92a23b6..gcc-11.5-darwin-r0.diff"; + hash = "sha256-7lH+GkgkrE6nOp9PMdIoqlQNWK31s6oW+lDt1LIkadE="; }) ]; "10" = [ (fetchpatch { # There are no upstream release tags in https://github.com/iains/gcc-10-branch. @@ -201,9 +201,6 @@ in ## gcc 11.0 and older ############################################################################## -# libgcc’s `configure` script misdetects aarch64-darwin, resulting in an invalid deployment target. -++ optional (is11 && stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ./11/libgcc-aarch64-darwin-detection.patch - # openjdk build fails without this on -march=opteron; is upstream in gcc12 ++ optionals (is11) [ ./11/gcc-issue-103910.patch ] diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix index ea7b2535f329..6ca7bd516383 100644 --- a/pkgs/development/libraries/duckdb/default.nix +++ b/pkgs/development/libraries/duckdb/default.nix @@ -45,11 +45,6 @@ stdenv.mkDerivation (finalAttrs: { "-DBUILD_UNITTESTS=ON" ]; - postInstall = '' - mkdir -p $lib - mv $out/lib $lib - ''; - doInstallCheck = true; installCheckPhase = @@ -98,6 +93,10 @@ stdenv.mkDerivation (finalAttrs: { # wants http connection "test/sql/copy/csv/recursive_query_csv.test" "test/sql/copy/csv/test_mixed_lines.test" + "test/parquet/parquet_long_string_stats.test" + "test/sql/attach/attach_remote.test" + "test/sql/copy/csv/test_sniff_httpfs.test" + "test/sql/httpfs/internal_issue_2490.test" ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "test/sql/aggregate/aggregates/test_kurtosis.test" "test/sql/aggregate/aggregates/test_skewness.test" diff --git a/pkgs/development/libraries/duckdb/versions.json b/pkgs/development/libraries/duckdb/versions.json index 8ae8b4bc57d2..47cad94b53f3 100644 --- a/pkgs/development/libraries/duckdb/versions.json +++ b/pkgs/development/libraries/duckdb/versions.json @@ -1,5 +1,5 @@ { - "version": "1.0.0", - "rev": "1f98600c2cf8722a6d2f2d805bb4af5e701319fc", - "hash": "sha256-bzFxWv8+Ac8vZLd2OWJyu4T0/0dc7wykdOORMpx92Ic=" + "version": "1.1.1", + "rev": "af39bd0dcf66876e09ac2a7c3baa28fe1b301151", + "hash": "sha256-YPS3DqIYmFKXGkiQiU7/QKNNn7+YyavrA4uDenKuX2g=" } diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix index 18f82b99afa0..6bddc8c6b5e5 100644 --- a/pkgs/development/libraries/gdal/default.nix +++ b/pkgs/development/libraries/gdal/default.nix @@ -2,6 +2,7 @@ , stdenv , callPackage , fetchFromGitHub +, fetchpatch , useMinimalFeatures ? false , useTiledb ? (!useMinimalFeatures) && !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) @@ -88,6 +89,17 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-BXnpNfi9tUd6nnwYdstuOfGsFVif8kkmkW97X1UAgt8="; }; + patches = [ + (fetchpatch { + url = "https://github.com/OSGeo/gdal/commit/91e4f55f8f374a75f8f2ecd05670edcfa4c0af84.patch"; + sha256 = "sha256-C2lkZLsORso7WVxgX79r5swkoVu/APPwQp2C/rmmCAo="; + }) + (fetchpatch { + url = "https://github.com/OSGeo/gdal/commit/40c3212fe4ba93e5176df4cd8ae5e29e06bb6027.patch"; + sha256 = "sha256-D55iT6E/YdpSyfN7KUDTh1gdmIDLHXW4VC5d6D9B7ls="; + }) + ]; + nativeBuildInputs = [ bison cmake @@ -256,6 +268,9 @@ stdenv.mkDerivation (finalAttrs: { # failing with PROJ 9.3.1 # https://github.com/OSGeo/gdal/issues/8908 "test_osr_esri_28" + # flakey tests, to remove on next release + "test_vsiaz_write_blockblob_chunk_size_1" + "test_vsiaz_fake_write" ] ++ lib.optionals (!stdenv.hostPlatform.isx86_64) [ # likely precision-related expecting x87 behaviour "test_jp2openjpeg_22" diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix index 0cd143a1ded4..2e63196b0420 100644 --- a/pkgs/development/libraries/geos/default.nix +++ b/pkgs/development/libraries/geos/default.nix @@ -9,11 +9,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "geos"; - version = "3.12.2"; + version = "3.13.0"; src = fetchurl { url = "https://download.osgeo.org/geos/geos-${finalAttrs.version}.tar.bz2"; - hash = "sha256-NMd3C/AJDuiEiK+Ydn0I53nxJPozQ34Kq+yKvUYJ/sY="; + hash = "sha256-R+yD/zNNZyueRCZpXxXabmNoJEIUlx+r84b/jvbfOeQ="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/librasterlite2/default.nix b/pkgs/development/libraries/librasterlite2/default.nix index a1655dc6a13d..0286d944691f 100644 --- a/pkgs/development/libraries/librasterlite2/default.nix +++ b/pkgs/development/libraries/librasterlite2/default.nix @@ -63,7 +63,7 @@ stdenv.mkDerivation rec { libspatialite libtiff libwebp - libxml2 + (libxml2.override { enableHttp = true; }) lz4 minizip openjpeg @@ -71,7 +71,7 @@ stdenv.mkDerivation rec { proj sqlite zstd - ] ++ lib.optional stdenv.hostPlatform.isDarwin ApplicationServices; + ] ++ lib.optional stdenv.isDarwin ApplicationServices; enableParallelBuilding = true; diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix index e001fa03a2dd..ae2d8d6c2987 100644 --- a/pkgs/development/ocaml-modules/uunf/default.nix +++ b/pkgs/development/ocaml-modules/uunf/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uutf, cmdliner , cmdlinerSupport ? lib.versionAtLeast cmdliner.version "1.1" -, version ? if lib.versionAtLeast ocaml.version "4.14" then "15.1.0" else "15.0.0" +, version ? if lib.versionAtLeast ocaml.version "4.14" then "16.0.0" else "15.0.0" }: let @@ -8,7 +8,7 @@ let webpage = "https://erratique.ch/software/${pname}"; hash = { "15.0.0" = "sha256-B/prPAwfqS8ZPS3fyDDIzXWRbKofwOCyCfwvh9veuug="; - "15.1.0" = "sha256-D8yvb7hVWaYxMqMZ5089/5tWDfvyGXKUOjhfU/4zSeQ="; + "16.0.0" = "sha256-iQNkT1av6ONJXn3yWbNbEVV8lKGYOKh/nPU0tkUdX64="; }."${version}"; in diff --git a/pkgs/development/php-packages/spx/default.nix b/pkgs/development/php-packages/spx/default.nix index caab4d59335a..d861eab67a0b 100644 --- a/pkgs/development/php-packages/spx/default.nix +++ b/pkgs/development/php-packages/spx/default.nix @@ -6,7 +6,7 @@ }: let - version = "0.4.16"; + version = "0.4.17"; in buildPecl { inherit version; @@ -16,7 +16,7 @@ buildPecl { owner = "NoiseByNorthwest"; repo = "php-spx"; rev = "v${version}"; - hash = "sha256-1HOLMbCuV1bxi4DV26QOhi93VsBF3NJymk4SMn2ze4g="; + hash = "sha256-MH/0G9KKmwcVsJKpe6uE1xjvykBEWuYU0DIOGfXiLAw="; }; configureFlags = [ "--with-zlib-dir=${zlib.dev}" ]; diff --git a/pkgs/development/python-modules/aiortm/default.nix b/pkgs/development/python-modules/aiortm/default.nix index 7056d56f8599..05263b49c77b 100644 --- a/pkgs/development/python-modules/aiortm/default.nix +++ b/pkgs/development/python-modules/aiortm/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { pname = "aiortm"; - version = "0.9.0"; + version = "0.9.7"; pyproject = true; disabled = pythonOlder "3.12"; @@ -28,7 +28,7 @@ buildPythonPackage rec { owner = "MartinHjelmare"; repo = "aiortm"; rev = "refs/tags/v${version}"; - hash = "sha256-fGUD0Ne7S2MyR4ilKy6GGzuWE+nO/DWMnBex4YZbXc8="; + hash = "sha256-dkQihn2x6WHEPA4bbbeONhQlFXR0xc1vC1A+sWAhSl8="; }; pythonRelaxDeps = [ "typer" ]; diff --git a/pkgs/development/python-modules/datafusion/default.nix b/pkgs/development/python-modules/datafusion/default.nix index b7c68f839e87..96ac76d17530 100644 --- a/pkgs/development/python-modules/datafusion/default.nix +++ b/pkgs/development/python-modules/datafusion/default.nix @@ -12,6 +12,7 @@ Security, SystemConfiguration, typing-extensions, + pythonOlder, }: let @@ -19,16 +20,16 @@ let name = "arrow-testing"; owner = "apache"; repo = "arrow-testing"; - rev = "5bab2f264a23f5af68f69ea93d24ef1e8e77fc88"; - hash = "sha256-Pxx8ohUpXb5u1995IvXmxQMqWiDJ+7LAll/AjQP7ph8="; + rev = "4d209492d514c2d3cb2d392681b9aa00e6d8da1c"; + hash = "sha256-IkiCbuy0bWyClPZ4ZEdkEP7jFYLhM7RCuNLd6Lazd4o="; }; parquet-testing = fetchFromGitHub { name = "parquet-testing"; owner = "apache"; repo = "parquet-testing"; - rev = "e13af117de7c4f0a4d9908ae3827b3ab119868f3"; - hash = "sha256-rVI9zyk9IRDlKv4u8BeMb0HRdWLfCpqOlYCeUdA7BB8="; + rev = "50af3d8ce206990d81014b1862e5ce7380dc3e08"; + hash = "sha256-edyv/r5olkj09aHtm8LHZY0b3jUtLNUcufwI41qKYaY="; }; in @@ -66,8 +67,7 @@ buildPythonPackage rec { dependencies = [ pyarrow - typing-extensions - ]; + ] ++ lib.optionals (pythonOlder "3.13") [ typing-extensions ]; nativeCheckInputs = [ pytestCheckHook diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix index 1a560f24f770..cf5b3ed3568d 100644 --- a/pkgs/development/python-modules/duckdb-engine/default.nix +++ b/pkgs/development/python-modules/duckdb-engine/default.nix @@ -5,6 +5,7 @@ pytestCheckHook, pythonAtLeast, pythonOlder, + python, duckdb, hypothesis, pandas, @@ -63,6 +64,15 @@ buildPythonPackage rec { "duckdb_engine/tests/test_datatypes.py" ]; + disabledTests = [ + # incompatible with duckdb 1.1.1 + "test_with_cache" + ] ++ lib.optionals (python.pythonVersion == "3.11") [ + # incompatible with duckdb 1.1.1 + "test_all_types_reflection" + "test_nested_types" + ]; + pythonImportsCheck = [ "duckdb_engine" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix index 7631a36d3785..16f3e395e762 100644 --- a/pkgs/development/python-modules/ibis-framework/default.nix +++ b/pkgs/development/python-modules/ibis-framework/default.nix @@ -5,20 +5,19 @@ pythonOlder, pytestCheckHook, atpublic, - bidict, black, clickhouse-connect, dask, datafusion, db-dtypes, duckdb, + fetchpatch, filelock, geopandas, google-cloud-bigquery, google-cloud-bigquery-storage, graphviz, hypothesis, - multipledispatch, numpy, oracledb, packaging, @@ -57,25 +56,24 @@ }: let testBackends = [ - "datafusion" "duckdb" - "pandas" "sqlite" + "datafusion" ]; ibisTestingData = fetchFromGitHub { name = "ibis-testing-data"; owner = "ibis-project"; repo = "testing-data"; - # https://github.com/ibis-project/ibis/blob/9.1.0/nix/overlay.nix#L20-L26 - rev = "6737d1cb5951cabaccd095a3ae62a93dbd11ecb9"; - hash = "sha256-MoVTZPWh4KVlrICYACrgfeLdl/fqoa1iweNg3zUtdrs="; + # https://github.com/ibis-project/ibis/blob/9.5.0/nix/overlay.nix#L20-L26 + rev = "b26bd40cf29004372319df620c4bbe41420bb6f8"; + sha256 = "sha256-1fenQNQB+Q0pbb0cbK2S/UIwZDE4PXXG15MH3aVbyLU="; }; in buildPythonPackage rec { pname = "ibis-framework"; - version = "9.1.0"; + version = "9.5.0"; pyproject = true; disabled = pythonOlder "3.10"; @@ -85,9 +83,18 @@ buildPythonPackage rec { repo = "ibis"; owner = "ibis-project"; rev = "refs/tags/${version}"; - hash = "sha256-GmzmXzYMs7K7B//is3ZoD4muPAkb0tM56zFBbsA+NEo="; + hash = "sha256-6ebw/E3jZFMHKqC5ZY//2Ke0NrklyoGp5JGKBfDxy40="; }; + patches = [ + # remove after the 10.0 release + (fetchpatch { + name = "ibis-framework-duckdb-1.1.1.patch"; + url = "https://github.com/ibis-project/ibis/commit/a54eceabac1d6592e9f6ab0ca7749e37a748c2ad.patch"; + hash = "sha256-j5BPYVqnEF9GQV5N3/VhFUCdsEwAIOQC0KfZ5LNBSRg="; + }) + ]; + nativeBuildInputs = [ poetry-core poetry-dynamic-versioning @@ -98,16 +105,9 @@ buildPythonPackage rec { propagatedBuildInputs = [ atpublic - bidict - multipledispatch - numpy - pandas parsy - pyarrow - pyarrow-hotfix python-dateutil pytz - rich sqlglot toolz typing-extensions @@ -124,13 +124,17 @@ buildPythonPackage rec { pytest-randomly pytest-snapshot pytest-timeout + # this dependency is still needed due to use of strict markers and + # `pytest.mark.xdist_group` in the ibis codebase pytest-xdist ] ++ lib.concatMap (name: optional-dependencies.${name}) testBackends; + dontUsePytestXdist = true; + pytestFlagsArray = [ - "--dist=loadgroup" "-m" - "'${lib.concatStringsSep " or " testBackends} or core'" + # tpcds and tpch are slow, so disable them + "'not tpcds and not tpch and (${lib.concatStringsSep " or " testBackends} or core)'" ]; disabledTests = [ @@ -142,6 +146,7 @@ buildPythonPackage rec { "test_register_sqlite" # requires network connection "test_s3_403_fallback" + "test_hugging_face" # requires pytest 8.2+ "test_roundtrip_delta" ]; @@ -172,44 +177,131 @@ buildPythonPackage rec { db-dtypes google-cloud-bigquery google-cloud-bigquery-storage + pyarrow + pyarrow-hotfix pydata-google-auth + numpy + pandas + rich ]; - clickhouse = [ clickhouse-connect ]; - dask = [ - dask - regex - packaging + clickhouse = [ + clickhouse-connect + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + datafusion = [ + datafusion + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + druid = [ + pydruid + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + duckdb = [ + duckdb + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + flink = [ + pyarrow + pyarrow-hotfix + numpy + pandas + rich ]; - datafusion = [ datafusion ]; - druid = [ pydruid ]; - duckdb = [ duckdb ]; - flink = [ ]; geospatial = [ geopandas shapely ]; - mssql = [ pyodbc ]; - mysql = [ pymysql ]; + mssql = [ + pyodbc + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + mysql = [ + pymysql + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; oracle = [ oracledb packaging - ]; - pandas = [ - regex - packaging + pyarrow + pyarrow-hotfix + numpy + pandas + rich ]; polars = [ polars packaging + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + postgres = [ + psycopg2 + pyarrow + pyarrow-hotfix + numpy + pandas + rich ]; - postgres = [ psycopg2 ]; pyspark = [ pyspark packaging + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + snowflake = [ + snowflake-connector-python + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + sqlite = [ + regex + pyarrow + pyarrow-hotfix + numpy + pandas + rich + ]; + trino = [ + trino-python-client + pyarrow + pyarrow-hotfix + numpy + pandas + rich ]; - snowflake = [ snowflake-connector-python ]; - sqlite = [ regex ]; - trino = [ trino-python-client ]; visualization = [ graphviz ]; decompiler = [ black ]; examples = [ pins ] ++ pins.optional-dependencies.gcs; diff --git a/pkgs/development/python-modules/openai-whisper/default.nix b/pkgs/development/python-modules/openai-whisper/default.nix index 03c76d909a87..871182550d2a 100644 --- a/pkgs/development/python-modules/openai-whisper/default.nix +++ b/pkgs/development/python-modules/openai-whisper/default.nix @@ -27,14 +27,14 @@ buildPythonPackage rec { pname = "whisper"; - version = "20240927"; + version = "20240930"; pyproject = true; src = fetchFromGitHub { owner = "openai"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-tdBLvsfQpoTO0mhV0Ggb+dnJjpIPUNZM7fXODlv/HCA="; + hash = "sha256-6wfHJM2pg+y1qUfVF1VRG86G3CtQ+UNIwMXR8pPi2k4="; }; patches = [ diff --git a/pkgs/development/python-modules/psycopg/default.nix b/pkgs/development/python-modules/psycopg/default.nix index bc55c2d697bc..7d7692018e80 100644 --- a/pkgs/development/python-modules/psycopg/default.nix +++ b/pkgs/development/python-modules/psycopg/default.nix @@ -205,13 +205,16 @@ buildPythonPackage rec { # Mypy typing test "tests/test_typing.py" "tests/crdb/test_typing.py" + # https://github.com/psycopg/psycopg/pull/915 + "tests/test_notify.py" + "tests/test_notify_async.py" ]; pytestFlagsArray = [ "-o" "cache_dir=$TMPDIR" "-m" - "'not refcount and not timing'" + "'not refcount and not timing and not flakey'" # pytest.PytestRemovedIn9Warning: Marks applied to fixtures have no effect "-W" "ignore::pytest.PytestRemovedIn9Warning" diff --git a/pkgs/development/python-modules/pylance/default.nix b/pkgs/development/python-modules/pylance/default.nix index ff66678e664a..1563bcf88dd4 100644 --- a/pkgs/development/python-modules/pylance/default.nix +++ b/pkgs/development/python-modules/pylance/default.nix @@ -100,16 +100,21 @@ buildPythonPackage rec { cd python/python/tests ''; - disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ - # AttributeError: module 'torch.distributed' has no attribute 'is_initialized' - "test_convert_int_tensors" - "test_ground_truth" - "test_index_cast_centroids" - "test_index_with_no_centroid_movement" - "test_iter_filter" - "test_iter_over_dataset_fixed_shape_tensor" - "test_iter_over_dataset_fixed_size_lists" - ]; + disabledTests = + lib.optionals stdenv.hostPlatform.isDarwin [ + # AttributeError: module 'torch.distributed' has no attribute 'is_initialized' + "test_convert_int_tensors" + "test_ground_truth" + "test_index_cast_centroids" + "test_index_with_no_centroid_movement" + "test_iter_filter" + "test_iter_over_dataset_fixed_shape_tensor" + "test_iter_over_dataset_fixed_size_lists" + ] + ++ [ + # incompatible with duckdb 1.1.1 + "test_duckdb_pushdown_extension_types" + ]; passthru.updateScript = nix-update-script { extraArgs = [ diff --git a/pkgs/development/python-modules/sqlglot/default.nix b/pkgs/development/python-modules/sqlglot/default.nix index f146f9d8a7f5..d03bccf6b66d 100644 --- a/pkgs/development/python-modules/sqlglot/default.nix +++ b/pkgs/development/python-modules/sqlglot/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "sqlglot"; - version = "23.12.1"; + version = "25.20.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { repo = "sqlglot"; owner = "tobymao"; rev = "refs/tags/v${version}"; - hash = "sha256-VUG/l1iZ/8vAJwhktN/tx8U8KVLgaghUPArtxEyIA54="; + hash = "sha256-RE9Hbb3g6j4j5X2ksjcBZ610RcV7Zd3YaKaBIUyD2vU="; }; nativeBuildInputs = [ @@ -39,11 +39,6 @@ buildPythonPackage rec { duckdb ]; - disabledTestPaths = [ - # These integration tests assume a running Spark instance - "tests/dataframe/integration" - ]; - pythonImportsCheck = [ "sqlglot" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/ufomerge/default.nix b/pkgs/development/python-modules/ufomerge/default.nix index 79b3436a28bb..99e7666584e1 100644 --- a/pkgs/development/python-modules/ufomerge/default.nix +++ b/pkgs/development/python-modules/ufomerge/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "ufomerge"; - version = "1.8.1"; + version = "1.8.2"; pyproject = true; src = fetchFromGitHub { owner = "googlefonts"; repo = "ufomerge"; rev = "refs/tags/v${version}"; - hash = "sha256-Bo/KJhJTIAGNDT2QoXRKGMYLQuqjfCe5yaCsFcQ4A64="; + hash = "sha256-D+BhKCKWgprQn+eXFgwnSN/06+JF5CiUS0VAS1Kvedw="; }; nativeBuildInputs = [ pythonRelaxDepsHook ]; diff --git a/pkgs/development/tools/build-managers/jam/default.nix b/pkgs/development/tools/build-managers/jam/default.nix deleted file mode 100644 index 76379bd7ecc2..000000000000 --- a/pkgs/development/tools/build-managers/jam/default.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ lib, stdenv, fetchurl, bison, buildPackages, pkgsBuildTarget }: - -let - mkJam = { pname, version, src, meta ? { } }: stdenv.mkDerivation { - inherit pname version src; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ bison ]; - - # Jam uses c89 conventions - env.NIX_CFLAGS_COMPILE = "-std=c89"; - - # Jambase expects ar to have flags. - preConfigure = '' - export AR="$AR rc" - ''; - - # When cross-compiling, we need to set the preprocessor macros - # OSMAJOR/OSMINOR/OSPLAT to the values from the target platform, not the - # host platform. This looks a little ridiculous because the vast majority of - # build tools don't embed target-specific information into their binary, but - # in this case we behave more like a compiler than a make(1)-alike. - postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) '' - cat >>jam.h <