diff --git a/ci/eval/attrpaths.nix b/ci/eval/attrpaths.nix new file mode 100644 index 000000000000..6938e5dfe3cb --- /dev/null +++ b/ci/eval/attrpaths.nix @@ -0,0 +1,83 @@ +# This expression will, as efficiently as possible, dump a +# *superset* of all attrpaths of derivations which might be +# part of a release on *any* platform. +# +# This expression runs single-threaded under all current Nix +# implementations, but much faster and with much less memory +# used than ./outpaths.nix itself. +# +# Once you have the list of attrnames you can split it up into +# $NUM_CORES batches and evaluate the outpaths separately for each +# batch, in parallel. +# +# To dump the attrnames: +# +# nix-instantiate --eval --strict --json ci/eval/attrpaths.nix -A names +# +{ + lib ? import (path + "/lib"), + trace ? false, + path ? ./../.., +}: +let + + # TODO: Use mapAttrsToListRecursiveCond when this PR lands: + # https://github.com/NixOS/nixpkgs/pull/395160 + justAttrNames = + path: value: + let + result = + if path == [ "AAAAAASomeThingsFailToEvaluate" ] || !(lib.isAttrs value) then + [ ] + else if lib.isDerivation value then + [ path ] + else + lib.pipe value [ + (lib.mapAttrsToList ( + name: value: + lib.addErrorContext "while evaluating package set attribute path '${ + lib.showAttrPath (path ++ [ name ]) + }'" (justAttrNames (path ++ [ name ]) value) + )) + lib.concatLists + ]; + in + lib.traceIf trace "** ${lib.showAttrPath path}" result; + + outpaths = import ./outpaths.nix { + inherit path; + attrNamesOnly = true; + }; + + paths = [ + # Some of the following are based on variants, which are disabled with `attrNamesOnly = true`. + # Until these have been removed from release.nix / hydra, we manually add them to the list. + [ + "pkgsLLVM" + "stdenv" + ] + [ + "pkgsArocc" + "stdenv" + ] + [ + "pkgsZig" + "stdenv" + ] + [ + "pkgsStatic" + "stdenv" + ] + [ + "pkgsMusl" + "stdenv" + ] + ] + ++ justAttrNames [ ] outpaths; + + names = map lib.showAttrPath paths; + +in +{ + inherit paths names; +} diff --git a/pkgs/top-level/release-outpaths-parallel.nix b/ci/eval/chunk.nix similarity index 82% rename from pkgs/top-level/release-outpaths-parallel.nix rename to ci/eval/chunk.nix index 46d10c6a9504..43c684074602 100644 --- a/pkgs/top-level/release-outpaths-parallel.nix +++ b/ci/eval/chunk.nix @@ -1,5 +1,4 @@ -# This file works in tandem with ../../ci/eval/default.nix -# It turns ./release-outpaths.nix into chunks of a fixed size +# This turns ./outpaths.nix into chunks of a fixed size. { lib ? import ../../lib, path ? ../.., @@ -7,7 +6,6 @@ attrpathFile, chunkSize, myChunk, - checkMeta, includeBroken, systems, }: @@ -16,9 +14,9 @@ let attrpaths = lib.importJSON attrpathFile; myAttrpaths = lib.sublist (chunkSize * myChunk) chunkSize attrpaths; - unfiltered = import ./release-outpaths.nix { + unfiltered = import ./outpaths.nix { inherit path; - inherit checkMeta includeBroken systems; + inherit includeBroken systems; }; # Turns the unfiltered recursive attribute set into one that is limited to myAttrpaths diff --git a/ci/eval/compare/default.nix b/ci/eval/compare/default.nix index cfd9b78510d0..f5c1b1b1dab0 100644 --- a/ci/eval/compare/default.nix +++ b/ci/eval/compare/default.nix @@ -105,7 +105,6 @@ let ) rebuildsByKernel # Set the "11.by: package-maintainer" label to whether all packages directly # changed are maintained by the PR's author. - # (https://github.com/NixOS/ofborg/blob/df400f44502d4a4a80fa283d33f2e55a4e43ee90/ofborg/src/tagger.rs#L83-L88) // { "11.by: package-maintainer" = maintainers ? ${githubAuthorId} diff --git a/ci/eval/compare/maintainers.nix b/ci/eval/compare/maintainers.nix index 488eb0ea9201..d0c5057a0499 100644 --- a/ci/eval/compare/maintainers.nix +++ b/ci/eval/compare/maintainers.nix @@ -1,7 +1,6 @@ { lib, }: -# Almost directly vendored from https://github.com/NixOS/ofborg/blob/5a4e743f192fb151915fcbe8789922fa401ecf48/ofborg/src/maintainers.nix { changedattrs, changedpathsjson, diff --git a/ci/eval/default.nix b/ci/eval/default.nix index 14005ea401af..a379594dbc6d 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -26,6 +26,11 @@ let root = ../..; fileset = unions ( map (lib.path.append ../..) [ + ".version" + "ci/supportedSystems.json" + "ci/eval/attrpaths.nix" + "ci/eval/chunk.nix" + "ci/eval/outpaths.nix" "default.nix" "doc" "lib" @@ -33,8 +38,6 @@ let "modules" "nixos" "pkgs" - ".version" - "ci/supportedSystems.json" ] ); }; @@ -60,7 +63,7 @@ let export GC_INITIAL_HEAP_SIZE=4g command time -f "Attribute eval done [%MKB max resident, %Es elapsed] %C" \ nix-instantiate --eval --strict --json --show-trace \ - "$src/pkgs/top-level/release-attrpaths-superset.nix" \ + "$src/ci/eval/attrpaths.nix" \ -A paths \ -I "$src" \ --option restrict-eval true \ @@ -78,7 +81,6 @@ let attrpathFile ? "${attrpathsSuperset { inherit evalSystem; }}/paths.json", # The number of attributes per chunk, see ./README.md for more info. chunkSize ? 5000, - checkMeta ? true, # Don't try to eval packages marked as broken. includeBroken ? false, @@ -99,7 +101,7 @@ let set +e command time -o "$outputDir/timestats/$myChunk" \ -f "Chunk $myChunk on $system done [%MKB max resident, %Es elapsed] %C" \ - nix-env -f "${nixpkgs}/pkgs/top-level/release-outpaths-parallel.nix" \ + nix-env -f "${nixpkgs}/ci/eval/chunk.nix" \ --eval-system "$system" \ --option restrict-eval true \ --option allow-import-from-derivation false \ @@ -110,7 +112,6 @@ let --arg myChunk "$myChunk" \ --arg attrpathFile "${attrpathFile}" \ --arg systems "[ \"$system\" ]" \ - --arg checkMeta ${lib.boolToString checkMeta} \ --arg includeBroken ${lib.boolToString includeBroken} \ -I ${nixpkgs} \ -I ${attrpathFile} \ diff --git a/pkgs/top-level/release-outpaths.nix b/ci/eval/outpaths.nix similarity index 85% rename from pkgs/top-level/release-outpaths.nix rename to ci/eval/outpaths.nix index 18840848c185..4efe8d1dc061 100644 --- a/pkgs/top-level/release-outpaths.nix +++ b/ci/eval/outpaths.nix @@ -1,19 +1,16 @@ #!/usr/bin/env nix-shell # When using as a callable script, passing `--argstr path some/path` overrides $PWD. -#!nix-shell -p nix -i "nix-env -qaP --no-name --out-path --arg checkMeta true -f pkgs/top-level/release-outpaths.nix" +#!nix-shell -p nix -i "nix-env -qaP --no-name --out-path -f ci/eval/outpaths.nix" -# Vendored from: -# https://raw.githubusercontent.com/NixOS/ofborg/74f38efa7ef6f0e8e71ec3bfc675ae4fb57d7491/ofborg/src/outpaths.nix { - checkMeta, includeBroken ? true, # set this to false to exclude meta.broken packages from the output path ? ./../.., - # used by pkgs/top-level/release-attrnames-superset.nix + # used by ./attrpaths.nix attrNamesOnly ? false, # Set this to `null` to build for builtins.currentSystem only - systems ? builtins.fromJSON (builtins.readFile ../../ci/supportedSystems.json), + systems ? builtins.fromJSON (builtins.readFile ../supportedSystems.json), }: let lib = import (path + "/lib"); @@ -30,7 +27,7 @@ let allowUnfree = true; allowInsecurePredicate = x: true; allowVariants = !attrNamesOnly; - checkMeta = checkMeta; + checkMeta = true; handleEvalIssue = reason: errormsg: diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index adff696ab92b..2c33fdab116d 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -65,6 +65,13 @@ - `ansible-later` has been removed because it was discontinued by the author. +- `k3s` airgap images passthru attributes have changed: + - `imagesList` was removed + - `airgapImages` was renamed to `airgap-images` + - `airgapImagesAmd64` was renamed to `airgap-images-amd64-tar-zst` + - `airgapImagesArm64` was renamed to `airgap-images-arm64-tar-zst` + - `airgapImagesArm` was renamed to `airgap-images-arm-tar-zst` + - `stalwart-mail` since `0.13.0` "introduces a significant redesign of the MTA’s delivery and queueing subsystem". See [the upgrading announcement for the `0.13.0` release](https://github.com/stalwartlabs/stalwart/blob/89b561b5ca1c5a11f2a768b4a2cfef0f473b7a01/UPGRADING.md#upgrading-from-v012x-and-v011x-to-v013x). - Greetd and its original greeters (`tuigreet`, `gtkgreet`, `qtgreet`, `regreet`, `wlgreet`) were moved from `greetd` namespace to top level (`greetd.tuigreet` -> `tuigreet`, `greetd.greetd` -> `greetd`, etc). The original attrs are available for compatibility as passthrus of `greetd`, but will emit a warning. They will be removed in future releases. diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index a46d85828993..23a3287c8cee 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -21325,6 +21325,13 @@ githubId = 23345803; name = "Szymon Scholz"; }; + ratakor = { + name = "Ratakor"; + github = "ratakor"; + githubId = 45130910; + email = "ratakor@disroot.org"; + keys = [ { fingerprint = "B60F 8F80 D6CD C5D2 58CF 14C3 241B 1CBE 567B 287E"; } ]; + }; ratcornu = { email = "ratcornu+programmation@skaven.org"; github = "RatCornu"; diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 40d4ec599c74..d176a850962f 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -62,6 +62,8 @@ - [TuneD](https://tuned-project.org/), a system tuning service for Linux. Available as [services.tuned](#opt-services.tuned.enable). +- [yubikey-manager](https://github.com/Yubico/yubikey-manager), a tool for configuring YubiKey devices. Available as [programs.yubikey-manager](#opt-programs.yubikey-manager.enable). + - [Draupnir](https://github.com/the-draupnir-project/draupnir), a Matrix moderation bot. Available as [services.draupnir](#opt-services.draupnir.enable). - [postfix-tlspol](https://github.com/Zuplu/postfix-tlspol), MTA-STS and DANE resolver and TLS policy server for Postfix. Available as [services.postfix-tlspol](#opt-services.postfix-tlspol.enable). diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix index 2fa265cda818..d4caef1a09ab 100644 --- a/nixos/modules/installer/tools/nix-fallback-paths.nix +++ b/nixos/modules/installer/tools/nix-fallback-paths.nix @@ -1,8 +1,8 @@ { - x86_64-linux = "/nix/store/gy397nw6h414f4l4vxny1wg8cn4i955d-nix-2.28.4"; - i686-linux = "/nix/store/k192aqw8zh71zrli5abqd5wg01bqwmh9-nix-2.28.4"; - aarch64-linux = "/nix/store/cp0bzvj8vf5y2z0nimq57crcq6h419fj-nix-2.28.4"; - riscv64-linux = "/nix/store/zav2zzhxld8fqvj7hb5z83ggd3ij6888-nix-riscv64-unknown-linux-gnu-2.28.4"; - x86_64-darwin = "/nix/store/gj4y690ligr5gawmpnkiw2qs087m068w-nix-2.28.4"; - aarch64-darwin = "/nix/store/nb6nkjac7nj242j3m56pkdkbikfjw343-nix-2.28.4"; + x86_64-linux = "/nix/store/0bvxg6fr61zrlhi93azhp8yfhb5rcrs9-nix-2.28.5"; + i686-linux = "/nix/store/m5na49mxl4xpcs3xh086s5v08jqjhbmb-nix-2.28.5"; + aarch64-linux = "/nix/store/95rhdhjfwbi7ilwy5j0knj1852p7x6c6-nix-2.28.5"; + riscv64-linux = "/nix/store/cqiiv36c773023p6lp9h4ff57fjlzisk-nix-riscv64-unknown-linux-gnu-2.28.5"; + x86_64-darwin = "/nix/store/xiw5636h616yi3balx96pmdk6b052rhk-nix-2.28.5"; + aarch64-darwin = "/nix/store/sax8chv80d9fy4s0y3ahsr9y4kc2f0ib-nix-2.28.5"; } diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index d65241265b31..6390837ca4cb 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -362,6 +362,7 @@ ./programs/xwayland.nix ./programs/yazi.nix ./programs/ydotool.nix + ./programs/yubikey-manager.nix ./programs/yubikey-touch-detector.nix ./programs/zmap.nix ./programs/zoom-us.nix diff --git a/nixos/modules/programs/yubikey-manager.nix b/nixos/modules/programs/yubikey-manager.nix new file mode 100644 index 000000000000..1dc2b15e202c --- /dev/null +++ b/nixos/modules/programs/yubikey-manager.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.programs.yubikey-manager; +in +{ + options = { + programs.yubikey-manager = { + enable = lib.mkEnableOption "yubikey-manager"; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + services = { + pcscd.enable = true; + + # The udev rules we want aren't included in the yubikey-manager package, but + # we can get them from yubikey-personalization. + udev.packages = [ pkgs.yubikey-personalization ]; + }; + }; +} diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py index bfae30eb3aa1..9f36dff3cc67 100644 --- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py +++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py @@ -258,6 +258,8 @@ def remove_old_entries(gens: list[SystemIdentifier]) -> None: bootspec = get_bootspec(gen.profile, gen.generation) known_paths.append(copy_from_file(bootspec.kernel, True).name) known_paths.append(copy_from_file(bootspec.initrd, True).name) + if bootspec.devicetree is not None: + known_paths.append(copy_from_file(bootspec.devicetree, True).name) for path in (BOOT_MOUNT_POINT / "loader/entries").glob("nixos*-generation-[1-9]*.conf", case_sensitive=False): if rex_profile.match(path.name): prof = rex_profile.sub(r"\1", path.name) diff --git a/nixos/tests/k3s/airgap-images.nix b/nixos/tests/k3s/airgap-images.nix index 84a535feb7fc..79fd2c77025b 100644 --- a/nixos/tests/k3s/airgap-images.nix +++ b/nixos/tests/k3s/airgap-images.nix @@ -22,21 +22,13 @@ import ../make-test-python.nix ( "--disable servicelb" "--disable traefik" ]; - images = [ k3s.airgapImages ]; + images = [ k3s.airgap-images ]; }; }; testScript = '' - import json - - start_all() machine.wait_for_unit("k3s") machine.wait_until_succeeds("journalctl -r --no-pager -u k3s | grep \"Imported images from /var/lib/rancher/k3s/agent/images/\"") - images = json.loads(machine.succeed("crictl img -o json")) - image_names = [i["repoTags"][0] for i in images["images"]] - with open("${k3s.imagesList}") as expected_images: - for line in expected_images: - assert line.rstrip() in image_names, f"The image {line.rstrip()} is not present in the airgap images archive" ''; } ) diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix index 5eb50ac2ef42..c5056d2b5f81 100644 --- a/pkgs/applications/graphics/ImageMagick/default.nix +++ b/pkgs/applications/graphics/ImageMagick/default.nix @@ -85,13 +85,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "imagemagick"; - version = "7.1.2-2"; + version = "7.1.2-3"; src = fetchFromGitHub { owner = "ImageMagick"; repo = "ImageMagick"; tag = finalAttrs.version; - hash = "sha256-bQzHZGTr3dl8G7cMSjC5Is+H/7pnRtqgp/rvYZeJDu0="; + hash = "sha256-L4apUdF1VJXSVqWAyjYFG/4qDJoJ0ObmSOpd90kqXsU="; }; outputs = [ diff --git a/pkgs/applications/networking/cluster/k3s/1_30/images-versions.json b/pkgs/applications/networking/cluster/k3s/1_30/images-versions.json index c37737fbbfd6..9ec9d1b5d8a2 100644 --- a/pkgs/applications/networking/cluster/k3s/1_30/images-versions.json +++ b/pkgs/applications/networking/cluster/k3s/1_30/images-versions.json @@ -1,18 +1,26 @@ { - "airgap-images-amd64": { + "airgap-images-amd64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-amd64.tar.gz", + "sha256": "f98a57f7b25a4537096fbe9755f96cfd05bfe6fc6315f111c0f44e1abf4aad6d" + }, + "airgap-images-amd64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-amd64.tar.zst", "sha256": "9bda99cde833c4e13fb4d35fa46fd57d4b1a2eefc33e00fa352ce686c871c842" }, - "airgap-images-arm": { + "airgap-images-arm-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm.tar.gz", + "sha256": "33df3a2b155118198c48e66426a04292a348aa53fef126a3cb8e4fe7aea83ccc" + }, + "airgap-images-arm-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm.tar.zst", "sha256": "d40a78ff14b40547bca6d05db3d7e767b272bb9257628ebd3905d1659bc49bd5" }, - "airgap-images-arm64": { + "airgap-images-arm64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm64.tar.gz", + "sha256": "bba9c2e417ece797a5ae8bf9346bb35dc8ab163828c801a2cb512d6097610b52" + }, + "airgap-images-arm64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm64.tar.zst", "sha256": "6561f91f14c8419c9d1c20fb9af7948757d87bd91855b376058d9f2e16010452" - }, - "images-list": { - "url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-images.txt", - "sha256": "1f87ad26acac5e553279a64942c0e3eeef5c026cc2f82661d358990848672584" } } diff --git a/pkgs/applications/networking/cluster/k3s/1_31/images-versions.json b/pkgs/applications/networking/cluster/k3s/1_31/images-versions.json index 3eb41c7c1b00..8ea08a211171 100644 --- a/pkgs/applications/networking/cluster/k3s/1_31/images-versions.json +++ b/pkgs/applications/networking/cluster/k3s/1_31/images-versions.json @@ -1,18 +1,26 @@ { - "airgap-images-amd64": { + "airgap-images-amd64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-amd64.tar.gz", + "sha256": "fa4f87e7e82c0e613f854eedf8f64d2cdabbd127f3ae84707ed1ca59e2137855" + }, + "airgap-images-amd64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-amd64.tar.zst", "sha256": "c98ad7590af33ef7e148920eb809dfd0f8145a623fdd8d32c6efeecab6088412" }, - "airgap-images-arm": { + "airgap-images-arm-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm.tar.gz", + "sha256": "0b6009407069fdd684d9627c5fa4bdb31ea4644172f1f429a2cce15d2c18631d" + }, + "airgap-images-arm-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm.tar.zst", "sha256": "c1bd7557836538592dbd59f798e7a4b91d7aef74c8f9f71631060c96a5288dd6" }, - "airgap-images-arm64": { + "airgap-images-arm64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm64.tar.gz", + "sha256": "6fa41db4ee001c1db8a404dd38f17f2426f27f688f9f7a2a76f4ef336f51c886" + }, + "airgap-images-arm64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm64.tar.zst", "sha256": "97f0db38f57a2dc63167795620ba34a89348d874ecc91fbf3d8d962dc1392e47" - }, - "images-list": { - "url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-images.txt", - "sha256": "1f87ad26acac5e553279a64942c0e3eeef5c026cc2f82661d358990848672584" } } diff --git a/pkgs/applications/networking/cluster/k3s/1_32/images-versions.json b/pkgs/applications/networking/cluster/k3s/1_32/images-versions.json index b5c452ddc819..5755fbf56aff 100644 --- a/pkgs/applications/networking/cluster/k3s/1_32/images-versions.json +++ b/pkgs/applications/networking/cluster/k3s/1_32/images-versions.json @@ -1,18 +1,26 @@ { - "airgap-images-amd64": { + "airgap-images-amd64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-amd64.tar.gz", + "sha256": "f6a8720aa9bb03d0c8a97a93e994557292f1efba1fa6648cd8a07830622ce748" + }, + "airgap-images-amd64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-amd64.tar.zst", "sha256": "965f5767c08cffc96bf0967813e7c3fec4c41309e9952a480f0a50865bebd039" }, - "airgap-images-arm": { + "airgap-images-arm-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm.tar.gz", + "sha256": "9aa6f9f33e58e04fb9d8f9cd5c51dd01c6092d7b5434f84341b2f74bc8de783e" + }, + "airgap-images-arm-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm.tar.zst", "sha256": "57ab9c306cc96f8dd925bc788c80e49c2d13ee7a222a12235fb525529ad25ac0" }, - "airgap-images-arm64": { + "airgap-images-arm64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm64.tar.gz", + "sha256": "9633b71655ed0f4af556c148f9bf7753221b3c9b42a8d902391187789302adca" + }, + "airgap-images-arm64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm64.tar.zst", "sha256": "1aa05a55492ba0872fa8a0ff518d6e947869bea32dc2b8e5223bdcf53450c7f9" - }, - "images-list": { - "url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-images.txt", - "sha256": "e786e9a6f0331a92a2257a12995028761bfee1b5bfaac866025b64162e69bfe0" } } diff --git a/pkgs/applications/networking/cluster/k3s/1_33/images-versions.json b/pkgs/applications/networking/cluster/k3s/1_33/images-versions.json index 6e80722b9f5a..bd07f3e8f7a2 100644 --- a/pkgs/applications/networking/cluster/k3s/1_33/images-versions.json +++ b/pkgs/applications/networking/cluster/k3s/1_33/images-versions.json @@ -1,18 +1,26 @@ { - "airgap-images-amd64": { + "airgap-images-amd64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-amd64.tar.gz", + "sha256": "64690dc963f6cbff8adb175a1bc41e6bf207734a9a214362544a36361a2d8350" + }, + "airgap-images-amd64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-amd64.tar.zst", "sha256": "51b6ddeafa465e542f0707272736100916886dd49abcb1420ee52878dd3638a9" }, - "airgap-images-arm": { + "airgap-images-arm-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm.tar.gz", + "sha256": "878d17722dd98e7d88de93a83606e0c9b0d7587c7e4a043559b5236a353fb224" + }, + "airgap-images-arm-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm.tar.zst", "sha256": "339dd2b33b40f03bf95ee2e5dcb8e543ab6852e156cb8aaebe3885717a2966b5" }, - "airgap-images-arm64": { + "airgap-images-arm64-tar-gz": { + "url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm64.tar.gz", + "sha256": "e4ab063deb50241e60218a3a30ce090a5817daa0f38dacd10651e27b2be28b9e" + }, + "airgap-images-arm64-tar-zst": { "url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm64.tar.zst", "sha256": "c12ec7b122f34eb1f89310b05e66b500a2f49522d7cd4ceb3475a675cab6ebc6" - }, - "images-list": { - "url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-images.txt", - "sha256": "e786e9a6f0331a92a2257a12995028761bfee1b5bfaac866025b64162e69bfe0" } } diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index a165b8f68fb7..d7f98cd7ba93 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -130,38 +130,15 @@ let traefikChart = fetchurl chartVersions.traefik; traefik-crdChart = fetchurl chartVersions.traefik-crd; - mutFirstChar = - f: s: - let - firstChar = f (lib.substring 0 1 s); - rest = lib.substring 1 (-1) s; - in - firstChar + rest; - - kebabToCamel = - s: - mutFirstChar lib.toLower (lib.concatMapStrings (mutFirstChar lib.toUpper) (lib.splitString "-" s)); - - # finds the images archive for the desired architecture, throws in case no suitable archive is found - findImagesArchive = - arch: - let - imagesVersionsNames = builtins.attrNames imagesVersions; - in - lib.findFirst ( - n: lib.hasInfix arch n - ) (throw "k3s: no airgap images for ${arch} available") imagesVersionsNames; - # a shortcut that provides the images archive for the host platform. Currently only supports # aarch64 (arm64) and x86_64 (amd64), throws on other architectures. - airgapImages = fetchurl ( - if stdenv.hostPlatform.isAarch64 then - imagesVersions.${findImagesArchive "arm64"} - else if stdenv.hostPlatform.isx86_64 then - imagesVersions.${findImagesArchive "amd64"} - else - throw "k3s: airgap images cannot be found automatically for architecture ${stdenv.hostPlatform.linuxArch}, consider using an image archive with an explicit architecture." - ); + airgap-images = + { + x86_64-linux = fetchurl imagesVersions.airgap-images-amd64-tar-zst; + aarch64-linux = fetchurl imagesVersions.airgap-images-arm64-tar-zst; + } + .${stdenv.hostPlatform.system} + or (throw "k3s: no airgap images available for system ${stdenv.hostPlatform.system}, consider using an image archive with an explicit architecture."); # so, k3s is a complicated thing to package # This derivation attempts to avoid including any random binaries from the @@ -467,7 +444,7 @@ buildGoModule rec { ''; passthru = { - inherit airgapImages; + inherit airgap-images; k3sCNIPlugins = k3sCNIPlugins; k3sContainerd = k3sContainerd; k3sRepo = k3sRepo; @@ -481,10 +458,13 @@ buildGoModule rec { lib.mapAttrs (name: value: nixosTests.k3s.${name}.${k3s_version}) nixosTests.k3s; tests = passthru.mkTests k3sVersion; updateScript = updateScript; + imagesList = throw "k3s.imagesList was removed"; + airgapImages = throw "k3s.airgapImages was renamed to k3s.airgap-images"; + airgapImagesAmd64 = throw "k3s.airgapImagesAmd64 was renamed to k3s.airgap-images-amd64-tar-zst"; + airgapImagesArm64 = throw "k3s.airgapImagesArm64 was renamed to k3s.airgap-images-arm64-tar-zst"; + airgapImagesArm = throw "k3s.airgapImagesArm was renamed to k3s.airgap-images-arm-tar-zst"; } - // (lib.mapAttrs' ( - name: _: lib.nameValuePair (kebabToCamel name) (fetchurl imagesVersions.${name}) - ) imagesVersions); + // (lib.mapAttrs (_: value: fetchurl value) imagesVersions); meta = baseMeta; } diff --git a/pkgs/applications/networking/cluster/k3s/update-script.sh b/pkgs/applications/networking/cluster/k3s/update-script.sh index 0a1d06a656c0..aced5253abf1 100755 --- a/pkgs/applications/networking/cluster/k3s/update-script.sh +++ b/pkgs/applications/networking/cluster/k3s/update-script.sh @@ -83,22 +83,20 @@ mv chart-versions.nix.update chart-versions.nix SHA256_HASHES="\ $($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-amd64.txt") $($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-arm64.txt") -$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-arm.txt") -$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/k3s-images.txt" | sha256sum | cut -d' ' -f1) k3s-images.txt" +$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-arm.txt")" # Get all airgap images files associated with this release IMAGES_ARCHIVES=$($CURL "https://api.github.com/repos/k3s-io/k3s/releases/tags/v${K3S_VERSION}" | \ - # Filter the assets so that only zstd archives and text files that have "images" in their name remain - jq -r '.assets[] | select(.name | (contains("images") and (endswith(".tar.zst") or endswith("k3s-images.txt")))) | - "\(.name) \(.browser_download_url)"') + # Filter the assets for airgap images archives + jq -r '.assets[] | select(.name | test("^k3s-airgap-images-.*\\.tar\\.")) | "\(.name) \(.browser_download_url)"') # Create a JSON object for each airgap images file and prefetch all download URLs in the process # Combine all JSON objects and write the result to images-versions.json while read -r name url; do # Pick the right hash based on the name sha256=$(grep "$name" <<< "$SHA256_HASHES" | cut -d ' ' -f 1) - # Remove the k3s- prefix and file endings - clean_name=$(sed -e 's/^k3s-//' -e 's/\.tar\.zst//' -e 's/\.txt/-list/' <<< "$name") + # Remove the k3s prefix and replace all dots with hyphens + clean_name=$(sed -e "s/^k3s-//" -e "s/\./-/g" <<< "$name") jq --null-input --arg name "$clean_name" \ --arg url "$url" \ --arg sha256 "$sha256" \ diff --git a/pkgs/by-name/_3/_389-ds-base/package.nix b/pkgs/by-name/_3/_389-ds-base/package.nix index d2ed8b1f4164..9d3dec9e04c4 100644 --- a/pkgs/by-name/_3/_389-ds-base/package.nix +++ b/pkgs/by-name/_3/_389-ds-base/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, autoconf, automake, cargo, @@ -49,6 +50,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-hRTK9xBu8v8+SGa/3IB8Alh/aGUiRRn2LmYOvXy0Yd4="; }; + patches = [ + (fetchpatch { + # https://github.com/389ds/389-ds-base/pull/6930 + name = "389-ds-base-rustc-1_89.patch"; + url = "https://github.com/389ds/389-ds-base/commit/1701419551c246e9dc21778b118220eeb2258125.patch"; + hash = "sha256-trzY/fDH3rs66DWbWI+PY46tIC9ShuVqspMHqEEKZYA="; + }) + ]; + cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; sourceRoot = "${finalAttrs.src.name}/src"; diff --git a/pkgs/by-name/ag/age-plugin-se/package.nix b/pkgs/by-name/ag/age-plugin-se/package.nix index b1b27481805d..3d3fb847dc20 100644 --- a/pkgs/by-name/ag/age-plugin-se/package.nix +++ b/pkgs/by-name/ag/age-plugin-se/package.nix @@ -1,13 +1,14 @@ { lib, fetchFromGitHub, + llvmPackages, swiftPackages, swift, swiftpm, nix-update-script, }: let - inherit (swiftPackages) stdenv; + inherit (llvmPackages) stdenv; in stdenv.mkDerivation (finalAttrs: { pname = "age-plugin-se"; diff --git a/pkgs/by-name/az/azure-cli/extensions-generated.json b/pkgs/by-name/az/azure-cli/extensions-generated.json index 4d0a3bd11a51..46fea7c8919b 100644 --- a/pkgs/by-name/az/azure-cli/extensions-generated.json +++ b/pkgs/by-name/az/azure-cli/extensions-generated.json @@ -36,9 +36,9 @@ }, "aem": { "pname": "aem", - "version": "1.0.0", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/aem-1.0.0-py2.py3-none-any.whl", - "hash": "sha256-3QYsiwJ7avGM4Fg8H88shs3JKBo2cOSh0F39bTN/8vA=", + "version": "1.0.1", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/aem-1.0.1-py2.py3-none-any.whl", + "hash": "sha256-QDkq7GjOpqZSUFXkxrL5OjJwSnGHmRH/8r6N/Amriq0=", "description": "Manage Azure Enhanced Monitoring Extensions for SAP" }, "ai-examples": { @@ -50,23 +50,16 @@ }, "aks-preview": { "pname": "aks-preview", - "version": "18.0.0b15", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-18.0.0b15-py2.py3-none-any.whl", - "hash": "sha256-YjRPELWfLshLQHgZTa7jXS96nyYiZ7h2Gu25/wKvw7c=", + "version": "18.0.0b33", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-18.0.0b33-py2.py3-none-any.whl", + "hash": "sha256-Zkp5Nzl+eQ7PPniDF7/K5II2xIG6OKC3Rhm3ZTpyILc=", "description": "Provides a preview for upcoming AKS features" }, - "akshybrid": { - "pname": "akshybrid", - "version": "0.1.2", - "url": "https://hybridaksstorage.z13.web.core.windows.net/HybridAKS/CLI/akshybrid-0.1.2-py3-none-any.whl", - "hash": "sha256-l2fNpETEIVc7wiDgHNWKZ8MKNhdc7bposEVKPG6YOo4=", - "description": "Microsoft Azure Command-Line Tools HybridContainerService Extension" - }, "alb": { "pname": "alb", - "version": "2.0.0", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/alb-2.0.0-py3-none-any.whl", - "hash": "sha256-Z9Pbk2dkAqSyFDlpuyD7jsYidiTsUUnTF6GRtX0WqcM=", + "version": "2.0.1", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/alb-2.0.1-py3-none-any.whl", + "hash": "sha256-B3/01NiuZFVvTGrqQK9lBEu++7hnhHGLM6bL8gvBLx4=", "description": "Microsoft Azure Command-Line Tools ALB Extension" }, "alertsmanagement": { @@ -78,9 +71,9 @@ }, "amg": { "pname": "amg", - "version": "2.6.1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/amg-2.6.1-py3-none-any.whl", - "hash": "sha256-ERGri8mXJtLy/acz8R2UqdmILr7JT4bTQaU6GtxhKjs=", + "version": "2.8.0", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/amg-2.8.0-py3-none-any.whl", + "hash": "sha256-E4Id15eoKStqeQynaHisZLcZsiApMf6uV/J8xWz/s5w=", "description": "Microsoft Azure Command-Line Tools Azure Managed Grafana Extension" }, "amlfs": { @@ -92,9 +85,9 @@ }, "apic-extension": { "pname": "apic-extension", - "version": "1.2.0b2", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/apic_extension-1.2.0b2-py3-none-any.whl", - "hash": "sha256-QtaiixX5daX3pOpi7jnJFH2cXe+J0+J/q9PJVZqkE28=", + "version": "1.2.0b3", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/apic_extension-1.2.0b3-py3-none-any.whl", + "hash": "sha256-ATO7B3Dzzk8nswan5Tvym7eloe3OD9ZO+yrfkpTWZns=", "description": "Microsoft Azure Command-Line Tools ApicExtension Extension" }, "appservice-kube": { @@ -111,6 +104,13 @@ "hash": "sha256-Mw/R8ZdL7OFtySTjU3MbHw9EA6WONuM0dwXwHb2/A9E=", "description": "Microsoft Azure Command-Line Tools Arcgateway Extension" }, + "arize-ai": { + "pname": "arize-ai", + "version": "1.0.0", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/arize_ai-1.0.0-py3-none-any.whl", + "hash": "sha256-re+iMmNO+fYl5j5oTGy4vm6OHATHytv5TIaYl2k6fVg=", + "description": "Microsoft Azure Command-Line Tools ArizeAi Extension" + }, "astronomer": { "pname": "astronomer", "version": "1.0.1", @@ -162,9 +162,9 @@ }, "bastion": { "pname": "bastion", - "version": "1.4.1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/bastion-1.4.1-py3-none-any.whl", - "hash": "sha256-Zx50jU9Vmt8vNe/50g8jWaxjeuXlHlMYVNG/v8exRmU=", + "version": "1.4.2", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/bastion-1.4.2-py3-none-any.whl", + "hash": "sha256-TTaKDFaydQ4lW+LfvEHbWX4WARj3Xwg/yeHmq9aNEoI=", "description": "Microsoft Azure Command-Line Tools Bastion Extension" }, "billing-benefits": { @@ -225,9 +225,9 @@ }, "confluent": { "pname": "confluent", - "version": "1.0.0", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/confluent-1.0.0-py3-none-any.whl", - "hash": "sha256-CmHPSaZdVmhow/CwCb45gua03Dw2m+nP1Cu35agO7xk=", + "version": "1.1.0", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/confluent-1.1.0-py3-none-any.whl", + "hash": "sha256-X/jWCmB/B01Z56Y/6xcl+4e2d7DDDsMHaqZ0/PtU6TU=", "description": "Microsoft Azure Command-Line Tools ConfluentManagementClient Extension" }, "connectedmachine": { @@ -246,9 +246,9 @@ }, "cosmosdb-preview": { "pname": "cosmosdb-preview", - "version": "1.6.0", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.6.0-py2.py3-none-any.whl", - "hash": "sha256-OO8IjVRhGOfsCb/Oot7Dc7PmfNsDmaXiCuG0at8Hb44=", + "version": "1.6.1", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.6.1-py2.py3-none-any.whl", + "hash": "sha256-kfhttzgrlnyAoD6pe7PKjGHdKE0U6G1GYNe1a4ZA3f0=", "description": "Microsoft Azure Command-Line Tools Cosmosdb-preview Extension" }, "costmanagement": { @@ -258,13 +258,6 @@ "hash": "sha256-bl4FPQW61q1jBb0CT1HjVeYP3ou2oDNQ39gcJUN9LkU=", "description": "Microsoft Azure Command-Line Tools CostManagementClient Extension" }, - "csvmware": { - "pname": "csvmware", - "version": "0.3.0", - "url": "https://github.com/Azure/az-csvmware-cli/releases/download/0.3.0/csvmware-0.3.0-py2.py3-none-any.whl", - "hash": "sha256-37l2fwWsE8di6p3EMnFp5jpcEYeRI1RLIA7bmiyaikI=", - "description": "Manage Azure VMware Solution by CloudSimple" - }, "custom-providers": { "pname": "custom-providers", "version": "0.2.1", @@ -281,9 +274,9 @@ }, "data-transfer": { "pname": "data-transfer", - "version": "1.0.0b1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/data_transfer-1.0.0b1-py3-none-any.whl", - "hash": "sha256-dnF7ZpUcGP7d3uywoXZdMmr/INH5y46glKuJwrlenfU=", + "version": "1.0.0b2", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/data_transfer-1.0.0b2-py3-none-any.whl", + "hash": "sha256-PqiantcGNb58p+pQm0kQEPcVkY2dg64IfE9VZhOwz2U=", "description": "Microsoft Azure Command-Line Tools DataTransfer Extension" }, "databox": { @@ -316,9 +309,9 @@ }, "datamigration": { "pname": "datamigration", - "version": "1.0.0b5", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/datamigration-1.0.0b5-py3-none-any.whl", - "hash": "sha256-0ZcMgeoUIB5M+e3qrdnkerWj5jiRd3SDfyQJKip+SBI=", + "version": "1.0.0b6", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/datamigration-1.0.0b6-py3-none-any.whl", + "hash": "sha256-4YPJCSMBr+10f+FRQtOiqwbhE6POAHpYFQcdESJppzg=", "description": "Microsoft Azure Command-Line Tools DataMigrationManagementClient Extension" }, "dataprotection": { @@ -428,9 +421,9 @@ }, "elastic": { "pname": "elastic", - "version": "1.0.0b3", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/elastic-1.0.0b3-py3-none-any.whl", - "hash": "sha256-LzrkMNPDTdQAfIxag3SWNWjMI1WIckZCQoEcxaJuLec=", + "version": "1.0.0b4", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/elastic-1.0.0b4-py3-none-any.whl", + "hash": "sha256-+zjE4PUe1FvB7z1i4FFP3EyWBDco/dZe9DbBDMogijY=", "description": "Microsoft Azure Command-Line Tools MicrosoftElastic Extension" }, "elastic-san": { @@ -463,9 +456,9 @@ }, "fleet": { "pname": "fleet", - "version": "1.5.2", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-1.5.2-py3-none-any.whl", - "hash": "sha256-oshfK8G4NECSNxucAke46csKnw4eRBvOrQG2gGLCbq8=", + "version": "1.6.2", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-1.6.2-py3-none-any.whl", + "hash": "sha256-YZpmg1dWiZOerGTgotBstzYB9FgnxPKGurS7OP01Wbc=", "description": "Microsoft Azure Command-Line Tools Fleet Extension" }, "fluid-relay": { @@ -531,13 +524,6 @@ "hash": "sha256-rEoQ4sxkpNCBjkj/vN3+tDB91WuIdbwBwCaH1HPJ/ps=", "description": "Microsoft Azure Command-Line Tools AzureDedicatedHSMResourceProvider Extension" }, - "hdinsightonaks": { - "pname": "hdinsightonaks", - "version": "1.0.0b3", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/hdinsightonaks-1.0.0b3-py3-none-any.whl", - "hash": "sha256-9Um4UQe3uD/2T8+lyQpdfpAKXqLv527smx+BaJ5Yw2U=", - "description": "Microsoft Azure Command-Line Tools Hdinsightonaks Extension" - }, "healthbot": { "pname": "healthbot", "version": "0.1.0", @@ -561,9 +547,9 @@ }, "image-copy-extension": { "pname": "image-copy-extension", - "version": "1.0.2", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/image_copy_extension-1.0.2-py2.py3-none-any.whl", - "hash": "sha256-POLkBXJTiA9mZ8ezYUJDcl3/CSClNdffYBcQbJTbolY=", + "version": "1.0.3", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/image_copy_extension-1.0.3-py2.py3-none-any.whl", + "hash": "sha256-YTQFsRYinh4Bk2p747oyMAsC3a9rKiR444woUeGTKGg=", "description": "Support for copying managed vm images between regions" }, "image-gallery": { @@ -610,9 +596,9 @@ }, "k8s-extension": { "pname": "k8s-extension", - "version": "1.6.5", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.5-py3-none-any.whl", - "hash": "sha256-MZJr6cLtg9m1TD5aYHw2ynfI1Rin5UvaAS7k0QsmZ7k=", + "version": "1.6.7", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.7-py3-none-any.whl", + "hash": "sha256-TU2bAc44Zpd//GyziclX7V8BU1cExK/SduKLV++FxqE=", "description": "Microsoft Azure Command-Line Tools K8s-extension Extension" }, "k8s-runtime": { @@ -631,9 +617,9 @@ }, "lambda-test": { "pname": "lambda-test", - "version": "1.0.0b1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/lambda_test-1.0.0b1-py3-none-any.whl", - "hash": "sha256-KnNCZsTNn4948xKiHJ6Nba3NYLHy+T5yEF55BtQ9a1Q=", + "version": "1.0.0", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/lambda_test-1.0.0-py3-none-any.whl", + "hash": "sha256-6C2Db8ZPDRs8QY2v1RM2cyGVIM/hwtpBAj6c9V4CXxQ=", "description": "Microsoft Azure Command-Line Tools LambdaTest Extension" }, "log-analytics": { @@ -673,9 +659,9 @@ }, "managednetworkfabric": { "pname": "managednetworkfabric", - "version": "8.0.0b5", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/managednetworkfabric-8.0.0b5-py3-none-any.whl", - "hash": "sha256-+6ueiYJnSMnGbawqTGoKkbN9Fvl5NCJuz3RUXW6mGBk=", + "version": "8.1.0", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/managednetworkfabric-8.1.0-py3-none-any.whl", + "hash": "sha256-HWfTuuYq3P02F3zaK8s8HLkqRcdP7/dWwCy/nX/y4u8=", "description": "Support for managednetworkfabric commands based on 2024-06-15-preview API version" }, "managementpartner": { @@ -722,9 +708,9 @@ }, "mongo-db": { "pname": "mongo-db", - "version": "1.0.0b1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/mongo_db-1.0.0b1-py3-none-any.whl", - "hash": "sha256-z/i+P/kx4MT8XskhqjohRL3Xpne9teLe6jmfCv6iv+0=", + "version": "1.0.0", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/mongo_db-1.0.0-py3-none-any.whl", + "hash": "sha256-kbU/GRizMppGD2OJ29awQaFUXIMLin0DJpX8Nnymqzo=", "description": "Microsoft Azure Command-Line Tools MongoDb Extension" }, "monitor-control-service": { @@ -750,9 +736,9 @@ }, "neon": { "pname": "neon", - "version": "1.0.0b4", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/neon-1.0.0b4-py3-none-any.whl", - "hash": "sha256-iak+Dt5UD+YpVO1mQzatzIYybEyVIZaRabL0Jbgr17M=", + "version": "1.0.0b6", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/neon-1.0.0b6-py3-none-any.whl", + "hash": "sha256-qCyfYQIDoZo8l1bPYDJsLTFfBQJEi7/FyNL6jmS1tTc=", "description": "Microsoft Azure Command-Line Tools Neon Extension" }, "network-analytics": { @@ -771,9 +757,9 @@ }, "new-relic": { "pname": "new-relic", - "version": "1.0.1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/new_relic-1.0.1-py3-none-any.whl", - "hash": "sha256-VKbfg2sflMylsHcjvJ1QUhbVW3fOG+JViuCSIt4mJ2A=", + "version": "1.0.2", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/new_relic-1.0.2-py3-none-any.whl", + "hash": "sha256-/h2TeDcQyRFvcZBwNzxcPrlf638sjfZxYZ97pm7AxB4=", "description": "Microsoft Azure Command-Line Tools NewRelic Extension" }, "next": { @@ -827,9 +813,9 @@ }, "palo-alto-networks": { "pname": "palo-alto-networks", - "version": "1.1.1b1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/palo_alto_networks-1.1.1b1-py3-none-any.whl", - "hash": "sha256-jU9qS3I2a9V3gL0VjWwls2OZnhoT6oXUkYCcyaTSlgg=", + "version": "1.1.2b2", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/palo_alto_networks-1.1.2b2-py3-none-any.whl", + "hash": "sha256-xOjYa4QakDrL4Xud0OHvJuY7Df2l2B1mnqw8aMlqiAg=", "description": "Microsoft Azure Command-Line Tools PaloAltoNetworks Extension" }, "peering": { @@ -867,6 +853,13 @@ "hash": "sha256-mqrXcCKvAEqWOzQZrBDSM4IO81Jduen2+fx5fhqFmtY=", "description": "Microsoft Azure Command-Line Tools ProviderHub Extension" }, + "pscloud": { + "pname": "pscloud", + "version": "1.0.0b1", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/pscloud-1.0.0b1-py3-none-any.whl", + "hash": "sha256-aIobuwrf1z72gUzYZLLIzk1mRrsbIfWlxgpfJ+1n20U=", + "description": "Microsoft Azure Command-Line Tools Pscloud Extension" + }, "purview": { "pname": "purview", "version": "0.1.0", @@ -876,9 +869,9 @@ }, "quantum": { "pname": "quantum", - "version": "1.0.0b6", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/quantum-1.0.0b6-py3-none-any.whl", - "hash": "sha256-KTYDvglCzrPy4XWsPbBvKKhFI1/mxKwsyBi5/8q2+y8=", + "version": "1.0.0b9", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/quantum-1.0.0b9-py3-none-any.whl", + "hash": "sha256-DYnSYOsA+nZJ9V2JIqIHB/697a9ATJLBneyrPsHGoVY=", "description": "Microsoft Azure Command-Line Tools Quantum Extension" }, "qumulo": { @@ -974,9 +967,9 @@ }, "stack-hci-vm": { "pname": "stack-hci-vm", - "version": "1.9.1", - "url": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.9.1-py3-none-any.whl", - "hash": "sha256-BZSQ1tVLSkQE+jQPpZWIHEoM/86RPKT5kAlmKmNa0qY=", + "version": "1.10.4", + "url": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.10.4-py3-none-any.whl", + "hash": "sha256-MjcpQ7a+5Rw6Z7MAVzoa/qT6HSX6uaV+kWoiMBhK/JM=", "description": "Microsoft Azure Command-Line Tools Stack-HCi-VM Extension" }, "standbypool": { @@ -1002,11 +995,18 @@ }, "storage-blob-preview": { "pname": "storage-blob-preview", - "version": "1.0.0b1", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/storage_blob_preview-1.0.0b1-py2.py3-none-any.whl", - "hash": "sha256-H/5FHkFlfI8ooiq+44c3HRHO3YDS5Sz8vtCtrAqRe0E=", + "version": "1.0.0b3", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/storage_blob_preview-1.0.0b3-py2.py3-none-any.whl", + "hash": "sha256-88MkEV7z+bGUJXxv16lu14Xj8uRh2wWTji1O3nswYq8=", "description": "Microsoft Azure Command-Line Tools Storage-blob-preview Extension" }, + "storage-discovery": { + "pname": "storage-discovery", + "version": "1.0.0b1", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/storage_discovery-1.0.0b1-py3-none-any.whl", + "hash": "sha256-qa4B0qEbeg09vZRN1E4J2E5LvwbrPd2OG1V/WOhfI1o=", + "description": "Microsoft Azure Command-Line Tools StorageDiscovery Extension" + }, "storage-mover": { "pname": "storage-mover", "version": "1.1.0", @@ -1072,9 +1072,9 @@ }, "virtual-network-manager": { "pname": "virtual-network-manager", - "version": "2.0.0", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/virtual_network_manager-2.0.0-py3-none-any.whl", - "hash": "sha256-EbmCqrszG4PC80yCDl+IfzdKw0tO4R0SL6iD+wymu9w=", + "version": "2.0.1", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/virtual_network_manager-2.0.1-py3-none-any.whl", + "hash": "sha256-p/qdOH8arVdfUoslBT0Al26hMihL8VPMClfNZhwtxto=", "description": "Microsoft Azure Command-Line Tools NetworkManagementClient Extension" }, "virtual-network-tap": { @@ -1093,9 +1093,9 @@ }, "vme": { "pname": "vme", - "version": "1.0.0b4", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/vme-1.0.0b4-py3-none-any.whl", - "hash": "sha256-TMOUIL/cntB9DcQubv7B1OMs+nSwv2RRcFD6KCRwFrk=", + "version": "1.0.0b5", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/vme-1.0.0b5-py3-none-any.whl", + "hash": "sha256-DVb8jVymvcXEEmPsz+qGh3Q3iTFVTI904VD3Kq5d3fc=", "description": "Microsoft Azure Command-Line Tools Vme Extension" }, "vmware": { @@ -1114,9 +1114,9 @@ }, "workload-orchestration": { "pname": "workload-orchestration", - "version": "1.0.0", - "url": "https://azcliprod.blob.core.windows.net/cli-extensions/workload_orchestration-1.0.0-py3-none-any.whl", - "hash": "sha256-5o0meWmZDeM45AGTTkD9weX1/tcdg7JJzW1XJRWVdkE=", + "version": "2.0.0", + "url": "https://azcliprod.blob.core.windows.net/cli-extensions/workload_orchestration-2.0.0-py3-none-any.whl", + "hash": "sha256-19yRNNBkY4h+KR4RMeu8rGox1kFKDYOdaNM/dEwSrSU=", "description": "Microsoft Azure Command-Line Tools WorkloadOperations Extension" }, "workloads": { diff --git a/pkgs/by-name/az/azure-cli/extensions-manual.nix b/pkgs/by-name/az/azure-cli/extensions-manual.nix index f5a2155c0d1c..abb5abef805b 100644 --- a/pkgs/by-name/az/azure-cli/extensions-manual.nix +++ b/pkgs/by-name/az/azure-cli/extensions-manual.nix @@ -151,11 +151,14 @@ // lib.optionalAttrs config.allowAliases { # Removed extensions adp = throw "The 'adp' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8038 + akshybrid = throw "The 'akshybrid' extension for azure-cli was removed upstream"; # https://github.com/Azure/azure-cli-extensions/pull/8955 azurestackhci = throw "The 'azurestackhci' extension for azure-cli was deprecated upstream"; # Added 2025-07-01, https://github.com/Azure/azure-cli-extensions/pull/8898 blockchain = throw "The 'blockchain' extension for azure-cli was deprecated upstream"; # Added 2024-04-26, https://github.com/Azure/azure-cli-extensions/pull/7370 compute-diagnostic-rp = throw "The 'compute-diagnostic-rp' extension for azure-cli was deprecated upstream"; # Added 2024-11-12, https://github.com/Azure/azure-cli-extensions/pull/8240 connection-monitor-preview = throw "The 'connection-monitor-preview' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8194 + csvmware = throw "The 'csvmware' extension for azure-cli was removed upstream"; # https://github.com/Azure/azure-cli-extensions/pull/8931 deidservice = throw "The 'deidservice' extension for azure-cli was moved under healthcareapis"; # Added 2024-11-19, https://github.com/Azure/azure-cli-extensions/pull/8224 + hdinsightonaks = throw "The 'hdinsightonaks' extension for azure-cli was removed upstream"; # https://github.com/Azure/azure-cli-extensions/pull/8956 logz = throw "The 'logz' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8459 pinecone = throw "The 'pinecone' extension for azure-cli was removed upstream"; # Added 2025-06-03, https://github.com/Azure/azure-cli-extensions/pull/8763 sap-hana = throw "The 'sap-hana' extension for azure-cli was deprecated upstream"; # Added 2025-07-01, https://github.com/Azure/azure-cli-extensions/pull/8904 diff --git a/pkgs/by-name/ch/chatterino2/common.nix b/pkgs/by-name/ch/chatterino2/common.nix index 0e8fb6cd4bb1..3f45d34812a9 100644 --- a/pkgs/by-name/ch/chatterino2/common.nix +++ b/pkgs/by-name/ch/chatterino2/common.nix @@ -38,6 +38,12 @@ stdenv.mkDerivation { ] ++ lib.optional enableAvifSupport libavif; + preConfigure = '' + if [[ -f "$src/GIT_HASH" ]]; then + export GIT_HASH="$(cat $src/GIT_HASH)" + fi + ''; + cmakeFlags = [ (lib.cmakeBool "BUILD_WITH_QT6" true) (lib.cmakeBool "USE_SYSTEM_QTKEYCHAIN" true) diff --git a/pkgs/by-name/ch/chatterino2/package.nix b/pkgs/by-name/ch/chatterino2/package.nix index 7e109330875f..9ad3e6b96e71 100644 --- a/pkgs/by-name/ch/chatterino2/package.nix +++ b/pkgs/by-name/ch/chatterino2/package.nix @@ -18,8 +18,13 @@ owner = "Chatterino"; repo = "chatterino2"; tag = "v${finalAttrs.version}"; - hash = "sha256-W2sqlqL6aa68aQ3nE161G64x7K7p8iByX03g1dseQbs="; + hash = "sha256-XV8WhdjdnVrOg0PVyIhGfxC4sJ62oH03KchvGr1c2w8="; fetchSubmodules = true; + leaveDotGit = true; + postFetch = '' + git -C $out rev-parse --short HEAD > $out/GIT_HASH + find "$out" -name .git -print0 | xargs -0 rm -rf + ''; }; passthru = { diff --git a/pkgs/by-name/ch/chatterino7/package.nix b/pkgs/by-name/ch/chatterino7/package.nix index bd60c3dc2a5a..19e6e5897bc8 100644 --- a/pkgs/by-name/ch/chatterino7/package.nix +++ b/pkgs/by-name/ch/chatterino7/package.nix @@ -17,8 +17,13 @@ owner = "SevenTV"; repo = "chatterino7"; tag = "v${finalAttrs.version}"; - hash = "sha256-KrAr3DcQDjb+LP+vIf0qLSSgII0m5rNwhncLNHlLaC8="; + hash = "sha256-tft0+vcE+LGPrlv4ZBgzmeF66Jf66iTjUr0pdF1vx24="; fetchSubmodules = true; + leaveDotGit = true; + postFetch = '' + git -C $out rev-parse --short HEAD > $out/GIT_HASH + find "$out" -name .git -print0 | xargs -0 rm -rf + ''; }; passthru.updateScript = gitUpdater { diff --git a/pkgs/by-name/ch/chirp/package.nix b/pkgs/by-name/ch/chirp/package.nix index b2131feb003f..509b98358904 100644 --- a/pkgs/by-name/ch/chirp/package.nix +++ b/pkgs/by-name/ch/chirp/package.nix @@ -11,14 +11,14 @@ python3Packages.buildPythonApplication { pname = "chirp"; - version = "0.4.0-unstable-2025-08-19"; + version = "0.4.0-unstable-2025-08-31"; pyproject = true; src = fetchFromGitHub { owner = "kk7ds"; repo = "chirp"; - rev = "0705a4c61e11f952ef1bcdb282f22a74dc72782f"; - hash = "sha256-gUiSuulthiEC94SuXfGzuDDrf2dYTsJLsAjtjAsTIPY="; + rev = "906d7ec8b2e09f53710e1ef9616d58f8270841e2"; + hash = "sha256-lsB8m9qn+pJp8tBekOo2DnQQrjF5P+NizdWaj0HaYPU="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/dn/dnf5/package.nix b/pkgs/by-name/dn/dnf5/package.nix index 3bfc7c350215..a46b70cc0794 100644 --- a/pkgs/by-name/dn/dnf5/package.nix +++ b/pkgs/by-name/dn/dnf5/package.nix @@ -25,7 +25,7 @@ sphinx, sqlite, systemd, - testers, + versionCheckHook, toml11, zchunk, nix-update-script, @@ -115,10 +115,13 @@ stdenv.mkDerivation (finalAttrs: { dontFixCmake = true; - passthru = { - tests.version = testers.testVersion { package = finalAttrs.finalPackage; }; - updateScript = nix-update-script { }; - }; + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + preVersionCheck = '' + export HOME=$(mktemp -d) + ''; + + passthru.updateScript = nix-update-script { }; meta = with lib; { description = "Next-generation RPM package management system"; diff --git a/pkgs/by-name/im/immich-cli/package.nix b/pkgs/by-name/im/immich-cli/package.nix index d41dc764f26d..092f2a9fe1ad 100644 --- a/pkgs/by-name/im/immich-cli/package.nix +++ b/pkgs/by-name/im/immich-cli/package.nix @@ -1,26 +1,52 @@ { lib, immich, - buildNpmPackage, + jq, nodejs, makeWrapper, + stdenv, }: -buildNpmPackage { + +let + inherit (immich) pnpm; +in +stdenv.mkDerivation rec { pname = "immich-cli"; - src = "${immich.src}/cli"; - inherit (immich.sources.components.cli) version npmDepsHash; + version = "2.2.86"; + inherit (immich) src pnpmDeps; - nativeBuildInputs = [ makeWrapper ]; + postPatch = '' + local -r cli_version="$(jq -r .version cli/package.json)" + test "$cli_version" = ${version} \ + || (echo "error: update immich-cli version to $cli_version" && exit 1) + ''; - inherit (immich.web) preBuild; + nativeBuildInputs = [ + jq + makeWrapper + nodejs + pnpm + pnpm.configHook + ]; + + buildPhase = '' + runHook preBuild + + pnpm --filter @immich/sdk build + pnpm --filter @immich/cli build + + runHook postBuild + ''; installPhase = '' runHook preInstall - mkdir -p $out - mv package.json package-lock.json node_modules dist $out/ + local -r packageOut="$out/lib/node_modules/@immich/cli" - makeWrapper ${lib.getExe nodejs} $out/bin/immich --add-flags $out/dist/index.js + pnpm --filter @immich/cli deploy --prod --no-optional "$packageOut" + + makeWrapper '${lib.getExe nodejs}' "$out/bin/immich" \ + --add-flags "$packageOut/dist/index.js" runHook postInstall ''; diff --git a/pkgs/by-name/im/immich/package.nix b/pkgs/by-name/im/immich/package.nix index d6889a2a0412..5fd4926b2caa 100644 --- a/pkgs/by-name/im/immich/package.nix +++ b/pkgs/by-name/im/immich/package.nix @@ -1,8 +1,8 @@ { lib, stdenv, - buildNpmPackage, fetchFromGitHub, + pnpm_10, python3, nodejs, node-gyp, @@ -10,7 +10,6 @@ nixosTests, immich-machine-learning, # build-time deps - glib, pkg-config, makeWrapper, curl, @@ -32,12 +31,10 @@ pixman, vips, buildPackages, - sourcesJSON ? ./sources.json, }: let - buildNpmPackage' = buildNpmPackage.override { inherit nodejs; }; - sources = lib.importJSON sourcesJSON; - inherit (sources) version; + pnpm = pnpm_10; + version = "1.140.1"; esbuild' = buildPackages.esbuild.override { buildGoModule = @@ -77,14 +74,14 @@ let # The geodata website is not versioned, so we use the internet archive geodata = let - inherit (sources.components.geonames) timestamp; + timestamp = "20250818205425"; date = "${lib.substring 0 4 timestamp}-${lib.substring 4 2 timestamp}-${lib.substring 6 2 timestamp}T" + "${lib.substring 8 2 timestamp}:${lib.substring 10 2 timestamp}:${lib.substring 12 2 timestamp}Z"; in runCommand "immich-geodata" { - outputHash = sources.components.geonames.hash; + outputHash = "sha256-zZHAomW1C4qReFbhme5dkVnTiLw+jmhZhzuYvoBVBCY="; outputHashMode = "recursive"; nativeBuildInputs = [ cacert @@ -111,69 +108,39 @@ let owner = "immich-app"; repo = "immich"; tag = "v${version}"; - inherit (sources) hash; + hash = "sha256-Bo9wFP0u39aoaNjc8K4Im3HRGZR/TLrDB7+UDAhV1xA="; }; - openapi = buildNpmPackage' { - pname = "immich-openapi-sdk"; - inherit version; - src = "${src}/open-api/typescript-sdk"; - inherit (sources.components."open-api/typescript-sdk") npmDepsHash; - - installPhase = '' - runHook preInstall - - npm config delete cache - npm prune --omit=dev --omit=optional - - mkdir -p $out - mv package.json package-lock.json node_modules build $out/ - - runHook postInstall - ''; - }; - - web = buildNpmPackage' { - pname = "immich-web"; + pnpmDeps = pnpm.fetchDeps { + pname = "immich"; inherit version src; - sourceRoot = "${src.name}/web"; - inherit (sources.components.web) npmDepsHash; + fetcherVersion = 2; + hash = "sha256-DIcUKuU+ToRh/kSLcs4ZEHy7zhFir2nlbRx+/kMagrA="; + }; - # prePatch is needed because npmConfigHook is a postPatch - prePatch = '' - # some part of the build wants to use un-prefixed binaries. let them. - mkdir -p $TMP/bin - ln -s "$(type -p ${stdenv.cc.targetPrefix}pkg-config)" $TMP/bin/pkg-config || true - ln -s "$(type -p ${stdenv.cc.targetPrefix}c++filt)" $TMP/bin/c++filt || true - ln -s "$(type -p ${stdenv.cc.targetPrefix}readelf)" $TMP/bin/readelf || true - export PATH="$TMP/bin:$PATH" - ''; - - preBuild = '' - rm node_modules/@immich/sdk - ln -s ${openapi} node_modules/@immich/sdk - ''; - - env.npm_config_build_from_source = "true"; + web = stdenv.mkDerivation { + pname = "immich-web"; + inherit version src pnpmDeps; nativeBuildInputs = [ - pkg-config + nodejs + pnpm + pnpm.configHook ]; - buildInputs = [ - # https://github.com/Automattic/node-canvas/blob/master/Readme.md#compiling - cairo - giflib - libjpeg - libpng - librsvg - pango - pixman - ]; + buildPhase = '' + runHook preBuild + + pnpm --filter @immich/sdk build + pnpm --filter immich-web build + + runHook postBuild + ''; installPhase = '' runHook preInstall + cd web cp -r build $out runHook postInstall @@ -184,32 +151,24 @@ let mesonFlags = prev.mesonFlags ++ [ "-Dtiff=disabled" ]; }); in -buildNpmPackage' { +stdenv.mkDerivation { pname = "immich"; - inherit version; - src = "${src}/server"; - inherit (sources.components.server) npmDepsHash; + inherit version src pnpmDeps; - # prePatch is needed because npmConfigHook is a postPatch - prePatch = '' + postPatch = '' # pg_dumpall fails without database root access # see https://github.com/immich-app/immich/issues/13971 - substituteInPlace src/services/backup.service.ts \ + substituteInPlace server/src/services/backup.service.ts \ --replace-fail '`/usr/lib/postgresql/''${databaseMajorVersion}/bin/pg_dumpall`' '`pg_dump`' - - # some part of the build wants to use un-prefixed binaries. let them. - mkdir -p $TMP/bin - ln -s "$(type -p ${stdenv.cc.targetPrefix}pkg-config)" $TMP/bin/pkg-config || true - ln -s "$(type -p ${stdenv.cc.targetPrefix}c++filt)" $TMP/bin/c++filt || true - ln -s "$(type -p ${stdenv.cc.targetPrefix}readelf)" $TMP/bin/readelf || true - export PATH="$TMP/bin:$PATH" ''; nativeBuildInputs = [ + nodejs pkg-config + pnpm_10 + pnpm_10.configHook python3 makeWrapper - glib node-gyp # for building node_modules/sharp from source ]; @@ -230,43 +189,60 @@ buildNpmPackage' { vips' ]; - # Required because vips tries to write to the cache dir - makeCacheWritable = true; - env.SHARP_FORCE_GLOBAL_LIBVIPS = 1; env.ESBUILD_BINARY_PATH = lib.getExe esbuild'; + # fix for node-gyp, see https://github.com/nodejs/node-gyp/issues/1191#issuecomment-301243919 + env.npm_config_nodedir = nodejs; + + buildPhase = '' + runHook preBuild - preBuild = '' # If exiftool-vendored.pl isn't found, exiftool is searched for on the PATH - rm -r node_modules/exiftool-vendored.* + rm node_modules/.pnpm/node_modules/exiftool-vendored.pl + + pnpm --filter immich build + + runHook postBuild ''; installPhase = '' runHook preInstall - npm config delete cache - npm prune --omit=dev + local -r packageOut="$out/lib/node_modules/immich" + + # install node_modules and built files in $out + # upstream uses pnpm deploy to build their docker images + pnpm --filter immich deploy --prod --no-optional "$packageOut" # remove build artifacts that bloat the closure - rm -r node_modules/**/{*.target.mk,binding.Makefile,config.gypi,Makefile,Release/.deps} + find "$packageOut/node_modules" \( \ + -name config.gypi \ + -o -name .deps \ + -o -name '*Makefile' \ + -o -name '*.target.mk' \ + \) -exec rm -r {} + - mkdir -p $out/build - mv package.json package-lock.json node_modules dist resources $out/ - ln -s ${web} $out/build/www - ln -s ${geodata} $out/build/geodata + mkdir -p "$packageOut/build" + ln -s '${web}' "$packageOut/build/www" + ln -s '${geodata}' "$packageOut/build/geodata" - echo '${builtins.toJSON buildLock}' > $out/build/build-lock.json + echo '${builtins.toJSON buildLock}' > "$packageOut/build/build-lock.json" - makeWrapper ${lib.getExe nodejs} $out/bin/admin-cli --add-flags $out/dist/main --add-flags cli - makeWrapper ${lib.getExe nodejs} $out/bin/server --add-flags $out/dist/main --chdir $out \ - --set IMMICH_BUILD_DATA $out/build --set NODE_ENV production \ - --suffix PATH : "${ + makeWrapper '${lib.getExe nodejs}' "$out/bin/admin-cli" \ + --add-flags "$packageOut/dist/main" \ + --add-flags cli + makeWrapper '${lib.getExe nodejs}' "$out/bin/server" \ + --add-flags "$packageOut/dist/main" \ + --chdir "$packageOut" \ + --set IMMICH_BUILD_DATA "$packageOut/build" \ + --set NODE_ENV production \ + --suffix PATH : '${ lib.makeBinPath [ exiftool jellyfin-ffmpeg perl # exiftool-vendored checks for Perl even if exiftool comes from $PATH ] - }" + }' runHook postInstall ''; @@ -280,11 +256,10 @@ buildNpmPackage' { inherit src - sources web geodata + pnpm ; - updateScript = ./update.sh; }; meta = { diff --git a/pkgs/by-name/im/immich/sources.json b/pkgs/by-name/im/immich/sources.json deleted file mode 100644 index 70e02e44a510..000000000000 --- a/pkgs/by-name/im/immich/sources.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "version": "1.138.1", - "hash": "sha256-oaZN0kF82mS25bDSTXRjYnWG9RAMSbCUhXn9t0am96U=", - "components": { - "cli": { - "npmDepsHash": "sha256-6k83QOdKh+FlVnYvA9j60115oohUMDc2YvGaj/GMukE=", - "version": "2.2.79" - }, - "server": { - "npmDepsHash": "sha256-4sqWIIGQ8ZW7TvJoNjNNliriuV6Su0askAN6pAq9VFc=", - "version": "1.138.1" - }, - "web": { - "npmDepsHash": "sha256-+W8cDgy3qe6RDen8SEdHPNADkKb4zZH8C/Am/bdU42c=", - "version": "1.138.1" - }, - "open-api/typescript-sdk": { - "npmDepsHash": "sha256-GfmFPsnFu7l4EsnPDv4nj5KLkOz8nEJvMT1BE7zIQ3k=", - "version": "1.138.1" - }, - "geonames": { - "timestamp": "20250818205425", - "hash": "sha256-zZHAomW1C4qReFbhme5dkVnTiLw+jmhZhzuYvoBVBCY=" - } - } -} diff --git a/pkgs/by-name/im/immich/update.sh b/pkgs/by-name/im/immich/update.sh deleted file mode 100755 index 1e11085e3adf..000000000000 --- a/pkgs/by-name/im/immich/update.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl jq prefetch-npm-deps nix-prefetch-github coreutils ripgrep - -set -euo pipefail -cd "$(dirname "${BASH_SOURCE[0]}")" - -old_version=$(jq -r ".version" sources.json || echo -n "0.0.1") -version=$(curl -s "https://api.github.com/repos/immich-app/immich/releases/latest" | jq -r ".tag_name") -version="${version#v}" - -echo "Updating to $version" - -if [[ "$old_version" == "$version" ]]; then - echo "Already up to date!" - exit 0 -fi - -echo "Fetching src" -src_hash=$(nix-prefetch-github immich-app immich --rev "v${version}" | jq -r .hash) -upstream_src="https://raw.githubusercontent.com/immich-app/immich/v$version" - -sources_tmp="$(mktemp)" -cat < "$sources_tmp" -{ - "version": "$version", - "hash": "$src_hash", - "components": {} -} -EOF - -lock=$(mktemp) -for npm_component in cli server web "open-api/typescript-sdk"; do - echo "fetching $npm_component" - curl -s -o "$lock" "$upstream_src/$npm_component/package-lock.json" - hash=$(prefetch-npm-deps "$lock") - echo "$(jq --arg npm_component "$npm_component" \ - --arg hash "$hash" \ - --arg version "$(jq -r '.version' <"$lock")" \ - '.components += {($npm_component): {npmDepsHash: $hash, version: $version}}' \ - "$sources_tmp")" > "$sources_tmp" -done -rm "$lock" - -url="http://download.geonames.org/export/dump" -curl -s "http://web.archive.org/save/$url/cities500.zip" -curl -s "http://web.archive.org/save/$url/admin1CodesASCII.txt" -curl -s "http://web.archive.org/save/$url/admin1Codes.txt" -timestamp=$(curl -s \ - "http://archive.org/wayback/available?url=$url/cities500.zip" \ - | jq -r ".archived_snapshots.closest.timestamp") -echo "$(jq --arg timestamp "$timestamp" --arg hash "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" \ - '.components += {geonames: {timestamp: $timestamp, hash: $hash}}' \ - "$sources_tmp")" > "$sources_tmp" - -cp "$sources_tmp" sources.json -set +o pipefail -output="$(nix-build ../../../.. -A immich.geodata 2>&1 || true)" -set -o pipefail -hash=$(echo "$output" | rg 'got:\s+(sha256-.*)$' -or '$1') -echo "$(jq --arg hash "$hash" '.components.geonames.hash = $hash' "$sources_tmp")" > "$sources_tmp" - -mv "$sources_tmp" sources.json diff --git a/pkgs/by-name/kc/kcc/package.nix b/pkgs/by-name/kc/kcc/package.nix index 7a6a7a5ff4ab..01ef570e63e7 100644 --- a/pkgs/by-name/kc/kcc/package.nix +++ b/pkgs/by-name/kc/kcc/package.nix @@ -30,7 +30,10 @@ python3.pkgs.buildPythonApplication rec { copyDesktopItems ]; - buildInputs = [ qt6.qtbase ]; + buildInputs = [ + qt6.qtbase + qt6.qtwayland + ]; build-system = with python3.pkgs; [ setuptools ]; diff --git a/pkgs/by-name/me/mergiraf/package.nix b/pkgs/by-name/me/mergiraf/package.nix index a79bd7c99340..7284c7f3da77 100644 --- a/pkgs/by-name/me/mergiraf/package.nix +++ b/pkgs/by-name/me/mergiraf/package.nix @@ -11,17 +11,17 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "mergiraf"; - version = "0.13.0"; + version = "0.14.0"; src = fetchFromGitea { domain = "codeberg.org"; owner = "mergiraf"; repo = "mergiraf"; tag = "v${finalAttrs.version}"; - hash = "sha256-MPmpS4iLur05jkSUrGl6NCtzRO/8Pch9pRNuT6psNRo="; + hash = "sha256-ad5A3d/E1PyfI1/vKdHmiVcDokPSiGoMfg1eXKCbhtA="; }; - cargoHash = "sha256-nT9HsG9eRBf4mRr7fqmRSQVI+yz+yr7wKCSQHG5JtD4="; + cargoHash = "sha256-8zOEFGkrlyaZMRbTzFVk3CujC1LlAxKqGslwZyjXoKw="; nativeCheckInputs = [ git ]; diff --git a/pkgs/by-name/op/openapv/package.nix b/pkgs/by-name/op/openapv/package.nix index b4f7e162b8b5..6d3fdcbf4f8e 100644 --- a/pkgs/by-name/op/openapv/package.nix +++ b/pkgs/by-name/op/openapv/package.nix @@ -11,13 +11,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "openapv"; - version = "0.2.0.1"; + version = "0.2.0.2"; src = fetchFromGitHub { owner = "AcademySoftwareFoundation"; repo = "openapv"; tag = "v${finalAttrs.version}"; - hash = "sha256-Edj3xQ7AcHcdIbg4o2FidAGZ06fUBltW+1ojJPoIktA="; + hash = "sha256-Eam53Fc0oYOE2YH+Q1Cx6TxClMoUaDZuRhrC8LX6S7g="; }; postPatch = '' diff --git a/pkgs/by-name/pr/proggyfonts/package.nix b/pkgs/by-name/pr/proggyfonts/package.nix index 046798a444aa..4f78c8f9cef7 100644 --- a/pkgs/by-name/pr/proggyfonts/package.nix +++ b/pkgs/by-name/pr/proggyfonts/package.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "https://www.upperbounds.net"; + homepage = "https://github.com/bluescan/proggyfonts"; description = "Set of fixed-width screen fonts that are designed for code listings"; license = licenses.mit; platforms = platforms.all; diff --git a/pkgs/by-name/re/release-plz/package.nix b/pkgs/by-name/re/release-plz/package.nix index 535fdaea13a8..8ec0f02070a7 100644 --- a/pkgs/by-name/re/release-plz/package.nix +++ b/pkgs/by-name/re/release-plz/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage rec { pname = "release-plz"; - version = "0.3.140"; + version = "0.3.142"; src = fetchFromGitHub { owner = "MarcoIeni"; repo = "release-plz"; rev = "release-plz-v${version}"; - hash = "sha256-pJHyf1aSn4YqzFYW6otuRY+gJ6TBCKFGQuH2Py5uWlE="; + hash = "sha256-e+EafNBXHUAE4UjJJ7ujfd4QVxQ6AAYTpH6TmNot6jk="; }; - cargoHash = "sha256-LfadgdrGD9g/PNeFs/XNUk2x0h1i3znzMhIV+w1DjMk="; + cargoHash = "sha256-TE2l9Mk41RBaHo/fRdXSLHc8UGiMDIY6LXc33iIDjvA="; nativeBuildInputs = [ installShellFiles diff --git a/pkgs/by-name/se/sentry-native/package.nix b/pkgs/by-name/se/sentry-native/package.nix index 40ee50c38261..fab7f4652829 100644 --- a/pkgs/by-name/se/sentry-native/package.nix +++ b/pkgs/by-name/se/sentry-native/package.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "sentry-native"; - version = "0.10.0"; + version = "0.10.1"; src = fetchFromGitHub { owner = "getsentry"; repo = "sentry-native"; tag = version; - hash = "sha256-65Eylc0l3R0bQeKyb7JgULbZCldaR7TZmMvYB9wz/1M="; + hash = "sha256-99C4Nd2YdUElMpbKrNIBjicaWHR2MVqHUu5KryYAT/I="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/sm/smtp4dev/deps.json b/pkgs/by-name/sm/smtp4dev/deps.json index a3e7e8fa90f8..a9645096e9a7 100644 --- a/pkgs/by-name/sm/smtp4dev/deps.json +++ b/pkgs/by-name/sm/smtp4dev/deps.json @@ -211,8 +211,8 @@ }, { "pname": "Microsoft.Extensions.ApiDescription.Server", - "version": "6.0.3", - "hash": "sha256-1G+68E/fg89Vkgo4V7pCGqWlDdBErZMFfW+AV1q5brA=" + "version": "8.0.14", + "hash": "sha256-mfNB1+5kcIr8burRrsr5LR5pVEAISQ8o9m8FrCtye3M=" }, { "pname": "Microsoft.Extensions.Caching.Abstractions", @@ -581,8 +581,8 @@ }, { "pname": "Microsoft.TypeScript.MSBuild", - "version": "5.8.1", - "hash": "sha256-5x81TEhXaEEYnBeosK8zmBwPLKPifMf4JUFrGsk/IxA=" + "version": "5.8.3", + "hash": "sha256-zL02BnZRCc5v1GUmzhaL1TnUq9+8Vkz5rGDPt+7CkD8=" }, { "pname": "Microsoft.VisualStudio.Web.CodeGeneration.Contracts", @@ -636,8 +636,8 @@ }, { "pname": "Namotion.Reflection", - "version": "3.3.0", - "hash": "sha256-YBYWLYmnCZrKfiJWQo7tofiz2A7ROpxFfAYdYLa5cgI=" + "version": "3.4.2", + "hash": "sha256-iaQrE5VwRHqXOyzym4vY3+4aDw6eswN5P3LDd3FoFZk=" }, { "pname": "NETStandard.Library", @@ -666,53 +666,53 @@ }, { "pname": "NJsonSchema", - "version": "11.2.0", - "hash": "sha256-Y1FggfzRf54+ioMKvyyzMW30psrHF7hmAwnYom/Ud8s=" + "version": "11.3.2", + "hash": "sha256-x+vNknToh2X1qk7NmsQEUWCoEJ5CGc1b9XNOrIbCOLc=" }, { "pname": "NJsonSchema.Annotations", - "version": "11.2.0", - "hash": "sha256-uQYU/NuAbz+HlImemuv1Yi4ODKoaQ38BSrWONOR9jFs=" + "version": "11.3.2", + "hash": "sha256-MWC0Hvd6knCAjViSKOY7lugxGbVEcn3lyzEUO5unphQ=" }, { "pname": "NJsonSchema.NewtonsoftJson", - "version": "11.2.0", - "hash": "sha256-NyXB3rcdPpjaZq0CAZy5xMmvLqqzPGyddeTVtowqaBU=" + "version": "11.3.2", + "hash": "sha256-jIRsXWHVNmWgz2WlmiJnfyXNofwrrdkLVlx4x3PPPlM=" }, { "pname": "NJsonSchema.Yaml", - "version": "11.2.0", - "hash": "sha256-NtlUldW5D0VSj10XqfMvxDMVULdw99owTS1zGYg4aKg=" + "version": "11.3.2", + "hash": "sha256-7IzmfufXlhTZoESAIsd5zqBZ/x30tAAZl9Bx/m3QaxA=" }, { "pname": "NSwag.Annotations", - "version": "14.3.0", - "hash": "sha256-kz+fEwUlEjsPsOiFCTcXYHAAYCJa2cepDRIY4mkye4U=" + "version": "14.4.0", + "hash": "sha256-NbAAQ+tlgi+/766JeEsD+W6SQMEHy2qyTsoMlxvuuo8=" }, { "pname": "NSwag.AspNetCore", - "version": "14.3.0", - "hash": "sha256-lGeH27yzj5fXPpBMqtoFOTRiu+gve8oSgugW2u4tMAk=" + "version": "14.4.0", + "hash": "sha256-3nMNWDrr6k6q5vaskxWc6oioUkLoyJciZ4ocyW5oN+w=" }, { "pname": "NSwag.Core", - "version": "14.3.0", - "hash": "sha256-FjWms/V5+j4ut1TShKWDsTr1LuBsHxRQIFs1fwD0jGw=" + "version": "14.4.0", + "hash": "sha256-l1nBCyf/ed2Xm8Yk5TL3ni8kQxQSAf0ajAfwaAL3/6I=" }, { "pname": "NSwag.Core.Yaml", - "version": "14.3.0", - "hash": "sha256-CcGXuyNUvF/e3f9K3wZY+h0RIbzoLOLLguUcj+VVFXI=" + "version": "14.4.0", + "hash": "sha256-YBlNeIqgZgcYvf/VvJXelTIxDCRqyPJPo7ZzTIo16ak=" }, { "pname": "NSwag.Generation", - "version": "14.3.0", - "hash": "sha256-M487C7OsnZnURcAN90DGIhZTnxlToaIskkztCKkXzQc=" + "version": "14.4.0", + "hash": "sha256-DH7C00KVAiv6i8lJxNAzkDtuNHykyGQAfgT6MAbeBko=" }, { "pname": "NSwag.Generation.AspNetCore", - "version": "14.3.0", - "hash": "sha256-DvjSjbM2ug0AvjAE8CwVUej2hZbLWopmZMbOx4Oy2IU=" + "version": "14.4.0", + "hash": "sha256-YT2v9ddGAFk8gMj1aQ2yHOK3UWX3mcIoGYWBl+OsJ2s=" }, { "pname": "NuGet.Frameworks", @@ -1396,8 +1396,8 @@ }, { "pname": "System.Linq.Dynamic.Core", - "version": "1.6.0.2", - "hash": "sha256-5qzEVm+33ATR+SQljwe/LcP5o0MNjv49nHfXIVG27dw=" + "version": "1.6.4", + "hash": "sha256-Mpp+3UYARo+Hnh3ybtHtdN0LI5HQV07CBZP7jRnVk10=" }, { "pname": "System.Linq.Expressions", diff --git a/pkgs/by-name/sm/smtp4dev/package.nix b/pkgs/by-name/sm/smtp4dev/package.nix index 7a4abeaa4a71..d59f12863677 100644 --- a/pkgs/by-name/sm/smtp4dev/package.nix +++ b/pkgs/by-name/sm/smtp4dev/package.nix @@ -11,13 +11,13 @@ buildDotnetModule (finalAttrs: { pname = "smtp4dev"; - version = "3.8.6"; + version = "3.9.0"; src = fetchFromGitHub { owner = "rnwood"; repo = "smtp4dev"; tag = finalAttrs.version; - hash = "sha256-k4nerh4cVVcFQF7a4Wvcfhefa3SstEOASk+0soN0n9k="; + hash = "sha256-LGhx+i4PIExC6GbBwDOLi/g1TxNoMFMZomdnbtc/wNc="; }; patches = [ ./smtp4dev-npm-packages.patch ]; @@ -33,7 +33,7 @@ buildDotnetModule (finalAttrs: { npmDeps = fetchNpmDeps { inherit (finalAttrs) src patches; - hash = "sha256-Uj0EnnsA+QHq5KHF2B93OG8rwxYrV6sEgMTbd43ttCA="; + hash = "sha256-Xjx3V5FH72D+CXBRZgmlkbp5evnp6F4zaHMWQB5o61w="; postPatch = "cd ${finalAttrs.npmRoot}"; }; @@ -47,6 +47,15 @@ buildDotnetModule (finalAttrs: { mv $out/bin/Rnwood.Smtp4dev $out/bin/smtp4dev ''; + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + + $out/bin/smtp4dev --help | head -1 | grep -F "smtp4dev version ${finalAttrs.version}" + + runHook postInstallCheck + ''; + passthru.updateScript = ./update.sh; meta = { diff --git a/pkgs/by-name/sm/smtp4dev/smtp4dev-npm-packages.patch b/pkgs/by-name/sm/smtp4dev/smtp4dev-npm-packages.patch index 6889e774cad2..0d65bea9a725 100644 --- a/pkgs/by-name/sm/smtp4dev/smtp4dev-npm-packages.patch +++ b/pkgs/by-name/sm/smtp4dev/smtp4dev-npm-packages.patch @@ -1,18 +1,17 @@ diff --git a/Rnwood.Smtp4dev/ClientApp/package-lock.json b/Rnwood.Smtp4dev/ClientApp/package-lock.json -index be143b7..6e8b0b4 100644 +index c25a9ca..59acfb5 100644 --- a/Rnwood.Smtp4dev/ClientApp/package-lock.json +++ b/Rnwood.Smtp4dev/ClientApp/package-lock.json -@@ -20,7 +20,8 @@ +@@ -21,7 +21,7 @@ "@microsoft/signalr": "^8.0.0", "@types/jest": "^29.5.12", "@types/sanitize-html": "^2.11.0", - "@typescript-eslint/parser": "^8.0.0", -+ "@typescript-eslint/eslint-plugin": "^8.31.1", -+ "@typescript-eslint/parser": "^8.31.1", ++ "@typescript-eslint/parser": "^8.32.1", "@vitejs/plugin-vue": "^5.0.4", "@vue/eslint-config-typescript": "^13.0.0", "@vue/vue3-jest": "^29.2.6", -@@ -2937,7 +2938,8 @@ +@@ -2938,7 +2938,8 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", @@ -22,7 +21,7 @@ index be143b7..6e8b0b4 100644 }, "node_modules/@types/lodash": { "version": "4.17.0", -@@ -2993,12 +2995,6 @@ +@@ -2994,12 +2995,6 @@ "entities": "^4.4.0" } }, @@ -35,45 +34,36 @@ index be143b7..6e8b0b4 100644 "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", -@@ -3039,84 +3035,59 @@ +@@ -3039,74 +3034,6 @@ + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, - "node_modules/@typescript-eslint/eslint-plugin": { +- "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", - "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz", -+ "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==", - "dev": true, -+ "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", +- "dev": true, +- "dependencies": { +- "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/type-utils": "7.6.0", - "@typescript-eslint/utils": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", - "debug": "^4.3.4", -+ "@typescript-eslint/scope-manager": "8.31.1", -+ "@typescript-eslint/type-utils": "8.31.1", -+ "@typescript-eslint/utils": "8.31.1", -+ "@typescript-eslint/visitor-keys": "8.31.1", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", +- "graphemer": "^1.4.0", +- "ignore": "^5.3.1", +- "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" -+ "ts-api-utils": "^2.0.1" - }, - "engines": { +- }, +- "engines": { - "node": "^18.18.0 || >=20.0.0" -+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- }, +- "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, @@ -81,25 +71,17 @@ index be143b7..6e8b0b4 100644 - "typescript": { - "optional": true - } -+ "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", -+ "eslint": "^8.57.0 || ^9.0.0", -+ "typescript": ">=4.8.4 <5.9.0" - } - }, +- } +- }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", -+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/ts-api-utils": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", -+ "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "dev": true, +- "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, -+ "license": "MIT", - "engines": { +- "engines": { - "node": ">=10" - } - }, @@ -113,14 +95,11 @@ index be143b7..6e8b0b4 100644 - }, - "bin": { - "semver": "bin/semver.js" -+ "node": ">=18.12" - }, +- }, - "engines": { - "node": ">=10" -+ "peerDependencies": { -+ "typescript": ">=4.8.4" - } - }, +- } +- }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -128,281 +107,93 @@ index be143b7..6e8b0b4 100644 - "dev": true - }, "node_modules/@typescript-eslint/parser": { -- "version": "8.31.0", -- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz", -- "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==", -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz", -+ "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==", - "dev": true, - "license": "MIT", - "dependencies": { -- "@typescript-eslint/scope-manager": "8.31.0", -- "@typescript-eslint/types": "8.31.0", -- "@typescript-eslint/typescript-estree": "8.31.0", -- "@typescript-eslint/visitor-keys": "8.31.0", -+ "@typescript-eslint/scope-manager": "8.31.1", -+ "@typescript-eslint/types": "8.31.1", -+ "@typescript-eslint/typescript-estree": "8.31.1", -+ "@typescript-eslint/visitor-keys": "8.31.1", - "debug": "^4.3.4" - }, - "engines": { -@@ -3131,15 +3102,15 @@ - "typescript": ">=4.8.4 <5.9.0" + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.1.tgz", +@@ -3275,13 +3202,14 @@ } }, -- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { -- "version": "8.31.0", -- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", -- "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", -+ "node_modules/@typescript-eslint/scope-manager": { -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", -+ "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", - "dev": true, - "license": "MIT", - "dependencies": { -- "@typescript-eslint/types": "8.31.0", -- "@typescript-eslint/visitor-keys": "8.31.0" -+ "@typescript-eslint/types": "8.31.1", -+ "@typescript-eslint/visitor-keys": "8.31.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" -@@ -3149,34 +3120,16 @@ - "url": "https://opencollective.com/typescript-eslint" - } - }, -- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { -- "version": "8.31.0", -- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", -- "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", -- "dev": true, -- "license": "MIT", -- "engines": { -- "node": "^18.18.0 || ^20.9.0 || >=21.1.0" -- }, -- "funding": { -- "type": "opencollective", -- "url": "https://opencollective.com/typescript-eslint" -- } -- }, -- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { -- "version": "8.31.0", -- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", -- "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", -+ "node_modules/@typescript-eslint/type-utils": { -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz", -+ "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==", - "dev": true, - "license": "MIT", - "dependencies": { -- "@typescript-eslint/types": "8.31.0", -- "@typescript-eslint/visitor-keys": "8.31.0", -+ "@typescript-eslint/typescript-estree": "8.31.1", -+ "@typescript-eslint/utils": "8.31.1", - "debug": "^4.3.4", -- "fast-glob": "^3.3.2", -- "is-glob": "^4.0.3", -- "minimatch": "^9.0.4", -- "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { -@@ -3187,80 +3140,11 @@ - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { -+ "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, -- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { -- "version": "8.31.0", -- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", -- "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", -- "dev": true, -- "license": "MIT", -- "dependencies": { -- "@typescript-eslint/types": "8.31.0", -- "eslint-visitor-keys": "^4.2.0" -- }, -- "engines": { -- "node": "^18.18.0 || ^20.9.0 || >=21.1.0" -- }, -- "funding": { -- "type": "opencollective", -- "url": "https://opencollective.com/typescript-eslint" -- } -- }, -- "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { -- "version": "2.0.1", -- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", -- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", -- "dev": true, -- "license": "MIT", -- "dependencies": { -- "balanced-match": "^1.0.0" -- } -- }, -- "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { -- "version": "4.2.0", -- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", -- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", -- "dev": true, -- "license": "Apache-2.0", -- "engines": { -- "node": "^18.18.0 || ^20.9.0 || >=21.1.0" -- }, -- "funding": { -- "url": "https://opencollective.com/eslint" -- } -- }, -- "node_modules/@typescript-eslint/parser/node_modules/minimatch": { -- "version": "9.0.5", -- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", -- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", -- "dev": true, -- "license": "ISC", -- "dependencies": { -- "brace-expansion": "^2.0.1" -- }, -- "engines": { -- "node": ">=16 || 14 >=14.17" -- }, -- "funding": { -- "url": "https://github.com/sponsors/isaacs" -- } -- }, -- "node_modules/@typescript-eslint/parser/node_modules/semver": { -- "version": "7.7.1", -- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", -- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", -- "dev": true, -- "license": "ISC", -- "bin": { -- "semver": "bin/semver.js" -- }, -- "engines": { -- "node": ">=10" -- } -- }, -- "node_modules/@typescript-eslint/parser/node_modules/ts-api-utils": { -+ "node_modules/@typescript-eslint/type-utils/node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", -@@ -3273,57 +3157,14 @@ - "typescript": ">=4.8.4" - } - }, -- "node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", - "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", -- "dev": true, -- "dependencies": { ++ "version": "7.18.0", ++ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", ++ "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, ++ "license": "MIT", + "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0" -- }, -- "engines": { -- "node": "^18.18.0 || >=20.0.0" -- }, -- "funding": { -- "type": "opencollective", -- "url": "https://opencollective.com/typescript-eslint" -- } -- }, -- "node_modules/@typescript-eslint/type-utils": { ++ "@typescript-eslint/types": "7.18.0", ++ "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" +@@ -3292,13 +3220,14 @@ + } + }, + "node_modules/@typescript-eslint/type-utils": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", - "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", -- "dev": true, -- "dependencies": { ++ "version": "7.18.0", ++ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", ++ "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, ++ "license": "MIT", + "dependencies": { - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/utils": "7.6.0", -- "debug": "^4.3.4", -- "ts-api-utils": "^1.3.0" -- }, -- "engines": { -- "node": "^18.18.0 || >=20.0.0" -- }, -- "funding": { -- "type": "opencollective", -- "url": "https://opencollective.com/typescript-eslint" -- }, -- "peerDependencies": { -- "eslint": "^8.56.0" -- }, -- "peerDependenciesMeta": { -- "typescript": { -- "optional": true -- } -- } -- }, ++ "@typescript-eslint/typescript-estree": "7.18.0", ++ "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, +@@ -3319,10 +3248,11 @@ + } + }, "node_modules/@typescript-eslint/types": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", - "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", -+ "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", ++ "version": "7.18.0", ++ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", ++ "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, + "license": "MIT", "engines": { -- "node": "^18.18.0 || >=20.0.0" -+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^18.18.0 || >=20.0.0" }, - "funding": { - "type": "opencollective", -@@ -3331,31 +3172,30 @@ +@@ -3332,13 +3262,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", - "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", -+ "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", ++ "version": "7.18.0", ++ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", ++ "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, -+ "license": "MIT", ++ "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", -+ "@typescript-eslint/types": "8.31.1", -+ "@typescript-eslint/visitor-keys": "8.31.1", ++ "@typescript-eslint/types": "7.18.0", ++ "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4", -- "globby": "^11.1.0", -+ "fast-glob": "^3.3.2", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", -- "ts-api-utils": "^1.3.0" -+ "ts-api-utils": "^2.0.1" - }, - "engines": { -- "node": "^18.18.0 || >=20.0.0" -+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, -- "peerDependenciesMeta": { -- "typescript": { -- "optional": true -- } -+ "peerDependencies": { -+ "typescript": ">=4.8.4 <5.9.0" +@@ -3360,31 +3291,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { -@@ -3363,27 +3203,17 @@ - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", +- "version": "2.0.1", +- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", +- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", ++ "version": "2.0.2", ++ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", ++ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { @@ -433,16 +224,16 @@ index be143b7..6e8b0b4 100644 "dependencies": { "brace-expansion": "^2.0.1" }, -@@ -3395,13 +3225,11 @@ +@@ -3396,13 +3317,11 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", -+ "version": "7.7.1", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", -+ "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", ++ "version": "7.7.2", ++ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", ++ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" @@ -451,7 +242,7 @@ index be143b7..6e8b0b4 100644 "bin": { "semver": "bin/semver.js" }, -@@ -3409,85 +3237,72 @@ +@@ -3410,25 +3329,17 @@ "node": ">=10" } }, @@ -460,26 +251,14 @@ index be143b7..6e8b0b4 100644 - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true -+ "node_modules/@typescript-eslint/typescript-estree/node_modules/ts-api-utils": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", -+ "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": ">=18.12" -+ }, -+ "peerDependencies": { -+ "typescript": ">=4.8.4" -+ } - }, +- }, "node_modules/@typescript-eslint/utils": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", - "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", -+ "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", ++ "version": "7.18.0", ++ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", ++ "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "dev": true, + "license": "MIT", "dependencies": { @@ -490,40 +269,25 @@ index be143b7..6e8b0b4 100644 - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", - "semver": "^7.6.0" -+ "@typescript-eslint/scope-manager": "8.31.1", -+ "@typescript-eslint/types": "8.31.1", -+ "@typescript-eslint/typescript-estree": "8.31.1" ++ "@typescript-eslint/scope-manager": "7.18.0", ++ "@typescript-eslint/types": "7.18.0", ++ "@typescript-eslint/typescript-estree": "7.18.0" }, "engines": { -- "node": "^18.18.0 || >=20.0.0" -+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { -- "eslint": "^8.56.0" -+ "eslint": "^8.57.0 || ^9.0.0", -+ "typescript": ">=4.8.4 <5.9.0" + "node": "^18.18.0 || >=20.0.0" +@@ -3441,46 +3352,14 @@ + "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", -+ "node_modules/@typescript-eslint/visitor-keys": { -+ "version": "8.31.1", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", -+ "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", - "dev": true, -+ "license": "MIT", - "dependencies": { +- "dev": true, +- "dependencies": { - "yallist": "^4.0.0" -+ "@typescript-eslint/types": "8.31.1", -+ "eslint-visitor-keys": "^4.2.0" - }, - "engines": { +- }, +- "engines": { - "node": ">=10" - } - }, @@ -537,47 +301,33 @@ index be143b7..6e8b0b4 100644 - }, - "bin": { - "semver": "bin/semver.js" -+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, +- }, - "engines": { - "node": ">=10" -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" - } - }, +- } +- }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, -- "node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", - "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", -+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { -+ "version": "4.2.0", -+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", -+ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", ++ "version": "7.18.0", ++ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", ++ "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, -- "dependencies": { ++ "license": "MIT", + "dependencies": { - "@typescript-eslint/types": "7.6.0", -- "eslint-visitor-keys": "^3.4.3" -- }, -+ "license": "Apache-2.0", - "engines": { -- "node": "^18.18.0 || >=20.0.0" -+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ++ "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, - "funding": { -- "type": "opencollective", -- "url": "https://opencollective.com/typescript-eslint" -+ "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@ungap/structured-clone": { -@@ -3591,6 +3406,40 @@ + "engines": { +@@ -3592,6 +3471,40 @@ } } }, @@ -618,82 +368,141 @@ index be143b7..6e8b0b4 100644 "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/parser": { "version": "7.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", -@@ -3638,6 +3487,34 @@ - "url": "https://opencollective.com/typescript-eslint" - } - }, -+ "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/type-utils": { -+ "version": "7.18.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", -+ "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "@typescript-eslint/typescript-estree": "7.18.0", -+ "@typescript-eslint/utils": "7.18.0", -+ "debug": "^4.3.4", -+ "ts-api-utils": "^1.3.0" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ }, -+ "peerDependencies": { -+ "eslint": "^8.56.0" -+ }, -+ "peerDependenciesMeta": { -+ "typescript": { -+ "optional": true -+ } -+ } -+ }, - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", -@@ -3681,6 +3558,29 @@ +@@ -3621,124 +3534,6 @@ } } }, -+ "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/utils": { -+ "version": "7.18.0", -+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", -+ "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "@eslint-community/eslint-utils": "^4.4.0", -+ "@typescript-eslint/scope-manager": "7.18.0", -+ "@typescript-eslint/types": "7.18.0", -+ "@typescript-eslint/typescript-estree": "7.18.0" -+ }, -+ "engines": { -+ "node": "^18.18.0 || >=20.0.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/typescript-eslint" -+ }, -+ "peerDependencies": { -+ "eslint": "^8.56.0" -+ } -+ }, - "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", +- "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/scope-manager": { +- "version": "7.18.0", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", +- "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@typescript-eslint/types": "7.18.0", +- "@typescript-eslint/visitor-keys": "7.18.0" +- }, +- "engines": { +- "node": "^18.18.0 || >=20.0.0" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, +- "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/types": { +- "version": "7.18.0", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", +- "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "^18.18.0 || >=20.0.0" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, +- "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/typescript-estree": { +- "version": "7.18.0", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", +- "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "@typescript-eslint/types": "7.18.0", +- "@typescript-eslint/visitor-keys": "7.18.0", +- "debug": "^4.3.4", +- "globby": "^11.1.0", +- "is-glob": "^4.0.3", +- "minimatch": "^9.0.4", +- "semver": "^7.6.0", +- "ts-api-utils": "^1.3.0" +- }, +- "engines": { +- "node": "^18.18.0 || >=20.0.0" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, +- "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/visitor-keys": { +- "version": "7.18.0", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", +- "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@typescript-eslint/types": "7.18.0", +- "eslint-visitor-keys": "^3.4.3" +- }, +- "engines": { +- "node": "^18.18.0 || >=20.0.0" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, +- "node_modules/@vue/eslint-config-typescript/node_modules/brace-expansion": { +- "version": "2.0.1", +- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", +- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "^1.0.0" +- } +- }, +- "node_modules/@vue/eslint-config-typescript/node_modules/minimatch": { +- "version": "9.0.5", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", +- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "^2.0.1" +- }, +- "engines": { +- "node": ">=16 || 14 >=14.17" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, +- "node_modules/@vue/eslint-config-typescript/node_modules/semver": { +- "version": "7.6.3", +- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", +- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": ">=10" +- } +- }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", diff --git a/Rnwood.Smtp4dev/ClientApp/package.json b/Rnwood.Smtp4dev/ClientApp/package.json -index a9e301a..619e55b 100644 +index 46c7a6f..75a3a4a 100644 --- a/Rnwood.Smtp4dev/ClientApp/package.json +++ b/Rnwood.Smtp4dev/ClientApp/package.json -@@ -19,7 +19,8 @@ +@@ -19,7 +19,7 @@ "@microsoft/signalr": "^8.0.0", "@types/jest": "^29.5.12", "@types/sanitize-html": "^2.11.0", - "@typescript-eslint/parser": "^8.0.0", -+ "@typescript-eslint/eslint-plugin": "^8.31.1", -+ "@typescript-eslint/parser": "^8.31.1", ++ "@typescript-eslint/parser": "^8.32.1", "@vitejs/plugin-vue": "^5.0.4", "@vue/eslint-config-typescript": "^13.0.0", "@vue/vue3-jest": "^29.2.6", diff --git a/pkgs/by-name/tl/tlsinfo/package.nix b/pkgs/by-name/tl/tlsinfo/package.nix index 1f88b9f8cf61..d5ccd084678f 100644 --- a/pkgs/by-name/tl/tlsinfo/package.nix +++ b/pkgs/by-name/tl/tlsinfo/package.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "tlsinfo"; - version = "0.1.48"; + version = "0.1.49"; src = fetchFromGitHub { owner = "paepckehh"; repo = "tlsinfo"; tag = "v${version}"; - hash = "sha256-1483Y1SoAVsXIjpa1CbOvVQsOol6adoQD9PCxHgSgU4="; + hash = "sha256-Lp1RTyQMkYSMS+qdr0R8zkBI/68zzltq3F4pjyrKfFo="; }; - vendorHash = "sha256-wHCHj7/DBzW0m16aXdQBjPRKjIlf2iab1345ud+ulVQ="; + vendorHash = "sha256-RB/EoSRbWPYNFg73+nWuxf7i+kMAUQsJk0KQAZyJgj0="; ldflags = [ "-s" diff --git a/pkgs/by-name/uw/uwsm/package.nix b/pkgs/by-name/uw/uwsm/package.nix index 06b270c2ab0c..6900841f575f 100644 --- a/pkgs/by-name/uw/uwsm/package.nix +++ b/pkgs/by-name/uw/uwsm/package.nix @@ -28,13 +28,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "uwsm"; - version = "0.23.2"; + version = "0.23.3"; src = fetchFromGitHub { owner = "Vladimir-csp"; repo = "uwsm"; tag = "v${finalAttrs.version}"; - hash = "sha256-lKPCtlTfIAb7axthl/PUU82cULafYIhZ5xJolFKSOno="; + hash = "sha256-UP9Ztps5oWl0bdXhSlE4SCxHFprUf74DWygJy6GvO4k="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/yu/yubikey-manager/package.nix b/pkgs/by-name/yu/yubikey-manager/package.nix index ce4c65a21b33..ad133173372f 100644 --- a/pkgs/by-name/yu/yubikey-manager/package.nix +++ b/pkgs/by-name/yu/yubikey-manager/package.nix @@ -9,27 +9,30 @@ python3Packages.buildPythonPackage rec { pname = "yubikey-manager"; - version = "5.7.2"; + version = "5.8.0"; pyproject = true; src = fetchFromGitHub { owner = "Yubico"; repo = "yubikey-manager"; tag = version; - hash = "sha256-dgOi9gJ7jO3+EjZQjHfx+KDsBtj6b4JWR3Bp9xWM6FI="; + hash = "sha256-Z3krdKP6hhhIxN7nl/k5r30jFVC0kZK9Z6Aqllp/KrA="; }; postPatch = '' substituteInPlace "ykman/pcsc/__init__.py" \ - --replace 'pkill' '${if stdenv.hostPlatform.isLinux then procps else "/usr"}/bin/pkill' + --replace-fail 'pkill' '${if stdenv.hostPlatform.isLinux then procps else "/usr"}/bin/pkill' ''; - nativeBuildInputs = with python3Packages; [ - poetry-core + nativeBuildInputs = [ installShellFiles ]; - propagatedBuildInputs = with python3Packages; [ + build-system = with python3Packages; [ + poetry-core + ]; + + dependencies = with python3Packages; [ cryptography pyscard fido2 @@ -37,10 +40,6 @@ python3Packages.buildPythonPackage rec { keyring ]; - pythonRelaxDeps = [ - "keyring" - ]; - postInstall = '' installManPage man/ykman.1 diff --git a/pkgs/desktops/lomiri/development/cmake-extras/default.nix b/pkgs/desktops/lomiri/development/cmake-extras/default.nix index eae5e2c3b163..16b1d5580201 100644 --- a/pkgs/desktops/lomiri/development/cmake-extras/default.nix +++ b/pkgs/desktops/lomiri/development/cmake-extras/default.nix @@ -8,13 +8,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "cmake-extras"; - version = "1.8"; + version = "1.9"; src = fetchFromGitLab { owner = "ubports"; repo = "development/core/cmake-extras"; tag = finalAttrs.version; - hash = "sha256-4KPk8GrpmrrwN6epmzGVh0fCBgP765xR3Im5mMmE9vw="; + hash = "sha256-7dIuQ2SdtpG93cPZTmoxXUCwFhsq11gmg4OJlGTQ3VY="; }; postPatch = '' diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix index 071c2dd9737c..dbd86217c587 100644 --- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "elementary-music"; - version = "8.0.0"; + version = "8.1.0"; src = fetchFromGitHub { owner = "elementary"; repo = "music"; rev = version; - sha256 = "sha256-pqOAeHTFWSoJqXE9UCUkVIy5T7EoYsieJ4PMU1oX9ko="; + sha256 = "sha256-ALAQh+iFhRhAMCwYDM0Bcww1K/xJ/AajZu/52baI3gQ="; }; nativeBuildInputs = [ diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix index 43b9dd87d97c..3a575396c71b 100644 --- a/pkgs/development/compilers/crystal/default.nix +++ b/pkgs/development/compilers/crystal/default.nix @@ -328,5 +328,13 @@ rec { doCheck = false; }; + crystal_1_17 = generic { + version = "1.17.1"; + sha256 = "sha256-+wHhozPhpIsfQy1Lw+V48zvuWCfXzT4IC9KA1AU/DLw="; + binary = binaryCrystal_1_10; + llvmPackages = llvmPackages_18; + doCheck = false; + }; + crystal = crystal_1_16; } diff --git a/pkgs/development/compilers/swift/compiler/default.nix b/pkgs/development/compilers/swift/compiler/default.nix index d8089b22e44f..5de54078f519 100644 --- a/pkgs/development/compilers/swift/compiler/default.nix +++ b/pkgs/development/compilers/swift/compiler/default.nix @@ -111,6 +111,18 @@ let "swift-remote-mirror-headers" ]; + clangForWrappers = clang.override (prev: { + extraBuildCommands = + prev.extraBuildCommands + # We need to use the resource directory corresponding to Swift’s + # version of Clang instead of passing along the one from the + # `cc-wrapper` flags. + + '' + substituteInPlace $out/nix-support/cc-cflags \ + --replace-fail " -resource-dir=$out/resource-root" "" + ''; + }); + # Build a tool used during the build to create a custom clang wrapper, with # which we wrap the clang produced by the swift build. # @@ -130,11 +142,14 @@ let unwrappedClang="$targetFile-unwrapped" mv "$targetFile" "$unwrappedClang" - sed < '${clang}/bin/clang' > "$targetFile" \ + sed < '${clangForWrappers}/bin/clang' > "$targetFile" \ -e 's|^\s*exec|exec -a "$0"|g' \ -e 's|^\[\[ "${clang.cc}/bin/clang" = \*++ ]]|[[ "$0" = *++ ]]|' \ -e "s|${clang.cc}/bin/clang|$unwrappedClang|g" \ - -e "s|^\(\s*\)\($unwrappedClang\) \"@\\\$responseFile\"|\1argv0=\$0\n\1${bash}/bin/bash -c \"exec -a '\$argv0' \2 '@\$responseFile'\"|" + -e "s|^\(\s*\)\($unwrappedClang\) \"@\\\$responseFile\"|\1argv0=\$0\n\1${bash}/bin/bash -c \"exec -a '\$argv0' \2 '@\$responseFile'\"|" \ + ${lib.optionalString (clang.libcxx != null) '' + -e 's|$NIX_CXXSTDLIB_COMPILE_${clang.suffixSalt}|-isystem '$SWIFT_BUILD_ROOT'/libcxx/include/c++/v1|g' + ''} chmod a+x "$targetFile" ''; @@ -146,13 +161,12 @@ let # executable uses $0 to detect what tool is called. wrapperParams = { inherit bintools; - default_cc_wrapper = clang; # Instead of `@out@` in the original. coreutils_bin = lib.getBin coreutils; gnugrep_bin = gnugrep; suffixSalt = lib.replaceStrings [ "-" "." ] [ "_" "_" ] targetPlatform.config; use_response_file_by_default = 1; swiftDriver = ""; - # NOTE: @prog@ needs to be filled elsewhere. + # NOTE: @cc_wrapper@ and @prog@ need to be filled elsewhere. }; swiftWrapper = runCommand "swift-wrapper.sh" wrapperParams '' # Make empty to avoid adding the SDK’s modules in the bootstrap wrapper. Otherwise, the SDK conflicts with the @@ -168,7 +182,11 @@ let mv "$targetFile" "$unwrappedSwift" sed < '${swiftWrapper}' > "$targetFile" \ -e "s|@prog@|'$unwrappedSwift'|g" \ - -e 's|exec "$prog"|exec -a "$0" "$prog"|g' + -e 's|@cc_wrapper@|${clangForWrappers}|g' \ + -e 's|exec "$prog"|exec -a "$0" "$prog"|g' \ + ${lib.optionalString (clang.libcxx != null) '' + -e 's|$NIX_CXXSTDLIB_COMPILE_${clang.suffixSalt}|-isystem '$SWIFT_BUILD_ROOT'/libcxx/include/c++/v1|g' + ''} chmod a+x "$targetFile" ''; @@ -308,10 +326,12 @@ stdenv.mkDerivation { patch -p1 -d swift -i ${./patches/swift-cmake-3.25-compat.patch} patch -p1 -d swift -i ${./patches/swift-wrap.patch} - patch -p1 -d swift -i ${./patches/swift-nix-resource-root.patch} patch -p1 -d swift -i ${./patches/swift-linux-fix-libc-paths.patch} - patch -p1 -d swift -i ${./patches/swift-linux-fix-linking.patch} - patch -p1 -d swift -i ${./patches/swift-darwin-libcxx-flags.patch} + patch -p1 -d swift -i ${ + replaceVars ./patches/swift-linux-fix-linking.patch { + inherit clang; + } + } patch -p1 -d swift -i ${ replaceVars ./patches/swift-darwin-plistbuddy-workaround.patch { inherit swiftArch; @@ -354,6 +374,19 @@ stdenv.mkDerivation { stripLen = 1; hash = "sha256-u0zSejEjfrH3ZoMFm1j+NVv2t5AP9cE5yhsrdTS1dG4="; }) + + # Fix the build with modern libc++. + (fetchpatch { + name = "add-cstdio.patch"; + url = "https://github.com/llvm/llvm-project/commit/73e15b5edb4fa4a77e68c299a6e3b21e610d351f.patch"; + stripLen = 1; + hash = "sha256-eFcvxZaAuBsY/bda1h9212QevrXyvCHw8Cr9ngetDr0="; + }) + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/68744ffbdd7daac41da274eef9ac0d191e11c16d.patch"; + stripLen = 1; + hash = "sha256-QCGhsL/mi7610ZNb5SqxjRGjwJeK2rwtsFVGeG3PUGc="; + }) ] }; do patch -p1 -d llvm-project/lldb -i $lldbPatch @@ -361,7 +394,7 @@ stdenv.mkDerivation { patch -p1 -d llvm-project/clang -i ${./patches/clang-toolchain-dir.patch} patch -p1 -d llvm-project/clang -i ${./patches/clang-wrap.patch} - patch -p1 -d llvm-project/clang -i ${../../llvm/12/clang/purity.patch} + patch -p1 -d llvm-project/clang -i ${./patches/clang-purity.patch} patch -p2 -d llvm-project/clang -i ${ fetchpatch { name = "clang-cmake-fix-interpreter.patch"; @@ -419,6 +452,14 @@ stdenv.mkDerivation { patchShebangs . ${lib.optionalString (!stdenv.hostPlatform.isDarwin) '' + patch -p1 -d swift-corelibs-libdispatch -i ${ + # Fix the build with modern Clang. + fetchpatch { + url = "https://github.com/swiftlang/swift-corelibs-libdispatch/commit/30bb8019ba79cdae0eb1dc0c967c17996dd5cc0a.patch"; + hash = "sha256-wPZQ4wtEWk8HaKMfzjamlU6p/IW5EFiTssY63rGM+ZA="; + } + } + # NOTE: This interferes with ABI stability on Darwin, which uses the system # libraries in the hardcoded path /usr/lib/swift. fixCmakeFiles . @@ -426,7 +467,11 @@ stdenv.mkDerivation { ''; # > clang-15-unwrapped: error: unsupported option '-fzero-call-used-regs=used-gpr' for target 'arm64-apple-macosx10.9.0' - hardeningDisable = lib.optional stdenv.hostPlatform.isAarch64 "zerocallusedregs"; + # > clang-15-unwrapped: error: argument unused during compilation: '-fstack-clash-protection' [-Werror,-Wunused-command-line-argument] + hardeningDisable = lib.optionals stdenv.hostPlatform.isAarch64 [ + "zerocallusedregs" + "stackclashprotection" + ]; configurePhase = '' export SWIFT_SOURCE_ROOT="$PWD" @@ -469,6 +514,19 @@ stdenv.mkDerivation { cmakeFlags="-GNinja" buildProject swift-cmark + ${lib.optionalString (clang.libcxx != null) '' + # Install the libc++ headers corresponding to the LLVM version of + # Swift’s Clang. + cmakeFlags=" + -GNinja + -DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi + -DLIBCXXABI_INSTALL_INCLUDE_DIR=$dev/include/c++/v1 + " + ninjaFlags="install-cxx-headers install-cxxabi-headers" + buildProject libcxx llvm-project/runtimes + unset ninjaFlags + ''} + # Some notes: # - The Swift build just needs Clang. # - We can further reduce targets to just our targetPlatform. @@ -486,6 +544,10 @@ stdenv.mkDerivation { " buildProject llvm llvm-project/llvm + # Ensure that the built Clang can find the runtime libraries by + # copying the symlinks from the main wrapper. + cp -P ${clang}/resource-root/{lib,share} $SWIFT_BUILD_ROOT/llvm/lib/clang/15.0.0/ + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' # Add appleSwiftCore to the search paths. Adding the whole SDK results in build failures. @@ -658,7 +720,7 @@ stdenv.mkDerivation { mv llvm/bin/clang-15{-unwrapped,} mv swift/bin/swift-frontend{-unwrapped,} - mkdir $out $lib + mkdir $lib # Install clang binaries only. We hide these with the wrapper, so they are # for private use by Swift only. @@ -693,14 +755,8 @@ stdenv.mkDerivation { ln -s $lib/lib/swift $out/lib/swift # Swift has a separate resource root from Clang, but locates the Clang - # resource root via subdir or symlink. Provide a default here, but we also - # patch Swift to prefer NIX_CC if set. - # - # NOTE: We don't symlink directly here, because that'd add a run-time dep - # on the full Clang compiler to every Swift executable. The copy here is - # just copying the 3 symlinks inside to smaller closures. - mkdir $lib/lib/swift/clang - cp -P ${clang}/resource-root/* $lib/lib/swift/clang/ + # resource root via subdir or symlink. + mv $SWIFT_BUILD_ROOT/llvm/lib/clang/15.0.0 $lib/lib/swift/clang ''; preFixup = lib.optionalString stdenv.hostPlatform.isLinux '' @@ -756,6 +812,10 @@ stdenv.mkDerivation { swiftStaticLibSubdir ; + tests = { + cxx-interop-test = callPackage ../cxx-interop-test { }; + }; + # Internal attr for the wrapper. _wrapperParams = wrapperParams; }; diff --git a/pkgs/development/compilers/swift/compiler/patches/clang-purity.patch b/pkgs/development/compilers/swift/compiler/patches/clang-purity.patch new file mode 100644 index 000000000000..deb230a36c5b --- /dev/null +++ b/pkgs/development/compilers/swift/compiler/patches/clang-purity.patch @@ -0,0 +1,28 @@ +From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 +From: Will Dietz +Date: Thu, 18 May 2017 11:56:12 -0500 +Subject: [PATCH] "purity" patch for 5.0 + +--- + lib/Driver/ToolChains/Gnu.cpp | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp +index fe3c0191bb..c6a482bece 100644 +--- a/lib/Driver/ToolChains/Gnu.cpp ++++ b/lib/Driver/ToolChains/Gnu.cpp +@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, + if (!IsStatic) { + if (Args.hasArg(options::OPT_rdynamic)) + CmdArgs.push_back("-export-dynamic"); +- +- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) { +- CmdArgs.push_back("-dynamic-linker"); +- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) + +- ToolChain.getDynamicLinker(Args))); +- } + } + + CmdArgs.push_back("-o"); +-- +2.11.0 diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch b/pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch deleted file mode 100644 index c2b5adafa592..000000000000 --- a/pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch +++ /dev/null @@ -1,63 +0,0 @@ -On Darwin, the SDK is a directory of stubs, and libc++ lives separately. We -need to patch the CMake files in several places to make the build for C++ -interop succeed. The required flags can be read from cc-wrapper support files. - ---- a/SwiftCompilerSources/CMakeLists.txt -+++ b/SwiftCompilerSources/CMakeLists.txt -@@ -105,18 +105,11 @@ function(add_swift_compiler_modules_library name) - get_filename_component(swift_exec_bin_dir ${ALS_SWIFT_EXEC} DIRECTORY) - set(sdk_option ${sdk_option} "-resource-dir" "${swift_exec_bin_dir}/../bootstrapping0/lib/swift") - endif() -- if(NOT EXISTS "${sdk_path}/usr/include/c++") -- # Darwin SDKs in Xcode 12 or older do not include libc++, which prevents clang from finding libc++ when invoked -- # from ClangImporter. This results in build errors. To workaround this, let's explicitly pass the path to libc++ -- # to clang. -- message(WARNING "Building with an outdated Darwin SDK: libc++ missing from the ${SWIFT_HOST_VARIANT_SDK} SDK. Will use libc++ from the toolchain.") -- get_filename_component(absolute_libcxx_path "${CMAKE_C_COMPILER}/../../include/c++/v1" REALPATH) -- if (EXISTS "${absolute_libcxx_path}") -- set(sdk_option ${sdk_option} "-Xcc" "-isystem" "-Xcc" "${absolute_libcxx_path}") -- else() -- message(ERROR "libc++ not found in the toolchain.") -- endif() -- endif() -+ file(READ "$ENV{NIX_CC}/nix-support/libcxx-cxxflags" nix_libcxx_cxxflags) -+ separate_arguments(nix_libcxx_cxxflags) -+ foreach(nix_libcxx_cxxflag ${nix_libcxx_cxxflags}) -+ set(sdk_option ${sdk_option} "-Xcc" "${nix_libcxx_cxxflag}") -+ endforeach() - elseif(BOOTSTRAPPING_MODE STREQUAL "CROSSCOMPILE") - set(sdk_option "-sdk" "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}") - get_filename_component(swift_exec_bin_dir ${ALS_SWIFT_EXEC} DIRECTORY) ---- a/cmake/modules/SwiftConfigureSDK.cmake -+++ b/cmake/modules/SwiftConfigureSDK.cmake -@@ -270,6 +270,18 @@ macro(configure_sdk_darwin - # Add this to the list of known SDKs. - list(APPEND SWIFT_CONFIGURED_SDKS "${prefix}") - -+ set(cxx_overlay_opt "") -+ if("${prefix}" STREQUAL "OSX") -+ file(READ "$ENV{NIX_CC}/nix-support/libcxx-cxxflags" nix_libcxx_cxxflags) -+ separate_arguments(nix_libcxx_cxxflags) -+ foreach(nix_libcxx_cxxflag ${nix_libcxx_cxxflags}) -+ set(cxx_overlay_opt ${cxx_overlay_opt} "-Xcc" "${nix_libcxx_cxxflag}") -+ endforeach() -+ endif() -+ set(SWIFT_SDK_${prefix}_CXX_OVERLAY_SWIFT_COMPILE_FLAGS -+ ${cxx_overlay_opt} -+ CACHE STRING "Extra flags for compiling the C++ overlay") -+ - _report_sdk("${prefix}") - endmacro() - ---- a/stdlib/public/Cxx/std/CMakeLists.txt -+++ b/stdlib/public/Cxx/std/CMakeLists.txt -@@ -145,6 +145,9 @@ add_swift_target_library(swiftstd STATIC NO_LINK_NAME IS_STDLIB - SWIFT_COMPILE_FLAGS_LINUX - ${SWIFT_SDK_LINUX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS} - -+ SWIFT_COMPILE_FLAGS_OSX -+ ${SWIFT_SDK_OSX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS} -+ - LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}" - TARGET_SDKS ALL_APPLE_PLATFORMS LINUX - INSTALL_IN_COMPONENT compiler diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch b/pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch index e09d5162a93a..c10b4038a9c4 100644 --- a/pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch +++ b/pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch @@ -1,21 +1,17 @@ +diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp +index c0ee9217e8..bf7737d6fa 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp -@@ -1475,7 +1475,17 @@ const char *ToolChain::getClangLinkerDriver( - - // If there is a linker driver in the toolchain folder, use that instead. - if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {toolchainPath})) -- LinkerDriver = Args.MakeArgString(tool.get()); -+ return Args.MakeArgString(tool.get()); -+ } -+ -+ // For Nix, prefer linking using the wrapped system clang, instead of using -+ // the unwrapped clang packaged with swift. The latter is unable to link, but -+ // we still want to use it for other purposes (clang importer). -+ if (auto nixCC = llvm::sys::Process::GetEnv("NIX_CC")) { -+ llvm::SmallString<128> binDir(nixCC.getValue()); -+ llvm::sys::path::append(binDir, "bin"); -+ if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {binDir.str()})) -+ return Args.MakeArgString(tool.get()); +@@ -1489,6 +1489,12 @@ + LinkerDriver = Args.MakeArgString(tool.get()); } ++ // For Nix, prefer linking using the wrapped Nixpkgs clang, instead of using ++ // the unwrapped clang packaged with swift. The latter is unable to link, but ++ // we still want to use it for other purposes (clang importer). ++ if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {"@clang@/bin"})) ++ return Args.MakeArgString(tool.get()); ++ return LinkerDriver; + } + diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-nix-resource-root.patch b/pkgs/development/compilers/swift/compiler/patches/swift-nix-resource-root.patch deleted file mode 100644 index b67286a5d1c3..000000000000 --- a/pkgs/development/compilers/swift/compiler/patches/swift-nix-resource-root.patch +++ /dev/null @@ -1,67 +0,0 @@ -Swift normally looks for the Clang resource dir in a subdir/symlink of its own -resource dir. We provide a symlink to the Swift build-time Clang as a default -there, but we also here patch two checks to try locate it via NIX_CC. - -The first (ClangImporter.cpp) happens when Swift code imports C modules. The -second (ToolChains.cpp) happens when Swift is used to link the final product. - ---- a/lib/ClangImporter/ClangImporter.cpp -+++ b/lib/ClangImporter/ClangImporter.cpp -@@ -73,6 +73,7 @@ - #include "llvm/Support/FileSystem.h" - #include "llvm/Support/Memory.h" - #include "llvm/Support/Path.h" -+#include "llvm/Support/Process.h" - #include "llvm/Support/VirtualFileSystem.h" - #include "llvm/Support/YAMLParser.h" - #include -@@ -786,6 +787,17 @@ importer::addCommonInvocationArguments( - - const std::string &overrideResourceDir = importerOpts.OverrideResourceDir; - if (overrideResourceDir.empty()) { -+ // Prefer the Clang resource directory from NIX_CC, to allow swapping in a -+ // different stdenv. -+ // TODO: Figure out how to provide a user override for this. Probably a -+ // niche use case, though, and for now a user can unset NIX_CC to work -+ // around it if necessary. -+ if (auto nixCC = llvm::sys::Process::GetEnv("NIX_CC")) { -+ llvm::SmallString<128> resourceDir(nixCC.getValue()); -+ llvm::sys::path::append(resourceDir, "resource-root"); -+ invocationArgStrs.push_back("-resource-dir"); -+ invocationArgStrs.push_back(std::string(resourceDir.str())); -+ } else { - llvm::SmallString<128> resourceDir(searchPathOpts.RuntimeResourcePath); - - // Adjust the path to refer to our copy of the Clang resource directory -@@ -801,6 +813,7 @@ importer::addCommonInvocationArguments( - // Set the Clang resource directory to the path we computed. - invocationArgStrs.push_back("-resource-dir"); - invocationArgStrs.push_back(std::string(resourceDir.str())); -+ } // nixCC - } else { - invocationArgStrs.push_back("-resource-dir"); - invocationArgStrs.push_back(overrideResourceDir); ---- a/lib/Driver/ToolChains.cpp -+++ b/lib/Driver/ToolChains.cpp -@@ -1393,10 +1393,20 @@ void ToolChain::getClangLibraryPath(const ArgList &Args, - SmallString<128> &LibPath) const { - const llvm::Triple &T = getTriple(); - -+ // Nix: We provide a `clang` symlink in the default Swift resource root, but -+ // prefer detecting the Clang resource root via NIX_CC, to allow swapping in -+ // a different stdenv. However, always honor a user-provided `-resource-dir`. -+ auto nixCC = llvm::sys::Process::GetEnv("NIX_CC"); -+ if (nixCC && !Args.hasArgNoClaim(options::OPT_resource_dir)) { -+ LibPath.assign(nixCC.getValue()); -+ llvm::sys::path::append(LibPath, "resource-root"); -+ } else { - getResourceDirPath(LibPath, Args, /*Shared=*/true); - // Remove platform name. - llvm::sys::path::remove_filename(LibPath); -- llvm::sys::path::append(LibPath, "clang", "lib", -+ llvm::sys::path::append(LibPath, "clang"); -+ } // nixCC -+ llvm::sys::path::append(LibPath, "lib", - T.isOSDarwin() ? "darwin" - : getPlatformNameForTriple(T)); - } diff --git a/pkgs/development/compilers/swift/cxx-interop-test/default.nix b/pkgs/development/compilers/swift/cxx-interop-test/default.nix new file mode 100644 index 000000000000..12640750d622 --- /dev/null +++ b/pkgs/development/compilers/swift/cxx-interop-test/default.nix @@ -0,0 +1,57 @@ +{ + lib, + stdenv, + swift, + swiftpm, + swiftPackages, +}: + +swiftPackages.stdenv.mkDerivation (finalAttrs: { + name = "swift-cxx-interop-test"; + + src = ./src; + + nativeBuildInputs = [ + swift + swiftpm + ]; + + installPhase = '' + runHook preInstall + + binPath="$(swiftpmBinPath)" + mkdir -p -- "$out/bin" + cp -- "$binPath/${finalAttrs.meta.mainProgram}" "$out/bin" + + runHook postInstall + ''; + + installCheckPhase = '' + runHook preInstallCheck + + "$out/bin/${finalAttrs.meta.mainProgram}" | grep 'Hello, world!' + + runHook postInstallCheck + ''; + + doInstallCheck = true; + + env = { + # Gross hack copied from `protoc-gen-swift` :( + LD_LIBRARY_PATH = lib.optionalString stdenv.hostPlatform.isLinux ( + lib.makeLibraryPath [ + swiftPackages.Dispatch + ] + ); + }; + + meta = { + inherit (swift.meta) + team + platforms + badPlatforms + ; + license = lib.licenses.mit; + mainProgram = "CxxInteropTest"; + }; +}) diff --git a/pkgs/development/compilers/swift/cxx-interop-test/src/.gitignore b/pkgs/development/compilers/swift/cxx-interop-test/src/.gitignore new file mode 100644 index 000000000000..3b29812086f2 --- /dev/null +++ b/pkgs/development/compilers/swift/cxx-interop-test/src/.gitignore @@ -0,0 +1,9 @@ +.DS_Store +/.build +/Packages +/*.xcodeproj +xcuserdata/ +DerivedData/ +.swiftpm/config/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/pkgs/development/compilers/swift/cxx-interop-test/src/Package.swift b/pkgs/development/compilers/swift/cxx-interop-test/src/Package.swift new file mode 100644 index 000000000000..e11bf47989ba --- /dev/null +++ b/pkgs/development/compilers/swift/cxx-interop-test/src/Package.swift @@ -0,0 +1,16 @@ +// swift-tools-version: 5.8 + +import PackageDescription + +let package = Package( + name: "CxxInteropTest", + targets: [ + .executableTarget( + name: "CxxInteropTest", + path: "Sources", + swiftSettings: [ + .unsafeFlags(["-enable-experimental-cxx-interop"]) + ] + ) + ] +) diff --git a/pkgs/development/compilers/swift/cxx-interop-test/src/Sources/main.swift b/pkgs/development/compilers/swift/cxx-interop-test/src/Sources/main.swift new file mode 100644 index 000000000000..c4ea568704ff --- /dev/null +++ b/pkgs/development/compilers/swift/cxx-interop-test/src/Sources/main.swift @@ -0,0 +1,3 @@ +import CxxStdlib + +print(String(cxxString: std.string("Hello, world!"))) diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix index 0215cd6f0ba3..ad4fe81c46cb 100644 --- a/pkgs/development/compilers/swift/default.nix +++ b/pkgs/development/compilers/swift/default.nix @@ -1,44 +1,21 @@ { lib, - pkgs, newScope, - darwin, + stdenv, llvmPackages, - llvmPackages_15, - overrideCC, - overrideLibcxx, + darwin, }: let - swiftLlvmPackages = llvmPackages_15; - self = rec { callPackage = newScope self; - # Swift builds its own Clang for internal use. We wrap that clang with a - # cc-wrapper derived from the clang configured below. Because cc-wrapper - # applies a specific resource-root, the two versions are best matched, or - # we'll often run into compilation errors. - # - # The following selects the correct Clang version, matching the version - # used in Swift. - inherit (swiftLlvmPackages) clang; - - # Overrides that create a useful environment for swift packages, allowing - # packaging with `swiftPackages.callPackage`. - inherit (clang) bintools; - stdenv = - let - stdenv' = overrideCC pkgs.stdenv clang; - in - # Ensure that Swift’s internal clang uses the same libc++ and libc++abi as the - # default clang’s stdenv. Using the default libc++ avoids issues (such as crashes) - # that can happen when a Swift application dynamically links different versions - # of libc++ and libc++abi than libraries it links are using. - if stdenv'.cc.libcxx != null then overrideLibcxx stdenv' else stdenv'; + # Provided for backwards compatibility. + inherit stdenv; swift-unwrapped = callPackage ./compiler { + inherit (llvmPackages) stdenv; inherit (darwin) DarwinTools sigtool; }; @@ -51,13 +28,19 @@ let if stdenv.hostPlatform.isDarwin then null # part of apple-sdk else - callPackage ./libdispatch { swift = swiftNoSwiftDriver; }; + callPackage ./libdispatch { + inherit (llvmPackages) stdenv; + swift = swiftNoSwiftDriver; + }; Foundation = if stdenv.hostPlatform.isDarwin then null # part of apple-sdk else - callPackage ./foundation { swift = swiftNoSwiftDriver; }; + callPackage ./foundation { + inherit (llvmPackages) stdenv; + swift = swiftNoSwiftDriver; + }; # TODO: Apple distributes a binary XCTest with Xcode, but it is not part of # CLTools (or SUS), so would have to figure out how to fetch it. The binary @@ -68,11 +51,13 @@ let }; swiftpm = callPackage ./swiftpm { + inherit (llvmPackages) stdenv; inherit (darwin) DarwinTools; swift = swiftNoSwiftDriver; }; swift-driver = callPackage ./swift-driver { + inherit (llvmPackages) stdenv; swift = swiftNoSwiftDriver; }; @@ -80,11 +65,17 @@ let swift = swift-unwrapped; }; - sourcekit-lsp = callPackage ./sourcekit-lsp { }; + sourcekit-lsp = callPackage ./sourcekit-lsp { + inherit (llvmPackages) stdenv; + }; - swift-docc = callPackage ./swift-docc { }; + swift-docc = callPackage ./swift-docc { + inherit (llvmPackages) stdenv; + }; - swift-format = callPackage ./swift-format { }; + swift-format = callPackage ./swift-format { + inherit (llvmPackages) stdenv; + }; swiftpm2nix = callPackage ./swiftpm2nix { }; diff --git a/pkgs/development/compilers/swift/foundation/default.nix b/pkgs/development/compilers/swift/foundation/default.nix index de20db4ce258..e2ada783ea0c 100644 --- a/pkgs/development/compilers/swift/foundation/default.nix +++ b/pkgs/development/compilers/swift/foundation/default.nix @@ -28,6 +28,16 @@ stdenv.mkDerivation { url = "https://github.com/apple/swift-corelibs-foundation/commit/47260803a108c6e0d639adcebeed3ac6a76e8bcd.patch"; hash = "sha256-1JUSQW86IHKkBZqxvpk0P8zcSKntzOTNlMoGBfgeT4c="; }) + + # Fix the build with modern Clang. + (fetchpatch { + url = "https://github.com/swiftlang/swift-corelibs-foundation/commit/76058114e5f5b47e02dd4441a6389858bb599bd6.patch"; + hash = "sha256-N/hdTGCWMz092xh3AI28v3b+zjQHRmsb1F/2Q2u/jik="; + }) + (fetchpatch { + url = "https://github.com/swiftlang/swift-corelibs-foundation/commit/5f3e896e522ff364780e6330df867e20e26269b4.patch"; + hash = "sha256-AaBWSysNpZ7NV10RGD4TehZqE0k8Sn+TlhlGw1PiRdI="; + }) ]; outputs = [ diff --git a/pkgs/development/compilers/swift/libdispatch/default.nix b/pkgs/development/compilers/swift/libdispatch/default.nix index 3760dfb405b9..4b30a1d80673 100644 --- a/pkgs/development/compilers/swift/libdispatch/default.nix +++ b/pkgs/development/compilers/swift/libdispatch/default.nix @@ -2,6 +2,7 @@ lib, stdenv, callPackage, + fetchpatch, cmake, ninja, useSwift ? true, @@ -31,7 +32,15 @@ stdenv.mkDerivation { swift ]; - patches = [ ./disable-swift-overlay.patch ]; + patches = [ + # Fix the build with modern Clang. + (fetchpatch { + url = "https://github.com/swiftlang/swift-corelibs-libdispatch/commit/30bb8019ba79cdae0eb1dc0c967c17996dd5cc0a.patch"; + hash = "sha256-wPZQ4wtEWk8HaKMfzjamlU6p/IW5EFiTssY63rGM+ZA="; + }) + + ./disable-swift-overlay.patch + ]; cmakeFlags = lib.optional useSwift "-DENABLE_SWIFT=ON"; diff --git a/pkgs/development/compilers/swift/sourcekit-lsp/default.nix b/pkgs/development/compilers/swift/sourcekit-lsp/default.nix index fff5cd6aaef7..d2e0ae6fbc0e 100644 --- a/pkgs/development/compilers/swift/sourcekit-lsp/default.nix +++ b/pkgs/development/compilers/swift/sourcekit-lsp/default.nix @@ -43,6 +43,13 @@ stdenv.mkDerivation { configurePhase = generated.configure + '' swiftpmMakeMutable indexstore-db patch -p1 -d .build/checkouts/indexstore-db -i ${./patches/indexstore-db-macos-target.patch} + patch -p1 -d .build/checkouts/indexstore-db -i ${ + # Fix the build with modern Clang. + fetchpatch { + url = "https://github.com/swiftlang/indexstore-db/commit/6120b53b1e8774ef4e2ad83438d4d94961331e72.patch"; + hash = "sha256-tMAfTIa3RKiA/jDtP02mHcpPaF2s9a+3q/PLJxqn30M="; + } + } swiftpmMakeMutable swift-tools-support-core patch -p1 -d .build/checkouts/swift-tools-support-core -i ${ diff --git a/pkgs/development/compilers/swift/swift-docc/default.nix b/pkgs/development/compilers/swift/swift-docc/default.nix index 5dbcf50e83bf..2ec0b4c10746 100644 --- a/pkgs/development/compilers/swift/swift-docc/default.nix +++ b/pkgs/development/compilers/swift/swift-docc/default.nix @@ -30,7 +30,16 @@ stdenv.mkDerivation { XCTest ]; - configurePhase = generated.configure; + configurePhase = + generated.configure + # Fix the build with modern Clang. + # + # Based on the upstream fix for Musl: + # + + '' + swiftpmMakeMutable swift-nio + patch -p1 -d .build/checkouts/swift-nio -i ${./fix-swift-nio.patch} + ''; # We only install the docc binary, so don't need the other products. # This works around a failure building generate-symbol-graph: diff --git a/pkgs/development/compilers/swift/swift-docc/fix-swift-nio.patch b/pkgs/development/compilers/swift/swift-docc/fix-swift-nio.patch new file mode 100644 index 000000000000..ccab988906fa --- /dev/null +++ b/pkgs/development/compilers/swift/swift-docc/fix-swift-nio.patch @@ -0,0 +1,13 @@ +diff --git a/Package.swift b/Package.swift +index 39c6fb4b2f..02c08b898d 100644 +--- a/Package.swift ++++ b/Package.swift +@@ -26,7 +26,7 @@ + .target(name: "NIOFoundationCompat", dependencies: ["NIO"]), + .target(name: "CNIOAtomics", dependencies: []), + .target(name: "CNIOSHA1", dependencies: []), +- .target(name: "CNIOLinux", dependencies: []), ++ .target(name: "CNIOLinux", dependencies: [], cSettings: [.define("_GNU_SOURCE")]), + .target(name: "CNIODarwin", dependencies: [], cSettings: [.define("__APPLE_USE_RFC_3542")]), + .target(name: "CNIOWindows", dependencies: []), + .target(name: "NIOConcurrencyHelpers", diff --git a/pkgs/development/compilers/swift/swift-driver/default.nix b/pkgs/development/compilers/swift/swift-driver/default.nix index d84d5be2ca74..3da4e5bacdf9 100644 --- a/pkgs/development/compilers/swift/swift-driver/default.nix +++ b/pkgs/development/compilers/swift/swift-driver/default.nix @@ -10,6 +10,7 @@ XCTest, sqlite, ncurses, + clang, replaceVars, }: let @@ -40,9 +41,10 @@ stdenv.mkDerivation { ]; patches = [ - ./patches/nix-resource-root.patch ./patches/disable-catalyst.patch - ./patches/linux-fix-linking.patch + (replaceVars ./patches/linux-fix-linking.patch { + inherit clang; + }) # TODO: Replace with branch patch once merged: # https://github.com/apple/swift-driver/pull/1197 (fetchpatch { diff --git a/pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch b/pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch index 8f91b3a234b5..be4147d44f07 100644 --- a/pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch +++ b/pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch @@ -1,3 +1,5 @@ +diff --git a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift +index a4a735f498..381522cc1f 100644 --- a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift @@ -10,6 +10,7 @@ @@ -8,19 +10,17 @@ import SwiftOptions import func TSCBasic.lookupExecutablePath -@@ -120,7 +121,20 @@ extension GenericUnixToolchain { +@@ -120,7 +121,18 @@ // just using `clang` and avoid a dependency on the C++ runtime. let clangTool: Tool = parsedOptions.hasArgument(.enableExperimentalCxxInterop) ? .clangxx : .clang - var clangPath = try getToolPath(clangTool) + -+ // For Nix, prefer linking using the wrapped system clang, instead of using ++ // For Nix, prefer linking using the wrapped Nixpkgs clang, instead of using + // the unwrapped clang packaged with swift. The latter is unable to link, but + // we still want to use it for other purposes (clang importer). + var clangPath: AbsolutePath -+ let env = ProcessInfo.processInfo.environment -+ if let nixCC = env["NIX_CC"], -+ let binPath = try? AbsolutePath(validating: "\(nixCC)/bin"), ++ if let binPath = try? AbsolutePath(validating: "@clang@/bin"), + let tool = lookupExecutablePath(filename: parsedOptions.hasArgument(.enableExperimentalCxxInterop) + ? "clang++" : "clang", + searchPaths: [binPath]) { @@ -30,11 +30,11 @@ if let toolsDirPath = parsedOptions.getLastArgument(.toolsDirectory) { // FIXME: What if this isn't an absolute path? let toolsDir = try AbsolutePath(validating: toolsDirPath.asSingle) -@@ -136,6 +150,7 @@ extension GenericUnixToolchain { +@@ -136,6 +148,7 @@ commandLine.appendFlag("-B") commandLine.appendPath(toolsDir) } -+ } // nixCC ++ } // Nix // Executables on Linux get -pie if targetTriple.os == .linux && linkerOutputType == .executable { diff --git a/pkgs/development/compilers/swift/swift-driver/patches/nix-resource-root.patch b/pkgs/development/compilers/swift/swift-driver/patches/nix-resource-root.patch deleted file mode 100644 index 8c24db5aad1d..000000000000 --- a/pkgs/development/compilers/swift/swift-driver/patches/nix-resource-root.patch +++ /dev/null @@ -1,28 +0,0 @@ -Swift normally looks for the Clang resource dir in a subdir/symlink of its own -resource dir. We provide a symlink to the Swift build-time Clang as a default -there, but we also here patch a check to try locate it via NIX_CC. - ---- a/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift -+++ b/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift -@@ -10,6 +10,7 @@ - // - //===----------------------------------------------------------------------===// - -+import Foundation - import SwiftOptions - - import protocol TSCBasic.FileSystem -@@ -26,6 +27,13 @@ extension Toolchain { - for targetInfo: FrontendTargetInfo, - parsedOptions: inout ParsedOptions - ) throws -> VirtualPath { -+ let env = ProcessInfo.processInfo.environment -+ if let nixCC = env["NIX_CC"] { -+ return try VirtualPath(path: nixCC) -+ .appending(components: "resource-root", "lib", -+ targetInfo.target.triple.platformName(conflatingDarwin: true)!) -+ } -+ - return VirtualPath.lookup(targetInfo.runtimeResourcePath.path) - .appending(components: "clang", "lib", - targetInfo.target.triple.platformName(conflatingDarwin: true)!) diff --git a/pkgs/development/compilers/swift/wrapper/default.nix b/pkgs/development/compilers/swift/wrapper/default.nix index d8b08cf5e3c2..e446bec66868 100644 --- a/pkgs/development/compilers/swift/wrapper/default.nix +++ b/pkgs/development/compilers/swift/wrapper/default.nix @@ -4,6 +4,7 @@ swift, useSwiftDriver ? true, swift-driver, + clang, }: stdenv.mkDerivation ( @@ -28,6 +29,25 @@ stdenv.mkDerivation ( swiftStaticLibSubdir ; swiftDriver = lib.optionalString useSwiftDriver "${swift-driver}/bin/swift-driver"; + cc_wrapper = clang.override (prev: { + extraBuildCommands = + prev.extraBuildCommands + # We need to use the resource directory corresponding to Swift’s + # version of Clang instead of passing along the one from the + # `cc-wrapper` flags. + + '' + rm -r $out/resource-root + substituteInPlace $out/nix-support/cc-cflags \ + --replace-fail \ + "-resource-dir=$out/resource-root" \ + "-resource-dir=${lib.getLib swift}/lib/swift/clang" + '' + # We need the libc++ headers corresponding to the LLVM version of + # Swift’s Clang. + + lib.optionalString (clang.libcxx != null) '' + include -isystem "${lib.getDev swift}/include/c++/v1" > $out/nix-support/libcxx-cxxflags + ''; + }); env.darwinMinVersion = lib.optionalString stdenv.targetPlatform.isDarwin ( stdenv.targetPlatform.darwinMinVersion @@ -79,6 +99,7 @@ stdenv.mkDerivation ( swiftArch swiftModuleSubdir swiftLibSubdir + tests ; }; } diff --git a/pkgs/development/compilers/swift/wrapper/wrapper.sh b/pkgs/development/compilers/swift/wrapper/wrapper.sh index bb9c07a5b444..a0f706dfbe6c 100644 --- a/pkgs/development/compilers/swift/wrapper/wrapper.sh +++ b/pkgs/development/compilers/swift/wrapper/wrapper.sh @@ -8,7 +8,7 @@ if (( "${NIX_DEBUG:-0}" >= 7 )); then set -x fi -cc_wrapper="${NIX_CC:-@default_cc_wrapper@}" +cc_wrapper="@cc_wrapper@" source $cc_wrapper/nix-support/utils.bash diff --git a/pkgs/development/python-modules/aiohomematic/default.nix b/pkgs/development/python-modules/aiohomematic/default.nix index 51820f1e13ce..9303e7d28bb6 100644 --- a/pkgs/development/python-modules/aiohomematic/default.nix +++ b/pkgs/development/python-modules/aiohomematic/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "aiohomematic"; - version = "2025.8.6"; + version = "2025.8.10"; pyproject = true; src = fetchFromGitHub { owner = "SukramJ"; repo = "aiohomematic"; tag = version; - hash = "sha256-HmcBl+uFjEeyZdilqqTxQ8wrFbDr/8tsh/l0yoVfYJg="; + hash = "sha256-ii+fvjn54IT376YzwljPz2tkx2bv8jojI4rNracCgwA="; }; postPatch = '' diff --git a/pkgs/servers/home-assistant/custom-components/homematicip_local/package.nix b/pkgs/servers/home-assistant/custom-components/homematicip_local/package.nix index c7b9cd9b766c..c83d1a0087aa 100644 --- a/pkgs/servers/home-assistant/custom-components/homematicip_local/package.nix +++ b/pkgs/servers/home-assistant/custom-components/homematicip_local/package.nix @@ -9,13 +9,13 @@ buildHomeAssistantComponent rec { owner = "SukramJ"; domain = "homematicip_local"; - version = "1.85.2"; + version = "1.86.0"; src = fetchFromGitHub { owner = "SukramJ"; repo = "custom_homematic"; tag = version; - hash = "sha256-uhSpWD7L1T345PjfAgywdscbHKVLKlzUVCG88HaKAac="; + hash = "sha256-QGQVSx6yPfT178GAPPbfiOMuEJ6aPFc0SUp5vO9AYUQ="; }; postPatch = '' diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 7d086c0afd22..0b6a0b7375ca 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -154,9 +154,7 @@ with pkgs; go = recurseIntoAttrs (callPackage ../build-support/go/tests.nix { }); - pkg-config = recurseIntoAttrs (callPackage ../top-level/pkg-config/tests.nix { }) // { - __recurseIntoDerivationForReleaseJobs = true; - }; + pkg-config = recurseIntoAttrs (callPackage ../top-level/pkg-config/tests.nix { }); buildRustCrate = recurseIntoAttrs (callPackage ../build-support/rust/build-rust-crate/test { }); importCargoLock = recurseIntoAttrs (callPackage ../build-support/rust/test/import-cargo-lock { }); diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 39e546b0651e..37e3ebd4b612 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -131,8 +131,8 @@ lib.makeExtensible ( ( { nix_2_28 = commonMeson { - version = "2.28.4"; - hash = "sha256-V1tPrBkPteqF8VWUgpotNFYJ2Xm6WmB3aMPexuEHl9I="; + version = "2.28.5"; + hash = "sha256-oIfAHxO+BCtHXJXLHBnsKkGl1Pw+Uuq1PwNxl+lZ+Oc="; self_attribute_name = "nix_2_28"; }; diff --git a/pkgs/tools/virtualization/mkosi/default.nix b/pkgs/tools/virtualization/mkosi/default.nix index 42705165bf61..10108277497e 100644 --- a/pkgs/tools/virtualization/mkosi/default.nix +++ b/pkgs/tools/virtualization/mkosi/default.nix @@ -58,7 +58,7 @@ let in python3Packages.buildPythonApplication rec { pname = "mkosi"; - version = "25.3-unstable-2025-04-01"; + version = "25.3"; format = "pyproject"; outputs = [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 62ad672607c6..9b37f3ea96ee 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4723,6 +4723,8 @@ with pkgs; crystal_1_11 crystal_1_14 crystal_1_15 + crystal_1_16 + crystal_1_17 crystal ; @@ -5156,10 +5158,7 @@ with pkgs; haskell.packages.ghc96 else haskell.packages.ghc98 - ) - // { - __recurseIntoDerivationForReleaseJobs = true; - }; + ); # haskellPackages.ghc is build->host (it exposes the compiler used to build the # set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more @@ -8802,22 +8801,18 @@ with pkgs; } ); - libsForQt5 = - (recurseIntoAttrs ( - import ./qt5-packages.nix { - inherit - lib - config - __splicedPackages - makeScopeWithSplicing' - generateSplicesForMkScope - pkgsHostTarget - ; - } - )) - // { - __recurseIntoDerivationForReleaseJobs = true; - }; + libsForQt5 = recurseIntoAttrs ( + import ./qt5-packages.nix { + inherit + lib + config + __splicedPackages + makeScopeWithSplicing' + generateSplicesForMkScope + pkgsHostTarget + ; + } + ); # plasma5Packages maps to the Qt5 packages set that is used to build the plasma5 desktop plasma5Packages = libsForQt5; diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index 26829450d243..8f3f0fd241c5 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -781,7 +781,6 @@ in linux_libre = recurseIntoAttrs (packagesFor kernels.linux_libre); linux_latest_libre = recurseIntoAttrs (packagesFor kernels.linux_latest_libre); - __recurseIntoDerivationForReleaseJobs = true; } // lib.optionalAttrs config.allowAliases { diff --git a/pkgs/top-level/pkg-config/tests.nix b/pkgs/top-level/pkg-config/tests.nix index 345283f83d81..4f3e6c8fb7cf 100644 --- a/pkgs/top-level/pkg-config/tests.nix +++ b/pkgs/top-level/pkg-config/tests.nix @@ -22,7 +22,5 @@ let }; in lib.recurseIntoAttrs { - defaultPkgConfigPackages = allPkgs.callPackage ./test-defaultPkgConfigPackages.nix { } // { - __recurseIntoDerivationForReleaseJobs = true; - }; + defaultPkgConfigPackages = allPkgs.callPackage ./test-defaultPkgConfigPackages.nix { }; } diff --git a/pkgs/top-level/release-attrpaths-superset.nix b/pkgs/top-level/release-attrpaths-superset.nix deleted file mode 100644 index 80544ced5165..000000000000 --- a/pkgs/top-level/release-attrpaths-superset.nix +++ /dev/null @@ -1,114 +0,0 @@ -# This expression will, as efficiently as possible, dump a -# *superset* of all attrpaths of derivations which might be -# part of a release on *any* platform. -# -# Both this expression and what ofborg uses (release-outpaths.nix) -# are essentially single-threaded (under the current cppnix -# implementation). -# -# This expression runs much, much, much faster and uses much, much -# less memory than the ofborg script by skipping the -# platform-relevance checks. The ofborg outpaths.nix script takes -# half an hour on a 3ghz core and peaks at 60gbytes of memory; this -# expression runs on the same machine in 44 seconds with peak memory -# usage of 5gbytes. -# -# Once you have the list of attrnames you can split it up into -# $NUM_CORES batches and run the platform checks separately for each -# batch, in parallel. -# -# To dump the attrnames: -# -# nix-instantiate --eval --strict --json pkgs/top-level/release-attrpaths-superset.nix -A names -# -{ - lib ? import (path + "/lib"), - trace ? false, - checkMeta ? true, - path ? ./../.., -}: -let - - # The intended semantics are that an attrpath rooted at pkgs is - # part of the (unfiltered) release jobset iff both of the following - # are true: - # - # 1. The attrpath leads to a value for which lib.isDerivation is true - # - # 2. Any proper prefix of the attrpath at which lib.isDerivation - # is true also has __recurseIntoDerivationForReleaseJobs=true. - # - # The second condition is unfortunately necessary because there are - # Hydra release jobnames which have proper prefixes which are - # attrnames of derivations (!). We should probably restructure - # the job tree so that this is not the case. - # - justAttrNames = - path: value: - let - result = - if path == [ "AAAAAASomeThingsFailToEvaluate" ] then - [ ] - else if - lib.isDerivation value - && - # in some places we have *derivations* with jobsets as subattributes, ugh - !(value.__recurseIntoDerivationForReleaseJobs or false) - then - [ path ] - - # Even wackier case: we have meta.broken==true jobs with - # !meta.broken jobs as subattributes with license=unfree, and - # check-meta.nix won't throw an "unfree" failure because the - # enclosing derivation is marked broken. Yeah. Bonkers. - # We should just forbid jobsets enclosed by derivations. - else if lib.isDerivation value && !value.meta.available then - [ ] - - else if !(lib.isAttrs value) then - [ ] - else - lib.pipe value [ - (builtins.mapAttrs ( - name: value: - builtins.addErrorContext "while evaluating package set attribute path '${ - lib.showAttrPath (path ++ [ name ]) - }'" (justAttrNames (path ++ [ name ]) value) - )) - builtins.attrValues - builtins.concatLists - ]; - in - if !trace then result else lib.trace "** ${lib.concatStringsSep "." path}" result; - - releaseOutpaths = import ./release-outpaths.nix { - inherit checkMeta; - attrNamesOnly = true; - inherit path; - }; - - paths = [ - # I am not entirely sure why these three packages end up in - # the Hydra jobset. But they do, and they don't meet the - # criteria above, so at the moment they are special-cased. - [ - "pkgsLLVM" - "stdenv" - ] - [ - "pkgsStatic" - "stdenv" - ] - [ - "pkgsMusl" - "stdenv" - ] - ] - ++ justAttrNames [ ] releaseOutpaths; - - names = map (path: (lib.concatStringsSep "." path)) paths; - -in -{ - inherit paths names; -} diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix index 18774202503f..b02b749577a9 100644 --- a/pkgs/top-level/release-python.nix +++ b/pkgs/top-level/release-python.nix @@ -36,11 +36,7 @@ let res = builtins.tryEval ( if isDerivation value then value.meta.isBuildPythonPackage or [ ] - else if - value.recurseForDerivations or false - || value.recurseForRelease or false - || value.__recurseIntoDerivationForReleaseJobs or false - then + else if value.recurseForDerivations or false || value.recurseForRelease or false then packagePython value else [ ] diff --git a/pkgs/top-level/release-unfree-redistributable.nix b/pkgs/top-level/release-unfree-redistributable.nix index 45940c4d02cc..cf5c8a4d4987 100644 --- a/pkgs/top-level/release-unfree-redistributable.nix +++ b/pkgs/top-level/release-unfree-redistributable.nix @@ -69,11 +69,7 @@ let value.meta.hydraPlatforms or (lib.subtractLists (value.meta.badPlatforms or [ ]) (value.meta.platforms or [ "x86_64-linux" ])) ) - else if - value.recurseForDerivations or false - || value.recurseForRelease or false - || value.__recurseIntoDerivationForReleaseJobs or false - then + else if value.recurseForDerivations or false || value.recurseForRelease or false then # Recurse packagesWith attrPath cond value else diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index f2fb056ab1ca..6f35d9c84f73 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -57,12 +57,10 @@ # resulting tree of attributes to *not* have a ".${system}" # suffixed upon every job name like Hydra expects. # - # This flag exists mainly for use by - # pkgs/top-level/release-attrnames-superset.nix; see that file for - # full details. The exact behavior of this flag may change; it - # should be considered an internal implementation detail of - # pkgs/top-level/. - # + # This flag exists mainly for use by ci/eval/attrpaths.nix; see + # that file for full details. The exact behavior of this flag + # may change; it should be considered an internal implementation + # detail of ci/eval. attrNamesOnly ? false, }: