Merge master into staging-next

authored by github-actions[bot] and committed by GitHub 14abde4e 26128332

+1640 -334
+18
maintainers/maintainer-list.nix
··· 4745 4745 githubId = 4956158; 4746 4746 name = "Robin Stumm"; 4747 4747 }; 4748 + DerRockWolf = { 4749 + email = "git@rockwolf.eu"; 4750 + github = "DerRockWolf"; 4751 + githubId = 50499906; 4752 + name = "DerRockWolf"; 4753 + }; 4748 4754 DerTim1 = { 4749 4755 email = "tim.digel@active-group.de"; 4750 4756 github = "DerTim1"; ··· 7788 7794 matrix = "@chris:netsoj.nl"; 7789 7795 name = "Chris Josten"; 7790 7796 }; 7797 + hennk = { 7798 + email = "henning.kiel@gmail.com"; 7799 + github = "hennk"; 7800 + githubId = 328259; 7801 + name = "Henning Kiel"; 7802 + }; 7791 7803 henrikolsson = { 7792 7804 email = "henrik@fixme.se"; 7793 7805 github = "henrikolsson"; ··· 10328 10340 github = "kini"; 10329 10341 githubId = 691290; 10330 10342 name = "Keshav Kini"; 10343 + }; 10344 + kintrix = { 10345 + email = "kintrix007@proton.me"; 10346 + github = "kintrix007"; 10347 + githubId = 60898798; 10348 + name = "kintrix"; 10331 10349 }; 10332 10350 kinzoku = { 10333 10351 email = "kinzokudev4869@gmail.com";
+4
nixos/doc/manual/release-notes/rl-2405.section.md
··· 449 449 450 450 - `nextcloud-setup.service` no longer changes the group of each file & directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore. 451 451 452 + - `services.kavita` now uses the freeform option `services.kavita.settings` for the application settings file. 453 + The options `services.kavita.ipAdresses` and `services.kavita.port` now exist at `services.kavita.settings.IpAddresses` 454 + and `services.kavita.settings.IpAddresses`. 455 + 452 456 - The `krb5` module has been rewritten and moved to `security.krb5`, moving all options but `security.krb5.enable` and `security.krb5.package` into `security.krb5.settings`. 453 457 454 458 - Gitea 1.21 upgrade has several breaking changes, including:
-1
nixos/lib/test-driver/test_driver/machine.py
··· 1250 1250 check_return=False, 1251 1251 check_output=False, 1252 1252 ) 1253 - self.wait_for_console_text(r"systemd\[1\]:.*Switching root\.") 1254 1253 self.connected = False 1255 1254 self.connect()
+5
nixos/modules/module-list.nix
··· 1107 1107 ./services/networking/rpcbind.nix 1108 1108 ./services/networking/rxe.nix 1109 1109 ./services/networking/sabnzbd.nix 1110 + ./services/networking/scion/scion.nix 1111 + ./services/networking/scion/scion-control.nix 1112 + ./services/networking/scion/scion-daemon.nix 1113 + ./services/networking/scion/scion-dispatcher.nix 1114 + ./services/networking/scion/scion-router.nix 1110 1115 ./services/networking/seafile.nix 1111 1116 ./services/networking/searx.nix 1112 1117 ./services/networking/shadowsocks.nix
+69
nixos/modules/services/networking/scion/scion-control.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.scion.scion-control; 7 + toml = pkgs.formats.toml { }; 8 + defaultConfig = { 9 + general = { 10 + id = "cs"; 11 + config_dir = "/etc/scion"; 12 + reconnect_to_dispatcher = true; 13 + }; 14 + beacon_db = { 15 + connection = "/var/lib/scion-control/control.beacon.db"; 16 + }; 17 + path_db = { 18 + connection = "/var/lib/scion-control/control.path.db"; 19 + }; 20 + trust_db = { 21 + connection = "/var/lib/scion-control/control.trust.db"; 22 + }; 23 + log.console = { 24 + level = "info"; 25 + }; 26 + }; 27 + configFile = toml.generate "scion-control.toml" (defaultConfig // cfg.settings); 28 + in 29 + { 30 + options.services.scion.scion-control = { 31 + enable = mkEnableOption (lib.mdDoc "the scion-control service"); 32 + settings = mkOption { 33 + default = { }; 34 + type = toml.type; 35 + example = literalExpression '' 36 + { 37 + path_db = { 38 + connection = "/var/lib/scion-control/control.path.db"; 39 + }; 40 + log.console = { 41 + level = "info"; 42 + }; 43 + } 44 + ''; 45 + description = lib.mdDoc '' 46 + scion-control configuration. Refer to 47 + <https://docs.scion.org/en/latest/manuals/common.html> 48 + for details on supported values. 49 + ''; 50 + }; 51 + }; 52 + config = mkIf cfg.enable { 53 + systemd.services.scion-control = { 54 + description = "SCION Control Service"; 55 + after = [ "network-online.target" "scion-dispatcher.service" ]; 56 + wants = [ "network-online.target" "scion-dispatcher.service" ]; 57 + wantedBy = [ "multi-user.target" ]; 58 + serviceConfig = { 59 + Type = "simple"; 60 + Group = if (config.services.scion.scion-dispatcher.enable == true) then "scion" else null; 61 + ExecStart = "${pkgs.scion}/bin/scion-control --config ${configFile}"; 62 + DynamicUser = true; 63 + Restart = "on-failure"; 64 + BindPaths = [ "/dev/shm:/run/shm" ]; 65 + StateDirectory = "scion-control"; 66 + }; 67 + }; 68 + }; 69 + }
+64
nixos/modules/services/networking/scion/scion-daemon.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.scion.scion-daemon; 7 + toml = pkgs.formats.toml { }; 8 + defaultConfig = { 9 + general = { 10 + id = "sd"; 11 + config_dir = "/etc/scion"; 12 + reconnect_to_dispatcher = true; 13 + }; 14 + path_db = { 15 + connection = "/var/lib/scion-daemon/sd.path.db"; 16 + }; 17 + trust_db = { 18 + connection = "/var/lib/scion-daemon/sd.trust.db"; 19 + }; 20 + log.console = { 21 + level = "info"; 22 + }; 23 + }; 24 + configFile = toml.generate "scion-daemon.toml" (defaultConfig // cfg.settings); 25 + in 26 + { 27 + options.services.scion.scion-daemon = { 28 + enable = mkEnableOption (lib.mdDoc "the scion-daemon service"); 29 + settings = mkOption { 30 + default = { }; 31 + type = toml.type; 32 + example = literalExpression '' 33 + { 34 + path_db = { 35 + connection = "/var/lib/scion-daemon/sd.path.db"; 36 + }; 37 + log.console = { 38 + level = "info"; 39 + }; 40 + } 41 + ''; 42 + description = lib.mdDoc '' 43 + scion-daemon configuration. Refer to 44 + <https://docs.scion.org/en/latest/manuals/common.html> 45 + for details on supported values. 46 + ''; 47 + }; 48 + }; 49 + config = mkIf cfg.enable { 50 + systemd.services.scion-daemon = { 51 + description = "SCION Daemon"; 52 + after = [ "network-online.target" "scion-dispatcher.service" ]; 53 + wants = [ "network-online.target" "scion-dispatcher.service" ]; 54 + wantedBy = [ "multi-user.target" ]; 55 + serviceConfig = { 56 + Type = "simple"; 57 + ExecStart = "${pkgs.scion}/bin/scion-daemon --config ${configFile}"; 58 + Restart = "on-failure"; 59 + DynamicUser = true; 60 + StateDirectory = "scion-daemon"; 61 + }; 62 + }; 63 + }; 64 + }
+74
nixos/modules/services/networking/scion/scion-dispatcher.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.scion.scion-dispatcher; 7 + toml = pkgs.formats.toml { }; 8 + defaultConfig = { 9 + dispatcher = { 10 + id = "dispatcher"; 11 + socket_file_mode = "0770"; 12 + application_socket = "/dev/shm/dispatcher/default.sock"; 13 + }; 14 + log.console = { 15 + level = "info"; 16 + }; 17 + }; 18 + configFile = toml.generate "scion-dispatcher.toml" (defaultConfig // cfg.settings); 19 + in 20 + { 21 + options.services.scion.scion-dispatcher = { 22 + enable = mkEnableOption (lib.mdDoc "the scion-dispatcher service"); 23 + settings = mkOption { 24 + default = { }; 25 + type = toml.type; 26 + example = literalExpression '' 27 + { 28 + dispatcher = { 29 + id = "dispatcher"; 30 + socket_file_mode = "0770"; 31 + application_socket = "/dev/shm/dispatcher/default.sock"; 32 + }; 33 + log.console = { 34 + level = "info"; 35 + }; 36 + } 37 + ''; 38 + description = lib.mdDoc '' 39 + scion-dispatcher configuration. Refer to 40 + <https://docs.scion.org/en/latest/manuals/common.html> 41 + for details on supported values. 42 + ''; 43 + }; 44 + }; 45 + config = mkIf cfg.enable { 46 + # Needed for group ownership of the dispatcher socket 47 + users.groups.scion = {}; 48 + 49 + # scion programs hardcode path to dispatcher in /run/shm, and is not 50 + # configurable at runtime upstream plans to obsolete the dispatcher in 51 + # favor of an SCMP daemon, at which point this can be removed. 52 + system.activationScripts.scion-dispatcher = '' 53 + ln -sf /dev/shm /run/shm 54 + ''; 55 + 56 + systemd.services.scion-dispatcher = { 57 + description = "SCION Dispatcher"; 58 + after = [ "network-online.target" ]; 59 + wants = [ "network-online.target" ]; 60 + wantedBy = [ "multi-user.target" ]; 61 + serviceConfig = { 62 + Type = "simple"; 63 + Group = "scion"; 64 + DynamicUser = true; 65 + BindPaths = [ "/dev/shm:/run/shm" ]; 66 + ExecStartPre = "${pkgs.coreutils}/bin/rm -rf /run/shm/dispatcher"; 67 + ExecStart = "${pkgs.scion}/bin/scion-dispatcher --config ${configFile}"; 68 + Restart = "on-failure"; 69 + StateDirectory = "scion-dispatcher"; 70 + }; 71 + }; 72 + }; 73 + } 74 +
+49
nixos/modules/services/networking/scion/scion-router.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.scion.scion-router; 7 + toml = pkgs.formats.toml { }; 8 + defaultConfig = { 9 + general = { 10 + id = "br"; 11 + config_dir = "/etc/scion"; 12 + }; 13 + }; 14 + configFile = toml.generate "scion-router.toml" (defaultConfig // cfg.settings); 15 + in 16 + { 17 + options.services.scion.scion-router = { 18 + enable = mkEnableOption (lib.mdDoc "the scion-router service"); 19 + settings = mkOption { 20 + default = { }; 21 + type = toml.type; 22 + example = literalExpression '' 23 + { 24 + general.id = "br"; 25 + } 26 + ''; 27 + description = lib.mdDoc '' 28 + scion-router configuration. Refer to 29 + <https://docs.scion.org/en/latest/manuals/common.html> 30 + for details on supported values. 31 + ''; 32 + }; 33 + }; 34 + config = mkIf cfg.enable { 35 + systemd.services.scion-router = { 36 + description = "SCION Router"; 37 + after = [ "network-online.target" ]; 38 + wants = [ "network-online.target" ]; 39 + wantedBy = [ "multi-user.target" ]; 40 + serviceConfig = { 41 + Type = "simple"; 42 + ExecStart = "${pkgs.scion}/bin/scion-router --config ${configFile}"; 43 + Restart = "on-failure"; 44 + DynamicUser = true; 45 + StateDirectory = "scion-router"; 46 + }; 47 + }; 48 + }; 49 + }
+39
nixos/modules/services/networking/scion/scion.nix
··· 1 + { config, lib, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.scion; 7 + in 8 + { 9 + options.services.scion = { 10 + enable = mkEnableOption (lib.mdDoc "all of the scion components and services"); 11 + bypassBootstrapWarning = mkOption { 12 + type = types.bool; 13 + default = false; 14 + description = lib.mdDoc '' 15 + bypass Nix warning about SCION PKI bootstrapping 16 + ''; 17 + }; 18 + }; 19 + config = mkIf cfg.enable { 20 + services.scion = { 21 + scion-dispatcher.enable = true; 22 + scion-daemon.enable = true; 23 + scion-router.enable = true; 24 + scion-control.enable = true; 25 + }; 26 + assertions = [ 27 + { assertion = cfg.bypassBootstrapWarning == true; 28 + message = '' 29 + SCION is a routing protocol and requires bootstrapping with a manual, imperative key signing ceremony. You may want to join an existing Isolation Domain (ISD) such as scionlab.org, or bootstrap your own. If you have completed and configured the public key infrastructure for SCION and are sure this process is complete, then add the following to your configuration: 30 + 31 + services.scion.bypassBootstrapWarning = true; 32 + 33 + refer to docs.scion.org for more information 34 + ''; 35 + } 36 + ]; 37 + }; 38 + } 39 +
+43 -20
nixos/modules/services/web-apps/kavita.nix
··· 2 2 3 3 let 4 4 cfg = config.services.kavita; 5 - in { 5 + settingsFormat = pkgs.formats.json { }; 6 + appsettings = settingsFormat.generate "appsettings.json" ({ TokenKey = "@TOKEN@"; } // cfg.settings); 7 + in 8 + { 9 + imports = [ 10 + (lib.mkChangedOptionModule [ "services" "kavita" "ipAdresses" ] [ "services" "kavita" "settings" "IpAddresses" ] (config: 11 + let value = lib.getAttrFromPath [ "services" "kavita" "ipAdresses" ] config; in 12 + lib.concatStringsSep "," value 13 + )) 14 + (lib.mkRenamedOptionModule [ "services" "kavita" "port" ] [ "services" "kavita" "settings" "Port" ]) 15 + ]; 16 + 6 17 options.services.kavita = { 7 18 enable = lib.mkEnableOption (lib.mdDoc "Kavita reading server"); 8 19 ··· 27 38 It can be generated with `head -c 32 /dev/urandom | base64`. 28 39 ''; 29 40 }; 30 - port = lib.mkOption { 31 - default = 5000; 32 - type = lib.types.port; 33 - description = lib.mdDoc "Port to bind to."; 34 - }; 35 - ipAdresses = lib.mkOption { 36 - default = ["0.0.0.0" "::"]; 37 - type = lib.types.listOf lib.types.str; 38 - description = lib.mdDoc "IP Addresses to bind to. The default is to bind 39 - to all IPv4 and IPv6 addresses."; 41 + 42 + settings = lib.mkOption { 43 + default = { }; 44 + description = lib.mdDoc '' 45 + Kavita configuration options, as configured in {file}`appsettings.json`. 46 + ''; 47 + type = lib.types.submodule { 48 + freeformType = settingsFormat.type; 49 + 50 + options = { 51 + Port = lib.mkOption { 52 + default = 5000; 53 + type = lib.types.port; 54 + description = lib.mdDoc "Port to bind to."; 55 + }; 56 + 57 + IpAddresses = lib.mkOption { 58 + default = "0.0.0.0,::"; 59 + type = lib.types.commas; 60 + description = lib.mdDoc '' 61 + IP Addresses to bind to. The default is to bind to all IPv4 and IPv6 addresses. 62 + ''; 63 + }; 64 + }; 65 + }; 40 66 }; 41 67 }; 42 68 ··· 46 72 wantedBy = [ "multi-user.target" ]; 47 73 after = [ "network.target" ]; 48 74 preStart = '' 49 - umask u=rwx,g=rx,o= 50 - cat > "${cfg.dataDir}/config/appsettings.json" <<EOF 51 - { 52 - "TokenKey": "$(cat ${cfg.tokenKeyFile})", 53 - "Port": ${toString cfg.port}, 54 - "IpAddresses": "${lib.concatStringsSep "," cfg.ipAdresses}" 55 - } 56 - EOF 75 + install -m600 ${appsettings} ${lib.escapeShellArg cfg.dataDir}/config/appsettings.json 76 + ${pkgs.replace-secret}/bin/replace-secret '@TOKEN@' \ 77 + ''${CREDENTIALS_DIRECTORY}/token \ 78 + '${cfg.dataDir}/config/appsettings.json' 57 79 ''; 58 80 serviceConfig = { 59 81 WorkingDirectory = cfg.dataDir; 60 - ExecStart = "${lib.getExe cfg.package}"; 82 + LoadCredential = [ "token:${cfg.tokenKeyFile}" ]; 83 + ExecStart = lib.getExe cfg.package; 61 84 Restart = "always"; 62 85 User = cfg.user; 63 86 };
+1
nixos/modules/virtualisation/incus.nix
··· 263 263 { 264 264 INCUS_LXC_TEMPLATE_CONFIG = "${pkgs.lxcfs}/share/lxc/config"; 265 265 INCUS_OVMF_PATH = ovmf; 266 + INCUS_USBIDS_PATH = "${pkgs.hwdata}/share/hwdata/usb.ids"; 266 267 PATH = lib.mkForce serverBinPath; 267 268 } 268 269 (lib.mkIf (cfg.ui.enable) { "INCUS_UI" = cfg.ui.package; })
+2
nixos/tests/all-tests.nix
··· 791 791 sanoid = handleTest ./sanoid.nix {}; 792 792 scaphandre = handleTest ./scaphandre.nix {}; 793 793 schleuder = handleTest ./schleuder.nix {}; 794 + scion-freestanding-deployment = handleTest ./scion/freestanding-deployment {}; 794 795 scrutiny = handleTest ./scrutiny.nix {}; 795 796 sddm = handleTest ./sddm.nix {}; 796 797 seafile = handleTest ./seafile.nix {}; ··· 963 964 user-activation-scripts = handleTest ./user-activation-scripts.nix {}; 964 965 user-expiry = runTest ./user-expiry.nix; 965 966 user-home-mode = handleTest ./user-home-mode.nix {}; 967 + ustreamer = handleTest ./ustreamer.nix {}; 966 968 uwsgi = handleTest ./uwsgi.nix {}; 967 969 v2ray = handleTest ./v2ray.nix {}; 968 970 varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; };
+26 -20
nixos/tests/kavita.nix
··· 1 - import ./make-test-python.nix ({ pkgs, ...} : { 1 + import ./make-test-python.nix ({ pkgs, ... }: { 2 2 name = "kavita"; 3 3 meta = with pkgs.lib.maintainers; { 4 4 maintainers = [ misterio77 ]; ··· 8 8 kavita = { config, pkgs, ... }: { 9 9 services.kavita = { 10 10 enable = true; 11 - port = 5000; 12 - tokenKeyFile = builtins.toFile "kavita.key" "QfpjFvjT83BLtZ74GE3U3Q=="; 11 + tokenKeyFile = builtins.toFile "kavita.key" "d26ba694b455271a8872415830fb7b5c58f8da98f9ef7f58b2ca4c34bd406512"; 13 12 }; 14 13 }; 15 14 }; 16 15 17 - testScript = let 18 - regUrl = "http://kavita:5000/api/Account/register"; 19 - payload = builtins.toFile "payload.json" (builtins.toJSON { 20 - username = "foo"; 21 - password = "correcthorsebatterystaple"; 22 - email = "foo@bar"; 23 - }); 24 - in '' 25 - kavita.start 26 - kavita.wait_for_unit("kavita.service") 16 + testScript = 17 + let 18 + regUrl = "http://kavita:5000/api/Account/register"; 19 + loginUrl = "http://kavita:5000/api/Account/login"; 20 + localeUrl = "http://kavita:5000/api/locale"; 21 + in 22 + '' 23 + import json 27 24 28 - # Check that static assets are working 29 - kavita.wait_until_succeeds("curl http://kavita:5000/site.webmanifest | grep Kavita") 25 + kavita.start 26 + kavita.wait_for_unit("kavita.service") 27 + 28 + # Check that static assets are working 29 + kavita.wait_until_succeeds("curl http://kavita:5000/site.webmanifest | grep Kavita") 30 + 31 + # Check that registration is working 32 + kavita.succeed("""curl -fX POST ${regUrl} --json '{"username": "foo", "password": "correcthorsebatterystaple"}'""") 33 + # But only for the first one 34 + kavita.fail("""curl -fX POST ${regUrl} --json '{"username": "foo", "password": "correcthorsebatterystaple"}'""") 30 35 31 - # Check that registration is working 32 - kavita.succeed("curl -fX POST ${regUrl} --json @${payload}") 33 - # But only for the first one 34 - kavita.fail("curl -fX POST ${regUrl} --json @${payload}") 35 - ''; 36 + # Log in and retrieve token 37 + session = json.loads(kavita.succeed("""curl -fX POST ${loginUrl} --json '{"username": "foo", "password": "correcthorsebatterystaple"}'""")) 38 + # Check list of locales 39 + locales = json.loads(kavita.succeed(f"curl -fX GET ${localeUrl} -H 'Authorization: Bearer {session['token']}'")) 40 + assert len(locales) > 0, "expected a list of locales" 41 + ''; 36 42 })
+12
nixos/tests/scion/freestanding-deployment/README.rst
··· 1 + This NixOS VM test implements the network topology outlined in https://github.com/scionproto/scion/blob/27983125bccac6b84d1f96f406853aab0e460405/doc/tutorials/deploy.rst#sample-scion-demo-topology, below is an excerpt from that document 2 + 3 + Sample SCION Demo Topology 4 + .......................... 5 + 6 + The topology of the ISD includes the inter-AS connections to neighboring ASes, and defines the underlay IP/UDP addresses of services and routers running in this AS. This is specified in topology files - this guide later explains how to configure these files. A following graphic depicts the topology on a high level. 7 + 8 + .. figure:: https://github.com/scionproto/scion/raw/27983125bccac6b84d1f96f406853aab0e460405/doc/tutorials/deploy/SCION-deployment-guide.drawio.png 9 + :width: 95 % 10 + :figwidth: 100 % 11 + 12 + *Figure 1 - Topology of the sample SCION demo environment. It consists of 1 ISD, 3 core ASes and 2 non-core ASes.*
+172
nixos/tests/scion/freestanding-deployment/default.nix
··· 1 + # implements https://github.com/scionproto/scion/blob/27983125bccac6b84d1f96f406853aab0e460405/doc/tutorials/deploy.rst 2 + import ../../make-test-python.nix ({ pkgs, ... }: 3 + let 4 + trust-root-configuration-keys = pkgs.runCommand "generate-trc-keys.sh" { 5 + buildInputs = [ 6 + pkgs.scion 7 + ]; 8 + } '' 9 + set -euo pipefail 10 + 11 + mkdir /tmp/tutorial-scion-certs && cd /tmp/tutorial-scion-certs 12 + mkdir AS{1..5} 13 + 14 + # Create voting and root keys and (self-signed) certificates for core ASes 15 + pushd AS1 16 + scion-pki certificate create --not-after=3650d --profile=sensitive-voting <(echo '{"isd_as": "42-ffaa:1:1", "common_name": "42-ffaa:1:1 sensitive voting cert"}') sensitive-voting.pem sensitive-voting.key 17 + scion-pki certificate create --not-after=3650d --profile=regular-voting <(echo '{"isd_as": "42-ffaa:1:1", "common_name": "42-ffaa:1:1 regular voting cert"}') regular-voting.pem regular-voting.key 18 + scion-pki certificate create --not-after=3650d --profile=cp-root <(echo '{"isd_as": "42-ffaa:1:1", "common_name": "42-ffaa:1:1 cp root cert"}') cp-root.pem cp-root.key 19 + popd 20 + 21 + pushd AS2 22 + scion-pki certificate create --not-after=3650d --profile=cp-root <(echo '{"isd_as": "42-ffaa:1:2", "common_name": "42-ffaa:1:2 cp root cert"}') cp-root.pem cp-root.key 23 + popd 24 + 25 + pushd AS3 26 + scion-pki certificate create --not-after=3650d --profile=sensitive-voting <(echo '{"isd_as": "42-ffaa:1:3", "common_name": "42-ffaa:1:3 sensitive voting cert"}') sensitive-voting.pem sensitive-voting.key 27 + scion-pki certificate create --not-after=3650d --profile=regular-voting <(echo '{"isd_as": "42-ffaa:1:3", "common_name": "42-ffaa:1:3 regular voting cert"}') regular-voting.pem regular-voting.key 28 + popd 29 + 30 + # Create the TRC (Trust Root Configuration) 31 + mkdir tmp 32 + echo ' 33 + isd = 42 34 + description = "Demo ISD 42" 35 + serial_version = 1 36 + base_version = 1 37 + voting_quorum = 2 38 + 39 + core_ases = ["ffaa:1:1", "ffaa:1:2", "ffaa:1:3"] 40 + authoritative_ases = ["ffaa:1:1", "ffaa:1:2", "ffaa:1:3"] 41 + cert_files = ["AS1/sensitive-voting.pem", "AS1/regular-voting.pem", "AS1/cp-root.pem", "AS2/cp-root.pem", "AS3/sensitive-voting.pem", "AS3/regular-voting.pem"] 42 + 43 + [validity] 44 + not_before = '$(date +%s)' 45 + validity = "365d"' \ 46 + > trc-B1-S1-pld.tmpl 47 + 48 + scion-pki trc payload --out=tmp/ISD42-B1-S1.pld.der --template trc-B1-S1-pld.tmpl 49 + rm trc-B1-S1-pld.tmpl 50 + 51 + # Sign and bundle the TRC 52 + scion-pki trc sign tmp/ISD42-B1-S1.pld.der AS1/sensitive-voting.{pem,key} --out tmp/ISD42-B1-S1.AS1-sensitive.trc 53 + scion-pki trc sign tmp/ISD42-B1-S1.pld.der AS1/regular-voting.{pem,key} --out tmp/ISD42-B1-S1.AS1-regular.trc 54 + scion-pki trc sign tmp/ISD42-B1-S1.pld.der AS3/sensitive-voting.{pem,key} --out tmp/ISD42-B1-S1.AS3-sensitive.trc 55 + scion-pki trc sign tmp/ISD42-B1-S1.pld.der AS3/regular-voting.{pem,key} --out tmp/ISD42-B1-S1.AS3-regular.trc 56 + 57 + scion-pki trc combine tmp/ISD42-B1-S1.AS{1,3}-{sensitive,regular}.trc --payload tmp/ISD42-B1-S1.pld.der --out ISD42-B1-S1.trc 58 + rm tmp -r 59 + 60 + # Create CA key and certificate for issuing ASes 61 + pushd AS1 62 + scion-pki certificate create --profile=cp-ca <(echo '{"isd_as": "42-ffaa:1:1", "common_name": "42-ffaa:1:1 CA cert"}') cp-ca.pem cp-ca.key --ca cp-root.pem --ca-key cp-root.key 63 + popd 64 + pushd AS2 65 + scion-pki certificate create --profile=cp-ca <(echo '{"isd_as": "42-ffaa:1:2", "common_name": "42-ffaa:1:2 CA cert"}') cp-ca.pem cp-ca.key --ca cp-root.pem --ca-key cp-root.key 66 + popd 67 + 68 + # Create AS key and certificate chains 69 + scion-pki certificate create --profile=cp-as <(echo '{"isd_as": "42-ffaa:1:1", "common_name": "42-ffaa:1:1 AS cert"}') AS1/cp-as.pem AS1/cp-as.key --ca AS1/cp-ca.pem --ca-key AS1/cp-ca.key --bundle 70 + scion-pki certificate create --profile=cp-as <(echo '{"isd_as": "42-ffaa:1:2", "common_name": "42-ffaa:1:2 AS cert"}') AS2/cp-as.pem AS2/cp-as.key --ca AS2/cp-ca.pem --ca-key AS2/cp-ca.key --bundle 71 + scion-pki certificate create --profile=cp-as <(echo '{"isd_as": "42-ffaa:1:3", "common_name": "42-ffaa:1:3 AS cert"}') AS3/cp-as.pem AS3/cp-as.key --ca AS1/cp-ca.pem --ca-key AS1/cp-ca.key --bundle 72 + scion-pki certificate create --profile=cp-as <(echo '{"isd_as": "42-ffaa:1:4", "common_name": "42-ffaa:1:4 AS cert"}') AS4/cp-as.pem AS4/cp-as.key --ca AS1/cp-ca.pem --ca-key AS1/cp-ca.key --bundle 73 + scion-pki certificate create --profile=cp-as <(echo '{"isd_as": "42-ffaa:1:5", "common_name": "42-ffaa:1:5 AS cert"}') AS5/cp-as.pem AS5/cp-as.key --ca AS2/cp-ca.pem --ca-key AS2/cp-ca.key --bundle 74 + 75 + for i in {1..5} 76 + do 77 + mkdir -p $out/AS$i 78 + cp AS$i/cp-as.{key,pem} $out/AS$i 79 + done 80 + 81 + mv *.trc $out 82 + ''; 83 + imports = hostId: [ 84 + ({ 85 + services.scion = { 86 + enable = true; 87 + bypassBootstrapWarning = true; 88 + }; 89 + networking = { 90 + useNetworkd = true; 91 + useDHCP = false; 92 + }; 93 + systemd.network.networks."01-eth1" = { 94 + name = "eth1"; 95 + networkConfig.Address = "192.168.1.${toString hostId}/24"; 96 + }; 97 + environment.etc = { 98 + "scion/topology.json".source = ./topology${toString hostId}.json; 99 + "scion/crypto/as".source = trust-root-configuration-keys + "/AS${toString hostId}"; 100 + "scion/certs/ISD42-B1-S1.trc".source = trust-root-configuration-keys + "/ISD42-B1-S1.trc"; 101 + "scion/keys/master0.key".text = "U${toString hostId}v4k23ZXjGDwDofg/Eevw=="; 102 + "scion/keys/master1.key".text = "dBMko${toString hostId}qMS8DfrN/zP2OUdA=="; 103 + }; 104 + environment.systemPackages = [ 105 + pkgs.scion 106 + ]; 107 + }) 108 + ]; 109 + in 110 + { 111 + name = "scion-test"; 112 + nodes = { 113 + scion01 = { ... }: { 114 + imports = (imports 1); 115 + }; 116 + scion02 = { ... }: { 117 + imports = (imports 2); 118 + }; 119 + scion03 = { ... }: { 120 + imports = (imports 3); 121 + }; 122 + scion04 = { ... }: { 123 + imports = (imports 4); 124 + }; 125 + scion05 = { ... }: { 126 + imports = (imports 5); 127 + }; 128 + }; 129 + testScript = let 130 + pingAll = pkgs.writeShellScript "ping-all-scion.sh" '' 131 + addresses="42-ffaa:1:1 42-ffaa:1:2 42-ffaa:1:3 42-ffaa:1:4 42-ffaa:1:5" 132 + timeout=100 133 + wait_for_all() { 134 + for as in "$@" 135 + do 136 + scion showpaths $as --no-probe > /dev/null 137 + return 1 138 + done 139 + return 0 140 + } 141 + ping_all() { 142 + for as in "$@" 143 + do 144 + scion ping "$as,127.0.0.1" -c 3 145 + done 146 + return 0 147 + } 148 + for i in $(seq 0 $timeout); do 149 + wait_for_all $addresses && exit 0 150 + ping_all $addresses && exit 0 151 + sleep 1 152 + done 153 + ''; 154 + in 155 + '' 156 + # List of AS instances 157 + machines = [scion01, scion02, scion03, scion04, scion05] 158 + 159 + # Wait for scion-control.service on all instances 160 + for i in machines: 161 + i.wait_for_unit("scion-control.service") 162 + 163 + # Execute pingAll command on all instances 164 + for i in machines: 165 + i.succeed("${pingAll} >&2") 166 + 167 + # Restart scion-dispatcher and ping again to test robustness 168 + for i in machines: 169 + i.succeed("systemctl restart scion-dispatcher >&2") 170 + i.succeed("${pingAll} >&2") 171 + ''; 172 + })
+51
nixos/tests/scion/freestanding-deployment/topology1.json
··· 1 + { 2 + "attributes": [ 3 + "core" 4 + ], 5 + "isd_as": "42-ffaa:1:1", 6 + "mtu": 1472, 7 + "control_service": { 8 + "cs": { 9 + "addr": "127.0.0.1:31000" 10 + } 11 + }, 12 + "discovery_service": { 13 + "cs": { 14 + "addr": "127.0.0.1:31000" 15 + } 16 + }, 17 + "border_routers": { 18 + "br": { 19 + "internal_addr": "127.0.0.1:31002", 20 + "interfaces": { 21 + "1": { 22 + "underlay": { 23 + "public": "192.168.1.1:50014", 24 + "remote": "192.168.1.4:50014" 25 + }, 26 + "isd_as": "42-ffaa:1:4", 27 + "link_to": "child", 28 + "mtu": 1472 29 + }, 30 + "2": { 31 + "underlay": { 32 + "public": "192.168.1.1:50012", 33 + "remote": "192.168.1.2:50012" 34 + }, 35 + "isd_as": "42-ffaa:1:2", 36 + "link_to": "core", 37 + "mtu": 1472 38 + }, 39 + "3": { 40 + "underlay": { 41 + "public": "192.168.1.1:50013", 42 + "remote": "192.168.1.3:50013" 43 + }, 44 + "isd_as": "42-ffaa:1:3", 45 + "link_to": "core", 46 + "mtu": 1472 47 + } 48 + } 49 + } 50 + } 51 + }
+51
nixos/tests/scion/freestanding-deployment/topology2.json
··· 1 + { 2 + "attributes": [ 3 + "core" 4 + ], 5 + "isd_as": "42-ffaa:1:2", 6 + "mtu": 1472, 7 + "control_service": { 8 + "cs": { 9 + "addr": "127.0.0.1:31000" 10 + } 11 + }, 12 + "discovery_service": { 13 + "cs": { 14 + "addr": "127.0.0.1:31000" 15 + } 16 + }, 17 + "border_routers": { 18 + "br": { 19 + "internal_addr": "127.0.0.1:31002", 20 + "interfaces": { 21 + "1": { 22 + "underlay": { 23 + "public": "192.168.1.2:50012", 24 + "remote": "192.168.1.1:50012" 25 + }, 26 + "isd_as": "42-ffaa:1:1", 27 + "link_to": "core", 28 + "mtu": 1472 29 + }, 30 + "2": { 31 + "underlay": { 32 + "public": "192.168.1.2:50023", 33 + "remote": "192.168.1.3:50023" 34 + }, 35 + "isd_as": "42-ffaa:1:3", 36 + "link_to": "core", 37 + "mtu": 1472 38 + }, 39 + "3": { 40 + "underlay": { 41 + "public": "192.168.1.2:50025", 42 + "remote": "192.168.1.5:50025" 43 + }, 44 + "isd_as": "42-ffaa:1:5", 45 + "link_to": "child", 46 + "mtu": 1472 47 + } 48 + } 49 + } 50 + } 51 + }
+60
nixos/tests/scion/freestanding-deployment/topology3.json
··· 1 + { 2 + "attributes": [ 3 + "core" 4 + ], 5 + "isd_as": "42-ffaa:1:3", 6 + "mtu": 1472, 7 + "control_service": { 8 + "cs": { 9 + "addr": "127.0.0.1:31000" 10 + } 11 + }, 12 + "discovery_service": { 13 + "cs": { 14 + "addr": "127.0.0.1:31000" 15 + } 16 + }, 17 + "border_routers": { 18 + "br": { 19 + "internal_addr": "127.0.0.1:31002", 20 + "interfaces": { 21 + "1": { 22 + "underlay": { 23 + "public": "192.168.1.3:50013", 24 + "remote": "192.168.1.1:50013" 25 + }, 26 + "isd_as": "42-ffaa:1:1", 27 + "link_to": "core", 28 + "mtu": 1472 29 + }, 30 + "2": { 31 + "underlay": { 32 + "public": "192.168.1.3:50023", 33 + "remote": "192.168.1.2:50023" 34 + }, 35 + "isd_as": "42-ffaa:1:2", 36 + "link_to": "core", 37 + "mtu": 1472 38 + }, 39 + "3": { 40 + "underlay": { 41 + "public": "192.168.1.3:50034", 42 + "remote": "192.168.1.4:50034" 43 + }, 44 + "isd_as": "42-ffaa:1:4", 45 + "link_to": "child", 46 + "mtu": 1472 47 + }, 48 + "4": { 49 + "underlay": { 50 + "public": "192.168.1.3:50035", 51 + "remote": "192.168.1.5:50035" 52 + }, 53 + "isd_as": "42-ffaa:1:5", 54 + "link_to": "child", 55 + "mtu": 1472 56 + } 57 + } 58 + } 59 + } 60 + }
+40
nixos/tests/scion/freestanding-deployment/topology4.json
··· 1 + { 2 + "attributes": [], 3 + "isd_as": "42-ffaa:1:4", 4 + "mtu": 1472, 5 + "control_service": { 6 + "cs": { 7 + "addr": "127.0.0.1:31000" 8 + } 9 + }, 10 + "discovery_service": { 11 + "cs": { 12 + "addr": "127.0.0.1:31000" 13 + } 14 + }, 15 + "border_routers": { 16 + "br": { 17 + "internal_addr": "127.0.0.1:31002", 18 + "interfaces": { 19 + "1": { 20 + "underlay": { 21 + "public": "192.168.1.4:50014", 22 + "remote": "192.168.1.1:50014" 23 + }, 24 + "isd_as": "42-ffaa:1:1", 25 + "link_to": "parent", 26 + "mtu": 1472 27 + }, 28 + "2": { 29 + "underlay": { 30 + "public": "192.168.1.4:50034", 31 + "remote": "192.168.1.3:50034" 32 + }, 33 + "isd_as": "42-ffaa:1:3", 34 + "link_to": "parent", 35 + "mtu": 1472 36 + } 37 + } 38 + } 39 + } 40 + }
+40
nixos/tests/scion/freestanding-deployment/topology5.json
··· 1 + { 2 + "attributes": [], 3 + "isd_as": "42-ffaa:1:5", 4 + "mtu": 1472, 5 + "control_service": { 6 + "cs": { 7 + "addr": "127.0.0.1:31000" 8 + } 9 + }, 10 + "discovery_service": { 11 + "cs": { 12 + "addr": "127.0.0.1:31000" 13 + } 14 + }, 15 + "border_routers": { 16 + "br": { 17 + "internal_addr": "127.0.0.1:31002", 18 + "interfaces": { 19 + "1": { 20 + "underlay": { 21 + "public": "192.168.1.5:50025", 22 + "remote": "192.168.1.2:50025" 23 + }, 24 + "isd_as": "42-ffaa:1:2", 25 + "link_to": "parent", 26 + "mtu": 1472 27 + }, 28 + "2": { 29 + "underlay": { 30 + "public": "192.168.1.5:50035", 31 + "remote": "192.168.1.3:50035" 32 + }, 33 + "isd_as": "42-ffaa:1:3", 34 + "link_to": "parent", 35 + "mtu": 1472 36 + } 37 + } 38 + } 39 + } 40 + }
+75
nixos/tests/ustreamer.nix
··· 1 + import ./make-test-python.nix ({ pkgs, ... }: { 2 + name = "ustreamer-vmtest"; 3 + nodes = { 4 + client = {...}: { 5 + environment.systemPackages = [ pkgs.curl ]; 6 + }; 7 + camera = {config, ...}: let 8 + configFile = pkgs.writeText "akvcam-configFile" '' 9 + [Cameras] 10 + cameras/size = 2 11 + 12 + cameras/1/type = output 13 + cameras/1/mode = mmap, userptr, rw 14 + cameras/1/description = Virtual Camera (output device) 15 + cameras/1/formats = 2 16 + cameras/1/videonr = 7 17 + 18 + cameras/2/type = capture 19 + cameras/2/mode = mmap, rw 20 + cameras/2/description = Virtual Camera 21 + cameras/2/formats = 1, 2 22 + cameras/2/videonr = 9 23 + 24 + [Connections] 25 + connections/size = 1 26 + connections/1/connection = 1:2 27 + 28 + [Formats] 29 + formats/size = 2 30 + 31 + formats/1/format = YUY2 32 + formats/1/width = 640 33 + formats/1/height = 480 34 + formats/1/fps = 30 35 + 36 + formats/2/format = RGB24, YUY2 37 + formats/2/width = 640 38 + formats/2/height = 480 39 + formats/2/fps = 20/1, 15/2 40 + ''; 41 + in { 42 + environment.systemPackages = [ pkgs.ustreamer ]; 43 + networking.firewall.enable = false; 44 + systemd.services.ustreamer = { 45 + description = "ustreamer service"; 46 + wantedBy = ["multi-user.target"]; 47 + serviceConfig = { 48 + DynamicUser = true; 49 + ExecStart = "${pkgs.ustreamer}/bin/ustreamer --host=0.0.0.0 --port 8000 --device /dev/video9 --device-timeout=8"; 50 + PrivateTmp = true; 51 + BindReadOnlyPaths = "/dev/video9"; 52 + SupplementaryGroups = [ 53 + "video" 54 + ]; 55 + Restart = "always"; 56 + }; 57 + }; 58 + boot.extraModulePackages = [config.boot.kernelPackages.akvcam]; 59 + boot.kernelModules = ["akvcam"]; 60 + boot.extraModprobeConfig = '' 61 + options akvcam config_file=${configFile} 62 + ''; 63 + }; 64 + }; 65 + 66 + testScript = '' 67 + start_all() 68 + 69 + camera.wait_for_unit("ustreamer.service") 70 + camera.wait_for_open_port(8000) 71 + 72 + client.wait_for_unit("multi-user.target") 73 + client.succeed("curl http://camera:8000") 74 + ''; 75 + })
+21
pkgs/applications/editors/emacs/sources.nix
··· 110 110 variant = "macport"; 111 111 rev = "emacs-28.2-mac-9.1"; 112 112 hash = "sha256-Ne2jQ2nVLNiQmnkkOXVc5AkLVkTpm8pFC7VNY2gQjPE="; 113 + patches = fetchpatch: [ 114 + # CVE-2022-45939 115 + (fetchpatch { 116 + url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=d48bb4874bc6cd3e69c7a15fc3c91cc141025c51"; 117 + hash = "sha256-TiBQkexn/eb6+IqJNDqR/Rn7S7LVdHmL/21A5tGsyJs="; 118 + }) 119 + 120 + # https://lists.gnu.org/archive/html/emacs-devel/2024-03/msg00611.html 121 + (fetchpatch { 122 + url = "https://gitweb.gentoo.org/proj/emacs-patches.git/plain/emacs/28.2/10_all_org-macro-eval.patch?id=af40e12cb742510e5d40a06ffc6dfca97e340dd6"; 123 + hash = "sha256-OdGt4e9JGjWJPkfJhbYsmQQc6jart4BH5aIKPIbWKFs="; 124 + }) 125 + (fetchpatch { 126 + url = "https://gitweb.gentoo.org/proj/emacs-patches.git/plain/emacs/28.2/11_all_untrusted-content.patch?id=af40e12cb742510e5d40a06ffc6dfca97e340dd6"; 127 + hash = "sha256-wa2bsnCt5yFx0+RAFZGBPI+OoKkbrfkkMer/KBEc/wA="; 128 + }) 129 + (fetchpatch { 130 + url = "https://gitweb.gentoo.org/proj/emacs-patches.git/plain/emacs/28.2/12_all_org-remote-unsafe.patch?id=af40e12cb742510e5d40a06ffc6dfca97e340dd6"; 131 + hash = "sha256-b6WU1o3PfDV/6BTPfPNUFny6oERJCNsDrvflxX3Yvek="; 132 + }) 133 + ]; 113 134 }); 114 135 115 136 emacs29-macport = import ./make-emacs.nix (mkArgs {
+23 -14
pkgs/applications/emulators/86box/default.nix
··· 6 6 , enableNewDynarec ? enableDynarec && stdenv.hostPlatform.isAarch 7 7 , enableVncRenderer ? false 8 8 , unfreeEnableDiscord ? false 9 + , unfreeEnableRoms ? false 9 10 }: 10 11 11 - stdenv.mkDerivation rec { 12 + stdenv.mkDerivation (finalAttrs: { 12 13 pname = "86Box"; 13 14 version = "4.1"; 14 15 15 16 src = fetchFromGitHub { 16 17 owner = "86Box"; 17 18 repo = "86Box"; 18 - rev = "v${version}"; 19 + rev = "v${finalAttrs.version}"; 19 20 hash = "sha256-JYOJFXiUTLRs6AEMYNx88PwcVw13ChQzV1ZE5OtX6Ds="; 20 21 }; 21 22 ··· 48 49 ++ lib.optional (!enableDynarec) "-DDYNAREC=OFF" 49 50 ++ lib.optional (!unfreeEnableDiscord) "-DDISCORD=OFF"; 50 51 51 - postInstall = lib.optional stdenv.isLinux '' 52 + postInstall = lib.optionalString stdenv.isLinux '' 52 53 install -Dm644 -t $out/share/applications $src/src/unix/assets/net.86box.86Box.desktop 53 54 54 55 for size in 48 64 72 96 128 192 256 512; do 55 56 install -Dm644 -t $out/share/icons/hicolor/"$size"x"$size"/apps \ 56 57 $src/src/unix/assets/"$size"x"$size"/net.86box.86Box.png 57 58 done; 59 + '' 60 + + lib.optionalString unfreeEnableRoms '' 61 + mkdir -p $out/share/86Box 62 + ln -s ${finalAttrs.passthru.roms} $out/share/86Box/roms 58 63 ''; 59 64 65 + passthru = { 66 + roms = fetchFromGitHub { 67 + owner = "86Box"; 68 + repo = "roms"; 69 + rev = "v${finalAttrs.version}"; 70 + hash = "sha256-1HtoizO0QIGNjQTW0clzRp40h1ulw55+iTYz12UJSms="; 71 + }; 72 + }; 73 + 60 74 # Some libraries are loaded dynamically, but QLibrary doesn't seem to search 61 75 # the runpath, so use a wrapper instead. 62 - postFixup = let 76 + preFixup = let 63 77 libPath = lib.makeLibraryPath ([ 64 78 libpcap 65 79 ] ++ lib.optional unfreeEnableDiscord discord-gamesdk); 66 80 libPathVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"; 67 - in 68 - '' 69 - wrapProgram $out/bin/86Box \ 70 - "''${qtWrapperArgs[@]}" \ 71 - --prefix ${libPathVar} : "${libPath}" 81 + in '' 82 + makeWrapperArgs+=(--prefix ${libPathVar} : "${libPath}") 72 83 ''; 73 - 74 - # Do not wrap twice. 75 - dontWrapQtApps = true; 76 84 77 85 meta = with lib; { 78 86 description = "Emulator of x86-based machines based on PCem."; 79 87 mainProgram = "86Box"; 80 88 homepage = "https://86box.net/"; 81 - license = with licenses; [ gpl2Only ] ++ optional unfreeEnableDiscord unfree; 89 + license = with licenses; [ gpl2Only ] 90 + ++ optional (unfreeEnableDiscord || unfreeEnableRoms) unfree; 82 91 maintainers = [ maintainers.jchw ]; 83 92 platforms = platforms.linux; 84 93 }; 85 - } 94 + })
+32
pkgs/by-name/cg/cgterm/package.nix
··· 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , SDL 5 + }: 6 + 7 + stdenv.mkDerivation (finalAttrs: { 8 + pname = "cg-term"; 9 + version = "1.7b2"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "MagerValp"; 13 + repo = "CGTerm"; 14 + rev = "01e35d64c29bccee52211b0afc66035a10e4792a"; # no tags 15 + hash = "sha256-Gk7t9wnVCRWwnqcItS3j031VqJnBqk6rHw1SABtzqfE="; 16 + }; 17 + 18 + buildInputs = [ 19 + SDL 20 + ]; 21 + 22 + makeFlags = [ "CC:=$(CC)" "PREFIX=$(out)" ]; 23 + 24 + meta = with lib; { 25 + description = "C/G telnet client for C64 BBS's"; 26 + homepage = "https://github.com/MagerValp/CGTerm"; 27 + license = licenses.bsd2; 28 + maintainers = with maintainers; [ matthewcroughan ]; 29 + mainProgram = "cg-term"; 30 + platforms = platforms.all; 31 + }; 32 + })
+26
pkgs/by-name/di/dipc/package.nix
··· 1 + { lib 2 + , rustPlatform 3 + , fetchFromGitHub 4 + }: 5 + 6 + rustPlatform.buildRustPackage rec { 7 + pname = "dipc"; 8 + version = "1.0.0"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "doprz"; 12 + repo = "dipc"; 13 + rev = "bf578bd9474084b7099ef665138667e486dce671"; 14 + hash = "sha256-RXEC8bwdnUOaDmYIb7ci/JD+vi16tBn55FRsUmwaRzk="; 15 + }; 16 + 17 + cargoHash = "sha256-XQ85T64K1NLdSOtAFr0XluvFNTaHzoWKxoQtBQ+uSKQ="; 18 + 19 + meta = with lib; { 20 + description = "Convert your favorite images and wallpapers with your favorite color palettes/themes"; 21 + homepage = "https://github.com/doprz/dipc"; 22 + license = with licenses; [ mit asl20 ]; 23 + maintainers = with maintainers; [ ByteSudoer ]; 24 + mainProgram = "dipc"; 25 + }; 26 + }
+45
pkgs/by-name/dm/dmalloc/package.nix
··· 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , testers 5 + , dmalloc 6 + }: 7 + 8 + stdenv.mkDerivation rec { 9 + pname = "dmalloc"; 10 + version = "5.6.5"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "j256"; 14 + repo = "dmalloc"; 15 + rev = "dmalloc_release_${lib.replaceStrings ["."] ["_"] version}"; 16 + hash = "sha256-P63I9s32C3v1q+Sy9joK0HKYb0ebBu9g72tTTwxvkz8="; 17 + }; 18 + 19 + configureFlags = [ 20 + "--enable-cxx" 21 + "--enable-shlib" 22 + "--enable-threads" 23 + ]; 24 + 25 + passthru.tests.version = testers.testVersion { 26 + package = dmalloc; 27 + }; 28 + 29 + meta = with lib; { 30 + description = "Debug Malloc memory allocation debugging C library"; 31 + longDescription = '' 32 + The debug memory allocation or "dmalloc" library has been designed as a 33 + drop in replacement for the system's malloc, realloc, calloc, free and 34 + other memory management routines while providing powerful debugging 35 + facilities configurable at runtime. These facilities include such things 36 + as memory-leak tracking, fence-post write detection, file/line number 37 + reporting, and general logging of statistics. 38 + ''; 39 + homepage = "https://dmalloc.com"; 40 + license = licenses.isc; 41 + maintainers = with maintainers; [ azahi ]; 42 + platforms = platforms.all; 43 + mainProgram = "dmalloc"; 44 + }; 45 + }
+5 -11
pkgs/by-name/gl/glide-media-player/package.nix
··· 13 13 , graphene 14 14 , gst_all_1 15 15 , glib-networking 16 - , darwin 17 16 }: 18 17 19 18 stdenv.mkDerivation rec { 20 19 pname = "glide-media-player"; 21 - version = "0.6.2"; 20 + version = "0.6.3"; 22 21 23 22 src = fetchFromGitHub { 24 23 owner = "philn"; 25 24 repo = "glide"; 26 25 rev = version; 27 - hash = "sha256-SN/1Yf4fHlDbJ2X6DGktsn1GFW8bbkeznlO1S8sBZyg="; 26 + hash = "sha256-rWWMMuA41uFWazIJBVLxzaCrR5X5tI4x+GXXYkfeqz8="; 28 27 }; 29 28 30 29 cargoDeps = rustPlatform.fetchCargoTarball { 31 30 inherit src; 32 31 name = "${pname}-${version}"; 33 - hash = "sha256-2Ma7ZAKFiAQXFWFze4RLwGu33d/vC6FVW6fJdqwED20="; 32 + hash = "sha256-Kvdbo5tkhwsah9W7Y5zqpoA3bVHfmjGj7Cjsqxkljls="; 34 33 }; 35 34 36 35 postPatch = '' ··· 41 40 patchShebangs --build \ 42 41 scripts/meson_post_install.py \ 43 42 build-aux/cargo-build.py 44 - '' + lib.optionalString stdenv.isDarwin '' 45 - sed -i "/wayland,x11egl,x11glx/d" meson.build 46 43 ''; 47 44 48 45 nativeBuildInputs = [ ··· 64 61 gst_all_1.gst-plugins-bad 65 62 gst_all_1.gst-plugins-good 66 63 glib-networking 67 - ] ++ lib.optionals stdenv.isDarwin [ 68 - darwin.apple_sdk_11_0.frameworks.IOKit 69 64 ]; 70 65 71 66 meta = with lib; { ··· 74 69 license = licenses.mit; 75 70 maintainers = with maintainers; [ aleksana ]; 76 71 mainProgram = "glide"; 77 - platforms = platforms.unix; 78 - # error: could not find system library 'gstreamer-gl-1.0' required by the 'gstreamer-gl-sys' crate 79 - broken = stdenv.isDarwin && stdenv.isx86_64; 72 + # Required gdk4-{wayland,x11} and gstreamer-gl not available on darwin 73 + platforms = subtractLists platforms.darwin platforms.unix; 80 74 }; 81 75 }
-29
pkgs/by-name/in/incus/529.patch
··· 1 - From 32a4beecbf8098fdbb15ef5f36088956922630f7 Mon Sep 17 00:00:00 2001 2 - From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@stgraber.org> 3 - Date: Fri, 23 Feb 2024 18:47:15 -0500 4 - Subject: [PATCH] incusd/device/disk: Fix incorrect block volume usage 5 - MIME-Version: 1.0 6 - Content-Type: text/plain; charset=UTF-8 7 - Content-Transfer-Encoding: 8bit 8 - 9 - Signed-off-by: Stéphane Graber <stgraber@stgraber.org> 10 - --- 11 - internal/server/device/disk.go | 5 +++++ 12 - 1 file changed, 5 insertions(+) 13 - 14 - diff --git a/internal/server/device/disk.go b/internal/server/device/disk.go 15 - index 0d19e21139..4f9a3e7c1b 100644 16 - --- a/internal/server/device/disk.go 17 - +++ b/internal/server/device/disk.go 18 - @@ -339,6 +339,11 @@ func (d *disk) validateConfig(instConf instance.ConfigReader) error { 19 - var usedBy []string 20 - 21 - err = storagePools.VolumeUsedByInstanceDevices(d.state, d.pool.Name(), storageProjectName, &dbVolume.StorageVolume, true, func(inst db.InstanceArgs, project api.Project, usedByDevices []string) error { 22 - + // Don't count the current instance. 23 - + if d.inst != nil && d.inst.Project().Name == inst.Project && d.inst.Name() == inst.Name { 24 - + return nil 25 - + } 26 - + 27 - usedBy = append(usedBy, inst.Name) 28 - 29 - return nil
+1 -3
pkgs/by-name/in/incus/client.nix
··· 31 31 subPackages = [ "cmd/incus" ]; 32 32 33 33 postInstall = '' 34 - # use custom bash completion as it has extra logic for e.g. instance names 35 - installShellCompletion --bash --name incus ./scripts/bash/incus 36 - 37 34 installShellCompletion --cmd incus \ 35 + --bash <($out/bin/incus completion bash) \ 38 36 --fish <($out/bin/incus completion fish) \ 39 37 --zsh <($out/bin/incus completion zsh) 40 38 '';
+1 -9
pkgs/by-name/in/incus/generic.nix
··· 45 45 inherit hash; 46 46 }; 47 47 48 - # replace with env var > 0.6 https://github.com/lxc/incus/pull/610 49 - postPatch = '' 50 - substituteInPlace internal/usbid/load.go \ 51 - --replace-fail "/usr/share/misc/usb.ids" "${hwdata}/share/hwdata/usb.ids" 52 - ''; 53 - 54 48 excludedPackages = [ 55 49 # statically compile these 56 50 "cmd/incus-agent" ··· 103 97 ''; 104 98 105 99 postInstall = '' 106 - # use custom bash completion as it has extra logic for e.g. instance names 107 - installShellCompletion --bash --name incus ./scripts/bash/incus 108 - 109 100 installShellCompletion --cmd incus \ 101 + --bash <($out/bin/incus completion bash) \ 110 102 --fish <($out/bin/incus completion fish) \ 111 103 --zsh <($out/bin/incus completion zsh) 112 104 '';
+4 -7
pkgs/by-name/in/incus/package.nix
··· 1 1 import ./generic.nix { 2 - hash = "sha256-tGuAS0lZvoYb+TvmCklQ8TADZhbm4w/lhdI0ycS4/0o="; 3 - version = "0.6.0"; 4 - vendorHash = "sha256-+WmgLOEBJ/7GF596iiTgyTPxn8l+hE6RVqjLKfCi5rs="; 5 - patches = [ 6 - # fix storage bug, fixed in > 0.6 7 - ./529.patch 8 - ]; 2 + hash = "sha256-6TLoua3rooDRyPc5BPYgzU/oeVy6F8h+p3UtKGPZkAE="; 3 + version = "0.7.0"; 4 + vendorHash = "sha256-Slw58pszT6sbpxK6/f+ojA+uStt0zSWxztFTm5ovZr8="; 5 + patches = [ ]; 9 6 }
+9 -2
pkgs/by-name/in/incus/update.nu
··· 10 10 let current_version = nix eval --raw -f default.nix $"($attr).version" | str trim 11 11 12 12 if $latest_tag != $current_version { 13 + print $"Updating: new ($latest_tag) != old ($current_version)" 13 14 update-source-version $attr $latest_tag $"--file=($file)" 14 15 15 16 let oldVendorHash = nix-instantiate . --eval --strict -A $"($attr).goModules.drvAttrs.outputHash" --json | from json 16 - let vendorHash = do { nix-build -A $"($attr).goModules" } | complete | get stderr | lines | str trim | find --regex 'got:[[:space:]]*sha256' | split row ' ' | last 17 - open $file | str replace $oldVendorHash $vendorHash | save --force $file 17 + let checkBuild = do { nix-build -A $"($attr).goModules" } | complete 18 + let vendorHash = $checkBuild.stderr | lines | str trim | find --regex 'got:[[:space:]]*sha256' | split row ' ' | last 18 19 20 + if $vendorHash != null { 21 + open $file | str replace $oldVendorHash $vendorHash | save --force $file 22 + } else { 23 + print $checkBuild.stderr 24 + exit 1 25 + } 19 26 } 20 27 21 28 {"lts?": $lts, before: $current_version, after: $latest_tag}
+28
pkgs/by-name/jo/job-security/package.nix
··· 1 + { lib 2 + , stdenv 3 + , rustPlatform 4 + , fetchFromGitHub 5 + }: 6 + 7 + rustPlatform.buildRustPackage rec { 8 + pname = "job-security"; 9 + version = "unstable-0-2024-03-24"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "yshui"; 13 + repo = "job-security"; 14 + rev = "3881a4a0e66afe19cbdba3f43d0f85732796f977"; 15 + hash = "sha256-mXmDzBsHdiim0bWrs0SvgtMZmKnYVz/RV9LNqPHHlnk="; 16 + }; 17 + 18 + cargoHash = "sha256-W5evL36ByUUjvSwa3Nmf4MT2oZYoQ8kmchNOxUwmpuE="; 19 + 20 + meta = { 21 + description = "Job control from anywhere"; 22 + homepage = "https://github.com/yshui/job-security"; 23 + license = with lib.licenses; [ asl20 mit mpl20 ]; 24 + maintainers = with lib.maintainers; [ fgaz ]; 25 + mainProgram = "jobs"; 26 + broken = stdenv.isDarwin; 27 + }; 28 + }
+15
pkgs/by-name/sc/scion/package.nix
··· 2 2 , buildGoModule 3 3 , fetchFromGitHub 4 4 , fetchpatch2 5 + , nixosTests 5 6 }: 6 7 let 7 8 version = "0.10.0"; ··· 42 43 ${skipTest 1 "TestOpensslCompatible" "scion-pki/trcs/sign_test.go"} 43 44 ''; 44 45 46 + postInstall = '' 47 + set +e 48 + mv $out/bin/gateway $out/bin/scion-ip-gateway 49 + mv $out/bin/dispatcher $out/bin/scion-dispatcher 50 + mv $out/bin/router $out/bin/scion-router 51 + mv $out/bin/control $out/bin/scion-control 52 + mv $out/bin/daemon $out/bin/scion-daemon 53 + set -e 54 + ''; 55 + 45 56 doCheck = true; 46 57 47 58 patches = [ ··· 50 61 hash = "sha256-mMGJMPB6T7KeDXjEXffdrhzyKwaFmhuisK6PjHOJIdU="; 51 62 }) 52 63 ]; 64 + 65 + passthru.tests = { 66 + inherit (nixosTests) scion-freestanding-deployment; 67 + }; 53 68 54 69 meta = with lib; { 55 70 description = "A future Internet architecture utilizing path-aware networking";
+80
pkgs/by-name/st/stackit-cli/package.nix
··· 1 + { lib 2 + , buildGoModule 3 + , fetchFromGitHub 4 + , installShellFiles 5 + , makeWrapper 6 + , less 7 + , xdg-utils 8 + , testers 9 + , runCommand 10 + , stackit-cli 11 + }: 12 + 13 + buildGoModule rec { 14 + pname = "stackit-cli"; 15 + version = "0.1.0-prerelease.2"; 16 + 17 + src = fetchFromGitHub { 18 + owner = "stackitcloud"; 19 + repo = "stackit-cli"; 20 + rev = "v${version}"; 21 + hash = "sha256-GS3ZXarhXs1xuVmiLPMrrzXnO79R1+2va0x7N7CKNjQ="; 22 + }; 23 + 24 + vendorHash = "sha256-Cill5hq8KVeKGRX2u9oIudi/s8XHIW5C8sgbTshrLY4="; 25 + 26 + subPackages = [ "." ]; 27 + 28 + CGO_ENABLED = 0; 29 + 30 + ldflags = [ 31 + "-s" 32 + "-w" 33 + "-X main.version=${version}" 34 + ]; 35 + 36 + nativeBuildInputs = [ installShellFiles makeWrapper ]; 37 + 38 + preCheck = '' 39 + export HOME=$TMPDIR # needed because the binary always creates a dir & config file 40 + ''; 41 + 42 + postInstall = '' 43 + export HOME=$TMPDIR # needed because the binary always creates a dir & config file 44 + mv $out/bin/{${pname},stackit} # rename the binary 45 + 46 + installShellCompletion --cmd stackit --bash <($out/bin/stackit completion bash) 47 + installShellCompletion --cmd stackit --zsh <($out/bin/stackit completion zsh) 48 + installShellCompletion --cmd stackit --fish <($out/bin/stackit completion fish) 49 + # Use this instead, once https://github.com/stackitcloud/stackit-cli/issues/153 is fixed: 50 + # installShellCompletion --cmd stackit \ 51 + # --bash <($out/bin/stackit completion bash) \ 52 + # --zsh <($out/bin/stackit completion zsh) \ 53 + # --fish <($out/bin/stackit completion fish) 54 + # Ensure that all 3 completion scripts exist AND have content (should be kept for regression testing) 55 + [ $(find $out/share -not -empty -type f | wc -l) -eq 3 ] 56 + ''; 57 + 58 + postFixup = '' 59 + wrapProgram $out/bin/stackit \ 60 + --suffix PATH : ${lib.makeBinPath [ less xdg-utils ]} 61 + ''; 62 + 63 + nativeCheckInputs = [ less ]; 64 + 65 + passthru.tests = { 66 + version = testers.testVersion { 67 + package = stackit-cli; 68 + command = "HOME=$TMPDIR stackit --version"; 69 + }; 70 + }; 71 + 72 + meta = with lib; { 73 + description = "CLI to manage STACKIT cloud services"; 74 + homepage = "https://github.com/stackitcloud/stackit-cli"; 75 + changelog = "https://github.com/stackitcloud/stackit-cli/releases/tag/v${version}"; 76 + license = licenses.asl20; 77 + maintainers = with maintainers; [ DerRockWolf ]; 78 + mainProgram = "stackit"; 79 + }; 80 + }
+55
pkgs/by-name/vl/vlc-bittorrent/package.nix
··· 1 + { lib 2 + , autoconf-archive 3 + , autoreconfHook 4 + , boost 5 + , fetchFromGitHub 6 + , libtorrent-rasterbar 7 + , libvlc 8 + , openssl 9 + , pkg-config 10 + , stdenv 11 + }: 12 + 13 + # VLC does not know where the vlc-bittorrent package is installed. 14 + # make sure to have something like: 15 + # environment.variables.VLC_PLUGIN_PATH = "${pkgs.vlc-bittorrent}"; 16 + 17 + stdenv.mkDerivation (finalAttrs: { 18 + pname = "vlc-bittorrent"; 19 + version = "2.15.0"; 20 + 21 + src = fetchFromGitHub { 22 + owner = "johang"; 23 + repo = "vlc-bittorrent"; 24 + rev = "v${finalAttrs.version}"; 25 + hash = "sha256-7FHeQYHbMKZJ3yeHqxTTAUwghTje+gEX8gSEJzfG5sQ="; 26 + }; 27 + 28 + nativeBuildInputs = [ 29 + autoconf-archive 30 + autoreconfHook 31 + pkg-config 32 + ]; 33 + 34 + buildInputs = [ 35 + boost 36 + libtorrent-rasterbar 37 + libvlc 38 + openssl 39 + ]; 40 + 41 + strictDeps = true; 42 + 43 + # It's a library, should not have a desktop file 44 + postFixup = '' 45 + rm -r $out/share/ 46 + ''; 47 + 48 + meta = with lib; { 49 + description = "A bittorrent plugin for VLC"; 50 + homepage = "https://github.com/johang/vlc-bittorrent"; 51 + license = licenses.gpl3Plus; 52 + platforms = platforms.linux; 53 + maintainers = [ maintainers.kintrix ]; 54 + }; 55 + })
+3 -3
pkgs/data/fonts/iosevka/default.nix
··· 55 55 56 56 buildNpmPackage rec { 57 57 pname = "Iosevka${toString set}"; 58 - version = "29.0.3"; 58 + version = "29.0.4"; 59 59 60 60 src = fetchFromGitHub { 61 61 owner = "be5invis"; 62 62 repo = "iosevka"; 63 63 rev = "v${version}"; 64 - hash = "sha256-7vNfmrQ/B+T9hF5/ikIU1RvBcSRStnEmOY7VPbrll6s="; 64 + hash = "sha256-dkFvgiGCHvBp7gBNAG08cfpTc0c7b2oU56xfxjPHhm8="; 65 65 }; 66 66 67 - npmDepsHash = "sha256-FGGhuMlDhXd97AY23/ZPlrcrmirZIooAYJaskn2aM6w="; 67 + npmDepsHash = "sha256-IvMO0LZy/vlNxsp2D5pK97l6OIltrjv8iZ2CGl2XhFM="; 68 68 69 69 nativeBuildInputs = [ 70 70 remarshal
+1 -1
pkgs/development/libraries/qt-6/qt-env.nix
··· 4 4 inherit name; 5 5 paths = [ qtbase ] ++ paths; 6 6 7 - pathsToLink = [ "/bin" "/mkspecs" "/include" "/lib" "/share" "/libexec" ]; 7 + pathsToLink = [ "/metatypes" "/bin" "/mkspecs" "/include" "/lib" "/share" "/libexec" ]; 8 8 extraOutputsToInstall = [ "out" "dev" ]; 9 9 10 10 postBuild = ''
+2 -2
pkgs/development/python-modules/llama-index-readers-database/default.nix
··· 9 9 10 10 buildPythonPackage rec { 11 11 pname = "llama-index-readers-database"; 12 - version = "0.1.2"; 12 + version = "0.1.3"; 13 13 pyproject = true; 14 14 15 15 disabled = pythonOlder "3.8"; ··· 17 17 src = fetchPypi { 18 18 pname = "llama_index_readers_database"; 19 19 inherit version; 20 - hash = "sha256-9hbaUioGe8KVWX1O+Bwx0aOvJtVGb4lX/SZwYNJ/Xp0="; 20 + hash = "sha256-1J6FE6iID4U9cEcPPUK5CvCTmbgVWxI4AFLrx+gPGWg="; 21 21 }; 22 22 23 23 build-system = [
+2 -2
pkgs/development/python-modules/pathlib-abc/default.nix
··· 8 8 9 9 buildPythonPackage rec { 10 10 pname = "pathlib-abc"; 11 - version = "0.1.1"; 11 + version = "0.2.0"; 12 12 pyproject = true; 13 13 14 14 disabled = pythonOlder "3.8"; ··· 16 16 src = fetchPypi { 17 17 pname = "pathlib_abc"; 18 18 inherit version; 19 - hash = "sha256-CE573ZGbD3d0kUqeZM2GobOYYPgfeB3XJCWGMfKRWr4="; 19 + hash = "sha256-ua9rOf1RMhSFZ47DgD0KEeAqIuhp6AUsrLbo9l3nuGI="; 20 20 }; 21 21 22 22 build-system = [
+7 -2
pkgs/development/python-modules/sqlmodel/default.nix
··· 25 25 hash = "sha256-hDJcekn0ExYUCs8kBZkJzsWqXsB/cI6RbW3EhRCCioM="; 26 26 }; 27 27 28 - nativeBuildInputs = [ 28 + build-system = [ 29 29 poetry-core 30 30 ]; 31 31 32 - propagatedBuildInputs = [ 32 + dependencies = [ 33 33 pydantic 34 34 sqlalchemy 35 35 ]; ··· 43 43 44 44 pythonImportsCheck = [ 45 45 "sqlmodel" 46 + ]; 47 + 48 + disabledTests = [ 49 + # AssertionError: assert 'enum_field VARCHAR(1) 50 + "test_sqlite_ddl_sql" 46 51 ]; 47 52 48 53 disabledTestPaths = [
+2 -2
pkgs/development/tools/analysis/flow/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "flow"; 5 - version = "0.231.0"; 5 + version = "0.232.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "facebook"; 9 9 repo = "flow"; 10 10 rev = "v${version}"; 11 - hash = "sha256-xZ6hyAnfWMwNZfkDIPV+0Cjs/HBMwBME6tZwQW38Cmk="; 11 + hash = "sha256-hYFVfkkJFAg5Ij7kwLiMeIHYjPLElHhzDPET6kBQCSg="; 12 12 }; 13 13 14 14 postPatch = ''
+2 -2
pkgs/development/tools/continuous-integration/github-runner/default.nix
··· 23 23 24 24 buildDotnetModule rec { 25 25 pname = "github-runner"; 26 - version = "2.314.1"; 26 + version = "2.315.0"; 27 27 28 28 src = fetchFromGitHub { 29 29 owner = "actions"; 30 30 repo = "runner"; 31 31 rev = "v${version}"; 32 - hash = "sha256-PHcCXWA6LcxpqdbTGbOUqnS4fIJLbHOhEPdagGF71q0="; 32 + hash = "sha256-kKfwLZYV4uEkHt82YWNtDehbspgnH8heckVU5aA/YiY="; 33 33 leaveDotGit = true; 34 34 postFetch = '' 35 35 git -C $out rev-parse --short HEAD > $out/.git-revision
+3 -3
pkgs/development/tools/hclfmt/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "hclfmt"; 5 - version = "2.20.0"; 5 + version = "2.20.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "hashicorp"; 9 9 repo = "hcl"; 10 10 rev = "v${version}"; 11 - hash = "sha256-gXipXBi/IFB4F+vr1BBp91kcIRpWvxkSttb62Cl3h0g="; 11 + hash = "sha256-+4K6k32azx/66eag9c6lUN8TUJ1ICx4Q8zpnTJWqgQ0="; 12 12 }; 13 13 14 - vendorHash = "sha256-MXiLfCbXXw2PMlj/3eAvbReH11IzS/G/4ajV37B5lOs="; 14 + vendorHash = "sha256-L5OabeDUXbrwFOgWRhi9FPTWK+xbL54ZM7cYhS15Jis="; 15 15 16 16 # The code repository includes other tools which are not useful. Only build 17 17 # hclfmt.
+3 -3
pkgs/development/tools/misc/texlab/default.nix
··· 15 15 in 16 16 rustPlatform.buildRustPackage rec { 17 17 pname = "texlab"; 18 - version = "5.13.1"; 18 + version = "5.14.0"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "latex-lsp"; 22 22 repo = "texlab"; 23 23 rev = "refs/tags/v${version}"; 24 - hash = "sha256-fmtNalpOOPEiMO5zDD6m01cDfFuaLQsYPk6cc7yvjog="; 24 + hash = "sha256-/VXhL03wZz0B0qoQe7JqmtzN020LSmcWB5QOkZFboz0="; 25 25 }; 26 26 27 - cargoHash = "sha256-5ojXplzkBwchnSZLkwR5jz8WgyEA14Y1iVQ+Q19U8Tg="; 27 + cargoHash = "sha256-hIQeo4FCEbgpa99ho5cwJgiXtAYbqgzyj6kW8fNtTWA="; 28 28 29 29 outputs = [ "out" ] ++ lib.optional (!isCross) "man"; 30 30
+3 -3
pkgs/development/tools/rust/cargo-mobile2/default.nix
··· 12 12 let 13 13 inherit (darwin.apple_sdk.frameworks) CoreServices; 14 14 pname = "cargo-mobile2"; 15 - version = "0.11.0"; 15 + version = "0.11.1"; 16 16 in 17 17 rustPlatform.buildRustPackage { 18 18 inherit pname version; ··· 20 20 owner = "tauri-apps"; 21 21 repo = pname; 22 22 rev = "cargo-mobile2-v${version}"; 23 - hash = "sha256-1P9ImNyYU1dwGdwc1f6QSGm7H7D5uEozfSJqfEzla+A="; 23 + hash = "sha256-HLDuWEKLij1hTKxf3lrAb4d2DIHzzkj4kuiZXgQwH4Q="; 24 24 }; 25 25 26 26 # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at 27 27 # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202 28 28 # sourceRoot = "${src.name}/tooling/cli"; 29 29 30 - cargoHash = "sha256-DmZ7Bdx5EHFkN528EhhJnNOLXEcLglFHvdgywpE59uo="; 30 + cargoHash = "sha256-jCsP5xhNkqnwz8HocUzzf17omU8WDNrL/WVj/lP+51w="; 31 31 32 32 preBuild = '' 33 33 mkdir -p $out/share/
+4
pkgs/development/tools/vagrant/default.nix
··· 91 91 mkdir -p "$out/vagrant-plugins/plugins.d" 92 92 echo '{}' > "$out/vagrant-plugins/plugins.json" 93 93 94 + # install bash completion 94 95 mkdir -p $out/share/bash-completion/completions/ 95 96 cp -av contrib/bash/completion.sh $out/share/bash-completion/completions/vagrant 97 + # install zsh completion 98 + mkdir -p $out/share/zsh/site-functions/ 99 + cp -av contrib/zsh/_vagrant $out/share/zsh/site-functions/ 96 100 '' + 97 101 lib.optionalString withLibvirt '' 98 102 substitute ${./vagrant-libvirt.json.in} $out/vagrant-plugins/plugins.d/vagrant-libvirt.json \
-1
pkgs/os-specific/linux/akvcam/default.nix
··· 29 29 maintainers = with maintainers; [ freezeboy ]; 30 30 platforms = platforms.linux; 31 31 license = licenses.gpl2Only; 32 - broken = kernel.kernelAtLeast "5.18"; 33 32 }; 34 33 }
+54 -14
pkgs/servers/web-apps/kavita/change-webroot.diff
··· 1 1 diff --git a/API/Controllers/FallbackController.cs b/API/Controllers/FallbackController.cs 2 - index 2f5d7fce..faaf128a 100644 2 + index 0c925476..c7b30f39 100644 3 3 --- a/API/Controllers/FallbackController.cs 4 4 +++ b/API/Controllers/FallbackController.cs 5 - @@ -1,4 +1,4 @@ 6 - -using System; 7 - +using System; 8 - using System.IO; 9 - using API.Services; 10 - using Microsoft.AspNetCore.Authorization; 11 5 @@ -22,7 +22,7 @@ public class FallbackController : Controller 12 6 13 - public ActionResult Index() 7 + public PhysicalFileResult Index() 14 8 { 15 9 - return PhysicalFile(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "index.html"), "text/HTML"); 16 - + return PhysicalFile(Path.Combine("@web_root@", "index.html"), "text/HTML"); 10 + + return PhysicalFile(Path.Combine("@webroot@", "index.html"), "text/HTML"); 17 11 } 18 12 } 19 13 14 + diff --git a/API/Services/DirectoryService.cs b/API/Services/DirectoryService.cs 15 + index 15afddf9..aff1f230 100644 16 + --- a/API/Services/DirectoryService.cs 17 + +++ b/API/Services/DirectoryService.cs 18 + @@ -113,7 +113,7 @@ public class DirectoryService : IDirectoryService 19 + ExistOrCreate(SiteThemeDirectory); 20 + FaviconDirectory = FileSystem.Path.Join(FileSystem.Directory.GetCurrentDirectory(), "config", "favicons"); 21 + ExistOrCreate(FaviconDirectory); 22 + - LocalizationDirectory = FileSystem.Path.Join(FileSystem.Directory.GetCurrentDirectory(), "I18N"); 23 + + LocalizationDirectory = FileSystem.Path.Join("@out@/lib/kavita-backend", "I18N"); 24 + } 25 + 26 + /// <summary> 27 + diff --git a/API/Services/LocalizationService.cs b/API/Services/LocalizationService.cs 28 + index ab3ad3d8..ac813a69 100644 29 + --- a/API/Services/LocalizationService.cs 30 + +++ b/API/Services/LocalizationService.cs 31 + @@ -52,8 +52,7 @@ public class LocalizationService : ILocalizationService 32 + else 33 + { 34 + _localizationDirectoryUi = directoryService.FileSystem.Path.Join( 35 + - directoryService.FileSystem.Directory.GetCurrentDirectory(), 36 + - "wwwroot", "assets/langs"); 37 + + "@webroot@", "assets/langs"); 38 + } 39 + 40 + _cacheOptions = new MemoryCacheEntryOptions() 20 41 diff --git a/API/Startup.cs b/API/Startup.cs 21 - index f84ef638..7eaeb05e 100644 42 + index 939bfb58..1adb9373 100644 22 43 --- a/API/Startup.cs 23 44 +++ b/API/Startup.cs 24 - @@ -33,6 +33,7 @@ using Microsoft.AspNetCore.ResponseCompression; 25 - using Microsoft.AspNetCore.StaticFiles; 45 + @@ -36,6 +36,7 @@ using Microsoft.AspNetCore.StaticFiles; 46 + using Microsoft.EntityFrameworkCore; 26 47 using Microsoft.Extensions.Configuration; 27 48 using Microsoft.Extensions.DependencyInjection; 28 49 +using Microsoft.Extensions.FileProviders; 29 50 using Microsoft.Extensions.Hosting; 30 51 using Microsoft.Extensions.Logging; 31 52 using Microsoft.Net.Http.Headers; 32 - @@ -298,6 +299,7 @@ public class Startup 53 + @@ -298,9 +299,6 @@ public class Startup 54 + app.UsePathBase(basePath); 55 + if (!env.IsDevelopment()) 56 + { 57 + - // We don't update the index.html in local as we don't serve from there 58 + - UpdateBaseUrlInIndex(basePath); 59 + - 60 + // Update DB with what's in config 61 + var dataContext = serviceProvider.GetRequiredService<DataContext>(); 62 + var setting = dataContext.ServerSetting.SingleOrDefault(x => x.Key == ServerSettingKey.BaseUrl); 63 + @@ -333,6 +334,7 @@ public class Startup 33 64 34 65 app.UseStaticFiles(new StaticFileOptions 35 66 { 36 - + FileProvider = new PhysicalFileProvider("@web_root@"), 67 + + FileProvider = new PhysicalFileProvider("@webroot@"), 37 68 ContentTypeProvider = new FileExtensionContentTypeProvider(), 38 69 HttpsCompression = HttpsCompressionMode.Compress, 39 70 OnPrepareResponse = ctx => 71 + @@ -394,7 +396,7 @@ public class Startup 72 + try 73 + { 74 + var htmlDoc = new HtmlDocument(); 75 + - var indexHtmlPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "index.html"); 76 + + var indexHtmlPath = Path.Combine("@webroot@", "index.html"); 77 + htmlDoc.Load(indexHtmlPath); 78 + 79 + var baseNode = htmlDoc.DocumentNode.SelectSingleNode("/html/head/base");
+17 -11
pkgs/servers/web-apps/kavita/default.nix
··· 10 10 11 11 stdenvNoCC.mkDerivation (finalAttrs: { 12 12 pname = "kavita"; 13 - version = "0.7.1.4"; 13 + version = "0.7.13"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "kareadita"; 17 17 repo = "kavita"; 18 18 rev = "v${finalAttrs.version}"; 19 - hash = "sha256-jNhiwyz6iVSLlvMNjI689TwQYuEvTJ+QaPvvDQ4UOwc="; 19 + hash = "sha256-S4lJTLxNjGmgBJt89i3whBglMU2EQ0VelLG6iP6bY8g="; 20 20 }; 21 21 22 22 backend = buildDotnetModule { ··· 25 25 26 26 patches = [ 27 27 # The webroot is hardcoded as ./wwwroot 28 - (substituteAll { 29 - src = ./change-webroot.diff; 30 - web_root = "${finalAttrs.frontend}/lib/node_modules/kavita-webui/dist"; 31 - }) 28 + ./change-webroot.diff 32 29 ]; 30 + postPatch = '' 31 + substituteInPlace API/Services/DirectoryService.cs --subst-var out 32 + 33 + substituteInPlace API/Startup.cs API/Services/LocalizationService.cs API/Controllers/FallbackController.cs \ 34 + --subst-var-by webroot "${finalAttrs.frontend}/lib/node_modules/kavita-webui/dist/browser" 35 + ''; 33 36 34 37 executables = [ "API" ]; 35 38 36 39 projectFile = "API/API.csproj"; 37 40 nugetDeps = ./nuget-deps.nix; 38 - dotnet-sdk = dotnetCorePackages.sdk_6_0; 39 - dotnet-runtime = dotnetCorePackages.aspnetcore_6_0; 41 + dotnet-sdk = dotnetCorePackages.sdk_8_0; 42 + dotnet-runtime = dotnetCorePackages.aspnetcore_8_0; 40 43 }; 41 44 42 45 frontend = buildNpmPackage { ··· 48 51 npmBuildScript = "prod"; 49 52 npmFlags = [ "--legacy-peer-deps" ]; 50 53 npmRebuildFlags = [ "--ignore-scripts" ]; # Prevent playwright from trying to install browsers 51 - npmDepsHash = "sha256-w0CuTPyCQyAxULvqd6+GiZaPlO8fh4xLmbEnGA47pL8="; 54 + npmDepsHash = "sha256-jseoczC2Ay3D1wDUZbWXTYQJGSWdgobJ3+Z1bp+PQG4="; 52 55 }; 53 56 54 57 dontBuild = true; ··· 64 67 runHook postInstall 65 68 ''; 66 69 67 - passthru.tests = { inherit (nixosTests) kavita; }; 70 + passthru = { 71 + tests = { inherit (nixosTests) kavita; }; 72 + updateScript = ./update.sh; 73 + }; 68 74 69 75 meta = { 70 76 description = "A fast, feature rich, cross platform reading server"; ··· 72 78 changelog = "https://github.com/kareadita/kavita/releases/tag/${finalAttrs.src.rev}"; 73 79 license = lib.licenses.gpl3Only; 74 80 platforms = lib.platforms.linux; 75 - maintainers = with lib.maintainers; [ misterio77 ]; 81 + maintainers = with lib.maintainers; [ misterio77 nevivurn ]; 76 82 mainProgram = "kavita"; 77 83 }; 78 84 })
+149 -153
pkgs/servers/web-apps/kavita/nuget-deps.nix
··· 2 2 # Please dont edit it manually, your changes might get overwritten! 3 3 4 4 { fetchNuGet }: [ 5 - (fetchNuGet { pname = "AutoMapper"; version = "12.0.0"; sha256 = "014r8kff1hw2k7q6979h4f333sr1lh367lmgx4iny2v3k93s7d7x"; }) 6 - (fetchNuGet { pname = "AutoMapper.Extensions.Microsoft.DependencyInjection"; version = "12.0.0"; sha256 = "1l17sby8l1ixn008y17wi98h74af7zmpann9kfzvqr4p0z7lg86m"; }) 7 - (fetchNuGet { pname = "CsvHelper"; version = "30.0.1"; sha256 = "0v01s672zcrd3fjwzh14dihbal3apzyg3dc80k05a90ljk8yh9wl"; }) 8 - (fetchNuGet { pname = "Docnet.Core"; version = "2.4.0-alpha.4"; sha256 = "1giv20m5gi03ybhgs10fim1k3amfc7k0iz6bwb14gw0qcnh63mhy"; }) 5 + (fetchNuGet { pname = "AutoMapper"; version = "12.0.1"; sha256 = "0s0wjl4ck3sal8a50x786wxs9mbca7bxaqk3558yx5wpld4h4z3b"; }) 6 + (fetchNuGet { pname = "AutoMapper.Extensions.Microsoft.DependencyInjection"; version = "12.0.1"; sha256 = "0gjsjgfmfa3xx773idh7nxly4mz9ragiy0dqsc9xfzy7b5mlzw91"; }) 7 + (fetchNuGet { pname = "Docnet.Core"; version = "2.6.0"; sha256 = "1b1nj984ly4zgj28fri1a6ych9sdiacxkms8pvzsclvyxkf0ri8m"; }) 9 8 (fetchNuGet { pname = "DotNet.Glob"; version = "3.1.3"; sha256 = "1klgj9m7i3g8x1yj96wnikvf0hlvr6rhqhl4mgis08imcrl95qg6"; }) 10 - (fetchNuGet { pname = "ExCSS"; version = "4.1.0"; sha256 = "1dbnl1dgkkwcrls9nw63xsjph14f3xx134dksbcjak3k3ynbnl6v"; }) 9 + (fetchNuGet { pname = "EasyCaching.Core"; version = "1.9.2"; sha256 = "0qkzaxmn899hhfh32s8mhg3zcqqy2p05kaaldz246nram5gvf7qp"; }) 10 + (fetchNuGet { pname = "EasyCaching.InMemory"; version = "1.9.2"; sha256 = "0ifcnmd3hqy44jvfwy3zzjccsxqalfv6clmj0clp9yln3js51awq"; }) 11 + (fetchNuGet { pname = "ExCSS"; version = "4.2.4"; sha256 = "04x3kaiywnjih8vrg5qafwvzgcsvshay8v3i2lv2ddkl6lnawh5n"; }) 11 12 (fetchNuGet { pname = "Flurl"; version = "3.0.6"; sha256 = "1y82lbag0gkfpj361psk5761hn7k0zmrp9cpdvnjyp75bdimiaiy"; }) 13 + (fetchNuGet { pname = "Flurl"; version = "3.0.7"; sha256 = "1i56774jsy2qlk573vzvcpjh5hf22yrhxs694j1c4gwggarnqz16"; }) 12 14 (fetchNuGet { pname = "Flurl.Http"; version = "3.2.4"; sha256 = "0vp5a1rrfi28in775d7fac96rcrikzjd2gbz0k3p925y1f2wlw5k"; }) 13 - (fetchNuGet { pname = "Hangfire"; version = "1.7.31"; sha256 = "1c02nrg16pm5aypvlnddyj6zds4sj59qrhc980d9y5gf7nx72kjl"; }) 14 - (fetchNuGet { pname = "Hangfire.AspNetCore"; version = "1.7.31"; sha256 = "0shfgqphjyb61djvrssnf2npbid236lbdpfvsznsl5hga9x3bdah"; }) 15 + (fetchNuGet { pname = "Hangfire"; version = "1.8.7"; sha256 = "11ygahx9bjd1y33cmihk5h7aggwcm7hvnzkg11cq066mrcrlzqr9"; }) 16 + (fetchNuGet { pname = "Hangfire.AspNetCore"; version = "1.8.7"; sha256 = "0lwvvk3d0rbghdk3k7r1z9a7hi6yagxynmzlp5bmb8raw5qx7q13"; }) 15 17 (fetchNuGet { pname = "Hangfire.Core"; version = "1.6.1"; sha256 = "0rg4lzzckscck9gvjqhcn1yq9qymfs4dfkv6fwgnklyfpvxmsqbq"; }) 16 18 (fetchNuGet { pname = "Hangfire.Core"; version = "1.6.17"; sha256 = "0kr2hjnl9c4dpk4kf95jxcgsxalvixfm6xis37qn5ja9n9ygqans"; }) 17 - (fetchNuGet { pname = "Hangfire.Core"; version = "1.7.0"; sha256 = "0yy9z7zssqysyp73phg6p5p1lva56d1vh9r825dn6w26jxdrlz21"; }) 18 - (fetchNuGet { pname = "Hangfire.Core"; version = "1.7.31"; sha256 = "13jfgd9x7a63yqs0b7y9jnkwi1jwq7h2mp8cxp0bzn3xk8w45kqi"; }) 19 - (fetchNuGet { pname = "Hangfire.Core"; version = "1.7.6"; sha256 = "19rfwpq714fybxara6vsr3r0h0wgnzrrvhqlhprh5lvgv15z9glm"; }) 20 - (fetchNuGet { pname = "Hangfire.InMemory"; version = "0.3.4"; sha256 = "1afrvxw6z0a78wrrv4mzrn86pvwr9zy97cwfs2k7s1aq5wp655r8"; }) 19 + (fetchNuGet { pname = "Hangfire.Core"; version = "1.8.0"; sha256 = "047g50s2nz32dnpqm9lnsvpgz8g3azip2mpc6s15wb78b8c9s48n"; }) 20 + (fetchNuGet { pname = "Hangfire.Core"; version = "1.8.7"; sha256 = "0f5l55sbw0shp0l9zv2h98l8ghvvhgdgqqwcq3rdlpapcv0w3z5j"; }) 21 + (fetchNuGet { pname = "Hangfire.InMemory"; version = "0.7.0"; sha256 = "0c6icc14kw5lybk2fqprks37vs3sv4j1acn8z12p3b62cxc2a3bb"; }) 21 22 (fetchNuGet { pname = "Hangfire.MaximumConcurrentExecutions"; version = "1.1.0"; sha256 = "181147h5dsbml58ffq1jc7k6012fahi0n20wply9gmn6v1dh8h66"; }) 22 23 (fetchNuGet { pname = "Hangfire.MemoryStorage.Core"; version = "1.4.0"; sha256 = "1hw8dlclxgg21ay1pqj9mxxm3alm03k9wxaz055lb14w3nzyma3c"; }) 23 - (fetchNuGet { pname = "Hangfire.SqlServer"; version = "1.7.31"; sha256 = "1hjln8jnp3ysv525c7cm31z0jpxgvncn3isi57mjalax0pjsl5hb"; }) 24 - (fetchNuGet { pname = "Hangfire.Storage.SQLite"; version = "0.3.2"; sha256 = "05w8la0zyh6lvgw98lwh1jaqxj0h9720jz5fc3bl4gaxnxfw17y2"; }) 25 - (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.46"; sha256 = "0yx0xgbbzd6fdyslf7pc37bxk4hfkj1c7359ibqwmapv9aby7lm2"; }) 26 - (fetchNuGet { pname = "Humanizer.Core"; version = "2.8.26"; sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; }) 24 + (fetchNuGet { pname = "Hangfire.NetCore"; version = "1.8.7"; sha256 = "09p53pm7z3v549w7bb85qf66wg62nx0gxy6rgkgk2lbyabacyi1a"; }) 25 + (fetchNuGet { pname = "Hangfire.SqlServer"; version = "1.8.7"; sha256 = "0kzddl3r5rxx1m95skj7hkimzkz9x57b51bhkq1yhvchjd9j5wzj"; }) 26 + (fetchNuGet { pname = "Hangfire.Storage.SQLite"; version = "0.4.0"; sha256 = "0kyyisvvx8m40wmfay1kcrzqwr3hhdlkppadkwsgk0r892d5drqw"; }) 27 + (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.57"; sha256 = "0brswm659d2vb11021z7xylljlnaf344yf5q093bqxyhbxva8ijq"; }) 28 + (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; }) 27 29 (fetchNuGet { pname = "MarkdownDeep.NET.Core"; version = "1.5.0.4"; sha256 = "0cpshs1lwmyyg40lvnf4b9s1z7yaw6s4a0341qr4ww40791gzvrl"; }) 28 - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.16"; sha256 = "1v02j1i139a8x32hgi1yhcpp754xi0sg5b7iqzmslvinfg3b7dwn"; }) 29 - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.16"; sha256 = "0c6ys204024yi6wh6jyyvkv60f877nzlmzl6np30w9a3nxlavnhw"; }) 30 - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.16"; sha256 = "1xdhn8v8y947kw29npck1h9qaw8rj81q7a0qwawpc2200ds96n40"; }) 31 - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.16"; sha256 = "1p84za2cxyxxbkgxhfnmdarkz64dacx9f52jplrfs9rgl19anan4"; }) 32 - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.16"; sha256 = "1i26fssv17w3kcaqwk5w2aq03jdijhrfl0xp0q5s68j7i4wrlv6l"; }) 33 30 (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.Abstractions"; version = "2.2.0"; sha256 = "0vj7fhpk0d95nkkxz4q0rma6pb4ym96mx6nms4603y0l19h0k5yh"; }) 34 - (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.JwtBearer"; version = "6.0.10"; sha256 = "0prhz63lakq9vihdppb6k1q9ix2crzbcfpkxbks698cirh9pbxmn"; }) 35 - (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.OpenIdConnect"; version = "6.0.10"; sha256 = "0vpw55k7w2ha9nrffabq4mhik54y93bbf9hk99klaxnirnxhrjqh"; }) 31 + (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.JwtBearer"; version = "8.0.1"; sha256 = "0519873g49gdbhnqizgxlikifcgswr09ybrh0wcwhbwiqnx49dg9"; }) 32 + (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.OpenIdConnect"; version = "8.0.1"; sha256 = "0n9x563ihvkp7cncwzlnyzm6zwxm6nsm8hv0j6f66jv7vzmcsq0q"; }) 36 33 (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "2.2.0"; sha256 = "1mpq8pmxlxfa625k2ghv6xcyy2wdpwv56xzya9mvmlnh50h1i8rx"; }) 37 34 (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization.Policy"; version = "2.2.0"; sha256 = "1d1zh65kfjf81j21ssmhr465vx08bra8424vgnrb22gdx03mhwd2"; }) 38 35 (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "2.2.0"; sha256 = "1rl94r8b0zq14f3dhfnvfjj1ivr81iw9zh5kdgs3zkdv0xc9x21j"; }) 39 - (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "6.0.10"; sha256 = "1jlhgrzm4pv9yigif1khrqkc7hk4v8lz657hfiqvvih32xm13c1w"; }) 40 - (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.KeyDerivation"; version = "6.0.10"; sha256 = "1k6j5mm7cbqljr0x6qks0359r5r33mw4a0mpanfqc1sd3i3x465y"; }) 36 + (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "8.0.1"; sha256 = "1gc2y4v1cvayy2fai02gsv1z6fr58kxb5jnmbjqxnd0zf49m88j7"; }) 37 + (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.KeyDerivation"; version = "8.0.1"; sha256 = "0fnvim0rmiw9jm8xvajb5b9w4wawp95szy2dfh2aw1n8jgzs207x"; }) 41 38 (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.2.0"; sha256 = "043k651vbfshh3s997x42ymj8nb32419m7q3sjw5q2c27anrhfhv"; }) 42 39 (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.2.0"; sha256 = "0nz73bwrvhc1n7gd7xxm3p5ww2wx9qr9m9i43y20gh0c54adkygh"; }) 43 40 (fetchNuGet { pname = "Microsoft.AspNetCore.Http"; version = "2.2.0"; sha256 = "1fcrafpa57sab3as18idqknzlxkx49n4sxzlzik3sj6pcji5j17q"; }) ··· 46 43 (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "1.1.0"; sha256 = "0x3hq0d3bs6n46nfvbd5n4cgi6m4yjfsf3k25xjcc8gcj66072iy"; }) 47 44 (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn"; }) 48 45 (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1"; }) 49 - (fetchNuGet { pname = "Microsoft.AspNetCore.Identity.EntityFrameworkCore"; version = "6.0.10"; sha256 = "0zdgc7336lh562p8cy03wk8aawk5ngyzgbalbrqfbzf4graawsna"; }) 46 + (fetchNuGet { pname = "Microsoft.AspNetCore.Identity.EntityFrameworkCore"; version = "8.0.1"; sha256 = "08pnswpz17pfr923p9iv6imgzb8yfhsi4g31lxrhzglagahv4hiy"; }) 50 47 (fetchNuGet { pname = "Microsoft.AspNetCore.Routing"; version = "2.2.0"; sha256 = "12kv602j2rxp43l1v3618yz3pdd7hqc3r98ya0bqz6y2ppvhbyws"; }) 51 48 (fetchNuGet { pname = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.2.0"; sha256 = "0d9wwz1rsh1fslbv1y72jpkvqv2v9n28rl3vslcg0x74lp2678ly"; }) 52 49 (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR"; version = "1.1.0"; sha256 = "16p01hxcrpj7iiwcqmwjfmciyisxp1mr0qa1wcx1ja4i0m0g292l"; }) ··· 55 52 (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.Json"; version = "1.1.0"; sha256 = "0zcyb3brzpw03f7vgkc3450izpvjgy0kjkgkp1mi9bc76xrvv094"; }) 56 53 (fetchNuGet { pname = "Microsoft.AspNetCore.WebSockets"; version = "2.2.0"; sha256 = "0hii6kd45xhswjwakhzm8wqxr10l959cch6h2w0x0ika3315a6b3"; }) 57 54 (fetchNuGet { pname = "Microsoft.AspNetCore.WebUtilities"; version = "2.2.0"; sha256 = "0cs1g4ing4alfbwyngxzgvkrv7z964isv1j9dzflafda4p0wxmsi"; }) 55 + (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; }) 56 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; }) 57 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.5.0"; sha256 = "0hjzca7v3qq4wqzi9chgxzycbaysnjgj28ps20695x61sia6i3da"; }) 58 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.5.0"; sha256 = "1l6v0ii5lapmfnfpjwi3j5bwlx8v9nvyani5pwvqzdfqsd5m7mp5"; }) 59 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "4.5.0"; sha256 = "0skg5a8i4fq6cndxcjwciai808p0zpqz9kbvck94mcywfzassv1a"; }) 60 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "4.5.0"; sha256 = "1wjwsrnn5frahqciwaxsgalv80fs6xhqy6kcqy7hcsh7jrfc1kjq"; }) 58 61 (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; }) 59 - (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; }) 60 62 (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; }) 61 - (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "6.0.10"; sha256 = "1sdh5rw2pyg6c64z0haxf57bakd5kwaav624vlqif1m59iz26rag"; }) 62 - (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "6.0.10"; sha256 = "014varyy877kxzgqp9bl9l81avz8dr34hn4ad23qr17lvllchk95"; }) 63 - (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "6.0.10"; sha256 = "1w93zr8z1f3yn6ygxnlbly8spz3jr77v0h9ky596gpvfg46wi5fd"; }) 64 - (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "6.0.10"; sha256 = "0wvkgrmxgjnqv2kc69n44wsy129f09951a8dh7d4vjbi5f5jcx12"; }) 65 - (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "6.0.10"; sha256 = "0pwah00gbm7rycsvjp4yaph9wjxnh14lzlds2r8v2smw0zwzp9da"; }) 66 - (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "6.0.10"; sha256 = "11b2ibj5sgj8mm708vm9ar8vqgzsx9j4rsxzzn3xnrqbjvfxpjal"; }) 67 - (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "6.0.10"; sha256 = "0hv70ns69rgf029219jkasrw16j8609gnmi1zk7v2wgm8pxdsjdy"; }) 68 - (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "6.0.10"; sha256 = "1s1wj12maw6kzfxzh1j2wrx5m1vwcsc411jq6zklqvrbw0r0ylyc"; }) 63 + (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.1"; sha256 = "1ippysjxq97vz4kd0jxiqbcamgd9xxb6n23ias5d4c7gbiwayz0z"; }) 64 + (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.1"; sha256 = "1k1c63vkzr020q0pb6xxf29xlgxldnzhlqpmpq9fig85y73s84ds"; }) 65 + (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.1"; sha256 = "1p8c2xfz8kgzswh9kq38mmy8qxfynnkywj9vwx15azbi8wcmh24x"; }) 66 + (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.1"; sha256 = "0l0fi9kiinj021sfk85qds1rdzavpkl24sjyzfyb8q8jmj5l2i0n"; }) 67 + (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "8.0.1"; sha256 = "1y21lmbnq271q7q1vsq1z5gnz4fy89zca8qzm6bg2qfv8bgqqrny"; }) 68 + (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "8.0.1"; sha256 = "12zmg196mpd0wacwyrckv6l5rl76dzmvr588i437xiwp0iyjcsh9"; }) 69 + (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "8.0.1"; sha256 = "1igwxjmzgzkzyhmg5jbis6hynnzf5vfzl00h053si89h5m6vvhmb"; }) 70 + (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "8.0.1"; sha256 = "0zg7whf02jlpcs72ngiydwd2xwwlvz3nja0xnyxv4k4w56qs8qcj"; }) 69 71 (fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; sha256 = "1pi2bm3cm0a7jzqzmfc2r7bpcdkmk3hhjfvb2c81j7wl7xdw3624"; }) 70 - (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "6.0.0"; sha256 = "0qn30d3pg4rx1x2k525jj4x5g1fxm2v5m0ksz2dmk1gmqalpask8"; }) 71 - (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "6.0.1"; sha256 = "0ra0ldbg09r40jzvfqhpb3h42h80nafvka9hg51dja32k3mxn5gk"; }) 72 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.0.0"; sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9"; }) 73 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "6.0.0"; sha256 = "1zdyai2rzngmsp3706d12qrdk315c1s3ja218fzb3nc3wd1vz0s8"; }) 74 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.0.0"; sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf"; }) 72 + (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "8.0.0"; sha256 = "04m6ywsf9731z24nfd14z0ah8xl06619ba7mkdb4vg8h5jpllsn4"; }) 73 + (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "8.0.0"; sha256 = "0bv8ihd5i2gwr97qljwf56h8mdwspmlw0zs64qyk608fb3ciwi25"; }) 74 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; }) 75 75 (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; }) 76 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.8"; sha256 = "05mlbia6vag0a0zfflv1m3ix48230wx0yib5hp7zsc72jpcmjd7q"; }) 76 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.0.0"; sha256 = "0xdchxw63r8rh84zdjkv8i89lq4a7h5iwqw19vwjf0l5gavyz40q"; }) 77 77 (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; }) 78 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.0.0"; sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc"; }) 78 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; }) 79 79 (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "6.0.0"; sha256 = "15hb2rbzgri1fq8wpj4ll7czm3rxqzszs02phnhjnncp90m5rmpc"; }) 80 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "6.0.0"; sha256 = "1hb4qrq9xdxzh2px515pv1vkz1jigwaxw1hfg9w8s6pgl8z04l4c"; }) 81 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "6.0.1"; sha256 = "16xpqfzpcjk3mg70g5g2qrkhqf7rppah3q6dasdddbpikw43ni47"; }) 82 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "6.0.0"; sha256 = "02nna984iwnyyz4jjh9vs405nlj0yk1g5vz4v2x30z2c89mx5f9w"; }) 83 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "6.0.0"; sha256 = "1c6l5szma1pdn61ncq1kaqibg0dz65hbma2xl626a8d1m6awn353"; }) 84 - (fetchNuGet { pname = "Microsoft.Extensions.Configuration.UserSecrets"; version = "6.0.1"; sha256 = "0faddzvkhjhsn9fp269r4sapjrahiynwlwakhzljfg3k94jfldk1"; }) 85 - (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0"; sha256 = "1wlhb2vygzfdjbdzy7waxblmrx0q3pdcqvpapnpmq9fcx5m8r6w1"; }) 86 - (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.1"; sha256 = "0kl5ypidmzllyxb91gwy3z950dc416p1y8wikzbdbp0l7aaaxq2p"; }) 80 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r"; }) 81 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "8.0.0"; sha256 = "026f7f2iv6ph2dc5rnslll0bly8qcx5clmh2nn9hgyqjizzc4qvy"; }) 82 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "8.0.0"; sha256 = "13qb8wz3k59ihq0mjcqz1kwrpyzxn5da4dhk2pvcgc42z9kcbf7r"; }) 83 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "8.0.0"; sha256 = "1jrmlfzy4h32nzf1nm5q8bhkpx958b0ww9qx1k1zm4pyaf6mqb04"; }) 84 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "8.0.0"; sha256 = "1n3ss26v1lq6b69fxk1vz3kqv9ppxq8ypgdqpd7415xrq66y4bqn"; }) 85 + (fetchNuGet { pname = "Microsoft.Extensions.Configuration.UserSecrets"; version = "8.0.0"; sha256 = "1br01zhzhnxjzqx63bxd25x48y9xs69hcs71pjni8y9kl50zja7z"; }) 86 + (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; }) 87 87 (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.0.0"; sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz"; }) 88 88 (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; }) 89 - (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.8"; sha256 = "1vkhhyxpam3svbqkkxrcxh9h4r6h3vm76cdzmfqn7gbxgswc4y2w"; }) 89 + (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.0.0"; sha256 = "06s8j8v0w06f12jxw6vvsd0l5zqrmsvc3rr2gqx9z3gcq7mdnr3l"; }) 90 90 (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.9"; sha256 = "1l7ng71y18fwdlyq2ycl12hmv9wrf7k7knz2jwv9w9w7spmp8jv6"; }) 91 - (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; }) 92 91 (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; }) 93 - (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "3.0.0"; sha256 = "1cm0hycgb33mf1ja9q91wxi3gk13d1p462gdq7gndrya23hw2jm5"; }) 92 + (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; sha256 = "1zw0bpp5742jzx03wvqc8csnvsbgdqi0ls9jfc5i2vd3cl8b74pg"; }) 94 93 (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "3.1.6"; sha256 = "13m2na8a5mglbbjjp0dxb8ifkf23grkyk1g8585mr7v6cbj098ac"; }) 95 - (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; }) 94 + (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "8.0.0"; sha256 = "02jnx23hm1vid3yd9pw4gghzn6qkgdl5xfc5r0zrcxdax70rsh5a"; }) 95 + (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics"; version = "8.0.0"; sha256 = "0ghwkld91k20hcbmzg2137w81mzzdh8hfaapdwckhza0vipya4kw"; }) 96 + (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; sha256 = "15m4j6w9n8h0mj7hlfzb83hd3wn7aq1s7fxbicm16slsjfwzj82i"; }) 96 97 (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54"; }) 97 - (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "3.1.8"; sha256 = "0z173lsfypzjdx1a352svh1pgk7lgq2wpj5q60i1rgcrd3ib8b21"; }) 98 - (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "6.0.0"; sha256 = "1fbqmfapxdz77drcv1ndyj2ybvd2rv4c9i9pgiykcpl4fa6dc65q"; }) 99 - (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "6.0.0"; sha256 = "1ikc3kf325xig6njbi2aj5kmww4xlaq9lsrpc8v764fsm4x10474"; }) 100 - (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "6.0.0"; sha256 = "09gyyv4fwy9ys84z3aq4lm9y09b7bd1d4l4gfdinmg0z9678f1a4"; }) 101 - (fetchNuGet { pname = "Microsoft.Extensions.Hosting"; version = "6.0.1"; sha256 = "11jwzzyryr6i2nwfcrs4rjv4qg0zmm15gaa882xk54ric3zc37ig"; }) 98 + (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "3.0.0"; sha256 = "165l30n9mi9j3dv45rr4xx1dwg9z520yja22jcb7jw0lq0ic28j2"; }) 99 + (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "8.0.0"; sha256 = "1idq65fxwcn882c06yci7nscy9i0rgw6mqjrl7362prvvsd9f15r"; }) 100 + (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "8.0.0"; sha256 = "05wxjvjbx79ir7vfkri6b28k8zl8fa6bbr0i7gahqrim2ijvkp6v"; }) 101 + (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "8.0.0"; sha256 = "1igf2bqism22fxv7km5yv028r4rg12a4lki2jh4xg3brjkagiv7q"; }) 102 + (fetchNuGet { pname = "Microsoft.Extensions.Hosting"; version = "8.0.0"; sha256 = "1f2af5m1yny8b43251gsj75hjd9ixni1clcldy8cg91z1vxxm8dh"; }) 102 103 (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.2.0"; sha256 = "1xc7xr1nq7akfahyl5in9iyxrygap2xi9nxh39rfm37sf8lk55v1"; }) 103 - (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "3.1.8"; sha256 = "1lc69rn259gd6y4rjy0hwrcfnhkr0y0ac8w4ldh6mpk073snfjq0"; }) 104 - (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "6.0.0"; sha256 = "1mwjx6li4a82nb589763whpnhf5hfy1bpv1dzqqvczb1lhxhzhlj"; }) 105 - (fetchNuGet { pname = "Microsoft.Extensions.Identity.Core"; version = "6.0.10"; sha256 = "1cqp9adfc0nzakykqdj7v2842sys910k64pmnklc2jrdn5chphba"; }) 106 - (fetchNuGet { pname = "Microsoft.Extensions.Identity.Stores"; version = "6.0.10"; sha256 = "01kzmgbyii2sxi89iv7fjvk1crqcnzkz7m6dvfjnhgx479fm8g68"; }) 104 + (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "3.0.0"; sha256 = "13ijaki0nzlvbwxjxb1hjhzj86jgn23nw34gdwp2l7bf3x2h4hw9"; }) 105 + (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "8.0.0"; sha256 = "00d5dwmzw76iy8z40ly01hy9gly49a7rpf7k7m99vrid1kxp346h"; }) 106 + (fetchNuGet { pname = "Microsoft.Extensions.Identity.Core"; version = "8.0.1"; sha256 = "0gf68x3zxbn3gxzdjmbfcqhm58ybxvpanl4pq8vs5g492qw7h24b"; }) 107 + (fetchNuGet { pname = "Microsoft.Extensions.Identity.Stores"; version = "8.0.1"; sha256 = "19c0by2r85jqz6pj8mnr047aasasr7fbzi3ih04gchj8la69ka5h"; }) 107 108 (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.0.0"; sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386"; }) 108 - (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; }) 109 109 (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; }) 110 + (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; sha256 = "0nppj34nmq25gnrg0wh1q22y4wdqbih4ax493f226azv8mkp9s1i"; }) 110 111 (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.0.0"; sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h"; }) 111 112 (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; }) 112 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.8"; sha256 = "0iq8py91xvma10rysq3dl29nxhmlgniad3cvafb4jg8iz52ym24h"; }) 113 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; }) 113 + (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.0.0"; sha256 = "0453382r1f39hgvw631lk1hx2kas8xa1xjr6xq4wshan8d62xgd7"; }) 114 114 (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; }) 115 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "2.0.0"; sha256 = "1kndzxrbxd6hh6zpas25xx096q2lablrdx5di79vsmkxf65996a9"; }) 116 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "6.0.0"; sha256 = "0plx785hk61arjxf0m3ywy9hl5nii25raj4523n3ql7mmv6hxqr1"; }) 117 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "6.0.0"; sha256 = "1383b0r33dzz0hrch9cqzzxr9vxr21qq0a5vnrpkfq71m2fky31d"; }) 118 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "6.0.0"; sha256 = "0aql9kc45g2d6z1hmwr3p1a2qy9m3f36bds3054givsnpnis81wk"; }) 119 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventLog"; version = "6.0.0"; sha256 = "0j3g2k8sr99kr73w66yk4ghq469syyxzayq6fjfnjjgj1y7x05fl"; }) 120 - (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventSource"; version = "6.0.0"; sha256 = "0ck8r63qal88349kkbj1i98fd8z9kcp41s13yyz8cpkygn15wq4g"; }) 115 + (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; sha256 = "1klcqhg3hk55hb6vmjiq2wgqidsl81aldw0li2z98lrwx26msrr6"; }) 116 + (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "8.0.0"; sha256 = "1d9b734vnll935661wqkgl7ry60rlh5p876l2bsa930mvfsaqfcv"; }) 117 + (fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "8.0.0"; sha256 = "1mvp3ipw7k33v2qw2yrvc4vl5yzgpk3yxa94gg0gz7wmcmhzvmkd"; }) 118 + (fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "8.0.0"; sha256 = "1h7mg97lj0ss47kq7zwnihh9c6xcrkwrr8ffhc16qcsrh36sg6q0"; }) 119 + (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventLog"; version = "8.0.0"; sha256 = "05vfrxw7mlwlwhsl6r4yrhxk3sd8dv5sl0hdlcpgw62n53incw5x"; }) 120 + (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventSource"; version = "8.0.0"; sha256 = "0gbjll6p03rmw0cf8fp0p8cxzn9awmzv8hvnyqbczrkax5h7p94i"; }) 121 121 (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "2.2.0"; sha256 = "0n1q9lvc24ii1shzy575xldgmz7imnk4dswwwcgmzz93klri9r1z"; }) 122 122 (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; }) 123 123 (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; }) 124 - (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; }) 125 124 (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; }) 126 - (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "2.0.0"; sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll"; }) 125 + (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; }) 126 + (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.1"; sha256 = "01jsya858i861x6d7qbl3wlr0gp2y7x2m4q6f1r743w360z8zgpn"; }) 127 127 (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "6.0.0"; sha256 = "1k6q91vrhq1r74l4skibn7wzxzww9l74ibxb2i8gg4q6fzbiivba"; }) 128 + (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; sha256 = "04nm8v5a3zp0ill7hjnwnja3s2676b4wffdri8hdk2341p7mp403"; }) 128 129 (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.0.0"; sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb"; }) 129 130 (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; }) 130 - (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.8"; sha256 = "1p48hk3r9ikv36wdpwdrbvaccziazncf7nl60fr82i04199lfhgl"; }) 131 - (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; }) 131 + (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.0.0"; sha256 = "1d89yybxm7c30h5w79psybmpvy0pw7ha9r0y70f7i0kxgp8n62bk"; }) 132 132 (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; }) 133 - (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.24.0"; sha256 = "06hdlj8j3ckhr2jglcfwmazlqbcnwqb10c86vwnwmiv6czrl9m2b"; }) 134 - (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.24.0"; sha256 = "1lxfbjcvqdk9aircy30jrwsjfr0dwn334shis0k3x0qag3ynp180"; }) 135 - (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.10.0"; sha256 = "0fg742czl8rz6ljh6gscv6sck2f8dfgrig3j76ihzrnayd0hjvyf"; }) 136 - (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.24.0"; sha256 = "07l8hfpd50gab12s8xiad8wi4ggr6v3pmv7b0zbff6i9yshp0lgj"; }) 137 - (fetchNuGet { pname = "Microsoft.IdentityModel.Protocols"; version = "6.10.0"; sha256 = "17cm3xpkp5rvfcx5d8bnsgc1mq52ky1fxv1h48dk1nafkkijg3zq"; }) 138 - (fetchNuGet { pname = "Microsoft.IdentityModel.Protocols.OpenIdConnect"; version = "6.10.0"; sha256 = "18n9d5qywvv5jc0iryxfasy3lwknf1zv76hz64656x39aprwdmm3"; }) 139 - (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.10.0"; sha256 = "1qlg5snjxzgwx7lwkszl6aziyzs2jbsr0xvbn1lhq2lq7gl07khy"; }) 140 - (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.24.0"; sha256 = "1rgxi6jkhm8nj8yby65v1b6x8fp655b92w2y7ly2fj385s0d5qgy"; }) 141 - (fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "2.2.1"; sha256 = "1nz1cv5dz0bg9snzig6fyaidb92b4ynfljj7l34vnqc9xbnqxv83"; }) 133 + (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; }) 134 + (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.1.2"; sha256 = "01jdg8b1hi4nx5h1cn9baalfkp4y70kc2wf4lz77kw8w1fvrppa0"; }) 135 + (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.2.0"; sha256 = "06r0hv7n4v1s751k2032frfh9hkfkxpi42rdz10llcay7lcqjjh6"; }) 136 + (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.2.0"; sha256 = "17xbqb351xfnniwj2322xyaiajbdilihdp9j9knbr80d8rm62sv2"; }) 137 + (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.1.2"; sha256 = "1yi7s2pm4f8vl6b0qck0nrfsrf1h4jwamznkzl75n1cwxpbdikp8"; }) 138 + (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.2.0"; sha256 = "01zfbgg1vcqq36cg5sdrq0fy78fywm7m2v4a79011k5ng9g0ck7z"; }) 139 + (fetchNuGet { pname = "Microsoft.IdentityModel.Protocols"; version = "7.1.2"; sha256 = "0ql5b7472g7359b1pqh2lfm8s3lym9vyzj1xpvbhsv9syk9czrg8"; }) 140 + (fetchNuGet { pname = "Microsoft.IdentityModel.Protocols.OpenIdConnect"; version = "7.1.2"; sha256 = "06r9i1m6zhfbbx18p0drpcbswirlq7xg0wm3iqfjgzxyv053033h"; }) 141 + (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.1.2"; sha256 = "1q70c1ax9f5nggqp4g8nyfaz0481grsaxhp85cmjpmx8l3q35zx9"; }) 142 + (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.2.0"; sha256 = "17xi2sb041dkigkkvnbg0lb5r1i9gjxv2irncqycg60hl1fcp27l"; }) 143 + (fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "3.0.0"; sha256 = "1zl39k27r4zq75r1x1zr1yl4nzxpkxdnnv6dwd4qp0xr22my85aq"; }) 142 144 (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "2.2.0"; sha256 = "0w6lrk9z67bcirq2cj2ldfhnizc6id77ba6i30hjzgqjlyhh1gx5"; }) 143 - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.16"; sha256 = "0iv5186gb778swka9ylzblwvr8pp7cmsvji5iiszrnfvk8c4n3ia"; }) 144 - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.16"; sha256 = "1pv9arqbmxlh86rnx6nss2cl91hi22j83p66m4ahds34caykf32l"; }) 145 - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.16"; sha256 = "01f98kkq8p3xll4mh6ck8ljgs3k5psv5z7mys7kpvk7lvag2svaa"; }) 146 - (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.16"; sha256 = "19ffmw131b8kv7l5pmwi4358j5xhla48qdyn6jv9fznffcsxfgzc"; }) 147 - (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.16"; sha256 = "1w89n5grnxdis0wclfimi9ij8g046yrw76rhmcp8l57xm8nl21yj"; }) 148 - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.16"; sha256 = "10dlkzk61nnnw6f5rr1lmrws2p4hvbpkswm3209w45z350n9nlpy"; }) 149 - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.16"; sha256 = "1fjrc1l7ihal93ybxqzlxrs7vdqb9jhkabh2acwrmlh7q5197vn2"; }) 150 - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.16"; sha256 = "0jsfjp32z08pgi82blcrhmf5ipkhlg1kld8jmr7znzgv0kic8xyh"; }) 151 - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.16"; sha256 = "0gghxcr32mri7235f41w5ngdxrw85q28nd7d57hmzj72cv93yxb3"; }) 152 145 (fetchNuGet { pname = "Microsoft.NETCore.Jit"; version = "1.0.2"; sha256 = "0jaan2wmg80lr0mhgfy70kb5cqjwv1a2ikmxgd0glpcxp7wr7pag"; }) 153 146 (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; }) 154 147 (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) 155 148 (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; }) 156 149 (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; }) 157 - (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; }) 158 150 (fetchNuGet { pname = "Microsoft.NETCore.Portable.Compatibility"; version = "1.0.1"; sha256 = "1qwar1jv2pwl354bbi75rvcjz27rrk0z0vzgx8h4f1ypn2m5h3f5"; }) 159 151 (fetchNuGet { pname = "Microsoft.NETCore.Runtime.CoreCLR"; version = "1.0.2"; sha256 = "1hxgsjyzh7hdgd34xwpn5s2myy1b1y9ms7xhvs6mkb75wap49bpc"; }) 160 152 (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; }) ··· 164 156 (fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.3.1"; sha256 = "0icds4jxz90v156vkbza1s1rqdf737glfddbllkp6y2zcnin99yv"; }) 165 157 (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; }) 166 158 (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; }) 167 - (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.4.0"; sha256 = "088j2anh1rnkxdcycw5kgp97ahk7cj741y6kask84880835arsb6"; }) 168 - (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; }) 159 + (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "8.0.0"; sha256 = "05392f41ijgn17y8pbjcx535l1k09krnq3xdp60kyq568sn6xk2i"; }) 160 + (fetchNuGet { pname = "MimeTypeMapOfficial"; version = "1.0.17"; sha256 = "1l5d42pgfz4cpvgdyxf2crzyv7jycky5mhmrrl5501p3806i3r0y"; }) 161 + (fetchNuGet { pname = "Mono.TextTemplating"; version = "2.2.1"; sha256 = "1ih6399x4bxzchw7pq5195imir9viy2r1w702vy87vrarxyjqdp1"; }) 162 + (fetchNuGet { pname = "Nager.ArticleNumber"; version = "1.0.7"; sha256 = "1lfhr20527xhzql5nsn5c1s5as79haz9xcqan8pqsfk200hc27af"; }) 169 163 (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; }) 170 164 (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; }) 171 - (fetchNuGet { pname = "NetVips"; version = "2.2.0"; sha256 = "10hqqzd84qa0yn9zcyzv8mcjh6g7g0xv0fc4binh92zw9a4g542p"; }) 172 - (fetchNuGet { pname = "NetVips.Native"; version = "8.13.1"; sha256 = "0yxci6zffy8kaz8dg85b2qw8zcjswmm56m5bvxaha1khbx1vpkz3"; }) 173 - (fetchNuGet { pname = "NetVips.Native.linux-arm"; version = "8.13.1"; sha256 = "0ypz0qslkmcd62n7z3y4yq16f9ybbnvka16bk7h72cv6bsdw9hzp"; }) 174 - (fetchNuGet { pname = "NetVips.Native.linux-arm64"; version = "8.13.1"; sha256 = "0wvh7rl1c56ipa1i6rh6nq80wvvl5bz2wswk219lyb2psd0vza3f"; }) 175 - (fetchNuGet { pname = "NetVips.Native.linux-musl-arm64"; version = "8.13.1"; sha256 = "0gj92wg76ynfx0kz8z26mg67aclyz0yn6xxp0g5mlj09kscbmikx"; }) 176 - (fetchNuGet { pname = "NetVips.Native.linux-musl-x64"; version = "8.13.1"; sha256 = "13hf0mij2gryn00701msamq5ijrdgv080ipm50gz80vb09l3ra2s"; }) 177 - (fetchNuGet { pname = "NetVips.Native.linux-x64"; version = "8.13.1"; sha256 = "1yx3mrp9n85fqpkgn43fv8ah9rcv301cn3ngkzy54rzlmlmf0qr2"; }) 178 - (fetchNuGet { pname = "NetVips.Native.osx-arm64"; version = "8.13.1"; sha256 = "1ifh9ic2g91kwsz7p1g4icw36rs0hjnd8dr1ahgrdb4nh5ap3vcc"; }) 179 - (fetchNuGet { pname = "NetVips.Native.osx-x64"; version = "8.13.1"; sha256 = "0ksgydiv8d63brsg2wkpc2dv88yz3kw2zzx0i0gfnwwn7vxsv1k9"; }) 180 - (fetchNuGet { pname = "NetVips.Native.win-arm64"; version = "8.13.1"; sha256 = "1qzfz5wys81dmf4v4l4gmx8syx7x26450fwp2dc8fh4m33910dqr"; }) 181 - (fetchNuGet { pname = "NetVips.Native.win-x64"; version = "8.13.1"; sha256 = "02x7n14w2iff5xvp340yc4j810mk3hnd8z8vl604r3ywwbaaykn2"; }) 182 - (fetchNuGet { pname = "NetVips.Native.win-x86"; version = "8.13.1"; sha256 = "1lzrqvmxqbm0y897bavl7pmfn2ywpjw6arfvj0v5i84y7glrp981"; }) 165 + (fetchNuGet { pname = "NetVips"; version = "2.4.0"; sha256 = "0q4ghm4d19hl6ilxvvmlgdffp3gjnkrirc5665lc85rvziw6xcx9"; }) 166 + (fetchNuGet { pname = "NetVips.Native"; version = "8.15.1"; sha256 = "1ah8frrady684nxf3w4iq6gjcmsrmhndhy6mcyrlsw2i4l4wf1lw"; }) 167 + (fetchNuGet { pname = "NetVips.Native.linux-arm"; version = "8.15.1"; sha256 = "0c4q5wwb7zmz8skzyyg6iag7qlxbc9pklzvi3qlml6c3qwv4b0mi"; }) 168 + (fetchNuGet { pname = "NetVips.Native.linux-arm64"; version = "8.15.1"; sha256 = "1dwjd780l1b1831x1ksiha0ds6414inwjxcl6mb5k3imzfzfck3a"; }) 169 + (fetchNuGet { pname = "NetVips.Native.linux-musl-arm64"; version = "8.15.1"; sha256 = "1md5dk905s28n8q2j6c5wp7zglzmcaqy4dim1qgillkk1651pqnl"; }) 170 + (fetchNuGet { pname = "NetVips.Native.linux-musl-x64"; version = "8.15.1"; sha256 = "1xwlwfidhwdnnw9c9dxag3y90h3l4n408jgq9v25ad8m441134zj"; }) 171 + (fetchNuGet { pname = "NetVips.Native.linux-x64"; version = "8.15.1"; sha256 = "1905sd6zf8qbsfdbh16i6c5f9dznqdgzhz1fywvjfspsbdj3hilp"; }) 172 + (fetchNuGet { pname = "NetVips.Native.osx-arm64"; version = "8.15.1"; sha256 = "03gj78ibggm32nr6qpiykq0h463y81rzsawfdp091ikbxmnm98c7"; }) 173 + (fetchNuGet { pname = "NetVips.Native.osx-x64"; version = "8.15.1"; sha256 = "0r0mqfk9i59nvj15wgzh2rymv6fl0liw5bdcgmk80bfsfjqsrv4d"; }) 174 + (fetchNuGet { pname = "NetVips.Native.win-arm64"; version = "8.15.1"; sha256 = "1l8qwdw03vbc4dkmvw2iyw7b8w0cm20mydgv6diby48q46g5xgcy"; }) 175 + (fetchNuGet { pname = "NetVips.Native.win-x64"; version = "8.15.1"; sha256 = "1vriqri1ppk8glmsyxb7cfcsi42kz6skpx5ggqkrxsfp9yz22x46"; }) 176 + (fetchNuGet { pname = "NetVips.Native.win-x86"; version = "8.15.1"; sha256 = "0p8166fsqmyzy5xvfy2raxp9h38m702mbqf9ab88vxig3i4rsxk8"; }) 183 177 (fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.1"; sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m"; }) 184 178 (fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; }) 185 179 (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; }) 186 180 (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; }) 187 - (fetchNuGet { pname = "NReco.Logging.File"; version = "1.1.5"; sha256 = "1chvzhyvlnqswa1r1vbnk4h0as2f2dba3dnsldmmck7pb0vaj673"; }) 181 + (fetchNuGet { pname = "NReco.Logging.File"; version = "1.2.0"; sha256 = "0bqj9xygxg8bdhm467cmrpzigcikmadir1bq8p0rbfg0rg7ppd4a"; }) 188 182 (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; }) 189 183 (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; }) 190 184 (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; }) ··· 207 201 (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; }) 208 202 (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; }) 209 203 (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; }) 210 - (fetchNuGet { pname = "runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "15wnpyy506q3vyk1yzdjjf49zpdynr7ghh0x5fbz4pcc1if0p9ky"; }) 211 204 (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; }) 212 205 (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; }) 213 206 (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; }) ··· 231 224 (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; }) 232 225 (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; }) 233 226 (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; }) 234 - (fetchNuGet { pname = "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "07byf1iyqb7jkb17sp0mmjk46fwq6fx8mlpzywxl7qk09sma44gk"; }) 235 - (fetchNuGet { pname = "runtime.win-x64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0167s4mpq8bzk3y11pylnynzjr2nc84w96al9x4l8yrf34ccm18y"; }) 236 - (fetchNuGet { pname = "runtime.win-x86.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0k3rkfrlm9jjz56dra61jgxinb8zsqlqzik2sjwz7f8v6z6ddycc"; }) 237 227 (fetchNuGet { pname = "Scrutor"; version = "3.3.0"; sha256 = "0qdfbp73hbsiqbv0rg6f91hnp1j535iqk8bmp3ickwd7w337m1vi"; }) 238 - (fetchNuGet { pname = "Serilog"; version = "2.12.0"; sha256 = "0lqxpc96qcjkv9pr1rln7mi4y7n7jdi4vb36c2fv3845w1vswgr4"; }) 239 - (fetchNuGet { pname = "Serilog.AspNetCore"; version = "6.0.1"; sha256 = "1i3cs0dfba82x4m08i0h3wv53dnbx3j3lidsqd6flgfhk5y8q13q"; }) 228 + (fetchNuGet { pname = "Serilog"; version = "3.1.1"; sha256 = "0ck51ndmaqflsri7yyw5792z42wsp91038rx2i6vg7z4r35vfvig"; }) 229 + (fetchNuGet { pname = "Serilog.AspNetCore"; version = "8.0.0"; sha256 = "0g1scn1a5paiydxk1nnrwzzqny2vabc3hniy6jwjqycag6ch2pni"; }) 240 230 (fetchNuGet { pname = "Serilog.Enrichers.Thread"; version = "3.2.0-dev-00752"; sha256 = "0d0phxzdpc8xkbyd18s1dcv9xa22gqs2i2x5cpa9qzj0g8zwp641"; }) 241 - (fetchNuGet { pname = "Serilog.Extensions.Hosting"; version = "5.0.1"; sha256 = "11fs8qiikv3flpl6yhfrwflgvbdy62np7blx7nzcf6gx02zdgy1b"; }) 231 + (fetchNuGet { pname = "Serilog.Extensions.Hosting"; version = "8.0.0"; sha256 = "10cgp4nsrzkld5yxnvkfkwd0wkc1m8m7p5z42w4sqd8f188n8i9q"; }) 242 232 (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "3.0.1"; sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a"; }) 243 - (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "3.1.0"; sha256 = "0lv370ks2fjdn1nsgkbzbmw6hybnincw3jabr471a5w39pp4fl1c"; }) 244 - (fetchNuGet { pname = "Serilog.Formatting.Compact"; version = "1.1.0"; sha256 = "1w3qhj1jrihb20gr9la4r4gcmdyyy6dai2xflwhzvgqrq05wlycy"; }) 245 - (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "3.4.0"; sha256 = "1l6fyy9y5a168i1mm107aqyrwzhqmpy0cp1v13l2b89yv8dc105j"; }) 233 + (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "8.0.0"; sha256 = "087ab94sfhkj6h6x3cwwf66g456704faxnfyc4pi6shxk45b318s"; }) 234 + (fetchNuGet { pname = "Serilog.Formatting.Compact"; version = "2.0.0"; sha256 = "0y7vg2qji02riq7r0kgybarhkngw6gh3xw89w7c2hcmjawd96x3k"; }) 235 + (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "8.0.0"; sha256 = "0245gvndwbj4nbp8q09vp7w4i9iddxr0vzda2c3ja5afz1zgs395"; }) 246 236 (fetchNuGet { pname = "Serilog.Sinks.AspNetCore.SignalR"; version = "0.4.0"; sha256 = "0sljv39dr8mfbxjzqzik6qa72rc48v9z1hny4j61381cscnank1a"; }) 247 - (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "4.1.0"; sha256 = "1rpkphmqfh3bv3m7v1zwz88wz4sirj4xqyff9ga0c6bqhblj6wii"; }) 237 + (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "5.0.1"; sha256 = "0cnjjpnnhlx3k4385dbnddkz3n6khdshjix0hlv4gjmrrmjaixva"; }) 248 238 (fetchNuGet { pname = "Serilog.Sinks.Debug"; version = "2.0.0"; sha256 = "1i7j870l47gan3gpnnlzkccn5lbm7518cnkp25a3g5gp9l0dbwpw"; }) 249 239 (fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0"; sha256 = "097rngmgcrdfy7jy8j7dq3xaq2qky8ijwg0ws6bfv5lx0f3vvb0q"; }) 250 240 (fetchNuGet { pname = "Serilog.Sinks.SignalR.Core"; version = "0.1.2"; sha256 = "16f86661vr7gw8xay1735y551p0z39mks7xagwxb8lxqxwmm4gzf"; }) 251 - (fetchNuGet { pname = "SharpCompress"; version = "0.32.2"; sha256 = "1p198bl08ia89rf4n6yjpacj3yrz6s574snsfl40l8vlqcdrc1pm"; }) 252 - (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "2.1.3"; sha256 = "12qb0r7v2v91vw8q8ygr67y527gwhbas6d6zdvrv4ksxwjx9dzp9"; }) 253 - (fetchNuGet { pname = "SonarAnalyzer.CSharp"; version = "8.47.0.55603"; sha256 = "1rwrhag17zdwf96mw1c2cc0xk555w310c7gadlc4gqgaim0c2xdp"; }) 254 - (fetchNuGet { pname = "sqlite-net-pcl"; version = "1.7.335"; sha256 = "1wlgr2s7gij7pgm9f9vrb1mkiniwm2mqxzxqdkixc81n3d27q1qn"; }) 255 - (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.0.6"; sha256 = "1ip0a653dx5cqybxg27zyz5ps31f2yz50g3jvz3vx39isx79gax3"; }) 256 - (fetchNuGet { pname = "SQLitePCLRaw.bundle_green"; version = "2.0.3"; sha256 = "1rhzih4i82mnxac0bhcjp657g8fx83b95n39lkfkyqjbf591jc3k"; }) 257 - (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.3"; sha256 = "0m7k63zbyplgydn27yhy79hwjg869ar90ygkzc64l537wkn93ri3"; }) 258 - (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.6"; sha256 = "1w4iyg0v1v1z2m7akq7rv8lsgixp2m08732vr14vgpqs918bsy1i"; }) 259 - (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.3"; sha256 = "0s0v2da7jim23wkkdasww8zmjqr9v3w082mfii8nybmkr9x4zz6x"; }) 260 - (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.6"; sha256 = "16378rh1lcqxynf5qj0kh8mrsb0jp37qqwg4285kqc5pknvh1bx3"; }) 261 - (fetchNuGet { pname = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.0.3"; sha256 = "14mrvriw05hqzplfwz98082n5jqizix500hdl3vkvkjg9qvprhpy"; }) 262 - (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.0.6"; sha256 = "0chgrqyycb1kqnaxnhhfg0850b94blhzni8zn79c7ggb3pd2ykyz"; }) 263 - (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.4.0"; sha256 = "1jkgjnkjcb6dif0lzn7whjwwdd4fi6mzkmkdx8sfmv5cffzq4fvk"; }) 264 - (fetchNuGet { pname = "Swashbuckle.AspNetCore.Filters"; version = "7.0.6"; sha256 = "1wqm77sszmw7g5g8rmij5gw76ppr2j6zal24w4dhnf0wk8hqa8m6"; }) 265 - (fetchNuGet { pname = "Swashbuckle.AspNetCore.Filters.Abstractions"; version = "7.0.6"; sha256 = "0fd3f2m1hf01r3z2ag4x0mc3imc4psnnqds4pca2q8lhmmfpnrgx"; }) 241 + (fetchNuGet { pname = "SharpCompress"; version = "0.36.0"; sha256 = "164ikphk4glldr73l247cjb65v064md0ccccm06rh0zvjq5iqlph"; }) 242 + (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "3.1.2"; sha256 = "0bc0753aczgw9mi9bcgly2x71w4adlr35krgf023vppc36809yhg"; }) 243 + (fetchNuGet { pname = "SonarAnalyzer.CSharp"; version = "9.17.0.82934"; sha256 = "1hk1fh8zp0ng6q29i2y17jdvbxxl3zgbzzag0dvap4wadqdpad1z"; }) 244 + (fetchNuGet { pname = "sqlite-net-pcl"; version = "1.8.116"; sha256 = "0h3s43pfjqgy9amrdj4d7p65hmys895hlkczj62wg974qb4z8l2y"; }) 245 + (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.6"; sha256 = "0pzgdfl707pd9fz108xaff22w7c2y27yaix6wfp36phqkdnzz43m"; }) 246 + (fetchNuGet { pname = "SQLitePCLRaw.bundle_green"; version = "2.0.4"; sha256 = "1197ynpm4fl6il9vi0mi1s1pmw3rk3j0a05kwrxpqlfgp7iwhc22"; }) 247 + (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.4"; sha256 = "0lb5vwfl1hd24xzzdaj2p4k2hv2k0i3mgdri6fjj0ssb37mcyir1"; }) 248 + (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.6"; sha256 = "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"; }) 249 + (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.4"; sha256 = "0kmx1w5qllmwxldr8338qxwmpfzc6g2lmyrah7wfaxd3mvfzky5c"; }) 250 + (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.6"; sha256 = "0g959z7r3h43nwzm7z3jiib1xvyx146lxyv0x6fl8ll5wivpjyxq"; }) 251 + (fetchNuGet { pname = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.0.4"; sha256 = "084r98kilpm0q1aw41idq8slncpd7cz65g0m1wr0p8d12x8z5g6j"; }) 252 + (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.6"; sha256 = "1vs1c7yhi0mdqrd35ji289cxkhg7dxdnn6wgjjbngvqxkdhkyxyc"; }) 253 + (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.5.0"; sha256 = "0k61chpz5j59s1yax28vx0mppx20ff8vg8grwja112hfrzj1f45n"; }) 254 + (fetchNuGet { pname = "Swashbuckle.AspNetCore.Filters"; version = "8.0.0"; sha256 = "13jiyn00cxslrgagkw69h6nxjxrrbyg3pwy8gj5iagk5x5gi6b6f"; }) 255 + (fetchNuGet { pname = "Swashbuckle.AspNetCore.Filters.Abstractions"; version = "8.0.0"; sha256 = "1sz2r45z2prglw3svrqy7xzl0z958yip71x6s97xrxsj776sqcf9"; }) 266 256 (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "5.0.0"; sha256 = "1341nv8nmh6avs3y7w2szzir5qd0bndxwrkdmvvj3hcxj1126w2f"; }) 267 - (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.4.0"; sha256 = "1wccx8ig2xc6xcfh774m5z34w6jn0hjffiwc5sq9yl63zkv01vnn"; }) 257 + (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.5.0"; sha256 = "1s6axf6fin8sss3bvzp0s039rxrx71vx4rl559miw12bz3lld8kc"; }) 268 258 (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "5.0.0"; sha256 = "00swg2avqnb38q2bsxljd34n8rpknp74h9vbn0fdnfds3a32cqr4"; }) 269 - (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.4.0"; sha256 = "1k58j6lfqcgrl5f7dw0xnbq6w5bvr42a9fc44vwbzl52kzjdlnh2"; }) 270 - (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.4.0"; sha256 = "1rxgf0hbkkzywh8z7asky2rrh1gpnrr514v1aj5vnmh49sa31kiz"; }) 259 + (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.5.0"; sha256 = "0hq93gy5vyrigpdk9lhqwxglxwkbxa8ydllwcqs4bwfcsspzrs83"; }) 260 + (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.5.0"; sha256 = "17hx7kc187higm0gk67dndng3n7932sn3fwyj48l45cvyr3025h7"; }) 271 261 (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; }) 272 262 (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; }) 273 263 (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; }) 274 264 (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; }) 275 265 (fetchNuGet { pname = "System.Buffers"; version = "4.5.0"; sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; }) 276 266 (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; }) 267 + (fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; }) 277 268 (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; }) 278 269 (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }) 279 270 (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; }) 280 271 (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; }) 281 272 (fetchNuGet { pname = "System.Collections.Immutable"; version = "6.0.0"; sha256 = "1js98kmjn47ivcvkjqdmyipzknb9xbndssczm8gq224pbaj1p88c"; }) 282 273 (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; }) 274 + (fetchNuGet { pname = "System.Composition"; version = "6.0.0"; sha256 = "1p7hysns39cc24af6dwd4m48bqjsrr3clvi4aws152mh2fgyg50z"; }) 275 + (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "6.0.0"; sha256 = "1mqrblb0l65hw39d0hnspqcv85didpn4wbiwhfgj4784wzqx2w6k"; }) 276 + (fetchNuGet { pname = "System.Composition.Convention"; version = "6.0.0"; sha256 = "02km3yb94p1c4s7liyhkmda0g71zm1rc8ijsfmy4bnlkq15xjw3b"; }) 277 + (fetchNuGet { pname = "System.Composition.Hosting"; version = "6.0.0"; sha256 = "0big5nk8c44rxp6cfykhk7rxvn2cgwa99w6c3v2a36adc3lj36ky"; }) 278 + (fetchNuGet { pname = "System.Composition.Runtime"; version = "6.0.0"; sha256 = "0vq5ik63yii1784gsa2f2kx9w6xllmm8b8rk0arid1jqdj1nyrlw"; }) 279 + (fetchNuGet { pname = "System.Composition.TypedParts"; version = "6.0.0"; sha256 = "0y9pq3y60nyrpfy51f576a0qjjdh61mcv8vnik32pm4bz56h9q72"; }) 283 280 (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; }) 284 281 (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; }) 285 - (fetchNuGet { pname = "System.Data.SqlClient"; version = "4.4.0"; sha256 = "1djh6i8s9s035glf2kg3fnlxkj36gf6327w5q44229nw48y6x8kh"; }) 286 282 (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; }) 287 283 (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; }) 288 284 (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; }) 289 285 (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; }) 290 286 (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5"; }) 291 - (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "6.0.0"; sha256 = "08y1x2d5w2hnhkh9r1998pjc7r4qp0rmzax062abha85s11chifd"; }) 287 + (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "8.0.0"; sha256 = "0nzra1i0mljvmnj1qqqg37xs7bl71fnpl68nwmdajchh65l878zr"; }) 288 + (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "8.0.0"; sha256 = "1xnvcidh2qf6k7w8ij1rvj0viqkq84cq47biw0c98xhxg5rk3pxf"; }) 292 289 (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; }) 293 290 (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; }) 294 291 (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; }) 295 292 (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; }) 296 - (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; }) 293 + (fetchNuGet { pname = "System.Drawing.Common"; version = "8.0.1"; sha256 = "02l7y2j6f2qykl90iac28nvw1cnhic8vzixlq5fznw0zj72knz25"; }) 297 294 (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; }) 298 295 (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; }) 299 296 (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; }) ··· 301 298 (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; }) 302 299 (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; }) 303 300 (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; }) 304 - (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.24.0"; sha256 = "1s6r8ivhbnv1hdybizmw0336z0dsv4dis3p2d658hzsv5p758yip"; }) 301 + (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "7.2.0"; sha256 = "000sfpv1bjwkwwb65fl85f3ifwvdadzkx93gwsb56vrsh00kd026"; }) 305 302 (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; }) 306 303 (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; }) 307 - (fetchNuGet { pname = "System.IO.Abstractions"; version = "17.2.3"; sha256 = "1fs3asbc3f5maxc5il2iqmhhlbz4c69lh8r0r0xwjcjbly7agn0l"; }) 304 + (fetchNuGet { pname = "System.IO.Abstractions"; version = "20.0.4"; sha256 = "0qdp4522v0k219iixg4zk7vmpyx149rsnqhq3ykzkpd2mdg0f4nx"; }) 308 305 (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; }) 309 306 (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; }) 310 307 (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; }) ··· 314 311 (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; }) 315 312 (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; }) 316 313 (fetchNuGet { pname = "System.IO.Pipelines"; version = "4.5.2"; sha256 = "045sn3vyk5xysjjm19q4dj5c1g1rf8l98n4qsl9pl9id4fn08yq1"; }) 314 + (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.3"; sha256 = "1jgdazpmwc21dd9naq3l9n5s8a1jnbwlvgkf1pnm0aji6jd4xqdz"; }) 317 315 (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; }) 318 316 (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; }) 319 317 (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; }) 320 318 (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; }) 321 319 (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; }) 322 320 (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; }) 323 - (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; }) 324 321 (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; }) 325 322 (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; }) 326 323 (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; }) ··· 342 339 (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; }) 343 340 (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; }) 344 341 (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }) 342 + (fetchNuGet { pname = "System.Reflection.Metadata"; version = "6.0.1"; sha256 = "0fjqifk4qz9lw5gcadpfalpplyr0z2b3p9x7h0ll481a9sqvppc9"; }) 345 343 (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; }) 346 344 (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) 347 345 (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; }) ··· 353 351 (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.4.0"; sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29"; }) 354 352 (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; }) 355 353 (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; }) 356 - (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; }) 357 354 (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; }) 358 355 (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; }) 359 356 (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }) ··· 366 363 (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; }) 367 364 (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; }) 368 365 (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; }) 369 - (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.4.0"; sha256 = "0ixqw47krkazsw0ycm22ivkv7dpg6cjz8z8g0ii44bsx4l8gcx17"; }) 370 366 (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; }) 371 367 (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; }) 372 368 (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; }) 373 369 (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; }) 374 370 (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; }) 375 - (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.5.0"; sha256 = "1pm4ykbcz48f1hdmwpia432ha6qbb9kbrxrrp7cg3m8q8xn52ngn"; }) 376 371 (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; }) 377 372 (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; }) 378 373 (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; }) ··· 385 380 (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; }) 386 381 (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; }) 387 382 (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; }) 388 - (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.4.0"; sha256 = "11rr16fp68apc0arsymgj18w8ajs9a4366wgx9iqwny4glrl20wp"; }) 389 383 (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; }) 390 384 (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; }) 391 385 (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }) 392 - (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.4.0"; sha256 = "07bzjnflxjk9vgpljfybrpqmvsr9qr2f20nq5wf11imwa5pbhgfc"; }) 393 386 (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; }) 394 - (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; }) 387 + (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; }) 395 388 (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; }) 396 389 (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; }) 397 390 (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.5.0"; sha256 = "0srd5bva52n92i90wd88pzrqjsxnfgka3ilybwh7s6sf469y5s53"; }) 398 - (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; }) 399 - (fetchNuGet { pname = "System.Text.Json"; version = "4.6.0"; sha256 = "0ism236hwi0k6axssfq58s1d8lihplwiz058pdvl8al71hagri39"; }) 391 + (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; sha256 = "1wbypkx0m8dgpsaqgyywz4z760xblnwalb241d5qv9kx8m128i11"; }) 400 392 (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4"; }) 401 - (fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl"; }) 393 + (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; sha256 = "134savxw0sq7s448jnzw17bxcijsi1v38mirpbb6zfxmqlf04msw"; }) 402 394 (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; }) 403 395 (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; }) 404 396 (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; }) 405 397 (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; }) 406 398 (fetchNuGet { pname = "System.Threading.Channels"; version = "4.5.0"; sha256 = "0n6z3wjia7h2a5vl727p97riydnb6jhhkb1pdcnizza02dwkz0nz"; }) 399 + (fetchNuGet { pname = "System.Threading.Channels"; version = "6.0.0"; sha256 = "1qbyi7yymqc56frqy7awvcqc1m7x3xrpx87a37dgb3mbrjg9hlcj"; }) 407 400 (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; }) 408 401 (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) 409 402 (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; }) ··· 416 409 (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; }) 417 410 (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; }) 418 411 (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; }) 419 - (fetchNuGet { pname = "VersOne.Epub"; version = "3.3.0-alpha1"; sha256 = "037wq88w6brfjswmraa1l6by7fcdd1nc3vri8plg9h6a7zjph4nc"; }) 412 + (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "20.0.4"; sha256 = "16jw4zw8pvck754r6744d11460w1fih8c77r8yzzw2w58iv2mns6"; }) 413 + (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "20.0.4"; sha256 = "1c5sf8dva9vswl2qqkc6xcmznia8d5nqw46yvk4b1f9idv53j5nz"; }) 414 + (fetchNuGet { pname = "VersOne.Epub"; version = "3.3.1"; sha256 = "1v7ms857yhm38syi4l63g9hzn0y08n8csr4z4i56xmzpj1big2s6"; }) 415 + (fetchNuGet { pname = "ZstdSharp.Port"; version = "0.7.4"; sha256 = "0087rymvclj96pscd8lbjidsdg1g4p83m6y20bcicz8sx7jnnzyg"; }) 420 416 ]
+20
pkgs/servers/web-apps/kavita/update.sh
··· 1 + #!/usr/bin/env nix-shell 2 + #! nix-shell -i bash -p common-updater-scripts curl jq nix-prefetch-github prefetch-npm-deps 3 + 4 + set -euo pipefail 5 + 6 + latest_version=$(curl -s https://api.github.com/repos/Kareadita/Kavita/releases/latest | jq -r '.tag_name' | tr -d v) 7 + 8 + pushd "$(mktemp -d)" 9 + curl -s https://raw.githubusercontent.com/Kareadita/Kavita/v${latest_version}/UI/Web/package-lock.json -o package-lock.json 10 + npmDepsHash=$(prefetch-npm-deps package-lock.json) 11 + rm -f package-lock.json 12 + popd 13 + 14 + update-source-version kavita "$latest_version" 15 + 16 + pushd "$(dirname "${BASH_SOURCE[0]}")" 17 + sed -E 's#\bnpmDepsHash = ".*?"#npmDepsHash = "'"$npmDepsHash"'"#' -i default.nix 18 + popd 19 + 20 + $(nix-build -A kavita.backend.fetch-deps --no-out-link)
+6 -6
pkgs/tools/misc/yubikey-manager/default.nix
··· 8 8 9 9 python3Packages.buildPythonPackage rec { 10 10 pname = "yubikey-manager"; 11 - version = "5.3.0"; 11 + version = "5.4.0"; 12 12 pyproject = true; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "Yubico"; 16 16 repo = "yubikey-manager"; 17 17 rev = version; 18 - hash = "sha256-c5edonnvvGIZ6SJ6+gd2xcAy0/HiAEUEPMGQzOKK2Sw="; 18 + hash = "sha256-Rn3iGiiR48EFVAn9BRQ043L8x7WwH7XnazZlVw50IGU="; 19 19 }; 20 20 21 21 postPatch = '' ··· 55 55 makefun 56 56 ]; 57 57 58 - meta = with lib; { 58 + meta = { 59 59 homepage = "https://developers.yubico.com/yubikey-manager"; 60 60 changelog = "https://github.com/Yubico/yubikey-manager/releases/tag/${version}"; 61 61 description = "Command line tool for configuring any YubiKey over all USB transports"; 62 62 63 - license = licenses.bsd2; 64 - platforms = platforms.unix; 65 - maintainers = with maintainers; [ benley lassulus pinpox nickcao ]; 63 + license = lib.licenses.bsd2; 64 + platforms = lib.platforms.unix; 65 + maintainers = with lib.maintainers; [ benley lassulus pinpox nickcao ]; 66 66 mainProgram = "ykman"; 67 67 }; 68 68 }
+18 -2
pkgs/tools/networking/easyrsa/default.nix
··· 8 8 owner = "OpenVPN"; 9 9 repo = "easy-rsa"; 10 10 rev = "v${version}"; 11 - sha256 = "sha256-zdVcT04nj7eE1a6M7WHeWpwG/TVTwyK+WgD70XwPXfY="; 11 + hash = "sha256-zdVcT04nj7eE1a6M7WHeWpwG/TVTwyK+WgD70XwPXfY="; 12 12 }; 13 13 14 14 nativeBuildInputs = [ makeWrapper ]; 15 + nativeInstallCheckInputs = [ openssl.bin ]; 15 16 16 17 installPhase = '' 17 18 mkdir -p $out/share/easy-rsa ··· 26 27 27 28 # Wrap it with the correct OpenSSL binary. 28 29 wrapProgram $out/bin/easyrsa \ 29 - --set EASYRSA_OPENSSL ${openssl.bin}/bin/openssl 30 + --set-default EASYRSA_OPENSSL ${openssl.bin}/bin/openssl 30 31 31 32 # Helper utility 32 33 cat > $out/bin/easyrsa-init <<EOF ··· 34 35 cp -r $out/share/easy-rsa/* . 35 36 EOF 36 37 chmod +x $out/bin/easyrsa-init 38 + ''; 39 + 40 + doInstallCheck = true; 41 + postInstallCheck = '' 42 + set -euo pipefail 43 + export EASYRSA_BATCH=1 44 + export EASYRSA_PASSIN=pass:nixpkgs 45 + export EASYRSA_PASSOUT="$EASYRSA_PASSIN" 46 + export EASYRSA_REQ_CN='nixpkgs test CA' 47 + export EASYRSA_KEY_SIZE=3072 48 + export EASYRSA_ALGO=rsa 49 + export EASYRSA_DIGEST=sha512 50 + $out/bin/easyrsa init-pki 51 + $out/bin/easyrsa build-ca 52 + openssl x509 -in pki/ca.crt -noout -subject | tee /dev/stderr | grep -zq "$EASYRSA_REQ_CN" 37 53 ''; 38 54 39 55 meta = with lib; {
+1
pkgs/tools/package-management/poetry/default.nix
··· 30 30 poetry-audit-plugin = callPackage ./plugins/poetry-audit-plugin.nix { }; 31 31 poetry-plugin-export = callPackage ./plugins/poetry-plugin-export.nix { }; 32 32 poetry-plugin-up = callPackage ./plugins/poetry-plugin-up.nix { }; 33 + poetry-plugin-poeblix = callPackage ./plugins/poetry-plugin-poeblix.nix { }; 33 34 }; 34 35 35 36 # selector is a function mapping pythonPackages to a list of plugins
+37
pkgs/tools/package-management/poetry/plugins/poetry-plugin-poeblix.nix
··· 1 + { lib 2 + , buildPythonPackage 3 + , fetchFromGitHub 4 + , poetry-core 5 + }: 6 + 7 + buildPythonPackage rec { 8 + pname = "poetry-plugin-poeblix"; 9 + version = "0.10.0"; 10 + pyproject = true; 11 + 12 + src = fetchFromGitHub { 13 + owner = "spoorn"; 14 + repo = "poeblix"; 15 + rev = "refs/tags/${version}"; 16 + hash = "sha256-TKadEOk9kM3ZYsQmE2ftzjHNGNKI17p0biMr+Nskigs="; 17 + }; 18 + 19 + postPatch = '' 20 + sed -i '/poetry =/d' pyproject.toml 21 + ''; 22 + 23 + nativeBuildInputs = [ 24 + poetry-core 25 + ]; 26 + 27 + doCheck = false; 28 + pythonImportsCheck = ["poeblix"]; 29 + 30 + meta = with lib; { 31 + changelog = "https://github.com/spoorn/poeblix/releases/tag/${src.rev}"; 32 + description = "Poetry Plugin that adds various features that extend the poetry command such as building wheel files with locked dependencies, and validations of wheel/docker containers"; 33 + license = licenses.mit; 34 + homepage = "https://github.com/spoorn/poeblix"; 35 + maintainers = with maintainers; [ hennk ]; 36 + }; 37 + }
+2 -2
pkgs/tools/security/exploitdb/default.nix
··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "exploitdb"; 9 - version = "2024-03-23"; 9 + version = "2024-03-26"; 10 10 11 11 src = fetchFromGitLab { 12 12 owner = "exploit-database"; 13 13 repo = pname; 14 14 rev = "refs/tags/${version}"; 15 - hash = "sha256-2Z6HY2Pz7PKh0iBXaplxj7il0Ekzqsbq57l0/Pk03+s="; 15 + hash = "sha256-oZfo9p23uvDw2f7O5AnycVpE14Rul8ZIeQPojVGQCXI="; 16 16 }; 17 17 18 18 nativeBuildInputs = [
+3 -3
pkgs/tools/typesetting/tex/texpresso/default.nix
··· 17 17 18 18 stdenv.mkDerivation rec { 19 19 pname = "texpresso"; 20 - version = "0-unstable-2024-03-24"; 20 + version = "0-unstable-2024-03-26"; 21 21 22 22 nativeBuildInputs = [ 23 23 makeWrapper ··· 35 35 src = fetchFromGitHub { 36 36 owner = "let-def"; 37 37 repo = "texpresso"; 38 - rev = "08d4ae8632ef0da349595310d87ac01e70f2c6ae"; 39 - hash = "sha256-a0yBVtLfmE0oTl599FXp7A10JoiKusofLSeXigx4GvA="; 38 + rev = "34d06efc5719a6289bbe2d05e5295566d0fbcfad"; 39 + hash = "sha256-rfrESh2Yz5FfwWW57wBZSJKPri2Pl1uhTGTM02dyOqM="; 40 40 }; 41 41 42 42 buildFlags = [ "texpresso" ];
+5
pkgs/top-level/all-packages.nix
··· 2621 2621 2622 2622 _86Box = callPackage ../applications/emulators/86box { }; 2623 2623 2624 + _86Box-with-roms = _86Box.override { 2625 + unfreeEnableRoms = true; 2626 + unfreeEnableDiscord = true; 2627 + }; 2628 + 2624 2629 attract-mode = callPackage ../applications/emulators/attract-mode { }; 2625 2630 2626 2631 basiliskii = callPackage ../applications/emulators/basiliskii { };
+53
pkgs/top-level/darwin-aliases.nix
··· 1 + lib: self: super: pkgs: 2 + 3 + ### Deprecated aliases - for backward compatibility 4 + 5 + ### Please maintain this list in ASCIIbetical ordering. 6 + ### Hint: the "sections" are delimited by ### <letter> ### 7 + 8 + # These aliases should not be used within nixpkgs, but exist to improve 9 + # backward compatibility in projects outside of nixpkgs. See the 10 + # documentation for the `allowAliases` option for more background. 11 + 12 + # A script to convert old aliases to throws and remove old 13 + # throws can be found in './maintainers/scripts/remove-old-aliases.py'. 14 + 15 + # Add 'preserve, reason: reason why' after the date if the alias should not be removed. 16 + # Try to keep them to a minimum. 17 + # valid examples of what to preserve: 18 + # distro aliases such as: 19 + # debian-package-name -> nixos-package-name 20 + 21 + # pkgs is provided to allow packages to be moved out of the darwin attrset. 22 + 23 + with self; 24 + 25 + let 26 + # Removing recurseForDerivation prevents derivations of aliased attribute set 27 + # to appear while listing all the packages available. 28 + removeRecurseForDerivations = 29 + alias: 30 + if alias.recurseForDerivations or false then 31 + lib.removeAttrs alias [ "recurseForDerivations" ] 32 + else 33 + alias; 34 + 35 + # Disabling distribution prevents top-level aliases for non-recursed package 36 + # sets from building on Hydra. 37 + removeDistribute = alias: if lib.isDerivation alias then lib.dontDistribute alias else alias; 38 + 39 + # Make sure that we are not shadowing something from darwin-packages.nix. 40 + checkInPkgs = 41 + n: alias: 42 + if builtins.hasAttr n super then throw "Alias ${n} is still in darwin-packages.nix" else alias; 43 + 44 + mapAliases = lib.mapAttrs ( 45 + n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias)) 46 + ); 47 + in 48 + 49 + mapAliases ({ 50 + ### B ### 51 + 52 + builder = throw "'darwin.builder' has been changed and renamed to 'darwin.linux-builder'. The default ssh port is now 31022. Please update your configuration or override the port back to 22. See https://nixos.org/manual/nixpkgs/unstable/#sec-darwin-builder"; # added 2023-07-06 53 + })
+3 -3
pkgs/top-level/darwin-packages.nix
··· 18 18 fetchurlBoot = import ../build-support/fetchurl/boot.nix { 19 19 inherit (stdenv) system; 20 20 }; 21 + 22 + aliases = self: super: lib.optionalAttrs config.allowAliases (import ../top-level/darwin-aliases.nix lib self super pkgs); 21 23 in 22 24 23 25 makeScopeWithSplicing' { 24 26 otherSplices = generateSplicesForMkScope "darwin"; 25 27 extra = spliced: spliced.apple_sdk.frameworks; 26 - f = (self: let 28 + f = lib.extends aliases (self: let 27 29 inherit (self) mkDerivation callPackage; 28 30 29 31 # Must use pkgs.callPackage to avoid infinite recursion. ··· 260 262 modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ]; 261 263 }; 262 264 263 - } // lib.optionalAttrs config.allowAliases { 264 - builder = throw "'darwin.builder' has been changed and renamed to 'darwin.linux-builder'. The default ssh port is now 31022. Please update your configuration or override the port back to 22. See https://nixos.org/manual/nixpkgs/unstable/#sec-darwin-builder"; # added 2023-07-06 265 265 }); 266 266 }