diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e3a18c6e7eb4..f0d1ecf5aa32 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -11,6 +11,10 @@ under the terms of [COPYING](COPYING), which is an MIT-like license.
## Submitting changes
+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.
+
+Below is a short excerpt of some points in there:
+
* Format the commit messages in the following way:
```
@@ -40,7 +44,7 @@ under the terms of [COPYING](COPYING), which is an MIT-like license.
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
* `meta.maintainers` must be set.
-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).
+See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes).
## Writing good commit messages
diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
index 6469d9faa038..115b3d7a7c5e 100644
--- a/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -104,4 +104,6 @@ chroot_add_resolv_conf "$mountPoint" || print "ERROR: failed to set up resolv.co
chroot "$mountPoint" systemd-tmpfiles --create --remove --exclude-prefix=/dev 1>&2 || true
)
+unset TMPDIR
+
exec chroot "$mountPoint" "${command[@]}"
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index e710d4282dd6..db3646b28497 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -544,6 +544,7 @@
./services/misc/gollum.nix
./services/misc/gpsd.nix
./services/misc/headphones.nix
+ ./services/misc/heisenbridge.nix
./services/misc/greenclip.nix
./services/misc/home-assistant.nix
./services/misc/ihaskell.nix
diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix
index 560264e249d0..586b9ffa6888 100644
--- a/nixos/modules/services/audio/mpd.nix
+++ b/nixos/modules/services/audio/mpd.nix
@@ -209,62 +209,42 @@ in {
config = mkIf cfg.enable {
+ # install mpd units
+ systemd.packages = [ pkgs.mpd ];
+
systemd.sockets.mpd = mkIf cfg.startWhenNeeded {
- description = "Music Player Daemon Socket";
wantedBy = [ "sockets.target" ];
listenStreams = [
(if pkgs.lib.hasPrefix "/" cfg.network.listenAddress
then cfg.network.listenAddress
else "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}")
];
- socketConfig = {
- Backlog = 5;
- KeepAlive = true;
- PassCredentials = true;
- };
};
systemd.services.mpd = {
- after = [ "network.target" "sound.target" ];
- description = "Music Player Daemon";
wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target";
- serviceConfig = mkMerge [
+ preStart =
+ ''
+ set -euo pipefail
+ install -m 600 ${mpdConf} /run/mpd/mpd.conf
+ '' + optionalString (cfg.credentials != [])
+ (concatStringsSep "\n"
+ (imap0
+ (i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'')
+ cfg.credentials));
+
+ serviceConfig =
{
User = "${cfg.user}";
- ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon /run/mpd/mpd.conf";
- ExecStartPre = pkgs.writeShellScript "mpd-start-pre" (''
- set -euo pipefail
- install -m 600 ${mpdConf} /run/mpd/mpd.conf
- '' + optionalString (cfg.credentials != [])
- (concatStringsSep "\n"
- (imap0
- (i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'')
- cfg.credentials))
- );
+ # Note: the first "" overrides the ExecStart from the upstream unit
+ ExecStart = [ "" "${pkgs.mpd}/bin/mpd --systemd /run/mpd/mpd.conf" ];
RuntimeDirectory = "mpd";
- Type = "notify";
- LimitRTPRIO = 50;
- LimitRTTIME = "infinity";
- ProtectSystem = true;
- NoNewPrivileges = true;
- ProtectKernelTunables = true;
- ProtectControlGroups = true;
- ProtectKernelModules = true;
- RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK";
- RestrictNamespaces = true;
- Restart = "always";
- }
- (mkIf (cfg.dataDir == "/var/lib/${name}") {
- StateDirectory = [ name ];
- })
- (mkIf (cfg.playlistDirectory == "/var/lib/${name}/playlists") {
- StateDirectory = [ name "${name}/playlists" ];
- })
- (mkIf (cfg.musicDirectory == "/var/lib/${name}/music") {
- StateDirectory = [ name "${name}/music" ];
- })
- ];
+ StateDirectory = []
+ ++ optionals (cfg.dataDir == "/var/lib/${name}") [ name ]
+ ++ optionals (cfg.playlistDirectory == "/var/lib/${name}/playlists") [ name "${name}/playlists" ]
+ ++ optionals (cfg.musicDirectory == "/var/lib/${name}/music") [ name "${name}/music" ];
+ };
};
users.users = optionalAttrs (cfg.user == name) {
diff --git a/nixos/modules/services/misc/heisenbridge.nix b/nixos/modules/services/misc/heisenbridge.nix
index c008c4b3999e..353a2781d28b 100644
--- a/nixos/modules/services/misc/heisenbridge.nix
+++ b/nixos/modules/services/misc/heisenbridge.nix
@@ -23,7 +23,7 @@ let
in
{
options.services.heisenbridge = {
- enable = mkEnableOption "the Matrix<->IRC bridge";
+ enable = mkEnableOption "A bouncer-style Matrix IRC bridge";
package = mkOption {
type = types.package;
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index e9697b5f0e64..2980b4ba6857 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -45,16 +45,6 @@ initrd {initrd}
options {kernel_params}
"""
-# The boot loader entry for memtest86.
-#
-# TODO: This is hard-coded to use the 64-bit EFI app, but it could probably
-# be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI
-# app filename is BOOTIA32.efi.
-MEMTEST_BOOT_ENTRY = """title MemTest86
-efi /efi/memtest86/BOOTX64.efi
-"""
-
-
def generation_conf_filename(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
pieces = [
"nixos",
@@ -283,23 +273,24 @@ def main() -> None:
except OSError as e:
print("ignoring profile '{}' in the list of boot entries because of the following error:\n{}".format(profile, e), file=sys.stderr)
- memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf"
- if os.path.exists(memtest_entry_file):
- os.unlink(memtest_entry_file)
- shutil.rmtree("@efiSysMountPoint@/efi/memtest86", ignore_errors=True)
- if "@memtest86@" != "":
- mkdir_p("@efiSysMountPoint@/efi/memtest86")
- for path in glob.iglob("@memtest86@/*"):
- if os.path.isdir(path):
- shutil.copytree(path, os.path.join("@efiSysMountPoint@/efi/memtest86", os.path.basename(path)))
- else:
- shutil.copy(path, "@efiSysMountPoint@/efi/memtest86/")
+ for root, _, files in os.walk('@efiSysMountPoint@/efi/nixos/.extra-files', topdown=False):
+ relative_root = root.removeprefix("@efiSysMountPoint@/efi/nixos/.extra-files").removeprefix("/")
+ actual_root = os.path.join("@efiSysMountPoint@", relative_root)
- memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf"
- memtest_entry_file_tmp_path = "%s.tmp" % memtest_entry_file
- with open(memtest_entry_file_tmp_path, 'w') as f:
- f.write(MEMTEST_BOOT_ENTRY)
- os.rename(memtest_entry_file_tmp_path, memtest_entry_file)
+ for file in files:
+ actual_file = os.path.join(actual_root, file)
+
+ if os.path.exists(actual_file):
+ os.unlink(actual_file)
+ os.unlink(os.path.join(root, file))
+
+ if not len(os.listdir(actual_root)):
+ os.rmdir(actual_root)
+ os.rmdir(root)
+
+ mkdir_p("@efiSysMountPoint@/efi/nixos/.extra-files")
+
+ subprocess.check_call("@copyExtraFiles@")
# Since fat32 provides little recovery facilities after a crash,
# it can leave the system in an unbootable state, when a crash/outage
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
index 0f76d7d6b24a..c07567ec82ea 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
@@ -29,6 +29,22 @@ let
inherit (efi) efiSysMountPoint canTouchEfiVariables;
memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else "";
+
+ netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";
+
+ copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
+ empty_file=$(mktemp)
+
+ ${concatStrings (mapAttrsToList (n: v: ''
+ ${pkgs.coreutils}/bin/install -Dp "${v}" "${efi.efiSysMountPoint}/"${escapeShellArg n}
+ ${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/"${escapeShellArg n}
+ '') cfg.extraFiles)}
+
+ ${concatStrings (mapAttrsToList (n: v: ''
+ ${pkgs.coreutils}/bin/install -Dp "${pkgs.writeText n v}" "${efi.efiSysMountPoint}/loader/entries/"${escapeShellArg n}
+ ${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/loader/entries/"${escapeShellArg n}
+ '') cfg.extraEntries)}
+ '';
};
checkedSystemdBootBuilder = pkgs.runCommand "systemd-boot" {
@@ -125,6 +141,74 @@ in {
true.
'';
};
+
+ entryFilename = mkOption {
+ default = "memtest86.conf";
+ type = types.str;
+ description = ''
+ systemd-boot orders the menu entries by the config file names,
+ so if you want something to appear after all the NixOS entries,
+ it should start with o or onwards.
+ '';
+ };
+ };
+
+ netbootxyz = {
+ enable = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Make netboot.xyz available from the
+ systemd-boot menu. netboot.xyz
+ is a menu system that allows you to boot OS installers and
+ utilities over the network.
+ '';
+ };
+
+ entryFilename = mkOption {
+ default = "o_netbootxyz.conf";
+ type = types.str;
+ description = ''
+ systemd-boot orders the menu entries by the config file names,
+ so if you want something to appear after all the NixOS entries,
+ it should start with o or onwards.
+ '';
+ };
+ };
+
+ extraEntries = mkOption {
+ type = types.attrsOf types.lines;
+ default = {};
+ example = literalExpression ''
+ { "memtest86.conf" = '''
+ title MemTest86
+ efi /efi/memtest86/memtest86.efi
+ '''; }
+ '';
+ description = ''
+ Any additional entries you want added to the systemd-boot menu.
+ These entries will be copied to /boot/loader/entries.
+ Each attribute name denotes the destination file name,
+ and the corresponding attribute value is the contents of the entry.
+
+ systemd-boot orders the menu entries by the config file names,
+ so if you want something to appear after all the NixOS entries,
+ it should start with o or onwards.
+ '';
+ };
+
+ extraFiles = mkOption {
+ type = types.attrsOf types.path;
+ default = {};
+ example = literalExpression ''
+ { "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; }
+ '';
+ description = ''
+ A set of files to be copied to /boot.
+ Each attribute name denotes the destination file name in
+ /boot, while the corresponding
+ attribute value specifies the source file.
+ '';
};
graceful = mkOption {
@@ -148,15 +232,64 @@ in {
assertions = [
{
assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub;
-
message = "This kernel does not support the EFI boot stub";
}
- ];
+ ] ++ concatMap (filename: [
+ {
+ assertion = !(hasInfix "/" filename);
+ message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries within folders are not supported";
+ }
+ {
+ assertion = hasSuffix ".conf" filename;
+ message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries must have a .conf file extension";
+ }
+ ]) (builtins.attrNames cfg.extraEntries)
+ ++ concatMap (filename: [
+ {
+ assertion = !(hasPrefix "/" filename);
+ message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not begin with a slash";
+ }
+ {
+ assertion = !(hasInfix ".." filename);
+ message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not reference the parent directory";
+ }
+ {
+ assertion = !(hasInfix "nixos/.extra-files" (toLower filename));
+ message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: files cannot be placed in the nixos/.extra-files directory";
+ }
+ ]) (builtins.attrNames cfg.extraFiles);
boot.loader.grub.enable = mkDefault false;
boot.loader.supportsInitrdSecrets = true;
+ boot.loader.systemd-boot.extraFiles = mkMerge [
+ # TODO: This is hard-coded to use the 64-bit EFI app, but it could probably
+ # be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI
+ # app filename is BOOTIA32.efi.
+ (mkIf cfg.memtest86.enable {
+ "efi/memtest86/BOOTX64.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi";
+ })
+ (mkIf cfg.netbootxyz.enable {
+ "efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}";
+ })
+ ];
+
+ boot.loader.systemd-boot.extraEntries = mkMerge [
+ (mkIf cfg.memtest86.enable {
+ "${cfg.memtest86.entryFilename}" = ''
+ title MemTest86
+ efi /efi/memtest86/BOOTX64.efi
+ '';
+ })
+ (mkIf cfg.netbootxyz.enable {
+ "${cfg.netbootxyz.entryFilename}" = ''
+ title netboot.xyz
+ efi /efi/netbootxyz/netboot.xyz.efi
+ '';
+ })
+ ];
+
system = {
build.installBootLoader = checkedSystemdBootBuilder;
diff --git a/nixos/tests/starship.nix b/nixos/tests/starship.nix
index f21da1e6e255..33e9a72f7000 100644
--- a/nixos/tests/starship.nix
+++ b/nixos/tests/starship.nix
@@ -13,19 +13,30 @@ import ./make-test-python.nix ({ pkgs, ... }: {
};
};
- services.getty.autologinUser = "root";
+ environment.systemPackages = map
+ (shell: pkgs.writeScriptBin "expect-${shell}" ''
+ #!${pkgs.expect}/bin/expect -f
+
+ spawn env TERM=xterm ${shell} -i
+
+ expect "" {
+ send "exit\n"
+ } timeout {
+ send_user "\n${shell} failed to display Starship\n"
+ exit 1
+ }
+
+ expect eof
+ '')
+ [ "bash" "fish" "zsh" ];
};
testScript = ''
start_all()
machine.wait_for_unit("default.target")
- for shell in ["bash", "fish", "zsh"]:
- machine.send_chars(f"script -c {shell} /tmp/{shell}.txt\n")
- machine.wait_until_tty_matches(1, f"Script started.*{shell}.txt")
- machine.send_chars("exit\n")
- machine.wait_until_tty_matches(1, "Script done")
- machine.sleep(1)
- machine.succeed(f"grep -q '' /tmp/{shell}.txt")
+ machine.succeed("expect-bash")
+ machine.succeed("expect-fish")
+ machine.succeed("expect-zsh")
'';
})
diff --git a/nixos/tests/systemd-boot.nix b/nixos/tests/systemd-boot.nix
index c3899b58d6b3..51cfd82e6c4b 100644
--- a/nixos/tests/systemd-boot.nix
+++ b/nixos/tests/systemd-boot.nix
@@ -110,4 +110,145 @@ in
assert "updating systemd-boot from (000.0-1-notnixos) to " in output
'';
};
+
+ memtest86 = makeTest {
+ name = "systemd-boot-memtest86";
+ meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
+
+ machine = { pkgs, lib, ... }: {
+ imports = [ common ];
+ boot.loader.systemd-boot.memtest86.enable = true;
+ nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+ "memtest86-efi"
+ ];
+ };
+
+ testScript = ''
+ machine.succeed("test -e /boot/loader/entries/memtest86.conf")
+ machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi")
+ '';
+ };
+
+ netbootxyz = makeTest {
+ name = "systemd-boot-netbootxyz";
+ meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
+
+ machine = { pkgs, lib, ... }: {
+ imports = [ common ];
+ boot.loader.systemd-boot.netbootxyz.enable = true;
+ };
+
+ testScript = ''
+ machine.succeed("test -e /boot/loader/entries/o_netbootxyz.conf")
+ machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
+ '';
+ };
+
+ entryFilename = makeTest {
+ name = "systemd-boot-entry-filename";
+ meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
+
+ machine = { pkgs, lib, ... }: {
+ imports = [ common ];
+ boot.loader.systemd-boot.memtest86.enable = true;
+ boot.loader.systemd-boot.memtest86.entryFilename = "apple.conf";
+ nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+ "memtest86-efi"
+ ];
+ };
+
+ testScript = ''
+ machine.fail("test -e /boot/loader/entries/memtest86.conf")
+ machine.succeed("test -e /boot/loader/entries/apple.conf")
+ machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi")
+ '';
+ };
+
+ extraEntries = makeTest {
+ name = "systemd-boot-extra-entries";
+ meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
+
+ machine = { pkgs, lib, ... }: {
+ imports = [ common ];
+ boot.loader.systemd-boot.extraEntries = {
+ "banana.conf" = ''
+ title banana
+ '';
+ };
+ };
+
+ testScript = ''
+ machine.succeed("test -e /boot/loader/entries/banana.conf")
+ machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/banana.conf")
+ '';
+ };
+
+ extraFiles = makeTest {
+ name = "systemd-boot-extra-files";
+ meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
+
+ machine = { pkgs, lib, ... }: {
+ imports = [ common ];
+ boot.loader.systemd-boot.extraFiles = {
+ "efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
+ };
+ };
+
+ testScript = ''
+ machine.succeed("test -e /boot/efi/fruits/tomato.efi")
+ machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
+ '';
+ };
+
+ switch-test = makeTest {
+ name = "systemd-boot-switch-test";
+ meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
+
+ nodes = {
+ inherit common;
+
+ machine = { pkgs, ... }: {
+ imports = [ common ];
+ boot.loader.systemd-boot.extraFiles = {
+ "efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
+ };
+ };
+
+ with_netbootxyz = { pkgs, ... }: {
+ imports = [ common ];
+ boot.loader.systemd-boot.netbootxyz.enable = true;
+ };
+ };
+
+ testScript = { nodes, ... }: let
+ originalSystem = nodes.machine.config.system.build.toplevel;
+ baseSystem = nodes.common.config.system.build.toplevel;
+ finalSystem = nodes.with_netbootxyz.config.system.build.toplevel;
+ in ''
+ machine.succeed("test -e /boot/efi/fruits/tomato.efi")
+ machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
+
+ with subtest("remove files when no longer needed"):
+ machine.succeed("${baseSystem}/bin/switch-to-configuration boot")
+ machine.fail("test -e /boot/efi/fruits/tomato.efi")
+ machine.fail("test -d /boot/efi/fruits")
+ machine.succeed("test -d /boot/efi/nixos/.extra-files")
+ machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
+ machine.fail("test -d /boot/efi/nixos/.extra-files/efi/fruits")
+
+ with subtest("files are added back when needed again"):
+ machine.succeed("${originalSystem}/bin/switch-to-configuration boot")
+ machine.succeed("test -e /boot/efi/fruits/tomato.efi")
+ machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
+
+ with subtest("simultaneously removing and adding files works"):
+ machine.succeed("${finalSystem}/bin/switch-to-configuration boot")
+ machine.fail("test -e /boot/efi/fruits/tomato.efi")
+ machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
+ machine.succeed("test -e /boot/loader/entries/o_netbootxyz.conf")
+ machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
+ machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/o_netbootxyz.conf")
+ machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi")
+ '';
+ };
}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
index 60fac91839a1..fd658aac5f44 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
@@ -52,6 +52,11 @@ self: let
super = removeAttrs imported [ "dash" ];
overrides = {
+ # upstream issue: Wrong type argument: arrayp, nil
+ org-transclusion =
+ if super.org-transclusion.version == "1.2.0"
+ then markBroken super.org-transclusion
+ else super.org-transclusion;
rcirc-menu = markBroken super.rcirc-menu; # Missing file header
cl-lib = null; # builtin
tle = null; # builtin
diff --git a/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix b/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
index 73fd2f4a0a92..caf7bbf24d28 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
@@ -9,13 +9,13 @@
trivialBuild {
pname = "ement";
- version = "unstable-2021-09-16";
+ version = "unstable-2021-10-08";
src = fetchFromGitHub {
owner = "alphapapa";
repo = "ement.el";
- rev = "c07e914f077199c95b0e7941a421675c95d4687e";
- sha256 = "sha256-kYVb2NrHYC87mY/hFUMAjb4TLJ9A2L2RrHoiAXvRaGg=";
+ rev = "c951737dc855604aba389166bb0e7366afadc533";
+ sha256 = "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy";
};
packageRequires = [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
index 59583e4d6e15..9a81f25ec1b3 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
@@ -72,6 +72,15 @@ let
overrides = lib.optionalAttrs (variant == "stable") {
+ # upstream issue: missing file header
+ abridge-diff =
+ if super.abridge-diff.version == "0.1"
+ then markBroken super.abridge-diff
+ else super.abridge-diff;
+
+ # upstream issue: missing file header
+ bufshow = markBroken super.bufshow;
+
# upstream issue: missing file header
speech-tagger = markBroken super.speech-tagger;
@@ -99,11 +108,38 @@ let
# upstream issue: missing file header
dictionary = markBroken super.dictionary;
+ # upstream issue: missing file header
+ fold-dwim =
+ if super.fold-dwim.version == "1.2"
+ then markBroken super.fold-dwim
+ else super.fold-dwim;
+
+ # upstream issue: missing file header
+ gl-conf-mode =
+ if super.gl-conf-mode.version == "0.3"
+ then markBroken super.gl-conf-mode
+ else super.gl-conf-mode;
+
+ # upstream issue: missing file header
+ ligo-mode =
+ if super.ligo-mode.version == "0.3"
+ then markBroken super.ligo-mode
+ else super.ligo-mode;
+
# upstream issue: missing file header
link = markBroken super.link;
# upstream issue: missing file header
- bufshow = markBroken super.bufshow;
+ org-dp =
+ if super.org-dp.version == "1"
+ then markBroken super.org-dp
+ else super.org-dp;
+
+ # upstream issue: missing file header
+ revbufs =
+ if super.revbufs.version == "1.2"
+ then markBroken super.revbufs
+ else super.revbufs;
# upstream issue: missing file header
elmine = markBroken super.elmine;
diff --git a/pkgs/applications/graphics/blockbench-electron/default.nix b/pkgs/applications/graphics/blockbench-electron/default.nix
index a9c258ce925d..1968756496bb 100644
--- a/pkgs/applications/graphics/blockbench-electron/default.nix
+++ b/pkgs/applications/graphics/blockbench-electron/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_8 }:
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_16 }:
stdenv.mkDerivation rec {
pname = "blockbench-electron";
- version = "3.7.5";
+ version = "4.1.1";
src = fetchurl {
url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
- sha256 = "0qqklhncd4khqmgp7jg7wap2rzkrg8b6dflmz0wmm5zxxp5vcy1c";
+ sha256 = "0mqdkjhmylrjjfrm05jv1967qqka5263fgcn9qzax08gcq93s18f";
name = "${pname}-${version}.AppImage";
};
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
'';
postFixup = ''
- makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \
+ makeWrapper ${electron_16}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
'';
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index 0e202a92d23b..d4664f7e997d 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
python3Packages.buildPythonPackage rec {
pname = "hydrus";
- version = "467";
+ version = "469";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "v${version}";
- sha256 = "sha256-ijIOCabpnaK9ww1cR+HNpCOn8uSwSEuyLWwnT2ypdD4=";
+ sha256 = "sha256-1E85SIsLXeG+AUqQYCJxOlSwiT26OG+n/d9GbyryGCE=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/imgbrd-grabber/default.nix b/pkgs/applications/graphics/imgbrd-grabber/default.nix
index 561e41d1de14..59d1e6817bd9 100644
--- a/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/pkgs/applications/graphics/imgbrd-grabber/default.nix
@@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "imgbrd-grabber";
- version = "7.7.0";
+ version = "7.7.1";
src = fetchFromGitHub {
owner = "Bionus";
repo = "imgbrd-grabber";
rev = "v${version}";
- sha256 = "sha256-Mym/fuV9YVyj5w8U9KlZ/wuwnnC3K5TGNo9RrAFHI5g=";
+ sha256 = "sha256-3qE3mdtlIlReIkUf0oH2/qmunE8nvdB0EaD7EOqaEj0=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/misc/archivebox/default.nix b/pkgs/applications/misc/archivebox/default.nix
index bd1a98ef9cce..c5c7187f0139 100644
--- a/pkgs/applications/misc/archivebox/default.nix
+++ b/pkgs/applications/misc/archivebox/default.nix
@@ -4,7 +4,7 @@
, requests
, mypy-extensions
, django_3
-, django_extensions
+, django-extensions
, dateparser
, youtube-dl
, python-crontab
@@ -37,7 +37,7 @@ buildPythonApplication rec {
requests
mypy-extensions
django_3'
- django_extensions
+ django-extensions
dateparser
youtube-dl
python-crontab
diff --git a/pkgs/applications/misc/avizo/default.nix b/pkgs/applications/misc/avizo/default.nix
index 407dd7040637..7325e29f682b 100644
--- a/pkgs/applications/misc/avizo/default.nix
+++ b/pkgs/applications/misc/avizo/default.nix
@@ -5,21 +5,28 @@
, gobject-introspection, gdk-pixbuf, wrapGAppsHook
}:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "avizo";
- version = "unstable-2021-07-21";
+ # Note: remove the 'use-sysconfig' patch on the next update
+ version = "1.1";
src = fetchFromGitHub {
owner = "misterdanb";
repo = "avizo";
- rev = "7b3874e5ee25c80800b3c61c8ea30612aaa6e8d1";
- sha256 = "sha256-ixAdiAH22Nh19uK5GoAXtAZJeAfCGSWTcGbrvCczWYc=";
+ rev = version;
+ sha256 = "sha256-0BJodJ6WaHhuSph2D1AC+DMafctgiSCyaZ8MFn89AA8=";
};
nativeBuildInputs = [ meson ninja pkg-config vala gobject-introspection wrapGAppsHook ];
buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 librsvg ];
+ patches = [
+ # Remove on next update
+ # See https://github.com/misterdanb/avizo/pull/30
+ ./use-sysconfdir-instead-of-etc.patch
+ ];
+
postInstall = ''
substituteInPlace "$out"/bin/volumectl \
--replace 'avizo-client' "$out/bin/avizo-client"
diff --git a/pkgs/applications/misc/avizo/use-sysconfdir-instead-of-etc.patch b/pkgs/applications/misc/avizo/use-sysconfdir-instead-of-etc.patch
new file mode 100644
index 000000000000..947559760cbc
--- /dev/null
+++ b/pkgs/applications/misc/avizo/use-sysconfdir-instead-of-etc.patch
@@ -0,0 +1,15 @@
+diff --git a/meson.build b/meson.build
+index 1c789be..cd4b07a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -12,7 +12,9 @@ app_resources_service = gnome.compile_resources(
+ source_dir : '.',
+ c_name : 'avizo_resources')
+
+-install_data('config.ini', install_dir: '/etc/xdg/avizo')
++sysconfdir = get_option('sysconfdir')
++
++install_data('config.ini', install_dir: join_paths(sysconfdir, 'xdg/avizo'))
+ install_data('volumectl', install_dir: 'bin')
+ install_data('lightctl', install_dir: 'bin')
+
diff --git a/pkgs/applications/misc/pdfstudio/default.nix b/pkgs/applications/misc/pdfstudio/default.nix
index dcb35c41da76..16ded8e2e8aa 100644
--- a/pkgs/applications/misc/pdfstudio/default.nix
+++ b/pkgs/applications/misc/pdfstudio/default.nix
@@ -18,7 +18,7 @@
let
year = "2021";
major = "1";
- minor = "1";
+ minor = "2";
in stdenv.mkDerivation rec {
pname = "pdfstudio";
version = "${year}.${major}.${minor}";
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb";
- sha256 = "089jfpbsxwjhx245g8svlmg213kny3z5nl6ra1flishnrsfjjcxb";
+ sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/pwsafe/default.nix b/pkgs/applications/misc/pwsafe/default.nix
index 3549fead8e28..fb12bcad3441 100644
--- a/pkgs/applications/misc/pwsafe/default.nix
+++ b/pkgs/applications/misc/pwsafe/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
done
# Fix hard coded paths.
- for f in $(grep -Rl /usr/share/ src) ; do
+ for f in $(grep -Rl /usr/share/ src install/desktop) ; do
substituteInPlace $f --replace /usr/share/ $out/share/
done
diff --git a/pkgs/applications/misc/qpdfview/default.nix b/pkgs/applications/misc/qpdfview/default.nix
index 954c17097618..db5995149c08 100644
--- a/pkgs/applications/misc/qpdfview/default.nix
+++ b/pkgs/applications/misc/qpdfview/default.nix
@@ -1,30 +1,40 @@
-{lib, mkDerivation, fetchurl, qmake, qtbase, qtsvg, pkg-config, poppler, djvulibre, libspectre, cups
-, file, ghostscript
+{ lib
+, mkDerivation
+, fetchurl
+, qmake
+, qtbase
+, qtsvg
+, pkg-config
+, poppler
+, djvulibre
+, libspectre
+, cups
+, file
+, ghostscript
}:
-let
- s = # Generated upstream information
- rec {
- baseName="qpdfview";
- version = "0.4.18";
- name="${baseName}-${version}";
- url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
+mkDerivation rec {
+ pname = "qpdfview";
+ version = "0.4.18";
+
+ src = fetchurl {
+ url = "https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
sha256 = "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c";
};
- nativeBuildInputs = [ qmake pkg-config ];
- buildInputs = [
- qtbase qtsvg poppler djvulibre libspectre cups file ghostscript
- ];
+
# apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104
patches = [ ./qpdfview-qt515-compat.patch ];
-in
-mkDerivation {
- pname = s.baseName;
- inherit (s) version;
- inherit nativeBuildInputs buildInputs patches;
- src = fetchurl {
- inherit (s) url sha256;
- };
+ nativeBuildInputs = [ qmake pkg-config ];
+ buildInputs = [
+ qtbase
+ qtsvg
+ poppler
+ djvulibre
+ libspectre
+ cups
+ file
+ ghostscript
+ ];
preConfigure = ''
qmakeFlags+=(*.pro)
'';
@@ -39,13 +49,11 @@ mkDerivation {
"APPDATA_INSTALL_PATH=${placeholder "out"}/share/appdata"
];
- meta = {
- inherit (s) version;
+ meta = with lib; {
description = "A tabbed document viewer";
- license = lib.licenses.gpl2Plus;
- maintainers = [lib.maintainers.raskin];
- platforms = lib.platforms.linux;
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.linux;
homepage = "https://launchpad.net/qpdfview";
- updateWalker = true;
};
}
diff --git a/pkgs/applications/misc/snapmaker-luban/default.nix b/pkgs/applications/misc/snapmaker-luban/default.nix
index c6b178d75b03..b8f8684e4209 100644
--- a/pkgs/applications/misc/snapmaker-luban/default.nix
+++ b/pkgs/applications/misc/snapmaker-luban/default.nix
@@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "snapmaker-luban";
- version = "4.1.2";
+ version = "4.1.3";
src = fetchurl {
url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz";
- sha256 = "sha256-gS3MyXD5B9YQ+EXmIPZ+rDUE5H1AjRL64yXQX+5TM2Q=";
+ sha256 = "sha256-GXpM5dJ3JPf2HgrgTONyeCG6JjK4JhbcGP5ck7v4cqk=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/misc/whalebird/default.nix b/pkgs/applications/misc/whalebird/default.nix
index b2475bf1d837..bb1b9213fde5 100644
--- a/pkgs/applications/misc/whalebird/default.nix
+++ b/pkgs/applications/misc/whalebird/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "whalebird";
- version = "4.4.6";
+ version = "4.5.0";
src = fetchurl {
url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb";
- sha256 = "sha256-Q67y6VO7U8EatMNWyJo4f9IHKylQSX7bNR0DH4bnH+A=";
+ sha256 = "sha256-yl4R/1flm2Lfvyh9PXlJcZ1VtnP8nBQC0i7zs4U+g7g=";
};
nativeBuildInputs = [
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
# Necessary steps to find the tray icon
asar extract opt/Whalebird/resources/app.asar "$TMP/work"
substituteInPlace $TMP/work/dist/electron/main.js \
- --replace "Mo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
+ --replace "jo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
runHook postBuild
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index e795e71554ef..bfe71ce72155 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -87,11 +87,11 @@ let
in
stdenv.mkDerivation rec {
pname = "appgate-sdp";
- version = "5.5.1";
+ version = "5.5.2";
src = fetchurl {
url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
- sha256 = "sha256-gN9UAdn61qUZBJLi/9QiHjNRohbQQDV1uVHgcpuXq+Y=";
+ sha256 = "sha256-8K7RqkxpyRsQ3QHGIfTchLaZ7/+k0hbiJdl7uc++vYs=";
};
# just patch interpreter
diff --git a/pkgs/applications/office/paperless-ng/default.nix b/pkgs/applications/office/paperless-ng/default.nix
index 64ef525cfc84..2fcb2388b8c8 100644
--- a/pkgs/applications/office/paperless-ng/default.nix
+++ b/pkgs/applications/office/paperless-ng/default.nix
@@ -83,7 +83,7 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
daphne
dateparser
django-cors-headers
- django_extensions
+ django-extensions
django-filter
django-picklefield
django-q
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 73a6b7b457ec..6b06dcf43702 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "super-productivity";
- version = "7.9.1";
+ version = "7.9.2";
src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
- sha256 = "sha256:0lxnl5ai23dwfsyrkpi9l1a0gl0qn6vp7hzmca77nyx974d6j8m4";
+ sha256 = "sha256-qeHFFG1Y8qZwFvo3CFIs1+BKQo287HJfOnKKguUOlu8=";
name = "${pname}-${version}.AppImage";
};
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index fd57eb22186f..e81bf81dd3cd 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "tig";
- version = "2.5.4";
+ version = "2.5.5";
src = fetchFromGitHub {
owner = "jonas";
repo = pname;
rev = "${pname}-${version}";
- sha256 = "sha256-dZqqUydZ4q/mDEjtojpMGfzAmW3yCNDvT9oCEmhq1hg=";
+ sha256 = "1yx63jfbaa5h0d3lfqlczs9l7j2rnhp5jpa8qcjn4z1n415ay2x5";
};
nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
diff --git a/pkgs/data/fonts/victor-mono/default.nix b/pkgs/data/fonts/victor-mono/default.nix
index 68f437a8fc8d..45873e1b7f96 100644
--- a/pkgs/data/fonts/victor-mono/default.nix
+++ b/pkgs/data/fonts/victor-mono/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
- version = "1.5.1";
+ version = "1.5.2";
in
fetchzip {
name = "victor-mono-${version}";
@@ -21,7 +21,7 @@ fetchzip {
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
- sha256 = "sha256-FHahUp/Ghjv6fwsjj1giVPlAIXRMSZCSLcVMiMHvV3A=";
+ sha256 = "sha256-cNDZh0P/enmoKL/6eHzkgl5ghtai2K9cTgWMVmm8GIA=";
meta = with lib; {
description = "Free programming font with cursive italics and ligatures";
diff --git a/pkgs/development/interpreters/erlang/R22.nix b/pkgs/development/interpreters/erlang/R22.nix
index 9236ea428948..968583543406 100644
--- a/pkgs/development/interpreters/erlang/R22.nix
+++ b/pkgs/development/interpreters/erlang/R22.nix
@@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
- version = "22.3.4.20";
- sha256 = "sha256-EUErOCW16eUb/p5dLpFV7sQ3mXlCF/OgOvGAAyYEvLo=";
+ version = "22.3.4.24";
+ sha256 = "0c9713xa8sjw7nr55hysgcnbvj7gzbrpzdl94y1nqn7vw4ni8is3";
}
diff --git a/pkgs/development/interpreters/erlang/R23.nix b/pkgs/development/interpreters/erlang/R23.nix
index 3d0a2b160065..a0d831d631f4 100644
--- a/pkgs/development/interpreters/erlang/R23.nix
+++ b/pkgs/development/interpreters/erlang/R23.nix
@@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
- version = "23.3.4.5";
- sha256 = "2u/w8IPKHEZ+rZ3T7Wn9+Ggxe6JY8cHz8q/N0RjbrNU=";
+ version = "23.3.4.10";
+ sha256 = "0sfz7n748hvhmcygnvb6h31ag35p59aaa9h8gdpqsh6p4hnjh1mf";
}
diff --git a/pkgs/development/interpreters/erlang/R24.nix b/pkgs/development/interpreters/erlang/R24.nix
index b59626e70671..b86667ec1e76 100644
--- a/pkgs/development/interpreters/erlang/R24.nix
+++ b/pkgs/development/interpreters/erlang/R24.nix
@@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
- version = "24.1.7";
- sha256 = "sha256-R4rZVMn9AGvOy31eA1dsz2CFMKOG/cXkbLaJtT7zBrU=";
+ version = "24.2";
+ sha256 = "10s57v2i2qqyg3gddm85n3crzrkikl4zfwgzqmxjzdynsyb4xg68";
}
diff --git a/pkgs/development/python-modules/django-extensions/default.nix b/pkgs/development/python-modules/django-extensions/default.nix
index 541f0434ec00..c4b023886935 100644
--- a/pkgs/development/python-modules/django-extensions/default.nix
+++ b/pkgs/development/python-modules/django-extensions/default.nix
@@ -1,59 +1,54 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, django
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, django
, factory_boy
-, glibcLocales
, mock
, pygments
-, pytest
-, pytest-cov
, pytest-django
-, python-dateutil
+, pytestCheckHook
, shortuuid
-, six
-, tox
-, typing ? null
, vobject
, werkzeug
}:
buildPythonPackage rec {
pname = "django-extensions";
- version = "3.1.3";
+ version = "3.1.5";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "03mhikhh49z8bxajbjf1j790b9c9vl4zf4f86iwz7g0zrd7jqlvm";
+ sha256 = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM=";
};
- LC_ALL = "en_US.UTF-8";
+ postPatch = ''
+ substituteInPlace setup.cfg \
+ --replace "--cov=django_extensions --cov-report html --cov-report term" ""
+ '';
+
+ propagatedBuildInputs = [
+ django
+ ];
+
__darwinAllowLocalNetworking = true;
- propagatedBuildInputs = [ six ]
- ++ lib.optional (pythonOlder "3.5") typing;
-
checkInputs = [
- django
factory_boy
- glibcLocales
mock
pygments # not explicitly declared in setup.py, but some tests require it
- pytest
- pytest-cov
pytest-django
- python-dateutil
+ pytestCheckHook
shortuuid
- tox
vobject
werkzeug
];
- # remove tests that need network access
- checkPhase = ''
- rm tests/management/commands/test_pipchecker.py
- DJANGO_SETTINGS_MODULE=tests.testapp.settings \
- pytest django_extensions tests
- '';
+ disabledTestPaths = [
+ # requires network access
+ "tests/management/commands/test_pipchecker.py"
+ ];
meta = with lib; {
description = "A collection of custom extensions for the Django Framework";
diff --git a/pkgs/development/python-modules/pynetdicom/default.nix b/pkgs/development/python-modules/pynetdicom/default.nix
index 3afa8fcf8651..fa2b369aa2ba 100644
--- a/pkgs/development/python-modules/pynetdicom/default.nix
+++ b/pkgs/development/python-modules/pynetdicom/default.nix
@@ -48,11 +48,12 @@ buildPythonPackage rec {
"TestMoveSCPCLI"
"TestQRGetServiceClass"
"TestQRMoveServiceClass"
+ "TestState"
+ "TestStorageServiceClass"
"TestStoreSCP"
"TestStoreSCPCLI"
"TestStoreSCU"
"TestStoreSCUCLI"
- "TestState"
];
pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index b71c25a283d0..2ba415adda0d 100644
--- a/pkgs/development/python-modules/sendgrid/default.nix
+++ b/pkgs/development/python-modules/sendgrid/default.nix
@@ -4,6 +4,7 @@
, flask
, pytestCheckHook
, python-http-client
+, pythonOlder
, pyyaml
, starkbank-ecdsa
, werkzeug
@@ -11,14 +12,16 @@
buildPythonPackage rec {
pname = "sendgrid";
- version = "6.9.3";
+ version = "6.9.4";
format = "setuptools";
+ disabled = pythonOlder "3.6";
+
src = fetchFromGitHub {
owner = pname;
repo = "sendgrid-python";
rev = version;
- sha256 = "sha256-/4Wk+1zAFwK+FxRhABQBha43/zapgPDfTFGrPJjXA7s=";
+ sha256 = "sha256-xNd0IPhaVw4X6URsg6hrDJhxmBRWam4bqgLN0uvMUxI=";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/serverlessrepo/default.nix b/pkgs/development/python-modules/serverlessrepo/default.nix
index 2a8267710a09..d3cc7e9c633b 100644
--- a/pkgs/development/python-modules/serverlessrepo/default.nix
+++ b/pkgs/development/python-modules/serverlessrepo/default.nix
@@ -1,16 +1,20 @@
{ lib
, buildPythonPackage
, fetchPypi
-, pytest
+, pytestCheckHook
, boto3
, six
, pyyaml
, mock
+, pythonOlder
}:
buildPythonPackage rec {
pname = "serverlessrepo";
version = "0.1.10";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
@@ -23,12 +27,25 @@ buildPythonPackage rec {
pyyaml
];
- checkInputs = [ pytest mock ];
+ checkInputs = [
+ pytestCheckHook
+ mock
+ ];
- checkPhase = ''
- pytest tests/unit
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace "pyyaml~=5.1" "pyyaml" \
+ --replace "boto3~=1.9, >=1.9.56" "boto3"
'';
+ pytestFlagsArray = [
+ "tests/unit"
+ ];
+
+ pythonImportsCheck = [
+ "serverlessrepo"
+ ];
+
meta = with lib; {
homepage = "https://github.com/awslabs/aws-serverlessrepo-python";
description = "Helpers for working with the AWS Serverless Application Repository";
@@ -36,7 +53,7 @@ buildPythonPackage rec {
A Python library with convenience helpers for working with the
AWS Serverless Application Repository.
'';
- license = lib.licenses.asl20;
+ license = licenses.asl20;
maintainers = with maintainers; [ dhkl ];
};
}
diff --git a/pkgs/development/tools/aws-sam-cli/default.nix b/pkgs/development/tools/aws-sam-cli/default.nix
index d38ac9ba88c9..444bc39bddd0 100644
--- a/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/pkgs/development/tools/aws-sam-cli/default.nix
@@ -5,16 +5,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "aws-sam-cli";
- version = "1.36.0";
+ version = "1.37.0";
src = python3.pkgs.fetchPypi {
inherit pname version;
- sha256 = "sha256-GJbBhe1l25ZHGWVu1o2oJvd/BNv8dv7aIYor/ebFl9U=";
+ hash = "sha256-XE3g2mKwAiaJvi0ShVScnCKrmz7ujaQgOeFXuYwtP4g=";
};
- # Tests are not included in the PyPI package
- doCheck = false;
-
propagatedBuildInputs = with python3.pkgs; [
aws-lambda-builders
aws-sam-translator
@@ -42,18 +39,22 @@ python3.pkgs.buildPythonApplication rec {
# fix over-restrictive version bounds
postPatch = ''
substituteInPlace requirements/base.txt \
+ --replace "aws_lambda_builders==" "aws-lambda-builders #" \
--replace "click~=7.1" "click~=8.0" \
- --replace "Flask~=1.1.2" "Flask~=2.0" \
--replace "dateparser~=1.0" "dateparser>=0.7" \
--replace "docker~=4.2.0" "docker>=4.2.0" \
- --replace "requests==" "requests #" \
- --replace "watchdog==" "watchdog #" \
- --replace "aws_lambda_builders==" "aws-lambda-builders #" \
- --replace "typing_extensions==" "typing-extensions #" \
+ --replace "Flask~=1.1.2" "Flask~=2.0" \
+ --replace "PyYAML~=5.3" "PyYAML" \
--replace "regex==" "regex #" \
- --replace "tzlocal==3.0" "tzlocal"
+ --replace "requests==" "requests #" \
+ --replace "typing_extensions==" "typing-extensions #" \
+ --replace "tzlocal==3.0" "tzlocal" \
+ --replace "watchdog==" "watchdog #"
'';
+ # Tests are not included in the PyPI package
+ doCheck = false;
+
meta = with lib; {
homepage = "https://github.com/awslabs/aws-sam-cli";
description = "CLI tool for local development and testing of Serverless applications";
diff --git a/pkgs/misc/screensavers/electricsheep/default.nix b/pkgs/misc/screensavers/electricsheep/default.nix
index d1aa7d9911b2..ff1736c09425 100644
--- a/pkgs/misc/screensavers/electricsheep/default.nix
+++ b/pkgs/misc/screensavers/electricsheep/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
owner = "scottdraves";
repo = pname;
rev = "37ba0fd692d6581f8fe009ed11c9650cd8174123";
- sha256 = "1z49l53j1lhk7ahdy96lm9r0pklwpf2i5s6y2l2rn6l4z8dxkjmk";
+ sha256 = "sha256-v/+2dxOY/p6wNAywcFHUAfsZEJw31Syu2MacN/KeyWg=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
index 5448898c5900..79f17f96b5d9 100644
--- a/pkgs/servers/bazarr/default.nix
+++ b/pkgs/servers/bazarr/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "bazarr";
- version = "1.0.0";
+ version = "1.0.2";
sourceRoot = ".";
src = fetchurl {
url = "https://github.com/morpheus65535/bazarr/releases/download/v${version}/bazarr.zip";
- sha256 = "sha256-DDisK8friN3u+kNmjc9TjU0cZ/H0wf/Fu6JqZZkLdPU=";
+ sha256 = "sha256-aI5uxfMR+UpwxbUsJNNYYjqVX2epk60JbqWHRhB4v7I=";
};
nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/servers/headscale/default.nix b/pkgs/servers/headscale/default.nix
index d3133a86c719..8057b56e9f39 100644
--- a/pkgs/servers/headscale/default.nix
+++ b/pkgs/servers/headscale/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "headscale";
- version = "0.11.0";
+ version = "0.12.2";
src = fetchFromGitHub {
owner = "juanfont";
repo = "headscale";
rev = "v${version}";
- sha256 = "sha256-grLYyVYlvqBNO5CVRVDTJKEi45Nsc6Bgs8I3pY7pZfg=";
+ sha256 = "sha256-PgSjxDmPahGd2o3QBfvytMva+LHWeLPm500DsNdB77Q=";
};
- vendorSha256 = "sha256-t7S1jE76AFFIePrFtvrIQcId7hLeNIAm/eA9AVoFy5E=";
+ vendorSha256 = "sha256-gD4jGaR4KQiYL6+yA8g2u6cTEbfySTMErNqerw76Ook=";
ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ];
diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix
index 4d4f714e7487..f66b0a9f6b03 100644
--- a/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -12,7 +12,7 @@
, django-paintstore
, django-q
, django_compressor
-, django_extensions
+, django-extensions
, djangorestframework
, flufl_lock
, mistune_2_0
@@ -52,7 +52,7 @@ buildPythonPackage rec {
django-mailman3
django-q
django_compressor
- django_extensions
+ django-extensions
djangorestframework
flufl_lock
mistune_2_0
diff --git a/pkgs/tools/X11/ratmen/default.nix b/pkgs/tools/X11/ratmen/default.nix
index 9c662a638e8a..8a07b41ac371 100644
--- a/pkgs/tools/X11/ratmen/default.nix
+++ b/pkgs/tools/X11/ratmen/default.nix
@@ -1,35 +1,26 @@
-{lib, stdenv, fetchurl, perl, xorgproto, libX11}:
-let
- s = # Generated upstream information
- rec {
- baseName="ratmen";
- version="2.2.3";
- name="${baseName}-${version}";
- hash="0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6";
- url="http://www.update.uu.se/~zrajm/programs/ratmen/ratmen-2.2.3.tar.gz";
- sha256="0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6";
+{ lib, stdenv, fetchurl, perl, xorgproto, libX11 }:
+
+stdenv.mkDerivation rec {
+ pname = "ratmen";
+ version = "2.2.3";
+ src = fetchurl {
+ url = "http://www.update.uu.se/~zrajm/programs/ratmen/ratmen-${version}.tar.gz";
+ sha256 = "0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6";
};
buildInputs = [
- perl xorgproto libX11
+ perl
+ xorgproto
+ libX11
];
-in
-stdenv.mkDerivation {
- inherit (s) name version;
- inherit buildInputs;
- src = fetchurl {
- inherit (s) url sha256;
- };
makeFlags = [
"PREFIX=$(out)"
];
- meta = {
- inherit (s) version;
+ meta = with lib; {
description = "A minimalistic X11 menu creator";
- license = lib.licenses.free ; # 9menu derivative with 9menu license
- maintainers = [lib.maintainers.raskin];
- platforms = lib.platforms.linux;
+ license = licenses.free; # 9menu derivative with 9menu license
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.linux;
homepage = "http://www.update.uu.se/~zrajm/programs/";
downloadPage = "http://www.update.uu.se/~zrajm/programs/ratmen/";
- updateWalker = true;
};
}
diff --git a/pkgs/tools/misc/netbootxyz-efi/default.nix b/pkgs/tools/misc/netbootxyz-efi/default.nix
new file mode 100644
index 000000000000..1394a8e745cb
--- /dev/null
+++ b/pkgs/tools/misc/netbootxyz-efi/default.nix
@@ -0,0 +1,21 @@
+{ lib
+, fetchurl
+}:
+
+let
+ pname = "netboot.xyz-efi";
+ version = "2.0.53";
+in fetchurl {
+ name = "${pname}-${version}";
+
+ url = "https://github.com/netbootxyz/netboot.xyz/releases/download/${version}/netboot.xyz.efi";
+ sha256 = "sha256-v7XqrhG94BLTpDHDazTiowQUXu/ITEcgVMmhlqgmSQE=";
+
+ meta = with lib; {
+ homepage = "https://netboot.xyz/";
+ description = "A tool to boot OS installers and utilities over the network, to be run from a bootloader";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Enzime ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/tools/misc/yubikey-manager/default.nix b/pkgs/tools/misc/yubikey-manager/default.nix
index adcc2bd9b042..f5722ba029e5 100644
--- a/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/pkgs/tools/misc/yubikey-manager/default.nix
@@ -61,6 +61,6 @@ python3Packages.buildPythonPackage rec {
license = licenses.bsd2;
platforms = platforms.unix;
- maintainers = with maintainers; [ benley mic92 ];
+ maintainers = with maintainers; [ benley lassulus pinpox ];
};
}
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index 8a98600f0dcf..6e1977531ea8 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "dnsproxy";
- version = "0.40.1";
+ version = "0.40.3";
src = fetchFromGitHub {
owner = "AdguardTeam";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-tvYurE+/ZPJeV/ZKMIC0yrwzomxd/3y0KtChei/HO6c=";
+ sha256 = "sha256-OkicEDu2sMEpvBbb7JFRGusMKJeQoVe3ShsbuNCoIis=";
};
vendorSha256 = null;
diff --git a/pkgs/tools/networking/mtr/default.nix b/pkgs/tools/networking/mtr/default.nix
index 177fdee99b37..9ce71df109e0 100644
--- a/pkgs/tools/networking/mtr/default.nix
+++ b/pkgs/tools/networking/mtr/default.nix
@@ -1,28 +1,27 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config
-, libcap, ncurses, jansson
-, withGtk ? false, gtk3 }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchpatch
+, autoreconfHook
+, pkg-config
+, libcap
+, ncurses
+, jansson
+, withGtk ? false
+, gtk3
+}:
stdenv.mkDerivation rec {
pname = "mtr${lib.optionalString withGtk "-gui"}";
- version = "0.94";
+ version = "0.95";
src = fetchFromGitHub {
owner = "traviscross";
repo = "mtr";
rev = "v${version}";
- sha256 = "0wnz87cr2lcl74bj8qxq9xgai40az3pk9k0z893scyc8svd61xz6";
+ sha256 = "sha256-f5bL3IdXibIc1xXCuZHwcEV5vhypRE2mLsS3A8HW2QM=";
};
- patches = [
- # pull patch to fix build failure against ncurses-6.3:
- # https://github.com/traviscross/mtr/pull/411
- (fetchpatch {
- name = "ncurses-6.3.patch";
- url = "https://github.com/traviscross/mtr/commit/aeb493e08eabcb4e6178bda0bb84e9cd01c9f213.patch";
- sha256 = "1qk8lf4sha18g36mr84vbdvll2s8khgbzyyq0as3ifx44lv0qlf2";
- })
- ];
-
# we need this before autoreconfHook does its thing
postPatch = ''
echo ${version} > .tarball-version
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index 27c8aada14c9..9e9e818bb530 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -38,11 +38,11 @@ in
stdenv.mkDerivation rec {
pname = "sile";
- version = "0.12.0";
+ version = "0.12.1";
src = fetchurl {
url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
- sha256 = "1rkdzf4khyvsn5qg455mdhnlacxlqgi9vchy369a66qp5nrs50y9";
+ sha256 = "1dw8qs5y2m90vhjsxpnvnr8blq0ld2fvny5ir8zjharja7wny24i";
};
configureFlags = [
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e44a89387cc5..0b46b5932884 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6355,7 +6355,9 @@ with pkgs;
heimdall-gui = heimdall.override { enableGUI = true; };
- headscale = callPackage ../servers/headscale { };
+ headscale = callPackage ../servers/headscale {
+ buildGoModule = buildGo117Module;
+ };
heisenbridge = callPackage ../servers/heisenbridge { };
@@ -7971,6 +7973,8 @@ with pkgs;
netboot = callPackage ../tools/networking/netboot {};
+ netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { };
+
netcat = libressl.nc;
netcat-gnu = callPackage ../tools/networking/netcat { };
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 1bccb391084a..5d19c70f03d6 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -45,6 +45,7 @@ mapAliases ({
discogs_client = discogs-client; # added 2021-07-02
djangorestframework-jwt = drf-jwt; # added 2021-07-20
django_environ = django-environ; # added 2021-12-25
+ django_extensions = django-extensions; # added 2022-01-09
django_redis = django-redis; # added 2021-10-11
django_taggit = django-taggit; # added 2021-10-11
dns = dnspython; # added 2017-12-10
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 8d0ef886aba7..8f882a15b598 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2212,7 +2212,7 @@ in {
django-environ = callPackage ../development/python-modules/django_environ { };
- django_extensions = callPackage ../development/python-modules/django-extensions { };
+ django-extensions = callPackage ../development/python-modules/django-extensions { };
django-filter = callPackage ../development/python-modules/django-filter { };