Merge remote-tracking branch 'origin/master' into staging-next

K900 fa2f6adf c5d7abb5

Changed files
+1136 -1296
ci
doc
release-notes
maintainers
nixos
doc
manual
release-notes
modules
installer
programs
system
boot
loader
tests
pkgs
applications
by-name
_3
_389-ds-base
ag
age-plugin-se
az
ch
chatterino2
chatterino7
chirp
dn
im
kc
me
mergiraf
op
openapv
pr
proggyfonts
re
release-plz
se
sentry-native
sm
tl
tlsinfo
uw
yu
yubikey-manager
desktops
lomiri
development
cmake-extras
pantheon
apps
elementary-music
development
servers
home-assistant
custom-components
homematicip_local
test
tools
package-management
virtualization
mkosi
top-level
+83
ci/eval/attrpaths.nix
···
+
# 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;
+
}
-1
ci/eval/compare/default.nix
···
) 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}
-1
ci/eval/compare/maintainers.nix
···
{
lib,
}:
-
# Almost directly vendored from https://github.com/NixOS/ofborg/blob/5a4e743f192fb151915fcbe8789922fa401ecf48/ofborg/src/maintainers.nix
{
changedattrs,
changedpathsjson,
+7 -6
ci/eval/default.nix
···
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"
···
"modules"
"nixos"
"pkgs"
-
".version"
-
"ci/supportedSystems.json"
]
);
};
···
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 \
···
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,
···
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 \
···
--arg myChunk "$myChunk" \
--arg attrpathFile "${attrpathFile}" \
--arg systems "[ \"$system\" ]" \
-
--arg checkMeta ${lib.boolToString checkMeta} \
--arg includeBroken ${lib.boolToString includeBroken} \
-I ${nixpkgs} \
-I ${attrpathFile} \
+7
doc/release-notes/rl-2511.section.md
···
- `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.
+7
maintainers/maintainer-list.nix
···
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";
+2
nixos/doc/manual/release-notes/rl-2511.section.md
···
- [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).
+6 -6
nixos/modules/installer/tools/nix-fallback-paths.nix
···
{
-
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";
}
+1
nixos/modules/module-list.nix
···
./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
+29
nixos/modules/programs/yubikey-manager.nix
···
+
{
+
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 ];
+
};
+
};
+
}
+2
nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
···
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)
+1 -9
nixos/tests/k3s/airgap-images.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"
'';
}
)
+2 -2
pkgs/applications/graphics/ImageMagick/default.nix
···
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 = [
+15 -7
pkgs/applications/networking/cluster/k3s/1_30/images-versions.json
···
{
-
"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"
}
}
+15 -7
pkgs/applications/networking/cluster/k3s/1_31/images-versions.json
···
{
-
"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"
}
}
+15 -7
pkgs/applications/networking/cluster/k3s/1_32/images-versions.json
···
{
-
"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"
}
}
+15 -7
pkgs/applications/networking/cluster/k3s/1_33/images-versions.json
···
{
-
"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"
}
}
+14 -34
pkgs/applications/networking/cluster/k3s/builder.nix
···
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
···
'';
passthru = {
-
inherit airgapImages;
+
inherit airgap-images;
k3sCNIPlugins = k3sCNIPlugins;
k3sContainerd = k3sContainerd;
k3sRepo = k3sRepo;
···
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;
}
+5 -7
pkgs/applications/networking/cluster/k3s/update-script.sh
···
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" \
+10
pkgs/by-name/_3/_389-ds-base/package.nix
···
lib,
stdenv,
fetchFromGitHub,
+
fetchpatch,
autoconf,
automake,
cargo,
···
rev = "389-ds-base-${finalAttrs.version}";
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;
+2 -1
pkgs/by-name/ag/age-plugin-se/package.nix
···
{
lib,
fetchFromGitHub,
+
llvmPackages,
swiftPackages,
swift,
swiftpm,
nix-update-script,
}:
let
-
inherit (swiftPackages) stdenv;
+
inherit (llvmPackages) stdenv;
in
stdenv.mkDerivation (finalAttrs: {
pname = "age-plugin-se";
+99 -99
pkgs/by-name/az/azure-cli/extensions-generated.json
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/arcgateway-1.0.0b1-py3-none-any.whl",
"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",
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
"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",
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
"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",
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
},
"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": {
···
"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",
···
},
"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": {
···
},
"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": {
···
},
"storage-blob-preview": {
"pname": "storage-blob-preview",
+
"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_blob_preview-1.0.0b1-py2.py3-none-any.whl",
-
"hash": "sha256-H/5FHkFlfI8ooiq+44c3HRHO3YDS5Sz8vtCtrAqRe0E=",
-
"description": "Microsoft Azure Command-Line Tools Storage-blob-preview Extension"
+
"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",
···
},
"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": {
···
},
"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": {
···
},
"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": {
+3
pkgs/by-name/az/azure-cli/extensions-manual.nix
···
// 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
+6
pkgs/by-name/ch/chatterino2/common.nix
···
]
++ 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)
+6 -1
pkgs/by-name/ch/chatterino2/package.nix
···
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 = {
+6 -1
pkgs/by-name/ch/chatterino7/package.nix
···
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 {
+3 -3
pkgs/by-name/ch/chirp/package.nix
···
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 = [
+8 -5
pkgs/by-name/dn/dnf5/package.nix
···
sphinx,
sqlite,
systemd,
-
testers,
+
versionCheckHook,
toml11,
zchunk,
nix-update-script,
···
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";
+35 -9
pkgs/by-name/im/immich-cli/package.nix
···
{
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"
+
+
pnpm --filter @immich/cli deploy --prod --no-optional "$packageOut"
-
makeWrapper ${lib.getExe nodejs} $out/bin/immich --add-flags $out/dist/index.js
+
makeWrapper '${lib.getExe nodejs}' "$out/bin/immich" \
+
--add-flags "$packageOut/dist/index.js"
runHook postInstall
'';
+68 -93
pkgs/by-name/im/immich/package.nix
···
{
lib,
stdenv,
-
buildNpmPackage,
fetchFromGitHub,
+
pnpm_10,
python3,
nodejs,
node-gyp,
···
nixosTests,
immich-machine-learning,
# build-time deps
-
glib,
pkg-config,
makeWrapper,
curl,
···
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 =
···
# 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
···
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
-
'';
+
pnpmDeps = pnpm.fetchDeps {
+
pname = "immich";
+
inherit version src;
+
fetcherVersion = 2;
+
hash = "sha256-DIcUKuU+ToRh/kSLcs4ZEHy7zhFir2nlbRx+/kMagrA=";
};
-
web = buildNpmPackage' {
+
web = stdenv.mkDerivation {
pname = "immich-web";
-
inherit version src;
-
sourceRoot = "${src.name}/web";
-
inherit (sources.components.web) npmDepsHash;
+
inherit version src pnpmDeps;
-
# 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"
-
'';
+
nativeBuildInputs = [
+
nodejs
+
pnpm
+
pnpm.configHook
+
];
-
preBuild = ''
-
rm node_modules/@immich/sdk
-
ln -s ${openapi} node_modules/@immich/sdk
-
'';
+
buildPhase = ''
+
runHook preBuild
-
env.npm_config_build_from_source = "true";
+
pnpm --filter @immich/sdk build
+
pnpm --filter immich-web build
-
nativeBuildInputs = [
-
pkg-config
-
];
-
-
buildInputs = [
-
# https://github.com/Automattic/node-canvas/blob/master/Readme.md#compiling
-
cairo
-
giflib
-
libjpeg
-
libpng
-
librsvg
-
pango
-
pixman
-
];
+
runHook postBuild
+
'';
installPhase = ''
runHook preInstall
+
cd web
cp -r build $out
runHook postInstall
···
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
];
···
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;
-
preBuild = ''
+
buildPhase = ''
+
runHook 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
'';
···
inherit
src
-
sources
web
geodata
+
pnpm
;
-
updateScript = ./update.sh;
};
meta = {
-26
pkgs/by-name/im/immich/sources.json
···
-
{
-
"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="
-
}
-
}
-
}
-62
pkgs/by-name/im/immich/update.sh
···
-
#!/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 <<EOF > "$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
+4 -1
pkgs/by-name/kc/kcc/package.nix
···
copyDesktopItems
];
-
buildInputs = [ qt6.qtbase ];
+
buildInputs = [
+
qt6.qtbase
+
qt6.qtwayland
+
];
build-system = with python3.pkgs; [ setuptools ];
+3 -3
pkgs/by-name/me/mergiraf/package.nix
···
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 ];
+2 -2
pkgs/by-name/op/openapv/package.nix
···
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 = ''
+1 -1
pkgs/by-name/pr/proggyfonts/package.nix
···
'';
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;
+3 -3
pkgs/by-name/re/release-plz/package.nix
···
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
+2 -2
pkgs/by-name/se/sentry-native/package.nix
···
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 = [
+28 -28
pkgs/by-name/sm/smtp4dev/deps.json
···
},
{
"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",
···
},
{
"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",
···
},
{
"pname": "Namotion.Reflection",
-
"version": "3.3.0",
-
"hash": "sha256-YBYWLYmnCZrKfiJWQo7tofiz2A7ROpxFfAYdYLa5cgI="
+
"version": "3.4.2",
+
"hash": "sha256-iaQrE5VwRHqXOyzym4vY3+4aDw6eswN5P3LDd3FoFZk="
},
{
"pname": "NETStandard.Library",
···
},
{
"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",
···
},
"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",
+12 -3
pkgs/by-name/sm/smtp4dev/package.nix
···
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 ];
···
npmDeps = fetchNpmDeps {
inherit (finalAttrs) src patches;
-
hash = "sha256-Uj0EnnsA+QHq5KHF2B93OG8rwxYrV6sEgMTbd43ttCA=";
+
hash = "sha256-Xjx3V5FH72D+CXBRZgmlkbp5evnp6F4zaHMWQB5o61w=";
postPatch = "cd ${finalAttrs.npmRoot}";
};
···
postFixup = ''
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;
+236 -427
pkgs/by-name/sm/smtp4dev/smtp4dev-npm-packages.patch
···
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==",
···
},
"node_modules/@types/lodash": {
"version": "4.17.0",
-
@@ -2993,12 +2995,6 @@
+
@@ -2994,12 +2995,6 @@
"entities": "^4.4.0"
}
},
···
"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"
- },
···
- "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"
- }
- },
···
- },
- "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",
···
- "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==",
+
"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==",
+
+ "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",
+
+ "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"
+
- "@typescript-eslint/types": "7.6.0",
+
- "@typescript-eslint/visitor-keys": "7.6.0"
+
+ "@typescript-eslint/types": "7.18.0",
+
+ "@typescript-eslint/visitor-keys": "7.18.0"
},
"engines": {
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-
@@ -3149,34 +3120,16 @@
-
"url": "https://opencollective.com/typescript-eslint"
+
"node": "^18.18.0 || >=20.0.0"
+
@@ -3292,13 +3220,14 @@
}
},
-
- "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==",
+
"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==",
+
+ "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",
+
+ "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",
+
- "@typescript-eslint/typescript-estree": "7.6.0",
+
- "@typescript-eslint/utils": "7.6.0",
+
+ "@typescript-eslint/typescript-estree": "7.18.0",
+
+ "@typescript-eslint/utils": "7.18.0",
"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"
+
"ts-api-utils": "^1.3.0"
},
-
"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"
+
@@ -3319,10 +3248,11 @@
}
},
-
- "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": {
-
- "@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": {
-
- "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": {
-
- "@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
-
- }
-
- }
-
- },
"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": {
···
"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"
···
"bin": {
"semver": "bin/semver.js"
},
-
@@ -3409,85 +3237,72 @@
+
@@ -3410,25 +3329,17 @@
"node": ">=10"
}
},
···
- "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": {
···
- "@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"
- }
- },
···
- },
- "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",
+
+ "@typescript-eslint/types": "7.18.0",
+
"eslint-visitor-keys": "^3.4.3"
+
},
"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"
-
+ "url": "https://opencollective.com/eslint"
-
}
-
},
-
"node_modules/@ungap/structured-clone": {
-
@@ -3591,6 +3406,40 @@
+
@@ -3592,6 +3471,40 @@
}
}
},
···
"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",
+3 -3
pkgs/by-name/tl/tlsinfo/package.nix
···
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"
+2 -2
pkgs/by-name/uw/uwsm/package.nix
···
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 = [
+9 -10
pkgs/by-name/yu/yubikey-manager/package.nix
···
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; [
+
nativeBuildInputs = [
+
installShellFiles
+
];
+
+
build-system = with python3Packages; [
poetry-core
-
installShellFiles
];
-
propagatedBuildInputs = with python3Packages; [
+
dependencies = with python3Packages; [
cryptography
pyscard
fido2
click
keyring
-
];
-
-
pythonRelaxDeps = [
-
"keyring"
];
postInstall = ''
+2 -2
pkgs/desktops/lomiri/development/cmake-extras/default.nix
···
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 = ''
+2 -2
pkgs/desktops/pantheon/apps/elementary-music/default.nix
···
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 = [
+8
pkgs/development/compilers/crystal/default.nix
···
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;
}
+79 -19
pkgs/development/compilers/swift/compiler/default.nix
···
"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.
#
···
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"
'';
···
# 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
···
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"
'';
···
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;
···
url = "https://github.com/llvm/llvm-project/commit/9ec115978ea2bdfc60800cd3c21264341cdc8b0a.patch?full_index=1";
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/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";
···
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 .
···
'';
# > 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"
···
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.
···
}
"
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 ''
···
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.
···
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 ''
···
swiftStaticModuleSubdir
swiftStaticLibSubdir
;
+
+
tests = {
+
cxx-interop-test = callPackage ../cxx-interop-test { };
+
};
# Internal attr for the wrapper.
_wrapperParams = wrapperParams;
+28
pkgs/development/compilers/swift/compiler/patches/clang-purity.patch
···
+
From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
+
From: Will Dietz <w@wdtz.org>
+
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
-63
pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch
···
-
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
+11 -15
pkgs/development/compilers/swift/compiler/patches/swift-linux-fix-linking.patch
···
+
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(
+
@@ -1489,6 +1489,12 @@
+
LinkerDriver = Args.MakeArgString(tool.get());
+
}
-
// 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
+
+ // 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 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());
-
}
+
+ if (auto tool = llvm::sys::findProgramByName(LinkerDriver, {"@clang@/bin"}))
+
+ return Args.MakeArgString(tool.get());
+
+
+
return LinkerDriver;
+
}
-
return LinkerDriver;
-67
pkgs/development/compilers/swift/compiler/patches/swift-nix-resource-root.patch
···
-
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 <algorithm>
-
@@ -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));
-
}
+57
pkgs/development/compilers/swift/cxx-interop-test/default.nix
···
+
{
+
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";
+
};
+
})
+9
pkgs/development/compilers/swift/cxx-interop-test/src/.gitignore
···
+
.DS_Store
+
/.build
+
/Packages
+
/*.xcodeproj
+
xcuserdata/
+
DerivedData/
+
.swiftpm/config/registries.json
+
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+
.netrc
+16
pkgs/development/compilers/swift/cxx-interop-test/src/Package.swift
···
+
// swift-tools-version: 5.8
+
+
import PackageDescription
+
+
let package = Package(
+
name: "CxxInteropTest",
+
targets: [
+
.executableTarget(
+
name: "CxxInteropTest",
+
path: "Sources",
+
swiftSettings: [
+
.unsafeFlags(["-enable-experimental-cxx-interop"])
+
]
+
)
+
]
+
)
+3
pkgs/development/compilers/swift/cxx-interop-test/src/Sources/main.swift
···
+
import CxxStdlib
+
+
print(String(cxxString: std.string("Hello, world!")))
+24 -33
pkgs/development/compilers/swift/default.nix
···
{
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;
};
···
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
···
};
swiftpm = callPackage ./swiftpm {
+
inherit (llvmPackages) stdenv;
inherit (darwin) DarwinTools;
swift = swiftNoSwiftDriver;
};
swift-driver = callPackage ./swift-driver {
+
inherit (llvmPackages) stdenv;
swift = swiftNoSwiftDriver;
};
···
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 { };
+10
pkgs/development/compilers/swift/foundation/default.nix
···
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 = [
+10 -1
pkgs/development/compilers/swift/libdispatch/default.nix
···
lib,
stdenv,
callPackage,
+
fetchpatch,
cmake,
ninja,
useSwift ? true,
···
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";
+7
pkgs/development/compilers/swift/sourcekit-lsp/default.nix
···
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 ${
+10 -1
pkgs/development/compilers/swift/swift-docc/default.nix
···
XCTest
];
-
configurePhase = generated.configure;
+
configurePhase =
+
generated.configure
+
# Fix the build with modern Clang.
+
#
+
# Based on the upstream fix for Musl:
+
# <https://github.com/apple/swift-nio/commit/fc6e3c0eefb28adf641531180b81aaf41b02ed20>
+
+ ''
+
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:
+13
pkgs/development/compilers/swift/swift-docc/fix-swift-nio.patch
···
+
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",
+4 -2
pkgs/development/compilers/swift/swift-driver/default.nix
···
XCTest,
sqlite,
ncurses,
+
clang,
replaceVars,
}:
let
···
];
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 {
+7 -7
pkgs/development/compilers/swift/swift-driver/patches/linux-fix-linking.patch
···
+
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 @@
···
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]) {
···
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 {
-28
pkgs/development/compilers/swift/swift-driver/patches/nix-resource-root.patch
···
-
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)!)
+21
pkgs/development/compilers/swift/wrapper/default.nix
···
swift,
useSwiftDriver ? true,
swift-driver,
+
clang,
}:
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
···
swiftArch
swiftModuleSubdir
swiftLibSubdir
+
tests
;
};
}
+1 -1
pkgs/development/compilers/swift/wrapper/wrapper.sh
···
set -x
fi
-
cc_wrapper="${NIX_CC:-@default_cc_wrapper@}"
+
cc_wrapper="@cc_wrapper@"
source $cc_wrapper/nix-support/utils.bash
+2 -2
pkgs/development/python-modules/aiohomematic/default.nix
···
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 = ''
+2 -2
pkgs/servers/home-assistant/custom-components/homematicip_local/package.nix
···
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 = ''
+1 -3
pkgs/test/default.nix
···
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 { });
+2 -2
pkgs/tools/package-management/nix/default.nix
···
(
{
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";
};
+1 -1
pkgs/tools/virtualization/mkosi/default.nix
···
in
python3Packages.buildPythonApplication rec {
pname = "mkosi";
-
version = "25.3-unstable-2025-04-01";
+
version = "25.3";
format = "pyproject";
outputs = [
+15 -20
pkgs/top-level/all-packages.nix
···
crystal_1_11
crystal_1_14
crystal_1_15
+
crystal_1_16
+
crystal_1_17
crystal
···
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
···
);
-
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;
-1
pkgs/top-level/linux-kernels.nix
···
linux_libre = recurseIntoAttrs (packagesFor kernels.linux_libre);
linux_latest_libre = recurseIntoAttrs (packagesFor kernels.linux_latest_libre);
-
__recurseIntoDerivationForReleaseJobs = true;
}
// lib.optionalAttrs config.allowAliases {
+1 -3
pkgs/top-level/pkg-config/tests.nix
···
};
in
lib.recurseIntoAttrs {
-
defaultPkgConfigPackages = allPkgs.callPackage ./test-defaultPkgConfigPackages.nix { } // {
-
__recurseIntoDerivationForReleaseJobs = true;
-
};
+
defaultPkgConfigPackages = allPkgs.callPackage ./test-defaultPkgConfigPackages.nix { };
}
-114
pkgs/top-level/release-attrpaths-superset.nix
···
-
# 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;
-
}
+3 -5
pkgs/top-level/release-outpaths-parallel.nix ci/eval/chunk.nix
···
-
# 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 ? ../..,
···
attrpathFile,
chunkSize,
myChunk,
-
checkMeta,
includeBroken,
systems,
}:
···
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
+4 -7
pkgs/top-level/release-outpaths.nix ci/eval/outpaths.nix
···
#!/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");
···
allowUnfree = true;
allowInsecurePredicate = x: true;
allowVariants = !attrNamesOnly;
-
checkMeta = checkMeta;
+
checkMeta = true;
handleEvalIssue =
reason: errormsg:
+1 -5
pkgs/top-level/release-python.nix
···
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
[ ]
+1 -5
pkgs/top-level/release-unfree-redistributable.nix
···
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
+4 -6
pkgs/top-level/release.nix
···
# 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,
}: