lol

Merge staging-next into staging

authored by

github-actions[bot] and committed by
GitHub
b4c8dad5 72eab841

+2514 -1896
+5 -6
maintainers/maintainer-list.nix
··· 10154 10154 githubId = 57130301; 10155 10155 keys = [ { fingerprint = "1CC5 B67C EB9A 13A5 EDF6 F10E 0B4A 3662 FC58 9202"; } ]; 10156 10156 }; 10157 - jonafato = { 10158 - email = "jon@jonafato.com"; 10159 - github = "jonafato"; 10160 - githubId = 392720; 10161 - name = "Jon Banafato"; 10162 - }; 10163 10157 jonas-w = { 10164 10158 email = "nixpkgs@03j.de"; 10165 10159 github = "jonas-w"; ··· 16249 16243 github = "philtaken"; 16250 16244 githubId = 13309623; 16251 16245 name = "Philipp Herzog"; 16246 + }; 16247 + PhilVoel = { 16248 + github = "PhilVoel"; 16249 + githubId = 56931301; 16250 + name = "Philipp Völler"; 16252 16251 }; 16253 16252 phip1611 = { 16254 16253 email = "phip1611@gmail.com";
+130 -93
nixos/maintainers/scripts/ec2/amazon-image.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 3 8 let 4 - inherit (lib) mkOption optionalString types versionAtLeast; 9 + inherit (lib) 10 + mkOption 11 + optionalString 12 + types 13 + versionAtLeast 14 + ; 5 15 inherit (lib.options) literalExpression; 6 16 cfg = config.amazonImage; 7 17 amiBootMode = if config.ec2.efi then "uefi" else "legacy-bios"; 18 + virtualisationOptions = import ../../../modules/virtualisation/virtualisation-options.nix; 8 19 9 - in { 10 - 11 - imports = [ ../../../modules/virtualisation/amazon-image.nix ]; 20 + in 21 + { 22 + imports = [ 23 + ../../../modules/virtualisation/amazon-image.nix 24 + virtualisationOptions.diskSize 25 + (lib.mkRenamedOptionModuleWith { 26 + sinceRelease = 2411; 27 + from = [ 28 + "virtualisation" 29 + "amazonImage" 30 + "sizeMB" 31 + ]; 32 + to = [ 33 + "virtualisation" 34 + "diskSize" 35 + ]; 36 + }) 37 + ]; 12 38 13 39 # Amazon recommends setting this to the highest possible value for a good EBS 14 40 # experience, which prior to 4.15 was 255. 15 41 # https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html#timeout-nvme-ebs-volumes 16 42 config.boot.kernelParams = 17 - let timeout = 18 - if versionAtLeast config.boot.kernelPackages.kernel.version "4.15" 19 - then "4294967295" 20 - else "255"; 21 - in [ "nvme_core.io_timeout=${timeout}" ]; 43 + let 44 + timeout = 45 + if versionAtLeast config.boot.kernelPackages.kernel.version "4.15" then "4294967295" else "255"; 46 + in 47 + [ "nvme_core.io_timeout=${timeout}" ]; 22 48 23 49 options.amazonImage = { 24 50 name = mkOption { ··· 34 60 } 35 61 ] 36 62 ''; 37 - default = []; 63 + default = [ ]; 38 64 description = '' 39 65 This option lists files to be copied to fixed locations in the 40 66 generated image. Glob patterns work. 41 67 ''; 42 68 }; 43 69 44 - sizeMB = mkOption { 45 - type = with types; either (enum [ "auto" ]) int; 46 - default = 3072; 47 - example = 8192; 48 - description = "The size in MB of the image"; 49 - }; 50 - 51 70 format = mkOption { 52 - type = types.enum [ "raw" "qcow2" "vpc" ]; 71 + type = types.enum [ 72 + "raw" 73 + "qcow2" 74 + "vpc" 75 + ]; 53 76 default = "vpc"; 54 77 description = "The image format to output"; 55 78 }; 56 79 }; 57 80 58 - config.system.build.amazonImage = let 59 - configFile = pkgs.writeText "configuration.nix" 60 - '' 81 + config.virtualisation.diskSize = lib.mkDefault (3 * 1024); 82 + config.virtualisation.diskSizeAutoSupported = !config.ec2.zfs.enable; 83 + 84 + config.system.build.amazonImage = 85 + let 86 + configFile = pkgs.writeText "configuration.nix" '' 61 87 { modulesPath, ... }: { 62 88 imports = [ "''${modulesPath}/virtualisation/amazon-image.nix" ]; 63 89 ${optionalString config.ec2.efi '' ··· 70 96 } 71 97 ''; 72 98 73 - zfsBuilder = import ../../../lib/make-multi-disk-zfs-image.nix { 74 - inherit lib config configFile pkgs; 75 - inherit (cfg) contents format name; 99 + zfsBuilder = import ../../../lib/make-multi-disk-zfs-image.nix { 100 + inherit 101 + lib 102 + config 103 + configFile 104 + pkgs 105 + ; 106 + inherit (cfg) contents format name; 76 107 77 - includeChannel = true; 108 + includeChannel = true; 78 109 79 - bootSize = 1000; # 1G is the minimum EBS volume 110 + bootSize = 1000; # 1G is the minimum EBS volume 80 111 81 - rootSize = cfg.sizeMB; 82 - rootPoolProperties = { 83 - ashift = 12; 84 - autoexpand = "on"; 85 - }; 112 + rootSize = config.virtualisation.diskSize; 113 + rootPoolProperties = { 114 + ashift = 12; 115 + autoexpand = "on"; 116 + }; 86 117 87 - datasets = config.ec2.zfs.datasets; 118 + datasets = config.ec2.zfs.datasets; 88 119 89 - postVM = '' 90 - extension=''${rootDiskImage##*.} 91 - friendlyName=$out/${cfg.name} 92 - rootDisk="$friendlyName.root.$extension" 93 - bootDisk="$friendlyName.boot.$extension" 94 - mv "$rootDiskImage" "$rootDisk" 95 - mv "$bootDiskImage" "$bootDisk" 120 + postVM = '' 121 + extension=''${rootDiskImage##*.} 122 + friendlyName=$out/${cfg.name} 123 + rootDisk="$friendlyName.root.$extension" 124 + bootDisk="$friendlyName.boot.$extension" 125 + mv "$rootDiskImage" "$rootDisk" 126 + mv "$bootDiskImage" "$bootDisk" 96 127 97 - mkdir -p $out/nix-support 98 - echo "file ${cfg.format} $bootDisk" >> $out/nix-support/hydra-build-products 99 - echo "file ${cfg.format} $rootDisk" >> $out/nix-support/hydra-build-products 128 + mkdir -p $out/nix-support 129 + echo "file ${cfg.format} $bootDisk" >> $out/nix-support/hydra-build-products 130 + echo "file ${cfg.format} $rootDisk" >> $out/nix-support/hydra-build-products 100 131 101 - ${pkgs.jq}/bin/jq -n \ 102 - --arg system_label ${lib.escapeShellArg config.system.nixos.label} \ 103 - --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \ 104 - --arg root_logical_bytes "$(${pkgs.qemu_kvm}/bin/qemu-img info --output json "$rootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \ 105 - --arg boot_logical_bytes "$(${pkgs.qemu_kvm}/bin/qemu-img info --output json "$bootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \ 106 - --arg boot_mode "${amiBootMode}" \ 107 - --arg root "$rootDisk" \ 108 - --arg boot "$bootDisk" \ 109 - '{} 110 - | .label = $system_label 111 - | .boot_mode = $boot_mode 112 - | .system = $system 113 - | .disks.boot.logical_bytes = $boot_logical_bytes 114 - | .disks.boot.file = $boot 115 - | .disks.root.logical_bytes = $root_logical_bytes 116 - | .disks.root.file = $root 117 - ' > $out/nix-support/image-info.json 118 - ''; 119 - }; 132 + ${pkgs.jq}/bin/jq -n \ 133 + --arg system_label ${lib.escapeShellArg config.system.nixos.label} \ 134 + --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \ 135 + --arg root_logical_bytes "$(${pkgs.qemu_kvm}/bin/qemu-img info --output json "$rootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \ 136 + --arg boot_logical_bytes "$(${pkgs.qemu_kvm}/bin/qemu-img info --output json "$bootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \ 137 + --arg boot_mode "${amiBootMode}" \ 138 + --arg root "$rootDisk" \ 139 + --arg boot "$bootDisk" \ 140 + '{} 141 + | .label = $system_label 142 + | .boot_mode = $boot_mode 143 + | .system = $system 144 + | .disks.boot.logical_bytes = $boot_logical_bytes 145 + | .disks.boot.file = $boot 146 + | .disks.root.logical_bytes = $root_logical_bytes 147 + | .disks.root.file = $root 148 + ' > $out/nix-support/image-info.json 149 + ''; 150 + }; 120 151 121 - extBuilder = import ../../../lib/make-disk-image.nix { 122 - inherit lib config configFile pkgs; 152 + extBuilder = import ../../../lib/make-disk-image.nix { 153 + inherit 154 + lib 155 + config 156 + configFile 157 + pkgs 158 + ; 123 159 124 - inherit (cfg) contents format name; 160 + inherit (cfg) contents format name; 125 161 126 - fsType = "ext4"; 127 - partitionTableType = if config.ec2.efi then "efi" else "legacy+gpt"; 162 + fsType = "ext4"; 163 + partitionTableType = if config.ec2.efi then "efi" else "legacy+gpt"; 128 164 129 - diskSize = cfg.sizeMB; 165 + inherit (config.virtualisation) diskSize; 130 166 131 - postVM = '' 132 - extension=''${diskImage##*.} 133 - friendlyName=$out/${cfg.name}.$extension 134 - mv "$diskImage" "$friendlyName" 135 - diskImage=$friendlyName 167 + postVM = '' 168 + extension=''${diskImage##*.} 169 + friendlyName=$out/${cfg.name}.$extension 170 + mv "$diskImage" "$friendlyName" 171 + diskImage=$friendlyName 136 172 137 - mkdir -p $out/nix-support 138 - echo "file ${cfg.format} $diskImage" >> $out/nix-support/hydra-build-products 173 + mkdir -p $out/nix-support 174 + echo "file ${cfg.format} $diskImage" >> $out/nix-support/hydra-build-products 139 175 140 - ${pkgs.jq}/bin/jq -n \ 141 - --arg system_label ${lib.escapeShellArg config.system.nixos.label} \ 142 - --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \ 143 - --arg logical_bytes "$(${pkgs.qemu_kvm}/bin/qemu-img info --output json "$diskImage" | ${pkgs.jq}/bin/jq '."virtual-size"')" \ 144 - --arg boot_mode "${amiBootMode}" \ 145 - --arg file "$diskImage" \ 146 - '{} 147 - | .label = $system_label 148 - | .boot_mode = $boot_mode 149 - | .system = $system 150 - | .logical_bytes = $logical_bytes 151 - | .file = $file 152 - | .disks.root.logical_bytes = $logical_bytes 153 - | .disks.root.file = $file 154 - ' > $out/nix-support/image-info.json 155 - ''; 156 - }; 157 - in if config.ec2.zfs.enable then zfsBuilder else extBuilder; 176 + ${pkgs.jq}/bin/jq -n \ 177 + --arg system_label ${lib.escapeShellArg config.system.nixos.label} \ 178 + --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \ 179 + --arg logical_bytes "$(${pkgs.qemu_kvm}/bin/qemu-img info --output json "$diskImage" | ${pkgs.jq}/bin/jq '."virtual-size"')" \ 180 + --arg boot_mode "${amiBootMode}" \ 181 + --arg file "$diskImage" \ 182 + '{} 183 + | .label = $system_label 184 + | .boot_mode = $boot_mode 185 + | .system = $system 186 + | .logical_bytes = $logical_bytes 187 + | .file = $file 188 + | .disks.root.logical_bytes = $logical_bytes 189 + | .disks.root.file = $file 190 + ' > $out/nix-support/image-info.json 191 + ''; 192 + }; 193 + in 194 + if config.ec2.zfs.enable then zfsBuilder else extBuilder; 158 195 159 196 meta.maintainers = with lib.maintainers; [ arianvp ]; 160 197 }
+36 -18
nixos/maintainers/scripts/openstack/openstack-image-zfs.nix
··· 1 1 # nix-build '<nixpkgs/nixos>' -A config.system.build.openstackImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/openstack-image.nix ]; }" 2 2 3 - { config, lib, pkgs, ... }: 3 + { 4 + config, 5 + lib, 6 + pkgs, 7 + ... 8 + }: 4 9 let 5 10 inherit (lib) mkOption types; 6 11 copyChannel = true; 7 12 cfg = config.openstackImage; 8 13 imageBootMode = if config.openstack.efi then "uefi" else "legacy-bios"; 14 + virtualisationOptions = import ../../../modules/virtualisation/virtualisation-options.nix; 9 15 in 10 16 { 11 17 imports = [ 12 18 ../../../modules/virtualisation/openstack-config.nix 13 - ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix); 19 + virtualisationOptions.diskSize 20 + (lib.mkRenamedOptionModuleWith { 21 + sinceRelease = 2411; 22 + from = [ 23 + "virtualisation" 24 + "openstackImage" 25 + "sizeMB" 26 + ]; 27 + to = [ 28 + "virtualisation" 29 + "diskSize" 30 + ]; 31 + }) 14 32 33 + ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix); 15 34 16 35 options.openstackImage = { 17 36 name = mkOption { ··· 22 41 23 42 ramMB = mkOption { 24 43 type = types.int; 25 - default = 1024; 44 + default = (3 * 1024); 26 45 description = "RAM allocation for build VM"; 27 46 }; 28 47 29 - sizeMB = mkOption { 30 - type = types.int; 31 - default = 8192; 32 - description = "The size in MB of the image"; 33 - }; 34 - 35 48 format = mkOption { 36 - type = types.enum [ "raw" "qcow2" ]; 49 + type = types.enum [ 50 + "raw" 51 + "qcow2" 52 + ]; 37 53 default = "qcow2"; 38 54 description = "The image format to output"; 39 55 }; ··· 54 70 }; 55 71 }; 56 72 73 + virtualisation.diskSize = lib.mkDefault (8 * 1024); 74 + virtualisation.diskSizeAutoSupported = false; 75 + 57 76 system.build.openstackImage = import ../../../lib/make-single-disk-zfs-image.nix { 58 77 inherit lib config; 59 78 inherit (cfg) contents format name; 60 79 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package 61 80 62 - configFile = pkgs.writeText "configuration.nix" 63 - '' 64 - { modulesPath, ... }: { 65 - imports = [ "''${modulesPath}/virtualisation/openstack-config.nix" ]; 66 - openstack.zfs.enable = true; 67 - } 68 - ''; 81 + configFile = pkgs.writeText "configuration.nix" '' 82 + { modulesPath, ... }: { 83 + imports = [ "''${modulesPath}/virtualisation/openstack-config.nix" ]; 84 + openstack.zfs.enable = true; 85 + } 86 + ''; 69 87 70 88 includeChannel = copyChannel; 71 89 72 90 bootSize = 1000; 73 91 memSize = cfg.ramMB; 74 - rootSize = cfg.sizeMB; 92 + rootSize = config.virtualisation.diskSize; 75 93 rootPoolProperties = { 76 94 ashift = 12; 77 95 autoexpand = "on";
+66 -37
nixos/modules/profiles/macos-builder.nix
··· 1 - { config, lib, options, ... }: 1 + { 2 + config, 3 + lib, 4 + options, 5 + ... 6 + }: 2 7 3 8 let 4 9 keysDirectory = "/var/keys"; ··· 15 20 imports = [ 16 21 ../virtualisation/qemu-vm.nix 17 22 23 + (lib.mkRenamedOptionModuleWith { 24 + sinceRelease = 2411; 25 + from = [ 26 + "virtualisation" 27 + "darwin-builder" 28 + "diskSize" 29 + ]; 30 + to = [ 31 + "virtualisation" 32 + "diskSize" 33 + ]; 34 + }) 35 + 18 36 # Avoid a dependency on stateVersion 19 37 { 20 38 disabledModules = [ ··· 23 41 ]; 24 42 # swraid's default depends on stateVersion 25 43 config.boot.swraid.enable = false; 26 - options.boot.isContainer = lib.mkOption { default = false; internal = true; }; 44 + options.boot.isContainer = lib.mkOption { 45 + default = false; 46 + internal = true; 47 + }; 27 48 } 28 49 ]; 50 + 51 + options.virtualisation.description = "The maximum disk space allocated to the runner in megabytes"; 29 52 30 53 options.virtualisation.darwin-builder = with lib; { 31 - diskSize = mkOption { 32 - default = 20 * 1024; 33 - type = types.int; 34 - example = 30720; 35 - description = "The maximum disk space allocated to the runner in MB"; 36 - }; 37 54 memorySize = mkOption { 38 55 default = 3 * 1024; 39 56 type = types.int; ··· 59 76 ''; 60 77 }; 61 78 workingDirectory = mkOption { 62 - default = "."; 63 - type = types.str; 64 - example = "/var/lib/darwin-builder"; 65 - description = '' 66 - The working directory to use to run the script. When running 67 - as part of a flake will need to be set to a non read-only filesystem. 68 - ''; 79 + default = "."; 80 + type = types.str; 81 + example = "/var/lib/darwin-builder"; 82 + description = '' 83 + The working directory to use to run the script. When running 84 + as part of a flake will need to be set to a non read-only filesystem. 85 + ''; 69 86 }; 70 87 hostPort = mkOption { 71 88 default = 31022; ··· 158 175 script = hostPkgs.writeShellScriptBin "create-builder" ( 159 176 '' 160 177 set -euo pipefail 161 - '' + 162 - # When running as non-interactively as part of a DarwinConfiguration the working directory 163 - # must be set to a writeable directory. 164 - (if cfg.workingDirectory != "." then '' 165 - ${hostPkgs.coreutils}/bin/mkdir --parent "${cfg.workingDirectory}" 166 - cd "${cfg.workingDirectory}" 167 - '' else "") + '' 168 - KEYS="''${KEYS:-./keys}" 169 - ${hostPkgs.coreutils}/bin/mkdir --parent "''${KEYS}" 170 - PRIVATE_KEY="''${KEYS}/${user}_${keyType}" 171 - PUBLIC_KEY="''${PRIVATE_KEY}.pub" 172 - if [ ! -e "''${PRIVATE_KEY}" ] || [ ! -e "''${PUBLIC_KEY}" ]; then 173 - ${hostPkgs.coreutils}/bin/rm --force -- "''${PRIVATE_KEY}" "''${PUBLIC_KEY}" 174 - ${hostPkgs.openssh}/bin/ssh-keygen -q -f "''${PRIVATE_KEY}" -t ${keyType} -N "" -C 'builder@localhost' 175 - fi 176 - if ! ${hostPkgs.diffutils}/bin/cmp "''${PUBLIC_KEY}" ${publicKey}; then 177 - (set -x; sudo --reset-timestamp ${installCredentials} "''${KEYS}") 178 - fi 179 - KEYS="$(${hostPkgs.nix}/bin/nix-store --add "$KEYS")" ${lib.getExe config.system.build.vm} 180 - ''); 178 + '' 179 + + 180 + # When running as non-interactively as part of a DarwinConfiguration the working directory 181 + # must be set to a writeable directory. 182 + ( 183 + if cfg.workingDirectory != "." then 184 + '' 185 + ${hostPkgs.coreutils}/bin/mkdir --parent "${cfg.workingDirectory}" 186 + cd "${cfg.workingDirectory}" 187 + '' 188 + else 189 + "" 190 + ) 191 + + '' 192 + KEYS="''${KEYS:-./keys}" 193 + ${hostPkgs.coreutils}/bin/mkdir --parent "''${KEYS}" 194 + PRIVATE_KEY="''${KEYS}/${user}_${keyType}" 195 + PUBLIC_KEY="''${PRIVATE_KEY}.pub" 196 + if [ ! -e "''${PRIVATE_KEY}" ] || [ ! -e "''${PUBLIC_KEY}" ]; then 197 + ${hostPkgs.coreutils}/bin/rm --force -- "''${PRIVATE_KEY}" "''${PUBLIC_KEY}" 198 + ${hostPkgs.openssh}/bin/ssh-keygen -q -f "''${PRIVATE_KEY}" -t ${keyType} -N "" -C 'builder@localhost' 199 + fi 200 + if ! ${hostPkgs.diffutils}/bin/cmp "''${PUBLIC_KEY}" ${publicKey}; then 201 + (set -x; sudo --reset-timestamp ${installCredentials} "''${KEYS}") 202 + fi 203 + KEYS="$(${hostPkgs.nix}/bin/nix-store --add "$KEYS")" ${lib.getExe config.system.build.vm} 204 + '' 205 + ); 181 206 182 207 in 183 208 script.overrideAttrs (old: { ··· 223 248 ''; 224 249 225 250 virtualisation = { 226 - diskSize = cfg.diskSize; 251 + diskSize = lib.mkDefault (20 * 1024); 227 252 228 253 memorySize = cfg.memorySize; 229 254 230 255 forwardPorts = [ 231 - { from = "host"; guest.port = 22; host.port = cfg.hostPort; } 256 + { 257 + from = "host"; 258 + guest.port = 22; 259 + host.port = cfg.hostPort; 260 + } 232 261 ]; 233 262 234 263 # Disable graphics for the builder since users will likely want to run it
-1
nixos/modules/services/continuous-integration/hydra/default.nix
··· 15 15 16 16 env = 17 17 { NIX_REMOTE = "daemon"; 18 - SSL_CERT_FILE = "/etc/ssl/certs/ca-certificates.crt"; # Remove in 16.03 19 18 PGPASSFILE = "${baseDir}/pgpass"; 20 19 NIX_REMOTE_SYSTEMS = lib.concatStringsSep ":" cfg.buildMachinesFiles; 21 20 } // lib.optionalAttrs (cfg.smtpHost != null) {
+4 -1
nixos/modules/services/matrix/appservice-irc.nix
··· 147 147 ''; 148 148 }; 149 149 ttlSeconds = lib.mkOption { 150 - type = ints.positive; 150 + type = ints.unsigned; 151 151 default = 3600; 152 + example = 0; 152 153 description = '' 153 154 Lifetime in seconds, that generated URLs stay valid. 155 + 156 + Set the lifetime to 0 to prevent URLs from becoming invalid. 154 157 ''; 155 158 }; 156 159 bindPort = lib.mkOption {
+1 -1
nixos/modules/system/boot/kexec.nix
··· 25 25 exit 1 26 26 fi 27 27 echo "Loading NixOS system via kexec." 28 - exec kexec --load $p/kernel --initrd=$p/initrd --append="$(cat $p/kernel-params) init=$p/init" 28 + exec kexec --load "$p/kernel" --initrd="$p/initrd" --append="$(cat "$p/kernel-params") init=$p/init" 29 29 ''; 30 30 }; 31 31 };
+31 -13
nixos/modules/virtualisation/azure-image.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 3 8 with lib; 4 9 let 5 10 cfg = config.virtualisation.azureImage; 11 + virtualisationOptions = import ./virtualisation-options.nix; 6 12 in 7 13 { 8 - imports = [ ./azure-common.nix ]; 14 + imports = [ 15 + ./azure-common.nix 16 + virtualisationOptions.diskSize 17 + (lib.mkRenamedOptionModuleWith { 18 + sinceRelease = 2411; 19 + from = [ 20 + "virtualisation" 21 + "azureImage" 22 + "diskSize" 23 + ]; 24 + to = [ 25 + "virtualisation" 26 + "diskSize" 27 + ]; 28 + }) 29 + ]; 9 30 10 31 options.virtualisation.azureImage = { 11 - diskSize = mkOption { 12 - type = with types; either (enum [ "auto" ]) int; 13 - default = "auto"; 14 - example = 2048; 15 - description = '' 16 - Size of disk image. Unit is MB. 17 - ''; 18 - }; 19 - 20 32 bootSize = mkOption { 21 33 type = types.int; 22 34 default = 256; ··· 35 47 }; 36 48 37 49 vmGeneration = mkOption { 38 - type = with types; enum [ "v1" "v2" ]; 50 + type = 51 + with types; 52 + enum [ 53 + "v1" 54 + "v2" 55 + ]; 39 56 default = "v1"; 40 57 description = '' 41 58 VM Generation to use. ··· 57 74 bootSize = "${toString cfg.bootSize}M"; 58 75 partitionTableType = if cfg.vmGeneration == "v2" then "efi" else "legacy"; 59 76 60 - inherit (cfg) diskSize contents; 77 + inherit (cfg) contents; 78 + inherit (config.virtualisation) diskSize; 61 79 inherit config lib pkgs; 62 80 }; 63 81 };
+49 -26
nixos/modules/virtualisation/digital-ocean-image.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 3 8 with lib; 4 9 let 5 10 cfg = config.virtualisation.digitalOceanImage; 11 + virtualisationOptions = import ./virtualisation-options.nix; 6 12 in 7 13 { 8 14 9 - imports = [ ./digital-ocean-config.nix ]; 15 + imports = [ 16 + ./digital-ocean-config.nix 17 + virtualisationOptions.diskSize 18 + (lib.mkRenamedOptionModuleWith { 19 + sinceRelease = 2411; 20 + from = [ 21 + "virtualisation" 22 + "digitialOceanImage" 23 + "diskSize" 24 + ]; 25 + to = [ 26 + "virtualisation" 27 + "diskSize" 28 + ]; 29 + }) 30 + ]; 10 31 11 32 options = { 12 - virtualisation.digitalOceanImage.diskSize = mkOption { 13 - type = with types; either (enum [ "auto" ]) int; 14 - default = "auto"; 15 - example = 4096; 16 - description = '' 17 - Size of disk image. Unit is MB. 18 - ''; 19 - }; 20 - 21 33 virtualisation.digitalOceanImage.configFile = mkOption { 22 34 type = with types; nullOr path; 23 35 default = null; ··· 31 43 }; 32 44 33 45 virtualisation.digitalOceanImage.compressionMethod = mkOption { 34 - type = types.enum [ "gzip" "bzip2" ]; 46 + type = types.enum [ 47 + "gzip" 48 + "bzip2" 49 + ]; 35 50 default = "gzip"; 36 51 example = "bzip2"; 37 52 description = '' ··· 44 59 45 60 #### implementation 46 61 config = { 47 - 48 62 system.build.digitalOceanImage = import ../../lib/make-disk-image.nix { 49 63 name = "digital-ocean-image"; 50 64 format = "qcow2"; 51 - postVM = let 52 - compress = { 53 - "gzip" = "${pkgs.gzip}/bin/gzip"; 54 - "bzip2" = "${pkgs.bzip2}/bin/bzip2"; 55 - }.${cfg.compressionMethod}; 56 - in '' 57 - ${compress} $diskImage 58 - ''; 59 - configFile = if cfg.configFile == null 60 - then config.virtualisation.digitalOcean.defaultConfigFile 61 - else cfg.configFile; 62 - inherit (cfg) diskSize; 65 + postVM = 66 + let 67 + compress = 68 + { 69 + "gzip" = "${pkgs.gzip}/bin/gzip"; 70 + "bzip2" = "${pkgs.bzip2}/bin/bzip2"; 71 + } 72 + .${cfg.compressionMethod}; 73 + in 74 + '' 75 + ${compress} $diskImage 76 + ''; 77 + configFile = 78 + if cfg.configFile == null then 79 + config.virtualisation.digitalOcean.defaultConfigFile 80 + else 81 + cfg.configFile; 82 + inherit (config.virtualisation) diskSize; 63 83 inherit config lib pkgs; 64 84 }; 65 85 66 86 }; 67 87 68 - meta.maintainers = with maintainers; [ arianvp eamsden ]; 88 + meta.maintainers = with maintainers; [ 89 + arianvp 90 + eamsden 91 + ]; 69 92 70 93 }
+31 -13
nixos/modules/virtualisation/google-compute-image.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 3 8 with lib; 4 9 let ··· 11 16 ]; 12 17 } 13 18 ''; 19 + virtualisationOptions = import ./virtualisation-options.nix; 14 20 in 15 21 { 16 22 17 - imports = [ ./google-compute-config.nix ]; 23 + imports = [ 24 + ./google-compute-config.nix 25 + virtualisationOptions.diskSize 26 + (lib.mkRenamedOptionModuleWith { 27 + sinceRelease = 2411; 28 + from = [ 29 + "virtualisation" 30 + "googleComputeImage" 31 + "diskSize" 32 + ]; 33 + to = [ 34 + "virtualisation" 35 + "diskSize" 36 + ]; 37 + }) 38 + ]; 18 39 19 40 options = { 20 - virtualisation.googleComputeImage.diskSize = mkOption { 21 - type = with types; either (enum [ "auto" ]) int; 22 - default = "auto"; 23 - example = 1536; 24 - description = '' 25 - Size of disk image. Unit is MB. 26 - ''; 27 - }; 28 - 29 41 virtualisation.googleComputeImage.configFile = mkOption { 30 42 type = with types; nullOr str; 31 43 default = null; ··· 64 76 system.build.googleComputeImage = import ../../lib/make-disk-image.nix { 65 77 name = "google-compute-image"; 66 78 postVM = '' 67 - PATH=$PATH:${with pkgs; lib.makeBinPath [ gnutar gzip ]} 79 + PATH=$PATH:${ 80 + with pkgs; 81 + lib.makeBinPath [ 82 + gnutar 83 + gzip 84 + ] 85 + } 68 86 pushd $out 69 87 mv $diskImage disk.raw 70 88 tar -Sc disk.raw | gzip -${toString cfg.compressionLevel} > \ ··· 75 93 format = "raw"; 76 94 configFile = if cfg.configFile == null then defaultConfigFile else cfg.configFile; 77 95 partitionTableType = if cfg.efi then "efi" else "legacy"; 78 - inherit (cfg) diskSize; 96 + inherit (config.virtualisation) diskSize; 79 97 inherit config lib pkgs; 80 98 }; 81 99
+29 -11
nixos/modules/virtualisation/hyperv-image.nix
··· 1 - { config, pkgs, lib, ... }: 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 2 7 3 8 with lib; 4 9 5 10 let 6 11 cfg = config.hyperv; 12 + virtualisationOptions = import ./virtualisation-options.nix; 7 13 8 - in { 14 + in 15 + { 16 + 17 + imports = [ 18 + virtualisationOptions.diskSize 19 + (lib.mkRenamedOptionModuleWith { 20 + sinceRelease = 2411; 21 + from = [ 22 + "virtualisation" 23 + "hyperv" 24 + "baseImageSize" 25 + ]; 26 + to = [ 27 + "virtualisation" 28 + "diskSize" 29 + ]; 30 + }) 31 + ]; 32 + 9 33 options = { 10 34 hyperv = { 11 - baseImageSize = mkOption { 12 - type = with types; either (enum [ "auto" ]) int; 13 - default = "auto"; 14 - example = 2048; 15 - description = '' 16 - The size of the hyper-v base image in MiB. 17 - ''; 18 - }; 19 35 vmDerivationName = mkOption { 20 36 type = types.str; 21 37 default = "nixos-hyperv-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}"; ··· 34 50 }; 35 51 36 52 config = { 53 + virtualisation.diskSize = lib.mkDefault (4 * 1024); 54 + 37 55 system.build.hypervImage = import ../../lib/make-disk-image.nix { 38 56 name = cfg.vmDerivationName; 39 57 postVM = '' ··· 41 59 rm $diskImage 42 60 ''; 43 61 format = "raw"; 44 - diskSize = cfg.baseImageSize; 62 + inherit (config.virtualisation) diskSize; 45 63 partitionTableType = "efi"; 46 64 inherit config lib pkgs; 47 65 };
+24 -11
nixos/modules/virtualisation/linode-image.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 3 8 with lib; 4 9 let ··· 10 15 ]; 11 16 } 12 17 ''; 18 + virtualisationOptions = import ./virtualisation-options.nix; 13 19 in 14 20 { 15 - imports = [ ./linode-config.nix ]; 21 + imports = [ 22 + ./linode-config.nix 23 + virtualisationOptions.diskSize 24 + (lib.mkRenamedOptionModuleWith { 25 + sinceRelease = 2411; 26 + from = [ 27 + "virtualisation" 28 + "linodeImage" 29 + "diskSize" 30 + ]; 31 + to = [ 32 + "virtualisation" 33 + "diskSize" 34 + ]; 35 + }) 36 + ]; 16 37 17 38 options = { 18 - virtualisation.linodeImage.diskSize = mkOption { 19 - type = with types; either (enum (singleton "auto")) ints.positive; 20 - default = "auto"; 21 - example = 1536; 22 - description = '' 23 - Size of disk image in MB. 24 - ''; 25 - }; 26 39 27 40 virtualisation.linodeImage.configFile = mkOption { 28 41 type = with types; nullOr str; ··· 57 70 format = "raw"; 58 71 partitionTableType = "none"; 59 72 configFile = if cfg.configFile == null then defaultConfigFile else cfg.configFile; 60 - inherit (cfg) diskSize; 73 + inherit (config.virtualisation) diskSize; 61 74 inherit config lib pkgs; 62 75 }; 63 76 };
+14 -3
nixos/modules/virtualisation/oci-image.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 3 8 let 4 9 cfg = config.oci; ··· 7 12 imports = [ ./oci-common.nix ]; 8 13 9 14 config = { 15 + virtualisation.diskSize = lib.mkDefault (8 * 1024); 16 + virtualisation.diskSizeAutoSupported = false; 17 + 10 18 system.build.OCIImage = import ../../lib/make-disk-image.nix { 11 19 inherit config lib pkgs; 12 - inherit (cfg) diskSize; 20 + inherit (config.virtualisation) diskSize; 13 21 name = "oci-image"; 14 22 configFile = ./oci-config-user.nix; 15 23 format = "qcow2"; ··· 25 33 after = [ "network-online.target" ]; 26 34 wants = [ "network-online.target" ]; 27 35 28 - path = [ pkgs.coreutils pkgs.curl ]; 36 + path = [ 37 + pkgs.coreutils 38 + pkgs.curl 39 + ]; 29 40 script = '' 30 41 mkdir -m 0700 -p /root/.ssh 31 42 if [ -f /root/.ssh/authorized_keys ]; then
+23 -7
nixos/modules/virtualisation/oci-options.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + lib, 3 + ... 4 + }: 5 + let 6 + virtualisationOptions = import ./virtualisation-options.nix; 7 + in 2 8 { 9 + imports = [ 10 + virtualisationOptions.diskSize 11 + (lib.mkRenamedOptionModuleWith { 12 + sinceRelease = 2411; 13 + from = [ 14 + "virtualisation" 15 + "oci" 16 + "diskSize" 17 + ]; 18 + to = [ 19 + "virtualisation" 20 + "diskSize" 21 + ]; 22 + }) 23 + ]; 24 + 3 25 options = { 4 26 oci = { 5 27 efi = lib.mkOption { ··· 8 30 description = '' 9 31 Whether the OCI instance is using EFI. 10 32 ''; 11 - }; 12 - diskSize = lib.mkOption { 13 - type = lib.types.int; 14 - default = 8192; 15 - description = "Size of the disk image created in MB."; 16 - example = "diskSize = 12 * 1024; # 12GiB"; 17 33 }; 18 34 }; 19 35 };
+190 -143
nixos/modules/virtualisation/proxmox-image.nix
··· 1 - { config, pkgs, lib, ... }: 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 2 7 3 8 with lib; 4 - 9 + let 10 + virtualisationOptions = import ./virtualisation-options.nix; 11 + in 5 12 { 13 + imports = [ 14 + virtualisationOptions.diskSize 15 + (lib.mkRenamedOptionModuleWith { 16 + sinceRelease = 2411; 17 + from = [ 18 + "virtualisation" 19 + "proxmoxImage" 20 + "diskSize" 21 + ]; 22 + to = [ 23 + "virtualisation" 24 + "diskSize" 25 + ]; 26 + }) 27 + ]; 28 + 6 29 options.proxmox = { 7 30 qemuConf = { 8 31 # essential configs ··· 54 77 ''; 55 78 }; 56 79 bios = mkOption { 57 - type = types.enum [ "seabios" "ovmf" ]; 80 + type = types.enum [ 81 + "seabios" 82 + "ovmf" 83 + ]; 58 84 default = "seabios"; 59 85 description = '' 60 86 Select BIOS implementation (seabios = Legacy BIOS, ovmf = UEFI). ··· 85 111 description = '' 86 112 Size of the boot partition. Is only used if partitionTableType is 87 113 either "efi" or "hybrid". 88 - ''; 89 - }; 90 - diskSize = mkOption { 91 - type = types.str; 92 - default = "auto"; 93 - example = "20480"; 94 - description = '' 95 - The size of the disk, in megabytes. 96 - if "auto" size is calculated based on the contents copied to it and 97 - additionalSpace is taken into account. 98 114 ''; 99 115 }; 100 116 net0 = mkOption { ··· 124 140 }; 125 141 }; 126 142 qemuExtraConf = mkOption { 127 - type = with types; attrsOf (oneOf [ str int ]); 128 - default = {}; 143 + type = 144 + with types; 145 + attrsOf (oneOf [ 146 + str 147 + int 148 + ]); 149 + default = { }; 129 150 example = literalExpression '' 130 151 { 131 152 cpu = "host"; ··· 137 158 ''; 138 159 }; 139 160 partitionTableType = mkOption { 140 - type = types.enum [ "efi" "hybrid" "legacy" "legacy+gpt" ]; 161 + type = types.enum [ 162 + "efi" 163 + "hybrid" 164 + "legacy" 165 + "legacy+gpt" 166 + ]; 141 167 description = '' 142 168 Partition table type to use. See make-disk-image.nix partitionTableType for details. 143 169 Defaults to 'legacy' for 'proxmox.qemuConf.bios="seabios"' (default), other bios values defaults to 'efi'. ··· 185 211 }; 186 212 }; 187 213 188 - config = let 189 - cfg = config.proxmox; 190 - cfgLine = name: value: '' 191 - ${name}: ${builtins.toString value} 192 - ''; 193 - virtio0Storage = builtins.head (builtins.split ":" cfg.qemuConf.virtio0); 194 - cfgFile = fileName: properties: pkgs.writeTextDir fileName '' 195 - # generated by NixOS 196 - ${lib.concatStrings (lib.mapAttrsToList cfgLine properties)} 197 - #qmdump#map:virtio0:drive-virtio0:${virtio0Storage}:raw: 198 - ''; 199 - inherit (cfg) partitionTableType; 200 - supportEfi = partitionTableType == "efi" || partitionTableType == "hybrid"; 201 - supportBios = partitionTableType == "legacy" || partitionTableType == "hybrid" || partitionTableType == "legacy+gpt"; 202 - hasBootPartition = partitionTableType == "efi" || partitionTableType == "hybrid"; 203 - hasNoFsPartition = partitionTableType == "hybrid" || partitionTableType == "legacy+gpt"; 204 - in { 205 - assertions = [ 206 - { 207 - assertion = config.boot.loader.systemd-boot.enable -> config.proxmox.qemuConf.bios == "ovmf"; 208 - message = "systemd-boot requires 'ovmf' bios"; 209 - } 210 - { 211 - assertion = partitionTableType == "efi" -> config.proxmox.qemuConf.bios == "ovmf"; 212 - message = "'efi' disk partitioning requires 'ovmf' bios"; 213 - } 214 - { 215 - assertion = partitionTableType == "legacy" -> config.proxmox.qemuConf.bios == "seabios"; 216 - message = "'legacy' disk partitioning requires 'seabios' bios"; 217 - } 218 - { 219 - assertion = partitionTableType == "legacy+gpt" -> config.proxmox.qemuConf.bios == "seabios"; 220 - message = "'legacy+gpt' disk partitioning requires 'seabios' bios"; 221 - } 222 - ]; 223 - system.build.VMA = import ../../lib/make-disk-image.nix { 224 - name = "proxmox-${cfg.filenameSuffix}"; 214 + config = 215 + let 216 + cfg = config.proxmox; 217 + cfgLine = name: value: '' 218 + ${name}: ${builtins.toString value} 219 + ''; 220 + virtio0Storage = builtins.head (builtins.split ":" cfg.qemuConf.virtio0); 221 + cfgFile = 222 + fileName: properties: 223 + pkgs.writeTextDir fileName '' 224 + # generated by NixOS 225 + ${lib.concatStrings (lib.mapAttrsToList cfgLine properties)} 226 + #qmdump#map:virtio0:drive-virtio0:${virtio0Storage}:raw: 227 + ''; 225 228 inherit (cfg) partitionTableType; 226 - postVM = let 227 - # Build qemu with PVE's patch that adds support for the VMA format 228 - vma = (pkgs.qemu_kvm.override { 229 - alsaSupport = false; 230 - pulseSupport = false; 231 - sdlSupport = false; 232 - jackSupport = false; 233 - gtkSupport = false; 234 - vncSupport = false; 235 - smartcardSupport = false; 236 - spiceSupport = false; 237 - ncursesSupport = false; 238 - libiscsiSupport = false; 239 - tpmSupport = false; 240 - numaSupport = false; 241 - seccompSupport = false; 242 - guestAgentSupport = false; 243 - }).overrideAttrs ( super: rec { 244 - # Check https://github.com/proxmox/pve-qemu/tree/master for the version 245 - # of qemu and patch to use 246 - version = "9.0.0"; 247 - src = pkgs.fetchurl { 248 - url = "https://download.qemu.org/qemu-${version}.tar.xz"; 249 - hash = "sha256-MnCKxmww2MiSYz6paMdxwcdtWX1w3erSGg0izPOG2mk="; 250 - }; 251 - patches = [ 252 - # Proxmox' VMA tool is published as a particular patch upon QEMU 253 - "${pkgs.fetchFromGitHub { 254 - owner = "proxmox"; 255 - repo = "pve-qemu"; 256 - rev = "14afbdd55f04d250bd679ca1ad55d3f47cd9d4c8"; 257 - hash = "sha256-lSJQA5SHIHfxJvMLIID2drv2H43crTPMNIlIT37w9Nc="; 258 - }}/debian/patches/pve/0027-PVE-Backup-add-vma-backup-format-code.patch" 259 - ]; 229 + supportEfi = partitionTableType == "efi" || partitionTableType == "hybrid"; 230 + supportBios = 231 + partitionTableType == "legacy" 232 + || partitionTableType == "hybrid" 233 + || partitionTableType == "legacy+gpt"; 234 + hasBootPartition = partitionTableType == "efi" || partitionTableType == "hybrid"; 235 + hasNoFsPartition = partitionTableType == "hybrid" || partitionTableType == "legacy+gpt"; 236 + in 237 + { 238 + assertions = [ 239 + { 240 + assertion = config.boot.loader.systemd-boot.enable -> config.proxmox.qemuConf.bios == "ovmf"; 241 + message = "systemd-boot requires 'ovmf' bios"; 242 + } 243 + { 244 + assertion = partitionTableType == "efi" -> config.proxmox.qemuConf.bios == "ovmf"; 245 + message = "'efi' disk partitioning requires 'ovmf' bios"; 246 + } 247 + { 248 + assertion = partitionTableType == "legacy" -> config.proxmox.qemuConf.bios == "seabios"; 249 + message = "'legacy' disk partitioning requires 'seabios' bios"; 250 + } 251 + { 252 + assertion = partitionTableType == "legacy+gpt" -> config.proxmox.qemuConf.bios == "seabios"; 253 + message = "'legacy+gpt' disk partitioning requires 'seabios' bios"; 254 + } 255 + ]; 256 + system.build.VMA = import ../../lib/make-disk-image.nix { 257 + name = "proxmox-${cfg.filenameSuffix}"; 258 + inherit (cfg) partitionTableType; 259 + postVM = 260 + let 261 + # Build qemu with PVE's patch that adds support for the VMA format 262 + vma = 263 + (pkgs.qemu_kvm.override { 264 + alsaSupport = false; 265 + pulseSupport = false; 266 + sdlSupport = false; 267 + jackSupport = false; 268 + gtkSupport = false; 269 + vncSupport = false; 270 + smartcardSupport = false; 271 + spiceSupport = false; 272 + ncursesSupport = false; 273 + libiscsiSupport = false; 274 + tpmSupport = false; 275 + numaSupport = false; 276 + seccompSupport = false; 277 + guestAgentSupport = false; 278 + }).overrideAttrs 279 + (super: rec { 280 + # Check https://github.com/proxmox/pve-qemu/tree/master for the version 281 + # of qemu and patch to use 282 + version = "9.0.0"; 283 + src = pkgs.fetchurl { 284 + url = "https://download.qemu.org/qemu-${version}.tar.xz"; 285 + hash = "sha256-MnCKxmww2MiSYz6paMdxwcdtWX1w3erSGg0izPOG2mk="; 286 + }; 287 + patches = [ 288 + # Proxmox' VMA tool is published as a particular patch upon QEMU 289 + "${ 290 + pkgs.fetchFromGitHub { 291 + owner = "proxmox"; 292 + repo = "pve-qemu"; 293 + rev = "14afbdd55f04d250bd679ca1ad55d3f47cd9d4c8"; 294 + hash = "sha256-lSJQA5SHIHfxJvMLIID2drv2H43crTPMNIlIT37w9Nc="; 295 + } 296 + }/debian/patches/pve/0027-PVE-Backup-add-vma-backup-format-code.patch" 297 + ]; 260 298 261 - buildInputs = super.buildInputs ++ [ pkgs.libuuid ]; 262 - nativeBuildInputs = super.nativeBuildInputs ++ [ pkgs.perl ]; 299 + buildInputs = super.buildInputs ++ [ pkgs.libuuid ]; 300 + nativeBuildInputs = super.nativeBuildInputs ++ [ pkgs.perl ]; 263 301 264 - }); 265 - in 266 - '' 267 - ${vma}/bin/vma create "vzdump-qemu-${cfg.filenameSuffix}.vma" \ 268 - -c ${cfgFile "qemu-server.conf" (cfg.qemuConf // cfg.qemuExtraConf)}/qemu-server.conf drive-virtio0=$diskImage 269 - rm $diskImage 270 - ${pkgs.zstd}/bin/zstd "vzdump-qemu-${cfg.filenameSuffix}.vma" 271 - mv "vzdump-qemu-${cfg.filenameSuffix}.vma.zst" $out/ 302 + }); 303 + in 304 + '' 305 + ${vma}/bin/vma create "vzdump-qemu-${cfg.filenameSuffix}.vma" \ 306 + -c ${ 307 + cfgFile "qemu-server.conf" (cfg.qemuConf // cfg.qemuExtraConf) 308 + }/qemu-server.conf drive-virtio0=$diskImage 309 + rm $diskImage 310 + ${pkgs.zstd}/bin/zstd "vzdump-qemu-${cfg.filenameSuffix}.vma" 311 + mv "vzdump-qemu-${cfg.filenameSuffix}.vma.zst" $out/ 272 312 273 - mkdir -p $out/nix-support 274 - echo "file vma $out/vzdump-qemu-${cfg.filenameSuffix}.vma.zst" > $out/nix-support/hydra-build-products 275 - ''; 276 - inherit (cfg.qemuConf) additionalSpace diskSize bootSize; 277 - format = "raw"; 278 - inherit config lib pkgs; 279 - }; 280 - 281 - boot = { 282 - growPartition = true; 283 - kernelParams = [ "console=ttyS0" ]; 284 - loader.grub = { 285 - device = lib.mkDefault (if (hasNoFsPartition || supportBios) then 286 - # Even if there is a separate no-fs partition ("/dev/disk/by-partlabel/no-fs" i.e. "/dev/vda2"), 287 - # which will be used the bootloader, do not set it as loader.grub.device. 288 - # GRUB installation fails, unless the whole disk is selected. 289 - "/dev/vda" 290 - else 291 - "nodev"); 292 - efiSupport = lib.mkDefault supportEfi; 293 - efiInstallAsRemovable = lib.mkDefault supportEfi; 313 + mkdir -p $out/nix-support 314 + echo "file vma $out/vzdump-qemu-${cfg.filenameSuffix}.vma.zst" > $out/nix-support/hydra-build-products 315 + ''; 316 + inherit (cfg.qemuConf) additionalSpace bootSize; 317 + inherit (config.virtualisation) diskSize; 318 + format = "raw"; 319 + inherit config lib pkgs; 294 320 }; 295 321 296 - loader.timeout = 0; 297 - initrd.availableKernelModules = [ "uas" "virtio_blk" "virtio_pci" ]; 298 - }; 322 + boot = { 323 + growPartition = true; 324 + kernelParams = [ "console=ttyS0" ]; 325 + loader.grub = { 326 + device = lib.mkDefault ( 327 + if (hasNoFsPartition || supportBios) then 328 + # Even if there is a separate no-fs partition ("/dev/disk/by-partlabel/no-fs" i.e. "/dev/vda2"), 329 + # which will be used the bootloader, do not set it as loader.grub.device. 330 + # GRUB installation fails, unless the whole disk is selected. 331 + "/dev/vda" 332 + else 333 + "nodev" 334 + ); 335 + efiSupport = lib.mkDefault supportEfi; 336 + efiInstallAsRemovable = lib.mkDefault supportEfi; 337 + }; 299 338 300 - fileSystems."/" = { 301 - device = "/dev/disk/by-label/nixos"; 302 - autoResize = true; 303 - fsType = "ext4"; 304 - }; 305 - fileSystems."/boot" = lib.mkIf hasBootPartition { 306 - device = "/dev/disk/by-label/ESP"; 307 - fsType = "vfat"; 308 - }; 339 + loader.timeout = 0; 340 + initrd.availableKernelModules = [ 341 + "uas" 342 + "virtio_blk" 343 + "virtio_pci" 344 + ]; 345 + }; 346 + 347 + fileSystems."/" = { 348 + device = "/dev/disk/by-label/nixos"; 349 + autoResize = true; 350 + fsType = "ext4"; 351 + }; 352 + fileSystems."/boot" = lib.mkIf hasBootPartition { 353 + device = "/dev/disk/by-label/ESP"; 354 + fsType = "vfat"; 355 + }; 309 356 310 - networking = mkIf cfg.cloudInit.enable { 311 - hostName = mkForce ""; 312 - useDHCP = false; 313 - }; 357 + networking = mkIf cfg.cloudInit.enable { 358 + hostName = mkForce ""; 359 + useDHCP = false; 360 + }; 314 361 315 - services = { 316 - cloud-init = mkIf cfg.cloudInit.enable { 317 - enable = true; 318 - network.enable = true; 362 + services = { 363 + cloud-init = mkIf cfg.cloudInit.enable { 364 + enable = true; 365 + network.enable = true; 366 + }; 367 + sshd.enable = mkDefault true; 368 + qemuGuest.enable = true; 319 369 }; 320 - sshd.enable = mkDefault true; 321 - qemuGuest.enable = true; 370 + 371 + proxmox.qemuExtraConf.${cfg.cloudInit.device} = "${cfg.cloudInit.defaultStorage}:vm-9999-cloudinit,media=cdrom"; 322 372 }; 323 - 324 - proxmox.qemuExtraConf.${cfg.cloudInit.device} = "${cfg.cloudInit.defaultStorage}:vm-9999-cloudinit,media=cdrom"; 325 - }; 326 373 }
+912 -799
nixos/modules/virtualisation/qemu-vm.nix
··· 4 4 # `config'. By default, the Nix store is shared read-only with the 5 5 # host, which makes (re)building VMs very efficient. 6 6 7 - { config, lib, pkgs, options, ... }: 7 + { 8 + config, 9 + lib, 10 + pkgs, 11 + options, 12 + ... 13 + }: 8 14 9 15 with lib; 10 16 ··· 22 28 23 29 consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles; 24 30 25 - driveOpts = { ... }: { 31 + driveOpts = 32 + { ... }: 33 + { 26 34 27 - options = { 35 + options = { 28 36 29 - file = mkOption { 30 - type = types.str; 31 - description = "The file image used for this drive."; 32 - }; 37 + file = mkOption { 38 + type = types.str; 39 + description = "The file image used for this drive."; 40 + }; 33 41 34 - driveExtraOpts = mkOption { 35 - type = types.attrsOf types.str; 36 - default = {}; 37 - description = "Extra options passed to drive flag."; 38 - }; 42 + driveExtraOpts = mkOption { 43 + type = types.attrsOf types.str; 44 + default = { }; 45 + description = "Extra options passed to drive flag."; 46 + }; 39 47 40 - deviceExtraOpts = mkOption { 41 - type = types.attrsOf types.str; 42 - default = {}; 43 - description = "Extra options passed to device flag."; 44 - }; 48 + deviceExtraOpts = mkOption { 49 + type = types.attrsOf types.str; 50 + default = { }; 51 + description = "Extra options passed to device flag."; 52 + }; 53 + 54 + name = mkOption { 55 + type = types.nullOr types.str; 56 + default = null; 57 + description = "A name for the drive. Must be unique in the drives list. Not passed to qemu."; 58 + }; 45 59 46 - name = mkOption { 47 - type = types.nullOr types.str; 48 - default = null; 49 - description = "A name for the drive. Must be unique in the drives list. Not passed to qemu."; 50 60 }; 51 61 52 62 }; 53 63 54 - }; 64 + selectPartitionTableLayout = 65 + { useEFIBoot, useDefaultFilesystems }: 66 + if useDefaultFilesystems then if useEFIBoot then "efi" else "legacy" else "none"; 55 67 56 - selectPartitionTableLayout = { useEFIBoot, useDefaultFilesystems }: 57 - if useDefaultFilesystems then 58 - if useEFIBoot then "efi" else "legacy" 59 - else "none"; 60 - 61 - driveCmdline = idx: { file, driveExtraOpts, deviceExtraOpts, ... }: 68 + driveCmdline = 69 + idx: 70 + { 71 + file, 72 + driveExtraOpts, 73 + deviceExtraOpts, 74 + ... 75 + }: 62 76 let 63 77 drvId = "drive${toString idx}"; 64 - mkKeyValue = generators.mkKeyValueDefault {} "="; 78 + mkKeyValue = generators.mkKeyValueDefault { } "="; 65 79 mkOpts = opts: concatStringsSep "," (mapAttrsToList mkKeyValue opts); 66 - driveOpts = mkOpts (driveExtraOpts // { 67 - index = idx; 68 - id = drvId; 69 - "if" = "none"; 70 - inherit file; 71 - }); 72 - deviceOpts = mkOpts (deviceExtraOpts // { 73 - drive = drvId; 74 - }); 80 + driveOpts = mkOpts ( 81 + driveExtraOpts 82 + // { 83 + index = idx; 84 + id = drvId; 85 + "if" = "none"; 86 + inherit file; 87 + } 88 + ); 89 + deviceOpts = mkOpts ( 90 + deviceExtraOpts 91 + // { 92 + drive = drvId; 93 + } 94 + ); 75 95 device = 76 96 if cfg.qemu.diskInterface == "scsi" then 77 97 "-device lsi53c895a -device scsi-hd,${deviceOpts}" 78 98 else 79 99 "-device virtio-blk-pci,${deviceOpts}"; 80 100 in 81 - "-drive ${driveOpts} ${device}"; 101 + "-drive ${driveOpts} ${device}"; 82 102 83 103 drivesCmdLine = drives: concatStringsSep "\\\n " (imap1 driveCmdline drives); 84 104 85 105 # Shell script to start the VM. 86 - startVM = 87 - '' 88 - #! ${hostPkgs.runtimeShell} 106 + startVM = '' 107 + #! ${hostPkgs.runtimeShell} 89 108 90 - export PATH=${makeBinPath [ hostPkgs.coreutils ]}''${PATH:+:}$PATH 91 - 92 - set -e 109 + export PATH=${makeBinPath [ hostPkgs.coreutils ]}''${PATH:+:}$PATH 93 110 94 - # Create an empty ext4 filesystem image. A filesystem image does not 95 - # contain a partition table but just a filesystem. 96 - createEmptyFilesystemImage() { 97 - local name=$1 98 - local size=$2 99 - local temp=$(mktemp) 100 - ${qemu}/bin/qemu-img create -f raw "$temp" "$size" 101 - ${hostPkgs.e2fsprogs}/bin/mkfs.ext4 -L ${rootFilesystemLabel} "$temp" 102 - ${qemu}/bin/qemu-img convert -f raw -O qcow2 "$temp" "$name" 103 - rm "$temp" 104 - } 111 + set -e 105 112 106 - NIX_DISK_IMAGE=$(readlink -f "''${NIX_DISK_IMAGE:-${toString config.virtualisation.diskImage}}") || test -z "$NIX_DISK_IMAGE" 113 + # Create an empty ext4 filesystem image. A filesystem image does not 114 + # contain a partition table but just a filesystem. 115 + createEmptyFilesystemImage() { 116 + local name=$1 117 + local size=$2 118 + local temp=$(mktemp) 119 + ${qemu}/bin/qemu-img create -f raw "$temp" "$size" 120 + ${hostPkgs.e2fsprogs}/bin/mkfs.ext4 -L ${rootFilesystemLabel} "$temp" 121 + ${qemu}/bin/qemu-img convert -f raw -O qcow2 "$temp" "$name" 122 + rm "$temp" 123 + } 107 124 108 - if test -n "$NIX_DISK_IMAGE" && ! test -e "$NIX_DISK_IMAGE"; then 109 - echo "Disk image do not exist, creating the virtualisation disk image..." 125 + NIX_DISK_IMAGE=$(readlink -f "''${NIX_DISK_IMAGE:-${toString config.virtualisation.diskImage}}") || test -z "$NIX_DISK_IMAGE" 110 126 111 - ${if (cfg.useBootLoader && cfg.useDefaultFilesystems) then '' 112 - # Create a writable qcow2 image using the systemImage as a backing 113 - # image. 127 + if test -n "$NIX_DISK_IMAGE" && ! test -e "$NIX_DISK_IMAGE"; then 128 + echo "Disk image do not exist, creating the virtualisation disk image..." 114 129 115 - # CoW prevent size to be attributed to an image. 116 - # FIXME: raise this issue to upstream. 117 - ${qemu}/bin/qemu-img create \ 118 - -f qcow2 \ 119 - -b ${systemImage}/nixos.qcow2 \ 120 - -F qcow2 \ 121 - "$NIX_DISK_IMAGE" 122 - '' else if cfg.useDefaultFilesystems then '' 123 - createEmptyFilesystemImage "$NIX_DISK_IMAGE" "${toString cfg.diskSize}M" 124 - '' else '' 125 - # Create an empty disk image without a filesystem. 126 - ${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" "${toString cfg.diskSize}M" 127 - '' 128 - } 129 - echo "Virtualisation disk image created." 130 - fi 130 + ${ 131 + if (cfg.useBootLoader && cfg.useDefaultFilesystems) then 132 + '' 133 + # Create a writable qcow2 image using the systemImage as a backing 134 + # image. 131 135 132 - # Create a directory for storing temporary data of the running VM. 133 - if [ -z "$TMPDIR" ] || [ -z "$USE_TMPDIR" ]; then 134 - TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir) 135 - fi 136 + # CoW prevent size to be attributed to an image. 137 + # FIXME: raise this issue to upstream. 138 + ${qemu}/bin/qemu-img create \ 139 + -f qcow2 \ 140 + -b ${systemImage}/nixos.qcow2 \ 141 + -F qcow2 \ 142 + "$NIX_DISK_IMAGE" 143 + '' 144 + else if cfg.useDefaultFilesystems then 145 + '' 146 + createEmptyFilesystemImage "$NIX_DISK_IMAGE" "${toString cfg.diskSize}M" 147 + '' 148 + else 149 + '' 150 + # Create an empty disk image without a filesystem. 151 + ${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" "${toString cfg.diskSize}M" 152 + '' 153 + } 154 + echo "Virtualisation disk image created." 155 + fi 136 156 137 - ${lib.optionalString (cfg.useNixStoreImage) '' 138 - echo "Creating Nix store image..." 157 + # Create a directory for storing temporary data of the running VM. 158 + if [ -z "$TMPDIR" ] || [ -z "$USE_TMPDIR" ]; then 159 + TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir) 160 + fi 139 161 140 - ${hostPkgs.gnutar}/bin/tar --create \ 141 - --absolute-names \ 142 - --verbatim-files-from \ 143 - --transform 'flags=rSh;s|/nix/store/||' \ 144 - --files-from ${hostPkgs.closureInfo { rootPaths = [ config.system.build.toplevel regInfo ]; }}/store-paths \ 145 - | ${hostPkgs.erofs-utils}/bin/mkfs.erofs \ 146 - --quiet \ 147 - --force-uid=0 \ 148 - --force-gid=0 \ 149 - -L ${nixStoreFilesystemLabel} \ 150 - -U eb176051-bd15-49b7-9e6b-462e0b467019 \ 151 - -T 0 \ 152 - --tar=f \ 153 - "$TMPDIR"/store.img 162 + ${lib.optionalString (cfg.useNixStoreImage) '' 163 + echo "Creating Nix store image..." 154 164 155 - echo "Created Nix store image." 156 - '' 157 - } 165 + ${hostPkgs.gnutar}/bin/tar --create \ 166 + --absolute-names \ 167 + --verbatim-files-from \ 168 + --transform 'flags=rSh;s|/nix/store/||' \ 169 + --files-from ${ 170 + hostPkgs.closureInfo { 171 + rootPaths = [ 172 + config.system.build.toplevel 173 + regInfo 174 + ]; 175 + } 176 + }/store-paths \ 177 + | ${hostPkgs.erofs-utils}/bin/mkfs.erofs \ 178 + --quiet \ 179 + --force-uid=0 \ 180 + --force-gid=0 \ 181 + -L ${nixStoreFilesystemLabel} \ 182 + -U eb176051-bd15-49b7-9e6b-462e0b467019 \ 183 + -T 0 \ 184 + --tar=f \ 185 + "$TMPDIR"/store.img 158 186 159 - # Create a directory for exchanging data with the VM. 160 - mkdir -p "$TMPDIR/xchg" 187 + echo "Created Nix store image." 188 + ''} 161 189 162 - ${lib.optionalString cfg.useHostCerts 163 - '' 164 - mkdir -p "$TMPDIR/certs" 165 - if [ -e "$NIX_SSL_CERT_FILE" ]; then 166 - cp -L "$NIX_SSL_CERT_FILE" "$TMPDIR"/certs/ca-certificates.crt 167 - else 168 - echo \$NIX_SSL_CERT_FILE should point to a valid file if virtualisation.useHostCerts is enabled. 169 - fi 170 - ''} 190 + # Create a directory for exchanging data with the VM. 191 + mkdir -p "$TMPDIR/xchg" 171 192 172 - ${lib.optionalString cfg.useEFIBoot 173 - '' 174 - # Expose EFI variables, it's useful even when we are not using a bootloader (!). 175 - # We might be interested in having EFI variable storage present even if we aren't booting via UEFI, hence 176 - # no guard against `useBootLoader`. Examples: 177 - # - testing PXE boot or other EFI applications 178 - # - directbooting LinuxBoot, which `kexec()s` into a UEFI environment that can boot e.g. Windows 179 - NIX_EFI_VARS=$(readlink -f "''${NIX_EFI_VARS:-${config.system.name}-efi-vars.fd}") 180 - # VM needs writable EFI vars 181 - if ! test -e "$NIX_EFI_VARS"; then 182 - ${if cfg.efi.keepVariables then 183 - # We still need the EFI var from the make-disk-image derivation 184 - # because our "switch-to-configuration" process might 185 - # write into it and we want to keep this data. 186 - ''cp ${systemImage}/efi-vars.fd "$NIX_EFI_VARS"'' 187 - else 188 - ''cp ${cfg.efi.variables} "$NIX_EFI_VARS"'' 189 - } 190 - chmod 0644 "$NIX_EFI_VARS" 191 - fi 192 - ''} 193 + ${lib.optionalString cfg.useHostCerts '' 194 + mkdir -p "$TMPDIR/certs" 195 + if [ -e "$NIX_SSL_CERT_FILE" ]; then 196 + cp -L "$NIX_SSL_CERT_FILE" "$TMPDIR"/certs/ca-certificates.crt 197 + else 198 + echo \$NIX_SSL_CERT_FILE should point to a valid file if virtualisation.useHostCerts is enabled. 199 + fi 200 + ''} 193 201 194 - ${lib.optionalString cfg.tpm.enable '' 195 - NIX_SWTPM_DIR=$(readlink -f "''${NIX_SWTPM_DIR:-${config.system.name}-swtpm}") 196 - mkdir -p "$NIX_SWTPM_DIR" 197 - ${lib.getExe cfg.tpm.package} \ 198 - socket \ 199 - --tpmstate dir="$NIX_SWTPM_DIR" \ 200 - --ctrl type=unixio,path="$NIX_SWTPM_DIR"/socket,terminate \ 201 - --pid file="$NIX_SWTPM_DIR"/pid --daemon \ 202 - --tpm2 \ 203 - --log file="$NIX_SWTPM_DIR"/stdout,level=6 202 + ${lib.optionalString cfg.useEFIBoot '' 203 + # Expose EFI variables, it's useful even when we are not using a bootloader (!). 204 + # We might be interested in having EFI variable storage present even if we aren't booting via UEFI, hence 205 + # no guard against `useBootLoader`. Examples: 206 + # - testing PXE boot or other EFI applications 207 + # - directbooting LinuxBoot, which `kexec()s` into a UEFI environment that can boot e.g. Windows 208 + NIX_EFI_VARS=$(readlink -f "''${NIX_EFI_VARS:-${config.system.name}-efi-vars.fd}") 209 + # VM needs writable EFI vars 210 + if ! test -e "$NIX_EFI_VARS"; then 211 + ${ 212 + if cfg.efi.keepVariables then 213 + # We still need the EFI var from the make-disk-image derivation 214 + # because our "switch-to-configuration" process might 215 + # write into it and we want to keep this data. 216 + ''cp ${systemImage}/efi-vars.fd "$NIX_EFI_VARS"'' 217 + else 218 + ''cp ${cfg.efi.variables} "$NIX_EFI_VARS"'' 219 + } 220 + chmod 0644 "$NIX_EFI_VARS" 221 + fi 222 + ''} 204 223 205 - # Enable `fdflags` builtin in Bash 206 - # We will need it to perform surgical modification of the file descriptor 207 - # passed in the coprocess to remove `FD_CLOEXEC`, i.e. close the file descriptor 208 - # on exec. 209 - # If let alone, it will trigger the coprocess to read EOF when QEMU is `exec` 210 - # at the end of this script. To work around that, we will just clear 211 - # the `FD_CLOEXEC` bits as a first step. 212 - enable -f ${hostPkgs.bash}/lib/bash/fdflags fdflags 213 - # leave a dangling subprocess because the swtpm ctrl socket has 214 - # "terminate" when the last connection disconnects, it stops swtpm. 215 - # When qemu stops, or if the main shell process ends, the coproc will 216 - # get signaled by virtue of the pipe between main and coproc ending. 217 - # Which in turns triggers a socat connect-disconnect to swtpm which 218 - # will stop it. 219 - coproc waitingswtpm { 220 - read || : 221 - echo "" | ${lib.getExe hostPkgs.socat} STDIO UNIX-CONNECT:"$NIX_SWTPM_DIR"/socket 222 - } 223 - # Clear `FD_CLOEXEC` on the coprocess' file descriptor stdin. 224 - fdflags -s-cloexec ''${waitingswtpm[1]} 225 - ''} 224 + ${lib.optionalString cfg.tpm.enable '' 225 + NIX_SWTPM_DIR=$(readlink -f "''${NIX_SWTPM_DIR:-${config.system.name}-swtpm}") 226 + mkdir -p "$NIX_SWTPM_DIR" 227 + ${lib.getExe cfg.tpm.package} \ 228 + socket \ 229 + --tpmstate dir="$NIX_SWTPM_DIR" \ 230 + --ctrl type=unixio,path="$NIX_SWTPM_DIR"/socket,terminate \ 231 + --pid file="$NIX_SWTPM_DIR"/pid --daemon \ 232 + --tpm2 \ 233 + --log file="$NIX_SWTPM_DIR"/stdout,level=6 226 234 227 - cd "$TMPDIR" 235 + # Enable `fdflags` builtin in Bash 236 + # We will need it to perform surgical modification of the file descriptor 237 + # passed in the coprocess to remove `FD_CLOEXEC`, i.e. close the file descriptor 238 + # on exec. 239 + # If let alone, it will trigger the coprocess to read EOF when QEMU is `exec` 240 + # at the end of this script. To work around that, we will just clear 241 + # the `FD_CLOEXEC` bits as a first step. 242 + enable -f ${hostPkgs.bash}/lib/bash/fdflags fdflags 243 + # leave a dangling subprocess because the swtpm ctrl socket has 244 + # "terminate" when the last connection disconnects, it stops swtpm. 245 + # When qemu stops, or if the main shell process ends, the coproc will 246 + # get signaled by virtue of the pipe between main and coproc ending. 247 + # Which in turns triggers a socat connect-disconnect to swtpm which 248 + # will stop it. 249 + coproc waitingswtpm { 250 + read || : 251 + echo "" | ${lib.getExe hostPkgs.socat} STDIO UNIX-CONNECT:"$NIX_SWTPM_DIR"/socket 252 + } 253 + # Clear `FD_CLOEXEC` on the coprocess' file descriptor stdin. 254 + fdflags -s-cloexec ''${waitingswtpm[1]} 255 + ''} 228 256 229 - ${lib.optionalString (cfg.emptyDiskImages != []) "idx=0"} 230 - ${flip concatMapStrings cfg.emptyDiskImages (size: '' 231 - if ! test -e "empty$idx.qcow2"; then 232 - ${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M" 233 - fi 234 - idx=$((idx + 1)) 235 - '')} 257 + cd "$TMPDIR" 236 258 237 - # Start QEMU. 238 - exec ${qemu-common.qemuBinary qemu} \ 239 - -name ${config.system.name} \ 240 - -m ${toString config.virtualisation.memorySize} \ 241 - -smp ${toString config.virtualisation.cores} \ 242 - -device virtio-rng-pci \ 243 - ${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \ 244 - ${concatStringsSep " \\\n " 245 - (mapAttrsToList 246 - (tag: share: "-virtfs local,path=${share.source},security_model=${share.securityModel},mount_tag=${tag}") 247 - config.virtualisation.sharedDirectories)} \ 248 - ${drivesCmdLine config.virtualisation.qemu.drives} \ 249 - ${concatStringsSep " \\\n " config.virtualisation.qemu.options} \ 250 - $QEMU_OPTS \ 251 - "$@" 252 - ''; 259 + ${lib.optionalString (cfg.emptyDiskImages != [ ]) "idx=0"} 260 + ${flip concatMapStrings cfg.emptyDiskImages (size: '' 261 + if ! test -e "empty$idx.qcow2"; then 262 + ${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M" 263 + fi 264 + idx=$((idx + 1)) 265 + '')} 253 266 267 + # Start QEMU. 268 + exec ${qemu-common.qemuBinary qemu} \ 269 + -name ${config.system.name} \ 270 + -m ${toString config.virtualisation.memorySize} \ 271 + -smp ${toString config.virtualisation.cores} \ 272 + -device virtio-rng-pci \ 273 + ${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \ 274 + ${ 275 + concatStringsSep " \\\n " ( 276 + mapAttrsToList ( 277 + tag: share: 278 + "-virtfs local,path=${share.source},security_model=${share.securityModel},mount_tag=${tag}" 279 + ) config.virtualisation.sharedDirectories 280 + ) 281 + } \ 282 + ${drivesCmdLine config.virtualisation.qemu.drives} \ 283 + ${concatStringsSep " \\\n " config.virtualisation.qemu.options} \ 284 + $QEMU_OPTS \ 285 + "$@" 286 + ''; 254 287 255 288 regInfo = hostPkgs.closureInfo { rootPaths = config.virtualisation.additionalPaths; }; 256 289 ··· 292 325 OVMF = cfg.efi.OVMF; 293 326 }; 294 327 328 + virtualisationOptions = import ./virtualisation-options.nix; 329 + 295 330 in 296 331 297 332 { 298 333 imports = [ 334 + ./virtualisation-options.nix 299 335 ../profiles/qemu-guest.nix 300 - (mkRenamedOptionModule [ "virtualisation" "pathsInNixDB" ] [ "virtualisation" "additionalPaths" ]) 301 - (mkRemovedOptionModule [ "virtualisation" "bootDevice" ] "This option was renamed to `virtualisation.rootDevice`, as it was incorrectly named and misleading. Take the time to review what you want to do and look at the new options like `virtualisation.{bootLoaderDevice, bootPartition}`, open an issue in case of issues.") 302 - (mkRemovedOptionModule [ "virtualisation" "efiVars" ] "This option was removed, it is possible to provide a template UEFI variable with `virtualisation.efi.variables` ; if this option is important to you, open an issue") 303 - (mkRemovedOptionModule [ "virtualisation" "persistBootDevice" ] "Boot device is always persisted if you use a bootloader through the root disk image ; if this does not work for your usecase, please examine carefully what `virtualisation.{bootDevice, rootDevice, bootPartition}` options offer you and open an issue explaining your need.`") 336 + virtualisationOptions.diskSize 337 + (mkRenamedOptionModule 338 + [ 339 + "virtualisation" 340 + "pathsInNixDB" 341 + ] 342 + [ 343 + "virtualisation" 344 + "additionalPaths" 345 + ] 346 + ) 347 + (mkRemovedOptionModule 348 + [ 349 + "virtualisation" 350 + "bootDevice" 351 + ] 352 + "This option was renamed to `virtualisation.rootDevice`, as it was incorrectly named and misleading. Take the time to review what you want to do and look at the new options like `virtualisation.{bootLoaderDevice, bootPartition}`, open an issue in case of issues." 353 + ) 354 + (mkRemovedOptionModule 355 + [ 356 + "virtualisation" 357 + "efiVars" 358 + ] 359 + "This option was removed, it is possible to provide a template UEFI variable with `virtualisation.efi.variables` ; if this option is important to you, open an issue" 360 + ) 361 + (mkRemovedOptionModule 362 + [ 363 + "virtualisation" 364 + "persistBootDevice" 365 + ] 366 + "Boot device is always persisted if you use a bootloader through the root disk image ; if this does not work for your usecase, please examine carefully what `virtualisation.{bootDevice, rootDevice, bootPartition}` options offer you and open an issue explaining your need.`" 367 + ) 304 368 ]; 305 369 306 370 options = { 307 371 308 372 virtualisation.fileSystems = options.fileSystems; 309 373 310 - virtualisation.memorySize = 311 - mkOption { 312 - type = types.ints.positive; 313 - default = 1024; 314 - description = '' 315 - The memory size in megabytes of the virtual machine. 316 - ''; 317 - }; 374 + virtualisation.memorySize = mkOption { 375 + type = types.ints.positive; 376 + default = 1024; 377 + description = '' 378 + The memory size in megabytes of the virtual machine. 379 + ''; 380 + }; 318 381 319 - virtualisation.msize = 320 - mkOption { 321 - type = types.ints.positive; 322 - default = 16384; 323 - description = '' 324 - The msize (maximum packet size) option passed to 9p file systems, in 325 - bytes. Increasing this should increase performance significantly, 326 - at the cost of higher RAM usage. 327 - ''; 328 - }; 382 + virtualisation.msize = mkOption { 383 + type = types.ints.positive; 384 + default = 16384; 385 + description = '' 386 + The msize (maximum packet size) option passed to 9p file systems, in 387 + bytes. Increasing this should increase performance significantly, 388 + at the cost of higher RAM usage. 389 + ''; 390 + }; 329 391 330 - virtualisation.diskSize = 331 - mkOption { 332 - type = types.ints.positive; 333 - default = 1024; 334 - description = '' 335 - The disk size in megabytes of the virtual machine. 336 - ''; 337 - }; 392 + virtualisation.diskImage = mkOption { 393 + type = types.nullOr types.str; 394 + default = "./${config.system.name}.qcow2"; 395 + defaultText = literalExpression ''"./''${config.system.name}.qcow2"''; 396 + description = '' 397 + Path to the disk image containing the root filesystem. 398 + The image will be created on startup if it does not 399 + exist. 338 400 339 - virtualisation.diskImage = 340 - mkOption { 341 - type = types.nullOr types.str; 342 - default = "./${config.system.name}.qcow2"; 343 - defaultText = literalExpression ''"./''${config.system.name}.qcow2"''; 344 - description = '' 345 - Path to the disk image containing the root filesystem. 346 - The image will be created on startup if it does not 347 - exist. 401 + If null, a tmpfs will be used as the root filesystem and 402 + the VM's state will not be persistent. 403 + ''; 404 + }; 348 405 349 - If null, a tmpfs will be used as the root filesystem and 350 - the VM's state will not be persistent. 351 - ''; 352 - }; 353 - 354 - virtualisation.bootLoaderDevice = 355 - mkOption { 356 - type = types.path; 357 - default = "/dev/disk/by-id/virtio-${rootDriveSerialAttr}"; 358 - defaultText = literalExpression ''/dev/disk/by-id/virtio-${rootDriveSerialAttr}''; 359 - example = "/dev/disk/by-id/virtio-boot-loader-device"; 360 - description = '' 361 - The path (inside th VM) to the device to boot from when legacy booting. 362 - ''; 363 - }; 406 + virtualisation.bootLoaderDevice = mkOption { 407 + type = types.path; 408 + default = "/dev/disk/by-id/virtio-${rootDriveSerialAttr}"; 409 + defaultText = literalExpression ''/dev/disk/by-id/virtio-${rootDriveSerialAttr}''; 410 + example = "/dev/disk/by-id/virtio-boot-loader-device"; 411 + description = '' 412 + The path (inside th VM) to the device to boot from when legacy booting. 413 + ''; 414 + }; 364 415 365 - virtualisation.bootPartition = 366 - mkOption { 367 - type = types.nullOr types.path; 368 - default = if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null; 369 - defaultText = literalExpression ''if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null''; 370 - example = "/dev/disk/by-label/esp"; 371 - description = '' 372 - The path (inside the VM) to the device containing the EFI System Partition (ESP). 416 + virtualisation.bootPartition = mkOption { 417 + type = types.nullOr types.path; 418 + default = if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null; 419 + defaultText = literalExpression ''if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null''; 420 + example = "/dev/disk/by-label/esp"; 421 + description = '' 422 + The path (inside the VM) to the device containing the EFI System Partition (ESP). 373 423 374 - If you are *not* booting from a UEFI firmware, this value is, by 375 - default, `null`. The ESP is mounted to `boot.loader.efi.efiSysMountpoint`. 376 - ''; 377 - }; 424 + If you are *not* booting from a UEFI firmware, this value is, by 425 + default, `null`. The ESP is mounted to `boot.loader.efi.efiSysMountpoint`. 426 + ''; 427 + }; 378 428 379 - virtualisation.rootDevice = 380 - mkOption { 381 - type = types.nullOr types.path; 382 - default = "/dev/disk/by-label/${rootFilesystemLabel}"; 383 - defaultText = literalExpression ''/dev/disk/by-label/${rootFilesystemLabel}''; 384 - example = "/dev/disk/by-label/nixos"; 385 - description = '' 386 - The path (inside the VM) to the device containing the root filesystem. 387 - ''; 388 - }; 429 + virtualisation.rootDevice = mkOption { 430 + type = types.nullOr types.path; 431 + default = "/dev/disk/by-label/${rootFilesystemLabel}"; 432 + defaultText = literalExpression ''/dev/disk/by-label/${rootFilesystemLabel}''; 433 + example = "/dev/disk/by-label/nixos"; 434 + description = '' 435 + The path (inside the VM) to the device containing the root filesystem. 436 + ''; 437 + }; 389 438 390 - virtualisation.emptyDiskImages = 391 - mkOption { 392 - type = types.listOf types.ints.positive; 393 - default = []; 394 - description = '' 395 - Additional disk images to provide to the VM. The value is 396 - a list of size in megabytes of each disk. These disks are 397 - writeable by the VM. 398 - ''; 399 - }; 439 + virtualisation.emptyDiskImages = mkOption { 440 + type = types.listOf types.ints.positive; 441 + default = [ ]; 442 + description = '' 443 + Additional disk images to provide to the VM. The value is 444 + a list of size in megabytes of each disk. These disks are 445 + writeable by the VM. 446 + ''; 447 + }; 400 448 401 - virtualisation.graphics = 402 - mkOption { 403 - type = types.bool; 404 - default = true; 405 - description = '' 406 - Whether to run QEMU with a graphics window, or in nographic mode. 407 - Serial console will be enabled on both settings, but this will 408 - change the preferred console. 409 - ''; 410 - }; 449 + virtualisation.graphics = mkOption { 450 + type = types.bool; 451 + default = true; 452 + description = '' 453 + Whether to run QEMU with a graphics window, or in nographic mode. 454 + Serial console will be enabled on both settings, but this will 455 + change the preferred console. 456 + ''; 457 + }; 411 458 412 - virtualisation.resolution = 413 - mkOption { 414 - type = options.services.xserver.resolutions.type.nestedTypes.elemType; 415 - default = { x = 1024; y = 768; }; 416 - description = '' 417 - The resolution of the virtual machine display. 418 - ''; 459 + virtualisation.resolution = mkOption { 460 + type = options.services.xserver.resolutions.type.nestedTypes.elemType; 461 + default = { 462 + x = 1024; 463 + y = 768; 419 464 }; 465 + description = '' 466 + The resolution of the virtual machine display. 467 + ''; 468 + }; 420 469 421 - virtualisation.cores = 422 - mkOption { 423 - type = types.ints.positive; 424 - default = 1; 425 - description = '' 426 - Specify the number of cores the guest is permitted to use. 427 - The number can be higher than the available cores on the 428 - host system. 429 - ''; 430 - }; 470 + virtualisation.cores = mkOption { 471 + type = types.ints.positive; 472 + default = 1; 473 + description = '' 474 + Specify the number of cores the guest is permitted to use. 475 + The number can be higher than the available cores on the 476 + host system. 477 + ''; 478 + }; 431 479 432 - virtualisation.sharedDirectories = 433 - mkOption { 434 - type = types.attrsOf 435 - (types.submodule { 436 - options.source = mkOption { 437 - type = types.str; 438 - description = "The path of the directory to share, can be a shell variable"; 439 - }; 440 - options.target = mkOption { 441 - type = types.path; 442 - description = "The mount point of the directory inside the virtual machine"; 443 - }; 444 - options.securityModel = mkOption { 445 - type = types.enum [ "passthrough" "mapped-xattr" "mapped-file" "none" ]; 446 - default = "mapped-xattr"; 447 - description = '' 448 - The security model to use for this share: 480 + virtualisation.sharedDirectories = mkOption { 481 + type = types.attrsOf ( 482 + types.submodule { 483 + options.source = mkOption { 484 + type = types.str; 485 + description = "The path of the directory to share, can be a shell variable"; 486 + }; 487 + options.target = mkOption { 488 + type = types.path; 489 + description = "The mount point of the directory inside the virtual machine"; 490 + }; 491 + options.securityModel = mkOption { 492 + type = types.enum [ 493 + "passthrough" 494 + "mapped-xattr" 495 + "mapped-file" 496 + "none" 497 + ]; 498 + default = "mapped-xattr"; 499 + description = '' 500 + The security model to use for this share: 449 501 450 - - `passthrough`: files are stored using the same credentials as they are created on the guest (this requires QEMU to run as root) 451 - - `mapped-xattr`: some of the file attributes like uid, gid, mode bits and link target are stored as file attributes 452 - - `mapped-file`: the attributes are stored in the hidden .virtfs_metadata directory. Directories exported by this security model cannot interact with other unix tools 453 - - `none`: same as "passthrough" except the sever won't report failures if it fails to set file attributes like ownership 454 - ''; 455 - }; 456 - }); 457 - default = { }; 458 - example = { 459 - my-share = { source = "/path/to/be/shared"; target = "/mnt/shared"; }; 502 + - `passthrough`: files are stored using the same credentials as they are created on the guest (this requires QEMU to run as root) 503 + - `mapped-xattr`: some of the file attributes like uid, gid, mode bits and link target are stored as file attributes 504 + - `mapped-file`: the attributes are stored in the hidden .virtfs_metadata directory. Directories exported by this security model cannot interact with other unix tools 505 + - `none`: same as "passthrough" except the sever won't report failures if it fails to set file attributes like ownership 506 + ''; 507 + }; 508 + } 509 + ); 510 + default = { }; 511 + example = { 512 + my-share = { 513 + source = "/path/to/be/shared"; 514 + target = "/mnt/shared"; 460 515 }; 461 - description = '' 462 - An attributes set of directories that will be shared with the 463 - virtual machine using VirtFS (9P filesystem over VirtIO). 464 - The attribute name will be used as the 9P mount tag. 465 - ''; 466 516 }; 517 + description = '' 518 + An attributes set of directories that will be shared with the 519 + virtual machine using VirtFS (9P filesystem over VirtIO). 520 + The attribute name will be used as the 9P mount tag. 521 + ''; 522 + }; 467 523 468 - virtualisation.additionalPaths = 469 - mkOption { 470 - type = types.listOf types.path; 471 - default = []; 472 - description = '' 473 - A list of paths whose closure should be made available to 474 - the VM. 524 + virtualisation.additionalPaths = mkOption { 525 + type = types.listOf types.path; 526 + default = [ ]; 527 + description = '' 528 + A list of paths whose closure should be made available to 529 + the VM. 475 530 476 - When 9p is used, the closure is registered in the Nix 477 - database in the VM. All other paths in the host Nix store 478 - appear in the guest Nix store as well, but are considered 479 - garbage (because they are not registered in the Nix 480 - database of the guest). 531 + When 9p is used, the closure is registered in the Nix 532 + database in the VM. All other paths in the host Nix store 533 + appear in the guest Nix store as well, but are considered 534 + garbage (because they are not registered in the Nix 535 + database of the guest). 481 536 482 - When {option}`virtualisation.useNixStoreImage` is 483 - set, the closure is copied to the Nix store image. 484 - ''; 485 - }; 537 + When {option}`virtualisation.useNixStoreImage` is 538 + set, the closure is copied to the Nix store image. 539 + ''; 540 + }; 486 541 487 542 virtualisation.forwardPorts = mkOption { 488 - type = types.listOf 489 - (types.submodule { 543 + type = types.listOf ( 544 + types.submodule { 490 545 options.from = mkOption { 491 - type = types.enum [ "host" "guest" ]; 546 + type = types.enum [ 547 + "host" 548 + "guest" 549 + ]; 492 550 default = "host"; 493 551 description = '' 494 - Controls the direction in which the ports are mapped: 552 + Controls the direction in which the ports are mapped: 495 553 496 - - `"host"` means traffic from the host ports 497 - is forwarded to the given guest port. 498 - - `"guest"` means traffic from the guest ports 499 - is forwarded to the given host port. 500 - ''; 554 + - `"host"` means traffic from the host ports 555 + is forwarded to the given guest port. 556 + - `"guest"` means traffic from the guest ports 557 + is forwarded to the given host port. 558 + ''; 501 559 }; 502 560 options.proto = mkOption { 503 - type = types.enum [ "tcp" "udp" ]; 561 + type = types.enum [ 562 + "tcp" 563 + "udp" 564 + ]; 504 565 default = "tcp"; 505 566 description = "The protocol to forward."; 506 567 }; ··· 522 583 type = types.port; 523 584 description = "The guest port to be mapped."; 524 585 }; 525 - }); 526 - default = []; 527 - example = lib.literalExpression 528 - '' 586 + } 587 + ); 588 + default = [ ]; 589 + example = lib.literalExpression '' 529 590 [ # forward local port 2222 -> 22, to ssh into the VM 530 591 { from = "host"; host.port = 2222; guest.port = 22; } 531 592 ··· 535 596 host.address = "127.0.0.1"; host.port = 80; 536 597 } 537 598 ] 538 - ''; 599 + ''; 539 600 description = '' 540 - When using the SLiRP user networking (default), this option allows to 541 - forward ports to/from the host/guest. 601 + When using the SLiRP user networking (default), this option allows to 602 + forward ports to/from the host/guest. 542 603 543 - ::: {.warning} 544 - If the NixOS firewall on the virtual machine is enabled, you also 545 - have to open the guest ports to enable the traffic between host and 546 - guest. 547 - ::: 604 + ::: {.warning} 605 + If the NixOS firewall on the virtual machine is enabled, you also 606 + have to open the guest ports to enable the traffic between host and 607 + guest. 608 + ::: 548 609 549 - ::: {.note} 550 - Currently QEMU supports only IPv4 forwarding. 551 - ::: 552 - ''; 610 + ::: {.note} 611 + Currently QEMU supports only IPv4 forwarding. 612 + ::: 613 + ''; 553 614 }; 554 615 555 - virtualisation.restrictNetwork = 556 - mkOption { 557 - type = types.bool; 558 - default = false; 559 - example = true; 560 - description = '' 561 - If this option is enabled, the guest will be isolated, i.e. it will 562 - not be able to contact the host and no guest IP packets will be 563 - routed over the host to the outside. This option does not affect 564 - any explicitly set forwarding rules. 565 - ''; 566 - }; 616 + virtualisation.restrictNetwork = mkOption { 617 + type = types.bool; 618 + default = false; 619 + example = true; 620 + description = '' 621 + If this option is enabled, the guest will be isolated, i.e. it will 622 + not be able to contact the host and no guest IP packets will be 623 + routed over the host to the outside. This option does not affect 624 + any explicitly set forwarding rules. 625 + ''; 626 + }; 567 627 568 - virtualisation.vlans = 569 - mkOption { 570 - type = types.listOf types.ints.unsigned; 571 - default = if config.virtualisation.interfaces == {} then [ 1 ] else [ ]; 572 - defaultText = lib.literalExpression ''if config.virtualisation.interfaces == {} then [ 1 ] else [ ]''; 573 - example = [ 1 2 ]; 574 - description = '' 575 - Virtual networks to which the VM is connected. Each 576 - number «N» in this list causes 577 - the VM to have a virtual Ethernet interface attached to a 578 - separate virtual network on which it will be assigned IP 579 - address 580 - `192.168.«N».«M»`, 581 - where «M» is the index of this VM 582 - in the list of VMs. 583 - ''; 584 - }; 628 + virtualisation.vlans = mkOption { 629 + type = types.listOf types.ints.unsigned; 630 + default = if config.virtualisation.interfaces == { } then [ 1 ] else [ ]; 631 + defaultText = lib.literalExpression ''if config.virtualisation.interfaces == {} then [ 1 ] else [ ]''; 632 + example = [ 633 + 1 634 + 2 635 + ]; 636 + description = '' 637 + Virtual networks to which the VM is connected. Each 638 + number «N» in this list causes 639 + the VM to have a virtual Ethernet interface attached to a 640 + separate virtual network on which it will be assigned IP 641 + address 642 + `192.168.«N».«M»`, 643 + where «M» is the index of this VM 644 + in the list of VMs. 645 + ''; 646 + }; 585 647 586 648 virtualisation.interfaces = mkOption { 587 - default = {}; 649 + default = { }; 588 650 example = { 589 651 enp1s0.vlan = 1; 590 652 }; 591 653 description = '' 592 654 Network interfaces to add to the VM. 593 655 ''; 594 - type = with types; attrsOf (submodule { 595 - options = { 596 - vlan = mkOption { 597 - type = types.ints.unsigned; 598 - description = '' 599 - VLAN to which the network interface is connected. 600 - ''; 601 - }; 656 + type = 657 + with types; 658 + attrsOf (submodule { 659 + options = { 660 + vlan = mkOption { 661 + type = types.ints.unsigned; 662 + description = '' 663 + VLAN to which the network interface is connected. 664 + ''; 665 + }; 602 666 603 - assignIP = mkOption { 604 - type = types.bool; 605 - default = false; 606 - description = '' 607 - Automatically assign an IP address to the network interface using the same scheme as 608 - virtualisation.vlans. 609 - ''; 667 + assignIP = mkOption { 668 + type = types.bool; 669 + default = false; 670 + description = '' 671 + Automatically assign an IP address to the network interface using the same scheme as 672 + virtualisation.vlans. 673 + ''; 674 + }; 610 675 }; 611 - }; 612 - }); 676 + }); 613 677 }; 614 678 615 - virtualisation.writableStore = 616 - mkOption { 617 - type = types.bool; 618 - default = cfg.mountHostNixStore; 619 - defaultText = literalExpression "cfg.mountHostNixStore"; 620 - description = '' 621 - If enabled, the Nix store in the VM is made writable by 622 - layering an overlay filesystem on top of the host's Nix 623 - store. 679 + virtualisation.writableStore = mkOption { 680 + type = types.bool; 681 + default = cfg.mountHostNixStore; 682 + defaultText = literalExpression "cfg.mountHostNixStore"; 683 + description = '' 684 + If enabled, the Nix store in the VM is made writable by 685 + layering an overlay filesystem on top of the host's Nix 686 + store. 624 687 625 - By default, this is enabled if you mount a host Nix store. 626 - ''; 627 - }; 688 + By default, this is enabled if you mount a host Nix store. 689 + ''; 690 + }; 628 691 629 - virtualisation.writableStoreUseTmpfs = 630 - mkOption { 631 - type = types.bool; 632 - default = true; 633 - description = '' 634 - Use a tmpfs for the writable store instead of writing to the VM's 635 - own filesystem. 636 - ''; 637 - }; 692 + virtualisation.writableStoreUseTmpfs = mkOption { 693 + type = types.bool; 694 + default = true; 695 + description = '' 696 + Use a tmpfs for the writable store instead of writing to the VM's 697 + own filesystem. 698 + ''; 699 + }; 638 700 639 - networking.primaryIPAddress = 640 - mkOption { 641 - type = types.str; 642 - default = ""; 643 - internal = true; 644 - description = "Primary IP address used in /etc/hosts."; 645 - }; 701 + networking.primaryIPAddress = mkOption { 702 + type = types.str; 703 + default = ""; 704 + internal = true; 705 + description = "Primary IP address used in /etc/hosts."; 706 + }; 646 707 647 - networking.primaryIPv6Address = 648 - mkOption { 649 - type = types.str; 650 - default = ""; 651 - internal = true; 652 - description = "Primary IPv6 address used in /etc/hosts."; 653 - }; 708 + networking.primaryIPv6Address = mkOption { 709 + type = types.str; 710 + default = ""; 711 + internal = true; 712 + description = "Primary IPv6 address used in /etc/hosts."; 713 + }; 654 714 655 715 virtualisation.host.pkgs = mkOption { 656 716 type = options.nixpkgs.pkgs.type; ··· 666 726 }; 667 727 668 728 virtualisation.qemu = { 669 - package = 670 - mkOption { 671 - type = types.package; 672 - default = if hostPkgs.stdenv.hostPlatform.qemuArch == pkgs.stdenv.hostPlatform.qemuArch then hostPkgs.qemu_kvm else hostPkgs.qemu; 673 - defaultText = literalExpression "if hostPkgs.stdenv.hostPlatform.qemuArch == pkgs.stdenv.hostPlatform.qemuArch then config.virtualisation.host.pkgs.qemu_kvm else config.virtualisation.host.pkgs.qemu"; 674 - example = literalExpression "pkgs.qemu_test"; 675 - description = "QEMU package to use."; 676 - }; 729 + package = mkOption { 730 + type = types.package; 731 + default = 732 + if hostPkgs.stdenv.hostPlatform.qemuArch == pkgs.stdenv.hostPlatform.qemuArch then 733 + hostPkgs.qemu_kvm 734 + else 735 + hostPkgs.qemu; 736 + defaultText = literalExpression "if hostPkgs.stdenv.hostPlatform.qemuArch == pkgs.stdenv.hostPlatform.qemuArch then config.virtualisation.host.pkgs.qemu_kvm else config.virtualisation.host.pkgs.qemu"; 737 + example = literalExpression "pkgs.qemu_test"; 738 + description = "QEMU package to use."; 739 + }; 677 740 678 - options = 679 - mkOption { 680 - type = types.listOf types.str; 681 - default = []; 682 - example = [ "-vga std" ]; 683 - description = '' 684 - Options passed to QEMU. 685 - See [QEMU User Documentation](https://www.qemu.org/docs/master/system/qemu-manpage) for a complete list. 686 - ''; 687 - }; 741 + options = mkOption { 742 + type = types.listOf types.str; 743 + default = [ ]; 744 + example = [ "-vga std" ]; 745 + description = '' 746 + Options passed to QEMU. 747 + See [QEMU User Documentation](https://www.qemu.org/docs/master/system/qemu-manpage) for a complete list. 748 + ''; 749 + }; 688 750 689 751 consoles = mkOption { 690 752 type = types.listOf types.str; 691 - default = let 692 - consoles = [ "${qemu-common.qemuSerialDevice},115200n8" "tty0" ]; 693 - in if cfg.graphics then consoles else reverseList consoles; 753 + default = 754 + let 755 + consoles = [ 756 + "${qemu-common.qemuSerialDevice},115200n8" 757 + "tty0" 758 + ]; 759 + in 760 + if cfg.graphics then consoles else reverseList consoles; 694 761 example = [ "console=tty1" ]; 695 762 description = '' 696 763 The output console devices to pass to the kernel command line via the ··· 703 770 ''; 704 771 }; 705 772 706 - networkingOptions = 707 - mkOption { 708 - type = types.listOf types.str; 709 - default = [ ]; 710 - example = [ 711 - "-net nic,netdev=user.0,model=virtio" 712 - "-netdev user,id=user.0,\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}" 713 - ]; 714 - description = '' 715 - Networking-related command-line options that should be passed to qemu. 716 - The default is to use userspace networking (SLiRP). 717 - See the [QEMU Wiki on Networking](https://wiki.qemu.org/Documentation/Networking) for details. 773 + networkingOptions = mkOption { 774 + type = types.listOf types.str; 775 + default = [ ]; 776 + example = [ 777 + "-net nic,netdev=user.0,model=virtio" 778 + "-netdev user,id=user.0,\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}" 779 + ]; 780 + description = '' 781 + Networking-related command-line options that should be passed to qemu. 782 + The default is to use userspace networking (SLiRP). 783 + See the [QEMU Wiki on Networking](https://wiki.qemu.org/Documentation/Networking) for details. 718 784 719 - If you override this option, be advised to keep 720 - `''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}` (as seen in the example) 721 - to keep the default runtime behaviour. 722 - ''; 723 - }; 724 - 725 - drives = 726 - mkOption { 727 - type = types.listOf (types.submodule driveOpts); 728 - description = "Drives passed to qemu."; 729 - }; 730 - 731 - diskInterface = 732 - mkOption { 733 - type = types.enum [ "virtio" "scsi" "ide" ]; 734 - default = "virtio"; 735 - example = "scsi"; 736 - description = "The interface used for the virtual hard disks."; 737 - }; 785 + If you override this option, be advised to keep 786 + `''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}` (as seen in the example) 787 + to keep the default runtime behaviour. 788 + ''; 789 + }; 738 790 739 - guestAgent.enable = 740 - mkOption { 741 - type = types.bool; 742 - default = true; 743 - description = '' 744 - Enable the Qemu guest agent. 745 - ''; 746 - }; 791 + drives = mkOption { 792 + type = types.listOf (types.submodule driveOpts); 793 + description = "Drives passed to qemu."; 794 + }; 747 795 748 - virtioKeyboard = 749 - mkOption { 750 - type = types.bool; 751 - default = true; 752 - description = '' 753 - Enable the virtio-keyboard device. 754 - ''; 755 - }; 756 - }; 796 + diskInterface = mkOption { 797 + type = types.enum [ 798 + "virtio" 799 + "scsi" 800 + "ide" 801 + ]; 802 + default = "virtio"; 803 + example = "scsi"; 804 + description = "The interface used for the virtual hard disks."; 805 + }; 757 806 758 - virtualisation.useNixStoreImage = 759 - mkOption { 807 + guestAgent.enable = mkOption { 760 808 type = types.bool; 761 - default = false; 809 + default = true; 762 810 description = '' 763 - Build and use a disk image for the Nix store, instead of 764 - accessing the host's one through 9p. 765 - 766 - For applications which do a lot of reads from the store, 767 - this can drastically improve performance, but at the cost of 768 - disk space and image build time. 769 - 770 - The Nix store image is built just-in-time right before the VM is 771 - started. Because it does not produce another derivation, the image is 772 - not cached between invocations and never lands in the store or binary 773 - cache. 774 - 775 - If you want a full disk image with a partition table and a root 776 - filesystem instead of only a store image, enable 777 - {option}`virtualisation.useBootLoader` instead. 811 + Enable the Qemu guest agent. 778 812 ''; 779 813 }; 780 814 781 - virtualisation.mountHostNixStore = 782 - mkOption { 815 + virtioKeyboard = mkOption { 783 816 type = types.bool; 784 - default = !cfg.useNixStoreImage && !cfg.useBootLoader; 785 - defaultText = literalExpression "!cfg.useNixStoreImage && !cfg.useBootLoader"; 817 + default = true; 786 818 description = '' 787 - Mount the host Nix store as a 9p mount. 819 + Enable the virtio-keyboard device. 788 820 ''; 789 821 }; 822 + }; 790 823 791 - virtualisation.directBoot = { 792 - enable = 793 - mkOption { 794 - type = types.bool; 795 - default = !cfg.useBootLoader; 796 - defaultText = "!cfg.useBootLoader"; 797 - description = '' 798 - If enabled, the virtual machine will boot directly into the kernel instead of through a bootloader. 799 - Read more about this feature in the [QEMU documentation on Direct Linux Boot](https://qemu-project.gitlab.io/qemu/system/linuxboot.html) 824 + virtualisation.useNixStoreImage = mkOption { 825 + type = types.bool; 826 + default = false; 827 + description = '' 828 + Build and use a disk image for the Nix store, instead of 829 + accessing the host's one through 9p. 800 830 801 - This is enabled by default. 802 - If you want to test netboot, consider disabling this option. 803 - Enable a bootloader with {option}`virtualisation.useBootLoader` if you need. 831 + For applications which do a lot of reads from the store, 832 + this can drastically improve performance, but at the cost of 833 + disk space and image build time. 804 834 805 - Relevant parameters such as those set in `boot.initrd` and `boot.kernelParams` are also passed to QEMU. 806 - Additional parameters can be supplied on invocation through the environment variable `$QEMU_KERNEL_PARAMS`. 807 - They are added to the `-append` option, see [QEMU User Documentation](https://www.qemu.org/docs/master/system/qemu-manpage) for details 808 - For example, to let QEMU use the parent terminal as the serial console, set `QEMU_KERNEL_PARAMS="console=ttyS0"`. 835 + The Nix store image is built just-in-time right before the VM is 836 + started. Because it does not produce another derivation, the image is 837 + not cached between invocations and never lands in the store or binary 838 + cache. 809 839 810 - This will not (re-)boot correctly into a system that has switched to a different configuration on disk. 811 - ''; 812 - }; 813 - initrd = 814 - mkOption { 815 - type = types.str; 816 - default = "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}"; 817 - defaultText = "\${config.system.build.initialRamdisk}/\${config.system.boot.loader.initrdFile}"; 818 - description = '' 819 - In direct boot situations, you may want to influence the initrd to load 820 - to use your own customized payload. 840 + If you want a full disk image with a partition table and a root 841 + filesystem instead of only a store image, enable 842 + {option}`virtualisation.useBootLoader` instead. 843 + ''; 844 + }; 821 845 822 - This is useful if you want to test the netboot image without 823 - testing the firmware or the loading part. 824 - ''; 825 - }; 846 + virtualisation.mountHostNixStore = mkOption { 847 + type = types.bool; 848 + default = !cfg.useNixStoreImage && !cfg.useBootLoader; 849 + defaultText = literalExpression "!cfg.useNixStoreImage && !cfg.useBootLoader"; 850 + description = '' 851 + Mount the host Nix store as a 9p mount. 852 + ''; 826 853 }; 827 854 828 - virtualisation.useBootLoader = 829 - mkOption { 855 + virtualisation.directBoot = { 856 + enable = mkOption { 830 857 type = types.bool; 831 - default = false; 858 + default = !cfg.useBootLoader; 859 + defaultText = "!cfg.useBootLoader"; 832 860 description = '' 833 - Use a boot loader to boot the system. 834 - This allows, among other things, testing the boot loader. 861 + If enabled, the virtual machine will boot directly into the kernel instead of through a bootloader. 862 + Read more about this feature in the [QEMU documentation on Direct Linux Boot](https://qemu-project.gitlab.io/qemu/system/linuxboot.html) 835 863 836 - If disabled, the kernel and initrd are directly booted, 837 - forgoing any bootloader. 864 + This is enabled by default. 865 + If you want to test netboot, consider disabling this option. 866 + Enable a bootloader with {option}`virtualisation.useBootLoader` if you need. 838 867 839 - Check the documentation on {option}`virtualisation.directBoot.enable` for details. 840 - ''; 868 + Relevant parameters such as those set in `boot.initrd` and `boot.kernelParams` are also passed to QEMU. 869 + Additional parameters can be supplied on invocation through the environment variable `$QEMU_KERNEL_PARAMS`. 870 + They are added to the `-append` option, see [QEMU User Documentation](https://www.qemu.org/docs/master/system/qemu-manpage) for details 871 + For example, to let QEMU use the parent terminal as the serial console, set `QEMU_KERNEL_PARAMS="console=ttyS0"`. 872 + 873 + This will not (re-)boot correctly into a system that has switched to a different configuration on disk. 874 + ''; 875 + }; 876 + initrd = mkOption { 877 + type = types.str; 878 + default = "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}"; 879 + defaultText = "\${config.system.build.initialRamdisk}/\${config.system.boot.loader.initrdFile}"; 880 + description = '' 881 + In direct boot situations, you may want to influence the initrd to load 882 + to use your own customized payload. 883 + 884 + This is useful if you want to test the netboot image without 885 + testing the firmware or the loading part. 886 + ''; 841 887 }; 888 + }; 842 889 843 - virtualisation.useEFIBoot = 844 - mkOption { 845 - type = types.bool; 846 - default = false; 847 - description = '' 848 - If enabled, the virtual machine will provide a EFI boot 849 - manager. 850 - useEFIBoot is ignored if useBootLoader == false. 851 - ''; 852 - }; 890 + virtualisation.useBootLoader = mkOption { 891 + type = types.bool; 892 + default = false; 893 + description = '' 894 + Use a boot loader to boot the system. 895 + This allows, among other things, testing the boot loader. 896 + 897 + If disabled, the kernel and initrd are directly booted, 898 + forgoing any bootloader. 899 + 900 + Check the documentation on {option}`virtualisation.directBoot.enable` for details. 901 + ''; 902 + }; 903 + 904 + virtualisation.useEFIBoot = mkOption { 905 + type = types.bool; 906 + default = false; 907 + description = '' 908 + If enabled, the virtual machine will provide a EFI boot 909 + manager. 910 + useEFIBoot is ignored if useBootLoader == false. 911 + ''; 912 + }; 853 913 854 914 virtualisation.efi = { 855 915 OVMF = mkOption { 856 916 type = types.package; 857 - default = (pkgs.OVMF.override { 858 - secureBoot = cfg.useSecureBoot; 859 - }).fd; 860 - defaultText = ''(pkgs.OVMF.override { 861 - secureBoot = cfg.useSecureBoot; 862 - }).fd''; 917 + default = 918 + (pkgs.OVMF.override { 919 + secureBoot = cfg.useSecureBoot; 920 + }).fd; 921 + defaultText = '' 922 + (pkgs.OVMF.override { 923 + secureBoot = cfg.useSecureBoot; 924 + }).fd''; 863 925 description = "OVMF firmware package, defaults to OVMF configured with secure boot if needed."; 864 926 }; 865 927 ··· 868 930 default = cfg.efi.OVMF.firmware; 869 931 defaultText = literalExpression "cfg.efi.OVMF.firmware"; 870 932 description = '' 871 - Firmware binary for EFI implementation, defaults to OVMF. 872 - ''; 933 + Firmware binary for EFI implementation, defaults to OVMF. 934 + ''; 873 935 }; 874 936 875 937 variables = mkOption { ··· 877 939 default = cfg.efi.OVMF.variables; 878 940 defaultText = literalExpression "cfg.efi.OVMF.variables"; 879 941 description = '' 880 - Platform-specific flash binary for EFI variables, implementation-dependent to the EFI firmware. 881 - Defaults to OVMF. 882 - ''; 942 + Platform-specific flash binary for EFI variables, implementation-dependent to the EFI firmware. 943 + Defaults to OVMF. 944 + ''; 883 945 }; 884 946 885 947 keepVariables = mkOption { ··· 897 959 898 960 deviceModel = mkOption { 899 961 type = types.str; 900 - default = ({ 901 - "i686-linux" = "tpm-tis"; 902 - "x86_64-linux" = "tpm-tis"; 903 - "ppc64-linux" = "tpm-spapr"; 904 - "armv7-linux" = "tpm-tis-device"; 905 - "aarch64-linux" = "tpm-tis-device"; 906 - }.${pkgs.stdenv.hostPlatform.system} or (throw "Unsupported system for TPM2 emulation in QEMU")); 962 + default = ( 963 + { 964 + "i686-linux" = "tpm-tis"; 965 + "x86_64-linux" = "tpm-tis"; 966 + "ppc64-linux" = "tpm-spapr"; 967 + "armv7-linux" = "tpm-tis-device"; 968 + "aarch64-linux" = "tpm-tis-device"; 969 + } 970 + .${pkgs.stdenv.hostPlatform.system} or (throw "Unsupported system for TPM2 emulation in QEMU") 971 + ); 907 972 defaultText = '' 908 973 Based on the guest platform Linux system: 909 974 ··· 916 981 }; 917 982 }; 918 983 919 - virtualisation.useDefaultFilesystems = 920 - mkOption { 921 - type = types.bool; 922 - default = true; 923 - description = '' 924 - If enabled, the boot disk of the virtual machine will be 925 - formatted and mounted with the default filesystems for 926 - testing. Swap devices and LUKS will be disabled. 984 + virtualisation.useDefaultFilesystems = mkOption { 985 + type = types.bool; 986 + default = true; 987 + description = '' 988 + If enabled, the boot disk of the virtual machine will be 989 + formatted and mounted with the default filesystems for 990 + testing. Swap devices and LUKS will be disabled. 927 991 928 - If disabled, a root filesystem has to be specified and 929 - formatted (for example in the initial ramdisk). 930 - ''; 931 - }; 992 + If disabled, a root filesystem has to be specified and 993 + formatted (for example in the initial ramdisk). 994 + ''; 995 + }; 932 996 933 - virtualisation.useSecureBoot = 934 - mkOption { 935 - type = types.bool; 936 - default = false; 937 - description = '' 938 - Enable Secure Boot support in the EFI firmware. 939 - ''; 940 - }; 997 + virtualisation.useSecureBoot = mkOption { 998 + type = types.bool; 999 + default = false; 1000 + description = '' 1001 + Enable Secure Boot support in the EFI firmware. 1002 + ''; 1003 + }; 941 1004 942 - virtualisation.bios = 943 - mkOption { 944 - type = types.nullOr types.package; 945 - default = null; 946 - description = '' 947 - An alternate BIOS (such as `qboot`) with which to start the VM. 948 - Should contain a file named `bios.bin`. 949 - If `null`, QEMU's builtin SeaBIOS will be used. 950 - ''; 951 - }; 1005 + virtualisation.bios = mkOption { 1006 + type = types.nullOr types.package; 1007 + default = null; 1008 + description = '' 1009 + An alternate BIOS (such as `qboot`) with which to start the VM. 1010 + Should contain a file named `bios.bin`. 1011 + If `null`, QEMU's builtin SeaBIOS will be used. 1012 + ''; 1013 + }; 952 1014 953 - virtualisation.useHostCerts = 954 - mkOption { 955 - type = types.bool; 956 - default = false; 957 - description = '' 958 - If enabled, when `NIX_SSL_CERT_FILE` is set on the host, 959 - pass the CA certificates from the host to the VM. 960 - ''; 961 - }; 1015 + virtualisation.useHostCerts = mkOption { 1016 + type = types.bool; 1017 + default = false; 1018 + description = '' 1019 + If enabled, when `NIX_SSL_CERT_FILE` is set on the host, 1020 + pass the CA certificates from the host to the VM. 1021 + ''; 1022 + }; 962 1023 963 1024 }; 964 1025 965 1026 config = { 966 1027 967 1028 assertions = 968 - lib.concatLists (lib.flip lib.imap cfg.forwardPorts (i: rule: 969 - [ 970 - { assertion = rule.from == "guest" -> rule.proto == "tcp"; 971 - message = 972 - '' 1029 + lib.concatLists ( 1030 + lib.flip lib.imap cfg.forwardPorts ( 1031 + i: rule: [ 1032 + { 1033 + assertion = rule.from == "guest" -> rule.proto == "tcp"; 1034 + message = '' 973 1035 Invalid virtualisation.forwardPorts.<entry ${toString i}>.proto: 974 1036 Guest forwarding supports only TCP connections. 975 1037 ''; 976 - } 977 - { assertion = rule.from == "guest" -> lib.hasPrefix "10.0.2." rule.guest.address; 978 - message = 979 - '' 1038 + } 1039 + { 1040 + assertion = rule.from == "guest" -> lib.hasPrefix "10.0.2." rule.guest.address; 1041 + message = '' 980 1042 Invalid virtualisation.forwardPorts.<entry ${toString i}>.guest.address: 981 1043 The address must be in the default VLAN (10.0.2.0/24). 982 1044 ''; 983 - } 984 - ])) ++ [ 985 - { assertion = pkgs.stdenv.hostPlatform.is32bit -> cfg.memorySize < 2047; 986 - message = '' 987 - virtualisation.memorySize is above 2047, but qemu is only able to allocate 2047MB RAM on 32bit max. 988 - ''; 989 - } 990 - { assertion = cfg.directBoot.enable || cfg.directBoot.initrd == options.virtualisation.directBoot.initrd.default; 991 - message = 992 - '' 993 - You changed the default of `virtualisation.directBoot.initrd` but you are not 994 - using QEMU direct boot. This initrd will not be used in your current 995 - boot configuration. 1045 + } 1046 + ] 1047 + ) 1048 + ) 1049 + ++ [ 1050 + { 1051 + assertion = pkgs.stdenv.hostPlatform.is32bit -> cfg.memorySize < 2047; 1052 + message = '' 1053 + virtualisation.memorySize is above 2047, but qemu is only able to allocate 2047MB RAM on 32bit max. 1054 + ''; 1055 + } 1056 + { 1057 + assertion = 1058 + cfg.directBoot.enable || cfg.directBoot.initrd == options.virtualisation.directBoot.initrd.default; 1059 + message = '' 1060 + You changed the default of `virtualisation.directBoot.initrd` but you are not 1061 + using QEMU direct boot. This initrd will not be used in your current 1062 + boot configuration. 996 1063 997 - Either do not mutate `virtualisation.directBoot.initrd` or enable direct boot. 1064 + Either do not mutate `virtualisation.directBoot.initrd` or enable direct boot. 998 1065 999 - If you have a more advanced usecase, please open an issue or a pull request. 1000 - ''; 1001 - } 1002 - ]; 1066 + If you have a more advanced usecase, please open an issue or a pull request. 1067 + ''; 1068 + } 1069 + ]; 1003 1070 1004 - warnings = 1005 - optional (cfg.directBoot.enable && cfg.useBootLoader) 1006 - '' 1007 - You enabled direct boot and a bootloader, QEMU will not boot your bootloader, rendering 1008 - `useBootLoader` useless. You might want to disable one of those options. 1009 - ''; 1071 + warnings = optional (cfg.directBoot.enable && cfg.useBootLoader) '' 1072 + You enabled direct boot and a bootloader, QEMU will not boot your bootloader, rendering 1073 + `useBootLoader` useless. You might want to disable one of those options. 1074 + ''; 1010 1075 1011 1076 # In UEFI boot, we use a EFI-only partition table layout, thus GRUB will fail when trying to install 1012 1077 # legacy and UEFI. In order to avoid this, we have to put "nodev" to force UEFI-only installs. ··· 1024 1089 # allow `system.build.toplevel' to be included. (If we had a direct 1025 1090 # reference to ${regInfo} here, then we would get a cyclic 1026 1091 # dependency.) 1027 - boot.postBootCommands = lib.mkIf config.nix.enable 1028 - '' 1029 - if [[ "$(cat /proc/cmdline)" =~ regInfo=([^ ]*) ]]; then 1030 - ${config.nix.package.out}/bin/nix-store --load-db < ''${BASH_REMATCH[1]} 1031 - fi 1032 - ''; 1092 + boot.postBootCommands = lib.mkIf config.nix.enable '' 1093 + if [[ "$(cat /proc/cmdline)" =~ regInfo=([^ ]*) ]]; then 1094 + ${config.nix.package.out}/bin/nix-store --load-db < ''${BASH_REMATCH[1]} 1095 + fi 1096 + ''; 1033 1097 1034 1098 boot.initrd.availableKernelModules = 1035 1099 optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx" ··· 1066 1130 1067 1131 virtualisation.qemu.networkingOptions = 1068 1132 let 1069 - forwardingOptions = flip concatMapStrings cfg.forwardPorts 1070 - ({ proto, from, host, guest }: 1071 - if from == "host" 1072 - then "hostfwd=${proto}:${host.address}:${toString host.port}-" + 1073 - "${guest.address}:${toString guest.port}," 1074 - else "'guestfwd=${proto}:${guest.address}:${toString guest.port}-" + 1075 - "cmd:${pkgs.netcat}/bin/nc ${host.address} ${toString host.port}'," 1076 - ); 1133 + forwardingOptions = flip concatMapStrings cfg.forwardPorts ( 1134 + { 1135 + proto, 1136 + from, 1137 + host, 1138 + guest, 1139 + }: 1140 + if from == "host" then 1141 + "hostfwd=${proto}:${host.address}:${toString host.port}-" 1142 + + "${guest.address}:${toString guest.port}," 1143 + else 1144 + "'guestfwd=${proto}:${guest.address}:${toString guest.port}-" 1145 + + "cmd:${pkgs.netcat}/bin/nc ${host.address} ${toString host.port}'," 1146 + ); 1077 1147 restrictNetworkOption = lib.optionalString cfg.restrictNetwork "restrict=on,"; 1078 1148 in 1079 1149 [ ··· 1086 1156 "-device virtio-keyboard" 1087 1157 ]) 1088 1158 (mkIf pkgs.stdenv.hostPlatform.isx86 [ 1089 - "-usb" "-device usb-tablet,bus=usb-bus.0" 1159 + "-usb" 1160 + "-device usb-tablet,bus=usb-bus.0" 1090 1161 ]) 1091 1162 (mkIf pkgs.stdenv.hostPlatform.isAarch [ 1092 - "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet" 1163 + "-device virtio-gpu-pci" 1164 + "-device usb-ehci,id=usb0" 1165 + "-device usb-kbd" 1166 + "-device usb-tablet" 1093 1167 ]) 1094 - (let 1095 - alphaNumericChars = lowerChars ++ upperChars ++ (map toString (range 0 9)); 1096 - # Replace all non-alphanumeric characters with underscores 1097 - sanitizeShellIdent = s: concatMapStrings (c: if builtins.elem c alphaNumericChars then c else "_") (stringToCharacters s); 1098 - in mkIf cfg.directBoot.enable [ 1099 - "-kernel \${NIXPKGS_QEMU_KERNEL_${sanitizeShellIdent config.system.name}:-${config.system.build.toplevel}/kernel}" 1100 - "-initrd ${cfg.directBoot.initrd}" 1101 - ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"'' 1102 - ]) 1168 + ( 1169 + let 1170 + alphaNumericChars = lowerChars ++ upperChars ++ (map toString (range 0 9)); 1171 + # Replace all non-alphanumeric characters with underscores 1172 + sanitizeShellIdent = 1173 + s: 1174 + concatMapStrings (c: if builtins.elem c alphaNumericChars then c else "_") (stringToCharacters s); 1175 + in 1176 + mkIf cfg.directBoot.enable [ 1177 + "-kernel \${NIXPKGS_QEMU_KERNEL_${sanitizeShellIdent config.system.name}:-${config.system.build.toplevel}/kernel}" 1178 + "-initrd ${cfg.directBoot.initrd}" 1179 + ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"'' 1180 + ] 1181 + ) 1103 1182 (mkIf cfg.useEFIBoot [ 1104 1183 "-drive if=pflash,format=raw,unit=0,readonly=on,file=${cfg.efi.firmware}" 1105 1184 "-drive if=pflash,format=raw,unit=1,readonly=off,file=$NIX_EFI_VARS" ··· 1116 1195 "-device ${cfg.tpm.deviceModel},tpmdev=tpm_dev_0" 1117 1196 ]) 1118 1197 (mkIf (pkgs.stdenv.hostPlatform.isx86 && cfg.efi.OVMF.systemManagementModeRequired) [ 1119 - "-machine" "q35,smm=on" 1120 - "-global" "driver=cfi.pflash01,property=secure,value=on" 1198 + "-machine" 1199 + "q35,smm=on" 1200 + "-global" 1201 + "driver=cfi.pflash01,property=secure,value=on" 1121 1202 ]) 1122 1203 ]; 1123 1204 1124 1205 virtualisation.qemu.drives = mkMerge [ 1125 - (mkIf (cfg.diskImage != null) [{ 1126 - name = "root"; 1127 - file = ''"$NIX_DISK_IMAGE"''; 1128 - driveExtraOpts.cache = "writeback"; 1129 - driveExtraOpts.werror = "report"; 1130 - deviceExtraOpts.bootindex = "1"; 1131 - deviceExtraOpts.serial = rootDriveSerialAttr; 1132 - }]) 1133 - (mkIf cfg.useNixStoreImage [{ 1134 - name = "nix-store"; 1135 - file = ''"$TMPDIR"/store.img''; 1136 - deviceExtraOpts.bootindex = "2"; 1137 - driveExtraOpts.format = "raw"; 1138 - }]) 1206 + (mkIf (cfg.diskImage != null) [ 1207 + { 1208 + name = "root"; 1209 + file = ''"$NIX_DISK_IMAGE"''; 1210 + driveExtraOpts.cache = "writeback"; 1211 + driveExtraOpts.werror = "report"; 1212 + deviceExtraOpts.bootindex = "1"; 1213 + deviceExtraOpts.serial = rootDriveSerialAttr; 1214 + } 1215 + ]) 1216 + (mkIf cfg.useNixStoreImage [ 1217 + { 1218 + name = "nix-store"; 1219 + file = ''"$TMPDIR"/store.img''; 1220 + deviceExtraOpts.bootindex = "2"; 1221 + driveExtraOpts.format = "raw"; 1222 + } 1223 + ]) 1139 1224 (imap0 (idx: _: { 1140 1225 file = "$(pwd)/empty${toString idx}.qcow2"; 1141 1226 driveExtraOpts.werror = "report"; ··· 1149 1234 # override by setting `virtualisation.fileSystems = lib.mkForce { };`. 1150 1235 fileSystems = lib.mkIf (cfg.fileSystems != { }) (mkVMOverride cfg.fileSystems); 1151 1236 1152 - virtualisation.fileSystems = let 1153 - mkSharedDir = tag: share: 1154 - { 1237 + virtualisation.diskSizeAutoSupported = false; 1238 + 1239 + virtualisation.fileSystems = 1240 + let 1241 + mkSharedDir = tag: share: { 1155 1242 name = share.target; 1156 1243 value.device = tag; 1157 1244 value.fsType = "9p"; 1158 1245 value.neededForBoot = true; 1159 - value.options = 1160 - [ "trans=virtio" "version=9p2000.L" "msize=${toString cfg.msize}" ] 1161 - ++ lib.optional (tag == "nix-store") "cache=loose"; 1246 + value.options = [ 1247 + "trans=virtio" 1248 + "version=9p2000.L" 1249 + "msize=${toString cfg.msize}" 1250 + ] ++ lib.optional (tag == "nix-store") "cache=loose"; 1162 1251 }; 1163 - in lib.mkMerge [ 1164 - (lib.mapAttrs' mkSharedDir cfg.sharedDirectories) 1165 - { 1166 - "/" = lib.mkIf cfg.useDefaultFilesystems (if cfg.diskImage == null then { 1167 - device = "tmpfs"; 1168 - fsType = "tmpfs"; 1169 - } else { 1170 - device = cfg.rootDevice; 1171 - fsType = "ext4"; 1172 - }); 1173 - "/tmp" = lib.mkIf config.boot.tmp.useTmpfs { 1174 - device = "tmpfs"; 1175 - fsType = "tmpfs"; 1176 - neededForBoot = true; 1177 - # Sync with systemd's tmp.mount; 1178 - options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmp.tmpfsSize}" ]; 1179 - }; 1180 - "/nix/store" = lib.mkIf (cfg.useNixStoreImage || cfg.mountHostNixStore) (if cfg.writableStore then { 1181 - overlay = { 1182 - lowerdir = [ "/nix/.ro-store" ]; 1183 - upperdir = "/nix/.rw-store/upper"; 1184 - workdir = "/nix/.rw-store/work"; 1252 + in 1253 + lib.mkMerge [ 1254 + (lib.mapAttrs' mkSharedDir cfg.sharedDirectories) 1255 + { 1256 + "/" = lib.mkIf cfg.useDefaultFilesystems ( 1257 + if cfg.diskImage == null then 1258 + { 1259 + device = "tmpfs"; 1260 + fsType = "tmpfs"; 1261 + } 1262 + else 1263 + { 1264 + device = cfg.rootDevice; 1265 + fsType = "ext4"; 1266 + } 1267 + ); 1268 + "/tmp" = lib.mkIf config.boot.tmp.useTmpfs { 1269 + device = "tmpfs"; 1270 + fsType = "tmpfs"; 1271 + neededForBoot = true; 1272 + # Sync with systemd's tmp.mount; 1273 + options = [ 1274 + "mode=1777" 1275 + "strictatime" 1276 + "nosuid" 1277 + "nodev" 1278 + "size=${toString config.boot.tmp.tmpfsSize}" 1279 + ]; 1280 + }; 1281 + "/nix/store" = lib.mkIf (cfg.useNixStoreImage || cfg.mountHostNixStore) ( 1282 + if cfg.writableStore then 1283 + { 1284 + overlay = { 1285 + lowerdir = [ "/nix/.ro-store" ]; 1286 + upperdir = "/nix/.rw-store/upper"; 1287 + workdir = "/nix/.rw-store/work"; 1288 + }; 1289 + } 1290 + else 1291 + { 1292 + device = "/nix/.ro-store"; 1293 + options = [ "bind" ]; 1294 + } 1295 + ); 1296 + "/nix/.ro-store" = lib.mkIf cfg.useNixStoreImage { 1297 + device = "/dev/disk/by-label/${nixStoreFilesystemLabel}"; 1298 + fsType = "erofs"; 1299 + neededForBoot = true; 1300 + options = [ "ro" ]; 1301 + }; 1302 + "/nix/.rw-store" = lib.mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs) { 1303 + fsType = "tmpfs"; 1304 + options = [ "mode=0755" ]; 1305 + neededForBoot = true; 1185 1306 }; 1186 - } else { 1187 - device = "/nix/.ro-store"; 1188 - options = [ "bind" ]; 1189 - }); 1190 - "/nix/.ro-store" = lib.mkIf cfg.useNixStoreImage { 1191 - device = "/dev/disk/by-label/${nixStoreFilesystemLabel}"; 1192 - fsType = "erofs"; 1193 - neededForBoot = true; 1194 - options = [ "ro" ]; 1195 - }; 1196 - "/nix/.rw-store" = lib.mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs) { 1197 - fsType = "tmpfs"; 1198 - options = [ "mode=0755" ]; 1199 - neededForBoot = true; 1200 - }; 1201 - "${config.boot.loader.efi.efiSysMountPoint}" = lib.mkIf (cfg.useBootLoader && cfg.bootPartition != null) { 1202 - device = cfg.bootPartition; 1203 - fsType = "vfat"; 1204 - }; 1205 - } 1206 - ]; 1307 + "${config.boot.loader.efi.efiSysMountPoint}" = 1308 + lib.mkIf (cfg.useBootLoader && cfg.bootPartition != null) 1309 + { 1310 + device = cfg.bootPartition; 1311 + fsType = "vfat"; 1312 + }; 1313 + } 1314 + ]; 1207 1315 1208 1316 swapDevices = (if cfg.useDefaultFilesystems then mkVMOverride else mkDefault) [ ]; 1209 - boot.initrd.luks.devices = (if cfg.useDefaultFilesystems then mkVMOverride else mkDefault) {}; 1317 + boot.initrd.luks.devices = (if cfg.useDefaultFilesystems then mkVMOverride else mkDefault) { }; 1210 1318 1211 1319 # Don't run ntpd in the guest. It should get the correct time from KVM. 1212 1320 services.timesyncd.enable = false; 1213 1321 1214 1322 services.qemuGuest.enable = cfg.qemu.guestAgent.enable; 1215 1323 1216 - system.build.vm = hostPkgs.runCommand "nixos-vm" { 1217 - preferLocalBuild = true; 1218 - meta.mainProgram = "run-${config.system.name}-vm"; 1219 - } 1220 - '' 1221 - mkdir -p $out/bin 1222 - ln -s ${config.system.build.toplevel} $out/system 1223 - ln -s ${hostPkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${config.system.name}-vm 1224 - ''; 1324 + system.build.vm = 1325 + hostPkgs.runCommand "nixos-vm" 1326 + { 1327 + preferLocalBuild = true; 1328 + meta.mainProgram = "run-${config.system.name}-vm"; 1329 + } 1330 + '' 1331 + mkdir -p $out/bin 1332 + ln -s ${config.system.build.toplevel} $out/system 1333 + ln -s ${hostPkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${config.system.name}-vm 1334 + ''; 1225 1335 1226 1336 # When building a regular system configuration, override whatever 1227 1337 # video driver the host uses. 1228 1338 services.xserver.videoDrivers = mkVMOverride [ "modesetting" ]; 1229 1339 services.xserver.defaultDepth = mkVMOverride 0; 1230 1340 services.xserver.resolutions = mkVMOverride [ cfg.resolution ]; 1231 - services.xserver.monitorSection = 1232 - '' 1233 - # Set a higher refresh rate so that resolutions > 800x600 work. 1234 - HorizSync 30-140 1235 - VertRefresh 50-160 1236 - ''; 1341 + services.xserver.monitorSection = '' 1342 + # Set a higher refresh rate so that resolutions > 800x600 work. 1343 + HorizSync 30-140 1344 + VertRefresh 50-160 1345 + ''; 1237 1346 1238 1347 # Wireless won't work in the VM. 1239 1348 networking.wireless.enable = mkVMOverride false; ··· 1244 1353 1245 1354 networking.usePredictableInterfaceNames = false; 1246 1355 1247 - system.requiredKernelConfig = with config.lib.kernelConfig; 1248 - [ (isEnabled "VIRTIO_BLK") 1356 + system.requiredKernelConfig = 1357 + with config.lib.kernelConfig; 1358 + [ 1359 + (isEnabled "VIRTIO_BLK") 1249 1360 (isEnabled "VIRTIO_PCI") 1250 1361 (isEnabled "VIRTIO_NET") 1251 1362 (isEnabled "EXT4_FS") ··· 1257 1368 (isYes "NET_CORE") 1258 1369 (isYes "INET") 1259 1370 (isYes "NETWORK_FILESYSTEMS") 1260 - ] ++ optionals (!cfg.graphics) [ 1371 + ] 1372 + ++ optionals (!cfg.graphics) [ 1261 1373 (isYes "SERIAL_8250_CONSOLE") 1262 1374 (isYes "SERIAL_8250") 1263 - ] ++ optionals (cfg.writableStore) [ 1375 + ] 1376 + ++ optionals (cfg.writableStore) [ 1264 1377 (isEnabled "OVERLAY_FS") 1265 1378 ]; 1266 1379
+135 -90
nixos/modules/virtualisation/virtualbox-image.nix
··· 1 - { config, lib, pkgs, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + ... 6 + }: 2 7 3 8 with lib; 4 9 5 10 let 6 11 7 12 cfg = config.virtualbox; 13 + virtualisationOptions = import ./virtualisation-options.nix; 8 14 9 - in { 15 + in 16 + { 17 + imports = [ 18 + virtualisationOptions.diskSize 19 + (lib.mkRenamedOptionModuleWith { 20 + sinceRelease = 2411; 21 + from = [ 22 + "virtualisation" 23 + "virtualbox" 24 + "baseImageSize" 25 + ]; 26 + to = [ 27 + "virtualisation" 28 + "diskSize" 29 + ]; 30 + }) 31 + ]; 10 32 11 33 options = { 12 34 virtualbox = { 13 - baseImageSize = mkOption { 14 - type = with types; either (enum [ "auto" ]) int; 15 - default = "auto"; 16 - example = 50 * 1024; 17 - description = '' 18 - The size of the VirtualBox base image in MiB. 19 - ''; 20 - }; 21 35 baseImageFreeSpace = mkOption { 22 36 type = with types; int; 23 37 default = 30 * 1024; ··· 54 68 ''; 55 69 }; 56 70 params = mkOption { 57 - type = with types; attrsOf (oneOf [ str int bool (listOf str) ]); 71 + type = 72 + with types; 73 + attrsOf (oneOf [ 74 + str 75 + int 76 + bool 77 + (listOf str) 78 + ]); 58 79 example = { 59 80 audio = "alsa"; 60 81 rtcuseutc = "on"; ··· 67 88 ''; 68 89 }; 69 90 exportParams = mkOption { 70 - type = with types; listOf (oneOf [ str int bool (listOf str) ]); 91 + type = 92 + with types; 93 + listOf (oneOf [ 94 + str 95 + int 96 + bool 97 + (listOf str) 98 + ]); 71 99 example = [ 72 - "--vsys" "0" "--vendor" "ACME Inc." 100 + "--vsys" 101 + "0" 102 + "--vendor" 103 + "ACME Inc." 73 104 ]; 74 - default = []; 105 + default = [ ]; 75 106 description = '' 76 107 Parameters passed to the Virtualbox export command. 77 108 ··· 89 120 mountPoint = "/home/demo/storage"; 90 121 size = 100 * 1024; 91 122 }; 92 - type = types.nullOr (types.submodule { 93 - options = { 94 - size = mkOption { 95 - type = types.int; 96 - description = "Size in MiB"; 97 - }; 98 - label = mkOption { 99 - type = types.str; 100 - default = "vm-extra-storage"; 101 - description = "Label for the disk partition"; 102 - }; 103 - mountPoint = mkOption { 104 - type = types.str; 105 - description = "Path where to mount this disk."; 123 + type = types.nullOr ( 124 + types.submodule { 125 + options = { 126 + size = mkOption { 127 + type = types.int; 128 + description = "Size in MiB"; 129 + }; 130 + label = mkOption { 131 + type = types.str; 132 + default = "vm-extra-storage"; 133 + description = "Label for the disk partition"; 134 + }; 135 + mountPoint = mkOption { 136 + type = types.str; 137 + description = "Path where to mount this disk."; 138 + }; 106 139 }; 107 - }; 108 - }); 140 + } 141 + ); 109 142 }; 110 143 postExportCommands = mkOption { 111 144 type = types.lines; ··· 125 158 ''; 126 159 }; 127 160 storageController = mkOption { 128 - type = with types; attrsOf (oneOf [ str int bool (listOf str) ]); 161 + type = 162 + with types; 163 + attrsOf (oneOf [ 164 + str 165 + int 166 + bool 167 + (listOf str) 168 + ]); 129 169 example = { 130 170 name = "SCSI"; 131 171 add = "scsi"; ··· 152 192 153 193 config = { 154 194 195 + virtualisation.diskSize = lib.mkDefault (50 * 1024); 196 + 155 197 virtualbox.params = mkMerge [ 156 198 (mapAttrs (name: mkDefault) { 157 199 acpi = "on"; ··· 175 217 176 218 inherit pkgs lib config; 177 219 partitionTableType = "legacy"; 178 - diskSize = cfg.baseImageSize; 220 + inherit (config.virtualisation) diskSize; 179 221 additionalSpace = "${toString cfg.baseImageFreeSpace}M"; 180 222 181 - postVM = 182 - '' 183 - export HOME=$PWD 184 - export PATH=${pkgs.virtualbox}/bin:$PATH 223 + postVM = '' 224 + export HOME=$PWD 225 + export PATH=${pkgs.virtualbox}/bin:$PATH 185 226 186 - echo "converting image to VirtualBox format..." 187 - VBoxManage convertfromraw $diskImage disk.vdi 227 + echo "converting image to VirtualBox format..." 228 + VBoxManage convertfromraw $diskImage disk.vdi 188 229 189 - ${optionalString (cfg.extraDisk != null) '' 190 - echo "creating extra disk: data-disk.raw" 191 - dataDiskImage=data-disk.raw 192 - truncate -s ${toString cfg.extraDisk.size}M $dataDiskImage 230 + ${optionalString (cfg.extraDisk != null) '' 231 + echo "creating extra disk: data-disk.raw" 232 + dataDiskImage=data-disk.raw 233 + truncate -s ${toString cfg.extraDisk.size}M $dataDiskImage 193 234 194 - parted --script $dataDiskImage -- \ 195 - mklabel msdos \ 196 - mkpart primary ext4 1MiB -1 197 - eval $(partx $dataDiskImage -o START,SECTORS --nr 1 --pairs) 198 - mkfs.ext4 -F -L ${cfg.extraDisk.label} $dataDiskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K 199 - echo "creating extra disk: data-disk.vdi" 200 - VBoxManage convertfromraw $dataDiskImage data-disk.vdi 201 - ''} 235 + parted --script $dataDiskImage -- \ 236 + mklabel msdos \ 237 + mkpart primary ext4 1MiB -1 238 + eval $(partx $dataDiskImage -o START,SECTORS --nr 1 --pairs) 239 + mkfs.ext4 -F -L ${cfg.extraDisk.label} $dataDiskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K 240 + echo "creating extra disk: data-disk.vdi" 241 + VBoxManage convertfromraw $dataDiskImage data-disk.vdi 242 + ''} 202 243 203 - echo "creating VirtualBox VM..." 204 - vmName="${cfg.vmName}"; 205 - VBoxManage createvm --name "$vmName" --register \ 206 - --ostype ${if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "Linux26_64" else "Linux26"} 207 - VBoxManage modifyvm "$vmName" \ 208 - --memory ${toString cfg.memorySize} \ 209 - ${lib.cli.toGNUCommandLineShell { } cfg.params} 210 - VBoxManage storagectl "$vmName" ${lib.cli.toGNUCommandLineShell { } cfg.storageController} 211 - VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 0 --device 0 --type hdd \ 212 - --medium disk.vdi 213 - ${optionalString (cfg.extraDisk != null) '' 214 - VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 1 --device 0 --type hdd \ 215 - --medium data-disk.vdi 216 - ''} 244 + echo "creating VirtualBox VM..." 245 + vmName="${cfg.vmName}"; 246 + VBoxManage createvm --name "$vmName" --register \ 247 + --ostype ${if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "Linux26_64" else "Linux26"} 248 + VBoxManage modifyvm "$vmName" \ 249 + --memory ${toString cfg.memorySize} \ 250 + ${lib.cli.toGNUCommandLineShell { } cfg.params} 251 + VBoxManage storagectl "$vmName" ${lib.cli.toGNUCommandLineShell { } cfg.storageController} 252 + VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 0 --device 0 --type hdd \ 253 + --medium disk.vdi 254 + ${optionalString (cfg.extraDisk != null) '' 255 + VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 1 --device 0 --type hdd \ 256 + --medium data-disk.vdi 257 + ''} 217 258 218 - echo "exporting VirtualBox VM..." 219 - mkdir -p $out 220 - fn="$out/${cfg.vmFileName}" 221 - VBoxManage export "$vmName" --output "$fn" --options manifest ${escapeShellArgs cfg.exportParams} 222 - ${cfg.postExportCommands} 259 + echo "exporting VirtualBox VM..." 260 + mkdir -p $out 261 + fn="$out/${cfg.vmFileName}" 262 + VBoxManage export "$vmName" --output "$fn" --options manifest ${escapeShellArgs cfg.exportParams} 263 + ${cfg.postExportCommands} 223 264 224 - rm -v $diskImage 265 + rm -v $diskImage 225 266 226 - mkdir -p $out/nix-support 227 - echo "file ova $fn" >> $out/nix-support/hydra-build-products 228 - ''; 267 + mkdir -p $out/nix-support 268 + echo "file ova $fn" >> $out/nix-support/hydra-build-products 269 + ''; 229 270 }; 230 271 231 - fileSystems = { 232 - "/" = { 233 - device = "/dev/disk/by-label/nixos"; 234 - autoResize = true; 235 - fsType = "ext4"; 236 - }; 237 - } // (lib.optionalAttrs (cfg.extraDisk != null) { 238 - ${cfg.extraDisk.mountPoint} = { 239 - device = "/dev/disk/by-label/" + cfg.extraDisk.label; 240 - autoResize = true; 241 - fsType = "ext4"; 242 - }; 243 - }); 272 + fileSystems = 273 + { 274 + "/" = { 275 + device = "/dev/disk/by-label/nixos"; 276 + autoResize = true; 277 + fsType = "ext4"; 278 + }; 279 + } 280 + // (lib.optionalAttrs (cfg.extraDisk != null) { 281 + ${cfg.extraDisk.mountPoint} = { 282 + device = "/dev/disk/by-label/" + cfg.extraDisk.label; 283 + autoResize = true; 284 + fsType = "ext4"; 285 + }; 286 + }); 244 287 245 288 boot.growPartition = true; 246 289 boot.loader.grub.device = "/dev/sda"; 247 290 248 - swapDevices = [{ 249 - device = "/var/swap"; 250 - size = 2048; 251 - }]; 291 + swapDevices = [ 292 + { 293 + device = "/var/swap"; 294 + size = 2048; 295 + } 296 + ]; 252 297 253 298 virtualisation.virtualbox.guest.enable = true; 254 299
+60
nixos/modules/virtualisation/virtualisation-options.nix
··· 1 + # This modules declares shared options for virtual machines, 2 + # containers and anything else in `virtualisation`. 3 + # 4 + # This is useful to declare e.g. defaults for 5 + # `virtualisation.diskSize` once, while building multiple 6 + # different image formats of a NixOS configuration. 7 + # 8 + # Additional options can be migrated over time from 9 + # `modules/virtualisation/qemu-vm.nix` and others. 10 + # Please keep defaults and descriptions here generic 11 + # and independent of i.e. hypervisor-specific notes 12 + # and defaults where. 13 + # Those can be added in the consuming modules where needed. 14 + # needed. 15 + let 16 + _file = ./virtualisation-options.nix; 17 + key = _file; 18 + in 19 + { 20 + diskSize = 21 + { lib, config, ... }: 22 + let 23 + t = lib.types; 24 + in 25 + { 26 + inherit _file key; 27 + 28 + options = { 29 + virtualisation.diskSizeAutoSupported = lib.mkOption { 30 + type = t.bool; 31 + default = true; 32 + description = '' 33 + Whether the current image builder or vm runner supports `virtualisation.diskSize = "auto".` 34 + ''; 35 + internal = true; 36 + }; 37 + 38 + virtualisation.diskSize = lib.mkOption { 39 + type = t.either (t.enum [ "auto" ]) t.ints.positive; 40 + default = "auto"; 41 + description = '' 42 + The disk size in megabytes of the virtual machine. 43 + ''; 44 + }; 45 + }; 46 + 47 + config = 48 + let 49 + inherit (config.virtualisation) diskSize diskSizeAutoSupported; 50 + in 51 + { 52 + assertions = [ 53 + { 54 + assertion = diskSize != "auto" || diskSizeAutoSupported; 55 + message = "Setting virtualisation.diskSize to `auto` is not supported by the current image build or vm runner; use an explicit size."; 56 + } 57 + ]; 58 + }; 59 + }; 60 + }
+1 -1
nixos/release.nix
··· 312 312 [ configuration 313 313 versionModule 314 314 ./maintainers/scripts/ec2/amazon-image.nix 315 - ({ ... }: { amazonImage.sizeMB = "auto"; }) 315 + ({ ... }: { amazonImage.virtualisation.diskSize = "auto"; }) 316 316 ]; 317 317 }).config.system.build.amazonImage) 318 318
+4 -1
nixos/tests/matrix/appservice-irc.nix
··· 84 84 aliasTemplate = "#irc_$CHANNEL"; 85 85 }; 86 86 }; 87 - mediaProxy.publicUrl = "http://localhost:11111/media"; 87 + mediaProxy = { 88 + publicUrl = "http://localhost:11111/media"; 89 + ttl = 0; 90 + }; 88 91 }; 89 92 }; 90 93 };
+2 -2
pkgs/applications/audio/praat/default.nix
··· 11 11 12 12 stdenv.mkDerivation (finalAttrs: { 13 13 pname = "praat"; 14 - version = "6.4.14"; 14 + version = "6.4.19"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "praat"; 18 18 repo = "praat"; 19 19 rev = "v${finalAttrs.version}"; 20 - hash = "sha256-AY/OSoCWlWSjtLcve16nL72HidPlJqJgAOvUubMqvj0="; 20 + hash = "sha256-dK1rCfyTIASMGWEWQomdbazpI6faBvlrRpyGDuSoW5g="; 21 21 }; 22 22 23 23 nativeBuildInputs = [
+2 -2
pkgs/applications/audio/roomeqwizard/default.nix
··· 14 14 15 15 stdenv.mkDerivation rec { 16 16 pname = "roomeqwizard"; 17 - version = "5.31.2"; 17 + version = "5.31.3"; 18 18 19 19 src = fetchurl { 20 20 url = "https://www.roomeqwizard.com/installers/REW_linux_no_jre_${lib.replaceStrings [ "." ] [ "_" ] version}.sh"; 21 - sha256 = "sha256-B4qP+qNNPMB/EkW/C2kfcx+h9YH8Md1lM9yUh5YT13s="; 21 + sha256 = "sha256-qaGkKVoiBJ2UWVKAMqbuqNFi6FGcblMxAbYwhf/71CY="; 22 22 }; 23 23 24 24 dontUnpack = true;
+2 -2
pkgs/applications/audio/seq66/default.nix
··· 4 4 5 5 stdenv.mkDerivation rec { 6 6 pname = "seq66"; 7 - version = "0.99.13"; 7 + version = "0.99.14"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = "ahlstromcj"; 11 11 repo = "seq66"; 12 12 rev = version; 13 - hash = "sha256-hR8kEt3tKnH96JmmkMuY0WWxxp9YTcSvsJvICKNjvyQ="; 13 + hash = "sha256-0xexKu8qQd0HzEHYKMomeoBE1s/tC5T1jzUl+AkhTqY="; 14 14 }; 15 15 16 16 nativeBuildInputs = [ autoreconfHook pkg-config qttools which wrapQtAppsHook ];
+2 -2
pkgs/applications/blockchains/haven-cli/default.nix
··· 9 9 10 10 stdenv.mkDerivation rec { 11 11 pname = "haven-cli"; 12 - version = "4.0.2"; 12 + version = "4.1.0"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "haven-protocol-org"; 16 16 repo = "haven-main"; 17 17 rev = "v${version}"; 18 - hash = "sha256-XjRxpUW7NC12T5G7fol4avWLJDOOawxJbAHOp5eZ0Fk="; 18 + hash = "sha256-UPDhvARXatqvxwsuSfxdasVcLbjkXOpK8yY7GoEPxxw="; 19 19 fetchSubmodules = true; 20 20 }; 21 21
+11 -13
pkgs/applications/editors/lapce/Cargo.lock
··· 1684 1684 [[package]] 1685 1685 name = "floem" 1686 1686 version = "0.1.1" 1687 - source = "git+https://github.com/lapce/floem?rev=54f0d1bcf0e1a91d82492ee7300a526adb60eb5c#54f0d1bcf0e1a91d82492ee7300a526adb60eb5c" 1687 + source = "git+https://github.com/lapce/floem?rev=157631a49d6ba13a3467dcb994eb46a98c52eb76#157631a49d6ba13a3467dcb994eb46a98c52eb76" 1688 1688 dependencies = [ 1689 1689 "bitflags 2.6.0", 1690 1690 "copypasta", ··· 1702 1702 "image", 1703 1703 "indexmap", 1704 1704 "lapce-xi-rope", 1705 - "once_cell", 1706 1705 "parking_lot", 1707 1706 "peniko", 1708 1707 "raw-window-handle 0.6.0", ··· 1722 1721 [[package]] 1723 1722 name = "floem-editor-core" 1724 1723 version = "0.1.1" 1725 - source = "git+https://github.com/lapce/floem?rev=54f0d1bcf0e1a91d82492ee7300a526adb60eb5c#54f0d1bcf0e1a91d82492ee7300a526adb60eb5c" 1724 + source = "git+https://github.com/lapce/floem?rev=157631a49d6ba13a3467dcb994eb46a98c52eb76#157631a49d6ba13a3467dcb994eb46a98c52eb76" 1726 1725 dependencies = [ 1727 1726 "bitflags 2.6.0", 1728 1727 "itertools 0.12.1", 1729 1728 "lapce-xi-rope", 1730 1729 "memchr", 1731 - "once_cell", 1732 1730 "serde", 1733 1731 "strum", 1734 1732 "strum_macros", ··· 1800 1798 [[package]] 1801 1799 name = "floem_reactive" 1802 1800 version = "0.1.1" 1803 - source = "git+https://github.com/lapce/floem?rev=54f0d1bcf0e1a91d82492ee7300a526adb60eb5c#54f0d1bcf0e1a91d82492ee7300a526adb60eb5c" 1801 + source = "git+https://github.com/lapce/floem?rev=157631a49d6ba13a3467dcb994eb46a98c52eb76#157631a49d6ba13a3467dcb994eb46a98c52eb76" 1804 1802 dependencies = [ 1805 1803 "smallvec", 1806 1804 ] ··· 1808 1806 [[package]] 1809 1807 name = "floem_renderer" 1810 1808 version = "0.1.1" 1811 - source = "git+https://github.com/lapce/floem?rev=54f0d1bcf0e1a91d82492ee7300a526adb60eb5c#54f0d1bcf0e1a91d82492ee7300a526adb60eb5c" 1809 + source = "git+https://github.com/lapce/floem?rev=157631a49d6ba13a3467dcb994eb46a98c52eb76#157631a49d6ba13a3467dcb994eb46a98c52eb76" 1812 1810 dependencies = [ 1813 1811 "cosmic-text", 1814 1812 "image", ··· 1821 1819 [[package]] 1822 1820 name = "floem_tiny_skia_renderer" 1823 1821 version = "0.1.1" 1824 - source = "git+https://github.com/lapce/floem?rev=54f0d1bcf0e1a91d82492ee7300a526adb60eb5c#54f0d1bcf0e1a91d82492ee7300a526adb60eb5c" 1822 + source = "git+https://github.com/lapce/floem?rev=157631a49d6ba13a3467dcb994eb46a98c52eb76#157631a49d6ba13a3467dcb994eb46a98c52eb76" 1825 1823 dependencies = [ 1826 1824 "anyhow", 1827 1825 "bytemuck", ··· 1838 1836 [[package]] 1839 1837 name = "floem_vger_renderer" 1840 1838 version = "0.1.1" 1841 - source = "git+https://github.com/lapce/floem?rev=54f0d1bcf0e1a91d82492ee7300a526adb60eb5c#54f0d1bcf0e1a91d82492ee7300a526adb60eb5c" 1839 + source = "git+https://github.com/lapce/floem?rev=157631a49d6ba13a3467dcb994eb46a98c52eb76#157631a49d6ba13a3467dcb994eb46a98c52eb76" 1842 1840 dependencies = [ 1843 1841 "anyhow", 1844 1842 "floem-vger", ··· 2906 2904 2907 2905 [[package]] 2908 2906 name = "lapce" 2909 - version = "0.4.1" 2907 + version = "0.4.2" 2910 2908 dependencies = [ 2911 2909 "lapce-app", 2912 2910 "lapce-proxy", ··· 2914 2912 2915 2913 [[package]] 2916 2914 name = "lapce-app" 2917 - version = "0.4.1" 2915 + version = "0.4.2" 2918 2916 dependencies = [ 2919 2917 "Inflector", 2920 2918 "alacritty_terminal", ··· 2978 2976 2979 2977 [[package]] 2980 2978 name = "lapce-core" 2981 - version = "0.4.1" 2979 + version = "0.4.2" 2982 2980 dependencies = [ 2983 2981 "ahash", 2984 2982 "anyhow", ··· 3006 3004 3007 3005 [[package]] 3008 3006 name = "lapce-proxy" 3009 - version = "0.4.1" 3007 + version = "0.4.2" 3010 3008 dependencies = [ 3011 3009 "alacritty_terminal", 3012 3010 "anyhow", ··· 3055 3053 3056 3054 [[package]] 3057 3055 name = "lapce-rpc" 3058 - version = "0.4.1" 3056 + version = "0.4.2" 3059 3057 dependencies = [ 3060 3058 "anyhow", 3061 3059 "crossbeam-channel",
+3 -3
pkgs/applications/editors/lapce/default.nix
··· 39 39 in 40 40 rustPlatform.buildRustPackage rec { 41 41 pname = "lapce"; 42 - version = "0.4.1"; 42 + version = "0.4.2"; 43 43 44 44 src = fetchFromGitHub { 45 45 owner = "lapce"; 46 46 repo = "lapce"; 47 47 rev = "refs/tags/v${version}"; 48 - sha256 = "sha256-Bwo6twEi9m3T5OybWkWGAyTRumusCWW7mkx/OAJkfXs="; 48 + sha256 = "sha256-vBBYNHgZiW5JfGeUG6YZObf4oK0hHxTbsZNTfnIX95Y="; 49 49 }; 50 50 51 51 cargoLock = { 52 52 lockFile = ./Cargo.lock; 53 53 outputHashes = { 54 54 "alacritty_terminal-0.24.1-dev" = "sha256-aVB1CNOLjNh6AtvdbomODNrk00Md8yz8QzldzvDo1LI="; 55 - "floem-0.1.1" = "sha256-zV2nk3cvmw8lzqL4Xx5SCTX156tiN6sUAEdfy0dJvDY="; 55 + "floem-0.1.1" = "sha256-/4Y38VXx7wFVVEzjqZ2D6+jiXCXPfzK44rDiNOR1lAk="; 56 56 "human-sort-0.2.2" = "sha256-tebgIJGXOY7pwWRukboKAzXY47l4Cn//0xMKQTaGu8w="; 57 57 "locale_config-0.3.1-alpha.0" = "sha256-cCEO+dmU05TKkpH6wVK6tiH94b7k2686xyGxlhkcmAM="; 58 58 "lsp-types-0.95.1" = "sha256-+tWqDBM5x/gvQOG7V3m2tFBZB7smgnnZHikf9ja2FfE=";
+12
pkgs/applications/editors/vim/plugins/generated.nix
··· 3404 3404 meta.homepage = "https://github.com/nvim-lua/diagnostic-nvim/"; 3405 3405 }; 3406 3406 3407 + diagram-nvim = buildVimPlugin { 3408 + pname = "diagram.nvim"; 3409 + version = "2024-08-30"; 3410 + src = fetchFromGitHub { 3411 + owner = "3rd"; 3412 + repo = "diagram.nvim"; 3413 + rev = "d19b9bb2ca162facc242c357c2802b8cfab6b55c"; 3414 + sha256 = "0scgbhjcq0ivlys0a813gwcvw2ckkykyhhjqni6l81gghcc9qgjr"; 3415 + }; 3416 + meta.homepage = "https://github.com/3rd/diagram.nvim/"; 3417 + }; 3418 + 3407 3419 dial-nvim = buildVimPlugin { 3408 3420 pname = "dial.nvim"; 3409 3421 version = "2024-07-15";
+4
pkgs/applications/editors/vim/plugins/overrides.nix
··· 735 735 }; 736 736 }; 737 737 738 + diagram-nvim = super.diagram-nvim.overrideAttrs { 739 + dependencies = with self; [ image-nvim ]; 740 + }; 741 + 738 742 diffview-nvim = super.diffview-nvim.overrideAttrs { 739 743 dependencies = with self; [ plenary-nvim ]; 740 744
+1
pkgs/applications/editors/vim/plugins/vim-plugin-names
··· 283 283 https://github.com/vmchale/dhall-vim/,, 284 284 https://github.com/onsails/diaglist.nvim/,, 285 285 https://github.com/nvim-lua/diagnostic-nvim/,, 286 + https://github.com/3rd/diagram.nvim/,HEAD, 286 287 https://github.com/monaqa/dial.nvim/,HEAD, 287 288 https://github.com/sindrets/diffview.nvim/,, 288 289 https://github.com/elihunter173/dirbuf.nvim/,HEAD,
+2 -2
pkgs/applications/editors/vscode/extensions/ms-toolsai.jupyter/default.nix
··· 9 9 mktplcRef = { 10 10 name = "jupyter"; 11 11 publisher = "ms-toolsai"; 12 - version = "2024.7.0"; 13 - hash = "sha256-hf6Y1SjKfLGe5LQ9swbPzbOCtohQ43DzHXMZwRt2d90="; 12 + version = "2024.8.0"; 13 + hash = "sha256-aEDgIDlQfQNcyrgm7MjJjCc6aKWfBNwfKu/t43+VQZk="; 14 14 }; 15 15 16 16 nativeBuildInputs = [
+2 -2
pkgs/applications/graphics/hydrus/default.nix
··· 15 15 16 16 python3Packages.buildPythonPackage rec { 17 17 pname = "hydrus"; 18 - version = "581"; 18 + version = "588"; 19 19 format = "other"; 20 20 21 21 src = fetchFromGitHub { 22 22 owner = "hydrusnetwork"; 23 23 repo = "hydrus"; 24 24 rev = "refs/tags/v${version}"; 25 - hash = "sha256-Q/EdqwIMCjeDtFAPlYd04NMpEgC6xUDGK5LwxDCiI9Y="; 25 + hash = "sha256-0uRoOgpz3FSDedzx728jAPhrCAReVygkb5tZTTUxNEY="; 26 26 }; 27 27 28 28 nativeBuildInputs = [
+2 -2
pkgs/applications/graphics/komikku/default.nix
··· 19 19 20 20 python3.pkgs.buildPythonApplication rec { 21 21 pname = "komikku"; 22 - version = "1.52.0"; 22 + version = "1.57.0"; 23 23 24 24 format = "other"; 25 25 ··· 28 28 owner = "valos"; 29 29 repo = "Komikku"; 30 30 rev = "v${version}"; 31 - hash = "sha256-Ls8haijbd5rPQwnJCYjLbA1KAVZhPk0aRRe2TtzmTCs="; 31 + hash = "sha256-b2XoywPnrYnuehR6xHH8BvhbMZFB1AeBN0khFfaLGn0="; 32 32 }; 33 33 34 34 nativeBuildInputs = [
+2 -2
pkgs/applications/graphics/mandelbulber/default.nix
··· 19 19 20 20 mkDerivation rec { 21 21 pname = "mandelbulber"; 22 - version = "2.31-1"; 22 + version = "2.32"; 23 23 24 24 src = fetchFromGitHub { 25 25 owner = "buddhi1980"; 26 26 repo = "mandelbulber2"; 27 27 rev = version; 28 - sha256 = "sha256-nyIFvFe86C2ciBDSNWn1yrBYTCm1dR7sZ5RFGoTPqvQ="; 28 + sha256 = "sha256-amNNRuuk7qtcyXUVLEW71yEETExgKw48HeQQyxbi8BE="; 29 29 }; 30 30 31 31 nativeBuildInputs = [
+2 -2
pkgs/applications/logging/sosreport/default.nix
··· 10 10 11 11 buildPythonPackage rec { 12 12 pname = "sosreport"; 13 - version = "4.7.2"; 13 + version = "4.8.0"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "sosreport"; 17 17 repo = "sos"; 18 18 rev = "refs/tags/${version}"; 19 - sha256 = "sha256-67YRmD3kaJbRR7g3w57EwFg7duhcI6zov7gQ4H1MkR8="; 19 + sha256 = "sha256-8laOHFBvlSo70filTd84vMiivcZ9hE8rgFThVVrMwtE="; 20 20 }; 21 21 22 22 nativeBuildInputs = [
+2 -2
pkgs/applications/misc/fluidd/default.nix
··· 2 2 3 3 stdenvNoCC.mkDerivation rec { 4 4 pname = "fluidd"; 5 - version = "1.30.1"; 5 + version = "1.30.3"; 6 6 7 7 src = fetchurl { 8 8 name = "fluidd-v${version}.zip"; 9 9 url = "https://github.com/cadriel/fluidd/releases/download/v${version}/fluidd.zip"; 10 - sha256 = "sha256-R8lCAZkClmCFkiNPf9KGlzj2td3KxCx/7UkdTJgDtwY="; 10 + sha256 = "sha256-wkrWmP5GeodM7wWaEkxT8JsUIc/jhRNHAP1gnLjZ7W4="; 11 11 }; 12 12 13 13 nativeBuildInputs = [ unzip ];
+1 -1
pkgs/applications/misc/keepassxc/default.nix
··· 146 146 ''; 147 147 homepage = "https://keepassxc.org/"; 148 148 license = licenses.gpl2Plus; 149 - maintainers = with maintainers; [ jonafato blankparticle ]; 149 + maintainers = with maintainers; [ blankparticle ]; 150 150 platforms = platforms.linux ++ platforms.darwin; 151 151 }; 152 152 }
+4 -4
pkgs/applications/misc/notesnook/default.nix
··· 2 2 3 3 let 4 4 pname = "notesnook"; 5 - version = "3.0.11"; 5 + version = "3.0.16"; 6 6 7 7 inherit (stdenv.hostPlatform) system; 8 8 throwSystem = throw "Unsupported system: ${system}"; ··· 16 16 src = fetchurl { 17 17 url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}"; 18 18 hash = { 19 - x86_64-linux = "sha256-QnjfeN6CoLiyZvJY4mAZFJ58LxHhe/QUzpI4Fbz5Etg="; 20 - x86_64-darwin = "sha256-uT4xo4LT70jq7bHmiYu4FL8Fldppc2ai8yEZzGMzM6Q="; 21 - aarch64-darwin = "sha256-D5KIXHhzXXBOEcoOn2QKKUbVGMWhRW+L7fgxRxLpX/0="; 19 + x86_64-linux = "sha256-HywWk3MAWdRVaQyimlQJCFsgydXdE0VSLWliZT7f8w0="; 20 + x86_64-darwin = "sha256-GgZVVt1Gm95/kyI/q99fZ9BIN+5kpxumcSJ9BexfARc="; 21 + aarch64-darwin = "sha256-ldg+bVROm/XzACCmiMapMQf3f6le9FHzt18QcaH8TxA="; 22 22 }.${system} or throwSystem; 23 23 }; 24 24
+2 -2
pkgs/applications/misc/pdfsam-basic/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "pdfsam-basic"; 5 - version = "5.2.4"; 5 + version = "5.2.6"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb"; 9 - hash = "sha256-xtkp5OCxzLx0ZNeYlwLQWudzsILErlrAHacuq4hOL8E="; 9 + hash = "sha256-u9ldHJkY3/VfykBFgVY8Ah/uYNpTIkLyvPY7zfLWN38="; 10 10 }; 11 11 12 12 unpackPhase = ''
+3 -3
pkgs/applications/misc/terminal-parrot/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "terminal-parrot"; 5 - version = "1.1.1"; 5 + version = "1.2.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "jmhobbs"; 9 9 repo = "terminal-parrot"; 10 10 rev = version; 11 - hash = "sha256-Qhy5nCbuC9MmegXA48LFCDk4Lm1T5MBmcXfeHzTJm6w="; 11 + hash = "sha256-LI67DDcK3M084r9JPx8NcBWthaiBOCEL4lQJhuUJSok="; 12 12 }; 13 13 14 - vendorHash = "sha256-DJEoJjItusN1LTOOX1Ep+frF03yF/QmB/L66gSG0VOE="; 14 + vendorHash = "sha256-EhnmOpT+rx4RVpmqgEQ4qO+Uca1W9uhx4fcExXG9LOI="; 15 15 16 16 doCheck = false; 17 17
+2 -2
pkgs/applications/networking/browsers/polypane/default.nix
··· 2 2 3 3 let 4 4 pname = "polypane"; 5 - version = "20.1.2"; 5 + version = "21.1.0"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage"; 9 9 name = "${pname}-${version}.AppImage"; 10 - sha256 = "sha256-rdbx0ffI8MDGXArniFnqTpuLLMlihtXXQiZnxw5vq+c="; 10 + sha256 = "sha256-MVBxKJeqIFAkSOajo1q/062BGBF6Fm2sUA6GYZIBoKQ="; 11 11 }; 12 12 13 13 appimageContents = appimageTools.extractType2 {
+3 -3
pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "cloudfoundry-cli"; 5 - version = "8.7.11"; 5 + version = "8.8.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "cloudfoundry"; 9 9 repo = "cli"; 10 10 rev = "v${version}"; 11 - sha256 = "sha256-7FYIJf9vNHK9u8r7HVpPtGGWwRA5cdrB9f1Vz1iTFjI="; 11 + sha256 = "sha256-H969ZL+b62YidZ14TfGmwBVjSF/JRu64nOMUtIdFWKc="; 12 12 }; 13 - vendorHash = "sha256-9SpmMXmocwaZH4fqqETzmRP6wvI2NV/LL6M0Ld4lvso="; 13 + vendorHash = "sha256-2vUS7oENbUENaEnSzJ4gfQr3lKZ3jKH4QAO9KP0rQGs="; 14 14 15 15 subPackages = [ "." ]; 16 16
+3 -3
pkgs/applications/networking/cluster/istioctl/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "istioctl"; 5 - version = "1.22.3"; 5 + version = "1.22.4"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "istio"; 9 9 repo = "istio"; 10 10 rev = version; 11 - hash = "sha256-rtvuGIcjarIc4PmBXM3s/XbMQp/wlU1FhHb1lmXE2go="; 11 + hash = "sha256-yot7HSKM5unfKsBdFAgm1nx/pr3jYnVEJ6Phq4MicZw="; 12 12 }; 13 - vendorHash = "sha256-0F4GIOT/YUzLLhD9HzNJpGSgfMALiEPAb4vtmLmI+Qs="; 13 + vendorHash = "sha256-PrbYJ+Pz6Z1PO+dOuIV/9Y/1ipr0mFrfcFFmnMaHcTM="; 14 14 15 15 nativeBuildInputs = [ installShellFiles ]; 16 16
+3 -3
pkgs/applications/networking/cluster/kubebuilder/default.nix
··· 12 12 13 13 buildGoModule rec { 14 14 pname = "kubebuilder"; 15 - version = "4.1.1"; 15 + version = "4.2.0"; 16 16 17 17 src = fetchFromGitHub { 18 18 owner = "kubernetes-sigs"; 19 19 repo = "kubebuilder"; 20 20 rev = "v${version}"; 21 - hash = "sha256-1/X8HuhzizrkiOyCZ7F6rq6G33oqVaf4uW9Sr94ogL8="; 21 + hash = "sha256-iWu3HnfjT9hiDyl9Ni0xJa/e+E9fbh3bnfrdE1ChaWc="; 22 22 }; 23 23 24 - vendorHash = "sha256-2b/c6t9RkHbBe894DPOETLMf4MpsTjXMtEoVG4FMo24="; 24 + vendorHash = "sha256-dMzDKYjPBAiNFwzaBML76tMylHtBs9Tb2Ulj/WovVJ4="; 25 25 26 26 subPackages = ["cmd"]; 27 27
+3 -3
pkgs/applications/networking/cluster/kubeshark/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "kubeshark"; 5 - version = "52.3.78"; 5 + version = "52.3.79"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "kubeshark"; 9 9 repo = "kubeshark"; 10 10 rev = "v${version}"; 11 - hash = "sha256-tv0yBm10bUCepa03GUQlok6cP0bIuG7sgunX8iAUjO4="; 11 + hash = "sha256-FpuBb/DoZXdQ/xCMC1dgVslYxLzowjv9ULktNKCIBjw="; 12 12 }; 13 13 14 - vendorHash = "sha256-b3Aq3970E19jOJPjw/e0ly1W9x9HiDN+bfuB4uP09BY="; 14 + vendorHash = "sha256-fjkuDX6SC23An0zZW0ocoFJ/K6JKsyVUQdxzfHCUFJs="; 15 15 16 16 ldflags = let t = "github.com/kubeshark/kubeshark"; in [ 17 17 "-s" "-w"
+2 -2
pkgs/applications/networking/instant-messengers/alfaview/default.nix
··· 5 5 6 6 stdenv.mkDerivation rec { 7 7 pname = "alfaview"; 8 - version = "9.13.0"; 8 + version = "9.14.0"; 9 9 10 10 src = fetchurl { 11 11 url = "https://assets.alfaview.com/stable/linux/deb/${pname}_${version}.deb"; 12 - hash = "sha256-ENd3ozRi47vszgHZIX63nQu7wZz6Zf4HdmCsNvkcLOo="; 12 + hash = "sha256-YBC6zjcxSnOOY3RSo0X1ixTY1to2vEEkj1/9rItLzNA="; 13 13 }; 14 14 15 15 nativeBuildInputs = [
+2 -2
pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
··· 4 4 in 5 5 stdenv.mkDerivation rec { 6 6 pname = "rocketchat-desktop"; 7 - version = "4.0.1"; 7 + version = "4.0.2"; 8 8 9 9 src = fetchurl { 10 10 url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat-${version}-linux-amd64.deb"; 11 - hash = "sha256-GWU2qGeQB8bou0+Ja6Cs4bQM1stAL+dlKC3QNTA0EIY="; 11 + hash = "sha256-E2bIFv0oO9mZ90iTHdB3jczr+FEJBCV5r1ucsd6ulGE="; 12 12 }; 13 13 14 14 nativeBuildInputs = [
+6 -3
pkgs/applications/networking/instant-messengers/session-desktop/default.nix
··· 9 9 }: 10 10 11 11 let 12 - version = "1.12.5"; 12 + version = "1.13.2"; 13 13 pname = "session-desktop"; 14 14 15 15 src = fetchurl { 16 16 url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage"; 17 - hash = "sha256-5lE2jab9AK40j2rKYE8zFJr3a+drwCKnVmIZoihhJv8="; 17 + hash = "sha256-71v6CvlKa4m1LPG07eGhPqkpK60X4VrafCQyfjQR3rs="; 18 18 }; 19 19 appimage = appimageTools.wrapType2 { inherit version pname src; }; 20 20 appimage-contents = appimageTools.extractType2 { inherit version pname src; }; ··· 58 58 mainProgram = "session-desktop"; 59 59 homepage = "https://getsession.org/"; 60 60 license = licenses.gpl3Only; 61 - maintainers = with maintainers; [ alexnortung ]; 61 + maintainers = with maintainers; [ 62 + alexnortung 63 + cyewashish 64 + ]; 62 65 platforms = [ "x86_64-linux" ]; 63 66 sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 64 67 };
+2 -2
pkgs/applications/networking/instant-messengers/signal-cli/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "signal-cli"; 5 - version = "0.13.5"; 5 + version = "0.13.6"; 6 6 7 7 # Building from source would be preferred, but is much more involved. 8 8 src = fetchurl { 9 9 url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz"; 10 - hash = "sha256-MWQz/+eusZpXUlpPemLf8Y2nOsh2lv0+Ilf/w+7na+k="; 10 + hash = "sha256-OTKXLcLktWiSdRhGe7ioL2ViJQQcCjR1+2LlGoMnSgE="; 11 11 }; 12 12 13 13 buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
+1 -1
pkgs/applications/networking/instant-messengers/zulip/default.nix
··· 34 34 description = "Desktop client for Zulip Chat"; 35 35 homepage = "https://zulip.com"; 36 36 license = licenses.asl20; 37 - maintainers = with maintainers; [ andersk jonafato ]; 37 + maintainers = with maintainers; [ andersk ]; 38 38 platforms = [ "x86_64-linux" ]; 39 39 mainProgram = "zulip"; 40 40 };
+3 -3
pkgs/applications/networking/iroh/default.nix
··· 7 7 8 8 rustPlatform.buildRustPackage rec { 9 9 pname = "iroh"; 10 - version = "0.23.0"; 10 + version = "0.24.0"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "n0-computer"; 14 14 repo = pname; 15 15 rev = "v${version}"; 16 - hash = "sha256-kXKA0gDmxruoHLTB9zJ36ydqqwaeyQm/Icqgv6API0k="; 16 + hash = "sha256-ZHBgsR17U0hWnRZ79S1/TXoOATofvlf3UloHQh1p8Oo="; 17 17 }; 18 18 19 - cargoHash = "sha256-XUokfLMXIYfiN4A2/aYYhq0N7H2vsZL1uvKg498M3yA="; 19 + cargoHash = "sha256-j/Trm6Y64cOxBdHfP172E+YiORZ8B9ukJOpzrLTGI7k="; 20 20 21 21 buildInputs = lib.optionals stdenv.isDarwin ( 22 22 with darwin.apple_sdk.frameworks; [
+2 -2
pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
··· 5 5 6 6 appimageTools.wrapType2 rec { 7 7 pname = "tutanota-desktop"; 8 - version = "235.240712.0"; 8 + version = "235.240718.0"; 9 9 10 10 src = fetchurl { 11 11 url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage"; 12 - hash = "sha256-IhGfpHzK853b21oqhlfvXVrS1gl/4xgrZeWvBCIL1qg="; 12 + hash = "sha256-Pycz05cwse2SUvJlaCXMA1/Trdt6ZGOJK3NRSPb6/VM="; 13 13 }; 14 14 15 15 extraPkgs = pkgs: [ pkgs.libsecret ];
+3 -3
pkgs/applications/networking/synology-drive-client/default.nix
··· 2 2 let 3 3 pname = "synology-drive-client"; 4 4 baseUrl = "https://global.synologydownload.com/download/Utility/SynologyDriveClient"; 5 - version = "3.5.0-16084"; 5 + version = "3.5.1-16101"; 6 6 buildNumber = lib.last (lib.splitString "-" version); 7 7 meta = with lib; { 8 8 description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server"; ··· 30 30 31 31 src = fetchurl { 32 32 url = "${baseUrl}/${version}/Ubuntu/Installer/synology-drive-client-${buildNumber}.x86_64.deb"; 33 - sha256 = "sha256-Spl6DC+wf+JaXjwH2ecraySo1VtA+EiI3/TWw9UOSA8="; 33 + sha256 = "sha256-VeS5bPcMM4JDCSH5GXkl4OgQjrPKaNDh5PfX28/zqaU="; 34 34 }; 35 35 36 36 nativeBuildInputs = [ autoPatchelfHook dpkg ]; ··· 60 60 61 61 src = fetchurl { 62 62 url = "${baseUrl}/${version}/Mac/Installer/synology-drive-client-${buildNumber}.dmg"; 63 - sha256 = "sha256-NDYxUhWtAVUtpCf1WemqShZCFHGgLGwrkX6HldxOlH0="; 63 + sha256 = "sha256-VyhROpQCeVHNxxYgPUZdAlng15aJ1/IYadz30FThlsw="; 64 64 }; 65 65 66 66 nativeBuildInputs = [ cpio xar undmg ];
+2 -2
pkgs/applications/science/biology/iqtree/default.nix
··· 10 10 11 11 stdenv.mkDerivation rec { 12 12 pname = "iqtree"; 13 - version = "2.3.5"; 13 + version = "2.3.6"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "iqtree"; 17 17 repo = "iqtree2"; 18 18 rev = "v${version}"; 19 - hash = "sha256-ld+9vPJRVHMEe5/igqRr6RkISY2ipfGkJFHDOSZuAmg="; 19 + hash = "sha256-8d5zqZIevv3bnq7z7Iyo/x8i445y1RAFtRMeK8s/ieQ="; 20 20 fetchSubmodules = true; 21 21 }; 22 22
+4 -4
pkgs/applications/science/electronics/digital/default.nix
··· 5 5 let 6 6 pname = "digital"; 7 7 pkgDescription = "A digital logic designer and circuit simulator."; 8 - version = "0.30"; 9 - buildDate = "2023-02-03T08:00:56+01:00"; # v0.30 commit date 8 + version = "0.31"; 9 + buildDate = "2024-09-03T14:02:31+02:00"; # v0.31 commit date 10 10 11 11 desktopItem = makeDesktopItem { 12 12 type = "Application"; ··· 35 35 owner = "hneemann"; 36 36 repo = "Digital"; 37 37 rev = "v${version}"; 38 - hash = "sha256-cDykYlcFvDLFBy9UnX07iCR2LCq28SNU+h9vRT/AoJM="; 38 + hash = "sha256-6XaM3U1x/yvoCrkJ2nMtBmj972gCFlWn3F4DM7TLWgw="; 39 39 }; 40 40 41 41 inherit mvnParameters; ··· 71 71 description = pkgDescription; 72 72 mainProgram = "digital"; 73 73 license = licenses.gpl3Only; 74 - platforms = [ "x86_64-linux" "x86_64-darwin" ]; 74 + platforms = platforms.all; 75 75 maintainers = with maintainers; [ Dettorer ]; 76 76 }; 77 77 }
+11 -11
pkgs/applications/science/electronics/kicad/versions.nix
··· 3 3 { 4 4 "kicad" = { 5 5 kicadVersion = { 6 - version = "8.0.4"; 6 + version = "8.0.5"; 7 7 src = { 8 - rev = "5609722002776982320b6a8fbe6d096bbccf469b"; 9 - sha256 = "03971przr1kzmkr302qzx30mmp92mkwg29dwjvzayc522iskxcbx"; 8 + rev = "1413b8bfab256aa09ae3f23027b9ffe278161ca6"; 9 + sha256 = "1g0w3g1gq6p72gg0jikdrh5mczcv5y16jmqi79bkp6nfl8gbx4l5"; 10 10 }; 11 11 }; 12 12 libVersion = { 13 - version = "8.0.4"; 13 + version = "8.0.5"; 14 14 libSources = { 15 - symbols.rev = "967a2828636d21f90ccc28dcfdc0e48508101c9d"; 16 - symbols.sha256 = "1s8mkxb3ncb0w8z5q8jzhryb0yri7g51vx29qykqwv4ksra1f07i"; 17 - templates.rev = "9c51a73b2e2fc4ea75d8b8be0a78bc9fb1785433"; 15 + symbols.rev = "3bd95a02b135941ba00e5e4671e7c3ebc7672db4"; 16 + symbols.sha256 = "12v8g48fgbalp0xrlgn3vm3ld79ymmwccv5aib6jz2qycdjxmznf"; 17 + templates.rev = "4644b7570ba73dfe03a06a674c98d3fe2a7fe1e4"; 18 18 templates.sha256 = "03idwrk3vj9h2az8j8lqpbdbnfxdbkzh4db68kq3644yj3cnlcza"; 19 - footprints.rev = "a2aa9b5aea64c0efad9a31bc9ca88d48c0203752"; 20 - footprints.sha256 = "1aqdb7mamz8xzz1qrw3qnvnaj97asb8z37w1cjz6y06sjcznlihn"; 21 - packages3d.rev = "5430edd57b3a66fe69288aa8fda714f9732a7f52"; 22 - packages3d.sha256 = "0vixdcldvnl8lr8bq3rc748q3vhx1lr2a0i071w914xyn983z9vz"; 19 + footprints.rev = "4d2be8bf917b9c31f0510fa953532b88ef8b8be8"; 20 + footprints.sha256 = "0ixfiraahi09gvszzxsdz21mdr9wsxyby5qp3n57pzid42gs35a1"; 21 + packages3d.rev = "2f3ea516116cc553c9d488424fbb196f4e65ef29"; 22 + packages3d.sha256 = "03yicqv36zx0wrb0njpkk45l4ysvv3dlsjlpi4j8j75gla060mai"; 23 23 }; 24 24 }; 25 25 };
+53 -16
pkgs/applications/science/misc/snakemake/default.nix
··· 1 1 { lib 2 - , fetchFromGitHub 2 + , fetchPypi 3 + , fetchpatch 3 4 , python3 4 5 , runtimeShell 6 + , stress 5 7 }: 6 8 7 9 python3.pkgs.buildPythonApplication rec { 8 10 pname = "snakemake"; 9 - version = "8.14.0"; 11 + version = "8.20.1"; 10 12 format = "setuptools"; 11 13 12 - src = fetchFromGitHub { 13 - owner = "snakemake"; 14 - repo = pname; 15 - rev = "refs/tags/v${version}"; 16 - hash = "sha256-6oguN4u4OUDXpDsbueSBNwtWgLCaKmgq3w/d/MsMh7Y="; 17 - # https://github.com/python-versioneer/python-versioneer/issues/217 18 - postFetch = '' 19 - sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#' 20 - ''; 14 + src = fetchPypi { 15 + inherit pname version; 16 + hash = "sha256-adNwIA1z/TwWsa0gQb4hAsUvHInjd30sm1dYKXvvXy8="; 21 17 }; 22 18 23 19 postPatch = '' 24 20 patchShebangs --build tests/ 25 - patchShebangs --host snakemake/executors/jobscript.sh 26 - substituteInPlace snakemake/shell.py \ 27 - --replace "/bin/sh" "${runtimeShell}" 21 + substituteInPlace tests/common.py \ 22 + --replace-fail 'os.environ["PYTHONPATH"] = os.getcwd()' "pass" \ 23 + --replace-fail 'del os.environ["PYTHONPATH"]' "pass" 24 + substituteInPlace snakemake/unit_tests/__init__.py \ 25 + --replace-fail '"unit_tests/templates"' '"'"$PWD"'/snakemake/unit_tests/templates"' 28 26 ''; 29 27 30 28 propagatedBuildInputs = with python3.pkgs; [ ··· 41 39 nbformat 42 40 psutil 43 41 pulp 42 + pygments 44 43 pyyaml 45 44 requests 46 45 reretry ··· 66 65 numpy 67 66 pandas 68 67 pytestCheckHook 68 + pytest-mock 69 69 requests-mock 70 70 snakemake-executor-plugin-cluster-generic 71 + snakemake-storage-plugin-fs 72 + stress 71 73 ]; 72 74 73 - disabledTestPaths = [ 74 - "tests/test_conda_python_3_7_script/test_script.py" 75 + pytestFlagsArray = [ 76 + "tests/tests.py" 77 + "tests/test_expand.py" 78 + "tests/test_io.py" 79 + "tests/test_schema.py" 80 + "tests/test_executor_test_suite.py" 81 + "tests/test_api.py" 75 82 ]; 76 83 84 + # Some will be disabled via https://github.com/snakemake/snakemake/pull/3074 77 85 disabledTests = [ 86 + # requires graphviz 87 + "test_filegraph" 88 + # requires s3 89 + "test_storage" 90 + "test_default_storage" 91 + "test_output_file_cache_storage" 92 + # requires peppy and eido 93 + "test_pep" 94 + "test_modules_peppy" 95 + # requires perl 96 + "test_shadow" 97 + # requires snakemake-storage-plugin-http 98 + "test_ancient" 99 + "test_modules_prefix" 100 + # requires snakemake-storage-plugin-s3 78 101 "test_deploy_sources" 102 + # requires modules 103 + "test_env_modules" 104 + # issue with locating template file 105 + "test_generate_unit_tests" 106 + # weird 107 + "test_strict_mode" 108 + "test_issue1256" 109 + "test_issue2574" 110 + "test_github_issue1384" 111 + # future-proofing 112 + "conda" 113 + "singularity" 114 + "apptainer" 115 + "container" 79 116 ]; 80 117 81 118 pythonImportsCheck = [
+3 -3
pkgs/applications/version-management/gh/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "gh"; 5 - version = "2.55.0"; 5 + version = "2.56.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "cli"; 9 9 repo = "cli"; 10 10 rev = "v${version}"; 11 - hash = "sha256-Ty74t+FwyRHed4V/OoJkq/4It5KpLLa4Xxti+93rjCs="; 11 + hash = "sha256-PDw2u+2hMiPmQe1lnJXnZk8JVsti/j7Nq5Uv3b7RIk4="; 12 12 }; 13 13 14 - vendorHash = "sha256-K4KKgfjbopYEMJZCDt2x9l6EO7MwVBZ2HrdzvF/oetw="; 14 + vendorHash = "sha256-rMJWUm79/wBBdVvNdIQc7jqzxfDXphBvGYU3wD/BITk="; 15 15 16 16 nativeBuildInputs = [ installShellFiles ]; 17 17
-17
pkgs/applications/version-management/git-branchless/default.nix
··· 53 53 "--skip=test_switch_pty" 54 54 "--skip=test_next_ambiguous_interactive" 55 55 "--skip=test_switch_auto_switch_interactive" 56 - "--skip=test_amend_undo" 57 - "--skip=test_switch_pty" 58 - "--skip=test_next_ambiguous_interactive" 59 - "--skip=test_switch_auto_switch_interactive" 60 - "--skip=test_move_branch_on_merge_conflict_resolution" 61 - "--skip=test_move_branches_after_move" 62 - "--skip=test_move_delete_checked_out_branch" 63 - "--skip=test_move_no_reapply_squashed_commits" 64 - "--skip=test_move_orphaned_root" 65 - "--skip=test_restore_snapshot_basic" 66 - "--skip=test_restore_snapshot_delete_file_only_in_index" 67 - "--skip=test_restore_snapshot_deleted_files" 68 - "--skip=test_sync_basic" 69 - "--skip=test_sync_no_delete_main_branch" 70 - "--skip=test_undo_doesnt_make_working_dir_dirty" 71 - "--skip=test_undo_move_refs" 72 - "--skip=test_undo_noninteractive" 73 56 ]; 74 57 75 58 meta = with lib; {
+3 -3
pkgs/applications/version-management/git-mit/default.nix
··· 10 10 }: 11 11 12 12 let 13 - version = "5.13.28"; 13 + version = "5.13.29"; 14 14 in 15 15 rustPlatform.buildRustPackage { 16 16 pname = "git-mit"; ··· 20 20 owner = "PurpleBooth"; 21 21 repo = "git-mit"; 22 22 rev = "v${version}"; 23 - hash = "sha256-zw1yY/vCrxklmIXGHO5cMOQ9L3xfHD24f2JN7ibF/I8="; 23 + hash = "sha256-8XUpUpsd2q/1N28ZAPt7rW0pJu0WzE6oVSOwdJxhSBk="; 24 24 }; 25 25 26 - cargoHash = "sha256-pnSp6XCVSxCY7b1LHeQM9/KsjG6sGQoMCPcL8Bby4A4="; 26 + cargoHash = "sha256-KtdbYzXHpdg0Rf4ENrWpP0+vG3+HlLVi7MLeXp9HoVw="; 27 27 28 28 nativeBuildInputs = [ pkg-config ]; 29 29
+3 -3
pkgs/applications/version-management/ungit/default.nix
··· 5 5 6 6 buildNpmPackage rec { 7 7 pname = "ungit"; 8 - version = "1.5.26"; 8 + version = "1.5.27"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "FredrikNoren"; 12 12 repo = "ungit"; 13 13 rev = "v${version}"; 14 - hash = "sha256-HTo0z/y7thUrDm6ofHiUtv1UDuqGN+kpMFLuIvxyxZQ="; 14 + hash = "sha256-UYY8AJWeGAcb83bmr7KX8ocxz8oQqUaXEXwwoVlwvoc="; 15 15 }; 16 16 17 - npmDepsHash = "sha256-f/CtNYoy5ZOgdVTG2ZdBpXOSNUKSG5wCy0eIl4ov80U="; 17 + npmDepsHash = "sha256-AE0V+IoO9Yz80y81ayR08us4gyjjvshRVYPq6thpMr8="; 18 18 19 19 env = { 20 20 ELECTRON_SKIP_BINARY_DOWNLOAD = true;
+2 -2
pkgs/applications/virtualization/ddev/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "ddev"; 5 - version = "1.23.3"; 5 + version = "1.23.4"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "ddev"; 9 9 repo = "ddev"; 10 10 rev = "v${version}"; 11 - hash = "sha256-+DQEXJcW0nKBvw+pWZnFJfO/7R9IjbhAl9WZvorO9Io="; 11 + hash = "sha256-+Ou9YbFwUVu6AqR041ngnVb9TpiO1UMph2w1zsbEMEM="; 12 12 }; 13 13 14 14 vendorHash = null;
+2 -2
pkgs/applications/virtualization/ecs-agent/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "amazon-ecs-agent"; 5 - version = "1.85.1"; 5 + version = "1.86.3"; 6 6 7 7 src = fetchFromGitHub { 8 8 rev = "v${version}"; 9 9 owner = "aws"; 10 10 repo = pname; 11 - hash = "sha256-TrfFJ6N1DreO3NcznXBcNZziESAMxWa4FR+KzDjRDmM="; 11 + hash = "sha256-YygvAYoqbWVmtBgHNrP0Xp1zSgCv2PsnWARWyo3K8rM="; 12 12 }; 13 13 14 14 vendorHash = null;
+3 -3
pkgs/by-name/an/ansel/package.nix
··· 77 77 in 78 78 stdenv.mkDerivation { 79 79 pname = "ansel"; 80 - version = "0-unstable-2024-07-09"; 80 + version = "0-unstable-2024-08-13"; 81 81 82 82 src = fetchFromGitHub { 83 83 owner = "aurelienpierreeng"; 84 84 repo = "ansel"; 85 - rev = "55761cfc7a6aacdc483dadacbf3fadcd89108e27"; 86 - hash = "sha256-5L/d5R2qQ/GFrJcDPKdqhhMQwEg050CmmDh3BLmETRQ="; 85 + rev = "85f2b8b15fe2081634c6f2c3f96b5d430e045bf0"; 86 + hash = "sha256-w2DziVBoCy1NpH4AoIFmKdjqufopqUeYjAwqkOhxHBc="; 87 87 fetchSubmodules = true; 88 88 }; 89 89
+3 -3
pkgs/by-name/as/asfa/package.nix
··· 10 10 installShellFiles, 11 11 }: 12 12 let 13 - version = "0.10.0"; 13 + version = "0.10.0-1"; 14 14 src = fetchFromGitHub { 15 15 owner = "obreitwi"; 16 16 repo = "asfa"; 17 17 rev = "v${version}"; 18 - hash = "sha256-MnhnwtZmPFhOuiqNiaxJnPu88JOdlpvyVy0YGphblBc="; 18 + hash = "sha256-ARdUlACxmbjmOTuNW2oiVUcfd5agR4rcp9aMQYUAYsw="; 19 19 }; 20 20 in 21 21 rustPlatform.buildRustPackage { 22 22 pname = "asfa"; 23 23 inherit version src; 24 24 25 - cargoHash = "sha256-/bRBP/NzcNOXl/nANeOYouUAo3NNbtbV9fxIJrNajYQ="; 25 + cargoHash = "sha256-pzCTqVUo3LEpR3hmTPKDwvgtUJZ+tsArbi0HDlY2Cy8="; 26 26 27 27 outputs = [ 28 28 "out"
+2 -2
pkgs/by-name/be/bevelbar/package.nix
··· 11 11 12 12 stdenv.mkDerivation (finalAttrs: { 13 13 pname = "bevelbar"; 14 - version = "24.06"; 14 + version = "24.07"; 15 15 16 16 src = fetchurl { 17 17 url = "https://www.uninformativ.de/git/bevelbar/archives/bevelbar-v${finalAttrs.version}.tar.gz"; 18 - hash = "sha256-A7nrpMty4uxbiLzW83cmxlhQh8et1qo/n0mwBXNLJOc="; 18 + hash = "sha256-PUYgbJCII0JecetoY3dMBUgrtaVhlLKeaJY27JJ78RQ="; 19 19 }; 20 20 21 21 nativeBuildInputs = [ pkg-config ];
+2 -2
pkgs/by-name/bo/boogie/package.nix
··· 2 2 3 3 buildDotnetModule rec { 4 4 pname = "Boogie"; 5 - version = "3.2.3"; 5 + version = "3.2.4"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "boogie-org"; 9 9 repo = "boogie"; 10 10 rev = "v${version}"; 11 - sha256 = "sha256-dMJ6A2ggBb20vuHL1g/Zx3pl9tXE8oayMGOqpChcg2U="; 11 + sha256 = "sha256-wpMENrhfD8+bt66gd29xkfLANcMbPpkzDacj0KPuXT4="; 12 12 }; 13 13 14 14 projectFile = [ "Source/Boogie.sln" ];
+3 -3
pkgs/by-name/ch/chawan/package.nix
··· 16 16 17 17 stdenv.mkDerivation { 18 18 pname = "chawan"; 19 - version = "0-unstable-2024-08-03"; 19 + version = "0-unstable-2024-09-03"; 20 20 21 21 src = fetchFromSourcehut { 22 22 owner = "~bptato"; 23 23 repo = "chawan"; 24 - rev = "4c64687290c908cd791a058dede9bd4f2a1c7757"; 25 - hash = "sha256-o0GMRNl5GiW0cJdaQYsL2JVp0CPs5VxQF8s0XEh/f7o="; 24 + rev = "298684d174be90be57967f15c2f1bf0d24ba2446"; 25 + hash = "sha256-R/+qLoyewqoOfi264GvZUvpZbN5FX8LtGikQ3FxJEvw="; 26 26 fetchSubmodules = true; 27 27 }; 28 28
+2 -2
pkgs/by-name/cl/clash-nyanpasu/package.nix
··· 6 6 }: 7 7 appimageTools.wrapType2 rec { 8 8 pname = "clash-nyanpasu"; 9 - version = "1.5.1"; 9 + version = "1.6.0"; 10 10 11 11 src = fetchurl { 12 12 url = "https://github.com/LibNyanpasu/clash-nyanpasu/releases/download/v${version}/clash-nyanpasu_${version}_amd64.AppImage"; 13 - hash = "sha256-uUWs7yfSrqe/6kTb4iMA9ty6j/Wi9qGYX65VzTG5nkc="; 13 + hash = "sha256-Xl6FRwYDXztirDZEr8Xn13BNZBW54TdwsK8H0rnLEgU="; 14 14 }; 15 15 16 16 extraInstallCommands =
+3 -3
pkgs/by-name/de/deltachat-desktop/package.nix
··· 37 37 in 38 38 buildNpmPackage rec { 39 39 pname = "deltachat-desktop"; 40 - version = "1.46.7"; 40 + version = "1.46.8"; 41 41 42 42 src = fetchFromGitHub { 43 43 owner = "deltachat"; 44 44 repo = "deltachat-desktop"; 45 45 rev = "v${version}"; 46 - hash = "sha256-gsgw075YitYgx5WkNdPnh96w58FJaa2r8wOJyUsSAu0="; 46 + hash = "sha256-17JhaanYEySoDuLYFMc4vB3wVlCucMh3Jk2Uu9PqUdQ="; 47 47 }; 48 48 49 - npmDepsHash = "sha256-Va/Aber3uwTFTy/XnYILkU3s66/xQAvGDFh2p/ZYYUo="; 49 + npmDepsHash = "sha256-+74koym1lL2rk5n06i7JgcXmX+yW4zgqRfdH6ryXe0s="; 50 50 51 51 nativeBuildInputs = [ 52 52 jq
+4 -3
pkgs/by-name/de/departure-mono/package.nix
··· 6 6 7 7 stdenvNoCC.mkDerivation (finalAttrs: { 8 8 pname = "departure-mono"; 9 - version = "1.346"; 9 + version = "1.350"; 10 10 11 11 src = fetchzip { 12 - url = "https://departuremono.com/assets/DepartureMono-${finalAttrs.version}.zip"; 12 + url = "https://github.com/rektdeckard/departure-mono/releases/download/v${finalAttrs.version}/DepartureMono-${finalAttrs.version}.zip"; 13 13 stripRoot = false; 14 - hash = "sha256-xJVVtLnukcWQKVC3QiHvrfIA3W9EYt/iiphbLYT1iMg="; 14 + hash = "sha256-MMmS1yjhy50fgMK5h0526YKRfQJuOcEAHqxn9rhUwCc="; 15 15 }; 16 16 17 17 installPhase = '' ··· 25 25 ''; 26 26 27 27 meta = { 28 + changelog = "https://github.com/rektdeckard/departure-mono/releases/tag/v${finalAttrs.version}"; 28 29 description = "Departure Mono is a monospaced pixel font with a lo-fi technical vibe"; 29 30 homepage = "https://departuremono.com/"; 30 31 license = lib.licenses.ofl;
+2 -2
pkgs/by-name/di/discover-overlay/package.nix
··· 1 1 { lib, python3, fetchFromGitHub, gtk3, gobject-introspection, gtk-layer-shell, wrapGAppsHook3 }: 2 2 python3.pkgs.buildPythonApplication rec { 3 3 pname = "discover-overlay"; 4 - version = "0.7.4"; 4 + version = "0.7.8"; 5 5 pyproject = true; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "trigg"; 9 9 repo = "Discover"; 10 10 rev = "refs/tags/v${version}"; 11 - hash = "sha256-qA+gvgKQlTjcm0JPUmJp47Ttvm+69CW4lOngnueLVpo="; 11 + hash = "sha256-0b0uZDa9Q3pQ6X65C+E31dMpdTPt4vvHDEqFEtRoedg="; 12 12 }; 13 13 14 14 buildInputs = [ gtk3 gtk-layer-shell ];
+2 -2
pkgs/by-name/do/dopamine/package.nix
··· 6 6 }: 7 7 appimageTools.wrapType2 rec { 8 8 pname = "dopamine"; 9 - version = "3.0.0-preview.31"; 9 + version = "3.0.0-preview.32"; 10 10 11 11 src = fetchurl { 12 12 url = "https://github.com/digimezzo/dopamine/releases/download/v${version}/Dopamine-${version}.AppImage"; 13 - hash = "sha256-NWDk4OOaven1FgSkvKCNY078xkwR+Tp4kUASh/rIbzo="; 13 + hash = "sha256-1gn/oD9UL6+xjEwQIAhvJjHJybI0tY2We3QF1biHDgg="; 14 14 }; 15 15 16 16 extraInstallCommands =
+3 -3
pkgs/by-name/du/dumbpipe/package.nix
··· 7 7 8 8 rustPlatform.buildRustPackage rec { 9 9 pname = "dumbpipe"; 10 - version = "0.13.0"; 10 + version = "0.16.0"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "n0-computer"; 14 14 repo = pname; 15 15 rev = "v${version}"; 16 - hash = "sha256-n/gmkOtCO07paWLKHSNtoTRCgdynMi5cG6johjsuDbU="; 16 + hash = "sha256-gv6V5I9LPNfXyuopo8BaYRELxzTfNhTG1EBWoZ/4cpc="; 17 17 }; 18 18 19 - cargoHash = "sha256-YfieNhhqvW8nU6GZFgWa0oBuCfUSr2AhxpFOFusIYCY="; 19 + cargoHash = "sha256-t6w2XrMSm5g6dmYQ5gX+w8M3pPzWDytGY9uSuXYgnDA="; 20 20 21 21 buildInputs = lib.optionals stdenv.isDarwin ( 22 22 with darwin.apple_sdk.frameworks; [
+3 -3
pkgs/by-name/ho/home-manager/package.nix
··· 16 16 17 17 stdenvNoCC.mkDerivation (finalAttrs: { 18 18 pname = "home-manager"; 19 - version = "0-unstable-2024-08-23"; 19 + version = "0-unstable-2024-09-09"; 20 20 21 21 src = fetchFromGitHub { 22 22 name = "home-manager-source"; 23 23 owner = "nix-community"; 24 24 repo = "home-manager"; 25 - rev = "c2cd2a52e02f1dfa1c88f95abeb89298d46023be"; 26 - hash = "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM="; 25 + rev = "10541f19c584fe9633c921903d8c095d5411e041"; 26 + hash = "sha256-fj2LxTZAncL/s5NrtXe1nLfO0XDvRixtCu3kmV9jDPw="; 27 27 }; 28 28 29 29 nativeBuildInputs = [
+3 -3
pkgs/by-name/ht/httm/package.nix
··· 7 7 8 8 rustPlatform.buildRustPackage rec { 9 9 pname = "httm"; 10 - version = "0.42.0"; 10 + version = "0.42.4"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "kimono-koans"; 14 14 repo = pname; 15 15 rev = version; 16 - hash = "sha256-2NvTo+EDw7GcDbND7epHWnHehcVBo11QyuZ0PoJf7Nc="; 16 + hash = "sha256-NX4cDq9bByfpGiXmLCwE97W2KLIXyPczbBNRRkSGTqs="; 17 17 }; 18 18 19 - cargoHash = "sha256-YSpYg10IeuqUAmjIQzrA59IT7r86/q8DtEKnazjo9rQ="; 19 + cargoHash = "sha256-kIpzwQhhCt5V2ZueYZNirv+QOLXDtHtoYjrD3FI7DQU="; 20 20 21 21 nativeBuildInputs = [ installShellFiles ]; 22 22
+4 -3
pkgs/by-name/hy/hydra/package.nix
··· 194 194 195 195 configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ]; 196 196 197 - env.NIX_CFLAGS_COMPILE = "-pthread"; 198 - 199 - OPENLDAP_ROOT = openldap; 197 + env = { 198 + NIX_CFLAGS_COMPILE = "-pthread"; 199 + OPENLDAP_ROOT = openldap; 200 + }; 200 201 201 202 shellHook = '' 202 203 PATH=$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$(pwd)/src/hydra-evaluator:$PATH
+3 -3
pkgs/by-name/ig/igir/package.nix
··· 10 10 11 11 buildNpmPackage rec { 12 12 pname = "igir"; 13 - version = "2.9.2"; 13 + version = "2.11.0"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "emmercm"; 17 17 repo = "igir"; 18 18 rev = "v${version}"; 19 - hash = "sha256-3lEU3uK/Wp09TOhVJVNslOCx9vTVp0gBTbkQXB13i9Y="; 19 + hash = "sha256-NG0ZP8LOm7fZVecErTuLOfbp1yvXwHnwPkWTBzUJXWE="; 20 20 }; 21 21 22 - npmDepsHash = "sha256-gJvJwostQgEq14zDmMOatfWmkEYNAqGCL9MJPrv5kwk="; 22 + npmDepsHash = "sha256-ADIEzr6PkGaJz27GKSVyTsrbz5zbud7BUb+OXPtP1Vo="; 23 23 24 24 # I have no clue why I have to do this 25 25 postPatch = ''
+2 -2
pkgs/by-name/ir/irpf/package.nix
··· 12 12 13 13 stdenvNoCC.mkDerivation (finalAttrs: { 14 14 pname = "irpf"; 15 - version = "2024-1.3"; 15 + version = "2024-1.4"; 16 16 17 17 # https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/download/pgd/dirpf 18 18 # Para outros sistemas operacionais -> Multi ··· 20 20 year = lib.head (lib.splitVersion finalAttrs.version); 21 21 in fetchzip { 22 22 url = "https://downloadirpf.receita.fazenda.gov.br/irpf/${year}/irpf/arquivos/IRPF${finalAttrs.version}.zip"; 23 - hash = "sha256-UMzoQSSlmOi7TIqPF0vfeelum5JSa6ne4c7ZFREuDr8="; 23 + hash = "sha256-223PZyGlLSK5GzR143IlGzhmJlXmvtBdscC2roPiQhc="; 24 24 }; 25 25 26 26 passthru.updateScript = writeScript "update-irpf" ''
+2 -2
pkgs/by-name/ja/jan/package.nix
··· 5 5 6 6 let 7 7 pname = "jan"; 8 - version = "0.5.1"; 8 + version = "0.5.3"; 9 9 src = fetchurl { 10 10 url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage"; 11 - hash = "sha256-6AbV7rly4dLNX5xMKxitt5kli3xs5Hx0Vy+/HPsyEPc="; 11 + hash = "sha256-lfN5ant3oS7uschxyCxmiKNLJUJiqWVZLaJ8djqNKzQ="; 12 12 }; 13 13 14 14 appimageContents = appimageTools.extractType2 { inherit pname version src; };
+2 -2
pkgs/by-name/ko/kokkos/package.nix
··· 8 8 9 9 stdenv.mkDerivation (finalAttrs: { 10 10 pname = "kokkos"; 11 - version = "4.3.01"; 11 + version = "4.4.00"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "kokkos"; 15 15 repo = "kokkos"; 16 16 rev = finalAttrs.version; 17 - hash = "sha256-x496DKEBMNUUZ2rBNT2MPBV8Obi5aUKQuHwjLiNPMhk="; 17 + hash = "sha256-cEHGFmnYp5tPQ9BzRKopS78kAEBH+nNMRGJuWmpoHc0="; 18 18 }; 19 19 20 20 nativeBuildInputs = [
+5 -5
pkgs/by-name/li/libdeltachat/Cargo.lock
··· 1353 1353 1354 1354 [[package]] 1355 1355 name = "deltachat" 1356 - version = "1.142.11" 1356 + version = "1.142.12" 1357 1357 dependencies = [ 1358 1358 "ansi_term", 1359 1359 "anyhow", ··· 1444 1444 1445 1445 [[package]] 1446 1446 name = "deltachat-jsonrpc" 1447 - version = "1.142.11" 1447 + version = "1.142.12" 1448 1448 dependencies = [ 1449 1449 "anyhow", 1450 1450 "async-channel 2.3.1", ··· 1469 1469 1470 1470 [[package]] 1471 1471 name = "deltachat-repl" 1472 - version = "1.142.11" 1472 + version = "1.142.12" 1473 1473 dependencies = [ 1474 1474 "ansi_term", 1475 1475 "anyhow", ··· 1484 1484 1485 1485 [[package]] 1486 1486 name = "deltachat-rpc-server" 1487 - version = "1.142.11" 1487 + version = "1.142.12" 1488 1488 dependencies = [ 1489 1489 "anyhow", 1490 1490 "deltachat", ··· 1513 1513 1514 1514 [[package]] 1515 1515 name = "deltachat_ffi" 1516 - version = "1.142.11" 1516 + version = "1.142.12" 1517 1517 dependencies = [ 1518 1518 "anyhow", 1519 1519 "deltachat",
+2 -2
pkgs/by-name/li/libdeltachat/package.nix
··· 29 29 }; 30 30 in stdenv.mkDerivation rec { 31 31 pname = "libdeltachat"; 32 - version = "1.142.11"; 32 + version = "1.142.12"; 33 33 34 34 src = fetchFromGitHub { 35 35 owner = "deltachat"; 36 36 repo = "deltachat-core-rust"; 37 37 rev = "v${version}"; 38 - hash = "sha256-60RkdwfLl2oncRKdAP0GD50WkrCBcrJ5Pkkue+UUJ0g="; 38 + hash = "sha256-WjzmRRHdi31Eg3UAy4rD2xrx1LVew9Y4bb50Zyv+8JA="; 39 39 }; 40 40 41 41 patches = [
+3 -3
pkgs/by-name/me/mercure/package.nix
··· 8 8 9 9 buildGoModule rec { 10 10 pname = "mercure"; 11 - version = "0.16.2"; 11 + version = "0.16.3"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "dunglas"; 15 15 repo = "mercure"; 16 16 rev = "v${version}"; 17 - hash = "sha256-HqeF/Wr5ngf6hpFrZAL8kdHcMuxUslWsjtlOq4+C48s="; 17 + hash = "sha256-mRBnjX9jXo2yoftDo8F6kNZeddFkFyUQ6eWxWoxzk2w="; 18 18 }; 19 19 20 20 sourceRoot = "${src.name}/caddy"; 21 21 22 - vendorHash = "sha256-mRyzih46M635uQ9kIQ1vIe/ToN92xlvUcxQ7Bw/Qxiw="; 22 + vendorHash = "sha256-ylPHBb/3lX9vwszyf7QzGPxGXE/Jt3cLKhsfmGMG8WM="; 23 23 24 24 subPackages = [ "mercure" ]; 25 25 excludedPackages = [ "../cmd/mercure" ];
+3 -3
pkgs/by-name/me/mev-boost/package.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "mev-boost"; 8 - version = "1.7.1"; 8 + version = "1.8"; 9 9 src = fetchFromGitHub { 10 10 owner = "flashbots"; 11 11 repo = "mev-boost"; 12 12 rev = "v${version}"; 13 - hash = "sha256-4Vxs1Jo7rkw9l0pXfi+J7YmzQawt7tc19I1MdHQgjBA="; 13 + hash = "sha256-EFPVBSSIef3cTrYp3X1xCEOtYcGpuW/GZXHXX+0wGd8="; 14 14 }; 15 15 16 - vendorHash = "sha256-yfWDGVfgCfsmzI5oxEmhHXKCUAHe6wWTkaMkBN5kQMw="; 16 + vendorHash = "sha256-xkncfaqNfgPt5LEQ3JyYXHHq6slOUchomzqwkZCgCOM="; 17 17 18 18 meta = with lib; { 19 19 description = "Ethereum block-building middleware";
+2 -2
pkgs/by-name/mo/monophony/package.nix
··· 11 11 }: 12 12 python3Packages.buildPythonApplication rec { 13 13 pname = "monophony"; 14 - version = "2.11.0"; 14 + version = "2.15.0"; 15 15 pyproject = false; 16 16 17 17 sourceRoot = "${src.name}/source"; ··· 19 19 owner = "zehkira"; 20 20 repo = "monophony"; 21 21 rev = "v${version}"; 22 - hash = "sha256-OGUj1NNJNerYx/nBtg4g9xMbz6u4YSqKO6HeMNeYpE8="; 22 + hash = "sha256-fC+XXOGBpG5pIQW1tCNtQaptBCyLM+YGgsZLjWrMoDA="; 23 23 }; 24 24 25 25 pythonPath = with python3Packages; [
+3 -3
pkgs/by-name/my/mystmd/package.nix
··· 2 2 3 3 buildNpmPackage rec { 4 4 pname = "mystmd"; 5 - version = "1.3.4"; 5 + version = "1.3.6"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "executablebooks"; 9 9 repo = "mystmd"; 10 10 rev = "mystmd@${version}"; 11 - hash = "sha256-aZUDIQs4n2s842tq23pU/ZUW+1fF4XXEmgnapdZH8wQ="; 11 + hash = "sha256-xcmiWJIeOW+0h2Fd7uAYyrD4+K/tLCWbyyeumD+4MMQ="; 12 12 }; 13 13 14 - npmDepsHash = "sha256-IXdmzuQaBEbwjXssYaDLvxyTl+i2U/JTalg8lSGvuR0="; 14 + npmDepsHash = "sha256-X4198iURcZDODA/mrpPwobA/1PG4M9k9G4tClB3qVQ0="; 15 15 16 16 dontNpmInstall = true; 17 17
+4 -4
pkgs/by-name/nn/nncp/package.nix
··· 3 3 , fetchurl 4 4 , lib 5 5 , genericUpdater 6 - , go_1_21 6 + , go 7 7 , perl 8 8 , stdenv 9 9 , writeShellScript ··· 11 11 12 12 stdenv.mkDerivation (finalAttrs: { 13 13 pname = "nncp"; 14 - version = "8.10.0"; 14 + version = "8.11.0"; 15 15 outputs = [ "out" "doc" "info" ]; 16 16 17 17 src = fetchurl { 18 18 url = "http://www.nncpgo.org/download/nncp-${finalAttrs.version}.tar.xz"; 19 - sha256 = "154e13ba15c0ea93f54525793b0699e496b2db7281e1555f08d785a528f3f7fc"; 19 + sha256 = "7EEUvNkYSqh4HzjbqjqgQlXfu6nDU2v3WWnma8M0r/I="; 20 20 }; 21 21 22 22 nativeBuildInputs = [ 23 - go_1_21 23 + go 24 24 ]; 25 25 26 26 # Build parameters
+3 -3
pkgs/by-name/om/omekasy/package.nix
··· 6 6 }: 7 7 rustPlatform.buildRustPackage rec { 8 8 pname = "omekasy"; 9 - version = "1.2.3"; 9 + version = "1.3.1"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "ikanago"; 13 13 repo = "omekasy"; 14 14 rev = "v${version}"; 15 - hash = "sha256-oPhO+gRWrwgABc+gGXnIC519F5XVvewUHo2y54RoE4U="; 15 + hash = "sha256-wI+xN6pyNoP4xknjHHDydHq275Gb1nyp7YtqmABlTBA="; 16 16 }; 17 17 18 - cargoHash = "sha256-6GjNn7FAcAihqNhPD18sUFe40ZQwXmFEQmoZNZL2trQ="; 18 + cargoHash = "sha256-6CU2ff4o7Y3CmZSf/xs2SSGco2mu4oRLJYIciCld8zo="; 19 19 20 20 buildNoDefaultFeatures = stdenv.targetPlatform.isWasi; 21 21
+2 -2
pkgs/by-name/pu/pupdate/package.nix
··· 11 11 12 12 buildDotnetModule rec { 13 13 pname = "pupdate"; 14 - version = "3.12.0"; 14 + version = "3.13.0"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "mattpannella"; 18 18 repo = "pupdate"; 19 19 rev = "${version}"; 20 - hash = "sha256-55tFnkF+zjvrGbG5AzBGc4nLqbPPMZ8+/muzav4dnsQ="; 20 + hash = "sha256-czQU5O0z87v8p2GWYkRkhB5te/lub/yW4bMDd5EkVOQ="; 21 21 }; 22 22 23 23 buildInputs = [
+3 -3
pkgs/by-name/qd/qdrant-web-ui/package.nix
··· 5 5 }: 6 6 buildNpmPackage rec { 7 7 pname = "qdrant-web-ui"; 8 - version = "0.1.30"; 8 + version = "0.1.31"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "qdrant"; 12 12 repo = "qdrant-web-ui"; 13 13 rev = "refs/tags/v${version}"; 14 - hash = "sha256-bHE/ZBc1PvjnIXhkh9BFS0x3Urnh4LOHH4MoKgqVVJ4="; 14 + hash = "sha256-NNX//0ZkXYMaP14TI4BLMQI4jN+Mxc7uZu4rDZTXHG8="; 15 15 }; 16 16 17 - npmDepsHash = "sha256-3w3imfe9XbK3eSh6kOd2G/ei75+Ub08L/hBej1iy9R4="; 17 + npmDepsHash = "sha256-ZCHsVIbtnfrksBmXbYkZLv4WH+DBNazHCOtsgi+PKPc="; 18 18 19 19 npmBuildScript = "build-qdrant"; 20 20
+2 -2
pkgs/by-name/qt/qtractor/package.nix
··· 29 29 30 30 stdenv.mkDerivation rec { 31 31 pname = "qtractor"; 32 - version = "1.0.0"; 32 + version = "1.1.1"; 33 33 34 34 src = fetchurl { 35 35 url = "mirror://sourceforge/qtractor/qtractor-${version}.tar.gz"; 36 - hash = "sha256-yoVxRUXUhZrIzJVWLKA6G4hBf52dvJdr7FlfM+ZHUeo="; 36 + hash = "sha256-Q/6AS9mZwsG+wF/h0xt77s8qpuLwcO1CjoVaX9ta9Qc="; 37 37 }; 38 38 39 39 nativeBuildInputs = [
+3 -3
pkgs/by-name/sn/snipe-it/package.nix
··· 8 8 9 9 php.buildComposerProject (finalAttrs: { 10 10 pname = "snipe-it"; 11 - version = "7.0.7"; 11 + version = "7.0.11"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "snipe"; 15 15 repo = "snipe-it"; 16 16 rev = "v${finalAttrs.version}"; 17 - hash = "sha256-cka3ZczRYXmzeokiUg2WarArvW507AVsCIadPlVUYWo="; 17 + hash = "sha256-XMsLK6IKbnlYZk7tPYq++prv+28FefEbahOqmeEAAiY="; 18 18 }; 19 19 20 - vendorHash = "sha256-nwzPmelTvInx055lyuhiTioWyF0JSCjNa2Ky8yQXwtc="; 20 + vendorHash = "sha256-8YZD6Q1Mb5VUGL/KQnYTtXKL3aziPfAmwvVthDdyBYY="; 21 21 22 22 postInstall = '' 23 23 snipe_it_out="$out/share/php/snipe-it"
+3 -3
pkgs/by-name/vs/vscode-js-debug/package.nix
··· 16 16 17 17 buildNpmPackage rec { 18 18 pname = "vscode-js-debug"; 19 - version = "1.91.0"; 19 + version = "1.93.0"; 20 20 21 21 src = fetchFromGitHub { 22 22 owner = "microsoft"; 23 23 repo = "vscode-js-debug"; 24 24 rev = "v${version}"; 25 - hash = "sha256-3SZIIBHv599qLaW419CA0Nr7F6R7GB9wqUnOqbV4jKc="; 25 + hash = "sha256-8+ZoTddzgwLwPUduT+G5zVgt/ZxLWKojz1PKvOxLX6o="; 26 26 }; 27 27 28 - npmDepsHash = "sha256-kZ5wCcmdpYtT6dqtV3i8R9LKFs20sq0rZC1W1w00XJQ="; 28 + npmDepsHash = "sha256-4GTZevbQg1LhxVw6WQYGvWHVuaWTwpCf50gMZWAHE7c="; 29 29 30 30 nativeBuildInputs = [ 31 31 pkg-config
+2 -2
pkgs/by-name/xl/xlights/package.nix
··· 2 2 3 3 appimageTools.wrapType2 rec { 4 4 pname = "xlights"; 5 - version = "2024.14"; 5 + version = "2024.15"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/smeighan/xLights/releases/download/${version}/xLights-${version}-x86_64.AppImage"; 9 - hash = "sha256-WqLPesH6KaOAj7gYycyrmzG2NIkKs3cjUm+K83rvha0="; 9 + hash = "sha256-/KUcBr5Z8xITeEL3g/5UFQ483lUY/fvf8VtlnSOcqu0="; 10 10 }; 11 11 12 12 meta = {
+3 -3
pkgs/by-name/yo/yourkit-java/package.nix
··· 9 9 let 10 10 vPath = v: lib.elemAt (lib.splitString "-" v) 0; 11 11 12 - version = "2024.3-b157"; 12 + version = "2024.3-b161"; 13 13 14 14 arches = { 15 15 aarch64-linux = "arm64"; ··· 20 20 arches.${stdenvNoCC.targetPlatform.system} or (throw "Unsupported system"); 21 21 22 22 hashes = { 23 - arm64 = "sha256-0a9maZhgtXH21Ph0o3Rb+rCPhAmZRxjZCRyDmTvusLk="; 24 - x64 = "sha256-nLaOOkPG2QEHkHd0S2AYLT2IpkMchGw9adyUDLCNQFg="; 23 + arm64 = "sha256-Qm/+KQ4nZr1IIyo+i8Gp8K2PEU844tuigiopWEibaAE="; 24 + x64 = "sha256-yxbPS5UrYq6FgPlqfWjO9tPI/rjA/400JnS3kKHgMV0="; 25 25 }; 26 26 27 27 desktopItem = makeDesktopItem {
+2 -2
pkgs/by-name/zx/zxtune/package.nix
··· 43 43 ++ lib.optional withQt (if (supportWayland) then qt5.qtwayland else qt5.qtbase); 44 44 in stdenv.mkDerivation rec { 45 45 pname = "zxtune"; 46 - version = "5071"; 46 + version = "5072"; 47 47 48 48 outputs = [ "out" ]; 49 49 ··· 51 51 owner = "zxtune"; 52 52 repo = "zxtune"; 53 53 rev = "r${version}"; 54 - hash = "sha256-qb06c0/Td6/6U033uYUkFq5JhCqlWCx6IhQ//PMeGUY="; 54 + hash = "sha256-cbSz5fi2HYE7ScYFhopXcp9Ct4dMFughF2TKkY1K4uQ="; 55 55 }; 56 56 57 57 passthru.updateScript = nix-update-script {
+4 -12
pkgs/data/documentation/zeal/default.nix
··· 3 3 , fetchFromGitHub 4 4 , cmake 5 5 , extra-cmake-modules 6 - , fetchpatch2 7 6 , pkg-config 7 + , httplib 8 8 , qtbase 9 9 , qtimageformats 10 10 , qtwebengine ··· 22 22 in 23 23 stdenv.mkDerivation (finalAttrs: { 24 24 pname = "zeal"; 25 - version = "0.7.1"; 25 + version = "0.7.2"; 26 26 27 27 src = fetchFromGitHub { 28 28 owner = "zealdocs"; 29 29 repo = "zeal"; 30 30 rev = "v${finalAttrs.version}"; 31 - hash = "sha256-918hWy5be5mHINLbFJPiE29wlL1kRUD4MS3AjML/6fs="; 31 + hash = "sha256-9tlo7+namWNWrWVQNqaOvtK4NQIdb0p8qvFrrbUamOo="; 32 32 }; 33 33 34 - patches = [ 35 - # https://github.com/zealdocs/zeal/pull/1644 36 - (fetchpatch2 { 37 - name = "fix-qtconcurrent-component.patch"; 38 - url = "https://github.com/zealdocs/zeal/commit/c432a0ac22b59ed44bdcec8819c030d993177883.patch"; 39 - hash = "sha256-DW7rBRMnXm7r+jps1/3RTXA1PpwEUCprW9qrHMRii84="; 40 - }) 41 - ]; 42 - 43 34 nativeBuildInputs = [ 44 35 cmake 45 36 extra-cmake-modules ··· 48 39 ]; 49 40 50 41 buildInputs = [ 42 + httplib 51 43 libXdmcp 52 44 libarchive 53 45 libpthreadstubs
+1 -1
pkgs/data/fonts/iosevka/bin.nix
··· 17 17 in 18 18 stdenv.mkDerivation rec { 19 19 pname = "${name}-bin"; 20 - version = "30.3.3"; 20 + version = "31.4.0"; 21 21 22 22 src = fetchurl { 23 23 url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";
+90 -90
pkgs/data/fonts/iosevka/variants.nix
··· 1 1 # This file was autogenerated. DO NOT EDIT! 2 2 { 3 - Iosevka = "0mma97rhjpfq20mq6dji50mxbdgaz72ccfqhrqim6hj5x5pkc2w2"; 4 - IosevkaAile = "1frmm1q57xqsxqvz1vmz5fzammpgkgk2lspnkilb1adavla5a5j6"; 5 - IosevkaCurly = "0zq07z1nx6b52mxh9kqr880p9aw10whjs0qgwzlyyij7jnk4mx2l"; 6 - IosevkaCurlySlab = "0g6p9gpjqmdan81cv9rg2bppcdg7s8iiyn8whxqmxf0prbsyxcw6"; 7 - IosevkaEtoile = "1sh3d69m0p8glr8szjd1cyxzsi66qsbmasjlmkwc1fhbw9w5kb5c"; 8 - IosevkaSlab = "0sk90cq1zl4d0yjh0p78idjpi2hmr0hy4c4650xls9js0nzszjyj"; 9 - IosevkaSS01 = "10f63fkyfcr0mngjql69zsfmy2wffbdzxkacw5jwlcnnpw6lwrz2"; 10 - IosevkaSS02 = "0ydmp0mp5n6rh9s48pixrk41vdai3ys4q2wz60rpp8pl2sl7l58f"; 11 - IosevkaSS03 = "0k2k54jh2w1pf2hhdx5m1bkk4pj9p541ddnvkw8jxdc30ab9pg0x"; 12 - IosevkaSS04 = "12j2d7h1hp1m16m893rn79v56a13kvsz2vabp395fdhjswffpjly"; 13 - IosevkaSS05 = "1cvl4hg058675h9amvvjw2qkjk7fs9zs3prdqvllpch77fkznbv3"; 14 - IosevkaSS06 = "19cvfxrgqwyaan8xdyfrz1wsnr7cd43szcq0ijwsjxv0afvadp03"; 15 - IosevkaSS07 = "1kd3s41nqiihl2wf0944mw7x1gq7xa5jfgis0z23snb9p25gyzli"; 16 - IosevkaSS08 = "02yd5s4gvvl2xg68cznj00giqzngmdhmjz290q5d7kkzgzf8v6d4"; 17 - IosevkaSS09 = "13hd8f38b0882paqr4pw2wx6raqr9m5d9ndphs8fvyadhsh70xaf"; 18 - IosevkaSS10 = "1j0lbwvzqx0lmj3irf01aywqny94sidz8m06xl8vrljczhhz619w"; 19 - IosevkaSS11 = "19kndxn9lynx3ambah3gn63d8fdqq5p7i5yxjlsn7g0d5vgvaa9h"; 20 - IosevkaSS12 = "0jbsmsh6c2kzrn4kbkj4klc2pk1z54c1pf3c7y1vr8xyqkg43bjs"; 21 - IosevkaSS13 = "0jgf400xl1hnd78vi3vdvxmax415rq475v1shfrf0ms3hm0kbrp0"; 22 - IosevkaSS14 = "0acrv8frx88292iw55944mfp814iskafyknymiayxnpmmppn078g"; 23 - IosevkaSS15 = "18jzzd5jsb9yvv5gcybnn8gcp03x7rhl2z40d16ln9cx150336sx"; 24 - IosevkaSS16 = "0405qngdwkxxzyjxx9qy18p37jz1sc5f32ynaiiif0zg0c8bbsrb"; 25 - IosevkaSS17 = "0f8is0b4rvy8n2fnydc9f2g958y9xnrww44fhb28vglgwil6pvya"; 26 - IosevkaSS18 = "12hz34zfvdlw0dxni23j5knsxcrkvnpvankidkd0y500zisx4i46"; 27 - SGr-Iosevka = "1izcklbrm8f993vhdqvyiy9c33d7aykvj4vv2sqwvwid2mv0rvdn"; 28 - SGr-IosevkaCurly = "1r7cy3scf8gjp7hp3q80xf28d3px9vmsis8g0a8nr0vrg7wvc0p7"; 29 - SGr-IosevkaCurlySlab = "0ja6i81fnz8kvzlfasvm5gx5c7l2hkvl1qfdan9knj6p5390rp25"; 30 - SGr-IosevkaFixed = "1gcd6jms5z6pgclr8lgb0ip6z0y6vx9c79wvf0w7ixjcyafb1aq4"; 31 - SGr-IosevkaFixedCurly = "1q415xikr2ihrxl3xvpfj7ix1kn1sva089abpjf0yp76rjfx5v9x"; 32 - SGr-IosevkaFixedCurlySlab = "1cfii72ci508m7lrv701hsz5bzphjswdpcaccyhzkjqyjbajgvj4"; 33 - SGr-IosevkaFixedSlab = "128rcxi2zjaxcbi7a6w739lvxcbaw6ph8q6a1gy20pgapna1l9xf"; 34 - SGr-IosevkaFixedSS01 = "0pbv1x4mm7h43sz4r7rb0hkhsm6g7i4pkpi0lbnx2awiafzzlg3s"; 35 - SGr-IosevkaFixedSS02 = "11d0si4bmgvz3pl43qbpszj9h9x4g53r29359y2mi5rmw5jym01l"; 36 - SGr-IosevkaFixedSS03 = "1nmw3g30hm2rgy0lji0lbihi08iphy943pkrs5fl2c36yf9qxl0d"; 37 - SGr-IosevkaFixedSS04 = "18jhd61d4vrmq9ck3wass07ph8frxnq8knl0cdpgqx6izk3fk0ss"; 38 - SGr-IosevkaFixedSS05 = "0x9q7jvzsrs71frx662cb4872z9alc2y0r7cjaxpaifc420826z6"; 39 - SGr-IosevkaFixedSS06 = "17f9c4cwi46c5jlrj6r6xw6gwjq2cmkjm4832cyjw9fqh4kpb0ih"; 40 - SGr-IosevkaFixedSS07 = "1x3j7lp88zrxkmak3fnglin2sp450lmlyv92n56dz2a7gvw0nbs9"; 41 - SGr-IosevkaFixedSS08 = "03m7wmwlajhjw3ifhmxl4cxkjjfyldw0bbybhk4cdsw9qni0cbhi"; 42 - SGr-IosevkaFixedSS09 = "127466bq6m3k7is2jh45j9c3iik2ckgajhrkhgmhk3fr272ip00z"; 43 - SGr-IosevkaFixedSS10 = "1qczqa9lv0hlqjhh5n3j32ampflriwyhp7cvk8vraxp8w01f20vv"; 44 - SGr-IosevkaFixedSS11 = "0pm10asyl566l9s00hxb1r43yvhb24hqn3z5akirfxxp5klp9hf3"; 45 - SGr-IosevkaFixedSS12 = "0lsy3097aid17hqxljkxj9lpswxvlmk5gv047dh7m6m8vxm3dzcy"; 46 - SGr-IosevkaFixedSS13 = "1h5bv9c6yvbvfslx3wm5657f982f17pb2q8j2hl5c50114dbkdib"; 47 - SGr-IosevkaFixedSS14 = "1lglsqhcy22hf4zbczpwc7pkmyaglknqpkv9bgckphpzaqgmavln"; 48 - SGr-IosevkaFixedSS15 = "18hc5kfj4m57k8p90jc2fnr89ji6q34q6v3b1xkyb0lv9bagq2nl"; 49 - SGr-IosevkaFixedSS16 = "0k4nrdqnh6jg40q5xvkrm1jx0iplwybhxy8bn3q7k461d3rn9smv"; 50 - SGr-IosevkaFixedSS17 = "02higr5lxiyi6z8b916pkgch2dq0si7m7bf0vxb86daplgljbrna"; 51 - SGr-IosevkaFixedSS18 = "0b4ljypil31n0861k43k0dxrmj9djgy8qffwy5vv856lcrdipy8h"; 52 - SGr-IosevkaSlab = "18y0j05jjkdkavidrn2bpfd1319yzxp7m0zyhn08394d4m74m8w2"; 53 - SGr-IosevkaSS01 = "0k9l74q9lijhxq1slxxkq7wb71nsrdv2bkqsbdxxb5gypqjh136y"; 54 - SGr-IosevkaSS02 = "1gzjf6j6ljxnqi3xzcs1q1qzazyzw9d4az4l1nmsbkk5nfw3skbi"; 55 - SGr-IosevkaSS03 = "1d8ihwf8m47lvlyyar4wd2xqjn4g5qmy1pp81dd2p999j47fzz84"; 56 - SGr-IosevkaSS04 = "0dwhmlsv4x3z2xmnqwdciys0j22z25vcwqrb7wmy7c5sdhfkd4pn"; 57 - SGr-IosevkaSS05 = "02nid5vi8q71lcaxwllyaa7j2qdb8hycw5k3b9fiw9bvliip7bwl"; 58 - SGr-IosevkaSS06 = "1vx6nqv2m1f32xqgv6px2r0rr60rb8rns6f2y2dmnz1b55j4ap84"; 59 - SGr-IosevkaSS07 = "0rgk9z2mrz990szq1m5664x1jq3056df9warjpj0nnr0d3a8406q"; 60 - SGr-IosevkaSS08 = "1sv09fsd3xwwjdkiw93v7pvs3a1r7mbxqgyw73l4v8k5c8f16q14"; 61 - SGr-IosevkaSS09 = "1hrk9pn407f57bx6zjc9mxzr7286vz2llyrkn808q1dlvisp3gc9"; 62 - SGr-IosevkaSS10 = "1sk339gl5r004pd52daclk2zl5zybcfra2hdafvrmc81fkd2pz7b"; 63 - SGr-IosevkaSS11 = "0rp7488skw396qdw8lyv69fgkz3b5i5nbjzkbrlfjasp2sgyg1i9"; 64 - SGr-IosevkaSS12 = "04446s3bjdpvk25361n88xmcc3ylh9frabb11wgs79brm2i8qf57"; 65 - SGr-IosevkaSS13 = "1xsdp07272bmp6fj68ky40hs53lhsm9y9c6fpk2cqvm25mv5w7fn"; 66 - SGr-IosevkaSS14 = "1r3d7g4kqrj6zwpivzsjvhvv9q4gysb6a8s0m1fvaarsxhcrvkf1"; 67 - SGr-IosevkaSS15 = "0cy8jg4g95zxbcq8y6bksmjbfz5dbp3c7qv16z533n2b5fn5h912"; 68 - SGr-IosevkaSS16 = "05rs3hkv92h2s3p3v4v33jrfx5b6vk5v5d8kbwg989y8azzsj52m"; 69 - SGr-IosevkaSS17 = "1i28qsazi4q51x1rk9p6h6zvk6pbbm9g5fs567a5wwlhagjha2cd"; 70 - SGr-IosevkaSS18 = "0ghs5b6zg1jmibgypqwgnl8vpvzhj5c8di4izp5rgw8lzsi5n9yb"; 71 - SGr-IosevkaTerm = "1vxs9sxc8q54cg4ydln1zqqwj8rs7x87xn3yz7nhgswk2zdyfxnr"; 72 - SGr-IosevkaTermCurly = "1v4hwghycmlzi57m7qnp60v618x4wkqg3pbzpvm80v528lvrsrsh"; 73 - SGr-IosevkaTermCurlySlab = "0z2z117saryawik1xnklzn8schgy4q10yqax1ypl1sj0lq80b6dm"; 74 - SGr-IosevkaTermSlab = "04qbdia36haqisrm8z4waknpfvgrxb2cymjk6pwdqgk4jbfd6yh8"; 75 - SGr-IosevkaTermSS01 = "1y3ggssvk39kv4igli2q7qy35spj5vddngsn4izh089a4irr7462"; 76 - SGr-IosevkaTermSS02 = "06ddjjfj2h83ya4hw4yla6fzd3kpv3q6fnscx2aydxc4qjryqws7"; 77 - SGr-IosevkaTermSS03 = "03jjlllq4x9h6pkg67vfivvc3p0swawah94yi10ar1hbgaljqhn4"; 78 - SGr-IosevkaTermSS04 = "0n36y3pz660j0rv1zhyjrahcz87a65fw59s9x320aix502msaqn2"; 79 - SGr-IosevkaTermSS05 = "0h71560ln3my53giyw75mq9cynjnnj6dkvdd4anbkvyw2j133497"; 80 - SGr-IosevkaTermSS06 = "0fhmzjzxy8hjcdk3rjl9igykfmlgji7v5lyzm1p04fs4wa289bh6"; 81 - SGr-IosevkaTermSS07 = "0girzhdwgwsjqqrhz0bky81rrqj62hxgkqy3sklr1w55snhq9yb4"; 82 - SGr-IosevkaTermSS08 = "08rz3bjimxmn6xp4dqv9177bhyyqv10rdfxz697fkajq0wxvy4xc"; 83 - SGr-IosevkaTermSS09 = "095bzk8ir4zxmrikr48fbfhsdhhnrcwg3xrkvqxhqancgqj4rzsz"; 84 - SGr-IosevkaTermSS10 = "0kb3nhdy1pilhvdyfb3igaalf888qx55vhigvail05dnkp23iyaw"; 85 - SGr-IosevkaTermSS11 = "1sxihqvswi66pbjnixfv1f4gv08x6n28qfzyj03lzw1d7sz3m1gp"; 86 - SGr-IosevkaTermSS12 = "0w2sh563azjam2fcdbpxh466ddlc4h6vpc2xlawl78w5n63wsnys"; 87 - SGr-IosevkaTermSS13 = "00h1kq3a2kbippqcy49jiagh6zl01qb40489njdg1vpd6s04x50c"; 88 - SGr-IosevkaTermSS14 = "0k97x43appi5azlnghinwmyq13h5fqkj0p2rysnz28v5r6razikm"; 89 - SGr-IosevkaTermSS15 = "1ziqhmp9af9b0djm9mhh2yy5f85rwwk82xhwsd84y9bl3mwil5cr"; 90 - SGr-IosevkaTermSS16 = "00lyihlkv7h5pr2w74rb56kwzjqwh1kh7cp7dfzhwhwicy5bxc50"; 91 - SGr-IosevkaTermSS17 = "03zgm0qsw5p8i1567ghslgb3cqwxznc9rbwnx9xiwv4972lbad6w"; 92 - SGr-IosevkaTermSS18 = "1dmvvn1ny1bym8k32nvp2qzrzmy0qy4l6w1clfza4g6c23k6d4dd"; 3 + Iosevka = "16pyffwwyq9vlwd3xjnfpr5sgcai9kdiz9vsrjws5wr8qr85rc93"; 4 + IosevkaAile = "1s1gy1h6xwgn2bkh8z7ghgvr9qccahr36jqbbyksj1lms4sl6zsp"; 5 + IosevkaCurly = "0h062xhdskxa0kwj4h73r6ihllmxqkq4qazghf689lkbrklcq9rz"; 6 + IosevkaCurlySlab = "053xvjkghbk9s6x492bj9ykx7fn1kz7k7hg55gnmppw0hi8ajfxx"; 7 + IosevkaEtoile = "1dinagfkb3vfh2y4bbyk2kgvw1rgw71fyqwb72zd20ygrnwwq4hc"; 8 + IosevkaSlab = "0xxz7gr71bry054d6va1kijdk1bh6l9h9cifyfvdyf9h4rrpidjk"; 9 + IosevkaSS01 = "0w333v4i7y949cqczp47x36435f8d010bmkmzbf17zf1fwny8bsp"; 10 + IosevkaSS02 = "0b75cvfnvrzdbiqvb58xgd6wsmdlm187nj08rs3102gyc0crwzbd"; 11 + IosevkaSS03 = "15f3qadgd0xrqr95vbmway0gzwjbwjzz7xf92ql2nhhbxnkfsra4"; 12 + IosevkaSS04 = "1xvkmzpzx71c9m615252y1643brlagh04kn1m3c7xx6idxg3fshc"; 13 + IosevkaSS05 = "1apwlfggxj98rvz7ndrrs3wszx1sw9mwbqd0khxq1qrr1mq2x07h"; 14 + IosevkaSS06 = "0k5g7d87r4jlq55gd07v319v06vmvdcz0qw4kfy5p87r5m1wyv4k"; 15 + IosevkaSS07 = "1hd4nxjvasb562qr61nrj1h7mj06r6fdjadjs7jx0ph3qfc2p4rj"; 16 + IosevkaSS08 = "0licrfyizc1f5dfb8sfnjzxxxjx6zfxp1fjjwwr7j6vxaxx6pvp1"; 17 + IosevkaSS09 = "1qpll64150yrhafgif9fw6nl5mhm8gkdjrzysdfd4vkabzzg21l7"; 18 + IosevkaSS10 = "1n7jnwzg0kcpzg13wac0m269z8qsci24jwlsc6i3v94ksil34p3n"; 19 + IosevkaSS11 = "0f8gprgcpm56bwmiwa1h2bbgxh3fagcv0gfbwbhnkjmkdr2gp9x6"; 20 + IosevkaSS12 = "1vj0lanm0kh5ndsqwvh1hb70hxmy834gbsqx5afr2bqfdv2lbl4k"; 21 + IosevkaSS13 = "0n0wvgah0zraqvff68kwvw8m6fzahblp27sag370pk7v0wr4k0wb"; 22 + IosevkaSS14 = "0r5x3y8nh9j7nzxcffgkxiyd7hfzi8r95bvbdq7lh6nvaa3a22fy"; 23 + IosevkaSS15 = "0ga9jkd4plr3wjmjxl60qaw0w5zdz6w75v065fzpg1q0yxixipd6"; 24 + IosevkaSS16 = "0j4mi3yfw6y7863fa413jlyi9yb4j5cgrcibjqbp139282j7bnqk"; 25 + IosevkaSS17 = "17m05d2d7d7pvdypzwnsy8yxvsiflm73788msgr7xrvn8l527v1h"; 26 + IosevkaSS18 = "1y7a6k9wm59r76w5l9zf1xz4k8w0k19p74d3x0xzfzbrd1swgii1"; 27 + SGr-Iosevka = "17ccw94vi1gx2hs61w52zih8l249yw7mwldgpiqcvhfgs3gl2mba"; 28 + SGr-IosevkaCurly = "1i1vf0sndib8bfbvzfyr4cb98w1jn961gj58g0qsnrgidhsgrwmi"; 29 + SGr-IosevkaCurlySlab = "1danjyxaqs32ln9mq1ns1991d2z9rv64qpvxg2n92j7hmd2ifsay"; 30 + SGr-IosevkaFixed = "1aa5905i8rkndgk0dxn7vxzycg7v9ynf8xwznp1wddqmxhfi6n7r"; 31 + SGr-IosevkaFixedCurly = "1s5c9f0is4bi9hsp7z74k5l5yc1qibvlx4vzhmphlns3ykyb14f9"; 32 + SGr-IosevkaFixedCurlySlab = "1xf8cp3x5al5zc6dn9zf8l5vkcnlmn9g2xk4p244l9d0h3bws7nf"; 33 + SGr-IosevkaFixedSlab = "0wdjyy4dvbbh6m5i1lwc4khrjydwkimw98yisfyn9dm81f9y3scn"; 34 + SGr-IosevkaFixedSS01 = "0rk6mynlyni6jcf35ppw6iki116j0s5n747lsmqssmr127kdygn5"; 35 + SGr-IosevkaFixedSS02 = "0jx6254nyz4c3d0rz19bskxyk0azhqm4qmkph9053r4glysjc2xm"; 36 + SGr-IosevkaFixedSS03 = "0y1vavp6h3s1xggd62ar9zbqvnl6dl9fmw7vv4nl5xd08i4mc8wf"; 37 + SGr-IosevkaFixedSS04 = "1q1g2psx93x8rf3mcwgh6c0gjzmi965c1nrd3hz4a4zk8h1n6981"; 38 + SGr-IosevkaFixedSS05 = "1lbgr8b1904k0i89ad1zkk7xc8ind5hqnjvsg8m88na3wry3gz37"; 39 + SGr-IosevkaFixedSS06 = "09ddjb0y02g9l4brn33li3sssll5g9njnqqi05nzdvjsbc3ls3qq"; 40 + SGr-IosevkaFixedSS07 = "03aivfwh0bf3c8khpjgds6ajdff2h3q7nvn6b5c86wg30wi024r3"; 41 + SGr-IosevkaFixedSS08 = "0skf9nrd3hgxkgjw3rjx5nd3r476jxy083wpzvvvd4ffkjdglcn6"; 42 + SGr-IosevkaFixedSS09 = "13vymxhgms68d56ni8arfl8n53r4nlpcv39khgymp28rq8snqh32"; 43 + SGr-IosevkaFixedSS10 = "1mlwilxy4k936v6ck9gif18cq9xbwv3da9nbqlaq91nhwpwfhvjw"; 44 + SGr-IosevkaFixedSS11 = "0nxgm82w4m58bz7pixbkskvphzcrw3xshnphjb53n1sng7xcdvk4"; 45 + SGr-IosevkaFixedSS12 = "1pghgii73y9r5c960a0dg2hqvfpf45z737i8fjnda1a5msrr8as6"; 46 + SGr-IosevkaFixedSS13 = "0aab838ah1qjcqmp5d7ys8qxjws4pk5zrmhildisfhappcddmzn9"; 47 + SGr-IosevkaFixedSS14 = "0xrz5alr2ll2kq61crlb1jw5c1v80hn4wblj245y96jgj6nckpa4"; 48 + SGr-IosevkaFixedSS15 = "0sr1wv00pb85pdkhj4xjnmzgk84ks8h75bmjhn4sm8bahxbss056"; 49 + SGr-IosevkaFixedSS16 = "0nap7ckvq23gqn5kr6asm7jjb2l6wmf53k30wvwmrwarqc9nlv1h"; 50 + SGr-IosevkaFixedSS17 = "19124ya7j56lxhjmvw4cvqpim4y0j501nkvpnzdlyclbakmg6f6r"; 51 + SGr-IosevkaFixedSS18 = "1f2kgpwflqi2fck1qcfidmq9r10arsp26gycj4dkgb71ddasb020"; 52 + SGr-IosevkaSlab = "1fzvnivlj4f9k8vgwq1bp1bqh92d069qyymrfq2ki9p6if0jvf79"; 53 + SGr-IosevkaSS01 = "0gjbpb7vv4nvvx913kqrkh2l0145l3xlqk589cfa0hdpc5jvc79k"; 54 + SGr-IosevkaSS02 = "05dv0n7ziwyyv9rm8vsz71qki632cggcxb5qdrz51a03jhykxx10"; 55 + SGr-IosevkaSS03 = "16jb0kf933pkvlkvvj8j6av608x8vyb0v3rmd6y67wb47prk6bh9"; 56 + SGr-IosevkaSS04 = "1nyahbag9fkfhv0rw129dcni6iqq8jji7p468rd9diqz05ainlc9"; 57 + SGr-IosevkaSS05 = "0cvqcvvqgq0s8mpk9lpypqglvh69ksfyv57r6dilaf329adfp1sw"; 58 + SGr-IosevkaSS06 = "13y7aw7xwsbx1igmlvmlw25cq742lwgr40r02scpx39i65lk9baz"; 59 + SGr-IosevkaSS07 = "13x8frvbxzzl0rf12n3xpgg66yjrwbavhrb9kix9ngbznahk85qm"; 60 + SGr-IosevkaSS08 = "06gsrb3d17672ci8gwj1wmlj3nm1v2qkgjx3gblsh0ykgqqyxqv7"; 61 + SGr-IosevkaSS09 = "1xy8wsxlcly3xf7swis4pdm4v5vp684lrsy8z8kn7j2f0l7cy82m"; 62 + SGr-IosevkaSS10 = "11bngjjm22lah21xzazn7yfpi433bllwcl3shxpbscm5xcx2hf04"; 63 + SGr-IosevkaSS11 = "1z9vkcld1ywnwcg5am5zl30dsrjmvbi14f6gsihxcalncpwzwyhz"; 64 + SGr-IosevkaSS12 = "05ivbrf0h7h9g64pbz3xy62v5m97fwpib2l3zg3x9s3xln7r93sd"; 65 + SGr-IosevkaSS13 = "0fkv6szha00wlwp1sks0ywdxgzn4y7j1ny5934rllz47s4574vd0"; 66 + SGr-IosevkaSS14 = "1r4yzc304ds056d8cxjjfr5hrbf3a0cxaspw9a1hb1d5mr0409v1"; 67 + SGr-IosevkaSS15 = "0krz2mscxrzv2gl789ssgz09pmnixg6z0pa8jhsgkws67d0y6m60"; 68 + SGr-IosevkaSS16 = "0c20bvzvbrbm1q0nzp5az8jh5zfd5kk4syhpyp0f7fycjzalygxi"; 69 + SGr-IosevkaSS17 = "17a4svm25kzmszm6lz3i1ldyphpd98rn6yc2fys1mfblmg7l0jmj"; 70 + SGr-IosevkaSS18 = "0lsyvqy4z6zp8bc5sq3gg33lwxpa6vfxc2ajlayc8xvcjyf70lza"; 71 + SGr-IosevkaTerm = "023ksvd5d9b6an8vja67b5f2h80gnjmhbab4pqsafm2xrmc6cdpx"; 72 + SGr-IosevkaTermCurly = "0ga2vfhpgv9kwg25vcgddsa2rs8hcidbjcqywd8g9yp3jykdkfhm"; 73 + SGr-IosevkaTermCurlySlab = "1kkks8n0giwid9f5xfq8b00xzvbpgp9416q1rlnyc91cr7bz3x2m"; 74 + SGr-IosevkaTermSlab = "149xqag9sfg5w4cmbagn93mk2088b8r60nal1l4l4dlfm3vnbr61"; 75 + SGr-IosevkaTermSS01 = "151vk6abvlmyygk9dd7f7adf7a6279yi90dh1dagzrpfbwx5955g"; 76 + SGr-IosevkaTermSS02 = "1qa3vp67jwb7ns44i4i0cdakwpi5pvwqw2ij8zp4iw0229hyz2q9"; 77 + SGr-IosevkaTermSS03 = "0mk1bc306mf3j3xh8l7bxa5yq3lida30d5xlbhifks7v1wynh2j5"; 78 + SGr-IosevkaTermSS04 = "0r6msfh14s0kmv9y0hyda8ln5iarv2fd2fs8gkwrpyd64nb0bjdg"; 79 + SGr-IosevkaTermSS05 = "0qkamr3p0li05ifc1rcsrdsiq5imr30g1y36xj2g1ci6g8biilq1"; 80 + SGr-IosevkaTermSS06 = "1gvqqydblfgbb5dm4p6g5rs80669xhic7qz5r5vchg6s1nbyyqq0"; 81 + SGr-IosevkaTermSS07 = "08s2zafv9rjq1wbqh7nb7n5x21zgpzxgvkg7fa8dkhsdjdmw4n85"; 82 + SGr-IosevkaTermSS08 = "0rp7nckqnfpha17ca7fjy6l3fdfbxxnag8czb859akfcfbqbq5h0"; 83 + SGr-IosevkaTermSS09 = "0ry6m079n52xw8im3ifwngzr7ny85rbj5nvvrh5dpnf6mpv878nn"; 84 + SGr-IosevkaTermSS10 = "1l2jyjb2whg75gyzsjk52m9489nqqpd5mg95kmkc77na4brix769"; 85 + SGr-IosevkaTermSS11 = "117nhhi2nzy2k9fjficqy837frkb03fl17s3ncij6b6d0yrd50jj"; 86 + SGr-IosevkaTermSS12 = "1wf1ypnzsxa00akhl5a6c9awdzg7b201ana4im2rii141b85l3d1"; 87 + SGr-IosevkaTermSS13 = "1xsxfpxjmcf0fxw5xp8cairplinjb14y6mrfdvj2zh01xbnjryvr"; 88 + SGr-IosevkaTermSS14 = "0s4q9wnk734xfa06qvlm8689ilvzjaxfbpnmqv8irqwp4s5pdsyl"; 89 + SGr-IosevkaTermSS15 = "0k6sida5ziwq7rn7x6561zcyynki1nlmxp4qwjc20bmym8wi55wf"; 90 + SGr-IosevkaTermSS16 = "1vnqsd44zgx1hzp4zjccph5jh8chv7fnijfxnr9cncslmq03y6yn"; 91 + SGr-IosevkaTermSS17 = "0cx1dh1icc1h3i4al6rlkzbi70xvq1mzywjzl96r2pa9x4fj71gy"; 92 + SGr-IosevkaTermSS18 = "09f9zy9khg4r3qymcki85k26529nn3pgpm4ra5c5zw8bl56yxxhp"; 93 93 }
+1 -1
pkgs/desktops/gnome/extensions/icon-hider/default.nix
··· 26 26 meta = with lib; { 27 27 description = "Icon Hider is a GNOME Shell extension for managing status area items"; 28 28 license = licenses.bsd3; 29 - maintainers = with maintainers; [ jonafato ]; 29 + maintainers = with maintainers; [ ]; 30 30 platforms = gnome-shell.meta.platforms; 31 31 homepage = "https://github.com/ikalnytskyi/gnome-shell-extension-icon-hider"; 32 32 broken = versionAtLeast gnome-shell.version "3.32"; # Doesn't support 3.34
+1 -1
pkgs/desktops/gnome/extensions/no-title-bar/default.nix
··· 31 31 description = "Integrates maximized windows with the top panel"; 32 32 homepage = "https://github.com/poehlerj/no-title-bar"; 33 33 license = licenses.gpl2; 34 - maintainers = with maintainers; [ jonafato svsdep ]; 34 + maintainers = with maintainers; [ svsdep ]; 35 35 platforms = platforms.linux; 36 36 }; 37 37 }
+1 -1
pkgs/desktops/gnome/extensions/taskwhisperer/default.nix
··· 39 39 meta = with lib; { 40 40 description = "GNOME Shell TaskWarrior GUI"; 41 41 license = licenses.gpl3Plus; 42 - maintainers = with maintainers; [ jonafato ]; 42 + maintainers = with maintainers; [ ]; 43 43 homepage = "https://github.com/cinatic/taskwhisperer"; 44 44 }; 45 45 }
+2 -2
pkgs/development/beam-modules/erlfmt/default.nix
··· 2 2 3 3 rebar3Relx rec { 4 4 pname = "erlfmt"; 5 - version = "1.3.0"; 5 + version = "1.5.0"; 6 6 releaseType = "escript"; 7 7 src = fetchFromGitHub { 8 8 owner = "WhatsApp"; 9 9 repo = "erlfmt"; 10 - sha256 = "sha256-fVjEVmCnoofnfcxwBk0HI4adO0M6QOshP3uZrecZ9vM="; 10 + sha256 = "sha256-TtOHcXiXl13KSGarMBdvvDjv1YQJjDVFtDLC0LDz9Bc="; 11 11 rev = "v${version}"; 12 12 }; 13 13 meta = with lib; {
+2 -2
pkgs/development/libraries/libzdb/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec 4 4 { 5 - version = "3.2.3"; 5 + version = "3.4.0"; 6 6 pname = "libzdb"; 7 7 8 8 src = fetchurl 9 9 { 10 10 url = "https://www.tildeslash.com/libzdb/dist/libzdb-${version}.tar.gz"; 11 - sha256 = "sha256-oZV4Jvq3clSE/Ft0eApqfQ2Lf14uVNJuEGs5ngqGvrA="; 11 + sha256 = "sha256-q9Z1cZvL3eQwqk7hOXW5gNVdKry1zCKAgqMDIKa7nw8="; 12 12 }; 13 13 14 14 buildInputs = [ sqlite ];
+2 -2
pkgs/development/libraries/mlt/default.nix
··· 41 41 42 42 stdenv.mkDerivation rec { 43 43 pname = "mlt"; 44 - version = "7.24.0"; 44 + version = "7.26.0"; 45 45 46 46 src = fetchFromGitHub { 47 47 owner = "mltframework"; 48 48 repo = "mlt"; 49 49 rev = "v${version}"; 50 - hash = "sha256-rs02V6+9jMF0S78rCCXcDn3gzghqnOtWEHMo/491JxA="; 50 + hash = "sha256-MC7D7bgguDFZi8Dyip1wAa2zxxkpLupl05xFiDc8Byw="; 51 51 # The submodule contains glaxnimate code, since MLT uses internally some functions defined in glaxnimate. 52 52 # Since glaxnimate is not available as a library upstream, we cannot remove for now this dependency on 53 53 # submodules until upstream exports glaxnimate as a library: https://gitlab.com/mattbas/glaxnimate/-/issues/545
+30
pkgs/development/ocaml-modules/terml/default.nix
··· 1 + { 2 + buildDunePackage, 3 + fetchFromGitHub, 4 + lib, 5 + uutf, 6 + }: 7 + 8 + buildDunePackage rec { 9 + pname = "terml"; 10 + version = "0.0.1"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "wllfaria"; 14 + repo = "terml"; 15 + rev = "${version}"; 16 + hash = "sha256-2ifMfUaYYsCFOACgXgJ5IuoSEicHyIqumLpun2ZqcDc="; 17 + }; 18 + 19 + propagatedBuildInputs = [ uutf ]; 20 + 21 + minimalOCamlVersion = "4.13"; 22 + 23 + meta = { 24 + changelog = "https://github.com/wllfaria/terml/blob/${version}/CHANGES.md"; 25 + description = "Terminal manipulation library in pure Ocaml"; 26 + homepage = "https://github.com/wllfaria/terml"; 27 + license = lib.licenses.mit; 28 + maintainers = [ lib.maintainers.PhilVoel ]; 29 + }; 30 + }
+14 -9
pkgs/development/python-modules/dtlssocket/default.nix
··· 3 3 buildPythonPackage, 4 4 fetchPypi, 5 5 autoconf, 6 - cython_0, 6 + automake, 7 + cython, 8 + pkg-config, 7 9 setuptools, 8 10 }: 9 11 10 12 buildPythonPackage rec { 11 13 pname = "dtlssocket"; 12 - version = "0.1.19"; 13 - 14 - format = "pyproject"; 14 + version = "0.2.2"; 15 + pyproject = true; 15 16 16 17 src = fetchPypi { 17 - pname = "DTLSSocket"; 18 - inherit version; 19 - hash = "sha256-hKwWkQ/K+FTgn2Gs8Pynz/ihuVeO8grqekPPbGK5eDI="; 18 + inherit pname version; 19 + hash = "sha256-TnbXFXJuDEbcCeNdqbZxewY8I4mwbBcj3sw7o4tzh/Q="; 20 20 }; 21 21 22 + build-system = [ 23 + cython 24 + setuptools 25 + ]; 26 + 22 27 nativeBuildInputs = [ 23 28 autoconf 24 - cython_0 25 - setuptools 29 + automake 30 + pkg-config 26 31 ]; 27 32 28 33 # no tests on PyPI, no tags on GitLab
+2 -2
pkgs/development/python-modules/fastcore/default.nix
··· 9 9 10 10 buildPythonPackage rec { 11 11 pname = "fastcore"; 12 - version = "1.7.4"; 12 + version = "1.7.5"; 13 13 pyproject = true; 14 14 15 15 disabled = pythonOlder "3.8"; ··· 18 18 owner = "fastai"; 19 19 repo = "fastcore"; 20 20 rev = "refs/tags/${version}"; 21 - hash = "sha256-pm/8YRefobh7urVWiAlb05COQbaBrXB70buDmuKY/qc="; 21 + hash = "sha256-4u1vjuUANWgJXQ4iG3Md2oIDxlz/6TOcDOYjlnsgqnU="; 22 22 }; 23 23 24 24 build-system = [ setuptools ];
+3
pkgs/development/python-modules/ignite/default.nix
··· 1 1 { 2 2 lib, 3 + stdenv, 3 4 buildPythonPackage, 4 5 fetchFromGitHub, 5 6 pythonOlder, ··· 95 96 changelog = "https://github.com/pytorch/ignite/releases/tag/v${version}"; 96 97 license = lib.licenses.bsd3; 97 98 maintainers = [ lib.maintainers.bcdarwin ]; 99 + # ModuleNotFoundError: No module named 'torch._C._distributed_c10d'; 'torch._C' is not a package 100 + broken = stdenv.isDarwin; 98 101 }; 99 102 }
+2 -2
pkgs/development/python-modules/litellm/default.nix
··· 37 37 38 38 buildPythonPackage rec { 39 39 pname = "litellm"; 40 - version = "1.44.7"; 40 + version = "1.44.22"; 41 41 pyproject = true; 42 42 43 43 disabled = pythonOlder "3.8"; ··· 46 46 owner = "BerriAI"; 47 47 repo = "litellm"; 48 48 rev = "refs/tags/v${version}"; 49 - hash = "sha256-qEO5QWaW3Nd/zKNjZ31e5y5hNc55qZGDYCD66z+ftUk="; 49 + hash = "sha256-0F972vEW6ebbbaJ6c0db3cDtFJIRUN81Gp0OMo0fgqY="; 50 50 }; 51 51 52 52 build-system = [ poetry-core ];
+5 -27
pkgs/development/python-modules/llm/default.nix
··· 88 88 }; 89 89 }; 90 90 91 - withPlugins = 92 - plugins: 93 - buildPythonApplication { 94 - inherit (llm) pname version; 95 - format = "other"; 96 - 97 - disabled = pythonOlder "3.8"; 98 - 99 - dontUnpack = true; 100 - dontBuild = true; 101 - doCheck = false; 102 - 103 - nativeBuildInputs = [ makeWrapper ]; 104 - 105 - installPhase = '' 106 - makeWrapper ${llm}/bin/llm $out/bin/llm \ 107 - --prefix PYTHONPATH : "${llm}/${python.sitePackages}:$PYTHONPATH" 108 - ln -sfv ${llm}/lib $out/lib 109 - ''; 110 - 111 - propagatedBuildInputs = llm.propagatedBuildInputs ++ plugins; 112 - 113 - passthru = llm.passthru // { 114 - withPlugins = morePlugins: withPlugins (morePlugins ++ plugins); 115 - }; 91 + withPlugins = throw '' 92 + llm.withPlugins was confusing to use and has been removed. 93 + Please migrate to using python3.withPackages(ps: [ ps.llm ]) instead. 116 94 117 - inherit (llm) meta; 118 - }; 95 + See https://nixos.org/manual/nixpkgs/stable/#python.withpackages-function for more usage examples. 96 + ''; 119 97 in 120 98 llm
+2 -2
pkgs/development/python-modules/marimo/default.nix
··· 24 24 25 25 buildPythonPackage rec { 26 26 pname = "marimo"; 27 - version = "0.8.11"; 27 + version = "0.8.13"; 28 28 pyproject = true; 29 29 30 30 disabled = pythonOlder "3.8"; 31 31 32 32 src = fetchPypi { 33 33 inherit pname version; 34 - hash = "sha256-JHlzyQS7zleHUF6NW8oQ2fULdGuI+Y+vuWfiUO/YCm8="; 34 + hash = "sha256-x1f71IaFO/LVNmgCS/eKa/Ia/KETToGexLK1FD3gWZM="; 35 35 }; 36 36 37 37 build-system = [ setuptools ];
+2 -2
pkgs/development/python-modules/nextdns/default.nix
··· 15 15 16 16 buildPythonPackage rec { 17 17 pname = "nextdns"; 18 - version = "3.2.0"; 18 + version = "3.3.0"; 19 19 pyproject = true; 20 20 21 21 disabled = pythonOlder "3.11"; ··· 24 24 owner = "bieniu"; 25 25 repo = "nextdns"; 26 26 rev = "refs/tags/${version}"; 27 - hash = "sha256-/gBNJYCkDQ5SeM4q/4rWdsSldrMeo5GdUBaG57NiEIY="; 27 + hash = "sha256-WNdS8sAW7Ci8w8diYIsrVADvpgMSDuM0NLBTw7irzKg="; 28 28 }; 29 29 30 30 build-system = [ setuptools ];
+44
pkgs/development/python-modules/snakemake-storage-plugin-fs/default.nix
··· 1 + { 2 + lib, 3 + buildPythonPackage, 4 + fetchFromGitHub, 5 + poetry-core, 6 + snakemake, 7 + snakemake-interface-storage-plugins, 8 + snakemake-interface-common, 9 + sysrsync, 10 + }: 11 + 12 + buildPythonPackage rec { 13 + pname = "snakemake-storage-plugin-fs"; 14 + version = "1.0.6"; 15 + pyproject = true; 16 + 17 + src = fetchFromGitHub { 18 + owner = "snakemake"; 19 + repo = pname; 20 + rev = "refs/tags/v${version}"; 21 + hash = "sha256-9A2W+V0d9K1Ei4WXqIZfIcOYsWgpGVP7P/ANy8jOGu0="; 22 + }; 23 + 24 + build-system = [ poetry-core ]; 25 + 26 + dependencies = [ 27 + snakemake-interface-storage-plugins 28 + snakemake-interface-common 29 + sysrsync 30 + ]; 31 + 32 + # The current tests are not worth dealing with cyclic dependency on snakemake 33 + doCheck = false; 34 + 35 + # Use nothing due to a cyclic dependency on snakemake 36 + pythonImportsCheck = [ ]; 37 + 38 + meta = with lib; { 39 + description = "A Snakemake storage plugin that reads and writes from a locally mounted filesystem using rsync"; 40 + homepage = "https://github.com/snakemake/snakemake-storage-plugin-fs"; 41 + license = licenses.mit; 42 + maintainers = with maintainers; [ veprbl ]; 43 + }; 44 + }
+45
pkgs/development/python-modules/sysrsync/default.nix
··· 1 + { 2 + lib, 3 + buildPythonPackage, 4 + fetchFromGitHub, 5 + poetry-core, 6 + setuptools, 7 + rsync, 8 + toml, 9 + }: 10 + 11 + buildPythonPackage rec { 12 + pname = "sysrsync"; 13 + version = "1.1.1"; 14 + pyproject = true; 15 + 16 + src = fetchFromGitHub { 17 + owner = "gchamon"; 18 + repo = pname; 19 + rev = "refs/tags/${version}"; 20 + hash = "sha256-2Sz3JrNmIGOnad+qjRzbAgsFEzDtwBT0KLEFyQKZra4="; 21 + }; 22 + 23 + postPatch = '' 24 + substituteInPlace sysrsync/command_maker.py \ 25 + --replace-fail "'rsync'" "'${rsync}/bin/rsync'" 26 + ''; 27 + 28 + build-system = [ 29 + poetry-core 30 + setuptools 31 + ]; 32 + 33 + dependencies = [ 34 + toml 35 + ]; 36 + 37 + pythonImportsCheck = [ "sysrsync" ]; 38 + 39 + meta = with lib; { 40 + description = "Simple and safe system's rsync wrapper for Python"; 41 + homepage = "https://github.com/gchamon/sysrsync"; 42 + license = licenses.mit; 43 + maintainers = with maintainers; [ veprbl ]; 44 + }; 45 + }
+2 -2
pkgs/development/tools/analysis/checkstyle/default.nix
··· 1 1 { lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre }: 2 2 3 3 stdenvNoCC.mkDerivation rec { 4 - version = "10.17.0"; 4 + version = "10.18.1"; 5 5 pname = "checkstyle"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar"; 9 - sha256 = "sha256-UcNNc4UgwTidcZmKmrDm2r4NfPJiFJ8+AacpRJYGLkI="; 9 + sha256 = "sha256-2nOh+jvi6CksU69cidNTVjOOIZTRQttpCOuf+KrILoM="; 10 10 }; 11 11 12 12 nativeBuildInputs = [ makeBinaryWrapper ];
+3 -3
pkgs/development/tools/analysis/stylelint/default.nix
··· 2 2 3 3 buildNpmPackage rec { 4 4 pname = "stylelint"; 5 - version = "16.8.1"; 5 + version = "16.9.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "stylelint"; 9 9 repo = "stylelint"; 10 10 rev = version; 11 - hash = "sha256-LhLA1JxaTtdoXfylaDLiyW2gi0xy2l5Rm3B67+z1Wdc="; 11 + hash = "sha256-yMj6X3VI/CKw1VdRXV+7FVJQ6rdZ4E4v069wJZq3+dg="; 12 12 }; 13 13 14 - npmDepsHash = "sha256-xi6we8XOGaLqwTLrF0Enpx7jQgbHOSItuqzlvvNNBWQ="; 14 + npmDepsHash = "sha256-Ylkx4FPsfEZTy1y2Be0RURHooAev0Z8ew3MJ2wOXjO4="; 15 15 16 16 dontNpmBuild = true; 17 17
+2 -2
pkgs/development/tools/bundletool/default.nix
··· 2 2 3 3 stdenvNoCC.mkDerivation rec { 4 4 pname = "bundletool"; 5 - version = "1.17.0"; 5 + version = "1.17.1"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/google/bundletool/releases/download/${version}/bundletool-all-${version}.jar"; 9 - sha256 = "sha256-VOvuHx3oNn2a0mtGcr+yl2sLEhQuFdaD/HuOJU/GzBs="; 9 + sha256 = "sha256-RYgerRM4iHLYLEJVsZVIi3/DPyysWpqXewr8XpI2dZI="; 10 10 }; 11 11 12 12 dontUnpack = true;
+3 -3
pkgs/development/tools/container2wasm/default.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "container2wasm"; 8 - version = "0.6.4"; 8 + version = "0.6.5"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "ktock"; 12 12 repo = "container2wasm"; 13 13 rev = "refs/tags/v${version}"; 14 - hash = "sha256-/E65h2kyzjtAnh72+zyxXf8OvxlUvXT/M25CPteUamE="; 14 + hash = "sha256-PFgaqzl6uc6vHzcZ9+FpugAOFSBKhxAsoSvmYHxUmLs="; 15 15 }; 16 16 17 - vendorHash = "sha256-/V2n9SpBtJVQwERJhSugvAvIoOGuZNnhaaf8k9hh04k="; 17 + vendorHash = "sha256-j6oqYpFcfZy4Lz4C9wbJGI2RdJsAxQxBqcLNWgKk/UU="; 18 18 19 19 ldflags = [ 20 20 "-s"
+2 -2
pkgs/development/tools/continuous-integration/jenkins/default.nix
··· 4 4 5 5 stdenv.mkDerivation rec { 6 6 pname = "jenkins"; 7 - version = "2.462.1"; 7 + version = "2.462.2"; 8 8 9 9 src = fetchurl { 10 10 url = "https://get.jenkins.io/war-stable/${version}/jenkins.war"; 11 - hash = "sha256-DyHCX9b6+0NfG1TTlTuiCoQl6ZWaNaeoQD6KARksDfw="; 11 + hash = "sha256-DkyU06S9QFdtZ5HBJkzaZuRGjjeSnnxcs+Vs+lCANHQ="; 12 12 }; 13 13 14 14 nativeBuildInputs = [ makeWrapper ];
+2 -2
pkgs/development/tools/djlint/default.nix
··· 5 5 6 6 python3.pkgs.buildPythonApplication rec { 7 7 pname = "djlint"; 8 - version = "1.34.1"; 8 + version = "1.35.2"; 9 9 pyproject = true; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "Riverside-Healthcare"; 13 13 repo = "djlint"; 14 14 rev = "refs/tags/v${version}"; 15 - hash = "sha256-p9RIzX9zoZxBrhiNaIeCX9OgfQm/lXNwYsh6IcsnIVk="; 15 + hash = "sha256-KdIK6SgOQiNc13Nzg6MI38BdkBdEClnMn1RcWvngP+A="; 16 16 }; 17 17 18 18 build-system = with python3.pkgs; [
+2 -2
pkgs/development/tools/doctl/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "doctl"; 5 - version = "1.109.1"; 5 + version = "1.112.0"; 6 6 7 7 vendorHash = null; 8 8 ··· 31 31 owner = "digitalocean"; 32 32 repo = "doctl"; 33 33 rev = "v${version}"; 34 - sha256 = "sha256-K27K79OAQERREu5doQGhy87XV5Fz4uZWctsZj+GiON0="; 34 + sha256 = "sha256-+s5kxP79ZWpJsm6yk26jLGSPJ3GkToPXfl2tX+a1A1U="; 35 35 }; 36 36 37 37 meta = with lib; {
+2 -2
pkgs/development/tools/karate/default.nix
··· 2 2 3 3 stdenvNoCC.mkDerivation rec { 4 4 pname = "karate"; 5 - version = "1.4.1"; 5 + version = "1.5.0"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/karatelabs/karate/releases/download/v${version}/karate-${version}.jar"; 9 - sha256 = "sha256-3gNoXUchrfGkZC6UAfw2TXorzSlqnOZCe0gnuUHIIb4="; 9 + sha256 = "sha256-3uz51dQvyvK7gcmRoUjfszghBaPfVc/SJaKSEWkfgr8="; 10 10 }; 11 11 dontUnpack = true; 12 12
+2 -2
pkgs/development/tools/language-servers/jsonnet-language-server/default.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "jsonnet-language-server"; 8 - version = "0.14.0"; 8 + version = "0.14.1"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "grafana"; 12 12 repo = "jsonnet-language-server"; 13 13 rev = "refs/tags/v${version}"; 14 - hash = "sha256-W9xfbZWM6KK8UTwP0SaeywIlUku0+64vjEyUFJFFS5M="; 14 + hash = "sha256-GR5EjVd1Tje9FLyP0pfNT6hMUGYkfPnsT8M72H713D4="; 15 15 }; 16 16 17 17 vendorHash = "sha256-rh+b089fr+z0YzgvzivzELnSbNDiNczGCRwFrIYR250=";
+2 -2
pkgs/development/tools/misc/terramate/default.nix
··· 6 6 7 7 buildGoModule rec { 8 8 pname = "terramate"; 9 - version = "0.10.0"; 9 + version = "0.10.2"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "terramate-io"; 13 13 repo = "terramate"; 14 14 rev = "v${version}"; 15 - hash = "sha256-SAMtEo84P5sxQ3JFU4evt2ycL1tg2yrLoWipWi4KObE="; 15 + hash = "sha256-z7G0oj6aJRUXVitj9f2hGTLOFPo0LcQyADKvMFsk9t0="; 16 16 }; 17 17 18 18 vendorHash = "sha256-TOntPPtynr333rX0wlb2pIeEwcNzyWP3wFqPoMz6LK0=";
+5
pkgs/development/tools/misc/universal-ctags/default.nix
··· 60 60 patchShebangs misc/* 61 61 ''; 62 62 63 + # some tools like 'zoekt' want an unambiguous binary name, so give it to them 64 + postInstall = '' 65 + ln -s $out/bin/ctags $out/bin/universal-ctags 66 + ''; 67 + 63 68 doCheck = true; 64 69 65 70 checkFlags = [
+2 -2
pkgs/development/tools/summon/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "summon"; 5 - version = "0.10.0"; 5 + version = "0.10.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "cyberark"; 9 9 repo = "summon"; 10 10 rev = "v${version}"; 11 - hash = "sha256-98dgsO/33tJ4hBwCwAdJBJCzWwnpbrSZPbqa5NSNmXM="; 11 + hash = "sha256-Y61lVqsKZiHLJF0X4DIq6U7eRXJ0+6I/dBPwXYb2GmQ="; 12 12 }; 13 13 14 14 vendorHash = "sha256-StcJvUtMfBh7p1sD8ucvHNJ572whRfqz3id6XsFoXtk=";
+2 -2
pkgs/development/tools/twilio-cli/default.nix
··· 2 2 3 3 stdenvNoCC.mkDerivation (finalAttrs: { 4 4 pname = "twilio-cli"; 5 - version = "5.21.1"; 5 + version = "5.22.0"; 6 6 7 7 src = fetchzip { 8 8 url = "https://twilio-cli-prod.s3.amazonaws.com/twilio-v${finalAttrs.version}/twilio-v${finalAttrs.version}.tar.gz"; 9 - hash = "sha256-0hriMtxmqjQrR/gAdOk8RfyPQp2ZYCdyt/sMTUqC1/4="; 9 + hash = "sha256-6VGxfbo/44iOuG5VG1uevgeRrgP0ThyrNts1iR5VLCk="; 10 10 }; 11 11 12 12 buildInputs = [ nodejs-slim ];
+2 -2
pkgs/games/crawl/default.nix
··· 28 28 29 29 stdenv.mkDerivation rec { 30 30 pname = "crawl${lib.optionalString tileMode "-tiles"}"; 31 - version = "0.31.0"; 31 + version = "0.32.0"; 32 32 33 33 src = fetchFromGitHub { 34 34 owner = "crawl"; 35 35 repo = "crawl"; 36 36 rev = version; 37 - hash = "sha256-06tVEduk3Y2VDsoOuI4nGjN8p+wGZT7wEU80nBSg+UU="; 37 + hash = "sha256-OHdFGSvDfpdachdnmvjhsUvuemBXINwls0Id7qwY9sA="; 38 38 }; 39 39 40 40 # Patch hard-coded paths and remove force library builds
+2 -2
pkgs/games/doom-ports/dhewm3/default.nix
··· 3 3 4 4 stdenv.mkDerivation rec { 5 5 pname = "dhewm3"; 6 - version = "1.5.3"; 6 + version = "1.5.4"; 7 7 8 8 src = fetchFromGitHub { 9 9 owner = "dhewm"; 10 10 repo = "dhewm3"; 11 11 rev = version; 12 - sha256 = "sha256-BFVadzN8qhdXTUqFVM7EIqHuW2yx1x+TSWC9+myGfP0="; 12 + sha256 = "sha256-losqnxnjRPOczjrRPyyOxCeg9TNScXLcXADgo9Bxm5k="; 13 13 }; 14 14 15 15 # Add libGLU libGL linking
+2 -2
pkgs/games/gemrb/default.nix
··· 27 27 in 28 28 stdenv.mkDerivation rec { 29 29 pname = "gemrb"; 30 - version = "0.9.2"; 30 + version = "0.9.3"; 31 31 32 32 src = fetchFromGitHub { 33 33 owner = "gemrb"; 34 34 repo = "gemrb"; 35 35 rev = "v${version}"; 36 - hash = "sha256-riea48Jc9zYb19mf5sBunTp5l27PGRFd/B5KdCUWr6Y="; 36 + hash = "sha256-n01Q/27iYXahBbUDFHW1Q3lPqCtTvhstUBgownZbKtg="; 37 37 }; 38 38 39 39 buildInputs = [
+2 -2
pkgs/games/runelite/default.nix
··· 12 12 13 13 maven.buildMavenPackage rec { 14 14 pname = "runelite"; 15 - version = "2.7.1"; 15 + version = "2.7.2"; 16 16 17 17 src = fetchFromGitHub { 18 18 owner = "runelite"; 19 19 repo = "launcher"; 20 20 rev = version; 21 - hash = "sha256-7T9n23qMl4IJQL7yWLXKvRzYcMeXDUwkY8MBFc2t3Rw="; 21 + hash = "sha256-ckeZ/7rACyZ5j+zzC5hv1NaXTi9q/KvOzMPTDd1crHQ="; 22 22 }; 23 23 24 24 mvnJdk = jdk17;
+138 -138
pkgs/games/space-station-14-launcher/deps.nix
··· 2 2 # Please dont edit it manually, your changes might get overwritten! 3 3 4 4 { fetchNuGet }: [ 5 - (fetchNuGet { pname = "Avalonia"; version = "11.0.5"; sha256 = "1l8vpw7dmkgll197i42r98ikkl0g08469wkl1kxkcv8f0allgah6"; }) 6 - (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; }) 7 - (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; sha256 = "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"; }) 8 - (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.5"; sha256 = "0w1909yjg1s1h6zzxbfw1dazvlknpgk9v7d03ik7ihd14lxzr1i2"; }) 9 - (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.5"; sha256 = "14nr767zhxcqwis901sn5s9qala0wf2ip4pic3ncdvkhyhq6w9fs"; }) 10 - (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.5"; sha256 = "1zqp8whkvm95zxhjpwska7rhkbxjfkv2fz3821pn782931pn59ah"; }) 11 - (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.5"; sha256 = "1plr03dgq24gjlcx39qlbcg2ywh7in58yfkkq9snvnagh8yk3ifi"; }) 12 - (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.5"; sha256 = "0sn6c3mqvc62vhy8ssmz515wbcaq418qfrck67zysp2qzw5iyv9v"; }) 13 - (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.5"; sha256 = "1n41g1z36sgvhfl7bdavc3j7ccr3qkbqjc4znimqazzyfifh0m99"; }) 14 - (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "11.0.5"; sha256 = "0dgycvkd53lnvx3g9s1w3yhgjg0hmph63za68issni0g1p48plgj"; }) 15 - (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.5"; sha256 = "0a6a8lbpna3z5bcall7a953r3xjibcl90ic21gimwhipyp29sfn1"; }) 16 - (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.5"; sha256 = "008pqpim91i6mya0nfn3g9gclh0dw5mqmhi2fdalbh62sa8a18xc"; }) 17 - (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.5"; sha256 = "1i6xpihpw32i9mywzzhw0nyc2gkifmri6ylila21y8xb0jdazdyv"; }) 18 - (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.5"; sha256 = "03rbx4msnl8jvw1017wi88rxvgg8iz7idy7wajp3nzk9m0c4pilx"; }) 19 - (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.5"; sha256 = "1bixdr5yzd9spyjc4n2kf1bwg52q3p5akj9xsr25xp310j3kgyxf"; }) 20 - (fetchNuGet { pname = "CodeHollow.FeedReader"; version = "1.2.6"; sha256 = "1ac98diww07cfs3cv142nlwzi9w3n2s5w7m60mkc0rpzg0vpq3mv"; }) 21 - (fetchNuGet { pname = "Dapper"; version = "2.0.123"; sha256 = "15hxrchfgiqnmgf8fqhrf4pb4c8l9igg5qnkw9yk3rkagcqfkk91"; }) 22 - (fetchNuGet { pname = "DynamicData"; version = "7.13.1"; sha256 = "0hy2ba2nkhgp23glkinhfx3v892fkkf4cr9m41daaahnl2r2l8y1"; }) 23 - (fetchNuGet { pname = "Fody"; version = "6.6.4"; sha256 = "1hhdwj0ska7dvak9hki8cnyfmmw5r8yw8w24gzsdwhqx68dnrvsx"; }) 24 - (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; }) 25 - (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; sha256 = "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"; }) 26 - (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; sha256 = "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"; }) 27 - (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.3"; sha256 = "043hv36bg5240znbm8x5la7py17m4jfzy57q3ka32f6zjld83j36"; }) 28 - (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; }) 29 - (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.2.0-eap3"; sha256 = "12fkafmx2h1h4av04lc5d8x4v3vw3pnva5vw872r3w8w6ws85r5k"; }) 30 - (fetchNuGet { pname = "libsodium"; version = "1.0.18.2"; sha256 = "02xd4phd6wfixhdq48ma92c166absqw41vdq5kvjch8p0vc9cdl2"; }) 31 - (fetchNuGet { pname = "Linguini.Bundle"; version = "0.8.1"; sha256 = "1p7nn56yd4v4rx5k3x352vdsbvkvyn9lb1739dj111z3jpmw2aja"; }) 32 - (fetchNuGet { pname = "Linguini.Shared"; version = "0.8.0"; sha256 = "08q0p5wz6lf7ab7m18yj5wvwks10c9v3d83f6262wbvkmnms0w06"; }) 33 - (fetchNuGet { pname = "Linguini.Syntax"; version = "0.8.0"; sha256 = "0gfl8j9kdjxgz0iaxs35y801pxflk50kzlf0qq4z42jmh9swi4y7"; }) 34 - (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; }) 35 - (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; }) 36 - (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; }) 37 - (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; }) 38 - (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; }) 39 - (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; }) 40 - (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; }) 41 - (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "7.0.4"; sha256 = "0mhfj8bj8dlc01y20ihq6j9r59f67cry6yd6qi6rg9zh93m43jpv"; }) 42 - (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "8.0.0"; sha256 = "13y3bilk9rrrgsk9abks7xvpwp12zw150xcyi0diig2hqswys1h4"; }) 43 - (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) 44 - (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; }) 45 - (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; }) 46 - (fetchNuGet { pname = "Microsoft.Toolkit.Mvvm"; version = "7.1.2"; sha256 = "0hrlgjr41hlpp3hb697i0513x2cm4ysbl0wj4bj67md604cmkv14"; }) 47 - (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; }) 48 - (fetchNuGet { pname = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; }) 49 - (fetchNuGet { pname = "NSec.Cryptography"; version = "22.4.0"; sha256 = "0v89wyvl58ia8r74wn3shajs1ia0rgx1p60nlr87g7ys6lq7ql2d"; }) 50 - (fetchNuGet { pname = "ReactiveUI"; version = "18.4.26"; sha256 = "0xhj4vk64smjfw7sr2gqxvradqbgky6jgfryq8q85h1hz10r7xaa"; }) 51 - (fetchNuGet { pname = "ReactiveUI.Fody"; version = "18.4.26"; sha256 = "0i79ajjmibg10cardpq9qh5wy1b4ngvb2v33fr4c5pf1y65xzhmr"; }) 52 - (fetchNuGet { pname = "Robust.Natives"; version = "0.1.1"; sha256 = "1spfaxk8nsx368zncdcj0b3kg7gj7h14mjji19xrraf8ij0dnczw"; }) 53 - (fetchNuGet { pname = "Robust.Natives.Angle"; version = "0.1.1-chromium4758"; sha256 = "0awydljd6psr0w661p9q73pg2aa29lfb4i0arkpszl0ra33mhrah"; }) 54 - (fetchNuGet { pname = "Robust.Natives.Fluidsynth"; version = "0.1.0"; sha256 = "00nkww5sjixs1dmn979niq0hrhplcpabrp18bmpm240wl53ay72x"; }) 55 - (fetchNuGet { pname = "Robust.Natives.Freetype"; version = "0.1.0"; sha256 = "0skrj5bj5vlxvmp8wg8ar8n393w1vv1bs64hwas7svxf2adwgrw2"; }) 56 - (fetchNuGet { pname = "Robust.Natives.Glfw"; version = "0.1.0"; sha256 = "0xfak1d76jmr4ajfzclarna0x1c19xf4c3zfzhjn4vqmkk1znck0"; }) 57 - (fetchNuGet { pname = "Robust.Natives.OpenAL"; version = "0.1.0"; sha256 = "06waksj5rmc50xas4a2nmlj8v01kpwh5k367pcq2yjn0ld22klnx"; }) 58 - (fetchNuGet { pname = "Robust.Natives.Swnfd"; version = "0.1.0"; sha256 = "1ssnl6zasf2cdaffib4pzyfd1w962y1zmcsivyalgpsh6p4g9as1"; }) 59 - (fetchNuGet { pname = "Robust.Shared.AuthLib"; version = "0.1.2"; sha256 = "1vn19d81n8jdyy75ryrlajyxr0kp7pwjdlbyqcn8gcid5plrzmh0"; }) 60 - (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; }) 61 - (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; }) 62 - (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; }) 63 - (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; }) 64 - (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; }) 65 - (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; }) 66 - (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; }) 67 - (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; }) 68 - (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; }) 69 - (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; }) 70 - (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; }) 71 - (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; }) 72 - (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; }) 73 - (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; }) 74 - (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; }) 75 - (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; }) 76 - (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; }) 77 - (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; }) 78 - (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; }) 79 - (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; }) 80 - (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; }) 81 - (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; }) 82 - (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; }) 83 - (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; }) 84 - (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; }) 85 - (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; }) 86 - (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; }) 87 - (fetchNuGet { pname = "Serilog"; version = "2.12.0"; sha256 = "0lqxpc96qcjkv9pr1rln7mi4y7n7jdi4vb36c2fv3845w1vswgr4"; }) 88 - (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "4.1.0"; sha256 = "1rpkphmqfh3bv3m7v1zwz88wz4sirj4xqyff9ga0c6bqhblj6wii"; }) 89 - (fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0"; sha256 = "097rngmgcrdfy7jy8j7dq3xaq2qky8ijwg0ws6bfv5lx0f3vvb0q"; }) 90 - (fetchNuGet { pname = "SharpZstd.Interop"; version = "1.5.2-beta2"; sha256 = "1145jlprsgll8ixwib0i8phc6jsv6nm4yki4wi1bkxx2bgf9yjay"; }) 91 - (fetchNuGet { pname = "SkiaSharp"; version = "2.88.6"; sha256 = "0xs11zjw9ha68maw3l825kfwlrid43qwy0mswljxhpjh0y1k6k6b"; }) 92 - (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.6"; sha256 = "0cg38xgddww1y93xrnbfn40sin63yl39j5zm7gm5pdgp5si0cf2n"; }) 93 - (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.6"; sha256 = "1fp9h8c8k6sbsh48b69dc6461isd4dajq7yw5i7j6fhkas78q4zf"; }) 94 - (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.6"; sha256 = "02wpxwqwknhdhkl00in766samqfzi7r6jmhxs4d047v0fmygv1h8"; }) 95 - (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.6"; sha256 = "1w2mwcwkqvrg4x4ybc4674xnkqwh1n2ihg520gqgpnqfc11ghc4n"; }) 96 - (fetchNuGet { pname = "SpaceWizards.Sodium"; version = "0.2.1"; sha256 = "059slmfg8diivd7hv53cp24vvrzfviqp6fyg8135azynyxk787fp"; }) 97 - (fetchNuGet { pname = "SpaceWizards.Sodium.Interop"; version = "1.0.18-beta4"; sha256 = "1w59i27z2xdvdflfbnq2braas5f4gpkq9m1xcmc1961hm97z1wvn"; }) 98 - (fetchNuGet { pname = "Splat"; version = "14.6.8"; sha256 = "1nj0bsqcr93n8jdyb1all8l35gydlgih67kr7cs1bc12l18fwx2w"; }) 99 - (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.4"; sha256 = "0shdspl9cm71wwqg9103s44r0l01r3sgnpxr523y4a0wlgac50g0"; }) 100 - (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.4"; sha256 = "09akxz92qipr1cj8mk2hw99i0b81wwbwx26gpk21471zh543f8ld"; }) 101 - (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.4"; sha256 = "11l85ksv1ck46j8z08fyf0c3l572zmp9ynb7p5chm5iyrh8xwkkn"; }) 102 - (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.4"; sha256 = "0b8f51nrjkq0pmfzjaqk5rp7r0cp2lbdm2whynj3xsjklppzmn35"; }) 103 - (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }) 104 - (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; }) 105 - (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; }) 106 - (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; }) 107 - (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; }) 108 - (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; }) 109 - (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; }) 110 - (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; }) 111 - (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; }) 112 - (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; }) 113 - (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; }) 114 - (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; }) 115 - (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; }) 116 - (fetchNuGet { pname = "System.Net.Http.WinHttpHandler"; version = "8.0.0"; sha256 = "0lqg9zfqcz18r34sgz7x50dsxbikh0lp8pdkb1y3m55gslmbj8n1"; }) 117 - (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; }) 118 - (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; }) 119 - (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; }) 120 - (fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; }) 121 - (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; }) 122 - (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; }) 123 - (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; }) 124 - (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; }) 125 - (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }) 126 - (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; }) 127 - (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) 128 - (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; }) 129 - (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; }) 130 - (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; }) 131 - (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; }) 132 - (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }) 133 - (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; }) 134 - (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; }) 135 - (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }) 136 - (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; }) 137 - (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; }) 138 - (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) 139 - (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; }) 140 - (fetchNuGet { pname = "TerraFX.Interop.Windows"; version = "10.0.22621.1"; sha256 = "0qbiaczssgd28f1kb1zz1g0fqsizv36qr2lbjmdrd1lfsyp2a2nj"; }) 141 - (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; sha256 = "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"; }) 142 - (fetchNuGet { pname = "YamlDotNet"; version = "13.0.2"; sha256 = "031pvc6idvjyrn1bfdn8zaljrndp5ch7fkcn82f06332gqs3n8k8"; }) 5 + (fetchNuGet { pname = "Avalonia"; version = "11.0.5"; hash = "sha256-BqpHqQIObTb7DHTyZAgCD9A5I0pZkHhSoPTN2g6/G9E="; }) 6 + (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; hash = "sha256-TWop9cvak6cMv2vrA/GlpuYBxS8Fuj5UmupGIV7Q5Ks="; }) 7 + (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; hash = "sha256-WPHRMNowRnYSCh88DWNBCltWsLPyOfzXGzBqLYE7tRY="; }) 8 + (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.5"; hash = "sha256-Iob8OyWhwXhmHKCdnea7dtL9VQvcrf6/gUGHJ30CKXA="; }) 9 + (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.5"; hash = "sha256-2iVuMPRw7sbsYPGSG4XjQFGFky5WB5B05Jh1+I852ZI="; }) 10 + (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.5"; hash = "sha256-UKVibxhJoGNvEGh8J/Z0sq8J81FT8yth/yXVPSFHF/8="; }) 11 + (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.5"; hash = "sha256-0cUxPYJP2W11wnM6j4qNB3IvHlsUp9EZlY8I/NoAmd4="; }) 12 + (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.5"; hash = "sha256-O20fC/9YXO3/MZNlh1EgWLHFSyi/ao083MKwjetgxmo="; }) 13 + (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.5"; hash = "sha256-KVUAXXT+f4VrtJ8widfEIzN25GBbtXWog/tpM354gdg="; }) 14 + (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "11.0.5"; hash = "sha256-8tGLyA0PRKt1REb9YeCtEDz5oB886PRG35aO0uZm/jU="; }) 15 + (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.5"; hash = "sha256-wTqdxPU3Ql7jC4JFkChbUfaRR0nqUKrYKn8oexdFyig="; }) 16 + (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.5"; hash = "sha256-rKOgkNLCwEVVcyLCimvhDUDKXnrDOguUryaGVOPFFwE="; }) 17 + (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.5"; hash = "sha256-27evmgSrIx+EopF6E3N1cT7BvAUc/s99TVEMfmG83cQ="; }) 18 + (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.5"; hash = "sha256-ncZLGKhpfjuuVPz4Fs+P6L3dM0KRnwAC3xJRqyvpKw8="; }) 19 + (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.5"; hash = "sha256-rvs3hwRh3F5E1j3JqcodWJTHV3BTWMKkvzq170tuPa4="; }) 20 + (fetchNuGet { pname = "CodeHollow.FeedReader"; version = "1.2.6"; hash = "sha256-uw58N3j/ZsBmBaYeXrSwg6f4ObWChM2GduwAzmNDiak="; }) 21 + (fetchNuGet { pname = "Dapper"; version = "2.0.123"; hash = "sha256-Ic3pMHtq5jF94tPi8l5MFDGyLnEZYofcqxbH5yDLHZY="; }) 22 + (fetchNuGet { pname = "DynamicData"; version = "7.13.1"; hash = "sha256-wSMqsqAWKqVaIDVlRtycTiS0R3fQxknfEPfBaYVawkM="; }) 23 + (fetchNuGet { pname = "Fody"; version = "6.6.4"; hash = "sha256-Xe9sGzIdQ970f0RwxD3KhdfqvGUoTpim2u2oqYHkDcI="; }) 24 + (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; hash = "sha256-4tbdgUabPjlkBm3aUFeocj4Fdslmms2olDFpzOLyqoQ="; }) 25 + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; hash = "sha256-3xwVfNfKTkuLdnT+e3bfG9tNTdEmar7ByzY+NTlUKLg="; }) 26 + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; hash = "sha256-ZohUEaovj/sRB4rjuJIOq6S9eim3m+qMlpHIebNDTRQ="; }) 27 + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.3"; hash = "sha256-ZsiBGpXfODHUHPgU/50k9QR/j6Klo7rsB0SUt8zYcBA="; }) 28 + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; hash = "sha256-5GSzM5IUoOwK+zJg0d74WlT3n1VZly8pKlyjiqVocCI="; }) 29 + (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.2.0-eap3"; hash = "sha256-s+SCNDcc8ZHFQXwXte0dfI9NOmqFUQK2IjBA0atT04k="; }) 30 + (fetchNuGet { pname = "libsodium"; version = "1.0.18.2"; hash = "sha256-gjaW2AYXQSb3LLjtQDjWSxkTmEiqIoIb7NFx0+AlrQs="; }) 31 + (fetchNuGet { pname = "Linguini.Bundle"; version = "0.8.1"; hash = "sha256-SirB65XjhxBkS+OERZP1e+6l2xZl9DFLz2ST5k2x9tw="; }) 32 + (fetchNuGet { pname = "Linguini.Shared"; version = "0.8.0"; hash = "sha256-BnCgq61zLy6MMG6gNnZiIOjJNy/So1DPUsdR83m5ACM="; }) 33 + (fetchNuGet { pname = "Linguini.Syntax"; version = "0.8.0"; hash = "sha256-x5PIdYJVCvIJxsDRP0GZ1PUbAPJl6K4i+K/LNpNE1D0="; }) 34 + (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; hash = "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="; }) 35 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; hash = "sha256-KDbCfsBWSJ5ohEXUKp1s1LX9xA2NPvXE/xVzj68EdC0="; }) 36 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; hash = "sha256-3G9vSc/gHH7FWgOySLTut1+eEaf3H66qcPOvNPLOx4o="; }) 37 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; hash = "sha256-i/r3V/No/VzqmJlWxpGoirvlbJDbBPa/ONZtzYrxuc4="; }) 38 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; hash = "sha256-fA9Qu+vTyMZ9REzxJ4aMg/SHCDRk4q9k4ZGUdynoHnA="; }) 39 + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; hash = "sha256-866jMHp8kbc1FYpKuUWnd7ViU6kGJTAxPcL/IjXrT0I="; }) 40 + (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; hash = "sha256-a3dAiPaVuky0wpcHmpTVtAQJNGZ2v91/oArA+dpJgj8="; }) 41 + (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "7.0.4"; hash = "sha256-+8pB6kjwp5dNxKZ54zM7xqWSkzQYRiB8AIw2JBeSDlY="; }) 42 + (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "8.0.0"; hash = "sha256-BAbtucZQvBgbiJ51UAL/Ilx+dz96LpWmfjnnNGlcw48="; }) 43 + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; hash = "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="; }) 44 + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; hash = "sha256-gYQQO7zsqG+OtN4ywYQyfsiggS2zmxw4+cPXlK+FB5Q="; }) 45 + (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; hash = "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="; }) 46 + (fetchNuGet { pname = "Microsoft.Toolkit.Mvvm"; version = "7.1.2"; hash = "sha256-JOxZGQGm1WPkIpIDurQnlYk+QgHxJLPguJfCQLJ8NEM="; }) 47 + (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; hash = "sha256-N9EVZbl5w1VnMywGXyaVWzT9lh84iaJ3aD48hIBk1zA="; }) 48 + (fetchNuGet { pname = "Mono.Posix.NETStandard"; version = "1.0.0"; hash = "sha256-/F61k7MY/fu2FcfW7CkyjuUroKwlYAXPQFVeDs1QknY="; }) 49 + (fetchNuGet { pname = "NSec.Cryptography"; version = "22.4.0"; hash = "sha256-TVB8MDXan3dQphaYG/rLQMWgpYJ6WE5ORiqiQrfnCW0="; }) 50 + (fetchNuGet { pname = "ReactiveUI"; version = "18.4.26"; hash = "sha256-SvWTQfgwwIIwwj67J42fb+Gm8u74iawPd7JqYuYmEnY="; }) 51 + (fetchNuGet { pname = "ReactiveUI.Fody"; version = "18.4.26"; hash = "sha256-ucLfi/HB3cJIdmNssfazZAXPC8QJ35YVA+GtWKVU6UQ="; }) 52 + (fetchNuGet { pname = "Robust.Natives"; version = "0.1.1"; hash = "sha256-/DPbgIzIqZx7ClHKSgI88p03xwKSNWY/MqNri2ZX7uo="; }) 53 + (fetchNuGet { pname = "Robust.Natives.Angle"; version = "0.1.1-chromium4758"; hash = "sha256-UGVYx1AZ0K/vzApEshxNQinx7jg43WAMB1lf0yRtnis="; }) 54 + (fetchNuGet { pname = "Robust.Natives.Fluidsynth"; version = "0.1.0"; hash = "sha256-XRyvRqEcEFFvXSjcvNRl9MIMAY42nWRrC7pHqQvn0wI="; }) 55 + (fetchNuGet { pname = "Robust.Natives.Freetype"; version = "0.1.0"; hash = "sha256-gufHmxKub3204pAYvcLegY80LMoKPY5u3Z3uIleReWo="; }) 56 + (fetchNuGet { pname = "Robust.Natives.Glfw"; version = "0.1.0"; hash = "sha256-YDL7w5wVb2Il/O4PRlxPgYUOlM2Ksu+kIrlKc1qYynU="; }) 57 + (fetchNuGet { pname = "Robust.Natives.OpenAL"; version = "0.1.0"; hash = "sha256-3dIpRKPASi8wu8eMWSC/M4CNJK1WKKJVB4XVXKSeihs="; }) 58 + (fetchNuGet { pname = "Robust.Natives.Swnfd"; version = "0.1.0"; hash = "sha256-Qav0yDVQ30eV31Gz+oMXJvHQnP+XrOicakw4rb6hVus="; }) 59 + (fetchNuGet { pname = "Robust.Shared.AuthLib"; version = "0.1.2"; hash = "sha256-ANaf6S0tsocsw37RJvk9d4LcvVQ0+1yO900iG1BLwe4="; }) 60 + (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; hash = "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="; }) 61 + (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; hash = "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU="; }) 62 + (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; hash = "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE="; }) 63 + (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; hash = "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk="; }) 64 + (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; hash = "sha256-Y2AnhOcJwJVYv7Rp6Jz6ma0fpITFqJW+8rsw106K2X8="; }) 65 + (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; hash = "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ="; }) 66 + (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; hash = "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4="; }) 67 + (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; hash = "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM="; }) 68 + (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; hash = "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4="; }) 69 + (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; hash = "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA="; }) 70 + (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; hash = "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs="; }) 71 + (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; hash = "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4="; }) 72 + (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps="; }) 73 + (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I="; }) 74 + (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA="; }) 75 + (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; hash = "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y="; }) 76 + (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I="; }) 77 + (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM="; }) 78 + (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4="; }) 79 + (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0="; }) 80 + (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4="; }) 81 + (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g="; }) 82 + (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc="; }) 83 + (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw="; }) 84 + (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; hash = "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI="; }) 85 + (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; hash = "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs="; }) 86 + (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; hash = "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4="; }) 87 + (fetchNuGet { pname = "Serilog"; version = "2.12.0"; hash = "sha256-JD+ud+CFoLGdYGasTWKTxx5PYj2W5pBv2lMybBK7HVM="; }) 88 + (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "4.1.0"; hash = "sha256-MXIj6YJ4GQbUS8553InMUZPPEfr8h33q2GtAhyu88+Y="; }) 89 + (fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0"; hash = "sha256-GKy9hwOdlu2W0Rw8LiPyEwus+sDtSOTl8a5l9uqz+SQ="; }) 90 + (fetchNuGet { pname = "SharpZstd.Interop"; version = "1.5.2-beta2"; hash = "sha256-Xkmf3Fui97lC5CROT6o1W0vD4EURrMh7RJQ+nS+VhYQ="; }) 91 + (fetchNuGet { pname = "SkiaSharp"; version = "2.88.6"; hash = "sha256-y0wzgwdQXtgl5boCz/EgLWbK3SwC0cFVRUbBxOUPQXc="; }) 92 + (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.6"; hash = "sha256-VjgGoi73tVvqO/UXmQb1w9ioAbFu2dxH8oHz1l5H4zE="; }) 93 + (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.6"; hash = "sha256-7hOMjlYTOiNPLNwfLFUjTcdgiGEtmYUI1EubiRiC6bo="; }) 94 + (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.6"; hash = "sha256-CIb9fHVgHwIa0R1WafKJ3+GqtDHHRgDohA3ayTHvlws="; }) 95 + (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.6"; hash = "sha256-ljD4QmAO2/vwA6I8GIUNkONpOzmGsOVJJy9vPDnjVfA="; }) 96 + (fetchNuGet { pname = "SpaceWizards.Sodium"; version = "0.2.1"; hash = "sha256-1x10ZvfWf1VGQM87c3Hc7ue9ibhslA1P2zE29FylOhU="; }) 97 + (fetchNuGet { pname = "SpaceWizards.Sodium.Interop"; version = "1.0.18-beta4"; hash = "sha256-dvPwT6owmBRYZT3UhOd9xBWtVF4C2+Woa7t18Y+IqfA="; }) 98 + (fetchNuGet { pname = "Splat"; version = "14.6.8"; hash = "sha256-XHTuUKAisBU0O3keA+Ojzb8yKKJUheWbRHakzLBeQNo="; }) 99 + (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.4"; hash = "sha256-4IHC1KMcKOKHKLlf+/TIAVCQCdEDhPQw5+FUlujVDWo="; }) 100 + (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.4"; hash = "sha256-jSI3SIE/HBLEvM+IzhfnAS0QU+JQzIokC/lGLNLvUyU="; }) 101 + (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.4"; hash = "sha256-dk7eEcw+lgpZuWdZn2794hQ6GHDeIfCRNGSysPUsiIY="; }) 102 + (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.4"; hash = "sha256-Zdj676VT6j6k9ZCL2hYVl4F8bi4TK/ldvQBPmW0oDi0="; }) 103 + (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; hash = "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc="; }) 104 + (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; hash = "sha256-GdwSIjLMM0uVfE56VUSLVNgpW0B//oCeSFj8/hSlbM8="; }) 105 + (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; hash = "sha256-15yE2NoT9vmL9oGCaxHClQR1jLW1j1ef5hHMg55xRso="; }) 106 + (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; hash = "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM="; }) 107 + (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; hash = "sha256-/9EaAbEeOjELRSMZaImS1O8FmUe8j4WuFUw1VOrPyAo="; }) 108 + (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; hash = "sha256-k75gjOYimIQtLBD5NDzwwi3ZMUBPRW3jmc3evDMMJbU="; }) 109 + (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; hash = "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="; }) 110 + (fetchNuGet { pname = "System.IO"; version = "4.3.0"; hash = "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="; }) 111 + (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; hash = "sha256-xfjF4UqTMJpf8KsBWUyJlJkzPTOO/H5MW023yTYNQSA="; }) 112 + (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; hash = "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A="; }) 113 + (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; hash = "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8="; }) 114 + (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; hash = "sha256-Cvl7RbRbRu9qKzeRBWjavUkseT2jhZBUWV1SPipUWFk="; }) 115 + (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; hash = "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E="; }) 116 + (fetchNuGet { pname = "System.Net.Http.WinHttpHandler"; version = "8.0.0"; hash = "sha256-wSK5KtWvlDp8WLNddCmAM66uGyj9/KfJyCh8ht1PD1M="; }) 117 + (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; hash = "sha256-qdSTIFgf2htPS+YhLGjAGiLN8igCYJnCCo6r78+Q+c8="; }) 118 + (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; hash = "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q="; }) 119 + (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; hash = "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM="; }) 120 + (fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; hash = "sha256-M5Z8pw8rVb8ilbnTdaOptzk5VFd5DlKa7zzCpuytTtE="; }) 121 + (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; hash = "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY="; }) 122 + (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; hash = "sha256-5LhkDmhy2FkSxulXR+bsTtMzdU3VyyuZzsxp7/DwyIU="; }) 123 + (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; hash = "sha256-mKRknEHNls4gkRwrEgi39B+vSaAz/Gt3IALtS98xNnA="; }) 124 + (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; hash = "sha256-rKx4a9yZKcajloSZHr4CKTVJ6Vjh95ni+zszPxWjh2I="; }) 125 + (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; hash = "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk="; }) 126 + (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; hash = "sha256-Wo+MiqhcP9dQ6NuFGrQTw6hpbJORFwp+TBNTq2yhGp8="; }) 127 + (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; hash = "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM="; }) 128 + (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; hash = "sha256-4U4/XNQAnddgQIHIJq3P2T80hN0oPdU2uCeghsDTWng="; }) 129 + (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; hash = "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo="; }) 130 + (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; hash = "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="; }) 131 + (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; hash = "sha256-UvyoDV8O0oY3HPG1GbA56YVdvwTGEfjYR5gW1O7IK4U="; }) 132 + (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; hash = "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o="; }) 133 + (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; hash = "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms="; }) 134 + (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; hash = "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="; }) 135 + (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; hash = "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg="; }) 136 + (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; hash = "sha256-PIhkv59IXjyiuefdhKxS9hQfEwO9YWRuNudpo53HQfw="; }) 137 + (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; hash = "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="; }) 138 + (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; hash = "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="; }) 139 + (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; hash = "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="; }) 140 + (fetchNuGet { pname = "TerraFX.Interop.Windows"; version = "10.0.22621.1"; hash = "sha256-0golrteOhpZblYuKjM3YP2rswAv/hzWDQ6I9rT9TcWE="; }) 141 + (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; hash = "sha256-4gk2vXDjKFaBh82gTkwg3c/5GRjiH+bvM5elfDSbKTU="; }) 142 + (fetchNuGet { pname = "YamlDotNet"; version = "13.0.2"; hash = "sha256-aCI7NH5iDAOcQJZNdyArt9ksqfrINreCzV7uFg3bNww="; }) 143 143 ]
+2 -2
pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
··· 23 23 , gdk-pixbuf 24 24 }: 25 25 let 26 - version = "0.28.0"; 26 + version = "0.28.1"; 27 27 pname = "space-station-14-launcher"; 28 28 in 29 29 buildDotnetModule rec { ··· 36 36 owner = "space-wizards"; 37 37 repo = "SS14.Launcher"; 38 38 rev = "v${version}"; 39 - hash = "sha256-mBFTXwnxijXAP6i7DNQ/3bujualysCGjDDjmhe15s4I="; 39 + hash = "sha256-5g/twJgQ7i6yQBYP7U6bn1UMU09WkJeolgCl+0pGT2Y="; 40 40 fetchSubmodules = true; 41 41 }; 42 42
+2 -2
pkgs/games/steam/fhsenv.nix
··· 60 60 # bootstrap.tar.xz has 444 permissions, which means that simple deletes fail 61 61 # and steam will not be able to start 62 62 fixBootstrap = '' 63 - if [ -r $HOME/.local/share/Steam/bootstrap.tar.xz ]; then 64 - chmod +w $HOME/.local/share/Steam/bootstrap.tar.xz 63 + if [ -r $HOME/.steam/steam/bootstrap.tar.xz ]; then 64 + chmod +w $HOME/.steam/steam/bootstrap.tar.xz 65 65 fi 66 66 ''; 67 67
+2 -2
pkgs/games/ultrastardx/default.nix
··· 30 30 31 31 in stdenv.mkDerivation rec { 32 32 pname = "ultrastardx"; 33 - version = "2024.5.1"; 33 + version = "2024.8.0"; 34 34 35 35 src = fetchFromGitHub { 36 36 owner = "UltraStar-Deluxe"; 37 37 repo = "USDX"; 38 38 rev = "v${version}"; 39 - hash = "sha256-HtvKy3uQwIO2BiLUqIcv9crf9Ngq0dmYOm6E8Gm2EHs="; 39 + hash = "sha256-eji8lMrZbKAMYTqUk9d8tBIKkH083fbh4s01M0mPLpM="; 40 40 }; 41 41 42 42 nativeBuildInputs = [ pkg-config autoreconfHook ];
+2 -2
pkgs/games/vassal/default.nix
··· 9 9 10 10 stdenv.mkDerivation rec { 11 11 pname = "VASSAL"; 12 - version = "3.7.12"; 12 + version = "3.7.14"; 13 13 14 14 src = fetchzip { 15 15 url = "https://github.com/vassalengine/vassal/releases/download/${version}/${pname}-${version}-linux.tar.bz2"; 16 - sha256 = "sha256-pNpDaGx/h3W+AsX965zu3zZ94kMYvh1pV8C8qYN0imc="; 16 + sha256 = "sha256-3P3f6X2c5lF1AizEs9z59MhLy0Ntg203rkPAkv+SBtw="; 17 17 }; 18 18 19 19 buildInputs = [
+2 -2
pkgs/misc/lilypond/unstable.nix
··· 1 1 { lib, fetchurl, lilypond }: 2 2 3 3 lilypond.overrideAttrs (oldAttrs: rec { 4 - version = "2.25.17"; 4 + version = "2.25.19"; 5 5 src = fetchurl { 6 6 url = "https://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz"; 7 - hash = "sha256-AVGd/H2+lQxUYyXGB2dOBU4rpqR5LSkn3ishu5uqDYs="; 7 + hash = "sha256-gGG4ObmY9PcO0JIKxAagquHS74Elc49SZ/8FDwFfZDU="; 8 8 }; 9 9 10 10 passthru.updateScript = {
+2 -2
pkgs/os-specific/linux/xsos/default.nix
··· 24 24 25 25 stdenv.mkDerivation rec { 26 26 pname = "xsos"; 27 - version = "0.7.19"; 27 + version = "0.7.33"; 28 28 29 29 src = fetchFromGitHub { 30 30 owner = "ryran"; 31 31 repo = "xsos"; 32 32 rev = "v${version}"; 33 - sha256 = "11cc8z3pz4gl0mwl2fc701mn4cgx50fybygx0rvs9bhvb0jnphay"; 33 + sha256 = "sha256-VEOY422/+4veMlN9HOtPB/THDiFLNnRfbUJpKjc/cqE="; 34 34 }; 35 35 36 36 nativeBuildInputs = [ makeWrapper installShellFiles ];
+3 -3
pkgs/servers/go-libp2p-daemon/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "go-libp2p-daemon"; 5 - version = "0.9.0"; 5 + version = "0.9.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "libp2p"; 9 9 repo = "go-libp2p-daemon"; 10 10 rev = "v${version}"; 11 - hash = "sha256-1ZmtUrk5BO5tl5Brcyz6NCD9vdf5XXtbmophXVX05Tk="; 11 + hash = "sha256-N/5V03HQTr7dIvMpIVRlIhEaV2f+aDF36esWMjT96HA="; 12 12 }; 13 13 14 - vendorHash = "sha256-jT3t7m8wPKejbjCvQzx+PIAl9NYk0rAl6edywvR1FaE="; 14 + vendorHash = "sha256-WOk06En90ys0pe5OZwhXCJJwry77t13eWg131fnQvpw="; 15 15 16 16 doCheck = false; 17 17
+2 -2
pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
··· 4 4 }: 5 5 buildGoModule rec { 6 6 pname = "buildkite-agent-metrics"; 7 - version = "5.9.7"; 7 + version = "5.9.8"; 8 8 9 9 outputs = [ "out" "lambda" ]; 10 10 ··· 12 12 owner = "buildkite"; 13 13 repo = "buildkite-agent-metrics"; 14 14 rev = "v${version}"; 15 - hash = "sha256-HHTPgrMNxaX2fbkf7oasrEopXg6ocMSwdymeNAIrckg="; 15 + hash = "sha256-0WcjmX3SXRfx6ged2lfNTZBWfICYVtXznR+7J/ASAFQ="; 16 16 }; 17 17 18 18 vendorHash = "sha256-i2+nefRE4BD93rG842oZj0/coamYVRMPxEHio80bdWk=";
+2 -2
pkgs/servers/nosql/neo4j/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "neo4j"; 5 - version = "5.21.0"; 5 + version = "5.22.0"; 6 6 7 7 src = fetchurl { 8 8 url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz"; 9 - hash = "sha256-NFGoUqmG8VArQqx0p8qDUgvbtRnYbk1MYPSQ5CUFexg="; 9 + hash = "sha256-gK5iNkGjs1Pjsryl5Jy28Nu3nYnVEoUMdRw1ahN4xEQ="; 10 10 }; 11 11 12 12 nativeBuildInputs = [ makeWrapper ];
+3 -3
pkgs/servers/search/weaviate/default.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "weaviate"; 8 - version = "1.25.9"; 8 + version = "1.26.4"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "weaviate"; 12 12 repo = "weaviate"; 13 13 rev = "v${version}"; 14 - hash = "sha256-liy3mw0+KJsac7AH1PEU6vk+MLo+ybEVCBeSU7MkoY0="; 14 + hash = "sha256-JnzQ+B5zxbKZQ/jzOsD7r58f+TaCivN4BTJyNImi9xE="; 15 15 }; 16 16 17 - vendorHash = "sha256-5kfXX+VqGY2ka/w79sdtVHS/0XlF7DyHcq5hvFFIHK0="; 17 + vendorHash = "sha256-QwB97LNUFK8yuKK8JSy1uH2hu+8ZAlvc+9VlTIld83U="; 18 18 19 19 subPackages = [ "cmd/weaviate-server" ]; 20 20
+2 -2
pkgs/servers/sickbeard/sickgear.nix
··· 4 4 pythonEnv = python3.withPackages(ps: with ps; [ cheetah3 lxml ]); 5 5 in stdenv.mkDerivation rec { 6 6 pname = "sickgear"; 7 - version = "3.32.3"; 7 + version = "3.32.7"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = "SickGear"; 11 11 repo = "SickGear"; 12 12 rev = "release_${version}"; 13 - hash = "sha256-Qqemee13V5+k56Q4hPOKjRsw6pmfALGRcKi4gHBj6eI="; 13 + hash = "sha256-7kVT/aBL9EAx7oGeXEY9eL72dZGtuJUGlQ7bPyt/JZg="; 14 14 }; 15 15 16 16 patches = [
+2 -2
pkgs/servers/sql/mssql/jdbc/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "mssql-jdbc"; 5 - version = "12.8.0"; 5 + version = "12.8.1"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/Microsoft/mssql-jdbc/releases/download/v${version}/mssql-jdbc-${version}.jre8.jar"; 9 - sha256 = "sha256-mzSPFlv6MUtKNzZvRBy2khEa2YUEiH4xMR0EYXk3AHY="; 9 + sha256 = "sha256-RPIXsdZ9IkQgAu4tHEq46GNYYGp4e5XutTAfI1SCoqs="; 10 10 }; 11 11 12 12 dontUnpack = true;
+3 -3
pkgs/servers/sql/rqlite/default.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "rqlite"; 8 - version = "8.28.0"; 8 + version = "8.30.0"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "rqlite"; 12 12 repo = pname; 13 13 rev = "v${version}"; 14 - sha256 = "sha256-FhoD88j+uG1AvZ4ce1hwHCFH0cxvlsljf2iv7zAiXLQ="; 14 + sha256 = "sha256-Q0Gt75SUhyezqikhBoDeLY4fw6utkhe1lJHsmBRFNWY="; 15 15 }; 16 16 17 - vendorHash = "sha256-WQSdRPU8T02HdKTivLrvdd81XMhqFms0SA0zohicsjA="; 17 + vendorHash = "sha256-waAhhbg02xyWRtj+hvzN9M0DLzz2NlkCmhmOLd3O2Sc="; 18 18 19 19 subPackages = [ "cmd/rqlite" "cmd/rqlited" "cmd/rqbench" ]; 20 20
+2 -2
pkgs/tools/games/steam-rom-manager/default.nix
··· 2 2 3 3 appimageTools.wrapType2 rec { 4 4 name = "steam-rom-manager"; 5 - version = "2.5.17"; 5 + version = "2.5.22"; 6 6 7 7 src = fetchurl { 8 8 url = "https://github.com/SteamGridDB/steam-rom-manager/releases/download/v${version}/Steam-ROM-Manager-${version}.AppImage"; 9 - sha256 = "sha256-2b9gL9gkQdTf+EBgjb+KFRJZjqNW/xeDusDJM1AO2U4="; 9 + sha256 = "sha256-XC4earHVsDioQRJIrAFl5a+UFHjS7U5zt2PqfDxEg9s="; 10 10 }; 11 11 12 12 extraInstallCommands = let
+2 -2
pkgs/tools/misc/convimg/default.nix
··· 4 4 5 5 stdenv.mkDerivation rec { 6 6 pname = "convimg"; 7 - version = "9.3"; 7 + version = "9.4"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = "mateoconlechuga"; 11 11 repo = pname; 12 12 rev = "v${version}"; 13 - hash = "sha256-xnfMHlbQ7XG/mvnWoGkRHhxIK2u7kWJTVnLxd9c5oNU="; 13 + hash = "sha256-5insJ391Usef8GF3Yh74PEqE534zitQg9udFRPcz69g="; 14 14 fetchSubmodules = true; 15 15 }; 16 16
+3 -3
pkgs/tools/misc/easeprobe/default.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "easeprobe"; 8 - version = "2.1.1"; 8 + version = "2.2.1"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "megaease"; 12 12 repo = pname; 13 13 rev = "v${version}"; 14 - sha256 = "sha256-vdbzDwFpCYVgH9T8e62+1hnMyWsWrT7e6WPaAlBc2H0="; 14 + sha256 = "sha256-XPbRtW3UIc6N1D1LKDYxgTHGVmiGDnam+r5Eg4uBa7w="; 15 15 }; 16 16 17 - vendorHash = "sha256-ZB6q8XvDVSF5/kx2Avq0PYBkYqSoMD6YHhuXRrotFgk="; 17 + vendorHash = "sha256-2iQJiRKt4/mBwwkjhohA1LeOfRart8WQT1bOIFuHbtA="; 18 18 19 19 subPackages = [ "cmd/easeprobe" ]; 20 20
+2 -2
pkgs/tools/misc/grizzly/default.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "grizzly"; 8 - version = "0.4.3"; 8 + version = "0.4.5"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "grafana"; 12 12 repo = pname; 13 13 rev = "v${version}"; 14 - hash = "sha256-f60zAE94jdJaGjn+SoO1qs3SgWRpK9pdbirRrsKKBJQ="; 14 + hash = "sha256-cHPF+WHiUU0Cd30mEe+vMbkoG2mh2jMwlKhd851woH0="; 15 15 }; 16 16 17 17 vendorHash = "sha256-lioFmaFzqaxN1wnYJaoHA54to1xGZjaLGaqAFIfTaTs=";
+2 -2
pkgs/tools/misc/instaloader/default.nix
··· 9 9 10 10 buildPythonPackage rec { 11 11 pname = "instaloader"; 12 - version = "4.13"; 12 + version = "4.13.1"; 13 13 format = "pyproject"; 14 14 15 15 disabled = pythonOlder "3.6"; ··· 18 18 owner = "instaloader"; 19 19 repo = "instaloader"; 20 20 rev = "refs/tags/v${version}"; 21 - sha256 = "sha256-nZNoxJnp8dBbgXWYLfzasTa9SsR03xA1mpl9NKppodE="; 21 + sha256 = "sha256-eu2Hp3uomtPuMNjJGprcqK5HApKEjtXU9IQ5yT55cic="; 22 22 }; 23 23 24 24 nativeBuildInputs = [
+2 -2
pkgs/tools/misc/sacad/default.nix
··· 2 2 3 3 python3Packages.buildPythonApplication rec { 4 4 pname = "sacad"; 5 - version = "2.7.5"; 5 + version = "2.8.0"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - hash = "sha256-ZJPcxKc0G8V7x9nyzKXaXpfNpMB3/qRoX0d4lfBZTFY="; 9 + hash = "sha256-/NyRnQSqDZv+LJ1bPO35T9icQ2PN9Oa+nSmrLkQimnQ="; 10 10 }; 11 11 12 12 propagatedBuildInputs = with python3Packages; [
+2 -2
pkgs/tools/misc/scdl/default.nix
··· 2 2 3 3 python3Packages.buildPythonApplication rec { 4 4 pname = "scdl"; 5 - version = "2.11.4"; 5 + version = "2.12.1"; 6 6 pyproject = true; 7 7 8 8 src = fetchPypi { 9 9 inherit pname version; 10 - hash = "sha256-2hw9nVKShRAY6K0xXhVuce/dAu4w/BE2cKKKndzPJ3s="; 10 + hash = "sha256-8BMO5/XJdAkz/E1ZDXavJudNSOiZdYLcZVMk1S8g9nU="; 11 11 }; 12 12 13 13 build-system = [ python3Packages.setuptools ];
+3 -3
pkgs/tools/networking/rabtap/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "rabtap"; 5 - version = "1.39.3"; 5 + version = "1.42"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "jandelgado"; 9 9 repo = "rabtap"; 10 10 rev = "v${version}"; 11 - sha256 = "sha256-5SX6Ma8AMpm642vCGUR1HI6fkKBui16sf7Fm0IpPK6M="; 11 + sha256 = "sha256-+e8HHd2j8M2EJzfCQtohdlp+24JFZ1kA2/t+VSqFDAI="; 12 12 }; 13 13 14 - vendorHash = "sha256-wZOkQjSPMZW3+ohZb+MlBWNU3WTL4/lqggAOJLrYFHc="; 14 + vendorHash = "sha256-uRlFzhHtpZSie4Fmtj9YUPn+c7+Gvimlk1q8CcXFYmg="; 15 15 16 16 meta = with lib; { 17 17 description = "RabbitMQ wire tap and swiss army knife";
+4 -4
pkgs/tools/networking/zrok/default.nix
··· 14 14 }.${system} or throwSystem; 15 15 16 16 hash = { 17 - x86_64-linux = "sha256-8fEmiRKFOrF9v66OEfUGLUYK+DfZMkAXrCKu2DoGbLA="; 18 - aarch64-linux = "sha256-p+YbWpyLfIgFdNvakQQFfi+P/9lhfVMM+Y0XynRJ/rY="; 19 - armv7l-linux = "sha256-mMjtbAjylSjS+89T0qQoI4H/p316cqh+5fbgarFbv90="; 17 + x86_64-linux = "sha256-EzMkl/XTtieAj/pg1L4BLTEuWNnQ5m18WYu/sqRZx/I="; 18 + aarch64-linux = "sha256-D5FpJBRzvbsgrQmopJQpJZTIm9TroaGB6fkYX2UAaHM="; 19 + armv7l-linux = "sha256-PQl/ZQxxkzQ4iTUPBO9tbCsswOnEQuupdzxul0/vKG4="; 20 20 }.${system} or throwSystem; 21 21 in 22 22 stdenv.mkDerivation (finalAttrs: { 23 23 pname = "zrok"; 24 - version = "0.4.34"; 24 + version = "0.4.39"; 25 25 26 26 src = fetchzip { 27 27 url = "https://github.com/openziti/zrok/releases/download/v${finalAttrs.version}/zrok_${finalAttrs.version}_${plat}.tar.gz";
+3 -3
pkgs/tools/security/gotrue/supabase.nix
··· 7 7 8 8 buildGoModule rec { 9 9 pname = "auth"; 10 - version = "2.155.6"; 10 + version = "2.159.2"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "supabase"; 14 14 repo = "auth"; 15 15 rev = "v${version}"; 16 - hash = "sha256-dldCFDiKGQU/XqtzkvzTdwtI8rDjFaaYJw9elYmDglM="; 16 + hash = "sha256-5WRIDTbueAjAj9XhLltsFKk+9vul1WZ3htaasJLjhyw="; 17 17 }; 18 18 19 - vendorHash = "sha256-ttdrHBA6Dybv+oNljIJpOlA2CZPwTIi9fI32w5Khp9Y="; 19 + vendorHash = "sha256-cxLN9bdtpZmnhhP9tIYHQXW+KVmKvbS5+j+0gN6Ml3s="; 20 20 21 21 ldflags = [ 22 22 "-s"
+2 -2
pkgs/tools/security/keybase/default.nix
··· 5 5 6 6 buildGoModule rec { 7 7 pname = "keybase"; 8 - version = "6.3.1"; 8 + version = "6.4.0"; 9 9 10 10 modRoot = "go"; 11 11 subPackages = [ "kbnm" "keybase" ]; ··· 16 16 owner = "keybase"; 17 17 repo = "client"; 18 18 rev = "v${version}"; 19 - hash = "sha256-kmKqVtHS0DaVa0of+QEUc2aEhWP1dNmzb/L01zaIoe8="; 19 + hash = "sha256-hRqxA2gPL1UKbz9DwgfZfjE6e5pB7zenZqK+k1i8F2g="; 20 20 }; 21 21 vendorHash = "sha256-KHahkGzkXr6xp0XY9MyEeeiHnmphaNYi9dPBQ476+us="; 22 22
+3 -3
pkgs/tools/security/osv-scanner/default.nix
··· 7 7 8 8 buildGoModule rec { 9 9 pname = "osv-scanner"; 10 - version = "1.8.3"; 10 + version = "1.8.4"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "google"; 14 14 repo = "osv-scanner"; 15 15 rev = "refs/tags/v${version}"; 16 - hash = "sha256-RaTDhA9aowSCUFgH2JwkrV1TjYQW3P8o1Xd3e977AkM="; 16 + hash = "sha256-e1a21zBxMa89PuNXPbeTpY3mHeO0TvxcoHcWRPUYwsM="; 17 17 }; 18 18 19 - vendorHash = "sha256-mSBgnG7WJqrB/CAYi9wGtB7PL4/whsCv7WA3Im2/PZg="; 19 + vendorHash = "sha256-ZmWgupPHZhv+MmNfFmuU1Cjin5liNcgkzdxw3Sf614c="; 20 20 21 21 subPackages = [ 22 22 "cmd/osv-scanner"
+2 -2
pkgs/tools/system/java-service-wrapper/default.nix
··· 9 9 10 10 stdenv.mkDerivation rec { 11 11 pname = "java-service-wrapper"; 12 - version = "3.5.58"; 12 + version = "3.5.59"; 13 13 14 14 src = fetchurl { 15 15 url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz"; 16 - hash = "sha256-mwfLCZfjAtKNfp9Cc8hkLAOKo6VfKD3l+IDiXDP2LV8="; 16 + hash = "sha256-O0fn+s3RIIriVw6sMB2nSKAGtVF0Tz6Ns4Jb9OpcbgY="; 17 17 }; 18 18 19 19 strictDeps = true;
+2
pkgs/top-level/ocaml-packages.nix
··· 1784 1784 1785 1785 terminal_size = callPackage ../development/ocaml-modules/terminal_size { }; 1786 1786 1787 + terml = callPackage ../development/ocaml-modules/terml { }; 1788 + 1787 1789 tezos-base58 = callPackage ../development/ocaml-modules/tezos-base58 { }; 1788 1790 1789 1791 tezt = callPackage ../development/ocaml-modules/tezt { };
+4
pkgs/top-level/python-packages.nix
··· 14384 14384 14385 14385 snakemake-interface-storage-plugins = callPackage ../development/python-modules/snakemake-interface-storage-plugins { }; 14386 14386 14387 + snakemake-storage-plugin-fs = callPackage ../development/python-modules/snakemake-storage-plugin-fs { }; 14388 + 14387 14389 snakemake-storage-plugin-s3 = callPackage ../development/python-modules/snakemake-storage-plugin-s3 { }; 14388 14390 14389 14391 snakemake-storage-plugin-xrootd = callPackage ../development/python-modules/snakemake-storage-plugin-xrootd { }; ··· 15064 15066 synergy = callPackage ../development/python-modules/synergy { }; 15065 15067 15066 15068 syslog-rfc5424-formatter = callPackage ../development/python-modules/syslog-rfc5424-formatter { }; 15069 + 15070 + sysrsync = callPackage ../development/python-modules/sysrsync { }; 15067 15071 15068 15072 systembridge = callPackage ../development/python-modules/systembridge { }; 15069 15073