Merge master into staging-next

authored by github-actions[bot] and committed by GitHub a6928c74 aacf6c8f

+612 -245
+5 -1
CONTRIBUTING.md
··· 11 12 ## Submitting changes 13 14 * Format the commit messages in the following way: 15 16 ``` ··· 40 * If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`. 41 * `meta.maintainers` must be set. 42 43 - See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes) and on how to [submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes). 44 45 ## Writing good commit messages 46
··· 11 12 ## Submitting changes 13 14 + Read the ["Submitting changes"](https://nixos.org/nixpkgs/manual/#chap-submitting-changes) section of the nixpkgs manual. It explains how to write, test, and iterate on your change, and which branch to base your pull request against. 15 + 16 + Below is a short excerpt of some points in there: 17 + 18 * Format the commit messages in the following way: 19 20 ``` ··· 44 * If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`. 45 * `meta.maintainers` must be set. 46 47 + See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes). 48 49 ## Writing good commit messages 50
+2
nixos/modules/installer/tools/nixos-enter.sh
··· 104 chroot "$mountPoint" systemd-tmpfiles --create --remove --exclude-prefix=/dev 1>&2 || true 105 ) 106 107 exec chroot "$mountPoint" "${command[@]}"
··· 104 chroot "$mountPoint" systemd-tmpfiles --create --remove --exclude-prefix=/dev 1>&2 || true 105 ) 106 107 + unset TMPDIR 108 + 109 exec chroot "$mountPoint" "${command[@]}"
+1
nixos/modules/module-list.nix
··· 544 ./services/misc/gollum.nix 545 ./services/misc/gpsd.nix 546 ./services/misc/headphones.nix 547 ./services/misc/greenclip.nix 548 ./services/misc/home-assistant.nix 549 ./services/misc/ihaskell.nix
··· 544 ./services/misc/gollum.nix 545 ./services/misc/gpsd.nix 546 ./services/misc/headphones.nix 547 + ./services/misc/heisenbridge.nix 548 ./services/misc/greenclip.nix 549 ./services/misc/home-assistant.nix 550 ./services/misc/ihaskell.nix
+21 -41
nixos/modules/services/audio/mpd.nix
··· 209 210 config = mkIf cfg.enable { 211 212 systemd.sockets.mpd = mkIf cfg.startWhenNeeded { 213 - description = "Music Player Daemon Socket"; 214 wantedBy = [ "sockets.target" ]; 215 listenStreams = [ 216 (if pkgs.lib.hasPrefix "/" cfg.network.listenAddress 217 then cfg.network.listenAddress 218 else "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}") 219 ]; 220 - socketConfig = { 221 - Backlog = 5; 222 - KeepAlive = true; 223 - PassCredentials = true; 224 - }; 225 }; 226 227 systemd.services.mpd = { 228 - after = [ "network.target" "sound.target" ]; 229 - description = "Music Player Daemon"; 230 wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target"; 231 232 - serviceConfig = mkMerge [ 233 { 234 User = "${cfg.user}"; 235 - ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon /run/mpd/mpd.conf"; 236 - ExecStartPre = pkgs.writeShellScript "mpd-start-pre" ('' 237 - set -euo pipefail 238 - install -m 600 ${mpdConf} /run/mpd/mpd.conf 239 - '' + optionalString (cfg.credentials != []) 240 - (concatStringsSep "\n" 241 - (imap0 242 - (i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'') 243 - cfg.credentials)) 244 - ); 245 RuntimeDirectory = "mpd"; 246 - Type = "notify"; 247 - LimitRTPRIO = 50; 248 - LimitRTTIME = "infinity"; 249 - ProtectSystem = true; 250 - NoNewPrivileges = true; 251 - ProtectKernelTunables = true; 252 - ProtectControlGroups = true; 253 - ProtectKernelModules = true; 254 - RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK"; 255 - RestrictNamespaces = true; 256 - Restart = "always"; 257 - } 258 - (mkIf (cfg.dataDir == "/var/lib/${name}") { 259 - StateDirectory = [ name ]; 260 - }) 261 - (mkIf (cfg.playlistDirectory == "/var/lib/${name}/playlists") { 262 - StateDirectory = [ name "${name}/playlists" ]; 263 - }) 264 - (mkIf (cfg.musicDirectory == "/var/lib/${name}/music") { 265 - StateDirectory = [ name "${name}/music" ]; 266 - }) 267 - ]; 268 }; 269 270 users.users = optionalAttrs (cfg.user == name) {
··· 209 210 config = mkIf cfg.enable { 211 212 + # install mpd units 213 + systemd.packages = [ pkgs.mpd ]; 214 + 215 systemd.sockets.mpd = mkIf cfg.startWhenNeeded { 216 wantedBy = [ "sockets.target" ]; 217 listenStreams = [ 218 (if pkgs.lib.hasPrefix "/" cfg.network.listenAddress 219 then cfg.network.listenAddress 220 else "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}") 221 ]; 222 }; 223 224 systemd.services.mpd = { 225 wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target"; 226 227 + preStart = 228 + '' 229 + set -euo pipefail 230 + install -m 600 ${mpdConf} /run/mpd/mpd.conf 231 + '' + optionalString (cfg.credentials != []) 232 + (concatStringsSep "\n" 233 + (imap0 234 + (i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'') 235 + cfg.credentials)); 236 + 237 + serviceConfig = 238 { 239 User = "${cfg.user}"; 240 + # Note: the first "" overrides the ExecStart from the upstream unit 241 + ExecStart = [ "" "${pkgs.mpd}/bin/mpd --systemd /run/mpd/mpd.conf" ]; 242 RuntimeDirectory = "mpd"; 243 + StateDirectory = [] 244 + ++ optionals (cfg.dataDir == "/var/lib/${name}") [ name ] 245 + ++ optionals (cfg.playlistDirectory == "/var/lib/${name}/playlists") [ name "${name}/playlists" ] 246 + ++ optionals (cfg.musicDirectory == "/var/lib/${name}/music") [ name "${name}/music" ]; 247 + }; 248 }; 249 250 users.users = optionalAttrs (cfg.user == name) {
+1 -1
nixos/modules/services/misc/heisenbridge.nix
··· 23 in 24 { 25 options.services.heisenbridge = { 26 - enable = mkEnableOption "the Matrix<->IRC bridge"; 27 28 package = mkOption { 29 type = types.package;
··· 23 in 24 { 25 options.services.heisenbridge = { 26 + enable = mkEnableOption "A bouncer-style Matrix IRC bridge"; 27 28 package = mkOption { 29 type = types.package;
+17 -26
nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
··· 45 options {kernel_params} 46 """ 47 48 - # The boot loader entry for memtest86. 49 - # 50 - # TODO: This is hard-coded to use the 64-bit EFI app, but it could probably 51 - # be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI 52 - # app filename is BOOTIA32.efi. 53 - MEMTEST_BOOT_ENTRY = """title MemTest86 54 - efi /efi/memtest86/BOOTX64.efi 55 - """ 56 - 57 - 58 def generation_conf_filename(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str: 59 pieces = [ 60 "nixos", ··· 283 except OSError as e: 284 print("ignoring profile '{}' in the list of boot entries because of the following error:\n{}".format(profile, e), file=sys.stderr) 285 286 - memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf" 287 - if os.path.exists(memtest_entry_file): 288 - os.unlink(memtest_entry_file) 289 - shutil.rmtree("@efiSysMountPoint@/efi/memtest86", ignore_errors=True) 290 - if "@memtest86@" != "": 291 - mkdir_p("@efiSysMountPoint@/efi/memtest86") 292 - for path in glob.iglob("@memtest86@/*"): 293 - if os.path.isdir(path): 294 - shutil.copytree(path, os.path.join("@efiSysMountPoint@/efi/memtest86", os.path.basename(path))) 295 - else: 296 - shutil.copy(path, "@efiSysMountPoint@/efi/memtest86/") 297 298 - memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf" 299 - memtest_entry_file_tmp_path = "%s.tmp" % memtest_entry_file 300 - with open(memtest_entry_file_tmp_path, 'w') as f: 301 - f.write(MEMTEST_BOOT_ENTRY) 302 - os.rename(memtest_entry_file_tmp_path, memtest_entry_file) 303 304 # Since fat32 provides little recovery facilities after a crash, 305 # it can leave the system in an unbootable state, when a crash/outage
··· 45 options {kernel_params} 46 """ 47 48 def generation_conf_filename(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str: 49 pieces = [ 50 "nixos", ··· 273 except OSError as e: 274 print("ignoring profile '{}' in the list of boot entries because of the following error:\n{}".format(profile, e), file=sys.stderr) 275 276 + for root, _, files in os.walk('@efiSysMountPoint@/efi/nixos/.extra-files', topdown=False): 277 + relative_root = root.removeprefix("@efiSysMountPoint@/efi/nixos/.extra-files").removeprefix("/") 278 + actual_root = os.path.join("@efiSysMountPoint@", relative_root) 279 + 280 + for file in files: 281 + actual_file = os.path.join(actual_root, file) 282 + 283 + if os.path.exists(actual_file): 284 + os.unlink(actual_file) 285 + os.unlink(os.path.join(root, file)) 286 + 287 + if not len(os.listdir(actual_root)): 288 + os.rmdir(actual_root) 289 + os.rmdir(root) 290 + 291 + mkdir_p("@efiSysMountPoint@/efi/nixos/.extra-files") 292 293 + subprocess.check_call("@copyExtraFiles@") 294 295 # Since fat32 provides little recovery facilities after a crash, 296 # it can leave the system in an unbootable state, when a crash/outage
+135 -2
nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
··· 29 inherit (efi) efiSysMountPoint canTouchEfiVariables; 30 31 memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else ""; 32 }; 33 34 checkedSystemdBootBuilder = pkgs.runCommand "systemd-boot" { ··· 125 <literal>true</literal>. 126 ''; 127 }; 128 }; 129 130 graceful = mkOption { ··· 148 assertions = [ 149 { 150 assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub; 151 - 152 message = "This kernel does not support the EFI boot stub"; 153 } 154 - ]; 155 156 boot.loader.grub.enable = mkDefault false; 157 158 boot.loader.supportsInitrdSecrets = true; 159 160 system = { 161 build.installBootLoader = checkedSystemdBootBuilder;
··· 29 inherit (efi) efiSysMountPoint canTouchEfiVariables; 30 31 memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else ""; 32 + 33 + netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else ""; 34 + 35 + copyExtraFiles = pkgs.writeShellScript "copy-extra-files" '' 36 + empty_file=$(mktemp) 37 + 38 + ${concatStrings (mapAttrsToList (n: v: '' 39 + ${pkgs.coreutils}/bin/install -Dp "${v}" "${efi.efiSysMountPoint}/"${escapeShellArg n} 40 + ${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/"${escapeShellArg n} 41 + '') cfg.extraFiles)} 42 + 43 + ${concatStrings (mapAttrsToList (n: v: '' 44 + ${pkgs.coreutils}/bin/install -Dp "${pkgs.writeText n v}" "${efi.efiSysMountPoint}/loader/entries/"${escapeShellArg n} 45 + ${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/loader/entries/"${escapeShellArg n} 46 + '') cfg.extraEntries)} 47 + ''; 48 }; 49 50 checkedSystemdBootBuilder = pkgs.runCommand "systemd-boot" { ··· 141 <literal>true</literal>. 142 ''; 143 }; 144 + 145 + entryFilename = mkOption { 146 + default = "memtest86.conf"; 147 + type = types.str; 148 + description = '' 149 + <literal>systemd-boot</literal> orders the menu entries by the config file names, 150 + so if you want something to appear after all the NixOS entries, 151 + it should start with <filename>o</filename> or onwards. 152 + ''; 153 + }; 154 + }; 155 + 156 + netbootxyz = { 157 + enable = mkOption { 158 + default = false; 159 + type = types.bool; 160 + description = '' 161 + Make <literal>netboot.xyz</literal> available from the 162 + <literal>systemd-boot</literal> menu. <literal>netboot.xyz</literal> 163 + is a menu system that allows you to boot OS installers and 164 + utilities over the network. 165 + ''; 166 + }; 167 + 168 + entryFilename = mkOption { 169 + default = "o_netbootxyz.conf"; 170 + type = types.str; 171 + description = '' 172 + <literal>systemd-boot</literal> orders the menu entries by the config file names, 173 + so if you want something to appear after all the NixOS entries, 174 + it should start with <filename>o</filename> or onwards. 175 + ''; 176 + }; 177 + }; 178 + 179 + extraEntries = mkOption { 180 + type = types.attrsOf types.lines; 181 + default = {}; 182 + example = literalExpression '' 183 + { "memtest86.conf" = ''' 184 + title MemTest86 185 + efi /efi/memtest86/memtest86.efi 186 + '''; } 187 + ''; 188 + description = '' 189 + Any additional entries you want added to the <literal>systemd-boot</literal> menu. 190 + These entries will be copied to <filename>/boot/loader/entries</filename>. 191 + Each attribute name denotes the destination file name, 192 + and the corresponding attribute value is the contents of the entry. 193 + 194 + <literal>systemd-boot</literal> orders the menu entries by the config file names, 195 + so if you want something to appear after all the NixOS entries, 196 + it should start with <filename>o</filename> or onwards. 197 + ''; 198 + }; 199 + 200 + extraFiles = mkOption { 201 + type = types.attrsOf types.path; 202 + default = {}; 203 + example = literalExpression '' 204 + { "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; } 205 + ''; 206 + description = '' 207 + A set of files to be copied to <filename>/boot</filename>. 208 + Each attribute name denotes the destination file name in 209 + <filename>/boot</filename>, while the corresponding 210 + attribute value specifies the source file. 211 + ''; 212 }; 213 214 graceful = mkOption { ··· 232 assertions = [ 233 { 234 assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub; 235 message = "This kernel does not support the EFI boot stub"; 236 } 237 + ] ++ concatMap (filename: [ 238 + { 239 + assertion = !(hasInfix "/" filename); 240 + message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries within folders are not supported"; 241 + } 242 + { 243 + assertion = hasSuffix ".conf" filename; 244 + message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries must have a .conf file extension"; 245 + } 246 + ]) (builtins.attrNames cfg.extraEntries) 247 + ++ concatMap (filename: [ 248 + { 249 + assertion = !(hasPrefix "/" filename); 250 + message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not begin with a slash"; 251 + } 252 + { 253 + assertion = !(hasInfix ".." filename); 254 + message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not reference the parent directory"; 255 + } 256 + { 257 + assertion = !(hasInfix "nixos/.extra-files" (toLower filename)); 258 + message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: files cannot be placed in the nixos/.extra-files directory"; 259 + } 260 + ]) (builtins.attrNames cfg.extraFiles); 261 262 boot.loader.grub.enable = mkDefault false; 263 264 boot.loader.supportsInitrdSecrets = true; 265 + 266 + boot.loader.systemd-boot.extraFiles = mkMerge [ 267 + # TODO: This is hard-coded to use the 64-bit EFI app, but it could probably 268 + # be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI 269 + # app filename is BOOTIA32.efi. 270 + (mkIf cfg.memtest86.enable { 271 + "efi/memtest86/BOOTX64.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi"; 272 + }) 273 + (mkIf cfg.netbootxyz.enable { 274 + "efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}"; 275 + }) 276 + ]; 277 + 278 + boot.loader.systemd-boot.extraEntries = mkMerge [ 279 + (mkIf cfg.memtest86.enable { 280 + "${cfg.memtest86.entryFilename}" = '' 281 + title MemTest86 282 + efi /efi/memtest86/BOOTX64.efi 283 + ''; 284 + }) 285 + (mkIf cfg.netbootxyz.enable { 286 + "${cfg.netbootxyz.entryFilename}" = '' 287 + title netboot.xyz 288 + efi /efi/netbootxyz/netboot.xyz.efi 289 + ''; 290 + }) 291 + ]; 292 293 system = { 294 build.installBootLoader = checkedSystemdBootBuilder;
+19 -8
nixos/tests/starship.nix
··· 13 }; 14 }; 15 16 - services.getty.autologinUser = "root"; 17 }; 18 19 testScript = '' 20 start_all() 21 machine.wait_for_unit("default.target") 22 23 - for shell in ["bash", "fish", "zsh"]: 24 - machine.send_chars(f"script -c {shell} /tmp/{shell}.txt\n") 25 - machine.wait_until_tty_matches(1, f"Script started.*{shell}.txt") 26 - machine.send_chars("exit\n") 27 - machine.wait_until_tty_matches(1, "Script done") 28 - machine.sleep(1) 29 - machine.succeed(f"grep -q '<starship>' /tmp/{shell}.txt") 30 ''; 31 })
··· 13 }; 14 }; 15 16 + environment.systemPackages = map 17 + (shell: pkgs.writeScriptBin "expect-${shell}" '' 18 + #!${pkgs.expect}/bin/expect -f 19 + 20 + spawn env TERM=xterm ${shell} -i 21 + 22 + expect "<starship>" { 23 + send "exit\n" 24 + } timeout { 25 + send_user "\n${shell} failed to display Starship\n" 26 + exit 1 27 + } 28 + 29 + expect eof 30 + '') 31 + [ "bash" "fish" "zsh" ]; 32 }; 33 34 testScript = '' 35 start_all() 36 machine.wait_for_unit("default.target") 37 38 + machine.succeed("expect-bash") 39 + machine.succeed("expect-fish") 40 + machine.succeed("expect-zsh") 41 ''; 42 })
+141
nixos/tests/systemd-boot.nix
··· 110 assert "updating systemd-boot from (000.0-1-notnixos) to " in output 111 ''; 112 }; 113 }
··· 110 assert "updating systemd-boot from (000.0-1-notnixos) to " in output 111 ''; 112 }; 113 + 114 + memtest86 = makeTest { 115 + name = "systemd-boot-memtest86"; 116 + meta.maintainers = with pkgs.lib.maintainers; [ Enzime ]; 117 + 118 + machine = { pkgs, lib, ... }: { 119 + imports = [ common ]; 120 + boot.loader.systemd-boot.memtest86.enable = true; 121 + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ 122 + "memtest86-efi" 123 + ]; 124 + }; 125 + 126 + testScript = '' 127 + machine.succeed("test -e /boot/loader/entries/memtest86.conf") 128 + machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") 129 + ''; 130 + }; 131 + 132 + netbootxyz = makeTest { 133 + name = "systemd-boot-netbootxyz"; 134 + meta.maintainers = with pkgs.lib.maintainers; [ Enzime ]; 135 + 136 + machine = { pkgs, lib, ... }: { 137 + imports = [ common ]; 138 + boot.loader.systemd-boot.netbootxyz.enable = true; 139 + }; 140 + 141 + testScript = '' 142 + machine.succeed("test -e /boot/loader/entries/o_netbootxyz.conf") 143 + machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi") 144 + ''; 145 + }; 146 + 147 + entryFilename = makeTest { 148 + name = "systemd-boot-entry-filename"; 149 + meta.maintainers = with pkgs.lib.maintainers; [ Enzime ]; 150 + 151 + machine = { pkgs, lib, ... }: { 152 + imports = [ common ]; 153 + boot.loader.systemd-boot.memtest86.enable = true; 154 + boot.loader.systemd-boot.memtest86.entryFilename = "apple.conf"; 155 + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ 156 + "memtest86-efi" 157 + ]; 158 + }; 159 + 160 + testScript = '' 161 + machine.fail("test -e /boot/loader/entries/memtest86.conf") 162 + machine.succeed("test -e /boot/loader/entries/apple.conf") 163 + machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") 164 + ''; 165 + }; 166 + 167 + extraEntries = makeTest { 168 + name = "systemd-boot-extra-entries"; 169 + meta.maintainers = with pkgs.lib.maintainers; [ Enzime ]; 170 + 171 + machine = { pkgs, lib, ... }: { 172 + imports = [ common ]; 173 + boot.loader.systemd-boot.extraEntries = { 174 + "banana.conf" = '' 175 + title banana 176 + ''; 177 + }; 178 + }; 179 + 180 + testScript = '' 181 + machine.succeed("test -e /boot/loader/entries/banana.conf") 182 + machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/banana.conf") 183 + ''; 184 + }; 185 + 186 + extraFiles = makeTest { 187 + name = "systemd-boot-extra-files"; 188 + meta.maintainers = with pkgs.lib.maintainers; [ Enzime ]; 189 + 190 + machine = { pkgs, lib, ... }: { 191 + imports = [ common ]; 192 + boot.loader.systemd-boot.extraFiles = { 193 + "efi/fruits/tomato.efi" = pkgs.netbootxyz-efi; 194 + }; 195 + }; 196 + 197 + testScript = '' 198 + machine.succeed("test -e /boot/efi/fruits/tomato.efi") 199 + machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") 200 + ''; 201 + }; 202 + 203 + switch-test = makeTest { 204 + name = "systemd-boot-switch-test"; 205 + meta.maintainers = with pkgs.lib.maintainers; [ Enzime ]; 206 + 207 + nodes = { 208 + inherit common; 209 + 210 + machine = { pkgs, ... }: { 211 + imports = [ common ]; 212 + boot.loader.systemd-boot.extraFiles = { 213 + "efi/fruits/tomato.efi" = pkgs.netbootxyz-efi; 214 + }; 215 + }; 216 + 217 + with_netbootxyz = { pkgs, ... }: { 218 + imports = [ common ]; 219 + boot.loader.systemd-boot.netbootxyz.enable = true; 220 + }; 221 + }; 222 + 223 + testScript = { nodes, ... }: let 224 + originalSystem = nodes.machine.config.system.build.toplevel; 225 + baseSystem = nodes.common.config.system.build.toplevel; 226 + finalSystem = nodes.with_netbootxyz.config.system.build.toplevel; 227 + in '' 228 + machine.succeed("test -e /boot/efi/fruits/tomato.efi") 229 + machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") 230 + 231 + with subtest("remove files when no longer needed"): 232 + machine.succeed("${baseSystem}/bin/switch-to-configuration boot") 233 + machine.fail("test -e /boot/efi/fruits/tomato.efi") 234 + machine.fail("test -d /boot/efi/fruits") 235 + machine.succeed("test -d /boot/efi/nixos/.extra-files") 236 + machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") 237 + machine.fail("test -d /boot/efi/nixos/.extra-files/efi/fruits") 238 + 239 + with subtest("files are added back when needed again"): 240 + machine.succeed("${originalSystem}/bin/switch-to-configuration boot") 241 + machine.succeed("test -e /boot/efi/fruits/tomato.efi") 242 + machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") 243 + 244 + with subtest("simultaneously removing and adding files works"): 245 + machine.succeed("${finalSystem}/bin/switch-to-configuration boot") 246 + machine.fail("test -e /boot/efi/fruits/tomato.efi") 247 + machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi") 248 + machine.succeed("test -e /boot/loader/entries/o_netbootxyz.conf") 249 + machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi") 250 + machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/o_netbootxyz.conf") 251 + machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi") 252 + ''; 253 + }; 254 }
+5
pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
··· 52 super = removeAttrs imported [ "dash" ]; 53 54 overrides = { 55 rcirc-menu = markBroken super.rcirc-menu; # Missing file header 56 cl-lib = null; # builtin 57 tle = null; # builtin
··· 52 super = removeAttrs imported [ "dash" ]; 53 54 overrides = { 55 + # upstream issue: Wrong type argument: arrayp, nil 56 + org-transclusion = 57 + if super.org-transclusion.version == "1.2.0" 58 + then markBroken super.org-transclusion 59 + else super.org-transclusion; 60 rcirc-menu = markBroken super.rcirc-menu; # Missing file header 61 cl-lib = null; # builtin 62 tle = null; # builtin
+3 -3
pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
··· 9 10 trivialBuild { 11 pname = "ement"; 12 - version = "unstable-2021-09-16"; 13 14 src = fetchFromGitHub { 15 owner = "alphapapa"; 16 repo = "ement.el"; 17 - rev = "c07e914f077199c95b0e7941a421675c95d4687e"; 18 - sha256 = "sha256-kYVb2NrHYC87mY/hFUMAjb4TLJ9A2L2RrHoiAXvRaGg="; 19 }; 20 21 packageRequires = [
··· 9 10 trivialBuild { 11 pname = "ement"; 12 + version = "unstable-2021-10-08"; 13 14 src = fetchFromGitHub { 15 owner = "alphapapa"; 16 repo = "ement.el"; 17 + rev = "c951737dc855604aba389166bb0e7366afadc533"; 18 + sha256 = "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy"; 19 }; 20 21 packageRequires = [
+37 -1
pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
··· 73 overrides = lib.optionalAttrs (variant == "stable") { 74 75 # upstream issue: missing file header 76 speech-tagger = markBroken super.speech-tagger; 77 78 # upstream issue: missing file header ··· 100 dictionary = markBroken super.dictionary; 101 102 # upstream issue: missing file header 103 link = markBroken super.link; 104 105 # upstream issue: missing file header 106 - bufshow = markBroken super.bufshow; 107 108 # upstream issue: missing file header 109 elmine = markBroken super.elmine;
··· 73 overrides = lib.optionalAttrs (variant == "stable") { 74 75 # upstream issue: missing file header 76 + abridge-diff = 77 + if super.abridge-diff.version == "0.1" 78 + then markBroken super.abridge-diff 79 + else super.abridge-diff; 80 + 81 + # upstream issue: missing file header 82 + bufshow = markBroken super.bufshow; 83 + 84 + # upstream issue: missing file header 85 speech-tagger = markBroken super.speech-tagger; 86 87 # upstream issue: missing file header ··· 109 dictionary = markBroken super.dictionary; 110 111 # upstream issue: missing file header 112 + fold-dwim = 113 + if super.fold-dwim.version == "1.2" 114 + then markBroken super.fold-dwim 115 + else super.fold-dwim; 116 + 117 + # upstream issue: missing file header 118 + gl-conf-mode = 119 + if super.gl-conf-mode.version == "0.3" 120 + then markBroken super.gl-conf-mode 121 + else super.gl-conf-mode; 122 + 123 + # upstream issue: missing file header 124 + ligo-mode = 125 + if super.ligo-mode.version == "0.3" 126 + then markBroken super.ligo-mode 127 + else super.ligo-mode; 128 + 129 + # upstream issue: missing file header 130 link = markBroken super.link; 131 132 # upstream issue: missing file header 133 + org-dp = 134 + if super.org-dp.version == "1" 135 + then markBroken super.org-dp 136 + else super.org-dp; 137 + 138 + # upstream issue: missing file header 139 + revbufs = 140 + if super.revbufs.version == "1.2" 141 + then markBroken super.revbufs 142 + else super.revbufs; 143 144 # upstream issue: missing file header 145 elmine = markBroken super.elmine;
+4 -4
pkgs/applications/graphics/blockbench-electron/default.nix
··· 1 - { lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_8 }: 2 3 stdenv.mkDerivation rec { 4 pname = "blockbench-electron"; 5 - version = "3.7.5"; 6 7 src = fetchurl { 8 url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage"; 9 - sha256 = "0qqklhncd4khqmgp7jg7wap2rzkrg8b6dflmz0wmm5zxxp5vcy1c"; 10 name = "${pname}-${version}.AppImage"; 11 }; 12 ··· 33 ''; 34 35 postFixup = '' 36 - makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \ 37 --add-flags $out/share/${pname}/resources/app.asar \ 38 --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}" 39 '';
··· 1 + { lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_16 }: 2 3 stdenv.mkDerivation rec { 4 pname = "blockbench-electron"; 5 + version = "4.1.1"; 6 7 src = fetchurl { 8 url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage"; 9 + sha256 = "0mqdkjhmylrjjfrm05jv1967qqka5263fgcn9qzax08gcq93s18f"; 10 name = "${pname}-${version}.AppImage"; 11 }; 12 ··· 33 ''; 34 35 postFixup = '' 36 + makeWrapper ${electron_16}/bin/electron $out/bin/${pname} \ 37 --add-flags $out/share/${pname}/resources/app.asar \ 38 --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}" 39 '';
+2 -2
pkgs/applications/graphics/hydrus/default.nix
··· 10 11 python3Packages.buildPythonPackage rec { 12 pname = "hydrus"; 13 - version = "467"; 14 format = "other"; 15 16 src = fetchFromGitHub { 17 owner = "hydrusnetwork"; 18 repo = "hydrus"; 19 rev = "v${version}"; 20 - sha256 = "sha256-ijIOCabpnaK9ww1cR+HNpCOn8uSwSEuyLWwnT2ypdD4="; 21 }; 22 23 nativeBuildInputs = [
··· 10 11 python3Packages.buildPythonPackage rec { 12 pname = "hydrus"; 13 + version = "469"; 14 format = "other"; 15 16 src = fetchFromGitHub { 17 owner = "hydrusnetwork"; 18 repo = "hydrus"; 19 rev = "v${version}"; 20 + sha256 = "sha256-1E85SIsLXeG+AUqQYCJxOlSwiT26OG+n/d9GbyryGCE="; 21 }; 22 23 nativeBuildInputs = [
+2 -2
pkgs/applications/graphics/imgbrd-grabber/default.nix
··· 21 22 stdenv.mkDerivation rec { 23 pname = "imgbrd-grabber"; 24 - version = "7.7.0"; 25 26 src = fetchFromGitHub { 27 owner = "Bionus"; 28 repo = "imgbrd-grabber"; 29 rev = "v${version}"; 30 - sha256 = "sha256-Mym/fuV9YVyj5w8U9KlZ/wuwnnC3K5TGNo9RrAFHI5g="; 31 fetchSubmodules = true; 32 }; 33
··· 21 22 stdenv.mkDerivation rec { 23 pname = "imgbrd-grabber"; 24 + version = "7.7.1"; 25 26 src = fetchFromGitHub { 27 owner = "Bionus"; 28 repo = "imgbrd-grabber"; 29 rev = "v${version}"; 30 + sha256 = "sha256-3qE3mdtlIlReIkUf0oH2/qmunE8nvdB0EaD7EOqaEj0="; 31 fetchSubmodules = true; 32 }; 33
+2 -2
pkgs/applications/misc/archivebox/default.nix
··· 4 , requests 5 , mypy-extensions 6 , django_3 7 - , django_extensions 8 , dateparser 9 , youtube-dl 10 , python-crontab ··· 37 requests 38 mypy-extensions 39 django_3' 40 - django_extensions 41 dateparser 42 youtube-dl 43 python-crontab
··· 4 , requests 5 , mypy-extensions 6 , django_3 7 + , django-extensions 8 , dateparser 9 , youtube-dl 10 , python-crontab ··· 37 requests 38 mypy-extensions 39 django_3' 40 + django-extensions 41 dateparser 42 youtube-dl 43 python-crontab
+11 -4
pkgs/applications/misc/avizo/default.nix
··· 5 , gobject-introspection, gdk-pixbuf, wrapGAppsHook 6 }: 7 8 - stdenv.mkDerivation { 9 pname = "avizo"; 10 - version = "unstable-2021-07-21"; 11 12 src = fetchFromGitHub { 13 owner = "misterdanb"; 14 repo = "avizo"; 15 - rev = "7b3874e5ee25c80800b3c61c8ea30612aaa6e8d1"; 16 - sha256 = "sha256-ixAdiAH22Nh19uK5GoAXtAZJeAfCGSWTcGbrvCczWYc="; 17 }; 18 19 nativeBuildInputs = [ meson ninja pkg-config vala gobject-introspection wrapGAppsHook ]; 20 21 buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 librsvg ]; 22 23 postInstall = '' 24 substituteInPlace "$out"/bin/volumectl \
··· 5 , gobject-introspection, gdk-pixbuf, wrapGAppsHook 6 }: 7 8 + stdenv.mkDerivation rec { 9 pname = "avizo"; 10 + # Note: remove the 'use-sysconfig' patch on the next update 11 + version = "1.1"; 12 13 src = fetchFromGitHub { 14 owner = "misterdanb"; 15 repo = "avizo"; 16 + rev = version; 17 + sha256 = "sha256-0BJodJ6WaHhuSph2D1AC+DMafctgiSCyaZ8MFn89AA8="; 18 }; 19 20 nativeBuildInputs = [ meson ninja pkg-config vala gobject-introspection wrapGAppsHook ]; 21 22 buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 librsvg ]; 23 + 24 + patches = [ 25 + # Remove on next update 26 + # See https://github.com/misterdanb/avizo/pull/30 27 + ./use-sysconfdir-instead-of-etc.patch 28 + ]; 29 30 postInstall = '' 31 substituteInPlace "$out"/bin/volumectl \
+15
pkgs/applications/misc/avizo/use-sysconfdir-instead-of-etc.patch
···
··· 1 + diff --git a/meson.build b/meson.build 2 + index 1c789be..cd4b07a 100644 3 + --- a/meson.build 4 + +++ b/meson.build 5 + @@ -12,7 +12,9 @@ app_resources_service = gnome.compile_resources( 6 + source_dir : '.', 7 + c_name : 'avizo_resources') 8 + 9 + -install_data('config.ini', install_dir: '/etc/xdg/avizo') 10 + +sysconfdir = get_option('sysconfdir') 11 + + 12 + +install_data('config.ini', install_dir: join_paths(sysconfdir, 'xdg/avizo')) 13 + install_data('volumectl', install_dir: 'bin') 14 + install_data('lightctl', install_dir: 'bin') 15 +
+2 -2
pkgs/applications/misc/pdfstudio/default.nix
··· 18 let 19 year = "2021"; 20 major = "1"; 21 - minor = "1"; 22 in stdenv.mkDerivation rec { 23 pname = "pdfstudio"; 24 version = "${year}.${major}.${minor}"; ··· 26 27 src = fetchurl { 28 url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb"; 29 - sha256 = "089jfpbsxwjhx245g8svlmg213kny3z5nl6ra1flishnrsfjjcxb"; 30 }; 31 32 nativeBuildInputs = [
··· 18 let 19 year = "2021"; 20 major = "1"; 21 + minor = "2"; 22 in stdenv.mkDerivation rec { 23 pname = "pdfstudio"; 24 version = "${year}.${major}.${minor}"; ··· 26 27 src = fetchurl { 28 url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb"; 29 + sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45"; 30 }; 31 32 nativeBuildInputs = [
+1 -1
pkgs/applications/misc/pwsafe/default.nix
··· 39 done 40 41 # Fix hard coded paths. 42 - for f in $(grep -Rl /usr/share/ src) ; do 43 substituteInPlace $f --replace /usr/share/ $out/share/ 44 done 45
··· 39 done 40 41 # Fix hard coded paths. 42 + for f in $(grep -Rl /usr/share/ src install/desktop) ; do 43 substituteInPlace $f --replace /usr/share/ $out/share/ 44 done 45
+35 -27
pkgs/applications/misc/qpdfview/default.nix
··· 1 - {lib, mkDerivation, fetchurl, qmake, qtbase, qtsvg, pkg-config, poppler, djvulibre, libspectre, cups 2 - , file, ghostscript 3 }: 4 - let 5 - s = # Generated upstream information 6 - rec { 7 - baseName="qpdfview"; 8 - version = "0.4.18"; 9 - name="${baseName}-${version}"; 10 - url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz"; 11 sha256 = "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c"; 12 }; 13 - nativeBuildInputs = [ qmake pkg-config ]; 14 - buildInputs = [ 15 - qtbase qtsvg poppler djvulibre libspectre cups file ghostscript 16 - ]; 17 # apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104 18 patches = [ ./qpdfview-qt515-compat.patch ]; 19 - in 20 - mkDerivation { 21 - pname = s.baseName; 22 - inherit (s) version; 23 - inherit nativeBuildInputs buildInputs patches; 24 - src = fetchurl { 25 - inherit (s) url sha256; 26 - }; 27 28 preConfigure = '' 29 qmakeFlags+=(*.pro) 30 ''; ··· 39 "APPDATA_INSTALL_PATH=${placeholder "out"}/share/appdata" 40 ]; 41 42 - meta = { 43 - inherit (s) version; 44 description = "A tabbed document viewer"; 45 - license = lib.licenses.gpl2Plus; 46 - maintainers = [lib.maintainers.raskin]; 47 - platforms = lib.platforms.linux; 48 homepage = "https://launchpad.net/qpdfview"; 49 - updateWalker = true; 50 }; 51 }
··· 1 + { lib 2 + , mkDerivation 3 + , fetchurl 4 + , qmake 5 + , qtbase 6 + , qtsvg 7 + , pkg-config 8 + , poppler 9 + , djvulibre 10 + , libspectre 11 + , cups 12 + , file 13 + , ghostscript 14 }: 15 + mkDerivation rec { 16 + pname = "qpdfview"; 17 + version = "0.4.18"; 18 + 19 + src = fetchurl { 20 + url = "https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz"; 21 sha256 = "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c"; 22 }; 23 + 24 # apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104 25 patches = [ ./qpdfview-qt515-compat.patch ]; 26 27 + nativeBuildInputs = [ qmake pkg-config ]; 28 + buildInputs = [ 29 + qtbase 30 + qtsvg 31 + poppler 32 + djvulibre 33 + libspectre 34 + cups 35 + file 36 + ghostscript 37 + ]; 38 preConfigure = '' 39 qmakeFlags+=(*.pro) 40 ''; ··· 49 "APPDATA_INSTALL_PATH=${placeholder "out"}/share/appdata" 50 ]; 51 52 + meta = with lib; { 53 description = "A tabbed document viewer"; 54 + license = licenses.gpl2Plus; 55 + maintainers = with maintainers; [ raskin ]; 56 + platforms = platforms.linux; 57 homepage = "https://launchpad.net/qpdfview"; 58 }; 59 }
+2 -2
pkgs/applications/misc/snapmaker-luban/default.nix
··· 8 9 stdenv.mkDerivation rec { 10 pname = "snapmaker-luban"; 11 - version = "4.1.2"; 12 13 src = fetchurl { 14 url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz"; 15 - sha256 = "sha256-gS3MyXD5B9YQ+EXmIPZ+rDUE5H1AjRL64yXQX+5TM2Q="; 16 }; 17 18 nativeBuildInputs = [
··· 8 9 stdenv.mkDerivation rec { 10 pname = "snapmaker-luban"; 11 + version = "4.1.3"; 12 13 src = fetchurl { 14 url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz"; 15 + sha256 = "sha256-GXpM5dJ3JPf2HgrgTONyeCG6JjK4JhbcGP5ck7v4cqk="; 16 }; 17 18 nativeBuildInputs = [
+3 -3
pkgs/applications/misc/whalebird/default.nix
··· 3 4 stdenv.mkDerivation rec { 5 pname = "whalebird"; 6 - version = "4.4.6"; 7 8 src = fetchurl { 9 url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb"; 10 - sha256 = "sha256-Q67y6VO7U8EatMNWyJo4f9IHKylQSX7bNR0DH4bnH+A="; 11 }; 12 13 nativeBuildInputs = [ ··· 31 # Necessary steps to find the tray icon 32 asar extract opt/Whalebird/resources/app.asar "$TMP/work" 33 substituteInPlace $TMP/work/dist/electron/main.js \ 34 - --replace "Mo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\"" 35 asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar 36 37 runHook postBuild
··· 3 4 stdenv.mkDerivation rec { 5 pname = "whalebird"; 6 + version = "4.5.0"; 7 8 src = fetchurl { 9 url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb"; 10 + sha256 = "sha256-yl4R/1flm2Lfvyh9PXlJcZ1VtnP8nBQC0i7zs4U+g7g="; 11 }; 12 13 nativeBuildInputs = [ ··· 31 # Necessary steps to find the tray icon 32 asar extract opt/Whalebird/resources/app.asar "$TMP/work" 33 substituteInPlace $TMP/work/dist/electron/main.js \ 34 + --replace "jo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\"" 35 asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar 36 37 runHook postBuild
+2 -2
pkgs/applications/networking/appgate-sdp/default.nix
··· 87 in 88 stdenv.mkDerivation rec { 89 pname = "appgate-sdp"; 90 - version = "5.5.1"; 91 92 src = fetchurl { 93 url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb"; 94 - sha256 = "sha256-gN9UAdn61qUZBJLi/9QiHjNRohbQQDV1uVHgcpuXq+Y="; 95 }; 96 97 # just patch interpreter
··· 87 in 88 stdenv.mkDerivation rec { 89 pname = "appgate-sdp"; 90 + version = "5.5.2"; 91 92 src = fetchurl { 93 url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb"; 94 + sha256 = "sha256-8K7RqkxpyRsQ3QHGIfTchLaZ7/+k0hbiJdl7uc++vYs="; 95 }; 96 97 # just patch interpreter
+1 -1
pkgs/applications/office/paperless-ng/default.nix
··· 83 daphne 84 dateparser 85 django-cors-headers 86 - django_extensions 87 django-filter 88 django-picklefield 89 django-q
··· 83 daphne 84 dateparser 85 django-cors-headers 86 + django-extensions 87 django-filter 88 django-picklefield 89 django-q
+2 -2
pkgs/applications/office/super-productivity/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "super-productivity"; 5 - version = "7.9.1"; 6 7 src = fetchurl { 8 url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage"; 9 - sha256 = "sha256:0lxnl5ai23dwfsyrkpi9l1a0gl0qn6vp7hzmca77nyx974d6j8m4"; 10 name = "${pname}-${version}.AppImage"; 11 }; 12
··· 2 3 stdenv.mkDerivation rec { 4 pname = "super-productivity"; 5 + version = "7.9.2"; 6 7 src = fetchurl { 8 url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage"; 9 + sha256 = "sha256-qeHFFG1Y8qZwFvo3CFIs1+BKQo287HJfOnKKguUOlu8="; 10 name = "${pname}-${version}.AppImage"; 11 }; 12
+2 -2
pkgs/applications/version-management/git-and-tools/tig/default.nix
··· 4 5 stdenv.mkDerivation rec { 6 pname = "tig"; 7 - version = "2.5.4"; 8 9 src = fetchFromGitHub { 10 owner = "jonas"; 11 repo = pname; 12 rev = "${pname}-${version}"; 13 - sha256 = "sha256-dZqqUydZ4q/mDEjtojpMGfzAmW3yCNDvT9oCEmhq1hg="; 14 }; 15 16 nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
··· 4 5 stdenv.mkDerivation rec { 6 pname = "tig"; 7 + version = "2.5.5"; 8 9 src = fetchFromGitHub { 10 owner = "jonas"; 11 repo = pname; 12 rev = "${pname}-${version}"; 13 + sha256 = "1yx63jfbaa5h0d3lfqlczs9l7j2rnhp5jpa8qcjn4z1n415ay2x5"; 14 }; 15 16 nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
+2 -2
pkgs/data/fonts/victor-mono/default.nix
··· 1 { lib, fetchzip }: 2 3 let 4 - version = "1.5.1"; 5 in 6 fetchzip { 7 name = "victor-mono-${version}"; ··· 21 unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype 22 ''; 23 24 - sha256 = "sha256-FHahUp/Ghjv6fwsjj1giVPlAIXRMSZCSLcVMiMHvV3A="; 25 26 meta = with lib; { 27 description = "Free programming font with cursive italics and ligatures";
··· 1 { lib, fetchzip }: 2 3 let 4 + version = "1.5.2"; 5 in 6 fetchzip { 7 name = "victor-mono-${version}"; ··· 21 unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype 22 ''; 23 24 + sha256 = "sha256-cNDZh0P/enmoKL/6eHzkgl5ghtai2K9cTgWMVmm8GIA="; 25 26 meta = with lib; { 27 description = "Free programming font with cursive italics and ligatures";
+2 -2
pkgs/development/interpreters/erlang/R22.nix
··· 3 # How to obtain `sha256`: 4 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz 5 mkDerivation { 6 - version = "22.3.4.20"; 7 - sha256 = "sha256-EUErOCW16eUb/p5dLpFV7sQ3mXlCF/OgOvGAAyYEvLo="; 8 }
··· 3 # How to obtain `sha256`: 4 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz 5 mkDerivation { 6 + version = "22.3.4.24"; 7 + sha256 = "0c9713xa8sjw7nr55hysgcnbvj7gzbrpzdl94y1nqn7vw4ni8is3"; 8 }
+2 -2
pkgs/development/interpreters/erlang/R23.nix
··· 3 # How to obtain `sha256`: 4 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz 5 mkDerivation { 6 - version = "23.3.4.5"; 7 - sha256 = "2u/w8IPKHEZ+rZ3T7Wn9+Ggxe6JY8cHz8q/N0RjbrNU="; 8 }
··· 3 # How to obtain `sha256`: 4 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz 5 mkDerivation { 6 + version = "23.3.4.10"; 7 + sha256 = "0sfz7n748hvhmcygnvb6h31ag35p59aaa9h8gdpqsh6p4hnjh1mf"; 8 }
+2 -2
pkgs/development/interpreters/erlang/R24.nix
··· 3 # How to obtain `sha256`: 4 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz 5 mkDerivation { 6 - version = "24.1.7"; 7 - sha256 = "sha256-R4rZVMn9AGvOy31eA1dsz2CFMKOG/cXkbLaJtT7zBrU="; 8 }
··· 3 # How to obtain `sha256`: 4 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz 5 mkDerivation { 6 + version = "24.2"; 7 + sha256 = "10s57v2i2qqyg3gddm85n3crzrkikl4zfwgzqmxjzdynsyb4xg68"; 8 }
+21 -26
pkgs/development/python-modules/django-extensions/default.nix
··· 1 - { lib, buildPythonPackage, fetchFromGitHub, pythonOlder, django 2 , factory_boy 3 - , glibcLocales 4 , mock 5 , pygments 6 - , pytest 7 - , pytest-cov 8 , pytest-django 9 - , python-dateutil 10 , shortuuid 11 - , six 12 - , tox 13 - , typing ? null 14 , vobject 15 , werkzeug 16 }: 17 18 buildPythonPackage rec { 19 pname = "django-extensions"; 20 - version = "3.1.3"; 21 22 src = fetchFromGitHub { 23 owner = pname; 24 repo = pname; 25 rev = version; 26 - sha256 = "03mhikhh49z8bxajbjf1j790b9c9vl4zf4f86iwz7g0zrd7jqlvm"; 27 }; 28 29 - LC_ALL = "en_US.UTF-8"; 30 - __darwinAllowLocalNetworking = true; 31 32 - propagatedBuildInputs = [ six ] 33 - ++ lib.optional (pythonOlder "3.5") typing; 34 35 checkInputs = [ 36 - django 37 factory_boy 38 - glibcLocales 39 mock 40 pygments # not explicitly declared in setup.py, but some tests require it 41 - pytest 42 - pytest-cov 43 pytest-django 44 - python-dateutil 45 shortuuid 46 - tox 47 vobject 48 werkzeug 49 ]; 50 51 - # remove tests that need network access 52 - checkPhase = '' 53 - rm tests/management/commands/test_pipchecker.py 54 - DJANGO_SETTINGS_MODULE=tests.testapp.settings \ 55 - pytest django_extensions tests 56 - ''; 57 58 meta = with lib; { 59 description = "A collection of custom extensions for the Django Framework";
··· 1 + { lib 2 + , buildPythonPackage 3 + , fetchFromGitHub 4 + , django 5 , factory_boy 6 , mock 7 , pygments 8 , pytest-django 9 + , pytestCheckHook 10 , shortuuid 11 , vobject 12 , werkzeug 13 }: 14 15 buildPythonPackage rec { 16 pname = "django-extensions"; 17 + version = "3.1.5"; 18 19 src = fetchFromGitHub { 20 owner = pname; 21 repo = pname; 22 rev = version; 23 + sha256 = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM="; 24 }; 25 26 + postPatch = '' 27 + substituteInPlace setup.cfg \ 28 + --replace "--cov=django_extensions --cov-report html --cov-report term" "" 29 + ''; 30 + 31 + propagatedBuildInputs = [ 32 + django 33 + ]; 34 35 + __darwinAllowLocalNetworking = true; 36 37 checkInputs = [ 38 factory_boy 39 mock 40 pygments # not explicitly declared in setup.py, but some tests require it 41 pytest-django 42 + pytestCheckHook 43 shortuuid 44 vobject 45 werkzeug 46 ]; 47 48 + disabledTestPaths = [ 49 + # requires network access 50 + "tests/management/commands/test_pipchecker.py" 51 + ]; 52 53 meta = with lib; { 54 description = "A collection of custom extensions for the Django Framework";
+2 -1
pkgs/development/python-modules/pynetdicom/default.nix
··· 48 "TestMoveSCPCLI" 49 "TestQRGetServiceClass" 50 "TestQRMoveServiceClass" 51 "TestStoreSCP" 52 "TestStoreSCPCLI" 53 "TestStoreSCU" 54 "TestStoreSCUCLI" 55 - "TestState" 56 ]; 57 58 pythonImportsCheck = [
··· 48 "TestMoveSCPCLI" 49 "TestQRGetServiceClass" 50 "TestQRMoveServiceClass" 51 + "TestState" 52 + "TestStorageServiceClass" 53 "TestStoreSCP" 54 "TestStoreSCPCLI" 55 "TestStoreSCU" 56 "TestStoreSCUCLI" 57 ]; 58 59 pythonImportsCheck = [
+5 -2
pkgs/development/python-modules/sendgrid/default.nix
··· 4 , flask 5 , pytestCheckHook 6 , python-http-client 7 , pyyaml 8 , starkbank-ecdsa 9 , werkzeug ··· 11 12 buildPythonPackage rec { 13 pname = "sendgrid"; 14 - version = "6.9.3"; 15 format = "setuptools"; 16 17 src = fetchFromGitHub { 18 owner = pname; 19 repo = "sendgrid-python"; 20 rev = version; 21 - sha256 = "sha256-/4Wk+1zAFwK+FxRhABQBha43/zapgPDfTFGrPJjXA7s="; 22 }; 23 24 propagatedBuildInputs = [
··· 4 , flask 5 , pytestCheckHook 6 , python-http-client 7 + , pythonOlder 8 , pyyaml 9 , starkbank-ecdsa 10 , werkzeug ··· 12 13 buildPythonPackage rec { 14 pname = "sendgrid"; 15 + version = "6.9.4"; 16 format = "setuptools"; 17 18 + disabled = pythonOlder "3.6"; 19 + 20 src = fetchFromGitHub { 21 owner = pname; 22 repo = "sendgrid-python"; 23 rev = version; 24 + sha256 = "sha256-xNd0IPhaVw4X6URsg6hrDJhxmBRWam4bqgLN0uvMUxI="; 25 }; 26 27 propagatedBuildInputs = [
+22 -5
pkgs/development/python-modules/serverlessrepo/default.nix
··· 1 { lib 2 , buildPythonPackage 3 , fetchPypi 4 - , pytest 5 , boto3 6 , six 7 , pyyaml 8 , mock 9 }: 10 11 buildPythonPackage rec { 12 pname = "serverlessrepo"; 13 version = "0.1.10"; 14 15 src = fetchPypi { 16 inherit pname version; ··· 23 pyyaml 24 ]; 25 26 - checkInputs = [ pytest mock ]; 27 28 - checkPhase = '' 29 - pytest tests/unit 30 ''; 31 32 meta = with lib; { 33 homepage = "https://github.com/awslabs/aws-serverlessrepo-python"; 34 description = "Helpers for working with the AWS Serverless Application Repository"; ··· 36 A Python library with convenience helpers for working with the 37 AWS Serverless Application Repository. 38 ''; 39 - license = lib.licenses.asl20; 40 maintainers = with maintainers; [ dhkl ]; 41 }; 42 }
··· 1 { lib 2 , buildPythonPackage 3 , fetchPypi 4 + , pytestCheckHook 5 , boto3 6 , six 7 , pyyaml 8 , mock 9 + , pythonOlder 10 }: 11 12 buildPythonPackage rec { 13 pname = "serverlessrepo"; 14 version = "0.1.10"; 15 + format = "setuptools"; 16 + 17 + disabled = pythonOlder "3.7"; 18 19 src = fetchPypi { 20 inherit pname version; ··· 27 pyyaml 28 ]; 29 30 + checkInputs = [ 31 + pytestCheckHook 32 + mock 33 + ]; 34 35 + postPatch = '' 36 + substituteInPlace setup.py \ 37 + --replace "pyyaml~=5.1" "pyyaml" \ 38 + --replace "boto3~=1.9, >=1.9.56" "boto3" 39 ''; 40 41 + pytestFlagsArray = [ 42 + "tests/unit" 43 + ]; 44 + 45 + pythonImportsCheck = [ 46 + "serverlessrepo" 47 + ]; 48 + 49 meta = with lib; { 50 homepage = "https://github.com/awslabs/aws-serverlessrepo-python"; 51 description = "Helpers for working with the AWS Serverless Application Repository"; ··· 53 A Python library with convenience helpers for working with the 54 AWS Serverless Application Repository. 55 ''; 56 + license = licenses.asl20; 57 maintainers = with maintainers; [ dhkl ]; 58 }; 59 }
+11 -10
pkgs/development/tools/aws-sam-cli/default.nix
··· 5 6 python3.pkgs.buildPythonApplication rec { 7 pname = "aws-sam-cli"; 8 - version = "1.36.0"; 9 10 src = python3.pkgs.fetchPypi { 11 inherit pname version; 12 - sha256 = "sha256-GJbBhe1l25ZHGWVu1o2oJvd/BNv8dv7aIYor/ebFl9U="; 13 }; 14 - 15 - # Tests are not included in the PyPI package 16 - doCheck = false; 17 18 propagatedBuildInputs = with python3.pkgs; [ 19 aws-lambda-builders ··· 42 # fix over-restrictive version bounds 43 postPatch = '' 44 substituteInPlace requirements/base.txt \ 45 --replace "click~=7.1" "click~=8.0" \ 46 - --replace "Flask~=1.1.2" "Flask~=2.0" \ 47 --replace "dateparser~=1.0" "dateparser>=0.7" \ 48 --replace "docker~=4.2.0" "docker>=4.2.0" \ 49 --replace "requests==" "requests #" \ 50 - --replace "watchdog==" "watchdog #" \ 51 - --replace "aws_lambda_builders==" "aws-lambda-builders #" \ 52 --replace "typing_extensions==" "typing-extensions #" \ 53 - --replace "regex==" "regex #" \ 54 - --replace "tzlocal==3.0" "tzlocal" 55 ''; 56 57 meta = with lib; { 58 homepage = "https://github.com/awslabs/aws-sam-cli";
··· 5 6 python3.pkgs.buildPythonApplication rec { 7 pname = "aws-sam-cli"; 8 + version = "1.37.0"; 9 10 src = python3.pkgs.fetchPypi { 11 inherit pname version; 12 + hash = "sha256-XE3g2mKwAiaJvi0ShVScnCKrmz7ujaQgOeFXuYwtP4g="; 13 }; 14 15 propagatedBuildInputs = with python3.pkgs; [ 16 aws-lambda-builders ··· 39 # fix over-restrictive version bounds 40 postPatch = '' 41 substituteInPlace requirements/base.txt \ 42 + --replace "aws_lambda_builders==" "aws-lambda-builders #" \ 43 --replace "click~=7.1" "click~=8.0" \ 44 --replace "dateparser~=1.0" "dateparser>=0.7" \ 45 --replace "docker~=4.2.0" "docker>=4.2.0" \ 46 + --replace "Flask~=1.1.2" "Flask~=2.0" \ 47 + --replace "PyYAML~=5.3" "PyYAML" \ 48 + --replace "regex==" "regex #" \ 49 --replace "requests==" "requests #" \ 50 --replace "typing_extensions==" "typing-extensions #" \ 51 + --replace "tzlocal==3.0" "tzlocal" \ 52 + --replace "watchdog==" "watchdog #" 53 ''; 54 + 55 + # Tests are not included in the PyPI package 56 + doCheck = false; 57 58 meta = with lib; { 59 homepage = "https://github.com/awslabs/aws-sam-cli";
+1 -1
pkgs/misc/screensavers/electricsheep/default.nix
··· 10 owner = "scottdraves"; 11 repo = pname; 12 rev = "37ba0fd692d6581f8fe009ed11c9650cd8174123"; 13 - sha256 = "1z49l53j1lhk7ahdy96lm9r0pklwpf2i5s6y2l2rn6l4z8dxkjmk"; 14 }; 15 16 nativeBuildInputs = [ autoreconfHook pkg-config ];
··· 10 owner = "scottdraves"; 11 repo = pname; 12 rev = "37ba0fd692d6581f8fe009ed11c9650cd8174123"; 13 + sha256 = "sha256-v/+2dxOY/p6wNAywcFHUAfsZEJw31Syu2MacN/KeyWg="; 14 }; 15 16 nativeBuildInputs = [ autoreconfHook pkg-config ];
+2 -2
pkgs/servers/bazarr/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "bazarr"; 5 - version = "1.0.0"; 6 7 sourceRoot = "."; 8 9 src = fetchurl { 10 url = "https://github.com/morpheus65535/bazarr/releases/download/v${version}/bazarr.zip"; 11 - sha256 = "sha256-DDisK8friN3u+kNmjc9TjU0cZ/H0wf/Fu6JqZZkLdPU="; 12 }; 13 14 nativeBuildInputs = [ unzip makeWrapper ];
··· 2 3 stdenv.mkDerivation rec { 4 pname = "bazarr"; 5 + version = "1.0.2"; 6 7 sourceRoot = "."; 8 9 src = fetchurl { 10 url = "https://github.com/morpheus65535/bazarr/releases/download/v${version}/bazarr.zip"; 11 + sha256 = "sha256-aI5uxfMR+UpwxbUsJNNYYjqVX2epk60JbqWHRhB4v7I="; 12 }; 13 14 nativeBuildInputs = [ unzip makeWrapper ];
+3 -3
pkgs/servers/headscale/default.nix
··· 2 3 buildGoModule rec { 4 pname = "headscale"; 5 - version = "0.11.0"; 6 7 src = fetchFromGitHub { 8 owner = "juanfont"; 9 repo = "headscale"; 10 rev = "v${version}"; 11 - sha256 = "sha256-grLYyVYlvqBNO5CVRVDTJKEi45Nsc6Bgs8I3pY7pZfg="; 12 }; 13 14 - vendorSha256 = "sha256-t7S1jE76AFFIePrFtvrIQcId7hLeNIAm/eA9AVoFy5E="; 15 16 ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ]; 17
··· 2 3 buildGoModule rec { 4 pname = "headscale"; 5 + version = "0.12.2"; 6 7 src = fetchFromGitHub { 8 owner = "juanfont"; 9 repo = "headscale"; 10 rev = "v${version}"; 11 + sha256 = "sha256-PgSjxDmPahGd2o3QBfvytMva+LHWeLPm500DsNdB77Q="; 12 }; 13 14 + vendorSha256 = "sha256-gD4jGaR4KQiYL6+yA8g2u6cTEbfySTMErNqerw76Ook="; 15 16 ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ]; 17
+2 -2
pkgs/servers/mail/mailman/hyperkitty.nix
··· 12 , django-paintstore 13 , django-q 14 , django_compressor 15 - , django_extensions 16 , djangorestframework 17 , flufl_lock 18 , mistune_2_0 ··· 52 django-mailman3 53 django-q 54 django_compressor 55 - django_extensions 56 djangorestframework 57 flufl_lock 58 mistune_2_0
··· 12 , django-paintstore 13 , django-q 14 , django_compressor 15 + , django-extensions 16 , djangorestframework 17 , flufl_lock 18 , mistune_2_0 ··· 52 django-mailman3 53 django-q 54 django_compressor 55 + django-extensions 56 djangorestframework 57 flufl_lock 58 mistune_2_0
+15 -24
pkgs/tools/X11/ratmen/default.nix
··· 1 - {lib, stdenv, fetchurl, perl, xorgproto, libX11}: 2 - let 3 - s = # Generated upstream information 4 - rec { 5 - baseName="ratmen"; 6 - version="2.2.3"; 7 - name="${baseName}-${version}"; 8 - hash="0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6"; 9 - url="http://www.update.uu.se/~zrajm/programs/ratmen/ratmen-2.2.3.tar.gz"; 10 - sha256="0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6"; 11 }; 12 buildInputs = [ 13 - perl xorgproto libX11 14 ]; 15 - in 16 - stdenv.mkDerivation { 17 - inherit (s) name version; 18 - inherit buildInputs; 19 - src = fetchurl { 20 - inherit (s) url sha256; 21 - }; 22 makeFlags = [ 23 "PREFIX=$(out)" 24 ]; 25 - meta = { 26 - inherit (s) version; 27 description = "A minimalistic X11 menu creator"; 28 - license = lib.licenses.free ; # 9menu derivative with 9menu license 29 - maintainers = [lib.maintainers.raskin]; 30 - platforms = lib.platforms.linux; 31 homepage = "http://www.update.uu.se/~zrajm/programs/"; 32 downloadPage = "http://www.update.uu.se/~zrajm/programs/ratmen/"; 33 - updateWalker = true; 34 }; 35 }
··· 1 + { lib, stdenv, fetchurl, perl, xorgproto, libX11 }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "ratmen"; 5 + version = "2.2.3"; 6 + src = fetchurl { 7 + url = "http://www.update.uu.se/~zrajm/programs/ratmen/ratmen-${version}.tar.gz"; 8 + sha256 = "0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6"; 9 }; 10 buildInputs = [ 11 + perl 12 + xorgproto 13 + libX11 14 ]; 15 makeFlags = [ 16 "PREFIX=$(out)" 17 ]; 18 + meta = with lib; { 19 description = "A minimalistic X11 menu creator"; 20 + license = licenses.free; # 9menu derivative with 9menu license 21 + maintainers = with maintainers; [ raskin ]; 22 + platforms = platforms.linux; 23 homepage = "http://www.update.uu.se/~zrajm/programs/"; 24 downloadPage = "http://www.update.uu.se/~zrajm/programs/ratmen/"; 25 }; 26 }
+21
pkgs/tools/misc/netbootxyz-efi/default.nix
···
··· 1 + { lib 2 + , fetchurl 3 + }: 4 + 5 + let 6 + pname = "netboot.xyz-efi"; 7 + version = "2.0.53"; 8 + in fetchurl { 9 + name = "${pname}-${version}"; 10 + 11 + url = "https://github.com/netbootxyz/netboot.xyz/releases/download/${version}/netboot.xyz.efi"; 12 + sha256 = "sha256-v7XqrhG94BLTpDHDazTiowQUXu/ITEcgVMmhlqgmSQE="; 13 + 14 + meta = with lib; { 15 + homepage = "https://netboot.xyz/"; 16 + description = "A tool to boot OS installers and utilities over the network, to be run from a bootloader"; 17 + license = licenses.asl20; 18 + maintainers = with maintainers; [ Enzime ]; 19 + platforms = platforms.linux; 20 + }; 21 + }
+1 -1
pkgs/tools/misc/yubikey-manager/default.nix
··· 61 62 license = licenses.bsd2; 63 platforms = platforms.unix; 64 - maintainers = with maintainers; [ benley mic92 ]; 65 }; 66 }
··· 61 62 license = licenses.bsd2; 63 platforms = platforms.unix; 64 + maintainers = with maintainers; [ benley lassulus pinpox ]; 65 }; 66 }
+2 -2
pkgs/tools/networking/dnsproxy/default.nix
··· 2 3 buildGoModule rec { 4 pname = "dnsproxy"; 5 - version = "0.40.1"; 6 7 src = fetchFromGitHub { 8 owner = "AdguardTeam"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "sha256-tvYurE+/ZPJeV/ZKMIC0yrwzomxd/3y0KtChei/HO6c="; 12 }; 13 14 vendorSha256 = null;
··· 2 3 buildGoModule rec { 4 pname = "dnsproxy"; 5 + version = "0.40.3"; 6 7 src = fetchFromGitHub { 8 owner = "AdguardTeam"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "sha256-OkicEDu2sMEpvBbb7JFRGusMKJeQoVe3ShsbuNCoIis="; 12 }; 13 14 vendorSha256 = null;
+14 -15
pkgs/tools/networking/mtr/default.nix
··· 1 - { stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config 2 - , libcap, ncurses, jansson 3 - , withGtk ? false, gtk3 }: 4 5 stdenv.mkDerivation rec { 6 pname = "mtr${lib.optionalString withGtk "-gui"}"; 7 - version = "0.94"; 8 9 src = fetchFromGitHub { 10 owner = "traviscross"; 11 repo = "mtr"; 12 rev = "v${version}"; 13 - sha256 = "0wnz87cr2lcl74bj8qxq9xgai40az3pk9k0z893scyc8svd61xz6"; 14 }; 15 - 16 - patches = [ 17 - # pull patch to fix build failure against ncurses-6.3: 18 - # https://github.com/traviscross/mtr/pull/411 19 - (fetchpatch { 20 - name = "ncurses-6.3.patch"; 21 - url = "https://github.com/traviscross/mtr/commit/aeb493e08eabcb4e6178bda0bb84e9cd01c9f213.patch"; 22 - sha256 = "1qk8lf4sha18g36mr84vbdvll2s8khgbzyyq0as3ifx44lv0qlf2"; 23 - }) 24 - ]; 25 26 # we need this before autoreconfHook does its thing 27 postPatch = ''
··· 1 + { stdenv 2 + , lib 3 + , fetchFromGitHub 4 + , fetchpatch 5 + , autoreconfHook 6 + , pkg-config 7 + , libcap 8 + , ncurses 9 + , jansson 10 + , withGtk ? false 11 + , gtk3 12 + }: 13 14 stdenv.mkDerivation rec { 15 pname = "mtr${lib.optionalString withGtk "-gui"}"; 16 + version = "0.95"; 17 18 src = fetchFromGitHub { 19 owner = "traviscross"; 20 repo = "mtr"; 21 rev = "v${version}"; 22 + sha256 = "sha256-f5bL3IdXibIc1xXCuZHwcEV5vhypRE2mLsS3A8HW2QM="; 23 }; 24 25 # we need this before autoreconfHook does its thing 26 postPatch = ''
+2 -2
pkgs/tools/typesetting/sile/default.nix
··· 38 39 stdenv.mkDerivation rec { 40 pname = "sile"; 41 - version = "0.12.0"; 42 43 src = fetchurl { 44 url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz"; 45 - sha256 = "1rkdzf4khyvsn5qg455mdhnlacxlqgi9vchy369a66qp5nrs50y9"; 46 }; 47 48 configureFlags = [
··· 38 39 stdenv.mkDerivation rec { 40 pname = "sile"; 41 + version = "0.12.1"; 42 43 src = fetchurl { 44 url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz"; 45 + sha256 = "1dw8qs5y2m90vhjsxpnvnr8blq0ld2fvny5ir8zjharja7wny24i"; 46 }; 47 48 configureFlags = [
+5 -1
pkgs/top-level/all-packages.nix
··· 6355 6356 heimdall-gui = heimdall.override { enableGUI = true; }; 6357 6358 - headscale = callPackage ../servers/headscale { }; 6359 6360 heisenbridge = callPackage ../servers/heisenbridge { }; 6361 ··· 7970 neopg = callPackage ../tools/security/neopg { }; 7971 7972 netboot = callPackage ../tools/networking/netboot {}; 7973 7974 netcat = libressl.nc; 7975
··· 6355 6356 heimdall-gui = heimdall.override { enableGUI = true; }; 6357 6358 + headscale = callPackage ../servers/headscale { 6359 + buildGoModule = buildGo117Module; 6360 + }; 6361 6362 heisenbridge = callPackage ../servers/heisenbridge { }; 6363 ··· 7972 neopg = callPackage ../tools/security/neopg { }; 7973 7974 netboot = callPackage ../tools/networking/netboot {}; 7975 + 7976 + netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { }; 7977 7978 netcat = libressl.nc; 7979
+1
pkgs/top-level/python-aliases.nix
··· 45 discogs_client = discogs-client; # added 2021-07-02 46 djangorestframework-jwt = drf-jwt; # added 2021-07-20 47 django_environ = django-environ; # added 2021-12-25 48 django_redis = django-redis; # added 2021-10-11 49 django_taggit = django-taggit; # added 2021-10-11 50 dns = dnspython; # added 2017-12-10
··· 45 discogs_client = discogs-client; # added 2021-07-02 46 djangorestframework-jwt = drf-jwt; # added 2021-07-20 47 django_environ = django-environ; # added 2021-12-25 48 + django_extensions = django-extensions; # added 2022-01-09 49 django_redis = django-redis; # added 2021-10-11 50 django_taggit = django-taggit; # added 2021-10-11 51 dns = dnspython; # added 2017-12-10
+1 -1
pkgs/top-level/python-packages.nix
··· 2212 2213 django-environ = callPackage ../development/python-modules/django_environ { }; 2214 2215 - django_extensions = callPackage ../development/python-modules/django-extensions { }; 2216 2217 django-filter = callPackage ../development/python-modules/django-filter { }; 2218
··· 2212 2213 django-environ = callPackage ../development/python-modules/django_environ { }; 2214 2215 + django-extensions = callPackage ../development/python-modules/django-extensions { }; 2216 2217 django-filter = callPackage ../development/python-modules/django-filter { }; 2218