Merge staging-next into staging
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# This expression will, as efficiently as possible, dump a
|
||||
# *superset* of all attrpaths of derivations which might be
|
||||
# part of a release on *any* platform.
|
||||
#
|
||||
# This expression runs single-threaded under all current Nix
|
||||
# implementations, but much faster and with much less memory
|
||||
# used than ./outpaths.nix itself.
|
||||
#
|
||||
# Once you have the list of attrnames you can split it up into
|
||||
# $NUM_CORES batches and evaluate the outpaths separately for each
|
||||
# batch, in parallel.
|
||||
#
|
||||
# To dump the attrnames:
|
||||
#
|
||||
# nix-instantiate --eval --strict --json ci/eval/attrpaths.nix -A names
|
||||
#
|
||||
{
|
||||
lib ? import (path + "/lib"),
|
||||
trace ? false,
|
||||
path ? ./../..,
|
||||
}:
|
||||
let
|
||||
|
||||
# TODO: Use mapAttrsToListRecursiveCond when this PR lands:
|
||||
# https://github.com/NixOS/nixpkgs/pull/395160
|
||||
justAttrNames =
|
||||
path: value:
|
||||
let
|
||||
result =
|
||||
if path == [ "AAAAAASomeThingsFailToEvaluate" ] || !(lib.isAttrs value) then
|
||||
[ ]
|
||||
else if lib.isDerivation value then
|
||||
[ path ]
|
||||
else
|
||||
lib.pipe value [
|
||||
(lib.mapAttrsToList (
|
||||
name: value:
|
||||
lib.addErrorContext "while evaluating package set attribute path '${
|
||||
lib.showAttrPath (path ++ [ name ])
|
||||
}'" (justAttrNames (path ++ [ name ]) value)
|
||||
))
|
||||
lib.concatLists
|
||||
];
|
||||
in
|
||||
lib.traceIf trace "** ${lib.showAttrPath path}" result;
|
||||
|
||||
outpaths = import ./outpaths.nix {
|
||||
inherit path;
|
||||
attrNamesOnly = true;
|
||||
};
|
||||
|
||||
paths = [
|
||||
# Some of the following are based on variants, which are disabled with `attrNamesOnly = true`.
|
||||
# Until these have been removed from release.nix / hydra, we manually add them to the list.
|
||||
[
|
||||
"pkgsLLVM"
|
||||
"stdenv"
|
||||
]
|
||||
[
|
||||
"pkgsArocc"
|
||||
"stdenv"
|
||||
]
|
||||
[
|
||||
"pkgsZig"
|
||||
"stdenv"
|
||||
]
|
||||
[
|
||||
"pkgsStatic"
|
||||
"stdenv"
|
||||
]
|
||||
[
|
||||
"pkgsMusl"
|
||||
"stdenv"
|
||||
]
|
||||
]
|
||||
++ justAttrNames [ ] outpaths;
|
||||
|
||||
names = map lib.showAttrPath paths;
|
||||
|
||||
in
|
||||
{
|
||||
inherit paths names;
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
# This file works in tandem with ../../ci/eval/default.nix
|
||||
# It turns ./release-outpaths.nix into chunks of a fixed size
|
||||
# This turns ./outpaths.nix into chunks of a fixed size.
|
||||
{
|
||||
lib ? import ../../lib,
|
||||
path ? ../..,
|
||||
@@ -7,7 +6,6 @@
|
||||
attrpathFile,
|
||||
chunkSize,
|
||||
myChunk,
|
||||
checkMeta,
|
||||
includeBroken,
|
||||
systems,
|
||||
}:
|
||||
@@ -16,9 +14,9 @@ let
|
||||
attrpaths = lib.importJSON attrpathFile;
|
||||
myAttrpaths = lib.sublist (chunkSize * myChunk) chunkSize attrpaths;
|
||||
|
||||
unfiltered = import ./release-outpaths.nix {
|
||||
unfiltered = import ./outpaths.nix {
|
||||
inherit path;
|
||||
inherit checkMeta includeBroken systems;
|
||||
inherit includeBroken systems;
|
||||
};
|
||||
|
||||
# Turns the unfiltered recursive attribute set into one that is limited to myAttrpaths
|
||||
@@ -105,7 +105,6 @@ let
|
||||
) rebuildsByKernel
|
||||
# Set the "11.by: package-maintainer" label to whether all packages directly
|
||||
# changed are maintained by the PR's author.
|
||||
# (https://github.com/NixOS/ofborg/blob/df400f44502d4a4a80fa283d33f2e55a4e43ee90/ofborg/src/tagger.rs#L83-L88)
|
||||
// {
|
||||
"11.by: package-maintainer" =
|
||||
maintainers ? ${githubAuthorId}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
}:
|
||||
# Almost directly vendored from https://github.com/NixOS/ofborg/blob/5a4e743f192fb151915fcbe8789922fa401ecf48/ofborg/src/maintainers.nix
|
||||
{
|
||||
changedattrs,
|
||||
changedpathsjson,
|
||||
|
||||
+7
-6
@@ -26,6 +26,11 @@ let
|
||||
root = ../..;
|
||||
fileset = unions (
|
||||
map (lib.path.append ../..) [
|
||||
".version"
|
||||
"ci/supportedSystems.json"
|
||||
"ci/eval/attrpaths.nix"
|
||||
"ci/eval/chunk.nix"
|
||||
"ci/eval/outpaths.nix"
|
||||
"default.nix"
|
||||
"doc"
|
||||
"lib"
|
||||
@@ -33,8 +38,6 @@ let
|
||||
"modules"
|
||||
"nixos"
|
||||
"pkgs"
|
||||
".version"
|
||||
"ci/supportedSystems.json"
|
||||
]
|
||||
);
|
||||
};
|
||||
@@ -60,7 +63,7 @@ let
|
||||
export GC_INITIAL_HEAP_SIZE=4g
|
||||
command time -f "Attribute eval done [%MKB max resident, %Es elapsed] %C" \
|
||||
nix-instantiate --eval --strict --json --show-trace \
|
||||
"$src/pkgs/top-level/release-attrpaths-superset.nix" \
|
||||
"$src/ci/eval/attrpaths.nix" \
|
||||
-A paths \
|
||||
-I "$src" \
|
||||
--option restrict-eval true \
|
||||
@@ -78,7 +81,6 @@ let
|
||||
attrpathFile ? "${attrpathsSuperset { inherit evalSystem; }}/paths.json",
|
||||
# The number of attributes per chunk, see ./README.md for more info.
|
||||
chunkSize ? 5000,
|
||||
checkMeta ? true,
|
||||
|
||||
# Don't try to eval packages marked as broken.
|
||||
includeBroken ? false,
|
||||
@@ -99,7 +101,7 @@ let
|
||||
set +e
|
||||
command time -o "$outputDir/timestats/$myChunk" \
|
||||
-f "Chunk $myChunk on $system done [%MKB max resident, %Es elapsed] %C" \
|
||||
nix-env -f "${nixpkgs}/pkgs/top-level/release-outpaths-parallel.nix" \
|
||||
nix-env -f "${nixpkgs}/ci/eval/chunk.nix" \
|
||||
--eval-system "$system" \
|
||||
--option restrict-eval true \
|
||||
--option allow-import-from-derivation false \
|
||||
@@ -110,7 +112,6 @@ let
|
||||
--arg myChunk "$myChunk" \
|
||||
--arg attrpathFile "${attrpathFile}" \
|
||||
--arg systems "[ \"$system\" ]" \
|
||||
--arg checkMeta ${lib.boolToString checkMeta} \
|
||||
--arg includeBroken ${lib.boolToString includeBroken} \
|
||||
-I ${nixpkgs} \
|
||||
-I ${attrpathFile} \
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
# When using as a callable script, passing `--argstr path some/path` overrides $PWD.
|
||||
#!nix-shell -p nix -i "nix-env -qaP --no-name --out-path --arg checkMeta true -f pkgs/top-level/release-outpaths.nix"
|
||||
#!nix-shell -p nix -i "nix-env -qaP --no-name --out-path -f ci/eval/outpaths.nix"
|
||||
|
||||
# Vendored from:
|
||||
# https://raw.githubusercontent.com/NixOS/ofborg/74f38efa7ef6f0e8e71ec3bfc675ae4fb57d7491/ofborg/src/outpaths.nix
|
||||
{
|
||||
checkMeta,
|
||||
includeBroken ? true, # set this to false to exclude meta.broken packages from the output
|
||||
path ? ./../..,
|
||||
|
||||
# used by pkgs/top-level/release-attrnames-superset.nix
|
||||
# used by ./attrpaths.nix
|
||||
attrNamesOnly ? false,
|
||||
|
||||
# Set this to `null` to build for builtins.currentSystem only
|
||||
systems ? builtins.fromJSON (builtins.readFile ../../ci/supportedSystems.json),
|
||||
systems ? builtins.fromJSON (builtins.readFile ../supportedSystems.json),
|
||||
}:
|
||||
let
|
||||
lib = import (path + "/lib");
|
||||
@@ -30,7 +27,7 @@ let
|
||||
allowUnfree = true;
|
||||
allowInsecurePredicate = x: true;
|
||||
allowVariants = !attrNamesOnly;
|
||||
checkMeta = checkMeta;
|
||||
checkMeta = true;
|
||||
|
||||
handleEvalIssue =
|
||||
reason: errormsg:
|
||||
@@ -65,6 +65,13 @@
|
||||
|
||||
- `ansible-later` has been removed because it was discontinued by the author.
|
||||
|
||||
- `k3s` airgap images passthru attributes have changed:
|
||||
- `imagesList` was removed
|
||||
- `airgapImages` was renamed to `airgap-images`
|
||||
- `airgapImagesAmd64` was renamed to `airgap-images-amd64-tar-zst`
|
||||
- `airgapImagesArm64` was renamed to `airgap-images-arm64-tar-zst`
|
||||
- `airgapImagesArm` was renamed to `airgap-images-arm-tar-zst`
|
||||
|
||||
- `stalwart-mail` since `0.13.0` "introduces a significant redesign of the MTA’s delivery and queueing subsystem". See [the upgrading announcement for the `0.13.0` release](https://github.com/stalwartlabs/stalwart/blob/89b561b5ca1c5a11f2a768b4a2cfef0f473b7a01/UPGRADING.md#upgrading-from-v012x-and-v011x-to-v013x).
|
||||
|
||||
- Greetd and its original greeters (`tuigreet`, `gtkgreet`, `qtgreet`, `regreet`, `wlgreet`) were moved from `greetd` namespace to top level (`greetd.tuigreet` -> `tuigreet`, `greetd.greetd` -> `greetd`, etc). The original attrs are available for compatibility as passthrus of `greetd`, but will emit a warning. They will be removed in future releases.
|
||||
|
||||
@@ -6070,6 +6070,14 @@
|
||||
name = "Dee Engan";
|
||||
keys = [ { fingerprint = "9C24 79F5 F0CE 48F4 00EE 4A5B B8ED 46EB 468B F72D"; } ];
|
||||
};
|
||||
deej-io = {
|
||||
email = "me@deej.io";
|
||||
github = "deej-io";
|
||||
githubId = 7419862;
|
||||
name = "Daniel Rollins";
|
||||
matrix = "@deej-io:matrix.org";
|
||||
keys = [ { fingerprint = "A0BE BED3 A3A0 7127 1411 6234 6830 B0AE 30DD 38DB"; } ];
|
||||
};
|
||||
deejayem = {
|
||||
email = "nixpkgs.bu5hq@simplelogin.com";
|
||||
github = "deejayem";
|
||||
@@ -20421,6 +20429,12 @@
|
||||
name = "Kevin Mullins";
|
||||
keys = [ { fingerprint = "2CD2 B030 BD22 32EF DF5A 008A 3618 20A4 5DB4 1E9A"; } ];
|
||||
};
|
||||
podium868909 = {
|
||||
email = "89096245@proton.me";
|
||||
github = "podium868909";
|
||||
githubId = 150333826;
|
||||
name = "podium868909";
|
||||
};
|
||||
podocarp = {
|
||||
email = "xdjiaxd@gmail.com";
|
||||
github = "podocarp";
|
||||
@@ -21325,6 +21339,13 @@
|
||||
githubId = 23345803;
|
||||
name = "Szymon Scholz";
|
||||
};
|
||||
ratakor = {
|
||||
name = "Ratakor";
|
||||
github = "ratakor";
|
||||
githubId = 45130910;
|
||||
email = "ratakor@disroot.org";
|
||||
keys = [ { fingerprint = "B60F 8F80 D6CD C5D2 58CF 14C3 241B 1CBE 567B 287E"; } ];
|
||||
};
|
||||
ratcornu = {
|
||||
email = "ratcornu+programmation@skaven.org";
|
||||
github = "RatCornu";
|
||||
|
||||
@@ -50,6 +50,8 @@
|
||||
|
||||
- [go-httpbin](https://github.com/mccutchen/go-httpbin), a reasonably complete and well-tested golang port of httpbin, with zero dependencies outside the go stdlib. Available as [services.go-httpbin](#opt-services.go-httpbin.enable).
|
||||
|
||||
- [llama-swap](https://github.com/mostlygeek/llama-swap), a light weight transparent proxy server that provides automatic model swapping to llama.cpp's server (or any server with an OpenAI compatible endpoint). Available as [](#opt-services.llama-swap.enable).
|
||||
|
||||
- [tuwunel](https://matrix-construct.github.io/tuwunel/), a federated chat server implementing the Matrix protocol, forked from Conduwuit. Available as [services.matrix-tuwunel](#opt-services.matrix-tuwunel.enable).
|
||||
|
||||
- [Broadcast Box](https://github.com/Glimesh/broadcast-box), a WebRTC broadcast server. Available as [services.broadcast-box](options.html#opt-services.broadcast-box.enable).
|
||||
@@ -62,6 +64,8 @@
|
||||
|
||||
- [TuneD](https://tuned-project.org/), a system tuning service for Linux. Available as [services.tuned](#opt-services.tuned.enable).
|
||||
|
||||
- [yubikey-manager](https://github.com/Yubico/yubikey-manager), a tool for configuring YubiKey devices. Available as [programs.yubikey-manager](#opt-programs.yubikey-manager.enable).
|
||||
|
||||
- [Draupnir](https://github.com/the-draupnir-project/draupnir), a Matrix moderation bot. Available as [services.draupnir](#opt-services.draupnir.enable).
|
||||
|
||||
- [postfix-tlspol](https://github.com/Zuplu/postfix-tlspol), MTA-STS and DANE resolver and TLS policy server for Postfix. Available as [services.postfix-tlspol](#opt-services.postfix-tlspol.enable).
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
x86_64-linux = "/nix/store/gy397nw6h414f4l4vxny1wg8cn4i955d-nix-2.28.4";
|
||||
i686-linux = "/nix/store/k192aqw8zh71zrli5abqd5wg01bqwmh9-nix-2.28.4";
|
||||
aarch64-linux = "/nix/store/cp0bzvj8vf5y2z0nimq57crcq6h419fj-nix-2.28.4";
|
||||
riscv64-linux = "/nix/store/zav2zzhxld8fqvj7hb5z83ggd3ij6888-nix-riscv64-unknown-linux-gnu-2.28.4";
|
||||
x86_64-darwin = "/nix/store/gj4y690ligr5gawmpnkiw2qs087m068w-nix-2.28.4";
|
||||
aarch64-darwin = "/nix/store/nb6nkjac7nj242j3m56pkdkbikfjw343-nix-2.28.4";
|
||||
x86_64-linux = "/nix/store/0bvxg6fr61zrlhi93azhp8yfhb5rcrs9-nix-2.28.5";
|
||||
i686-linux = "/nix/store/m5na49mxl4xpcs3xh086s5v08jqjhbmb-nix-2.28.5";
|
||||
aarch64-linux = "/nix/store/95rhdhjfwbi7ilwy5j0knj1852p7x6c6-nix-2.28.5";
|
||||
riscv64-linux = "/nix/store/cqiiv36c773023p6lp9h4ff57fjlzisk-nix-riscv64-unknown-linux-gnu-2.28.5";
|
||||
x86_64-darwin = "/nix/store/xiw5636h616yi3balx96pmdk6b052rhk-nix-2.28.5";
|
||||
aarch64-darwin = "/nix/store/sax8chv80d9fy4s0y3ahsr9y4kc2f0ib-nix-2.28.5";
|
||||
}
|
||||
|
||||
@@ -362,6 +362,7 @@
|
||||
./programs/xwayland.nix
|
||||
./programs/yazi.nix
|
||||
./programs/ydotool.nix
|
||||
./programs/yubikey-manager.nix
|
||||
./programs/yubikey-touch-detector.nix
|
||||
./programs/zmap.nix
|
||||
./programs/zoom-us.nix
|
||||
@@ -1216,6 +1217,7 @@
|
||||
./services/networking/libreswan.nix
|
||||
./services/networking/livekit-ingress.nix
|
||||
./services/networking/livekit.nix
|
||||
./services/networking/llama-swap.nix
|
||||
./services/networking/lldpd.nix
|
||||
./services/networking/logmein-hamachi.nix
|
||||
./services/networking/lokinet.nix
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.yubikey-manager;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
programs.yubikey-manager = {
|
||||
enable = lib.mkEnableOption "yubikey-manager";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
services = {
|
||||
pcscd.enable = true;
|
||||
|
||||
# The udev rules we want aren't included in the yubikey-manager package, but
|
||||
# we can get them from yubikey-personalization.
|
||||
udev.packages = [ pkgs.yubikey-personalization ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.llama-swap;
|
||||
settingsFormat = pkgs.formats.yaml { };
|
||||
configFile = settingsFormat.generate "config.yaml" cfg.settings;
|
||||
in
|
||||
{
|
||||
options.services.llama-swap = {
|
||||
enable = lib.mkEnableOption "enable the llama-swap service";
|
||||
|
||||
package = lib.mkPackageOption pkgs "llama-swap" { };
|
||||
|
||||
port = lib.mkOption {
|
||||
default = 8080;
|
||||
example = 11343;
|
||||
type = lib.types.port;
|
||||
description = ''
|
||||
Port that llama-swap listens on.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to open the firewall for llama-swap.
|
||||
This adds {option}`port` to [](#opt-networking.firewall.allowedTCPPorts).
|
||||
'';
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule { freeformType = settingsFormat.type; };
|
||||
description = ''
|
||||
llama-swap configuration. Refer to the [llama-swap example configuration](https://github.com/mostlygeek/llama-swap/blob/main/config.example.yaml)
|
||||
for details on supported values.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
let
|
||||
llama-cpp = pkgs.llama-cpp.override { rocmSupport = true; };
|
||||
llama-server = lib.getExe' llama-cpp "llama-server";
|
||||
in
|
||||
{
|
||||
healthCheckTimeout = 60;
|
||||
models = {
|
||||
"some-model" = {
|
||||
cmd = "$\{llama-server\} --port ''\${PORT} -m /var/lib/llama-cpp/models/some-model.gguf -ngl 0 --no-webui";
|
||||
aliases = [
|
||||
"the-best"
|
||||
];
|
||||
};
|
||||
"other-model" = {
|
||||
proxy = "http://127.0.0.1:5555";
|
||||
cmd = "$\{llama-server\} --port 5555 -m /var/lib/llama-cpp/models/other-model.gguf -ngl 0 -c 4096 -np 4 --no-webui";
|
||||
concurrencyLimit = 4;
|
||||
};
|
||||
};
|
||||
};
|
||||
'';
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.llama-swap = {
|
||||
description = "Model swapping for LLaMA C++ Server (or any local OpenAPI compatible server)";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "exec";
|
||||
ExecStart = "${lib.getExe cfg.package} --listen :${toString cfg.port} --config ${configFile}";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 3;
|
||||
|
||||
# for GPU acceleration
|
||||
PrivateDevices = false;
|
||||
|
||||
# hardening
|
||||
DynamicUser = true;
|
||||
CapabilityBoundingSet = "";
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_UNIX"
|
||||
];
|
||||
NoNewPrivileges = true;
|
||||
PrivateMounts = true;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectSystem = "strict";
|
||||
MemoryDenyWriteExecute = true;
|
||||
LockPersonality = true;
|
||||
RemoveIPC = true;
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@privileged"
|
||||
];
|
||||
SystemCallErrorNumber = "EPERM";
|
||||
ProtectProc = "invisible";
|
||||
ProtectHostname = true;
|
||||
ProcSubset = "pid";
|
||||
};
|
||||
};
|
||||
networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; };
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
jk
|
||||
podium868909
|
||||
];
|
||||
}
|
||||
@@ -258,6 +258,8 @@ def remove_old_entries(gens: list[SystemIdentifier]) -> None:
|
||||
bootspec = get_bootspec(gen.profile, gen.generation)
|
||||
known_paths.append(copy_from_file(bootspec.kernel, True).name)
|
||||
known_paths.append(copy_from_file(bootspec.initrd, True).name)
|
||||
if bootspec.devicetree is not None:
|
||||
known_paths.append(copy_from_file(bootspec.devicetree, True).name)
|
||||
for path in (BOOT_MOUNT_POINT / "loader/entries").glob("nixos*-generation-[1-9]*.conf", case_sensitive=False):
|
||||
if rex_profile.match(path.name):
|
||||
prof = rex_profile.sub(r"\1", path.name)
|
||||
|
||||
@@ -848,6 +848,7 @@ in
|
||||
litellm = runTest ./litellm.nix;
|
||||
litestream = runTest ./litestream.nix;
|
||||
lk-jwt-service = runTest ./matrix/lk-jwt-service.nix;
|
||||
llama-swap = runTest ./web-servers/llama-swap.nix;
|
||||
lldap = runTest ./lldap.nix;
|
||||
localsend = runTest ./localsend.nix;
|
||||
locate = runTest ./locate.nix;
|
||||
|
||||
@@ -22,21 +22,13 @@ import ../make-test-python.nix (
|
||||
"--disable servicelb"
|
||||
"--disable traefik"
|
||||
];
|
||||
images = [ k3s.airgapImages ];
|
||||
images = [ k3s.airgap-images ];
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import json
|
||||
|
||||
start_all()
|
||||
machine.wait_for_unit("k3s")
|
||||
machine.wait_until_succeeds("journalctl -r --no-pager -u k3s | grep \"Imported images from /var/lib/rancher/k3s/agent/images/\"")
|
||||
images = json.loads(machine.succeed("crictl img -o json"))
|
||||
image_names = [i["repoTags"][0] for i in images["images"]]
|
||||
with open("${k3s.imagesList}") as expected_images:
|
||||
for line in expected_images:
|
||||
assert line.rstrip() in image_names, f"The image {line.rstrip()} is not present in the airgap images archive"
|
||||
'';
|
||||
}
|
||||
)
|
||||
|
||||
@@ -0,0 +1,258 @@
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
wrapSrc = attrs: pkgs.runCommand "${attrs.pname}-${attrs.version}" attrs "ln -s $src $out";
|
||||
|
||||
smollm2-135m = wrapSrc rec {
|
||||
pname = "smollm2-135m";
|
||||
version = "9e6855bc4be717fca1ef21360a1db4b29d5c559a";
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://huggingface.co/unsloth/SmolLM2-135M-Instruct-GGUF/resolve/${version}/SmolLM2-135M-Instruct-Q4_K_M.gguf";
|
||||
hash = "sha256-7V+jDEh7KC7BVsKQYvEiLlwgh1qUSsmCidvSQulH90c=";
|
||||
};
|
||||
|
||||
meta.license = with lib.licenses; [
|
||||
asl20 # actual license of the model
|
||||
unfree # to force an opt-in - do not remove
|
||||
];
|
||||
};
|
||||
|
||||
# grab allowUnfreePredicate if it exists or default deny
|
||||
allowUnfreePredicate =
|
||||
if builtins.hasAttr "allowUnfreePredicate" pkgs.config then
|
||||
pkgs.config.allowUnfreePredicate
|
||||
else
|
||||
(_: false);
|
||||
|
||||
# check if we can use smollm2-135m taking either globally allowUnfree or
|
||||
# explicit allow with predicate
|
||||
useSmollm2-135m = pkgs.config.allowUnfree || allowUnfreePredicate smollm2-135m;
|
||||
in
|
||||
{
|
||||
name = "llama-swap";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
jk
|
||||
podium868909
|
||||
];
|
||||
|
||||
nodes = {
|
||||
machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# running models can be memory intensive but
|
||||
# default `virtualisation.memorySize` is fine
|
||||
|
||||
services.llama-swap = {
|
||||
enable = true;
|
||||
settings =
|
||||
# config for basic tests
|
||||
if !useSmollm2-135m then
|
||||
{ }
|
||||
# config for extended tests using SmolLM2
|
||||
else
|
||||
let
|
||||
llama-cpp = pkgs.llama-cpp;
|
||||
llama-server = lib.getExe' llama-cpp "llama-server";
|
||||
in
|
||||
{
|
||||
hooks.on_startup.preload = [
|
||||
"smollm2"
|
||||
];
|
||||
# temperature and top-k important for SmolLM2 performance/accuracy
|
||||
models = {
|
||||
"smollm2" = {
|
||||
ttl = 10;
|
||||
cmd = "${llama-server} --port \${PORT} -m ${smollm2-135m} --no-webui --temp 0.2 --top-k 9";
|
||||
};
|
||||
"smollm2-group-1" = {
|
||||
cmd = "${llama-server} --port \${PORT} -m ${smollm2-135m} --no-webui --temp 0.2 --top-k 9 -c 1024";
|
||||
};
|
||||
"smollm2-group-2" = {
|
||||
proxy = "http://127.0.0.1:5802";
|
||||
cmd = "${llama-server} --port 5802 -m ${smollm2-135m} --no-webui --temp 0.2 --top-k 9 -c 1024";
|
||||
};
|
||||
};
|
||||
groups = {
|
||||
"standalone" = {
|
||||
swap = true;
|
||||
exclusive = true;
|
||||
members = [
|
||||
"smollm2"
|
||||
];
|
||||
};
|
||||
"group" = {
|
||||
swap = false;
|
||||
exclusive = true;
|
||||
members = [
|
||||
"smollm2-group-1"
|
||||
"smollm2-group-2"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
# core tests
|
||||
import json
|
||||
|
||||
def get_json(route):
|
||||
args = [
|
||||
'-v',
|
||||
'-s',
|
||||
'--fail',
|
||||
'-H "Content-Type: application/json"'
|
||||
]
|
||||
return json.loads(machine.succeed("curl {args} http://localhost:8080{route}".format(args=" ".join(args), route=route)))
|
||||
|
||||
def post_json(route, data):
|
||||
args = [
|
||||
'-v',
|
||||
'-s',
|
||||
'--fail',
|
||||
'-H "Content-Type: application/json"',
|
||||
'-H "Authorization: Bearer no-key"',
|
||||
"-d '{d}'".format(d=json.dumps(data))
|
||||
]
|
||||
return json.loads(machine.succeed('curl {args} http://localhost:8080{route}'.format(args=" ".join(args), route=route)))
|
||||
|
||||
machine.wait_for_unit('llama-swap')
|
||||
machine.wait_for_open_port(8080)
|
||||
|
||||
with subtest('check is serving ui'):
|
||||
machine.succeed('curl --fail http:/localhost:8080/ui/')
|
||||
|
||||
with subtest('check is healthy'):
|
||||
machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/health | grep "OK"')
|
||||
|
||||
''
|
||||
+ lib.optionalString useSmollm2-135m ''
|
||||
# extended tests using SmolLM2
|
||||
with subtest('check `/running` for preloaded smollm2'):
|
||||
machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/running | grep "smollm2"')
|
||||
running_response = get_json('/running')
|
||||
assert len(running_response['running']) == 1
|
||||
running_model = running_response['running'][0]
|
||||
assert running_model['model'] == 'smollm2'
|
||||
assert running_model['state'] == 'ready'
|
||||
|
||||
with subtest('runs smollm2'):
|
||||
response = None
|
||||
with subtest('send request to smollm2'):
|
||||
data = {
|
||||
'model': 'smollm2',
|
||||
'messages': [
|
||||
{
|
||||
'role': 'user',
|
||||
'content': 'Say hello'
|
||||
}
|
||||
]
|
||||
}
|
||||
response = post_json('/v1/chat/completions', data)
|
||||
|
||||
with subtest('response is from smollm2'):
|
||||
assert response['model'] == 'smollm2'
|
||||
|
||||
with subtest('response contains at least one item in "choices"'):
|
||||
assert len(response['choices']) >= 1
|
||||
|
||||
assistant_choices = None
|
||||
with subtest('response contains at least one "assistant" message'):
|
||||
assistant_choices = [c for c in response['choices'] if c['message']['role'] == 'assistant']
|
||||
assert len(assistant_choices) >= 1
|
||||
|
||||
with subtest('first message (lowercase) starts with "hello"'):
|
||||
assert assistant_choices[0]['message']['content'].lower()[:5] == 'hello'
|
||||
|
||||
with subtest('check `/running` for just smollm2'):
|
||||
running_response = get_json('/running')
|
||||
assert len(running_response['running']) == 1
|
||||
running_model = running_response['running'][0]
|
||||
assert running_model['model'] == 'smollm2'
|
||||
assert running_model['state'] == 'ready'
|
||||
|
||||
with subtest('check `/running` for smollm2 to timeout'):
|
||||
machine.succeed('curl --silent --fail http://localhost:8080/running | grep "smollm2"')
|
||||
machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/running | grep -v "smollm2"', timeout=11)
|
||||
running_response = get_json('/running')
|
||||
assert len(running_response['running']) == 0
|
||||
|
||||
with subtest('runs smollm2-group-1 and smollm2-group-2'):
|
||||
response_1 = None
|
||||
with subtest('send request to smollm2-group-1'):
|
||||
data = {
|
||||
'model': 'smollm2-group-1',
|
||||
'messages': [
|
||||
{
|
||||
'role': 'user',
|
||||
'content': 'Say hello'
|
||||
}
|
||||
]
|
||||
}
|
||||
response_1 = post_json('/v1/chat/completions', data)
|
||||
|
||||
with subtest('response 1 is from smollm2-group-1'):
|
||||
assert response_1['model'] == 'smollm2-group-1'
|
||||
|
||||
with subtest('response 1 contains at least one item in "choices"'):
|
||||
assert len(response['choices']) >= 1
|
||||
|
||||
assistant_choices_1 = None
|
||||
with subtest('response 1 contains at least one "assistant" message'):
|
||||
assistant_choices_1 = [c for c in response_1['choices'] if c['message']['role'] == 'assistant']
|
||||
assert len(assistant_choices_1) >= 1
|
||||
|
||||
with subtest('first message (lowercase) in response 1 starts with "hello"'):
|
||||
assert assistant_choices_1[0]['message']['content'].lower()[:5] == 'hello'
|
||||
|
||||
with subtest('check `/running` for just smollm2-group-1'):
|
||||
running_response = get_json('/running')
|
||||
assert len(running_response['running']) == 1
|
||||
running_model = running_response['running'][0]
|
||||
assert running_model['model'] == 'smollm2-group-1'
|
||||
assert running_model['state'] == 'ready'
|
||||
|
||||
response_2 = None
|
||||
with subtest('send request to smollm2-group-2'):
|
||||
data = {
|
||||
'model': 'smollm2-group-2',
|
||||
'messages': [
|
||||
{
|
||||
'role': 'user',
|
||||
'content': 'Say hello'
|
||||
}
|
||||
]
|
||||
}
|
||||
response_2 = post_json('/v1/chat/completions', data)
|
||||
|
||||
with subtest('response 2 is from smollm2-group-2'):
|
||||
assert response_2['model'] == 'smollm2-group-2'
|
||||
|
||||
with subtest('response 2 contains at least one item in "choices"'):
|
||||
assert len(response['choices']) >= 1
|
||||
|
||||
assistant_choices_2 = None
|
||||
with subtest('response 2 contains at least one "assistant" message'):
|
||||
assistant_choices_2 = [c for c in response_2['choices'] if c['message']['role'] == 'assistant']
|
||||
assert len(assistant_choices_2) >= 1
|
||||
|
||||
with subtest('first message (lowercase) in response 1 starts with "hello"'):
|
||||
assert assistant_choices_2[0]['message']['content'].lower()[:5] == 'hello'
|
||||
|
||||
with subtest('check `/running` for both smollm2-group-1 and smollm2-group-2'):
|
||||
running_response = get_json('/running')['running']
|
||||
assert len(running_response) == 2
|
||||
assert len([
|
||||
rm for rm in running_response
|
||||
if rm['state'] == 'ready' and rm['model'] == 'smollm2-group-1'
|
||||
]) == 1
|
||||
assert len([
|
||||
rm for rm in running_response
|
||||
if rm['state'] == 'ready' and rm['model'] == 'smollm2-group-2'
|
||||
]) == 1
|
||||
'';
|
||||
}
|
||||
@@ -3581,8 +3581,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "one-dark-theme";
|
||||
publisher = "mskelton";
|
||||
version = "1.14.2";
|
||||
hash = "sha256-6nIfEPbau5Dy1DGJ0oQ5L2EGn2NDhpd8jSdYujtOU68=";
|
||||
version = "1.14.3";
|
||||
hash = "sha256-AYOX6I1R34HdNNdY9LpLkM/JHm/f1h+Q9HTtEnKMhdU=";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
|
||||
@@ -9,8 +9,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "shfmt";
|
||||
publisher = "mkhl";
|
||||
version = "1.3.1";
|
||||
hash = "sha256-V7pXPwabmUJLC/T0X4dsc52IZa7SaN70zd4mCjqk4X4=";
|
||||
version = "1.4.0";
|
||||
hash = "sha256-5qi2BRwftuW9Isveb7vRwPPPu2w7LTfhNO0xHFNruGI=";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "flycast";
|
||||
version = "0-unstable-2025-08-20";
|
||||
version = "0-unstable-2025-08-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flyinghead";
|
||||
repo = "flycast";
|
||||
rev = "9c5408a6d3fff939ae06a319c2fce3aa6f2a4d69";
|
||||
hash = "sha256-AH/XVN7Ah2DzN8/jlagOEAsNSciQMf8WBhfdC7YIMHw=";
|
||||
rev = "0243f81c264ea8d1bbaa107f26fb6644f767c1e8";
|
||||
hash = "sha256-iLEOAOMzdhlG4qogJiAhdK03YZ57dAV15TwBBjK7iSY=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -85,13 +85,13 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "imagemagick";
|
||||
version = "7.1.2-2";
|
||||
version = "7.1.2-3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ImageMagick";
|
||||
repo = "ImageMagick";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-bQzHZGTr3dl8G7cMSjC5Is+H/7pnRtqgp/rvYZeJDu0=";
|
||||
hash = "sha256-L4apUdF1VJXSVqWAyjYFG/4qDJoJ0ObmSOpd90kqXsU=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -1,18 +1,26 @@
|
||||
{
|
||||
"airgap-images-amd64": {
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "f98a57f7b25a4537096fbe9755f96cfd05bfe6fc6315f111c0f44e1abf4aad6d"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "9bda99cde833c4e13fb4d35fa46fd57d4b1a2eefc33e00fa352ce686c871c842"
|
||||
},
|
||||
"airgap-images-arm": {
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "33df3a2b155118198c48e66426a04292a348aa53fef126a3cb8e4fe7aea83ccc"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "d40a78ff14b40547bca6d05db3d7e767b272bb9257628ebd3905d1659bc49bd5"
|
||||
},
|
||||
"airgap-images-arm64": {
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "bba9c2e417ece797a5ae8bf9346bb35dc8ab163828c801a2cb512d6097610b52"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "6561f91f14c8419c9d1c20fb9af7948757d87bd91855b376058d9f2e16010452"
|
||||
},
|
||||
"images-list": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.30.14%2Bk3s2/k3s-images.txt",
|
||||
"sha256": "1f87ad26acac5e553279a64942c0e3eeef5c026cc2f82661d358990848672584"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,26 @@
|
||||
{
|
||||
"airgap-images-amd64": {
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "fa4f87e7e82c0e613f854eedf8f64d2cdabbd127f3ae84707ed1ca59e2137855"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "c98ad7590af33ef7e148920eb809dfd0f8145a623fdd8d32c6efeecab6088412"
|
||||
},
|
||||
"airgap-images-arm": {
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "0b6009407069fdd684d9627c5fa4bdb31ea4644172f1f429a2cce15d2c18631d"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "c1bd7557836538592dbd59f798e7a4b91d7aef74c8f9f71631060c96a5288dd6"
|
||||
},
|
||||
"airgap-images-arm64": {
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "6fa41db4ee001c1db8a404dd38f17f2426f27f688f9f7a2a76f4ef336f51c886"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "97f0db38f57a2dc63167795620ba34a89348d874ecc91fbf3d8d962dc1392e47"
|
||||
},
|
||||
"images-list": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.31.11%2Bk3s1/k3s-images.txt",
|
||||
"sha256": "1f87ad26acac5e553279a64942c0e3eeef5c026cc2f82661d358990848672584"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,26 @@
|
||||
{
|
||||
"airgap-images-amd64": {
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "f6a8720aa9bb03d0c8a97a93e994557292f1efba1fa6648cd8a07830622ce748"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "965f5767c08cffc96bf0967813e7c3fec4c41309e9952a480f0a50865bebd039"
|
||||
},
|
||||
"airgap-images-arm": {
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "9aa6f9f33e58e04fb9d8f9cd5c51dd01c6092d7b5434f84341b2f74bc8de783e"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "57ab9c306cc96f8dd925bc788c80e49c2d13ee7a222a12235fb525529ad25ac0"
|
||||
},
|
||||
"airgap-images-arm64": {
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "9633b71655ed0f4af556c148f9bf7753221b3c9b42a8d902391187789302adca"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "1aa05a55492ba0872fa8a0ff518d6e947869bea32dc2b8e5223bdcf53450c7f9"
|
||||
},
|
||||
"images-list": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.7%2Bk3s1/k3s-images.txt",
|
||||
"sha256": "e786e9a6f0331a92a2257a12995028761bfee1b5bfaac866025b64162e69bfe0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,26 @@
|
||||
{
|
||||
"airgap-images-amd64": {
|
||||
"airgap-images-amd64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
|
||||
"sha256": "64690dc963f6cbff8adb175a1bc41e6bf207734a9a214362544a36361a2d8350"
|
||||
},
|
||||
"airgap-images-amd64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
|
||||
"sha256": "51b6ddeafa465e542f0707272736100916886dd49abcb1420ee52878dd3638a9"
|
||||
},
|
||||
"airgap-images-arm": {
|
||||
"airgap-images-arm-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm.tar.gz",
|
||||
"sha256": "878d17722dd98e7d88de93a83606e0c9b0d7587c7e4a043559b5236a353fb224"
|
||||
},
|
||||
"airgap-images-arm-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm.tar.zst",
|
||||
"sha256": "339dd2b33b40f03bf95ee2e5dcb8e543ab6852e156cb8aaebe3885717a2966b5"
|
||||
},
|
||||
"airgap-images-arm64": {
|
||||
"airgap-images-arm64-tar-gz": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
|
||||
"sha256": "e4ab063deb50241e60218a3a30ce090a5817daa0f38dacd10651e27b2be28b9e"
|
||||
},
|
||||
"airgap-images-arm64-tar-zst": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
|
||||
"sha256": "c12ec7b122f34eb1f89310b05e66b500a2f49522d7cd4ceb3475a675cab6ebc6"
|
||||
},
|
||||
"images-list": {
|
||||
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.3%2Bk3s1/k3s-images.txt",
|
||||
"sha256": "e786e9a6f0331a92a2257a12995028761bfee1b5bfaac866025b64162e69bfe0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,38 +130,15 @@ let
|
||||
traefikChart = fetchurl chartVersions.traefik;
|
||||
traefik-crdChart = fetchurl chartVersions.traefik-crd;
|
||||
|
||||
mutFirstChar =
|
||||
f: s:
|
||||
let
|
||||
firstChar = f (lib.substring 0 1 s);
|
||||
rest = lib.substring 1 (-1) s;
|
||||
in
|
||||
firstChar + rest;
|
||||
|
||||
kebabToCamel =
|
||||
s:
|
||||
mutFirstChar lib.toLower (lib.concatMapStrings (mutFirstChar lib.toUpper) (lib.splitString "-" s));
|
||||
|
||||
# finds the images archive for the desired architecture, throws in case no suitable archive is found
|
||||
findImagesArchive =
|
||||
arch:
|
||||
let
|
||||
imagesVersionsNames = builtins.attrNames imagesVersions;
|
||||
in
|
||||
lib.findFirst (
|
||||
n: lib.hasInfix arch n
|
||||
) (throw "k3s: no airgap images for ${arch} available") imagesVersionsNames;
|
||||
|
||||
# a shortcut that provides the images archive for the host platform. Currently only supports
|
||||
# aarch64 (arm64) and x86_64 (amd64), throws on other architectures.
|
||||
airgapImages = fetchurl (
|
||||
if stdenv.hostPlatform.isAarch64 then
|
||||
imagesVersions.${findImagesArchive "arm64"}
|
||||
else if stdenv.hostPlatform.isx86_64 then
|
||||
imagesVersions.${findImagesArchive "amd64"}
|
||||
else
|
||||
throw "k3s: airgap images cannot be found automatically for architecture ${stdenv.hostPlatform.linuxArch}, consider using an image archive with an explicit architecture."
|
||||
);
|
||||
airgap-images =
|
||||
{
|
||||
x86_64-linux = fetchurl imagesVersions.airgap-images-amd64-tar-zst;
|
||||
aarch64-linux = fetchurl imagesVersions.airgap-images-arm64-tar-zst;
|
||||
}
|
||||
.${stdenv.hostPlatform.system}
|
||||
or (throw "k3s: no airgap images available for system ${stdenv.hostPlatform.system}, consider using an image archive with an explicit architecture.");
|
||||
|
||||
# so, k3s is a complicated thing to package
|
||||
# This derivation attempts to avoid including any random binaries from the
|
||||
@@ -467,7 +444,7 @@ buildGoModule rec {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit airgapImages;
|
||||
inherit airgap-images;
|
||||
k3sCNIPlugins = k3sCNIPlugins;
|
||||
k3sContainerd = k3sContainerd;
|
||||
k3sRepo = k3sRepo;
|
||||
@@ -481,10 +458,13 @@ buildGoModule rec {
|
||||
lib.mapAttrs (name: value: nixosTests.k3s.${name}.${k3s_version}) nixosTests.k3s;
|
||||
tests = passthru.mkTests k3sVersion;
|
||||
updateScript = updateScript;
|
||||
imagesList = throw "k3s.imagesList was removed";
|
||||
airgapImages = throw "k3s.airgapImages was renamed to k3s.airgap-images";
|
||||
airgapImagesAmd64 = throw "k3s.airgapImagesAmd64 was renamed to k3s.airgap-images-amd64-tar-zst";
|
||||
airgapImagesArm64 = throw "k3s.airgapImagesArm64 was renamed to k3s.airgap-images-arm64-tar-zst";
|
||||
airgapImagesArm = throw "k3s.airgapImagesArm was renamed to k3s.airgap-images-arm-tar-zst";
|
||||
}
|
||||
// (lib.mapAttrs' (
|
||||
name: _: lib.nameValuePair (kebabToCamel name) (fetchurl imagesVersions.${name})
|
||||
) imagesVersions);
|
||||
// (lib.mapAttrs (_: value: fetchurl value) imagesVersions);
|
||||
|
||||
meta = baseMeta;
|
||||
}
|
||||
|
||||
@@ -83,22 +83,20 @@ mv chart-versions.nix.update chart-versions.nix
|
||||
SHA256_HASHES="\
|
||||
$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-amd64.txt")
|
||||
$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-arm64.txt")
|
||||
$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-arm.txt")
|
||||
$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/k3s-images.txt" | sha256sum | cut -d' ' -f1) k3s-images.txt"
|
||||
$($CURL "https://github.com/k3s-io/k3s/releases/download/v${K3S_VERSION}/sha256sum-arm.txt")"
|
||||
|
||||
# Get all airgap images files associated with this release
|
||||
IMAGES_ARCHIVES=$($CURL "https://api.github.com/repos/k3s-io/k3s/releases/tags/v${K3S_VERSION}" | \
|
||||
# Filter the assets so that only zstd archives and text files that have "images" in their name remain
|
||||
jq -r '.assets[] | select(.name | (contains("images") and (endswith(".tar.zst") or endswith("k3s-images.txt")))) |
|
||||
"\(.name) \(.browser_download_url)"')
|
||||
# Filter the assets for airgap images archives
|
||||
jq -r '.assets[] | select(.name | test("^k3s-airgap-images-.*\\.tar\\.")) | "\(.name) \(.browser_download_url)"')
|
||||
|
||||
# Create a JSON object for each airgap images file and prefetch all download URLs in the process
|
||||
# Combine all JSON objects and write the result to images-versions.json
|
||||
while read -r name url; do
|
||||
# Pick the right hash based on the name
|
||||
sha256=$(grep "$name" <<< "$SHA256_HASHES" | cut -d ' ' -f 1)
|
||||
# Remove the k3s- prefix and file endings
|
||||
clean_name=$(sed -e 's/^k3s-//' -e 's/\.tar\.zst//' -e 's/\.txt/-list/' <<< "$name")
|
||||
# Remove the k3s prefix and replace all dots with hyphens
|
||||
clean_name=$(sed -e "s/^k3s-//" -e "s/\./-/g" <<< "$name")
|
||||
jq --null-input --arg name "$clean_name" \
|
||||
--arg url "$url" \
|
||||
--arg sha256 "$sha256" \
|
||||
|
||||
@@ -840,11 +840,11 @@
|
||||
"vendorHash": "sha256-GN1h8DXFeAQpg4v7S95VJs17HY4twFGoZKN1modJSRI="
|
||||
},
|
||||
"minio": {
|
||||
"hash": "sha256-TLWbbWYTjnvxT1LaV3FsL31xHHov8LpDYhA/nchMyMo=",
|
||||
"hash": "sha256-XYo+nn9rgK9OtwdowqcTyuMir+7KPPjVeMLwFeWvdEQ=",
|
||||
"homepage": "https://registry.terraform.io/providers/aminueza/minio",
|
||||
"owner": "aminueza",
|
||||
"repo": "terraform-provider-minio",
|
||||
"rev": "v3.6.3",
|
||||
"rev": "v3.6.4",
|
||||
"spdx": "AGPL-3.0",
|
||||
"vendorHash": "sha256-QWBzQXx/dzWZr9dn3LHy8RIvZL1EA9xYqi7Ppzvju7g="
|
||||
},
|
||||
|
||||
@@ -53,8 +53,8 @@ let
|
||||
}
|
||||
else
|
||||
{
|
||||
version = "2025.2";
|
||||
hash = "sha256-DfCfnUWpnvAOZrm6qUk6J+kGgTdjo7bHZyIXxmtD6hE=";
|
||||
version = "2025.3";
|
||||
hash = "sha256-i9/KAmjz8Qp8o8BuWbYvc+oCQgxnIRwP85EvMteDPGU=";
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
@@ -30,7 +30,7 @@ index af9b5a6dc0..5f58d549bf 100644
|
||||
@@ -1,5 +1,4 @@
|
||||
-prefix=@CMAKE_INSTALL_PREFIX@
|
||||
-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
+libdir=@CMAKE_INSTALL_FULL_LIBDIR
|
||||
|
||||
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||
|
||||
Name: libgromacs@GMX_LIBS_SUFFIX@
|
||||
Description: Gromacs library
|
||||
|
||||
@@ -16,18 +16,18 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "krunvm";
|
||||
version = "0.2.3";
|
||||
version = "0.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-IXofYsOmbrjq8Zq9+a6pvBYsvZFcKzN5IvCuHaxwazI=";
|
||||
hash = "sha256-YbK4DKw0nh9IO1F7QsJcbOMlHekEdeUBbDHwuQ2x1Ww=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit src;
|
||||
hash = "sha256-Vmb5IgGyKGekuL018/Xiz9QroWIwTIUxVB57fb0X7Kw=";
|
||||
hash = "sha256-TMV9xCcqBQgPsUSzsTJAi4qsplTOSm3ilaUmtmdaGnE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
autoconf,
|
||||
automake,
|
||||
cargo,
|
||||
@@ -49,6 +50,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-hRTK9xBu8v8+SGa/3IB8Alh/aGUiRRn2LmYOvXy0Yd4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# https://github.com/389ds/389-ds-base/pull/6930
|
||||
name = "389-ds-base-rustc-1_89.patch";
|
||||
url = "https://github.com/389ds/389-ds-base/commit/1701419551c246e9dc21778b118220eeb2258125.patch";
|
||||
hash = "sha256-trzY/fDH3rs66DWbWI+PY46tIC9ShuVqspMHqEEKZYA=";
|
||||
})
|
||||
];
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) src;
|
||||
sourceRoot = "${finalAttrs.src.name}/src";
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
llvmPackages,
|
||||
swiftPackages,
|
||||
swift,
|
||||
swiftpm,
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
inherit (swiftPackages) stdenv;
|
||||
inherit (llvmPackages) stdenv;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "age-plugin-se";
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "api-linter";
|
||||
version = "1.70.2";
|
||||
version = "1.71.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "googleapis";
|
||||
repo = "api-linter";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-2ILG+FW+58WnmL5Ts1K32ee0SR15yp9NnEtmEo6r6w8=";
|
||||
hash = "sha256-WZvaPYiz1pHW6OLl6ahV3/b9RXW6S/c/kbQxJFfAn28=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-CHObiSQudxZw5KjimQk8myTsLeQMBZU8SewW4I2dNsw=";
|
||||
vendorHash = "sha256-KW5+THuV7U09ZV0eShLCDJYDPOM09/bUi7t0WiVx6pk=";
|
||||
|
||||
subPackages = [ "cmd/api-linter" ];
|
||||
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "argon";
|
||||
version = "2.0.25";
|
||||
version = "2.0.26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argon-rbx";
|
||||
repo = "argon";
|
||||
tag = version;
|
||||
hash = "sha256-nQdh263qFS3seazdoNxme7SxQ7aJsRmFdoyfsZMDjw0=";
|
||||
hash = "sha256-3IftPWrBETU7zJLaB9uTrc08c37XGmFPPArzrlIFG3Q=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-s3/i7RnwadgGBg0lZmttxpLC/hZUba+PGc8WD30aAQI=";
|
||||
cargoHash = "sha256-60BQ7PsKATq5jX5DqCGdOx3xvRzwm5TAM1RtKuPy49M=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
},
|
||||
"aem": {
|
||||
"pname": "aem",
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aem-1.0.0-py2.py3-none-any.whl",
|
||||
"hash": "sha256-3QYsiwJ7avGM4Fg8H88shs3JKBo2cOSh0F39bTN/8vA=",
|
||||
"version": "1.0.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aem-1.0.1-py2.py3-none-any.whl",
|
||||
"hash": "sha256-QDkq7GjOpqZSUFXkxrL5OjJwSnGHmRH/8r6N/Amriq0=",
|
||||
"description": "Manage Azure Enhanced Monitoring Extensions for SAP"
|
||||
},
|
||||
"ai-examples": {
|
||||
@@ -50,23 +50,16 @@
|
||||
},
|
||||
"aks-preview": {
|
||||
"pname": "aks-preview",
|
||||
"version": "18.0.0b15",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-18.0.0b15-py2.py3-none-any.whl",
|
||||
"hash": "sha256-YjRPELWfLshLQHgZTa7jXS96nyYiZ7h2Gu25/wKvw7c=",
|
||||
"version": "18.0.0b33",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-18.0.0b33-py2.py3-none-any.whl",
|
||||
"hash": "sha256-Zkp5Nzl+eQ7PPniDF7/K5II2xIG6OKC3Rhm3ZTpyILc=",
|
||||
"description": "Provides a preview for upcoming AKS features"
|
||||
},
|
||||
"akshybrid": {
|
||||
"pname": "akshybrid",
|
||||
"version": "0.1.2",
|
||||
"url": "https://hybridaksstorage.z13.web.core.windows.net/HybridAKS/CLI/akshybrid-0.1.2-py3-none-any.whl",
|
||||
"hash": "sha256-l2fNpETEIVc7wiDgHNWKZ8MKNhdc7bposEVKPG6YOo4=",
|
||||
"description": "Microsoft Azure Command-Line Tools HybridContainerService Extension"
|
||||
},
|
||||
"alb": {
|
||||
"pname": "alb",
|
||||
"version": "2.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/alb-2.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-Z9Pbk2dkAqSyFDlpuyD7jsYidiTsUUnTF6GRtX0WqcM=",
|
||||
"version": "2.0.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/alb-2.0.1-py3-none-any.whl",
|
||||
"hash": "sha256-B3/01NiuZFVvTGrqQK9lBEu++7hnhHGLM6bL8gvBLx4=",
|
||||
"description": "Microsoft Azure Command-Line Tools ALB Extension"
|
||||
},
|
||||
"alertsmanagement": {
|
||||
@@ -78,9 +71,9 @@
|
||||
},
|
||||
"amg": {
|
||||
"pname": "amg",
|
||||
"version": "2.6.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/amg-2.6.1-py3-none-any.whl",
|
||||
"hash": "sha256-ERGri8mXJtLy/acz8R2UqdmILr7JT4bTQaU6GtxhKjs=",
|
||||
"version": "2.8.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/amg-2.8.0-py3-none-any.whl",
|
||||
"hash": "sha256-E4Id15eoKStqeQynaHisZLcZsiApMf6uV/J8xWz/s5w=",
|
||||
"description": "Microsoft Azure Command-Line Tools Azure Managed Grafana Extension"
|
||||
},
|
||||
"amlfs": {
|
||||
@@ -92,9 +85,9 @@
|
||||
},
|
||||
"apic-extension": {
|
||||
"pname": "apic-extension",
|
||||
"version": "1.2.0b2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/apic_extension-1.2.0b2-py3-none-any.whl",
|
||||
"hash": "sha256-QtaiixX5daX3pOpi7jnJFH2cXe+J0+J/q9PJVZqkE28=",
|
||||
"version": "1.2.0b3",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/apic_extension-1.2.0b3-py3-none-any.whl",
|
||||
"hash": "sha256-ATO7B3Dzzk8nswan5Tvym7eloe3OD9ZO+yrfkpTWZns=",
|
||||
"description": "Microsoft Azure Command-Line Tools ApicExtension Extension"
|
||||
},
|
||||
"appservice-kube": {
|
||||
@@ -111,6 +104,13 @@
|
||||
"hash": "sha256-Mw/R8ZdL7OFtySTjU3MbHw9EA6WONuM0dwXwHb2/A9E=",
|
||||
"description": "Microsoft Azure Command-Line Tools Arcgateway Extension"
|
||||
},
|
||||
"arize-ai": {
|
||||
"pname": "arize-ai",
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/arize_ai-1.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-re+iMmNO+fYl5j5oTGy4vm6OHATHytv5TIaYl2k6fVg=",
|
||||
"description": "Microsoft Azure Command-Line Tools ArizeAi Extension"
|
||||
},
|
||||
"astronomer": {
|
||||
"pname": "astronomer",
|
||||
"version": "1.0.1",
|
||||
@@ -162,9 +162,9 @@
|
||||
},
|
||||
"bastion": {
|
||||
"pname": "bastion",
|
||||
"version": "1.4.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/bastion-1.4.1-py3-none-any.whl",
|
||||
"hash": "sha256-Zx50jU9Vmt8vNe/50g8jWaxjeuXlHlMYVNG/v8exRmU=",
|
||||
"version": "1.4.2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/bastion-1.4.2-py3-none-any.whl",
|
||||
"hash": "sha256-TTaKDFaydQ4lW+LfvEHbWX4WARj3Xwg/yeHmq9aNEoI=",
|
||||
"description": "Microsoft Azure Command-Line Tools Bastion Extension"
|
||||
},
|
||||
"billing-benefits": {
|
||||
@@ -225,9 +225,9 @@
|
||||
},
|
||||
"confluent": {
|
||||
"pname": "confluent",
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/confluent-1.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-CmHPSaZdVmhow/CwCb45gua03Dw2m+nP1Cu35agO7xk=",
|
||||
"version": "1.1.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/confluent-1.1.0-py3-none-any.whl",
|
||||
"hash": "sha256-X/jWCmB/B01Z56Y/6xcl+4e2d7DDDsMHaqZ0/PtU6TU=",
|
||||
"description": "Microsoft Azure Command-Line Tools ConfluentManagementClient Extension"
|
||||
},
|
||||
"connectedmachine": {
|
||||
@@ -246,9 +246,9 @@
|
||||
},
|
||||
"cosmosdb-preview": {
|
||||
"pname": "cosmosdb-preview",
|
||||
"version": "1.6.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.6.0-py2.py3-none-any.whl",
|
||||
"hash": "sha256-OO8IjVRhGOfsCb/Oot7Dc7PmfNsDmaXiCuG0at8Hb44=",
|
||||
"version": "1.6.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.6.1-py2.py3-none-any.whl",
|
||||
"hash": "sha256-kfhttzgrlnyAoD6pe7PKjGHdKE0U6G1GYNe1a4ZA3f0=",
|
||||
"description": "Microsoft Azure Command-Line Tools Cosmosdb-preview Extension"
|
||||
},
|
||||
"costmanagement": {
|
||||
@@ -258,13 +258,6 @@
|
||||
"hash": "sha256-bl4FPQW61q1jBb0CT1HjVeYP3ou2oDNQ39gcJUN9LkU=",
|
||||
"description": "Microsoft Azure Command-Line Tools CostManagementClient Extension"
|
||||
},
|
||||
"csvmware": {
|
||||
"pname": "csvmware",
|
||||
"version": "0.3.0",
|
||||
"url": "https://github.com/Azure/az-csvmware-cli/releases/download/0.3.0/csvmware-0.3.0-py2.py3-none-any.whl",
|
||||
"hash": "sha256-37l2fwWsE8di6p3EMnFp5jpcEYeRI1RLIA7bmiyaikI=",
|
||||
"description": "Manage Azure VMware Solution by CloudSimple"
|
||||
},
|
||||
"custom-providers": {
|
||||
"pname": "custom-providers",
|
||||
"version": "0.2.1",
|
||||
@@ -281,9 +274,9 @@
|
||||
},
|
||||
"data-transfer": {
|
||||
"pname": "data-transfer",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/data_transfer-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-dnF7ZpUcGP7d3uywoXZdMmr/INH5y46glKuJwrlenfU=",
|
||||
"version": "1.0.0b2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/data_transfer-1.0.0b2-py3-none-any.whl",
|
||||
"hash": "sha256-PqiantcGNb58p+pQm0kQEPcVkY2dg64IfE9VZhOwz2U=",
|
||||
"description": "Microsoft Azure Command-Line Tools DataTransfer Extension"
|
||||
},
|
||||
"databox": {
|
||||
@@ -316,9 +309,9 @@
|
||||
},
|
||||
"datamigration": {
|
||||
"pname": "datamigration",
|
||||
"version": "1.0.0b5",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datamigration-1.0.0b5-py3-none-any.whl",
|
||||
"hash": "sha256-0ZcMgeoUIB5M+e3qrdnkerWj5jiRd3SDfyQJKip+SBI=",
|
||||
"version": "1.0.0b6",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datamigration-1.0.0b6-py3-none-any.whl",
|
||||
"hash": "sha256-4YPJCSMBr+10f+FRQtOiqwbhE6POAHpYFQcdESJppzg=",
|
||||
"description": "Microsoft Azure Command-Line Tools DataMigrationManagementClient Extension"
|
||||
},
|
||||
"dataprotection": {
|
||||
@@ -428,9 +421,9 @@
|
||||
},
|
||||
"elastic": {
|
||||
"pname": "elastic",
|
||||
"version": "1.0.0b3",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/elastic-1.0.0b3-py3-none-any.whl",
|
||||
"hash": "sha256-LzrkMNPDTdQAfIxag3SWNWjMI1WIckZCQoEcxaJuLec=",
|
||||
"version": "1.0.0b4",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/elastic-1.0.0b4-py3-none-any.whl",
|
||||
"hash": "sha256-+zjE4PUe1FvB7z1i4FFP3EyWBDco/dZe9DbBDMogijY=",
|
||||
"description": "Microsoft Azure Command-Line Tools MicrosoftElastic Extension"
|
||||
},
|
||||
"elastic-san": {
|
||||
@@ -463,9 +456,9 @@
|
||||
},
|
||||
"fleet": {
|
||||
"pname": "fleet",
|
||||
"version": "1.5.2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-1.5.2-py3-none-any.whl",
|
||||
"hash": "sha256-oshfK8G4NECSNxucAke46csKnw4eRBvOrQG2gGLCbq8=",
|
||||
"version": "1.6.2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-1.6.2-py3-none-any.whl",
|
||||
"hash": "sha256-YZpmg1dWiZOerGTgotBstzYB9FgnxPKGurS7OP01Wbc=",
|
||||
"description": "Microsoft Azure Command-Line Tools Fleet Extension"
|
||||
},
|
||||
"fluid-relay": {
|
||||
@@ -531,13 +524,6 @@
|
||||
"hash": "sha256-rEoQ4sxkpNCBjkj/vN3+tDB91WuIdbwBwCaH1HPJ/ps=",
|
||||
"description": "Microsoft Azure Command-Line Tools AzureDedicatedHSMResourceProvider Extension"
|
||||
},
|
||||
"hdinsightonaks": {
|
||||
"pname": "hdinsightonaks",
|
||||
"version": "1.0.0b3",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/hdinsightonaks-1.0.0b3-py3-none-any.whl",
|
||||
"hash": "sha256-9Um4UQe3uD/2T8+lyQpdfpAKXqLv527smx+BaJ5Yw2U=",
|
||||
"description": "Microsoft Azure Command-Line Tools Hdinsightonaks Extension"
|
||||
},
|
||||
"healthbot": {
|
||||
"pname": "healthbot",
|
||||
"version": "0.1.0",
|
||||
@@ -561,9 +547,9 @@
|
||||
},
|
||||
"image-copy-extension": {
|
||||
"pname": "image-copy-extension",
|
||||
"version": "1.0.2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/image_copy_extension-1.0.2-py2.py3-none-any.whl",
|
||||
"hash": "sha256-POLkBXJTiA9mZ8ezYUJDcl3/CSClNdffYBcQbJTbolY=",
|
||||
"version": "1.0.3",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/image_copy_extension-1.0.3-py2.py3-none-any.whl",
|
||||
"hash": "sha256-YTQFsRYinh4Bk2p747oyMAsC3a9rKiR444woUeGTKGg=",
|
||||
"description": "Support for copying managed vm images between regions"
|
||||
},
|
||||
"image-gallery": {
|
||||
@@ -610,9 +596,9 @@
|
||||
},
|
||||
"k8s-extension": {
|
||||
"pname": "k8s-extension",
|
||||
"version": "1.6.5",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.5-py3-none-any.whl",
|
||||
"hash": "sha256-MZJr6cLtg9m1TD5aYHw2ynfI1Rin5UvaAS7k0QsmZ7k=",
|
||||
"version": "1.6.7",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.7-py3-none-any.whl",
|
||||
"hash": "sha256-TU2bAc44Zpd//GyziclX7V8BU1cExK/SduKLV++FxqE=",
|
||||
"description": "Microsoft Azure Command-Line Tools K8s-extension Extension"
|
||||
},
|
||||
"k8s-runtime": {
|
||||
@@ -631,9 +617,9 @@
|
||||
},
|
||||
"lambda-test": {
|
||||
"pname": "lambda-test",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/lambda_test-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-KnNCZsTNn4948xKiHJ6Nba3NYLHy+T5yEF55BtQ9a1Q=",
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/lambda_test-1.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-6C2Db8ZPDRs8QY2v1RM2cyGVIM/hwtpBAj6c9V4CXxQ=",
|
||||
"description": "Microsoft Azure Command-Line Tools LambdaTest Extension"
|
||||
},
|
||||
"log-analytics": {
|
||||
@@ -673,9 +659,9 @@
|
||||
},
|
||||
"managednetworkfabric": {
|
||||
"pname": "managednetworkfabric",
|
||||
"version": "8.0.0b5",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/managednetworkfabric-8.0.0b5-py3-none-any.whl",
|
||||
"hash": "sha256-+6ueiYJnSMnGbawqTGoKkbN9Fvl5NCJuz3RUXW6mGBk=",
|
||||
"version": "8.1.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/managednetworkfabric-8.1.0-py3-none-any.whl",
|
||||
"hash": "sha256-HWfTuuYq3P02F3zaK8s8HLkqRcdP7/dWwCy/nX/y4u8=",
|
||||
"description": "Support for managednetworkfabric commands based on 2024-06-15-preview API version"
|
||||
},
|
||||
"managementpartner": {
|
||||
@@ -722,9 +708,9 @@
|
||||
},
|
||||
"mongo-db": {
|
||||
"pname": "mongo-db",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/mongo_db-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-z/i+P/kx4MT8XskhqjohRL3Xpne9teLe6jmfCv6iv+0=",
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/mongo_db-1.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-kbU/GRizMppGD2OJ29awQaFUXIMLin0DJpX8Nnymqzo=",
|
||||
"description": "Microsoft Azure Command-Line Tools MongoDb Extension"
|
||||
},
|
||||
"monitor-control-service": {
|
||||
@@ -750,9 +736,9 @@
|
||||
},
|
||||
"neon": {
|
||||
"pname": "neon",
|
||||
"version": "1.0.0b4",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/neon-1.0.0b4-py3-none-any.whl",
|
||||
"hash": "sha256-iak+Dt5UD+YpVO1mQzatzIYybEyVIZaRabL0Jbgr17M=",
|
||||
"version": "1.0.0b6",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/neon-1.0.0b6-py3-none-any.whl",
|
||||
"hash": "sha256-qCyfYQIDoZo8l1bPYDJsLTFfBQJEi7/FyNL6jmS1tTc=",
|
||||
"description": "Microsoft Azure Command-Line Tools Neon Extension"
|
||||
},
|
||||
"network-analytics": {
|
||||
@@ -771,9 +757,9 @@
|
||||
},
|
||||
"new-relic": {
|
||||
"pname": "new-relic",
|
||||
"version": "1.0.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/new_relic-1.0.1-py3-none-any.whl",
|
||||
"hash": "sha256-VKbfg2sflMylsHcjvJ1QUhbVW3fOG+JViuCSIt4mJ2A=",
|
||||
"version": "1.0.2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/new_relic-1.0.2-py3-none-any.whl",
|
||||
"hash": "sha256-/h2TeDcQyRFvcZBwNzxcPrlf638sjfZxYZ97pm7AxB4=",
|
||||
"description": "Microsoft Azure Command-Line Tools NewRelic Extension"
|
||||
},
|
||||
"next": {
|
||||
@@ -827,9 +813,9 @@
|
||||
},
|
||||
"palo-alto-networks": {
|
||||
"pname": "palo-alto-networks",
|
||||
"version": "1.1.1b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/palo_alto_networks-1.1.1b1-py3-none-any.whl",
|
||||
"hash": "sha256-jU9qS3I2a9V3gL0VjWwls2OZnhoT6oXUkYCcyaTSlgg=",
|
||||
"version": "1.1.2b2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/palo_alto_networks-1.1.2b2-py3-none-any.whl",
|
||||
"hash": "sha256-xOjYa4QakDrL4Xud0OHvJuY7Df2l2B1mnqw8aMlqiAg=",
|
||||
"description": "Microsoft Azure Command-Line Tools PaloAltoNetworks Extension"
|
||||
},
|
||||
"peering": {
|
||||
@@ -867,6 +853,13 @@
|
||||
"hash": "sha256-mqrXcCKvAEqWOzQZrBDSM4IO81Jduen2+fx5fhqFmtY=",
|
||||
"description": "Microsoft Azure Command-Line Tools ProviderHub Extension"
|
||||
},
|
||||
"pscloud": {
|
||||
"pname": "pscloud",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/pscloud-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-aIobuwrf1z72gUzYZLLIzk1mRrsbIfWlxgpfJ+1n20U=",
|
||||
"description": "Microsoft Azure Command-Line Tools Pscloud Extension"
|
||||
},
|
||||
"purview": {
|
||||
"pname": "purview",
|
||||
"version": "0.1.0",
|
||||
@@ -876,9 +869,9 @@
|
||||
},
|
||||
"quantum": {
|
||||
"pname": "quantum",
|
||||
"version": "1.0.0b6",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/quantum-1.0.0b6-py3-none-any.whl",
|
||||
"hash": "sha256-KTYDvglCzrPy4XWsPbBvKKhFI1/mxKwsyBi5/8q2+y8=",
|
||||
"version": "1.0.0b9",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/quantum-1.0.0b9-py3-none-any.whl",
|
||||
"hash": "sha256-DYnSYOsA+nZJ9V2JIqIHB/697a9ATJLBneyrPsHGoVY=",
|
||||
"description": "Microsoft Azure Command-Line Tools Quantum Extension"
|
||||
},
|
||||
"qumulo": {
|
||||
@@ -974,9 +967,9 @@
|
||||
},
|
||||
"stack-hci-vm": {
|
||||
"pname": "stack-hci-vm",
|
||||
"version": "1.9.1",
|
||||
"url": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.9.1-py3-none-any.whl",
|
||||
"hash": "sha256-BZSQ1tVLSkQE+jQPpZWIHEoM/86RPKT5kAlmKmNa0qY=",
|
||||
"version": "1.10.4",
|
||||
"url": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.10.4-py3-none-any.whl",
|
||||
"hash": "sha256-MjcpQ7a+5Rw6Z7MAVzoa/qT6HSX6uaV+kWoiMBhK/JM=",
|
||||
"description": "Microsoft Azure Command-Line Tools Stack-HCi-VM Extension"
|
||||
},
|
||||
"standbypool": {
|
||||
@@ -1002,11 +995,18 @@
|
||||
},
|
||||
"storage-blob-preview": {
|
||||
"pname": "storage-blob-preview",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/storage_blob_preview-1.0.0b1-py2.py3-none-any.whl",
|
||||
"hash": "sha256-H/5FHkFlfI8ooiq+44c3HRHO3YDS5Sz8vtCtrAqRe0E=",
|
||||
"version": "1.0.0b3",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/storage_blob_preview-1.0.0b3-py2.py3-none-any.whl",
|
||||
"hash": "sha256-88MkEV7z+bGUJXxv16lu14Xj8uRh2wWTji1O3nswYq8=",
|
||||
"description": "Microsoft Azure Command-Line Tools Storage-blob-preview Extension"
|
||||
},
|
||||
"storage-discovery": {
|
||||
"pname": "storage-discovery",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/storage_discovery-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-qa4B0qEbeg09vZRN1E4J2E5LvwbrPd2OG1V/WOhfI1o=",
|
||||
"description": "Microsoft Azure Command-Line Tools StorageDiscovery Extension"
|
||||
},
|
||||
"storage-mover": {
|
||||
"pname": "storage-mover",
|
||||
"version": "1.1.0",
|
||||
@@ -1072,9 +1072,9 @@
|
||||
},
|
||||
"virtual-network-manager": {
|
||||
"pname": "virtual-network-manager",
|
||||
"version": "2.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/virtual_network_manager-2.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-EbmCqrszG4PC80yCDl+IfzdKw0tO4R0SL6iD+wymu9w=",
|
||||
"version": "2.0.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/virtual_network_manager-2.0.1-py3-none-any.whl",
|
||||
"hash": "sha256-p/qdOH8arVdfUoslBT0Al26hMihL8VPMClfNZhwtxto=",
|
||||
"description": "Microsoft Azure Command-Line Tools NetworkManagementClient Extension"
|
||||
},
|
||||
"virtual-network-tap": {
|
||||
@@ -1093,9 +1093,9 @@
|
||||
},
|
||||
"vme": {
|
||||
"pname": "vme",
|
||||
"version": "1.0.0b4",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/vme-1.0.0b4-py3-none-any.whl",
|
||||
"hash": "sha256-TMOUIL/cntB9DcQubv7B1OMs+nSwv2RRcFD6KCRwFrk=",
|
||||
"version": "1.0.0b5",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/vme-1.0.0b5-py3-none-any.whl",
|
||||
"hash": "sha256-DVb8jVymvcXEEmPsz+qGh3Q3iTFVTI904VD3Kq5d3fc=",
|
||||
"description": "Microsoft Azure Command-Line Tools Vme Extension"
|
||||
},
|
||||
"vmware": {
|
||||
@@ -1114,9 +1114,9 @@
|
||||
},
|
||||
"workload-orchestration": {
|
||||
"pname": "workload-orchestration",
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/workload_orchestration-1.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-5o0meWmZDeM45AGTTkD9weX1/tcdg7JJzW1XJRWVdkE=",
|
||||
"version": "2.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/workload_orchestration-2.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-19yRNNBkY4h+KR4RMeu8rGox1kFKDYOdaNM/dEwSrSU=",
|
||||
"description": "Microsoft Azure Command-Line Tools WorkloadOperations Extension"
|
||||
},
|
||||
"workloads": {
|
||||
|
||||
@@ -151,11 +151,14 @@
|
||||
// lib.optionalAttrs config.allowAliases {
|
||||
# Removed extensions
|
||||
adp = throw "The 'adp' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8038
|
||||
akshybrid = throw "The 'akshybrid' extension for azure-cli was removed upstream"; # https://github.com/Azure/azure-cli-extensions/pull/8955
|
||||
azurestackhci = throw "The 'azurestackhci' extension for azure-cli was deprecated upstream"; # Added 2025-07-01, https://github.com/Azure/azure-cli-extensions/pull/8898
|
||||
blockchain = throw "The 'blockchain' extension for azure-cli was deprecated upstream"; # Added 2024-04-26, https://github.com/Azure/azure-cli-extensions/pull/7370
|
||||
compute-diagnostic-rp = throw "The 'compute-diagnostic-rp' extension for azure-cli was deprecated upstream"; # Added 2024-11-12, https://github.com/Azure/azure-cli-extensions/pull/8240
|
||||
connection-monitor-preview = throw "The 'connection-monitor-preview' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8194
|
||||
csvmware = throw "The 'csvmware' extension for azure-cli was removed upstream"; # https://github.com/Azure/azure-cli-extensions/pull/8931
|
||||
deidservice = throw "The 'deidservice' extension for azure-cli was moved under healthcareapis"; # Added 2024-11-19, https://github.com/Azure/azure-cli-extensions/pull/8224
|
||||
hdinsightonaks = throw "The 'hdinsightonaks' extension for azure-cli was removed upstream"; # https://github.com/Azure/azure-cli-extensions/pull/8956
|
||||
logz = throw "The 'logz' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8459
|
||||
pinecone = throw "The 'pinecone' extension for azure-cli was removed upstream"; # Added 2025-06-03, https://github.com/Azure/azure-cli-extensions/pull/8763
|
||||
sap-hana = throw "The 'sap-hana' extension for azure-cli was deprecated upstream"; # Added 2025-07-01, https://github.com/Azure/azure-cli-extensions/pull/8904
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "base16384";
|
||||
version = "2.3.1";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fumiama";
|
||||
repo = "base16384";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2HZeom+8eEH4CrphCoOV+wJbqhYKVUcAQrYLyEVACkQ=";
|
||||
hash = "sha256-Xkub0sWT+1oJlznDnnV1mDgQNiMQj8gsWemrCOAYYgE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
}:
|
||||
let
|
||||
pname = "bpftop";
|
||||
version = "0.7.0";
|
||||
version = "0.7.1";
|
||||
in
|
||||
rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } {
|
||||
inherit pname version;
|
||||
@@ -18,10 +18,10 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } {
|
||||
owner = "Netflix";
|
||||
repo = "bpftop";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-h6iNc2z5UF+Z4FTaZXfhbz7gIIGlT8pbJ7OcP6uZENc=";
|
||||
hash = "sha256-8vb32+wHOnADpIIfO9mMlGu7GdlA0hS9ij0zSLcrO7A=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Z7E61XiEKM6zKm7LFIXPYCFoSwSHfq6QCfbRMmiBW+o=";
|
||||
cargoHash = "sha256-euiI4R4nCgnwiBA22kzn0c91hjOr0IOOAyFkW5ZadIk=";
|
||||
|
||||
buildInputs = [
|
||||
elfutils
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"dart_leap": "sha256-oO5851cIdrW/asgOePxvwUgjn1XchkH9CKJUruvlLYI=",
|
||||
"lw_file_system": "sha256-P5zr781SKHqZGwM2dNRi0O53oZuaY2zaM7q2Z7th0F4=",
|
||||
"lw_file_system": "sha256-S2zNpZWPtUH8Q+gUPEX9zW+agH8rq6Wsz7aj/i1DF9c=",
|
||||
"lw_file_system_api": "sha256-/Ur9zu4Ovb4x8j1n6Q6FWFuJ9yp92YQG3b7H5CMf3II=",
|
||||
"lw_sysapi": "sha256-oGs5q8N46WNcRzbsgsPB/6fVBH3g9utK4tlXBpwU4Qc=",
|
||||
"material_leap": "sha256-AHkXi+ENvLmJBXyF8jdXOCn/CThb6/LDr18gl9sL0XE=",
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.3.3";
|
||||
version = "2.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LinwoodDev";
|
||||
repo = "Butterfly";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-3cDT1t74SrDUqUtFmNZFQHUx+eCdDjZhPseT3lhNOYE=";
|
||||
hash = "sha256-qmgM6h2HxvRwUv4UwkIBR3uYz2NiaWEgJWWjrpumQug=";
|
||||
};
|
||||
in
|
||||
flutter332.buildFlutterApplication {
|
||||
@@ -40,7 +40,7 @@ flutter332.buildFlutterApplication {
|
||||
nativeBuildInputs = [ yq-go ];
|
||||
}
|
||||
''
|
||||
yq eval --output-format=json --prettyPrint $src/pubspec.lock > "$out"
|
||||
yq eval --output-format=json --prettyPrint $src/app/pubspec.lock > "$out"
|
||||
'';
|
||||
updateScript = _experimental-update-script-combinators.sequence [
|
||||
(gitUpdater {
|
||||
|
||||
@@ -114,21 +114,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "build",
|
||||
"sha256": "7d95cbbb1526ab5ae977df9b4cc660963b9b27f6d1075c0b34653868911385e4",
|
||||
"sha256": "6439a9c71a4e6eca8d9490c1b380a25b02675aa688137dfbe66d2062884a23ac",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.0.0"
|
||||
"version": "3.0.2"
|
||||
},
|
||||
"build_config": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "build_config",
|
||||
"sha256": "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33",
|
||||
"sha256": "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.1.2"
|
||||
"version": "1.2.0"
|
||||
},
|
||||
"build_daemon": {
|
||||
"dependency": "transitive",
|
||||
@@ -144,31 +144,31 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "build_resolvers",
|
||||
"sha256": "38c9c339333a09b090a638849a4c56e70a404c6bdd3b511493addfbc113b60c2",
|
||||
"sha256": "2b21a125d66a86b9511cc3fb6c668c42e9a1185083922bf60e46d483a81a9712",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.0.0"
|
||||
"version": "3.0.2"
|
||||
},
|
||||
"build_runner": {
|
||||
"dependency": "direct dev",
|
||||
"description": {
|
||||
"name": "build_runner",
|
||||
"sha256": "b971d4a1c789eba7be3e6fe6ce5e5b50fd3719e3cb485b3fad6d04358304351d",
|
||||
"sha256": "fd3c09f4bbff7fa6e8d8ef688a0b2e8a6384e6483a25af0dac75fef362bcfe6f",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.6.0"
|
||||
"version": "2.7.0"
|
||||
},
|
||||
"build_runner_core": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "build_runner_core",
|
||||
"sha256": "c04e612ca801cd0928ccdb891c263a2b1391cb27940a5ea5afcf9ba894de5d62",
|
||||
"sha256": "ab27e46c8aa233e610cf6084ee6d8a22c6f873a0a9929241d8855b7a72978ae7",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "9.2.0"
|
||||
"version": "9.3.0"
|
||||
},
|
||||
"built_collection": {
|
||||
"dependency": "transitive",
|
||||
@@ -184,11 +184,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "built_value",
|
||||
"sha256": "0b1b12a0a549605e5f04476031cd0bc91ead1d7c8e830773a18ee54179b3cb62",
|
||||
"sha256": "ba95c961bafcd8686d1cf63be864eb59447e795e124d98d6a27d91fcd13602fb",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "8.11.0"
|
||||
"version": "8.11.1"
|
||||
},
|
||||
"butterfly_api": {
|
||||
"dependency": "direct main",
|
||||
@@ -197,7 +197,7 @@
|
||||
"relative": true
|
||||
},
|
||||
"source": "path",
|
||||
"version": "2.3.3"
|
||||
"version": "2.3.4"
|
||||
},
|
||||
"camera": {
|
||||
"dependency": "direct main",
|
||||
@@ -223,11 +223,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "camera_avfoundation",
|
||||
"sha256": "04e1f052ef268085a4f0550389211cc46005a9af015e444c7b1ee7aa19332e5d",
|
||||
"sha256": "e4aca5bccaf897b70cac87e5fdd789393310985202442837922fd40325e2733b",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.9.20+6"
|
||||
"version": "0.9.21+1"
|
||||
},
|
||||
"camera_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -323,11 +323,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "connectivity_plus",
|
||||
"sha256": "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99",
|
||||
"sha256": "b5e72753cf63becce2c61fd04dfe0f1c430cc5278b53a1342dc5ad839eab29ec",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.1.4"
|
||||
"version": "6.1.5"
|
||||
},
|
||||
"connectivity_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -414,11 +414,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "dart_mappable",
|
||||
"sha256": "2255b2c00e328a65fef5a8df2dabfc0dc9c2e518c33a50051a4519b1c7a28c48",
|
||||
"sha256": "15f41a35da8ee690bbfa0059fa241edeeaea73f89a2ba685b354ece07cd8ada6",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.5.0"
|
||||
"version": "4.6.0"
|
||||
},
|
||||
"dart_style": {
|
||||
"dependency": "transitive",
|
||||
@@ -464,11 +464,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "dynamic_color",
|
||||
"sha256": "eae98052fa6e2826bdac3dd2e921c6ce2903be15c6b7f8b6d8a5d49b5086298d",
|
||||
"sha256": "43a5a6679649a7731ab860334a5812f2067c2d9ce6452cf069c5e0c25336c17c",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.7.0"
|
||||
"version": "1.8.1"
|
||||
},
|
||||
"equatable": {
|
||||
"dependency": "direct main",
|
||||
@@ -524,21 +524,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "file_selector_android",
|
||||
"sha256": "6bba3d590ee9462758879741abc132a19133600dd31832f55627442f1ebd7b54",
|
||||
"sha256": "3015702ab73987000e7ff2df5ddc99666d2bcd65cdb243f59da35729d3be6cff",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.5.1+14"
|
||||
"version": "0.5.1+15"
|
||||
},
|
||||
"file_selector_ios": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "file_selector_ios",
|
||||
"sha256": "94b98ad950b8d40d96fee8fa88640c2e4bd8afcdd4817993bd04e20310f45420",
|
||||
"sha256": "fe9f52123af16bba4ad65bd7e03defbbb4b172a38a8e6aaa2a869a0c56a5f5fb",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.5.3+1"
|
||||
"version": "0.5.3+2"
|
||||
},
|
||||
"file_selector_linux": {
|
||||
"dependency": "transitive",
|
||||
@@ -554,11 +554,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "file_selector_macos",
|
||||
"sha256": "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711",
|
||||
"sha256": "19124ff4a3d8864fdc62072b6a2ef6c222d55a3404fe14893a3c02744907b60c",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.9.4+3"
|
||||
"version": "0.9.4+4"
|
||||
},
|
||||
"file_selector_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -672,11 +672,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "flutter_plugin_android_lifecycle",
|
||||
"sha256": "f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e",
|
||||
"sha256": "6382ce712ff69b0f719640ce957559dde459e55ecd433c767e06d139ddf16cab",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.0.28"
|
||||
"version": "2.0.29"
|
||||
},
|
||||
"flutter_secure_storage": {
|
||||
"dependency": "direct main",
|
||||
@@ -800,11 +800,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "get_it",
|
||||
"sha256": "e87cd1d108e472a0580348a543a0c49ed3d70c8a5c809c6d418583e595d0a389",
|
||||
"sha256": "a4292e7cf67193f8e7c1258203104eb2a51ec8b3a04baa14695f4064c144297b",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "8.1.0"
|
||||
"version": "8.2.0"
|
||||
},
|
||||
"glob": {
|
||||
"dependency": "transitive",
|
||||
@@ -820,11 +820,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "go_router",
|
||||
"sha256": "c489908a54ce2131f1d1b7cc631af9c1a06fac5ca7c449e959192089f9489431",
|
||||
"sha256": "8b1f37dfaf6e958c6b872322db06f946509433bec3de753c3491a42ae9ec2b48",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "16.0.0"
|
||||
"version": "16.1.0"
|
||||
},
|
||||
"graphs": {
|
||||
"dependency": "transitive",
|
||||
@@ -840,11 +840,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "http",
|
||||
"sha256": "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b",
|
||||
"sha256": "bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.4.0"
|
||||
"version": "1.5.0"
|
||||
},
|
||||
"http_multi_server": {
|
||||
"dependency": "transitive",
|
||||
@@ -1016,8 +1016,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/lw_file_system",
|
||||
"ref": "ad67d9835e5fc673c9e7d1bcaad10c89423d4b61",
|
||||
"resolved-ref": "ad67d9835e5fc673c9e7d1bcaad10c89423d4b61",
|
||||
"ref": "3eb0c455dd56cfcde08a7c7efaba5adbc38dd976",
|
||||
"resolved-ref": "3eb0c455dd56cfcde08a7c7efaba5adbc38dd976",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1110,11 +1110,11 @@
|
||||
"dependency": "direct dev",
|
||||
"description": {
|
||||
"name": "msix",
|
||||
"sha256": "bbb9b3ff4a9f8e7e7507b2a22dc0517fd1fe3db44e72de7ab052cb6b362406ee",
|
||||
"sha256": "f88033fcb9e0dd8de5b18897cbebbd28ea30596810f4a7c86b12b0c03ace87e5",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.16.10"
|
||||
"version": "3.16.12"
|
||||
},
|
||||
"nested": {
|
||||
"dependency": "transitive",
|
||||
@@ -1213,21 +1213,21 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "package_info_plus",
|
||||
"sha256": "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191",
|
||||
"sha256": "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "8.3.0"
|
||||
"version": "8.3.1"
|
||||
},
|
||||
"package_info_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "package_info_plus_platform_interface",
|
||||
"sha256": "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c",
|
||||
"sha256": "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.2.0"
|
||||
"version": "3.2.1"
|
||||
},
|
||||
"path": {
|
||||
"dependency": "transitive",
|
||||
@@ -1273,11 +1273,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "path_provider_foundation",
|
||||
"sha256": "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942",
|
||||
"sha256": "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.4.1"
|
||||
"version": "2.4.2"
|
||||
},
|
||||
"path_provider_linux": {
|
||||
"dependency": "transitive",
|
||||
@@ -1575,21 +1575,21 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "share_plus",
|
||||
"sha256": "b2961506569e28948d75ec346c28775bb111986bb69dc6a20754a457e3d97fa0",
|
||||
"sha256": "d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "11.0.0"
|
||||
"version": "11.1.0"
|
||||
},
|
||||
"share_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "share_plus_platform_interface",
|
||||
"sha256": "1032d392bc5d2095a77447a805aa3f804d2ae6a4d5eef5e6ebb3bd94c1bc19ef",
|
||||
"sha256": "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.0.0"
|
||||
"version": "6.1.0"
|
||||
},
|
||||
"shared_preferences": {
|
||||
"dependency": "direct main",
|
||||
@@ -1605,11 +1605,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "shared_preferences_android",
|
||||
"sha256": "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac",
|
||||
"sha256": "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.4.10"
|
||||
"version": "2.4.11"
|
||||
},
|
||||
"shared_preferences_foundation": {
|
||||
"dependency": "transitive",
|
||||
@@ -1691,21 +1691,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "source_gen",
|
||||
"sha256": "fc787b1f89ceac9580c3616f899c9a447413cbdac1df071302127764c023a134",
|
||||
"sha256": "7b19d6ba131c6eb98bfcbf8d56c1a7002eba438af2e7ae6f8398b2b0f4f381e3",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.0.0"
|
||||
"version": "3.1.0"
|
||||
},
|
||||
"source_helper": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "source_helper",
|
||||
"sha256": "4f81479fe5194a622cdd1713fe1ecb683a6e6c85cd8cec8e2e35ee5ab3fdf2a1",
|
||||
"sha256": "a447acb083d3a5ef17f983dd36201aeea33fedadb3228fa831f2f0c92f0f3aca",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.3.6"
|
||||
"version": "1.3.7"
|
||||
},
|
||||
"source_span": {
|
||||
"dependency": "transitive",
|
||||
@@ -1882,21 +1882,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "url_launcher_android",
|
||||
"sha256": "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79",
|
||||
"sha256": "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.3.16"
|
||||
"version": "6.3.17"
|
||||
},
|
||||
"url_launcher_ios": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "url_launcher_ios",
|
||||
"sha256": "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb",
|
||||
"sha256": "d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.3.3"
|
||||
"version": "6.3.4"
|
||||
},
|
||||
"url_launcher_linux": {
|
||||
"dependency": "transitive",
|
||||
@@ -1912,11 +1912,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "url_launcher_macos",
|
||||
"sha256": "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2",
|
||||
"sha256": "c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.2.2"
|
||||
"version": "3.2.3"
|
||||
},
|
||||
"url_launcher_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -1982,11 +1982,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "vector_graphics_compiler",
|
||||
"sha256": "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331",
|
||||
"sha256": "ca81fdfaf62a5ab45d7296614aea108d2c7d0efca8393e96174bf4d51e6725b0",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.1.17"
|
||||
"version": "1.1.18"
|
||||
},
|
||||
"vector_math": {
|
||||
"dependency": "transitive",
|
||||
|
||||
@@ -65,10 +65,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(lib.cmakeBool "CATALYST_BUILD_TESTING" finalAttrs.finalPackage.doCheck)
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString pythonSupport ''
|
||||
python -m compileall -s $out $out/${python3Packages.python.sitePackages}
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
|
||||
@@ -1,58 +1,28 @@
|
||||
{
|
||||
lib,
|
||||
fetchPypi,
|
||||
fetchpatch,
|
||||
python3,
|
||||
python3Packages,
|
||||
}:
|
||||
|
||||
let
|
||||
python = python3.override {
|
||||
self = python;
|
||||
packageOverrides = self: super: {
|
||||
pychromecast = super.pychromecast.overridePythonAttrs (_: rec {
|
||||
version = "13.1.0";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "PyChromecast";
|
||||
inherit version;
|
||||
hash = "sha256-COYai1S9IRnTyasewBNtPYVjqpfgo7V4QViLm+YMJnY=";
|
||||
};
|
||||
|
||||
postPatch = "";
|
||||
});
|
||||
};
|
||||
};
|
||||
in
|
||||
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "catt";
|
||||
version = "0.12.11";
|
||||
format = "pyproject";
|
||||
version = "0.13.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-0bqYYfWwF7yYoAbjZPhi/f4CLcL89imWGYaMi5Bwhtc=";
|
||||
hash = "sha256-hlCB06l4nzafvcnBNCXWiJsJNmP8n731bQgq5xvUZvM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# set explicit build-system
|
||||
url = "https://github.com/skorokithakis/catt/commit/08e7870a239e85badd30982556adc2aa8a8e4fc1.patch";
|
||||
hash = "sha256-QH5uN3zQNVPP6Th2LHdDBF53WxwMhoyhhQUAZOeHh4k=";
|
||||
})
|
||||
build-system = [
|
||||
python3Packages.poetry-core
|
||||
];
|
||||
|
||||
nativeBuildInputs = with python.pkgs; [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python.pkgs; [
|
||||
click
|
||||
ifaddr
|
||||
pychromecast
|
||||
protobuf
|
||||
requests
|
||||
yt-dlp
|
||||
dependencies = [
|
||||
python3Packages.click
|
||||
python3Packages.ifaddr
|
||||
python3Packages.pychromecast
|
||||
python3Packages.requests
|
||||
python3Packages.yt-dlp
|
||||
];
|
||||
|
||||
doCheck = false; # attempts to access various URLs
|
||||
@@ -61,11 +31,12 @@ python.pkgs.buildPythonApplication rec {
|
||||
"catt"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool to send media from online sources to Chromecast devices";
|
||||
meta = {
|
||||
description = "Send media from online sources to Chromecast devices";
|
||||
homepage = "https://github.com/skorokithakis/catt";
|
||||
license = licenses.bsd2;
|
||||
maintainers = [ ];
|
||||
changelog = "https://github.com/skorokithakis/catt/releases/tag/v${version}";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = [ lib.maintainers.RossSmyth ];
|
||||
mainProgram = "catt";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ python3Packages.buildPythonApplication rec {
|
||||
pythonRelaxDeps = [
|
||||
"numpy"
|
||||
"pyqt6"
|
||||
"pyzmq"
|
||||
"vispy"
|
||||
];
|
||||
|
||||
|
||||
@@ -38,6 +38,12 @@ stdenv.mkDerivation {
|
||||
]
|
||||
++ lib.optional enableAvifSupport libavif;
|
||||
|
||||
preConfigure = ''
|
||||
if [[ -f "$src/GIT_HASH" ]]; then
|
||||
export GIT_HASH="$(cat $src/GIT_HASH)"
|
||||
fi
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "BUILD_WITH_QT6" true)
|
||||
(lib.cmakeBool "USE_SYSTEM_QTKEYCHAIN" true)
|
||||
|
||||
@@ -18,8 +18,13 @@
|
||||
owner = "Chatterino";
|
||||
repo = "chatterino2";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-W2sqlqL6aa68aQ3nE161G64x7K7p8iByX03g1dseQbs=";
|
||||
hash = "sha256-XV8WhdjdnVrOg0PVyIhGfxC4sJ62oH03KchvGr1c2w8=";
|
||||
fetchSubmodules = true;
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
git -C $out rev-parse --short HEAD > $out/GIT_HASH
|
||||
find "$out" -name .git -print0 | xargs -0 rm -rf
|
||||
'';
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -17,8 +17,13 @@
|
||||
owner = "SevenTV";
|
||||
repo = "chatterino7";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KrAr3DcQDjb+LP+vIf0qLSSgII0m5rNwhncLNHlLaC8=";
|
||||
hash = "sha256-tft0+vcE+LGPrlv4ZBgzmeF66Jf66iTjUr0pdF1vx24=";
|
||||
fetchSubmodules = true;
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
git -C $out rev-parse --short HEAD > $out/GIT_HASH
|
||||
find "$out" -name .git -print0 | xargs -0 rm -rf
|
||||
'';
|
||||
};
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication {
|
||||
pname = "chirp";
|
||||
version = "0.4.0-unstable-2025-08-19";
|
||||
version = "0.4.0-unstable-2025-08-31";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kk7ds";
|
||||
repo = "chirp";
|
||||
rev = "0705a4c61e11f952ef1bcdb282f22a74dc72782f";
|
||||
hash = "sha256-gUiSuulthiEC94SuXfGzuDDrf2dYTsJLsAjtjAsTIPY=";
|
||||
rev = "906d7ec8b2e09f53710e1ef9616d58f8270841e2";
|
||||
hash = "sha256-lsB8m9qn+pJp8tBekOo2DnQQrjF5P+NizdWaj0HaYPU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cloudmonkey";
|
||||
version = "6.4.0";
|
||||
version = "6.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apache";
|
||||
repo = "cloudstack-cloudmonkey";
|
||||
rev = version;
|
||||
sha256 = "sha256-mkEGOZw7GDIFnYUpgvCetA4dU9R1m4q6MOUDG0TWN64=";
|
||||
sha256 = "sha256-CdqKaKUVqeAujrWh7u0npZ6ON/nmL/8uIBIljAPPUv0=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
sphinx,
|
||||
sqlite,
|
||||
systemd,
|
||||
testers,
|
||||
versionCheckHook,
|
||||
toml11,
|
||||
zchunk,
|
||||
nix-update-script,
|
||||
@@ -115,10 +115,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
dontFixCmake = true;
|
||||
|
||||
passthru = {
|
||||
tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
preVersionCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Next-generation RPM package management system";
|
||||
|
||||
@@ -6,21 +6,29 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "dnsrecon";
|
||||
version = "1.4.0";
|
||||
version = "1.5.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "darkoperator";
|
||||
repo = "dnsrecon";
|
||||
tag = version;
|
||||
hash = "sha256-uBb19JNlbevwqFSNzLzUmmDw063Hl7RPbu453tYZ3Gc=";
|
||||
hash = "sha256-RX7A/vF19wTcvm+kP4ynarzGY+pUIj84zQJIM3tO/2M=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools ];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
dnspython
|
||||
loguru
|
||||
httpx
|
||||
fastapi
|
||||
uvicorn
|
||||
slowapi
|
||||
stamina
|
||||
ujson
|
||||
lxml
|
||||
netaddr
|
||||
requests
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
libsForQt5,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
pname = "dsremote";
|
||||
version = "0-unstable-2025-07-07";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "Teuniz";
|
||||
repo = "DSRemote";
|
||||
rev = "b290debcfecd4fecf2069fb958bd43fe9e5ce5e1";
|
||||
hash = "sha256-7a13T8MwIFDhrXe7xqB84D6MwfTYs1gJj6VWs4JbzEM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
libsForQt5.qmake
|
||||
libsForQt5.qt5.wrapQtAppsHook
|
||||
libsForQt5.qt5.qtbase
|
||||
];
|
||||
|
||||
hardeningDisable = [ "fortify" ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace dsremote.pro \
|
||||
--replace-fail "/usr/" "$out/" \
|
||||
--replace-fail "/etc/" "$out/etc/"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Rigol DS1000Z remote control and waveform viewer";
|
||||
homepage = "https://www.teuniz.net/DSRemote";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ mksafavi ];
|
||||
mainProgram = "dsremote";
|
||||
};
|
||||
}
|
||||
@@ -26,8 +26,13 @@ stdenv.mkDerivation {
|
||||
substituteInPlace test.ecm --replace /bin/rm rm
|
||||
'';
|
||||
|
||||
# See https://trac.sagemath.org/ticket/19233
|
||||
configureFlags = lib.optional stdenv.hostPlatform.isDarwin "--disable-asm-redc";
|
||||
configureFlags = [
|
||||
# Otherwise, undesired flags from gmp (such as -std=c99) are leaking
|
||||
"-enable-gmp-cflags=false"
|
||||
]
|
||||
++
|
||||
# See https://trac.sagemath.org/ticket/19233
|
||||
lib.optional stdenv.hostPlatform.isDarwin "--disable-asm-redc";
|
||||
|
||||
buildInputs = [
|
||||
m4
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
sqlcipher,
|
||||
pkg-config,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "enpass-cli";
|
||||
version = "1.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "HazCod";
|
||||
repo = "enpass-cli";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-13AhK0qDDANEgicggy1Sdlmo5b0Vlf2sEDzJerhUvG8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-7K7gdMjJ4cfv6xmuI73U+oW9JlmdN6wGg8vMcD/YThQ=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
sqlcipher
|
||||
];
|
||||
|
||||
env.CGO_ENABLED = "1";
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/enpasscli $out/bin/enpass-cli
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Command line client for Enpass password manager";
|
||||
mainProgram = "enpass-cli";
|
||||
homepage = "https://github.com/HazCod/enpass-cli";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ deej-io ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -1,12 +1,26 @@
|
||||
load("@bazel_tools//tools/sh:sh_toolchain.bzl", "sh_toolchain")
|
||||
load("@rules_rust//rust:toolchain.bzl", "rust_toolchain")
|
||||
load("@rules_rust//rust:defs.bzl", "rust_stdlib_filegroup")
|
||||
|
||||
toolchains = {
|
||||
"x86_64": "x86_64-unknown-linux-gnu",
|
||||
"aarch64": "aarch64-unknown-linux-gnu",
|
||||
}
|
||||
|
||||
exports_files(["cargo", "rustdoc", "ruststd", "rustc"])
|
||||
exports_files(["cargo", "rustdoc", "rustc"])
|
||||
|
||||
[
|
||||
rust_stdlib_filegroup(
|
||||
name = "rust_nix_" + k + "_stdlib",
|
||||
srcs = glob(
|
||||
[
|
||||
"rustcroot/lib/rustlib/" + v + "/lib/**",
|
||||
],
|
||||
allow_empty=True,
|
||||
),
|
||||
)
|
||||
for k, v in toolchains.items()
|
||||
]
|
||||
|
||||
[
|
||||
rust_toolchain(
|
||||
@@ -16,7 +30,7 @@ exports_files(["cargo", "rustdoc", "ruststd", "rustc"])
|
||||
exec_triple = v,
|
||||
cargo = ":cargo",
|
||||
rust_doc = ":rustdoc",
|
||||
rust_std = ":ruststd",
|
||||
rust_std = ":rust_nix_" + k + "_stdlib",
|
||||
rustc = ":rustc",
|
||||
stdlib_linkflags = ["-ldl", "-lpthread"],
|
||||
staticlib_ext = ".a",
|
||||
|
||||
@@ -23,9 +23,14 @@
|
||||
gnutar,
|
||||
gnugrep,
|
||||
envoy,
|
||||
git,
|
||||
|
||||
# v8 (upstream default), wavm, wamr, wasmtime, disabled
|
||||
wasmRuntime ? "wamr",
|
||||
wasmRuntime ? "wasmtime",
|
||||
|
||||
# Allows overriding the deps hash used for building - you will likely need to
|
||||
# set this if you have changed the 'wasmRuntime' setting.
|
||||
depsHash ? null,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -40,12 +45,15 @@ let
|
||||
};
|
||||
|
||||
# these need to be updated for any changes to fetchAttrs
|
||||
depsHash =
|
||||
{
|
||||
x86_64-linux = "sha256-E6yUSd00ngmjaMds+9UVZLtcYhzeS8F9eSIkC1mZSps=";
|
||||
aarch64-linux = "sha256-ivboOrV/uORKVHRL3685aopcElGvzsxgVcUmYsBwzXY=";
|
||||
}
|
||||
.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
|
||||
depsHash' =
|
||||
if depsHash != null then
|
||||
depsHash
|
||||
else
|
||||
{
|
||||
x86_64-linux = "sha256-t4Xv4UGYW5YU0kmv+1rdf2JvM1BYQyNWdtpz6Cdmxm4=";
|
||||
aarch64-linux = "sha256-aIBnNGzc0hTdlTgRyJ7eLnWvHqZ5ywhqOM+mHfH3/18=";
|
||||
}
|
||||
.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
|
||||
|
||||
python3 = python312;
|
||||
|
||||
@@ -94,7 +102,7 @@ buildBazelPackage rec {
|
||||
ln -sf "${cargo}/bin/cargo" bazel/nix/cargo
|
||||
ln -sf "${rustc}/bin/rustc" bazel/nix/rustc
|
||||
ln -sf "${rustc}/bin/rustdoc" bazel/nix/rustdoc
|
||||
ln -sf "${rustPlatform.rustLibSrc}" bazel/nix/ruststd
|
||||
ln -sf "${rustc.unwrapped}" bazel/nix/rustcroot
|
||||
substituteInPlace bazel/dependency_imports.bzl \
|
||||
--replace-fail 'crate_universe_dependencies()' 'crate_universe_dependencies(rust_toolchain_cargo_template="@@//bazel/nix:cargo", rust_toolchain_rustc_template="@@//bazel/nix:rustc")' \
|
||||
--replace-fail 'crates_repository(' 'crates_repository(rust_toolchain_cargo_template="@@//bazel/nix:cargo", rust_toolchain_rustc_template="@@//bazel/nix:rustc",'
|
||||
@@ -120,12 +128,13 @@ buildBazelPackage rec {
|
||||
ninja
|
||||
patchelf
|
||||
cacert
|
||||
git
|
||||
];
|
||||
|
||||
buildInputs = [ linuxHeaders ];
|
||||
|
||||
fetchAttrs = {
|
||||
sha256 = depsHash;
|
||||
sha256 = depsHash';
|
||||
env.CARGO_BAZEL_REPIN = true;
|
||||
dontUseCmakeConfigure = true;
|
||||
dontUseGnConfigure = true;
|
||||
@@ -239,6 +248,7 @@ buildBazelPackage rec {
|
||||
"--linkopt=-Wl,-z,noexecstack"
|
||||
"--config=gcc"
|
||||
"--verbose_failures"
|
||||
"--incompatible_enable_cc_toolchain_resolution=true"
|
||||
|
||||
# Force use of system Java.
|
||||
"--extra_toolchains=@local_jdk//:all"
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fzf-git-sh";
|
||||
version = "0-unstable-2025-07-10";
|
||||
version = "0-unstable-2025-08-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "junegunn";
|
||||
repo = "fzf-git.sh";
|
||||
rev = "79e10ccaa8b3bddff95cd1dcb44b0c30a39da71f";
|
||||
hash = "sha256-5+rV3l1Jdy28IxGLMdmj0heLxmmpRwwobyg9sjdBRco=";
|
||||
rev = "2eef6bf288bf19a6402784a63336f06f87d9a584";
|
||||
hash = "sha256-r3b05erlNGw3GQq/nMPqTHRroGEFmhufpiXqaIhQGTA=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
|
||||
coreutils,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
python3Packages,
|
||||
stdenv,
|
||||
|
||||
# nativeCheckInputs
|
||||
debian-devscripts,
|
||||
@@ -16,14 +17,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "git-buildpackage";
|
||||
version = "0.9.37";
|
||||
version = "0.9.38";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "agx";
|
||||
repo = "git-buildpackage";
|
||||
tag = "debian/${version}";
|
||||
hash = "sha256-0gfryd1GrVfL11u/IrtLSJAABRsTpFfPOGxWfVdYtgE=";
|
||||
hash = "sha256-dZ/uJLcDPkpwIz+Y6WInJ4XlSJ5zzDY65li/xghsJTQ=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -39,6 +40,8 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
python-dateutil
|
||||
pyyaml
|
||||
rpm
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
@@ -56,8 +59,6 @@ python3Packages.buildPythonApplication rec {
|
||||
coverage
|
||||
pytest-cov
|
||||
pytestCheckHook
|
||||
pyyaml
|
||||
rpm
|
||||
]);
|
||||
|
||||
disabledTests = [
|
||||
@@ -77,6 +78,13 @@ python3Packages.buildPythonApplication rec {
|
||||
"tests.doctests.test_GitRepository.test_create_noperm"
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"--version-regex"
|
||||
"debian/(.*)"
|
||||
];
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Suite to help with maintaining Debian packages in Git repositories";
|
||||
homepage = "https://honk.sigxcpu.org/piki/projects/git-buildpackage/";
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildGoModule,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -9,13 +10,13 @@ let
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "git-get";
|
||||
version = "0.5.0";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grdl";
|
||||
repo = "git-get";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-v98Ff7io7j1LLzciHNWJBU3LcdSr+lhwYrvON7QjyCI=";
|
||||
hash = "sha256-xnmFqNIabiTyf9ZPKlm5S42rfFUXnTp/jLDDY51eoMw=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
@@ -27,7 +28,7 @@ buildGoModule rec {
|
||||
'';
|
||||
};
|
||||
|
||||
vendorHash = "sha256-C+XOjMDMFneKJNeBh0KWPx8yM7XiiIpTlc2daSfhZhY=";
|
||||
vendorHash = "sha256-8DLS1pSyh1OgnULMvAppl/+D2yfyi/dcZs08S1IMzaE=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
@@ -44,14 +45,17 @@ buildGoModule rec {
|
||||
];
|
||||
|
||||
preInstall = ''
|
||||
mv "$GOPATH/bin/get" "$GOPATH/bin/git-get"
|
||||
mv "$GOPATH/bin/list" "$GOPATH/bin/git-list"
|
||||
mv "$GOPATH/bin/cmd" "$GOPATH/bin/git-get"
|
||||
ln -s ./git-get "$GOPATH/bin/git-list"
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Better way to clone, organize and manage multiple git repositories";
|
||||
homepage = "https://github.com/grdl/git-get";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ sumnerevans ];
|
||||
mainProgram = "git-get";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
{
|
||||
lib,
|
||||
buildGo124Module,
|
||||
buildGo125Module,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
nixosTests,
|
||||
scdoc,
|
||||
}:
|
||||
|
||||
buildGo124Module rec {
|
||||
buildGo125Module rec {
|
||||
pname = "go-camo";
|
||||
version = "2.6.4";
|
||||
version = "2.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cactus";
|
||||
repo = "go-camo";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-BdKIfDDN6GXc53SFDkJ8Dui5rrm27blA+EEOS/oAanE=";
|
||||
hash = "sha256-+EHJIohHSWg12Tmn6hu1XUSVRyYWu3aFI7MF7+PnfFg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-0DkIbD+9gIbARqvmudRavwcWVLADGKwEYMMX6a5Qoq4=";
|
||||
vendorHash = "sha256-rKdBAu0tNsxw7I66qjZhtrA2hs1qpBtOSuzq34paziw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -16,17 +16,18 @@
|
||||
|
||||
let
|
||||
pname = "gui-for-clash";
|
||||
version = "1.9.8";
|
||||
version = "1.9.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GUI-for-Cores";
|
||||
repo = "GUI.for.Clash";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-YwolOIN4pQ9ykXruKAetUDMFkNnQppkzioDNlrPefL8=";
|
||||
hash = "sha256-odASuy0zaXf6vvd5CRVtuuVIX1EgEO7GsMgXWUR+fxk=";
|
||||
};
|
||||
|
||||
metaCommon = {
|
||||
homepage = "https://github.com/GUI-for-Cores/GUI.for.Clash";
|
||||
hydraPlatforms = [ ]; # https://gui-for-cores.github.io/guide/#note
|
||||
license = with lib.licenses; [ gpl3Plus ];
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
@@ -49,7 +50,7 @@ let
|
||||
sourceRoot
|
||||
;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-iVD/9uTK3cUzKE20pJk67uk53UCtfj/YCpgwgxmmg8k=";
|
||||
hash = "sha256-AuBUneWOR9oCuj811iCB3l5dlpeKhxt6KrF7KDs27a0=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
@@ -85,7 +86,7 @@ buildGoModule {
|
||||
--subst-var out
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-7pFjfUFkpXyYEVjiXbfFUC7FQSlZubKJJ5MI8WY0IVA=";
|
||||
vendorHash = "sha256-UArCB5U2bF5HXFDU1oCfm+SaURe6e9gyCx+UjtWI/ug=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
@@ -133,6 +134,8 @@ buildGoModule {
|
||||
inherit frontend;
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"--version-regex"
|
||||
"^v([0-9.]+)$"
|
||||
"--subpackage"
|
||||
"frontend"
|
||||
];
|
||||
|
||||
@@ -16,17 +16,18 @@
|
||||
|
||||
let
|
||||
pname = "gui-for-singbox";
|
||||
version = "1.9.8";
|
||||
version = "1.9.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GUI-for-Cores";
|
||||
repo = "GUI.for.SingBox";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-9Vai/C9cJgqM3n+FzFPXismR5vF6eQNJHdI7o47zinI=";
|
||||
hash = "sha256-6Y0eEJmPBp+J1r6LCxYEM6i3fdCYSo4LrimpqwOCVT8=";
|
||||
};
|
||||
|
||||
metaCommon = {
|
||||
homepage = "https://github.com/GUI-for-Cores/GUI.for.SingBox";
|
||||
hydraPlatforms = [ ]; # https://gui-for-cores.github.io/guide/#note
|
||||
license = with lib.licenses; [ gpl3Plus ];
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
@@ -49,7 +50,7 @@ let
|
||||
sourceRoot
|
||||
;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-iVD/9uTK3cUzKE20pJk67uk53UCtfj/YCpgwgxmmg8k=";
|
||||
hash = "sha256-kSIPkXD0Wxe8TaKDd4DUAL7pkQeU8xyLY9K3lFSAODI=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
@@ -86,7 +87,7 @@ buildGoModule {
|
||||
--subst-var out
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-7pFjfUFkpXyYEVjiXbfFUC7FQSlZubKJJ5MI8WY0IVA=";
|
||||
vendorHash = "sha256-UArCB5U2bF5HXFDU1oCfm+SaURe6e9gyCx+UjtWI/ug=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
@@ -134,6 +135,8 @@ buildGoModule {
|
||||
inherit frontend;
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"--version-regex"
|
||||
"^v([0-9.]+)$"
|
||||
"--subpackage"
|
||||
"frontend"
|
||||
];
|
||||
|
||||
@@ -8,22 +8,22 @@
|
||||
|
||||
let
|
||||
pname = "hoppscotch";
|
||||
version = "25.7.1-0";
|
||||
version = "25.8.0-0";
|
||||
|
||||
src =
|
||||
fetchurl
|
||||
{
|
||||
aarch64-darwin = {
|
||||
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_aarch64.dmg";
|
||||
hash = "sha256-Qr7xv3XyneA9RzvO7MqtblBF+oO4auYi5DX/F0n/I0c=";
|
||||
hash = "sha256-MaQiJOnLvrmv5D97emF7P7gOn3WiAu0Uz7eX8q9G7co=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_x64.dmg";
|
||||
hash = "sha256-/5++4ifR2xcCmU7jg+qm4zsi8swSXTbU7Hdz80p+UCM=";
|
||||
hash = "sha256-qHAxSwEL2BvDB5ynCIYrP0+uNn+MRIL3IvZxC94ktgA=";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_linux_x64.AppImage";
|
||||
hash = "sha256-EToScp/zKv4KAuVPJmhKmBtx3WeM+CH38jXinhnT0tE=";
|
||||
hash = "sha256-0bENzqKjPPEoCb+4QEfdbHXKfrvaC72mFVdPb0G8+Uk=";
|
||||
};
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
||||
@@ -1,26 +1,52 @@
|
||||
{
|
||||
lib,
|
||||
immich,
|
||||
buildNpmPackage,
|
||||
jq,
|
||||
nodejs,
|
||||
makeWrapper,
|
||||
stdenv,
|
||||
}:
|
||||
buildNpmPackage {
|
||||
|
||||
let
|
||||
inherit (immich) pnpm;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "immich-cli";
|
||||
src = "${immich.src}/cli";
|
||||
inherit (immich.sources.components.cli) version npmDepsHash;
|
||||
version = "2.2.86";
|
||||
inherit (immich) src pnpmDeps;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
postPatch = ''
|
||||
local -r cli_version="$(jq -r .version cli/package.json)"
|
||||
test "$cli_version" = ${version} \
|
||||
|| (echo "error: update immich-cli version to $cli_version" && exit 1)
|
||||
'';
|
||||
|
||||
inherit (immich.web) preBuild;
|
||||
nativeBuildInputs = [
|
||||
jq
|
||||
makeWrapper
|
||||
nodejs
|
||||
pnpm
|
||||
pnpm.configHook
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
pnpm --filter @immich/sdk build
|
||||
pnpm --filter @immich/cli build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
mv package.json package-lock.json node_modules dist $out/
|
||||
local -r packageOut="$out/lib/node_modules/@immich/cli"
|
||||
|
||||
makeWrapper ${lib.getExe nodejs} $out/bin/immich --add-flags $out/dist/index.js
|
||||
pnpm --filter @immich/cli deploy --prod --no-optional "$packageOut"
|
||||
|
||||
makeWrapper '${lib.getExe nodejs}' "$out/bin/immich" \
|
||||
--add-flags "$packageOut/dist/index.js"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
pnpm_10,
|
||||
python3,
|
||||
nodejs,
|
||||
node-gyp,
|
||||
@@ -10,7 +10,6 @@
|
||||
nixosTests,
|
||||
immich-machine-learning,
|
||||
# build-time deps
|
||||
glib,
|
||||
pkg-config,
|
||||
makeWrapper,
|
||||
curl,
|
||||
@@ -32,12 +31,10 @@
|
||||
pixman,
|
||||
vips,
|
||||
buildPackages,
|
||||
sourcesJSON ? ./sources.json,
|
||||
}:
|
||||
let
|
||||
buildNpmPackage' = buildNpmPackage.override { inherit nodejs; };
|
||||
sources = lib.importJSON sourcesJSON;
|
||||
inherit (sources) version;
|
||||
pnpm = pnpm_10;
|
||||
version = "1.140.1";
|
||||
|
||||
esbuild' = buildPackages.esbuild.override {
|
||||
buildGoModule =
|
||||
@@ -77,14 +74,14 @@ let
|
||||
# The geodata website is not versioned, so we use the internet archive
|
||||
geodata =
|
||||
let
|
||||
inherit (sources.components.geonames) timestamp;
|
||||
timestamp = "20250818205425";
|
||||
date =
|
||||
"${lib.substring 0 4 timestamp}-${lib.substring 4 2 timestamp}-${lib.substring 6 2 timestamp}T"
|
||||
+ "${lib.substring 8 2 timestamp}:${lib.substring 10 2 timestamp}:${lib.substring 12 2 timestamp}Z";
|
||||
in
|
||||
runCommand "immich-geodata"
|
||||
{
|
||||
outputHash = sources.components.geonames.hash;
|
||||
outputHash = "sha256-zZHAomW1C4qReFbhme5dkVnTiLw+jmhZhzuYvoBVBCY=";
|
||||
outputHashMode = "recursive";
|
||||
nativeBuildInputs = [
|
||||
cacert
|
||||
@@ -111,69 +108,39 @@ let
|
||||
owner = "immich-app";
|
||||
repo = "immich";
|
||||
tag = "v${version}";
|
||||
inherit (sources) hash;
|
||||
hash = "sha256-Bo9wFP0u39aoaNjc8K4Im3HRGZR/TLrDB7+UDAhV1xA=";
|
||||
};
|
||||
|
||||
openapi = buildNpmPackage' {
|
||||
pname = "immich-openapi-sdk";
|
||||
inherit version;
|
||||
src = "${src}/open-api/typescript-sdk";
|
||||
inherit (sources.components."open-api/typescript-sdk") npmDepsHash;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
npm config delete cache
|
||||
npm prune --omit=dev --omit=optional
|
||||
|
||||
mkdir -p $out
|
||||
mv package.json package-lock.json node_modules build $out/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
web = buildNpmPackage' {
|
||||
pname = "immich-web";
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
pname = "immich";
|
||||
inherit version src;
|
||||
sourceRoot = "${src.name}/web";
|
||||
inherit (sources.components.web) npmDepsHash;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-DIcUKuU+ToRh/kSLcs4ZEHy7zhFir2nlbRx+/kMagrA=";
|
||||
};
|
||||
|
||||
# prePatch is needed because npmConfigHook is a postPatch
|
||||
prePatch = ''
|
||||
# some part of the build wants to use un-prefixed binaries. let them.
|
||||
mkdir -p $TMP/bin
|
||||
ln -s "$(type -p ${stdenv.cc.targetPrefix}pkg-config)" $TMP/bin/pkg-config || true
|
||||
ln -s "$(type -p ${stdenv.cc.targetPrefix}c++filt)" $TMP/bin/c++filt || true
|
||||
ln -s "$(type -p ${stdenv.cc.targetPrefix}readelf)" $TMP/bin/readelf || true
|
||||
export PATH="$TMP/bin:$PATH"
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
rm node_modules/@immich/sdk
|
||||
ln -s ${openapi} node_modules/@immich/sdk
|
||||
'';
|
||||
|
||||
env.npm_config_build_from_source = "true";
|
||||
web = stdenv.mkDerivation {
|
||||
pname = "immich-web";
|
||||
inherit version src pnpmDeps;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
nodejs
|
||||
pnpm
|
||||
pnpm.configHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
# https://github.com/Automattic/node-canvas/blob/master/Readme.md#compiling
|
||||
cairo
|
||||
giflib
|
||||
libjpeg
|
||||
libpng
|
||||
librsvg
|
||||
pango
|
||||
pixman
|
||||
];
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
pnpm --filter @immich/sdk build
|
||||
pnpm --filter immich-web build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cd web
|
||||
cp -r build $out
|
||||
|
||||
runHook postInstall
|
||||
@@ -184,32 +151,24 @@ let
|
||||
mesonFlags = prev.mesonFlags ++ [ "-Dtiff=disabled" ];
|
||||
});
|
||||
in
|
||||
buildNpmPackage' {
|
||||
stdenv.mkDerivation {
|
||||
pname = "immich";
|
||||
inherit version;
|
||||
src = "${src}/server";
|
||||
inherit (sources.components.server) npmDepsHash;
|
||||
inherit version src pnpmDeps;
|
||||
|
||||
# prePatch is needed because npmConfigHook is a postPatch
|
||||
prePatch = ''
|
||||
postPatch = ''
|
||||
# pg_dumpall fails without database root access
|
||||
# see https://github.com/immich-app/immich/issues/13971
|
||||
substituteInPlace src/services/backup.service.ts \
|
||||
substituteInPlace server/src/services/backup.service.ts \
|
||||
--replace-fail '`/usr/lib/postgresql/''${databaseMajorVersion}/bin/pg_dumpall`' '`pg_dump`'
|
||||
|
||||
# some part of the build wants to use un-prefixed binaries. let them.
|
||||
mkdir -p $TMP/bin
|
||||
ln -s "$(type -p ${stdenv.cc.targetPrefix}pkg-config)" $TMP/bin/pkg-config || true
|
||||
ln -s "$(type -p ${stdenv.cc.targetPrefix}c++filt)" $TMP/bin/c++filt || true
|
||||
ln -s "$(type -p ${stdenv.cc.targetPrefix}readelf)" $TMP/bin/readelf || true
|
||||
export PATH="$TMP/bin:$PATH"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
pkg-config
|
||||
pnpm_10
|
||||
pnpm_10.configHook
|
||||
python3
|
||||
makeWrapper
|
||||
glib
|
||||
node-gyp # for building node_modules/sharp from source
|
||||
];
|
||||
|
||||
@@ -230,43 +189,60 @@ buildNpmPackage' {
|
||||
vips'
|
||||
];
|
||||
|
||||
# Required because vips tries to write to the cache dir
|
||||
makeCacheWritable = true;
|
||||
|
||||
env.SHARP_FORCE_GLOBAL_LIBVIPS = 1;
|
||||
env.ESBUILD_BINARY_PATH = lib.getExe esbuild';
|
||||
# fix for node-gyp, see https://github.com/nodejs/node-gyp/issues/1191#issuecomment-301243919
|
||||
env.npm_config_nodedir = nodejs;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
preBuild = ''
|
||||
# If exiftool-vendored.pl isn't found, exiftool is searched for on the PATH
|
||||
rm -r node_modules/exiftool-vendored.*
|
||||
rm node_modules/.pnpm/node_modules/exiftool-vendored.pl
|
||||
|
||||
pnpm --filter immich build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
npm config delete cache
|
||||
npm prune --omit=dev
|
||||
local -r packageOut="$out/lib/node_modules/immich"
|
||||
|
||||
# install node_modules and built files in $out
|
||||
# upstream uses pnpm deploy to build their docker images
|
||||
pnpm --filter immich deploy --prod --no-optional "$packageOut"
|
||||
|
||||
# remove build artifacts that bloat the closure
|
||||
rm -r node_modules/**/{*.target.mk,binding.Makefile,config.gypi,Makefile,Release/.deps}
|
||||
find "$packageOut/node_modules" \( \
|
||||
-name config.gypi \
|
||||
-o -name .deps \
|
||||
-o -name '*Makefile' \
|
||||
-o -name '*.target.mk' \
|
||||
\) -exec rm -r {} +
|
||||
|
||||
mkdir -p $out/build
|
||||
mv package.json package-lock.json node_modules dist resources $out/
|
||||
ln -s ${web} $out/build/www
|
||||
ln -s ${geodata} $out/build/geodata
|
||||
mkdir -p "$packageOut/build"
|
||||
ln -s '${web}' "$packageOut/build/www"
|
||||
ln -s '${geodata}' "$packageOut/build/geodata"
|
||||
|
||||
echo '${builtins.toJSON buildLock}' > $out/build/build-lock.json
|
||||
echo '${builtins.toJSON buildLock}' > "$packageOut/build/build-lock.json"
|
||||
|
||||
makeWrapper ${lib.getExe nodejs} $out/bin/admin-cli --add-flags $out/dist/main --add-flags cli
|
||||
makeWrapper ${lib.getExe nodejs} $out/bin/server --add-flags $out/dist/main --chdir $out \
|
||||
--set IMMICH_BUILD_DATA $out/build --set NODE_ENV production \
|
||||
--suffix PATH : "${
|
||||
makeWrapper '${lib.getExe nodejs}' "$out/bin/admin-cli" \
|
||||
--add-flags "$packageOut/dist/main" \
|
||||
--add-flags cli
|
||||
makeWrapper '${lib.getExe nodejs}' "$out/bin/server" \
|
||||
--add-flags "$packageOut/dist/main" \
|
||||
--chdir "$packageOut" \
|
||||
--set IMMICH_BUILD_DATA "$packageOut/build" \
|
||||
--set NODE_ENV production \
|
||||
--suffix PATH : '${
|
||||
lib.makeBinPath [
|
||||
exiftool
|
||||
jellyfin-ffmpeg
|
||||
perl # exiftool-vendored checks for Perl even if exiftool comes from $PATH
|
||||
]
|
||||
}"
|
||||
}'
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
@@ -280,11 +256,10 @@ buildNpmPackage' {
|
||||
|
||||
inherit
|
||||
src
|
||||
sources
|
||||
web
|
||||
geodata
|
||||
pnpm
|
||||
;
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"version": "1.138.1",
|
||||
"hash": "sha256-oaZN0kF82mS25bDSTXRjYnWG9RAMSbCUhXn9t0am96U=",
|
||||
"components": {
|
||||
"cli": {
|
||||
"npmDepsHash": "sha256-6k83QOdKh+FlVnYvA9j60115oohUMDc2YvGaj/GMukE=",
|
||||
"version": "2.2.79"
|
||||
},
|
||||
"server": {
|
||||
"npmDepsHash": "sha256-4sqWIIGQ8ZW7TvJoNjNNliriuV6Su0askAN6pAq9VFc=",
|
||||
"version": "1.138.1"
|
||||
},
|
||||
"web": {
|
||||
"npmDepsHash": "sha256-+W8cDgy3qe6RDen8SEdHPNADkKb4zZH8C/Am/bdU42c=",
|
||||
"version": "1.138.1"
|
||||
},
|
||||
"open-api/typescript-sdk": {
|
||||
"npmDepsHash": "sha256-GfmFPsnFu7l4EsnPDv4nj5KLkOz8nEJvMT1BE7zIQ3k=",
|
||||
"version": "1.138.1"
|
||||
},
|
||||
"geonames": {
|
||||
"timestamp": "20250818205425",
|
||||
"hash": "sha256-zZHAomW1C4qReFbhme5dkVnTiLw+jmhZhzuYvoBVBCY="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq prefetch-npm-deps nix-prefetch-github coreutils ripgrep
|
||||
|
||||
set -euo pipefail
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
old_version=$(jq -r ".version" sources.json || echo -n "0.0.1")
|
||||
version=$(curl -s "https://api.github.com/repos/immich-app/immich/releases/latest" | jq -r ".tag_name")
|
||||
version="${version#v}"
|
||||
|
||||
echo "Updating to $version"
|
||||
|
||||
if [[ "$old_version" == "$version" ]]; then
|
||||
echo "Already up to date!"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Fetching src"
|
||||
src_hash=$(nix-prefetch-github immich-app immich --rev "v${version}" | jq -r .hash)
|
||||
upstream_src="https://raw.githubusercontent.com/immich-app/immich/v$version"
|
||||
|
||||
sources_tmp="$(mktemp)"
|
||||
cat <<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
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "jql";
|
||||
version = "8.0.7";
|
||||
version = "8.0.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yamafaktory";
|
||||
repo = "jql";
|
||||
rev = "jql-v${version}";
|
||||
hash = "sha256-OBv7uScgFnLhkeQ2dKey+QYUvX4y/iLFjfCUJeqhXBs=";
|
||||
hash = "sha256-VujhFNC0nHFRZ5t/X6ZdEp5xpeMwEr0vPrpN9g/9c1U=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-AAdYjlPpyhxKQ8mXdLBdivMp8G91Ho5ntS73HC8wMfQ=";
|
||||
cargoHash = "sha256-wkVHzFzQU9O2LAUmR6EYiCeFg29TxJVXJ2COJBB8BZw=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "JSON Query Language CLI tool built with Rust";
|
||||
|
||||
@@ -30,7 +30,10 @@ python3.pkgs.buildPythonApplication rec {
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
buildInputs = [ qt6.qtbase ];
|
||||
buildInputs = [
|
||||
qt6.qtbase
|
||||
qt6.qtwayland
|
||||
];
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools ];
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kine";
|
||||
version = "0.13.18";
|
||||
version = "0.13.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "k3s-io";
|
||||
repo = "kine";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-zgazHJtGzEbsgB3Sr9gBuAov2TXqbWNAuoHiIGngjMI=";
|
||||
hash = "sha256-UL1HhN5qWgtzltY4eAU9SlnK80tKUHBORMFHunDCi+Q=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-XJmy61YrtHmQj0rT7+WpF+yPus/fVBy1hCE9aJYS41I=";
|
||||
vendorHash = "sha256-1Dwu1b6y1ibGt7w6Iu3lKWItwVn9H/TQFbTL2z2rVoc=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "kubectl-ai";
|
||||
version = "0.0.22";
|
||||
version = "0.0.23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GoogleCloudPlatform";
|
||||
repo = "kubectl-ai";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-sU8CATzhp0seUJNYjvxFkRoA/Xqb57kZqGpEOCxypUA=";
|
||||
hash = "sha256-rQJHgBBMTDIa2CrWlxLubZ446PqFz5ejiFyrYRb3jec=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-OJnpd8z4e6ytoUi5ydFHYPMA77ryU7Tp8wriuab7yuk=";
|
||||
vendorHash = "sha256-fvkaVdQlDT+95UTaN/zCIX8924MDoKam49U8lbq6yLs=";
|
||||
|
||||
# Build the main command
|
||||
subPackages = [ "cmd" ];
|
||||
|
||||
@@ -14,21 +14,31 @@
|
||||
libkrunfw,
|
||||
rustc,
|
||||
withBlk ? false,
|
||||
withNet ? false,
|
||||
withGpu ? false,
|
||||
withSound ? false,
|
||||
withNet ? false,
|
||||
sevVariant ? false,
|
||||
withTimesync ? false,
|
||||
variant ? null,
|
||||
}:
|
||||
|
||||
assert lib.elem variant [
|
||||
null
|
||||
"sev"
|
||||
"tdx"
|
||||
];
|
||||
|
||||
let
|
||||
libkrunfw' = (libkrunfw.override { inherit variant; });
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libkrun";
|
||||
version = "1.11.2";
|
||||
pname = "libkrun" + lib.optionalString (variant != null) "-${variant}";
|
||||
version = "1.15.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "libkrun";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-B11f7uG/oODwkME2rauCFbVysxUtUrUmd6RKeuBdnUU=";
|
||||
hash = "sha256-VhlFyYJ/TH12I3dUq0JTus60rQEJq5H4Pm1puCnJV5A=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
@@ -38,15 +48,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-bcHy8AfO9nzSZKoFlEpPKvwupt3eMb+A2rHDaUzO3/U=";
|
||||
hash = "sha256-dK3V7HCCvTqmQhB5Op2zmBPa9FO3h9gednU9tpQk+1U=";
|
||||
};
|
||||
|
||||
# Make sure libkrunfw can be found by dlopen()
|
||||
# FIXME: This wasn't needed previously. What changed?
|
||||
env.RUSTFLAGS = toString (
|
||||
map (flag: "-C link-arg=" + flag) [
|
||||
"-Wl,--push-state,--no-as-needed"
|
||||
(if sevVariant then "-lkrunfw-sev" else "-lkrunfw")
|
||||
("-lkrunfw" + lib.optionalString (variant != null) "-${variant}")
|
||||
"-Wl,--pop-state"
|
||||
]
|
||||
);
|
||||
@@ -57,10 +66,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cargo
|
||||
rustc
|
||||
]
|
||||
++ lib.optional (sevVariant || withGpu) pkg-config;
|
||||
++ lib.optional (variant == "sev" || variant == "tdx" || withGpu) pkg-config;
|
||||
|
||||
buildInputs = [
|
||||
(libkrunfw.override { inherit sevVariant; })
|
||||
libkrunfw'
|
||||
glibc
|
||||
glibc.static
|
||||
]
|
||||
@@ -70,16 +79,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
virglrenderer
|
||||
]
|
||||
++ lib.optional withSound pipewire
|
||||
++ lib.optional sevVariant openssl;
|
||||
++ lib.optional (variant == "sev" || variant == "tdx") openssl;
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
]
|
||||
++ lib.optional withBlk "BLK=1"
|
||||
++ lib.optional withNet "NET=1"
|
||||
++ lib.optional withGpu "GPU=1"
|
||||
++ lib.optional withSound "SND=1"
|
||||
++ lib.optional withNet "NET=1"
|
||||
++ lib.optional sevVariant "SEV=1";
|
||||
++ lib.optional withTimesync "TIMESYNC=1"
|
||||
++ lib.optional (variant == "sev") "SEV=1"
|
||||
++ lib.optional (variant == "tdx") "TDX=1";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $dev/lib/pkgconfig
|
||||
@@ -87,15 +98,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
mv $out/include $dev/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
env.OPENSSL_NO_VENDOR = true;
|
||||
|
||||
meta = {
|
||||
description = "Dynamic library providing Virtualization-based process isolation capabilities";
|
||||
homepage = "https://github.com/containers/libkrun";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
nickcao
|
||||
RossComputerGuy
|
||||
nrabulinski
|
||||
];
|
||||
platforms = libkrunfw.meta.platforms;
|
||||
platforms = libkrunfw'.meta.platforms;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -10,23 +10,29 @@
|
||||
perl,
|
||||
elfutils,
|
||||
python3,
|
||||
sevVariant ? false,
|
||||
variant ? null,
|
||||
}:
|
||||
|
||||
assert lib.elem variant [
|
||||
null
|
||||
"sev"
|
||||
"tdx"
|
||||
];
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libkrunfw";
|
||||
version = "4.9.0";
|
||||
pname = "libkrunfw" + lib.optionalString (variant != null) "-${variant}";
|
||||
version = "4.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "libkrunfw";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-wmvjex68Mh7qehA33WNBYHhV9Q/XWLixokuGWnqJ3n0=";
|
||||
hash = "sha256-mq2gw0+xL6qUZE/fk0vLT3PEpzPV8p+iwRFJHXVOMnk=";
|
||||
};
|
||||
|
||||
kernelSrc = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v6.x/linux-6.12.20.tar.xz";
|
||||
hash = "sha256-Iw6JsHsKuC508H7MG+4xBdyoHQ70qX+QCSnEBySbasc=";
|
||||
url = "mirror://kernel/linux/kernel/v6.x/linux-6.12.34.tar.xz";
|
||||
hash = "sha256-p/P+OB9n7KQXLptj77YaFL1/nhJ44DYD0P9ak/Jwwk0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -51,8 +57,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
]
|
||||
++ lib.optionals sevVariant [
|
||||
++ lib.optionals (variant == "sev") [
|
||||
"SEV=1"
|
||||
]
|
||||
++ lib.optionals (variant == "tdx") [
|
||||
"TDX=1"
|
||||
];
|
||||
|
||||
# Fixes https://github.com/containers/libkrunfw/issues/55
|
||||
@@ -60,18 +69,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Dynamic library bundling the guest payload consumed by libkrun";
|
||||
homepage = "https://github.com/containers/libkrunfw";
|
||||
license = with licenses; [
|
||||
license = with lib.licenses; [
|
||||
lgpl2Only
|
||||
lgpl21Only
|
||||
];
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
nickcao
|
||||
RossComputerGuy
|
||||
nrabulinski
|
||||
];
|
||||
platforms = [ "x86_64-linux" ] ++ lib.optionals (!sevVariant) [ "aarch64-linux" ];
|
||||
platforms = [ "x86_64-linux" ] ++ lib.optionals (variant == null) [ "aarch64-linux" ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
|
||||
callPackage,
|
||||
|
||||
nixosTests,
|
||||
}:
|
||||
|
||||
let
|
||||
canExecute = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "llama-swap";
|
||||
version = "156";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mostlygeek";
|
||||
repo = "llama-swap";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-z0262afVjsdGe6WPoWO1wbccLO538fXBuxOOqLnJHRU=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
cd "$out"
|
||||
git rev-parse HEAD > $out/COMMIT
|
||||
# '0000-00-00T00:00:00Z'
|
||||
date -u -d "@$(git log -1 --pretty=%ct)" "+'%Y-%m-%dT%H:%M:%SZ'" > $out/SOURCE_DATE_EPOCH
|
||||
find "$out" -name .git -print0 | xargs -0 rm -rf
|
||||
'';
|
||||
};
|
||||
|
||||
vendorHash = "sha256-5mmciFAGe8ZEIQvXejhYN+ocJL3wOVwevIieDuokhGU=";
|
||||
|
||||
passthru.ui = callPackage ./ui.nix { llama-swap = finalAttrs.finalPackage; };
|
||||
passthru.npmDepsHash = "sha256-Sbvz3oudMVf+PxOJ6s7LsDaxFwvftNc8ZW5KPpbI/cA=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X main.version=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
# ldflags based on metadata from git and source
|
||||
ldflags+=" -X main.commit=$(cat COMMIT)"
|
||||
ldflags+=" -X main.date=$(cat SOURCE_DATE_EPOCH)"
|
||||
|
||||
# copy for go:embed in proxy/ui_embed.go
|
||||
cp -r ${finalAttrs.passthru.ui}/ui_dist proxy/
|
||||
'';
|
||||
|
||||
excludedPackages = [
|
||||
# regression testing tool
|
||||
"misc/process-cmd-test"
|
||||
# benchmark/regression testing tool
|
||||
"misc/benchmark-chatcompletion"
|
||||
]
|
||||
++ lib.optionals (!canExecute) [
|
||||
# some tests expect to execute `simple-something`; if it can't be executed
|
||||
# it's unneeded
|
||||
"misc/simple-responder"
|
||||
];
|
||||
|
||||
# some tests expect to execute `simple-something` and proxy/helpers_test.go
|
||||
# checks the file exists
|
||||
doCheck = canExecute;
|
||||
preCheck = ''
|
||||
mkdir build
|
||||
ln -s "$GOPATH/bin/simple-responder" "./build/simple-responder_''${GOOS}_''${GOARCH}"
|
||||
'';
|
||||
postCheck = ''
|
||||
rm "$GOPATH/bin/simple-responder"
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
install -Dm444 -t "$out/share/llama-swap" config.example.yaml
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
versionCheckProgramArg = "-version";
|
||||
|
||||
passthru.tests.nixos = nixosTests.llama-swap;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mostlygeek/llama-swap";
|
||||
changelog = "https://github.com/mostlygeek/llama-swap/releases/tag/${finalAttrs.src.tag}";
|
||||
description = "Model swapping for llama.cpp (or any local OpenAPI compatible server)";
|
||||
longDescription = ''
|
||||
llama-swap is a light weight, transparent proxy server that provides
|
||||
automatic model swapping to llama.cpp's server.
|
||||
|
||||
When a request is made to an OpenAI compatible endpoint, llama-swap will
|
||||
extract the `model` value and load the appropriate server configuration to
|
||||
serve it. If the wrong upstream server is running, it will be replaced
|
||||
with the correct one. This is where the "swap" part comes in. The upstream
|
||||
server is automatically swapped to the correct one to serve the request.
|
||||
|
||||
In the most basic configuration llama-swap handles one model at a time.
|
||||
For more advanced use cases, the `groups` feature allows multiple models
|
||||
to be loaded at the same time. You have complete control over how your
|
||||
system resources are used.
|
||||
'';
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "llama-swap";
|
||||
maintainers = with lib.maintainers; [
|
||||
jk
|
||||
podium868909
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
llama-swap,
|
||||
|
||||
buildNpmPackage,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "${llama-swap.pname}-ui";
|
||||
inherit (llama-swap) version src npmDepsHash;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace vite.config.ts \
|
||||
--replace-fail "../proxy/ui_dist" "${placeholder "out"}/ui_dist"
|
||||
'';
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/ui";
|
||||
|
||||
# bundled "ui_dist" doesn't need node_modules
|
||||
postInstall = ''
|
||||
rm -rf $out/lib
|
||||
'';
|
||||
|
||||
meta = (builtins.removeAttrs llama-swap.meta [ "mainProgram" ]) // {
|
||||
description = "${llama-swap.meta.description} - UI";
|
||||
};
|
||||
})
|
||||
@@ -11,8 +11,8 @@ mattermost.override {
|
||||
# and make sure the version regex is up to date here.
|
||||
# Ensure you also check ../mattermost/package.nix for ESR releases.
|
||||
regex = "^v(10\\.[0-9]+\\.[0-9]+)$";
|
||||
version = "10.11.1";
|
||||
srcHash = "sha256-iWznWqnsPDcq9hZqnPHCxqsOJESolVWDC6413hitFpk=";
|
||||
version = "10.11.2";
|
||||
srcHash = "sha256-lqMdH7jvnO6Z+dP+DHbxeM4iHU6EoJ3/bx8t/oJau0Q=";
|
||||
vendorHash = "sha256-Lqa463LLy41aaRbrtJFclfOj55vLjK4pWFAFLzX3TJE=";
|
||||
npmDepsHash = "sha256-p9dq31qw0EZDQIl2ysKE38JgDyLA6XvSv+VtHuRh+8A=";
|
||||
lockfileOverlay = ''
|
||||
|
||||
@@ -11,17 +11,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "mergiraf";
|
||||
version = "0.13.0";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "mergiraf";
|
||||
repo = "mergiraf";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-MPmpS4iLur05jkSUrGl6NCtzRO/8Pch9pRNuT6psNRo=";
|
||||
hash = "sha256-ad5A3d/E1PyfI1/vKdHmiVcDokPSiGoMfg1eXKCbhtA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nT9HsG9eRBf4mRr7fqmRSQVI+yz+yr7wKCSQHG5JtD4=";
|
||||
cargoHash = "sha256-8zOEFGkrlyaZMRbTzFVk3CujC1LlAxKqGslwZyjXoKw=";
|
||||
|
||||
nativeCheckInputs = [ git ];
|
||||
|
||||
|
||||
@@ -1,23 +1,21 @@
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
python3,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "mqtt-exporter";
|
||||
version = "1.7.0";
|
||||
version = "1.8.1-1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kpetremann";
|
||||
repo = "mqtt-exporter";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-aEuwJeNMB6sou6oyAwCj11lOdMCjCyEsrDcMF/pHzcg=";
|
||||
hash = "sha256-FBB8KvSLrcJ9pdfVq18ykovwApNZoOcU0xTfvAWTxpc=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "prometheus-client" ];
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools ];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "nak";
|
||||
version = "0.15.3";
|
||||
version = "0.15.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fiatjaf";
|
||||
repo = "nak";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PSg+27uTpPIrKlYArWOv92l5muQRQiFZ6Vvu7hDLt5s=";
|
||||
hash = "sha256-9Ap342HKD9byMGjFS8/3Ai14T5QJfsA5eYvUvqM02Gg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-qwi3awU1DHjT/4scGUrhsdlmXJYwq0g/t4LaZ8FGYB0=";
|
||||
vendorHash = "sha256-CoEwwxKyW2bYwVA6mpIdGjzEyN8m7K+1bODnPLajGJo=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "netpeek";
|
||||
version = "0.2.3.1";
|
||||
version = "0.2.4";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ZingyTomato";
|
||||
repo = "NetPeek";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-3PbGK8e/W4pHlXwIvW6kmyeBMvzBIS2DrV0pxafgJOY=";
|
||||
hash = "sha256-mouXMFYhCBEUTyPfuaw570ZC40TJuprldiSiP0Il0KA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -43,6 +43,7 @@ python3Packages.buildPythonApplication rec {
|
||||
dependencies = with python3Packages; [
|
||||
pygobject3
|
||||
ping3
|
||||
python-nmap
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 73276dff6..94027f5cb 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -974,21 +974,27 @@ endif(USE_EFENCE)
|
||||
|
||||
gopt_test(USE_DBUS)
|
||||
if(USE_DBUS)
|
||||
- find_package(PkgConfig)
|
||||
- # pkg_check_modules doesn't fatal error on REQUIRED, so handle it ourselves
|
||||
- pkg_check_modules(DBUS ${USE_DBUS_REQUIRED} dbus-1)
|
||||
- if(NOT DBUS_FOUND)
|
||||
- if(USE_DBUS_REQUIRED)
|
||||
- message(FATAL_ERROR "Cannot find DBUS libs but requested on command line")
|
||||
- else(USE_DBUS_REQUIRED)
|
||||
- message(WARNING "Cannot find DBUS libs. Disabling DBUS support")
|
||||
- set(USE_DBUS OFF)
|
||||
- endif(USE_DBUS_REQUIRED)
|
||||
- else(NOT DBUS_FOUND)
|
||||
+ if(DBUS_NO_PKGCONFIG)
|
||||
set(SYSTEM_LIBRARIES ${DBUS_LIBRARIES} ${SYSTEM_LIBRARIES})
|
||||
LIST(APPEND CMAKE_LIBRARY_PATH ${DBUS_LIBRARY_DIRS})
|
||||
link_directories (${DBUS_LIBRARY_DIRS})
|
||||
- endif(NOT DBUS_FOUND)
|
||||
+ else(DBUS_NO_PKGCONFIG)
|
||||
+ find_package(PkgConfig)
|
||||
+ # pkg_check_modules doesn't fatal error on REQUIRED, so handle it ourselves
|
||||
+ pkg_check_modules(DBUS ${USE_DBUS_REQUIRED} dbus-1)
|
||||
+ if(NOT DBUS_FOUND)
|
||||
+ if(USE_DBUS_REQUIRED)
|
||||
+ message(FATAL_ERROR "Cannot find DBUS libs but requested on command line")
|
||||
+ else(USE_DBUS_REQUIRED)
|
||||
+ message(WARNING "Cannot find DBUS libs. Disabling DBUS support")
|
||||
+ set(USE_DBUS OFF)
|
||||
+ endif(USE_DBUS_REQUIRED)
|
||||
+ else(NOT DBUS_FOUND)
|
||||
+ set(SYSTEM_LIBRARIES ${DBUS_LIBRARIES} ${SYSTEM_LIBRARIES})
|
||||
+ LIST(APPEND CMAKE_LIBRARY_PATH ${DBUS_LIBRARY_DIRS})
|
||||
+ link_directories (${DBUS_LIBRARY_DIRS})
|
||||
+ endif(NOT DBUS_FOUND)
|
||||
+ endif(DBUS_NO_PKGCONFIG)
|
||||
endif(USE_DBUS)
|
||||
|
||||
if(USE_CB_SIMULATOR AND NOT USE_DBUS)
|
||||
@@ -8,7 +8,6 @@
|
||||
krb5,
|
||||
xfsprogs,
|
||||
jemalloc,
|
||||
dbus,
|
||||
libcap,
|
||||
ntirpc,
|
||||
liburcu,
|
||||
@@ -16,6 +15,10 @@
|
||||
flex,
|
||||
nfs-utils,
|
||||
acl,
|
||||
useCeph ? false,
|
||||
ceph,
|
||||
useDbus ? true,
|
||||
dbus,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@@ -35,6 +38,8 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-OHGmEzHu8y/TPQ70E2sicaLtNgvlf/bRq8JRs6S1tpY=";
|
||||
};
|
||||
|
||||
patches = lib.optional useDbus ./allow-bypassing-dbus-pkg-config-test.patch;
|
||||
|
||||
preConfigure = "cd src";
|
||||
|
||||
cmakeFlags = [
|
||||
@@ -44,6 +49,19 @@ stdenv.mkDerivation rec {
|
||||
"-DUSE_ACL_MAPPING=ON"
|
||||
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON"
|
||||
"-DUSE_MAN_PAGE=ON"
|
||||
]
|
||||
++ lib.optionals useCeph [
|
||||
"-DUSE_RADOS_RECOV=ON"
|
||||
"-DRADOS_URLS=ON"
|
||||
"-DUSE_FSAL_CEPH=ON"
|
||||
"-DUSE_FSAL_RGW=ON"
|
||||
]
|
||||
++ lib.optionals useDbus [
|
||||
"-DUSE_DBUS=ON"
|
||||
"-DDBUS_NO_PKGCONFIG=ON"
|
||||
"-DDBUS_LIBRARY_DIRS=${lib.getLib dbus}/lib"
|
||||
"-DDBUS_INCLUDE_DIRS=${lib.getDev dbus}/include/dbus-1.0\\;${lib.getLib dbus}/lib/dbus-1.0/include"
|
||||
"-DDBUS_LIBRARIES=dbus-1"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -52,7 +70,8 @@ stdenv.mkDerivation rec {
|
||||
bison
|
||||
flex
|
||||
sphinx
|
||||
];
|
||||
]
|
||||
++ lib.optional useDbus dbus;
|
||||
|
||||
buildInputs = [
|
||||
acl
|
||||
@@ -64,7 +83,8 @@ stdenv.mkDerivation rec {
|
||||
ntirpc
|
||||
liburcu
|
||||
nfs-utils
|
||||
];
|
||||
]
|
||||
++ lib.optional useCeph ceph;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/tools/mount.9P --replace "/bin/mount" "/usr/bin/env mount"
|
||||
@@ -72,10 +92,20 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postFixup = ''
|
||||
patchelf --add-rpath $out/lib $out/bin/ganesha.nfsd
|
||||
patchelf --add-rpath $out/lib $out/lib/libganesha_nfsd.so
|
||||
''
|
||||
+ lib.optionalString useCeph ''
|
||||
patchelf --add-rpath $out/lib $out/bin/ganesha-rados-grace
|
||||
patchelf --add-rpath $out/lib $out/lib/libganesha_rados_recov.so
|
||||
patchelf --add-rpath $out/lib $out/lib/libganesha_rados_urls.so
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
install -Dm755 $src/src/tools/mount.9P $tools/bin/mount.9P
|
||||
''
|
||||
+ lib.optionalString useDbus ''
|
||||
# Policy for D-Bus statistics interface
|
||||
install -Dm644 $src/src/scripts/ganeshactl/org.ganesha.nfsd.conf $out/etc/dbus-1/system.d/org.ganesha.nfsd.conf
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "okteto";
|
||||
version = "3.10.1";
|
||||
version = "3.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "okteto";
|
||||
repo = "okteto";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-gYdws+cUJpr0tIztO9tjc/dVtBWau6HdriP/Y8p+kOQ=";
|
||||
hash = "sha256-gzOymFkzz2MStbhLA1viJuHNbsBFDLqbhG0lIaxAC+w=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Pun9LgQAv/wlX0CwU4AJuEkMeZgPTL+ExmUevURvjYE=";
|
||||
vendorHash = "sha256-wkuCUMzmYAWf8RjM6DkTTHaY7qEIjGNYiT4grtCbYs8=";
|
||||
|
||||
postPatch = ''
|
||||
# Disable some tests that need file system & network access.
|
||||
|
||||
@@ -11,13 +11,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "openapv";
|
||||
version = "0.2.0.1";
|
||||
version = "0.2.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AcademySoftwareFoundation";
|
||||
repo = "openapv";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Edj3xQ7AcHcdIbg4o2FidAGZ06fUBltW+1ojJPoIktA=";
|
||||
hash = "sha256-Eam53Fc0oYOE2YH+Q1Cx6TxClMoUaDZuRhrC8LX6S7g=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
+28
-22
@@ -1,8 +1,8 @@
|
||||
diff --git a/ext/test/http/curl_http_test.cc b/ext/test/http/curl_http_test.cc
|
||||
index 7c66d98b..62d40f49 100644
|
||||
index e8299202..19dbd7b1 100644
|
||||
--- a/ext/test/http/curl_http_test.cc
|
||||
+++ b/ext/test/http/curl_http_test.cc
|
||||
@@ -229,7 +229,7 @@ TEST_F(BasicCurlHttpTests, HttpResponse)
|
||||
@@ -270,7 +270,7 @@ TEST_F(BasicCurlHttpTests, HttpResponse)
|
||||
ASSERT_EQ(count, 4);
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ index 7c66d98b..62d40f49 100644
|
||||
{
|
||||
received_requests_.clear();
|
||||
auto session_manager = http_client::HttpClientFactory::Create();
|
||||
@@ -246,7 +246,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequest)
|
||||
ASSERT_TRUE(handler->got_response_);
|
||||
@@ -287,7 +287,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequest)
|
||||
ASSERT_TRUE(handler->got_response_.load(std::memory_order_acquire));
|
||||
}
|
||||
|
||||
-TEST_F(BasicCurlHttpTests, SendPostRequest)
|
||||
@@ -20,25 +20,25 @@ index 7c66d98b..62d40f49 100644
|
||||
{
|
||||
received_requests_.clear();
|
||||
auto session_manager = http_client::HttpClientFactory::Create();
|
||||
@@ -325,7 +325,7 @@ TEST_F(BasicCurlHttpTests, CurlHttpOperations)
|
||||
delete handler;
|
||||
@@ -313,7 +313,7 @@ TEST_F(BasicCurlHttpTests, SendPostRequest)
|
||||
session_manager->FinishAllSessions();
|
||||
}
|
||||
|
||||
-TEST_F(BasicCurlHttpTests, RequestTimeout)
|
||||
+TEST_F(BasicCurlHttpTests, DISABLED_RequestTimeout)
|
||||
{
|
||||
received_requests_.clear();
|
||||
auto session_manager = http_client::HttpClientFactory::Create();
|
||||
@@ -442,7 +442,7 @@ TEST_F(BasicCurlHttpTests, ExponentialBackoffRetry)
|
||||
}
|
||||
#endif // ENABLE_OTLP_RETRY_PREVIEW
|
||||
|
||||
-TEST_F(BasicCurlHttpTests, SendGetRequestSync)
|
||||
+TEST_F(BasicCurlHttpTests, DISABLED_SendGetRequestSync)
|
||||
{
|
||||
received_requests_.clear();
|
||||
curl::HttpClientSync http_client;
|
||||
@@ -336,7 +336,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestSync)
|
||||
EXPECT_EQ(result.GetSessionState(), http_client::SessionState::Response);
|
||||
}
|
||||
|
||||
-TEST_F(BasicCurlHttpTests, SendGetRequestSyncTimeout)
|
||||
+TEST_F(BasicCurlHttpTests, DISABLED_SendGetRequestSyncTimeout)
|
||||
{
|
||||
received_requests_.clear();
|
||||
curl::HttpClientSync http_client;
|
||||
@@ -350,7 +350,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestSyncTimeout)
|
||||
@@ -467,7 +467,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestSyncTimeout)
|
||||
result.GetSessionState() == http_client::SessionState::SendFailed);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ index 7c66d98b..62d40f49 100644
|
||||
{
|
||||
received_requests_.clear();
|
||||
curl::HttpClientSync http_client;
|
||||
@@ -378,7 +378,7 @@ TEST_F(BasicCurlHttpTests, GetBaseUri)
|
||||
@@ -495,7 +495,7 @@ TEST_F(BasicCurlHttpTests, GetBaseUri)
|
||||
"http://127.0.0.1:31339/");
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ index 7c66d98b..62d40f49 100644
|
||||
{
|
||||
curl::HttpClient http_client;
|
||||
|
||||
@@ -452,7 +452,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestAsyncTimeout)
|
||||
@@ -570,7 +570,7 @@ TEST_F(BasicCurlHttpTests, SendGetRequestAsyncTimeout)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ index 7c66d98b..62d40f49 100644
|
||||
{
|
||||
curl::HttpClient http_client;
|
||||
|
||||
@@ -491,7 +491,7 @@ TEST_F(BasicCurlHttpTests, SendPostRequestAsync)
|
||||
@@ -609,7 +609,7 @@ TEST_F(BasicCurlHttpTests, SendPostRequestAsync)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,6 +74,12 @@ index 7c66d98b..62d40f49 100644
|
||||
{
|
||||
curl::HttpClient http_client;
|
||||
|
||||
--
|
||||
2.40.1
|
||||
|
||||
@@ -647,7 +647,7 @@ TEST_F(BasicCurlHttpTests, FinishInAsyncCallback)
|
||||
}
|
||||
}
|
||||
|
||||
-TEST_F(BasicCurlHttpTests, ElegantQuitQuick)
|
||||
+TEST_F(BasicCurlHttpTests, DISABLED_ElegantQuitQuick)
|
||||
{
|
||||
auto http_client = http_client::HttpClientFactory::Create();
|
||||
std::static_pointer_cast<curl::HttpClient>(http_client)->MaybeSpawnBackgroundThread();
|
||||
|
||||
@@ -10,25 +10,30 @@
|
||||
prometheus-cpp,
|
||||
nlohmann_json,
|
||||
nix-update-script,
|
||||
cxxStandard ? null,
|
||||
enableHttp ? false,
|
||||
enableGrpc ? false,
|
||||
enablePrometheus ? false,
|
||||
enableElasticSearch ? false,
|
||||
enableZipkin ? false,
|
||||
}:
|
||||
|
||||
let
|
||||
opentelemetry-proto = fetchFromGitHub {
|
||||
owner = "open-telemetry";
|
||||
repo = "opentelemetry-proto";
|
||||
rev = "v1.3.2";
|
||||
hash = "sha256-bkVqPSVhyMHrmFvlI9DTAloZzDozj3sefIEwfW7OVrI=";
|
||||
rev = "v1.5.0";
|
||||
hash = "sha256-PkG0npG3nKQwq6SxWdIliIQ/wrYAOG9qVb26IeVkBfc=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "opentelemetry-cpp";
|
||||
version = "1.16.1";
|
||||
version = "1.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-telemetry";
|
||||
repo = "opentelemetry-cpp";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-31zwIZ4oehhfn+oCyg8VQTurPOmdgp72plH1Pf/9UKQ=";
|
||||
hash = "sha256-ibLuHIg01wGYPhLRz+LVYA34WaWzlUlNtg7DSONLe9g=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -40,12 +45,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs = [
|
||||
curl
|
||||
grpc
|
||||
nlohmann_json
|
||||
prometheus-cpp
|
||||
protobuf
|
||||
];
|
||||
|
||||
propagatedBuildInputs =
|
||||
lib.optionals (enableGrpc || enableHttp) [ protobuf ]
|
||||
++ lib.optionals enableGrpc [
|
||||
grpc
|
||||
]
|
||||
++ lib.optionals enablePrometheus [
|
||||
prometheus-cpp
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkInputs = [
|
||||
@@ -55,15 +66,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
strictDeps = true;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
"-DWITH_OTLP_HTTP=ON"
|
||||
"-DWITH_OTLP_GRPC=ON"
|
||||
"-DWITH_ABSEIL=ON"
|
||||
"-DWITH_PROMETHEUS=ON"
|
||||
"-DWITH_ELASTICSEARCH=ON"
|
||||
"-DWITH_ZIPKIN=ON"
|
||||
"-DWITH_BENCHMARK=OFF"
|
||||
"-DOTELCPP_PROTO_PATH=${opentelemetry-proto}"
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
|
||||
(lib.cmakeBool "WITH_BENCHMARK" false)
|
||||
(lib.cmakeBool "WITH_OTLP_HTTP" enableHttp)
|
||||
(lib.cmakeBool "WITH_OTLP_GRPC" enableGrpc)
|
||||
(lib.cmakeBool "WITH_PROMETHEUS" enablePrometheus)
|
||||
(lib.cmakeBool "WITH_ELASTICSEARCH" enableElasticSearch)
|
||||
(lib.cmakeBool "WITH_ZIPKIN" enableZipkin)
|
||||
(lib.cmakeFeature "OTELCPP_PROTO_PATH" "${opentelemetry-proto}")
|
||||
]
|
||||
++ lib.optionals (cxxStandard != null) [
|
||||
(lib.cmakeFeature "CMAKE_CXX_STANDARD" cxxStandard)
|
||||
(lib.cmakeFeature "WITH_STL" "CXX${cxxStandard}")
|
||||
];
|
||||
|
||||
outputs = [
|
||||
@@ -72,8 +86,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
substituteInPlace $out/lib/cmake/opentelemetry-cpp/opentelemetry-cpp-target.cmake \
|
||||
--replace-fail "\''${_IMPORT_PREFIX}/include" "$dev/include"
|
||||
substituteInPlace $out/lib/cmake/opentelemetry-cpp/opentelemetry-cpp*-target.cmake \
|
||||
--replace-quiet "\''${_IMPORT_PREFIX}/include" "$dev/include"
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
let
|
||||
package = buildGoModule rec {
|
||||
pname = "opentofu";
|
||||
version = "1.10.5";
|
||||
version = "1.10.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "opentofu";
|
||||
repo = "opentofu";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-w7uzTG0zqa+izncQoqCSbIJCCIz+jOVbPg9/HiCm7Ik=";
|
||||
hash = "sha256-IEdnESrhDT2rDha7TNgUnGnPioNPnKrUuOXSGRnUOBI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-+cwFkqhFuLJCb02tvYjccpkNzy7tz979mjgCeqi2DC4=";
|
||||
vendorHash = "sha256-ZnQDRiLdg12Dx9RdK1xBWUrAm3QQLGhwH1vxh4ieVv0=";
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openvas-scanner";
|
||||
version = "23.23.1";
|
||||
version = "23.24.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "greenbone";
|
||||
repo = "openvas-scanner";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-+G8wFkPYxGsh6esQEpQ5GckTYgPvwqxhibTOe12riyk=";
|
||||
hash = "sha256-6ZqUfqwtotVrMOLh0QiAjN+Syz0HhP1r8GIFhMfYVio=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "osmo-bsc";
|
||||
version = "1.13.0";
|
||||
version = "1.13.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osmocom";
|
||||
repo = "osmo-bsc";
|
||||
rev = version;
|
||||
hash = "sha256-wQtGyqqaEW+mM6Eg85N+i3ZiKC/Z6wxYk2Wwvz7qOFw=";
|
||||
hash = "sha256-YSCbVqELh/id9sK4G5xF8riYXhwFtXU/lXMlH6XxvXY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -18,6 +18,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"defusedxml"
|
||||
"lxml"
|
||||
"packaging"
|
||||
"psutil"
|
||||
"python-gnupg"
|
||||
|
||||
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.upperbounds.net";
|
||||
homepage = "https://github.com/bluescan/proggyfonts";
|
||||
description = "Set of fixed-width screen fonts that are designed for code listings";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
version = "1.75.0";
|
||||
hashes = {
|
||||
linux-aarch_64 = "sha256-fkWjH5rq+rmirorx+SgjgabYw8DZKbUVt5o2poxfAGg=";
|
||||
linux-ppcle_64 = "sha256-FC0NgeMZuj1KfSyiqffZyK6/dzvmrZLoI5vz4q8IdlE=";
|
||||
linux-s390_64 = "sha256-+oXkS7B9o07k1k+J3/fkwVrMhji4R8lLdUcdStP6PK0=";
|
||||
linux-x86_32 = "sha256-givjTIdi/vJtLgitkUW9IxbS5jb7qh42fhFS9drudo0=";
|
||||
linux-x86_64 = "sha256-WTZvtYoZ79TjZ0wVaOlO8WeBYVGs+q0C+k7wS7yrKT0=";
|
||||
osx-aarch_64 = "sha256-kzfvzNrQHdj0tO8n+mcMHKZ5QVgAaXkJf6qsDAvCuJY=";
|
||||
osx-x86_64 = "sha256-kzfvzNrQHdj0tO8n+mcMHKZ5QVgAaXkJf6qsDAvCuJY=";
|
||||
windows-x86_32 = "sha256-fOa2fuO+q/DTg0Om79mGlUN39Dhr/IvzM8j42/DG7KI=";
|
||||
windows-x86_64 = "sha256-yaiM0ILXQfMZBBX9IwtpEkO6qqz7h7KurH56mKT+NbA=";
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
linux-aarch_64 = "sha256-sgdZoaSM7LgK4DbbKPJO3FdBA37YAX86meaKDLQiOmg=";
|
||||
linux-ppcle_64 = "sha256-k4nQGJNwtd8W4nJLyWPRhqjikczy7p7ffDIrWxkcUTA=";
|
||||
linux-s390_64 = "sha256-fcuNlJeUmduFzqt5WaefYk3lFVmdHeSFIEkbwT2I1O0=";
|
||||
linux-x86_32 = "sha256-KNvqGkeERd2UxzhjO/Fp6Uv7DGBt15rPGviRmH7pmno=";
|
||||
linux-x86_64 = "sha256-7LI115E3BOz3jnHavkQBbN0hsjKuSbnXNAjXFw/D14I=";
|
||||
osx-aarch_64 = "sha256-gAo2bcsivjDVFX5cUvzngoHgqTAPt+3Hiuynd17/KTo=";
|
||||
osx-x86_64 = "sha256-gAo2bcsivjDVFX5cUvzngoHgqTAPt+3Hiuynd17/KTo=";
|
||||
windows-x86_32 = "sha256-ERbksXFy4AFhZSFG9G4AMOi68EzEScBvDJFF9+rnPnU=";
|
||||
windows-x86_64 = "sha256-wZU6on7A84fPm8xwD8pBgSk8+fkB14LdvWZXEniz8LU=";
|
||||
}
|
||||
@@ -33,13 +33,14 @@ let
|
||||
throw "Unsupported CPU \"${platform.parsed.cpu.name}\"";
|
||||
in
|
||||
"${os}-${arch}";
|
||||
data = import ./data.nix;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "protoc-gen-grpc-java";
|
||||
version = "1.73.0";
|
||||
inherit (data) version;
|
||||
src = fetchurl {
|
||||
url = "https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/${finalAttrs.version}/protoc-gen-grpc-java-${finalAttrs.version}-${hostArch}.exe";
|
||||
hash = (import ./hashes.nix).${hostArch} or (throw "Unsuported host arch ${hostArch}");
|
||||
hash = data.hashes.${hostArch} or (throw "Unsuported host arch ${hostArch}");
|
||||
};
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
@@ -14,7 +14,7 @@ ARCHS=(
|
||||
'windows-x86_32'
|
||||
'windows-x86_64'
|
||||
)
|
||||
HASHES_FILE=pkgs/by-name/pr/protoc-gen-grpc-java/hashes.nix
|
||||
DATA_FILE=pkgs/by-name/pr/protoc-gen-grpc-java/data.nix
|
||||
|
||||
version="$(
|
||||
curl --silent --location --fail \
|
||||
@@ -24,10 +24,13 @@ version="$(
|
||||
sed 's/^v//'
|
||||
)"
|
||||
|
||||
echo '{' >"${HASHES_FILE}"
|
||||
echo '{' >"${DATA_FILE}"
|
||||
echo " version = \"${version}\";" >>"${DATA_FILE}"
|
||||
echo ' hashes = {' >>"${DATA_FILE}"
|
||||
for arch in "${ARCHS[@]}"; do
|
||||
url="https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/${version}/protoc-gen-grpc-java-${version}-${arch}.exe"
|
||||
hash=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri "$(nix-prefetch-url "${url}")")
|
||||
echo " ${arch} = \"${hash}\";" >>"${HASHES_FILE}"
|
||||
echo " ${arch} = \"${hash}\";" >>"${DATA_FILE}"
|
||||
done
|
||||
echo '}' >>"${HASHES_FILE}"
|
||||
echo ' };' >>"${DATA_FILE}"
|
||||
echo '}' >>"${DATA_FILE}"
|
||||
|
||||
Generated
-190
@@ -1,190 +0,0 @@
|
||||
{
|
||||
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
|
||||
"!version": 1,
|
||||
"https://github.com": {
|
||||
"adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x86-32_windows_hotspot_17.0.10_7": {
|
||||
"zip": "sha256-EWZ+nnu8uYBDDWzGMFUxYqDBikI4xLBAu2cc2AYHcQY="
|
||||
}
|
||||
},
|
||||
"https://jcenter.bintray.com": {
|
||||
"com/github/spotbugs#spotbugs-annotations/4.2.2": {
|
||||
"jar": "sha256-VlfEgKMYg88/xtEuauUiyfzJpjA7RZOe5Cyi4Mz07QQ=",
|
||||
"module": "sha256-yjYif6H3bmbT7boJ5N9R38nyrfkyttH6EjT+Lx0KB5s=",
|
||||
"pom": "sha256-vz9CdawvbTnQq1gV28D2/yYBUoRztjtpkGdM3uuuRaM="
|
||||
},
|
||||
"com/github/spotbugs#spotbugs/4.2.2": {
|
||||
"jar": "sha256-JO9T3cYiZAe+ndgHzFy5ZFQwKG91Bb0yK24Cc9Bz8DY=",
|
||||
"module": "sha256-vRozvig14GQmmfibS3VeJ1iNrYu5vbuAYxT6LdWECRQ=",
|
||||
"pom": "sha256-M2abH/xQYg2pZA2xlZepdre64Cab/05yd7Gg3D1qUNA="
|
||||
},
|
||||
"com/google/code/findbugs#jsr305/3.0.2": {
|
||||
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
|
||||
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
|
||||
},
|
||||
"com/google/code/gson#gson-parent/2.8.6": {
|
||||
"pom": "sha256-NzZGOFnsGSZyleiUlAroKo9oRBMDESL+Nc58/34wp3Q="
|
||||
},
|
||||
"com/google/code/gson#gson/2.8.6": {
|
||||
"jar": "sha256-yPtIOQVNKAswM/gA0fWpfeLwKOuLoutFitKH5Tbz8l8=",
|
||||
"pom": "sha256-IXRBWmRzMtMP2gS9HPxwij7MhOr3UX9ZYYjYJE4QORE="
|
||||
},
|
||||
"edu/stanford/ejalbert#BrowserLauncher2/1.3": {
|
||||
"jar": "sha256-pt7rHbhm7S+cyE7uu4kIgOfOAgptYS9pnpBAOuP371o=",
|
||||
"pom": "sha256-zcuMk+OUxzYg8zUs1ALIN0rF3wI7bJArOhDST1SUeG0="
|
||||
},
|
||||
"jaxen#jaxen/1.2.0": {
|
||||
"jar": "sha256-cP7vndda0GTe8Fo86Jda66UV7n0b4UbRIZnIgopkF0w=",
|
||||
"pom": "sha256-zEgr+qIqVQepb6WzorYVkRRDrT9zZOAgBNGQsGfzsH8="
|
||||
},
|
||||
"net/jcip#jcip-annotations/1.0": {
|
||||
"jar": "sha256-vlgFOSBgxxR0v2yaZ6CZRxJ00wuD7vhL/E4IiaTx3MA=",
|
||||
"pom": "sha256-XBnmhIzFUKlWZPsIIwS8X5/Pe2cvrwOvFjXw6TwmgXc="
|
||||
},
|
||||
"net/sf/launch4j#launch4j/3.14": {
|
||||
"pom": "sha256-xEYpdod2nJWyb2Qg9zsr0qKd90TYllTAdKhVb2Is+Vs="
|
||||
},
|
||||
"net/sf/launch4j#launch4j/3.14/workdir-linux64": {
|
||||
"jar": "sha256-mphFGb9E6CWlsEFZfgVPi/qy+Tpm+na30aM79JIcNUY="
|
||||
},
|
||||
"net/sf/saxon#Saxon-HE/10.3": {
|
||||
"jar": "sha256-ZgqJFipXfP1zvD2zxTy+x+gtSrIFEkfzGSfxNa/3yQg=",
|
||||
"pom": "sha256-FfRI8O2fblTGre47tov582btryOPYW33hB8dzXc3hpg="
|
||||
},
|
||||
"org/apache#apache/21": {
|
||||
"pom": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A="
|
||||
},
|
||||
"org/apache#apache/23": {
|
||||
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
|
||||
},
|
||||
"org/apache/bcel#bcel/6.5.0": {
|
||||
"jar": "sha256-ves4HQ0ZmZ4iHmoPjYv0T1sZwuV+q/aLcNwJhlKu+vU=",
|
||||
"pom": "sha256-/B6eb17UvSAMsGYghsiYwAAmOGoutKY0hBH34OBotcU="
|
||||
},
|
||||
"org/apache/commons#commons-lang3/3.12.0": {
|
||||
"jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=",
|
||||
"pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo="
|
||||
},
|
||||
"org/apache/commons#commons-parent/50": {
|
||||
"pom": "sha256-e3ots/dHB0tYZ/VT1e/IByvibt4yh50FLDR+fIERfwY="
|
||||
},
|
||||
"org/apache/commons#commons-parent/51": {
|
||||
"pom": "sha256-m3edGLItjeVZYFVY57sKCjGz8Awqu5yHgRfDmKrKvso="
|
||||
},
|
||||
"org/apache/commons#commons-parent/52": {
|
||||
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
|
||||
},
|
||||
"org/apache/commons#commons-text/1.9": {
|
||||
"jar": "sha256-CBLyhKxd0NYXRh2aKrasaBETfyUSLf/9R4ikhx5zLQA=",
|
||||
"pom": "sha256-n5IWz8lE3KeC5jEdYnV/13Fk/mfaKbWPAVaH+gn0QFA="
|
||||
},
|
||||
"org/dom4j#dom4j/2.1.3": {
|
||||
"jar": "sha256-VJ8wB8YpD2qQHlfR0zG07Q5r9zhPeL8QMW/87sqDTeY=",
|
||||
"module": "sha256-3sfF/Y1SDa+1exXi87a+LxgFYTQqP0Ub7u6QVUO8FwM=",
|
||||
"pom": "sha256-zcnEn1nSMNQnF3G7dkqnCX1qy83CUAFJ5NLJUd9crDA="
|
||||
},
|
||||
"org/junit#junit-bom/5.7.1": {
|
||||
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
|
||||
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
|
||||
},
|
||||
"org/ow2#ow2/1.5": {
|
||||
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
|
||||
},
|
||||
"org/ow2/asm#asm-analysis/9.1": {
|
||||
"jar": "sha256-gaiAQbG4vtpaiplkYJgEbEhwlTgnDEne9oq/8lrDvjQ=",
|
||||
"pom": "sha256-rFRUwRsDQxypUd9x+06GyMTIDfaXn5W3V8rtOrD0cVY="
|
||||
},
|
||||
"org/ow2/asm#asm-commons/9.1": {
|
||||
"jar": "sha256-r8sm3B/BLAxKma2mcJCN2C4Y38SIyvXuklRplrRwwAw=",
|
||||
"pom": "sha256-oPZRsnuK/pwOYS16Ambqy197HHh7xLWsgkXz16EYG38="
|
||||
},
|
||||
"org/ow2/asm#asm-tree/9.1": {
|
||||
"jar": "sha256-/QCvpJ6VlddkYgWwnOy0p3ao/wugby1ZuPe/nHBLSnM=",
|
||||
"pom": "sha256-tqANkgfANUYPgcfXDtQSU/DSFmUr7UX6GjBS/81QuUw="
|
||||
},
|
||||
"org/ow2/asm#asm-util/9.1": {
|
||||
"jar": "sha256-OA4uzRb3zA8adrqboEkXm1dgpXsoKoekxlPK7/LNW9Y=",
|
||||
"pom": "sha256-jd108aHiuTxwnZdtAgXnT7850AVwPJYmpe1cxXTK+88="
|
||||
},
|
||||
"org/ow2/asm#asm/9.1": {
|
||||
"jar": "sha256-zaTeRV+rSP8Ly3xItGOUR9TehZp6/DCglKmG8JNr66I=",
|
||||
"pom": "sha256-xoOpDdaPKxeIy9/EZH6pQF71kls3HBmfj9OdRNPO3o0="
|
||||
},
|
||||
"org/slf4j#slf4j-api/1.8.0-beta4": {
|
||||
"jar": "sha256-YCtxIynIS0qDxARk9P39D+QjjFPvOXE5qGcGRznb9OA=",
|
||||
"pom": "sha256-+DFtKKzyUrIbHp6O7ZqEwq+9yOBA9p06ELq4E9PYWoU="
|
||||
},
|
||||
"org/slf4j#slf4j-parent/1.8.0-beta4": {
|
||||
"pom": "sha256-uvujCoPVOpRVAZZEdWKqjNrRRWFcKJMsaku0QcNVMQE="
|
||||
},
|
||||
"org/slf4j#slf4j-simple/1.8.0-beta4": {
|
||||
"jar": "sha256-usZqvFtEYt/2Lh4ZqzsKZcFg681WTPJZENsAOo5WnP0=",
|
||||
"pom": "sha256-oXrS6OU00OgZ6o0UIT3nSNRlD/8qJX0+kqE9oxAoe/c="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/7": {
|
||||
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||
}
|
||||
},
|
||||
"https://plugins.gradle.org/m2": {
|
||||
"com/formdev#flatlaf/1.0": {
|
||||
"jar": "sha256-E12NWsOf7CnZs/9SyzBybT+XawaYYVvjJTT9eSTynsc=",
|
||||
"module": "sha256-dStur7AL/wRCGXCYLcqvz1l7SajJE64M73XkKHYKC68=",
|
||||
"pom": "sha256-ylkCGnUHptHH0ZM+DN+hxKlpqgTsaMYsMdYTMtMAlpo="
|
||||
},
|
||||
"com/github/spotbugs#com.github.spotbugs.gradle.plugin/4.7.1": {
|
||||
"pom": "sha256-vzSvShy4wBuhRYlSW5K1KXuRB3UmfD4r86m9Y5WEIXc="
|
||||
},
|
||||
"com/thoughtworks/xstream#xstream-parent/1.4.15": {
|
||||
"pom": "sha256-GDOZpW5OtAJkCjcZURmuZx61kW17OKX2PpTvGvkPuc4="
|
||||
},
|
||||
"com/thoughtworks/xstream#xstream/1.4.15": {
|
||||
"jar": "sha256-MneEmWGqnrBV+HcYEEUAhtOMwuQH7rg0bQI56gIYpFM=",
|
||||
"pom": "sha256-sX3W1xyyywYmTZ6q0a6Mgg5FdhTx1jRcdgmSB3Ei1EY="
|
||||
},
|
||||
"commons-beanutils#commons-beanutils/1.9.4": {
|
||||
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
|
||||
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
|
||||
},
|
||||
"commons-logging#commons-logging/1.2": {
|
||||
"jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=",
|
||||
"pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA="
|
||||
},
|
||||
"edu/sc/seis/launch4j#edu.sc.seis.launch4j.gradle.plugin/2.5.0": {
|
||||
"pom": "sha256-n0puUetm4COQOF+0PkmHup+PCZ5QD8WCPwKh9ZFQ4Q4="
|
||||
},
|
||||
"edu/sc/seis/launch4j#launch4j/2.5.0": {
|
||||
"jar": "sha256-UX6wYGabD7AySfEXvtG5UbckhI1XLhpeSgnHRWnC8CQ=",
|
||||
"module": "sha256-ujuCeHwFd2TaKUOOoAxuVaD1xcppLb6Pm0zt1QZVSXs=",
|
||||
"pom": "sha256-sadCLzKqOPcR43vhoilGBV2MJiby9Xy2LUHMWR6h4TI="
|
||||
},
|
||||
"gradle/plugin/com/github/spotbugs/snom#spotbugs-gradle-plugin/4.7.1": {
|
||||
"jar": "sha256-4zxJQ+EOPtJ1mRoZMFagVtdXUYUcvWGqysipEXTm4Kc=",
|
||||
"pom": "sha256-aBZTKWh+foW+JoNs7+nuoWT4xFhi+M70qkP9yr+P7T8="
|
||||
},
|
||||
"net/sf/launch4j#launch4j/3.14": {
|
||||
"pom": "sha256-xEYpdod2nJWyb2Qg9zsr0qKd90TYllTAdKhVb2Is+Vs="
|
||||
},
|
||||
"net/sf/launch4j#launch4j/3.14/core": {
|
||||
"jar": "sha256-pGVAv4Nrz3s1AHM9n6f1muzYyDeUJz5zZlWrLKdXYjA="
|
||||
},
|
||||
"org/apache#apache/13": {
|
||||
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
|
||||
},
|
||||
"org/apache#apache/19": {
|
||||
"pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
|
||||
},
|
||||
"org/apache/commons#commons-parent/34": {
|
||||
"pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w="
|
||||
},
|
||||
"org/apache/commons#commons-parent/47": {
|
||||
"pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
|
||||
},
|
||||
"xmlpull#xmlpull/1.1.3.1": {
|
||||
"jar": "sha256-NOCO5iEWBxy7acDtcNFaelsgjWJ5jFnyEgu4kpMky2M=",
|
||||
"pom": "sha256-jxD/2N8NPpgZyMyEAnCcaySLxTqVTvbkVHDZrjpXNfs="
|
||||
},
|
||||
"xpp3#xpp3_min/1.1.4c": {
|
||||
"jar": "sha256-v8kOnjLQ6rHzl/uXS18VCoFRiDgqxB83KnFJ1bwXgAg=",
|
||||
"pom": "sha256-tbRqwMCdpBsE28dTRWtIkShWp/+7FJBnaRC1EMRx0T8="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,56 +1,65 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
gradle,
|
||||
jre,
|
||||
makeWrapper,
|
||||
jdk,
|
||||
git,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
fetchzip,
|
||||
fetchurl,
|
||||
}:
|
||||
let
|
||||
icon = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/hrehfeld/QuakeInjector/b741bae9904acbf2e18cdb1ca8e71a12e7d416cf/src/main/resources/Inject2_256.png";
|
||||
hash = "sha256-769YoSJ52+BTk7s+wh4oOyHwPPrR7AeOxCS58CdQ93s=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "quake-injector";
|
||||
version = "06";
|
||||
version = "07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrehfeld";
|
||||
repo = "QuakeInjector";
|
||||
tag = "alpha${finalAttrs.version}";
|
||||
hash = "sha256-bbvLp5/Grg+mXBuV5aJCMOSjFp1+ukZS+AivcbhBxHU=";
|
||||
src = fetchzip {
|
||||
url = "https://github.com/hrehfeld/QuakeInjector/releases/download/alpha${finalAttrs.version}/QuakeInjector-alpha${finalAttrs.version}.zip";
|
||||
hash = "sha256-Lixac9K3+9j7QvprZGzhnYuvlJV9V+ja4EipygELkWA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gradle
|
||||
makeWrapper
|
||||
git
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
mitmCache = gradle.fetchDeps {
|
||||
inherit (finalAttrs) pname;
|
||||
data = ./deps.json;
|
||||
};
|
||||
installPhase =
|
||||
let
|
||||
# Explicit needed JAR filenames
|
||||
filenames = [
|
||||
"QuakeInjector-alpha${finalAttrs.version}.jar"
|
||||
"BrowserLauncher2-1.3.jar"
|
||||
"jackson-annotations-2.13.3.jar"
|
||||
"jackson-core-2.13.3.jar"
|
||||
"jackson-databind-2.13.3.jar"
|
||||
];
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
mkClasspath = prefix: lib.concatMapStringsSep ":" (filename: "${prefix}/${filename}") filenames;
|
||||
classpath = mkClasspath "$out/share/quake-injector";
|
||||
in
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
doCheck = true;
|
||||
mkdir -p $out/{bin,share/quake-injector}
|
||||
cp lib/*.jar $out/share/quake-injector
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/icons/hicolor/256x256/apps
|
||||
cp ${icon} $out/share/icons/hicolor/256x256/apps/quake-injector.png
|
||||
|
||||
mkdir -p $out/{bin,share/quake-injector}
|
||||
cp build/libs/QuakeInjector.jar $out/share/quake-injector
|
||||
makeWrapper ${jre}/bin/java $out/bin/quake-injector \
|
||||
--add-flags "-classpath ${classpath} de.haukerehfeld.quakeinjector.QuakeInjector"
|
||||
|
||||
mkdir -p $out/share/icons/hicolor/256x256/apps
|
||||
cp src/main/resources/Inject2_256.png $out/share/icons/hicolor/256x256/apps/quake-injector.png
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
makeWrapper ${jre}/bin/java $out/bin/quake-injector \
|
||||
--add-flags "-jar $out/share/quake-injector/QuakeInjector.jar"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
# There are no tests.
|
||||
doCheck = false;
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
@@ -71,9 +80,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
maintainers = with lib.maintainers; [ theobori ];
|
||||
mainProgram = "quake-injector";
|
||||
platforms = jdk.meta.platforms;
|
||||
sourceProvenance = with lib.sourceTypes; [
|
||||
fromSource
|
||||
binaryBytecode # mitm cache
|
||||
];
|
||||
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "release-plz";
|
||||
version = "0.3.140";
|
||||
version = "0.3.142";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MarcoIeni";
|
||||
repo = "release-plz";
|
||||
rev = "release-plz-v${version}";
|
||||
hash = "sha256-pJHyf1aSn4YqzFYW6otuRY+gJ6TBCKFGQuH2Py5uWlE=";
|
||||
hash = "sha256-e+EafNBXHUAE4UjJJ7ujfd4QVxQ6AAYTpH6TmNot6jk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-LfadgdrGD9g/PNeFs/XNUk2x0h1i3znzMhIV+w1DjMk=";
|
||||
cargoHash = "sha256-TE2l9Mk41RBaHo/fRdXSLHc8UGiMDIY6LXc33iIDjvA=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rsign2";
|
||||
version = "0.6.3";
|
||||
version = "0.6.4";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-bJeM1HTzmC8QZ488PpqQ0qqdFg1/rjPWuTtqo1GXyHM=";
|
||||
hash = "sha256-SmrTMMHnB5r0K6zL9B2qJwyywFxUTidQDejnFsOTT4E=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-dCZcxtaqcRHhAmgGigBjN0jDfh1VjoosqTDTkqwlXp0=";
|
||||
cargoHash = "sha256-eWPZROftFA0pTgFDl4AuUP5yO863ar+HAcjCRk5c+cA=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command-line tool to sign files and verify signatures";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user