diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 2867ce402dc6..c709550db2fd 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -3486,6 +3486,11 @@
githubId = 50839;
name = "Brian Jones";
};
+ bokicoder = {
+ github = "bokicoder";
+ githubId = 193465580;
+ name = "bokicoder";
+ };
boldikoller = {
email = "boldi.koller@wtss.eu";
github = "boldikoller";
@@ -5669,6 +5674,12 @@
githubId = 4971975;
name = "Janne Heß";
};
+ dashietm = {
+ email = "fabio.lenherr@gmail.com";
+ github = "DashieTM";
+ githubId = 72016555;
+ name = "Fabio Lenherr";
+ };
dasisdormax = {
email = "dasisdormax@mailbox.org";
github = "dasisdormax";
diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md
index 50cd00ea43c3..0094ba222251 100644
--- a/nixos/doc/manual/release-notes/rl-2505.section.md
+++ b/nixos/doc/manual/release-notes/rl-2505.section.md
@@ -515,6 +515,8 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- `bind.cacheNetworks` now only controls access for recursive queries, where it previously controlled access for all queries.
+- The [Starship](https://starship.rs) module now automatically loads the starship prompt when using [`xonsh`](https://xon.sh).
+
- [`services.mongodb.enableAuth`](#opt-services.mongodb.enableAuth) now uses the newer [mongosh](https://github.com/mongodb-js/mongosh) shell instead of the legacy shell to configure the initial superuser. You can configure the mongosh package to use through the [`services.mongodb.mongoshPackage`](#opt-services.mongodb.mongoshPackage) option.
- There is a new set of NixOS test tools for testing virtual Wi-Fi networks in many different topologies. See the {option}`services.vwifi` module, {option}`services.kismet` NixOS test, and [manual](https://nixos.org/manual/nixpkgs/unstable/#sec-nixos-test-wifi) for documentation and examples.
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 015d7e4dbe53..b63c64f0188b 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -39,6 +39,14 @@
This partition layout is unsuitable for UEFI.
+ #### `legacy+boot`
+
+ The image is partitioned using MBR and:
+ - creates a FAT32 BOOT partition from 1MiB to specified `bootSize` parameter (256MiB by default), set it bootable ;
+ - creates a primary ext4 partition starting after the boot partition and extending to the full disk image
+
+ This partition layout is unsuitable for UEFI.
+
#### `legacy+gpt`
This partition table type uses GPT and:
@@ -106,7 +114,7 @@
additionalSpace ? "512M",
# size of the boot partition, is only used if partitionTableType is
- # either "efi" or "hybrid"
+ # either "efi", "hybrid", or "legacy+boot"
# This will be undersized slightly, as this is actually the offset of
# the end of the partition. Generally it will be 1MiB smaller.
bootSize ? "256M",
@@ -197,6 +205,7 @@
assert (
lib.assertOneOf "partitionTableType" partitionTableType [
"legacy"
+ "legacy+boot"
"legacy+gpt"
"efi"
"efixbootldr"
@@ -260,6 +269,7 @@ let
{
# switch-case
legacy = "1";
+ "legacy+boot" = "2";
"legacy+gpt" = "2";
efi = "2";
efixbootldr = "3";
@@ -276,6 +286,14 @@ let
mkpart primary ext4 1MiB 100% \
print
'';
+ "legacy+boot" = ''
+ parted --script $diskImage -- \
+ mklabel msdos \
+ mkpart primary fat32 1MiB $bootSizeMiB \
+ set 1 boot on \
+ mkpart primary ext4 $bootSizeMiB 100% \
+ print
+ '';
"legacy+gpt" = ''
parted --script $diskImage -- \
mklabel gpt \
@@ -540,6 +558,12 @@ let
# Add the 1MiB aligned reserved space (includes MBR)
reservedSpace=$(( mebibyte ))
''
+ else if partitionTableType == "legacy+boot" then
+ ''
+ # The explanation from the above "efi" case applies here too,
+ # but gptSpace is not needed without a GPT.
+ reservedSpace=$(( bootSize ))
+ ''
else
''
reservedSpace=0
@@ -694,6 +718,11 @@ let
${lib.optionalString touchEFIVars "mount -t efivarfs efivarfs /sys/firmware/efi/efivars"}
''}
+ ${lib.optionalString (partitionTableType == "legacy+boot") ''
+ mkdir -p /mnt/boot
+ mkfs.vfat -n BOOT /dev/vda1
+ mount /dev/vda1 /mnt/boot
+ ''}
# Install a configuration.nix
mkdir -p /mnt/etc/nixos
@@ -702,19 +731,28 @@ let
''}
${lib.optionalString installBootLoader ''
- # In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb
- # Use this option to create a symlink from vda to any arbitrary device you want.
- ${lib.optionalString (config.boot.loader.grub.enable) (
- lib.concatMapStringsSep " " (
- device:
- lib.optionalString (device != "/dev/vda") ''
- mkdir -p "$(dirname ${device})"
- ln -s /dev/vda ${device}
- ''
- ) config.boot.loader.grub.devices
- )}
+ # In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb
+ # Use this option to create a symlink from vda to any arbitrary device you want.
+ ${lib.optionalString (config.boot.loader.grub.enable) (
+ lib.concatMapStringsSep " " (
+ device:
+ lib.optionalString (device != "/dev/vda") ''
+ mkdir -p "$(dirname ${device})"
+ ln -s /dev/vda ${device}
+ ''
+ ) config.boot.loader.grub.devices
+ )}
+ ${
+ let
+ limine = config.boot.loader.limine;
+ in
+ lib.optionalString (limine.enable && limine.biosSupport && limine.biosDevice != "/dev/vda") ''
+ mkdir -p "$(dirname ${limine.biosDevice})"
+ ln -s /dev/vda ${limine.biosDevice}
+ ''
+ }
- # Set up core system link, bootloader (sd-boot, GRUB, uboot, etc.), etc.
+ # Set up core system link, bootloader (sd-boot, GRUB, uboot, etc.), etc.
# NOTE: systemd-boot-builder.py calls nix-env --list-generations which
# clobbers $HOME/.nix-defexpr/channels/nixos This would cause a folder
diff --git a/nixos/modules/programs/starship.nix b/nixos/modules/programs/starship.nix
index 044054c5452f..e606f776ab81 100644
--- a/nixos/modules/programs/starship.nix
+++ b/nixos/modules/programs/starship.nix
@@ -158,6 +158,18 @@ in
eval "$(${cfg.package}/bin/starship init zsh)"
fi
'';
+
+ # use `config` instead of `${initOption}` because `programs.xonsh` doesn't have `shellInit` or `promptInit`
+ programs.xonsh.config = ''
+ if $TERM != "dumb":
+ # don't set STARSHIP_CONFIG automatically if there's a user-specified
+ # config file. starship appears to use a hardcoded config location
+ # rather than one inside an XDG folder:
+ # https://github.com/starship/starship/blob/686bda1706e5b409129e6694639477a0f8a3f01b/src/configure.rs#L651
+ if not `$HOME/.config/starship.toml`:
+ $STARSHIP_CONFIG = ('${settingsFile}')
+ execx($(${cfg.package}/bin/starship init xonsh))
+ '';
};
meta.maintainers = pkgs.starship.meta.maintainers;
diff --git a/nixos/modules/services/misc/servarr/prowlarr.nix b/nixos/modules/services/misc/servarr/prowlarr.nix
index b8d93bd6e8a4..9682df2b161f 100644
--- a/nixos/modules/services/misc/servarr/prowlarr.nix
+++ b/nixos/modules/services/misc/servarr/prowlarr.nix
@@ -7,6 +7,7 @@
let
cfg = config.services.prowlarr;
servarr = import ./settings-options.nix { inherit lib pkgs; };
+ isCustomDataDir = cfg.dataDir != "/var/lib/prowlarr";
in
{
options = {
@@ -16,7 +17,12 @@ in
dataDir = lib.mkOption {
type = lib.types.str;
default = "/var/lib/prowlarr";
- description = "The directory where Prowlarr stores its data files.";
+ description = ''
+ The directory where Prowlarr stores its data files.
+
+ Note: A bind mount will be used to mount the directory at the expected location
+ if a different value than `/var/lib/prowlarr` is used.
+ '';
};
package = lib.mkPackageOption pkgs "prowlarr" { };
@@ -30,22 +36,6 @@ in
settings = servarr.mkServarrSettingsOptions "prowlarr" 9696;
environmentFiles = servarr.mkServarrEnvironmentFiles "prowlarr";
-
- user = lib.mkOption {
- type = lib.types.str;
- default = "prowlarr";
- description = ''
- User account under which Prowlarr runs.
- '';
- };
-
- group = lib.mkOption {
- type = lib.types.str;
- default = "prowlarr";
- description = ''
- Group under which Prowlarr runs.
- '';
- };
};
};
@@ -55,38 +45,36 @@ in
description = "Prowlarr";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings;
+ environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings // {
+ HOME = "/var/empty";
+ };
serviceConfig = {
Type = "simple";
- User = cfg.user;
- Group = cfg.group;
+ DynamicUser = true;
+ StateDirectory = "prowlarr";
EnvironmentFile = cfg.environmentFiles;
- ExecStart = "${lib.getExe cfg.package} -nobrowser -data='${cfg.dataDir}'";
+ ExecStart = "${lib.getExe cfg.package} -nobrowser -data=/var/lib/prowlarr";
Restart = "on-failure";
};
};
- tmpfiles.settings."10-prowlarr".${cfg.dataDir}.d = {
- inherit (cfg) user group;
+ tmpfiles.settings."10-prowlarr".${cfg.dataDir}.d = lib.mkIf isCustomDataDir {
+ user = "root";
+ group = "root";
mode = "0700";
};
+
+ mounts = lib.optional isCustomDataDir {
+ what = cfg.dataDir;
+ where = "/var/lib/private/prowlarr";
+ options = "bind";
+ wantedBy = [ "local-fs.target" ];
+ };
};
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.settings.server.port ];
};
-
- users.users = lib.mkIf (cfg.user == "prowlarr") {
- prowlarr = {
- isSystemUser = true;
- group = cfg.group;
- home = cfg.dataDir;
- };
- };
-
- users.groups = lib.mkIf (cfg.group == "prowlarr") {
- prowlarr = { };
- };
};
}
diff --git a/nixos/modules/services/networking/anubis.nix b/nixos/modules/services/networking/anubis.nix
index 2d63fa4ecc59..d44619446b7c 100644
--- a/nixos/modules/services/networking/anubis.nix
+++ b/nixos/modules/services/networking/anubis.nix
@@ -299,7 +299,8 @@ in
];
SystemCallArchitectures = "native";
MemoryDenyWriteExecute = true;
-
+ AmbientCapabilities = "";
+ PrivateMounts = true;
PrivateUsers = true;
PrivateTmp = true;
PrivateDevices = true;
@@ -313,6 +314,7 @@ in
ProtectSystem = "strict";
ProtectControlGroups = "strict";
LockPersonality = true;
+ RemoveIPC = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
RestrictNamespaces = true;
diff --git a/nixos/modules/system/boot/clevis.nix b/nixos/modules/system/boot/clevis.nix
index cd174d363547..881a6452d9c9 100644
--- a/nixos/modules/system/boot/clevis.nix
+++ b/nixos/modules/system/boot/clevis.nix
@@ -81,7 +81,7 @@ in
extraUtilsCommands = lib.mkIf (!systemd.enable) ''
copy_bin_and_libs ${pkgs.jose}/bin/jose
copy_bin_and_libs ${pkgs.curl}/bin/curl
- copy_bin_and_libs ${pkgs.bash}/bin/bash
+ copy_bin_and_libs ${pkgs.bashNonInteractive}/bin/bash
copy_bin_and_libs ${pkgs.tpm2-tools}/bin/.tpm2-wrapped
mv $out/bin/{.tpm2-wrapped,tpm2}
@@ -95,7 +95,7 @@ in
done
for BIN in $out/bin/clevis{,-decrypt{,-null,-tang,-tpm2}}; do
- sed -i $BIN -e 's,${pkgs.bash},,' -e 's,${pkgs.coreutils},,'
+ sed -i $BIN -e 's,${pkgs.bashNonInteractive},,' -e 's,${pkgs.coreutils},,'
done
sed -i $out/bin/clevis-decrypt-tpm2 -e 's,tpm2_,tpm2 ,'
diff --git a/nixos/modules/system/boot/loader/limine/limine-install.py b/nixos/modules/system/boot/loader/limine/limine-install.py
index c775d65d4057..d46f8c914859 100644
--- a/nixos/modules/system/boot/loader/limine/limine-install.py
+++ b/nixos/modules/system/boot/loader/limine/limine-install.py
@@ -412,27 +412,42 @@ def main():
efi_disk = find_disk_device(efi_partition)
efibootmgr_output = subprocess.check_output([efibootmgr], stderr=subprocess.STDOUT, universal_newlines=True)
- create_flag = '-c'
+
# Check the output of `efibootmgr` to find if limine is already installed and present in the boot record
- if matches := re.findall(r'Boot[0-9a-fA-F]{4}\*? Limine', efibootmgr_output):
- create_flag = '-C' # if present, keep the same boot order
+ limine_boot_entry = None
+ if matches := re.findall(r'Boot([0-9a-fA-F]{4})\*? Limine', efibootmgr_output):
+ limine_boot_entry = matches[0]
- efibootmgr_output = subprocess.check_output([
- efibootmgr,
- create_flag,
- '-d', efi_disk,
- '-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
- '-l', f'\\efi\\limine\\{boot_file}',
- '-L', 'Limine',
- ], stderr=subprocess.STDOUT, universal_newlines=True)
+ # If there's already a Limine entry, replace it
+ if limine_boot_entry:
+ boot_order = re.findall(r'BootOrder: ((?:[0-9a-fA-F]{4},?)*)', efibootmgr_output)[0]
+
+ efibootmgr_output = subprocess.check_output([
+ efibootmgr,
+ '-b', limine_boot_entry,
+ '-B',
+ ], stderr=subprocess.STDOUT, universal_newlines=True)
+
+ efibootmgr_output = subprocess.check_output([
+ efibootmgr,
+ '-c',
+ '-b', limine_boot_entry,
+ '-d', efi_disk,
+ '-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
+ '-l', f'\\efi\\limine\\{boot_file}',
+ '-L', 'Limine',
+ '-o', boot_order,
+ ], stderr=subprocess.STDOUT, universal_newlines=True)
+ else:
+ efibootmgr_output = subprocess.check_output([
+ efibootmgr,
+ '-c',
+ '-d', efi_disk,
+ '-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
+ '-l', f'\\efi\\limine\\{boot_file}',
+ '-L', 'Limine',
+ ], stderr=subprocess.STDOUT, universal_newlines=True)
- for line in efibootmgr_output.split('\n'):
- if matches := re.findall(r'Boot([0-9a-fA-F]{4}) has same label Limine', line):
- subprocess.run(
- [efibootmgr, '-b', matches[0], '-B'],
- stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL,
- )
if config('biosSupport'):
if cpu_family != 'x86':
raise Exception(f'Unsupported CPU family for BIOS install: {cpu_family}')
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 4772cedb4beb..02f653922c34 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -62,8 +62,20 @@ let
};
selectPartitionTableLayout =
- { useEFIBoot, useDefaultFilesystems }:
- if useDefaultFilesystems then if useEFIBoot then "efi" else "legacy" else "none";
+ {
+ useEFIBoot,
+ useDefaultFilesystems,
+ useBIOSBoot,
+ }:
+ if useDefaultFilesystems then
+ if useEFIBoot then
+ "efi"
+ else if useBIOSBoot then
+ "legacy+boot"
+ else
+ "legacy"
+ else
+ "none";
driveCmdline =
idx:
@@ -337,7 +349,9 @@ let
format = "qcow2";
onlyNixStore = false;
label = rootFilesystemLabel;
- partitionTableType = selectPartitionTableLayout { inherit (cfg) useDefaultFilesystems useEFIBoot; };
+ partitionTableType = selectPartitionTableLayout {
+ inherit (cfg) useBIOSBoot useDefaultFilesystems useEFIBoot;
+ };
installBootLoader = cfg.installBootLoader;
touchEFIVars = cfg.useEFIBoot;
diskSize = "auto";
@@ -431,8 +445,17 @@ in
virtualisation.bootPartition = mkOption {
type = types.nullOr types.path;
- default = if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null;
- defaultText = literalExpression ''if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null'';
+ default =
+ if cfg.useEFIBoot then
+ "/dev/disk/by-label/${espFilesystemLabel}"
+ else if cfg.useBIOSBoot then
+ "/dev/disk/by-label/BOOT"
+ else
+ null;
+ defaultText = literalExpression ''
+ if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}"
+ else if cfg.useBIOSBoot then "/dev/disk/by-label/BOOT"
+ else null'';
example = "/dev/disk/by-label/esp";
description = ''
The path (inside the VM) to the device containing the EFI System Partition (ESP).
@@ -929,6 +952,14 @@ in
'';
};
+ virtualisation.useBIOSBoot = mkEnableOption null // {
+ description = ''
+ If enabled for legacy MBR VMs, the VM image will have a separate boot
+ partition mounted at /boot.
+ useBIOSBoot is ignored if useEFIBoot == true.
+ '';
+ };
+
virtualisation.useEFIBoot = mkOption {
type = types.bool;
default = false;
@@ -1128,6 +1159,9 @@ in
`useBootLoader` useless. You might want to disable one of those options.
'';
+ # Install Limine on the bootloader device
+ boot.loader.limine.biosDevice = cfg.bootLoaderDevice;
+
# In UEFI boot, we use a EFI-only partition table layout, thus GRUB will fail when trying to install
# legacy and UEFI. In order to avoid this, we have to put "nodev" to force UEFI-only installs.
# Otherwise, we set the proper bootloader device for this.
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 5dda007c5982..c01da895fbbc 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -1126,7 +1126,7 @@ in
prosody = handleTest ./xmpp/prosody.nix { };
prosody-mysql = handleTest ./xmpp/prosody-mysql.nix { };
proxy = handleTest ./proxy.nix { };
- prowlarr = handleTest ./prowlarr.nix { };
+ prowlarr = runTest ./prowlarr.nix;
pt2-clone = handleTest ./pt2-clone.nix { };
pykms = handleTest ./pykms.nix { };
public-inbox = handleTest ./public-inbox.nix { };
diff --git a/nixos/tests/limine/bios.nix b/nixos/tests/limine/bios.nix
new file mode 100644
index 000000000000..5d367934b660
--- /dev/null
+++ b/nixos/tests/limine/bios.nix
@@ -0,0 +1,28 @@
+{ lib, ... }:
+{
+ name = "bios";
+ meta.maintainers = with lib.maintainers; [
+ lzcunt
+ phip1611
+ programmerlexi
+ ];
+ meta.platforms = [
+ "i686-linux"
+ "x86_64-linux"
+ ];
+ nodes.machine =
+ { ... }:
+ {
+ virtualisation.useBootLoader = true;
+ virtualisation.useBIOSBoot = true;
+ boot.loader.limine.enable = true;
+ boot.loader.limine.efiSupport = false;
+ boot.loader.timeout = 0;
+ };
+
+ testScript = ''
+ machine.start()
+ with subtest('Machine boots correctly'):
+ machine.wait_for_unit('multi-user.target')
+ '';
+}
diff --git a/nixos/tests/limine/default.nix b/nixos/tests/limine/default.nix
index dad761b1f882..6923fb4de62b 100644
--- a/nixos/tests/limine/default.nix
+++ b/nixos/tests/limine/default.nix
@@ -3,6 +3,7 @@
...
}:
{
+ bios = runTest ./bios.nix;
checksum = runTest ./checksum.nix;
secureBoot = runTest ./secure-boot.nix;
specialisations = runTest ./specialisations.nix;
diff --git a/nixos/tests/mealie.nix b/nixos/tests/mealie.nix
index 21e96dea4114..e296d5180ecd 100644
--- a/nixos/tests/mealie.nix
+++ b/nixos/tests/mealie.nix
@@ -36,8 +36,8 @@ import ./make-test-python.nix (
node.succeed("curl --fail http://localhost:9001")
test_mealie(sqlite)
- simple.send_monitor_command("quit")
- simple.wait_for_shutdown()
+ sqlite.send_monitor_command("quit")
+ sqlite.wait_for_shutdown()
test_mealie(postgres)
'';
}
diff --git a/nixos/tests/prowlarr.nix b/nixos/tests/prowlarr.nix
index 859ce58b3b1b..c03475df0423 100644
--- a/nixos/tests/prowlarr.nix
+++ b/nixos/tests/prowlarr.nix
@@ -1,22 +1,40 @@
-import ./make-test-python.nix (
- { lib, ... }:
+{ lib, config, ... }:
- {
- name = "prowlarr";
- meta.maintainers = with lib.maintainers; [ ];
+{
+ name = "prowlarr";
+ meta.maintainers = with lib.maintainers; [ ];
- nodes.machine =
- { pkgs, ... }:
- {
- services.prowlarr.enable = true;
+ nodes.machine =
+ { pkgs, ... }:
+ {
+ services.prowlarr.enable = true;
+ specialisation.customDataDir = {
+ inheritParentConfig = true;
+ configuration.services.prowlarr.dataDir = "/srv/prowlarr";
};
+ };
- testScript = ''
+ testScript = ''
+ def verify_prowlarr_works():
machine.wait_for_unit("prowlarr.service")
machine.wait_for_open_port(9696)
response = machine.succeed("curl --fail http://localhost:9696/")
assert '
Prowlarr' in response, "Login page didn't load successfully"
machine.succeed("[ -d /var/lib/prowlarr ]")
- '';
- }
-)
+
+ with subtest("Prowlarr starts and responds to requests"):
+ verify_prowlarr_works()
+
+ with subtest("Prowlarr data directory migration works"):
+ machine.systemctl("stop prowlarr.service")
+ machine.succeed("mkdir -p /tmp/prowlarr-migration")
+ machine.succeed("mv /var/lib/prowlarr/* /tmp/prowlarr-migration")
+ machine.succeed("${config.nodes.machine.system.build.toplevel}/specialisation/customDataDir/bin/switch-to-configuration test")
+ machine.wait_for_unit("var-lib-private-prowlarr.mount")
+ machine.succeed("mv /tmp/prowlarr-migration/* /var/lib/prowlarr")
+ machine.systemctl("restart prowlarr.service")
+ # Check that we're using a bind mount when using a non-default dataDir
+ machine.succeed("findmnt /var/lib/private/prowlarr | grep /srv/prowlarr")
+ verify_prowlarr_works()
+ '';
+}
diff --git a/pkgs/applications/emulators/libretro/cores/citra.nix b/pkgs/applications/emulators/libretro/cores/citra.nix
index febf6e8413c6..45356270486a 100644
--- a/pkgs/applications/emulators/libretro/cores/citra.nix
+++ b/pkgs/applications/emulators/libretro/cores/citra.nix
@@ -9,13 +9,13 @@
}:
mkLibretroCore {
core = "citra";
- version = "0-unstable-2025-05-07";
+ version = "0-unstable-2025-05-17";
src = fetchFromGitHub {
owner = "libretro";
repo = "citra";
- rev = "b1f9fe0c3d4d6c4e133a710bc172d9adcb40c706";
- hash = "sha256-EI8N+tjA6UsEq7sKIZ/zxeugW/oyCF+cPKX2HTjVqNI=";
+ rev = "8e634afee9e870620b40efedaef77478cd1f3c99";
+ hash = "sha256-pf0fgamSg2OHxvft36+Y4wPF9hjyZOQXEtMWs0dkNRM=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 1a134ed23c0e..1e832248c2f1 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -1110,6 +1110,15 @@
"spdx": "MPL-2.0",
"vendorHash": "sha256-KezwDRmQQj0MnmsVlrX1OhNG6oMgw8fCxX5VFGdUynw="
},
+ "routeros": {
+ "hash": "sha256-/tTd8EzA1/Js7S3eGg3L9AY9dyoIA3lFSU6VlT6p4us=",
+ "homepage": "https://registry.terraform.io/providers/terraform-routeros/routeros",
+ "owner": "terraform-routeros",
+ "repo": "terraform-provider-routeros",
+ "rev": "v1.85.0",
+ "spdx": "MPL-2.0",
+ "vendorHash": "sha256-DDmJ/mEOd94E7DqLKjT6Y4XkpVdXyKeAaE/Wj6M3vuw="
+ },
"rundeck": {
"hash": "sha256-cf+0qXpgxIsc/JbB7+u3MpmWFwUmpsinp1uARRhuBw0=",
"homepage": "https://registry.terraform.io/providers/rundeck/rundeck",
diff --git a/pkgs/by-name/ba/bashunit/package.nix b/pkgs/by-name/ba/bashunit/package.nix
index d458858dfdd0..b601f9000c1d 100644
--- a/pkgs/by-name/ba/bashunit/package.nix
+++ b/pkgs/by-name/ba/bashunit/package.nix
@@ -12,19 +12,20 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "bashunit";
- version = "0.19.0";
+ version = "0.19.1";
+
src = fetchFromGitHub {
owner = "TypedDevs";
repo = "bashunit";
tag = finalAttrs.version;
- hash = "sha256-EoCCqESzmCW12AuAqA3qh2VcE8gyUPIGJEoCcZhMA/Y=";
+ hash = "sha256-LoPtWf4Vo7hodWa0WJmqYDW7p7xJDrRZ5/qwUy/rB3U=";
forceFetchGit = true; # needed to include the tests directory for the check phase
};
nativeBuildInputs = [ makeBinaryWrapper ];
postConfigure = ''
- patchShebangs src tests build.sh bashunit
+ patchShebangs tests build.sh bashunit
substituteInPlace Makefile \
--replace-fail "SHELL=/bin/bash" "SHELL=${lib.getExe bash}"
'';
@@ -41,9 +42,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook postInstall
'';
- # some tests are currently broken on linux and it is not easy to disable them
- # reenable them after https://github.com/TypedDevs/bashunit/pull/397 has been merged
- doCheck = false;
+ doCheck = true;
nativeCheckInputs = [ which ];
checkPhase = ''
runHook preCheck
diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json
index 320bb49a8443..035b36b59263 100644
--- a/pkgs/by-name/cl/claude-code/package-lock.json
+++ b/pkgs/by-name/cl/claude-code/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "@anthropic-ai/claude-code": "^1.0.2"
+ "@anthropic-ai/claude-code": "^1.0.3"
}
},
"node_modules/@anthropic-ai/claude-code": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.2.tgz",
- "integrity": "sha512-6p7RMXEcVfymsJ7v0GyMfA3gcD2AbFVSb9b1Py4tbxM2ensjyaSx3wVQW2QiFk+9mhoRkYc0ETVnJ1x/G0LW7g==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.3.tgz",
+ "integrity": "sha512-a4aBhcXGG7k4YtyF2aYVKt08h48BG+F12RA/G3K1vb6unl9CAvWDP/A7xudtCOzxFKxLwxctrn74pHEdpmHSPw==",
"hasInstallScript": true,
"license": "SEE LICENSE IN README.md",
"bin": {
diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix
index 53519341a4c2..456488949cad 100644
--- a/pkgs/by-name/cl/claude-code/package.nix
+++ b/pkgs/by-name/cl/claude-code/package.nix
@@ -7,16 +7,16 @@
buildNpmPackage rec {
pname = "claude-code";
- version = "1.0.2";
+ version = "1.0.3";
nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin
src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
- hash = "sha256-mQv2o9uaOZiZSdkNmLiqJs66fe9fiHfEmrXQZwmME34=";
+ hash = "sha256-LjDxVv6KSTuRZhCHztvf81E5DQbkqs8cbrnbbGkCeQU=";
};
- npmDepsHash = "sha256-Diii1tBBzYlB4svlphtu1VAOoijoq9WudxtJFSXXbbE=";
+ npmDepsHash = "sha256-muMukVEj6uXkupSoyp41FihsLth0ENgfzBlD5CwlE2w=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
diff --git a/pkgs/by-name/co/code-cursor/package.nix b/pkgs/by-name/co/code-cursor/package.nix
index 2e37479f805f..118866891f9b 100644
--- a/pkgs/by-name/co/code-cursor/package.nix
+++ b/pkgs/by-name/co/code-cursor/package.nix
@@ -49,26 +49,26 @@
}:
let
pname = "cursor";
- version = "0.49.6";
+ version = "0.50.5";
inherit (stdenvNoCC) hostPlatform;
sources = {
x86_64-linux = fetchurl {
- url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/x64/Cursor-0.49.6-x86_64.AppImage";
- hash = "sha256-WH4/Zw0VJmRGyRzMlkThkhZ4fGysMKBUSIPCTsyGS4w=";
+ url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/x64/Cursor-0.50.5-x86_64.AppImage";
+ hash = "sha256-DUWIgQYD3Wj6hF7NBb00OGRynKmXcFldWFUA6W8CZeM=";
};
aarch64-linux = fetchurl {
- url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/linux/arm64/Cursor-0.49.6-aarch64.AppImage";
- hash = "sha256-cpNoff6mDRkT2RicaDlxzqVP9BNe6UEGgJVHr1xMiv0=";
+ url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/linux/arm64/Cursor-0.50.5-aarch64.AppImage";
+ hash = "sha256-51zTYg4A+4ZUbGZ6/Qp3d5aL8IafewGOUYbXWGG8ILY=";
};
x86_64-darwin = fetchurl {
- url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/x64/Cursor-darwin-x64.dmg";
- hash = "sha256-fAaLY9YTIuNThFl5OsIMHavy2xwDgYooL4xTSp4Cwzw=";
+ url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/x64/Cursor-darwin-x64.dmg";
+ hash = "sha256-C2+z3WXi3Ma3PzlU8BrcuJFGMx8YosNdxuSqR5tJdBE=";
};
aarch64-darwin = fetchurl {
- url = "https://downloads.cursor.com/production/0781e811de386a0c5bcb07ceb259df8ff8246a52/darwin/arm64/Cursor-darwin-arm64.dmg";
- hash = "sha256-DNN2+gfs9u0tZmh75J258d2TL6ErIYludMgPJZcgfb8=";
+ url = "https://downloads.cursor.com/production/96e5b01ca25f8fbd4c4c10bc69b15f6228c80771/darwin/arm64/Cursor-darwin-arm64.dmg";
+ hash = "sha256-Gz+aYDaDMDx46R7HA8u5vZwkXx9q//uu4hNyyRmrq9s=";
};
};
@@ -191,6 +191,7 @@ stdenvNoCC.mkDerivation {
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [
aspauldingcode
+ prince213
];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "cursor";
diff --git a/pkgs/by-name/co/code-cursor/update.sh b/pkgs/by-name/co/code-cursor/update.sh
index e0ee1c274321..20e7abf12025 100755
--- a/pkgs/by-name/co/code-cursor/update.sh
+++ b/pkgs/by-name/co/code-cursor/update.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl yq coreutils common-updater-scripts
+#!nix-shell -i bash -p curl jq coreutils common-updater-scripts
set -eu -o pipefail
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; code-cursor.version or (lib.getVersion code-cursor)" | tr -d '"')
diff --git a/pkgs/by-name/co/coredns/package.nix b/pkgs/by-name/co/coredns/package.nix
index c0c8d6d97acc..109b6ac2ec76 100644
--- a/pkgs/by-name/co/coredns/package.nix
+++ b/pkgs/by-name/co/coredns/package.nix
@@ -10,26 +10,7 @@
}:
let
- attrsToPlugins =
- attrs:
- builtins.map (
- {
- name,
- repo,
- version,
- }:
- "${name}:${repo}"
- ) attrs;
- attrsToSources =
- attrs:
- builtins.map (
- {
- name,
- repo,
- version,
- }:
- "${repo}@${version}"
- ) attrs;
+ attrsToSources = attrs: builtins.map ({ repo, version, ... }: "${repo}@${version}") attrs;
in
buildGoModule rec {
pname = "coredns";
@@ -53,7 +34,47 @@ buildGoModule rec {
# Override the go-modules fetcher derivation to fetch plugins
modBuildPhase = ''
- for plugin in ${builtins.toString (attrsToPlugins externalPlugins)}; do echo $plugin >> plugin.cfg; done
+ cp plugin.cfg plugin.cfg.orig
+ ${
+ (lib.concatMapStringsSep "\n" (
+ plugin:
+ let
+ position = plugin.position or "end-of-file";
+ formatPlugin = { name, repo, ... }: "${name}:${repo}";
+ in
+ if position == "end-of-file" then
+ "echo '${formatPlugin plugin}' >> plugin.cfg"
+ else if position == "start-of-file" then
+ "sed -i '1i ${formatPlugin plugin}' plugin.cfg"
+ else if lib.hasAttrByPath [ "before" ] position then
+ ''
+ if ! grep -q '^${position.before}:' plugin.cfg; then
+ echo 'Failed to insert ${plugin.name} before ${position.before} in plugin.cfg: ${position.before} is not in plugin.cfg'
+ exit 1
+ fi
+ sed -i '/^${position.before}:/i ${formatPlugin plugin}' plugin.cfg
+ ''
+ else if lib.hasAttrByPath [ "after" ] position then
+ ''
+ if ! grep -q '^${position.after}:' plugin.cfg; then
+ echo 'Failed to insert ${plugin.name} after ${position.after} in plugin.cfg: ${position.after} is not in plugin.cfg'
+ exit 1
+ fi
+ sed -i '/^${position.after}:/a ${formatPlugin plugin}' plugin.cfg
+ ''
+ else
+ throw ''
+ Unsupported position value in externalPlugin:
+ ${builtins.toJSON plugin}.
+ Valid values for position attr are:
+ - position = "end-of-file" (the default)
+ - position = "start-of-file"
+ - position.before = "{other plugin}"
+ - position.after = "{other plugin}"
+ ''
+ ) externalPlugins)
+ }
+ diff -u plugin.cfg.orig plugin.cfg || true
for src in ${builtins.toString (attrsToSources externalPlugins)}; do go get $src; done
GOOS= GOARCH= go generate
go mod vendor
diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix
index f56dc18dcdbf..ee7ec2c69559 100644
--- a/pkgs/by-name/db/dbeaver-bin/package.nix
+++ b/pkgs/by-name/db/dbeaver-bin/package.nix
@@ -17,7 +17,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbeaver-bin";
- version = "25.0.4";
+ version = "25.0.5";
src =
let
@@ -30,10 +30,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
aarch64-darwin = "macos-aarch64.dmg";
};
hash = selectSystem {
- x86_64-linux = "sha256-ALtJIld7gT4pj+jGRkwMloq6B/ZBOMYZxws9N7xNNZg=";
- aarch64-linux = "sha256-Ka+jEI6y1BRqV83yDvu1yDzJfpUIxKKD+zehVHcNQ/o=";
- x86_64-darwin = "sha256-P8f0NlMjh/46RChQy8JIm71msqX023K2QaFEic2Br9M=";
- aarch64-darwin = "sha256-a9H9M1j6iPcrVcfDxCZHeZj6e55QH3XochXaL2OStlI=";
+ x86_64-linux = "sha256-8JkvI6OZGP1Ot2TEP2n4hj3s9As7holT+thVf0BvOMQ=";
+ aarch64-linux = "sha256-cZQFEbogSxuIaS/z/tFQcvs08J0Omi21zLqb0eFQNw0=";
+ x86_64-darwin = "sha256-LueOQZIKB/r6gtlj0+xwoJXMRTFvbSY+RTwAB74KiYo=";
+ aarch64-darwin = "sha256-L6bOyvhlsT4sXL1QDhlJtb8DFfDVw21ixyRenOVdCxU=";
};
in
fetchurl {
diff --git a/pkgs/by-name/fa/fancontrol-gui/package.nix b/pkgs/by-name/fa/fancontrol-gui/package.nix
new file mode 100644
index 000000000000..300a29826289
--- /dev/null
+++ b/pkgs/by-name/fa/fancontrol-gui/package.nix
@@ -0,0 +1,62 @@
+{
+ cmake,
+ extra-cmake-modules,
+ fancontrol-gui,
+ fetchFromGitHub,
+ lib,
+ libgcc,
+ libsForQt5,
+ nix-update-script,
+ stdenv,
+ testers,
+}:
+stdenv.mkDerivation rec {
+ pname = "fancontrol-gui";
+ version = "0.8";
+
+ src = fetchFromGitHub {
+ owner = "Maldela";
+ repo = "fancontrol-gui";
+ tag = "v${version}";
+ hash = "sha256-hJaU8SL0b6GmTONGSIzUzzbex6KxHf2Np0bCX8YSSVM=";
+ };
+
+ buildInputs = with libsForQt5; [
+ libgcc
+ kcmutils
+ kdeclarative
+ kio
+ plasma-framework
+ qt5.qtdeclarative
+ qt5.qtquickcontrols
+ qt5.qtquickcontrols2
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ extra-cmake-modules
+ libsForQt5.wrapQtAppsHook
+ ];
+
+ patches = [
+ ./version.patch
+ ];
+
+ passthru = {
+ tests.version = testers.testVersion {
+ package = fancontrol-gui;
+ command = "env QT_QPA_PLATFORM=minimal ${lib.getExe fancontrol-gui} --version";
+ };
+ updateScript = nix-update-script { };
+ };
+
+ meta = {
+ description = "GUI for fancontrol with QT and KDE framework 5";
+ homepage = "https://github.com/Maldela/fancontrol-gui";
+ changelog = "https://github.com/Maldela/fancontrol-gui/releases/tag/v${version}";
+ license = lib.licenses.gpl2Plus;
+ mainProgram = "fancontrol_gui";
+ maintainers = with lib.maintainers; [ dashietm ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/pkgs/by-name/fa/fancontrol-gui/version.patch b/pkgs/by-name/fa/fancontrol-gui/version.patch
new file mode 100644
index 000000000000..9b0ea0943b8f
--- /dev/null
+++ b/pkgs/by-name/fa/fancontrol-gui/version.patch
@@ -0,0 +1,13 @@
+diff --git a/fancontrol-gui/src/main.cpp b/fancontrol-gui/src/main.cpp
+index 9f33fa0..ae0deb6 100644
+--- a/fancontrol-gui/src/main.cpp
++++ b/fancontrol-gui/src/main.cpp
+@@ -81,7 +81,7 @@ int main(int argc, char *argv[])
+
+ auto about = KAboutData(QStringLiteral("org.kde.fancontrol.gui"),
+ i18n("Fancontrol-GUI"),
+- QStringLiteral("0.7"),
++ QStringLiteral("0.8"),
+ i18n("Graphical user interface for fancontrol"),
+ KAboutLicense::KAboutLicense::GPL_V2,
+ QStringLiteral("Copyright (C) 2015 Malte Veerman"),
diff --git a/pkgs/by-name/gr/graphite-cli/package-lock.json b/pkgs/by-name/gr/graphite-cli/package-lock.json
index 4ea132ec68e6..99209616e9bc 100644
--- a/pkgs/by-name/gr/graphite-cli/package-lock.json
+++ b/pkgs/by-name/gr/graphite-cli/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@withgraphite/graphite-cli",
- "version": "1.6.1",
+ "version": "1.6.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@withgraphite/graphite-cli",
- "version": "1.6.1",
+ "version": "1.6.2",
"hasInstallScript": true,
"license": "None",
"dependencies": {
@@ -21,9 +21,9 @@
}
},
"node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
diff --git a/pkgs/by-name/gr/graphite-cli/package.nix b/pkgs/by-name/gr/graphite-cli/package.nix
index 8c9e09ba7938..f68a6994ebb0 100644
--- a/pkgs/by-name/gr/graphite-cli/package.nix
+++ b/pkgs/by-name/gr/graphite-cli/package.nix
@@ -8,14 +8,14 @@
buildNpmPackage rec {
pname = "graphite-cli";
- version = "1.6.1";
+ version = "1.6.2";
src = fetchurl {
url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
- hash = "sha256-r7tChs0vsg60LXFf9WZjthqMxXGgohNL4ojdjXNZcCo=";
+ hash = "sha256-k8zZyzLXQkII87QXjoXYlcQPj09PcMCuNy2NFPT2tHY=";
};
- npmDepsHash = "sha256-DoK3GaGIwei9kumvAwfgaIY9iw+Z6ysFzUm5dMVV2W4=";
+ npmDepsHash = "sha256-HSiitFpXcIWkE/t0LtuDH9Z4fDgyFWc0/gdIsuvVq9I=";
postPatch = ''
ln -s ${./package-lock.json} package-lock.json
diff --git a/pkgs/by-name/gu/guile-mqtt/package.nix b/pkgs/by-name/gu/guile-mqtt/package.nix
index f447f32590c4..fa6c41c46aa8 100644
--- a/pkgs/by-name/gu/guile-mqtt/package.nix
+++ b/pkgs/by-name/gu/guile-mqtt/package.nix
@@ -9,12 +9,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "guile-mqtt";
- version = "0.2.1";
+ version = "1.0.0";
# building from git repo requires nyacc>=2.01.3
src = fetchurl {
url = "https://github.com/mdjurfeldt/guile-mqtt/releases/download/v${finalAttrs.version}/guile-mqtt-${finalAttrs.version}.tar.gz";
- hash = "sha256-+qfrUw8yIY8iObEVLbg6bOfiQNR5Lkw2n9oHMr3JQ5k=";
+ hash = "sha256-6+U3FHewbdI8l7r4pVCrd0DNKPy4BHHy2m/hcQ7ByBQ=";
};
strictDeps = true;
diff --git a/pkgs/by-name/im/imager/numpy-header.patch b/pkgs/by-name/im/imager/numpy-header.patch
new file mode 100644
index 000000000000..6424c5a54f59
--- /dev/null
+++ b/pkgs/by-name/im/imager/numpy-header.patch
@@ -0,0 +1,26 @@
+diff --git a/admin/gildas-env.sh b/admin/gildas-env.sh
+index acb06f9..b25ecd5 100644
+--- a/admin/gildas-env.sh
++++ b/admin/gildas-env.sh
+@@ -441,7 +441,7 @@ EOF
+ # Now search for Numpy
+ if python -c "import numpy" > /dev/null 2>&1; then
+ NUMPY_PRESENT=yes
+- NUMPY_INC_DIR=`python -c "import numpy; print(numpy.__path__[0] + '/core/include')"`
++ NUMPY_INC_DIR=`python -c "import numpy; print(numpy.get_include())"`
+ if [ -e "$NUMPY_INC_DIR/numpy/arrayobject.h" ]; then
+ NUMPY_INC_PRESENT=yes
+ else
+diff --git a/utilities/etc/setup.py.src b/utilities/etc/setup.py.src
+index 9a4da86..110a0d1 100644
+--- a/utilities/etc/setup.py.src
++++ b/utilities/etc/setup.py.src
+@@ -75,7 +75,7 @@ mod_extras = mod_extras.split()
+
+ if (os.environ.get('NUMPY_PRESENT') == "yes"):
+ import numpy
+- mod_inc_dirs.append(numpy.__path__[0] + '/core/include')
++ mod_inc_dirs.append(numpy.get_include())
+ else:
+ raise Exception("Numpy python package should be present. Aborting.")
+
diff --git a/pkgs/by-name/im/imager/package.nix b/pkgs/by-name/im/imager/package.nix
index b3f393b7571c..d21c94272127 100644
--- a/pkgs/by-name/im/imager/package.nix
+++ b/pkgs/by-name/im/imager/package.nix
@@ -59,6 +59,9 @@ stdenv.mkDerivation (finalAttrs: {
./clang.patch
# Replace hardcoded cpp with GAG_CPP (see below).
./cpp-darwin.patch
+ # Fix the numpy header detection with numpy > 2.0.0
+ # Patch submitted upstream, it will be included in the next release.
+ ./numpy-header.patch
];
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument";
diff --git a/pkgs/by-name/ka/kanboard/package.nix b/pkgs/by-name/ka/kanboard/package.nix
index b6514c79a2bf..9d3b860433e1 100644
--- a/pkgs/by-name/ka/kanboard/package.nix
+++ b/pkgs/by-name/ka/kanboard/package.nix
@@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "kanboard";
- version = "1.2.44";
+ version = "1.2.45";
src = fetchFromGitHub {
owner = "kanboard";
repo = "kanboard";
tag = "v${finalAttrs.version}";
- hash = "sha256-0vMHNB0wEyjp8oNWh1PZ2oT/Lpk/eiXrDNA5Dzv8xqI=";
+ hash = "sha256-MGQ+FJcdRx4VZppLnoB9lCC1eIoetbToyvBsWRBRSu4=";
};
dontBuild = true;
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/pin.json b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
index 1e2ba69c807e..ec43cd01494a 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/pin.json
+++ b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
@@ -1,10 +1,10 @@
{
"stable": {
- "version": "5.16.4",
- "hash": "sha256-1ERKook2z8fKHOkAi43fU0amBgQaxYewFYCQGjFcF3o="
+ "version": "5.16.9",
+ "hash": "sha256-D6ea+fDffOxAPf9+dCOjbr9+meXdOEUN+1BAicO2xhc="
},
"beta": {
- "version": "5.16.4",
- "hash": "sha256-1ERKook2z8fKHOkAi43fU0amBgQaxYewFYCQGjFcF3o="
+ "version": "5.16.9",
+ "hash": "sha256-D6ea+fDffOxAPf9+dCOjbr9+meXdOEUN+1BAicO2xhc="
}
}
diff --git a/pkgs/by-name/nb/nb/package.nix b/pkgs/by-name/nb/nb/package.nix
index 0645cdeb9298..1784ea6e499f 100644
--- a/pkgs/by-name/nb/nb/package.nix
+++ b/pkgs/by-name/nb/nb/package.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "nb";
- version = "7.18.1";
+ version = "7.19.1";
src = fetchFromGitHub {
owner = "xwmx";
repo = "nb";
rev = version;
- hash = "sha256-SKn4/Nqmvv8kRQkooGrvTuVrj70rastVg4j7U3cXdYg=";
+ hash = "sha256-vryc1sfjIE2ZaZ4Z/KG1Zij81tIwImUMjk2ZZvzpDF4=";
};
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/by-name/ni/niriswitcher/package.nix b/pkgs/by-name/ni/niriswitcher/package.nix
new file mode 100644
index 000000000000..c40357fbae9b
--- /dev/null
+++ b/pkgs/by-name/ni/niriswitcher/package.nix
@@ -0,0 +1,54 @@
+{
+ lib,
+ python3Packages,
+ fetchFromGitHub,
+ wrapGAppsHook4,
+ gobject-introspection,
+ gtk4-layer-shell,
+ libadwaita,
+}:
+
+python3Packages.buildPythonPackage rec {
+ pname = "niriswitcher";
+ version = "0.5.2";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "isaksamsten";
+ repo = "niriswitcher";
+ tag = version;
+ hash = "sha256-jXnob/CJ3wrqYhbFRu7TnnnCrsKaDazD3t9lZoJVhdQ=";
+ };
+
+ build-system = [ python3Packages.hatchling ];
+
+ nativeBuildInputs = [
+ wrapGAppsHook4
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ gtk4-layer-shell
+ libadwaita
+ ];
+
+ dependencies = [ python3Packages.pygobject3 ];
+
+ dontWrapGApps = true;
+
+ preFixup = ''
+ makeWrapperArgs+=(
+ ''${gappsWrapperArgs[@]}
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gtk4-layer-shell ]}
+ )
+ '';
+
+ meta = {
+ description = "Application switcher for niri";
+ homepage = "https://github.com/isaksamsten/niriswitcher";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ bokicoder ];
+ mainProgram = "niriswitcher";
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/pkgs/by-name/nv/nvitop/package.nix b/pkgs/by-name/nv/nvitop/package.nix
index 9436ba6386b7..a8b075749be3 100644
--- a/pkgs/by-name/nv/nvitop/package.nix
+++ b/pkgs/by-name/nv/nvitop/package.nix
@@ -7,13 +7,13 @@
python3Packages.buildPythonApplication rec {
pname = "nvitop";
- version = "1.5.0";
+ version = "1.5.1";
src = fetchFromGitHub {
owner = "XuehaiPan";
repo = "nvitop";
tag = "v${version}";
- hash = "sha256-1WL1S6jUbCLtuAe223AAmCcOcLZ0rStE04uCd0L9gVw=";
+ hash = "sha256-FQbY9j6eJtupBiYTSCEJHAAlpDltb6U5hgWet42AKho=";
};
pythonRelaxDeps = [ "nvidia-ml-py" ];
diff --git a/pkgs/by-name/oh/oha/package.nix b/pkgs/by-name/oh/oha/package.nix
index 20cadb0eff29..e0443aa161ab 100644
--- a/pkgs/by-name/oh/oha/package.nix
+++ b/pkgs/by-name/oh/oha/package.nix
@@ -5,6 +5,7 @@
stdenv,
pkg-config,
openssl,
+ rust-jemalloc-sys,
}:
rustPlatform.buildRustPackage rec {
@@ -27,6 +28,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
openssl
+ rust-jemalloc-sys
];
# tests don't work inside the sandbox
diff --git a/pkgs/by-name/on/oneDNN/package.nix b/pkgs/by-name/on/oneDNN/package.nix
index e3855a3a57b5..56cfcf83ba64 100644
--- a/pkgs/by-name/on/oneDNN/package.nix
+++ b/pkgs/by-name/on/oneDNN/package.nix
@@ -11,13 +11,13 @@
# https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
stdenv.mkDerivation (finalAttrs: {
pname = "oneDNN";
- version = "3.7.3";
+ version = "3.8";
src = fetchFromGitHub {
owner = "oneapi-src";
repo = "oneDNN";
rev = "v${finalAttrs.version}";
- hash = "sha256-wOS/VBcP8VyuBAdXVNkTDtYizTQe00ZocW5p0PMqbr4=";
+ hash = "sha256-GGfrP3QOPOlqWroG4MQ0az5q5Y4Ii9fNblk5WnMBsuI=";
};
outputs = [
diff --git a/pkgs/by-name/po/pocketbase/package.nix b/pkgs/by-name/po/pocketbase/package.nix
index e0f27d1620a0..62e002705757 100644
--- a/pkgs/by-name/po/pocketbase/package.nix
+++ b/pkgs/by-name/po/pocketbase/package.nix
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "pocketbase";
- version = "0.28.1";
+ version = "0.28.2";
src = fetchFromGitHub {
owner = "pocketbase";
repo = "pocketbase";
rev = "v${version}";
- hash = "sha256-tx9dx4ZFmdllG/pMoI8mmPSvMg7fBk6+lXSxkW5jlDM=";
+ hash = "sha256-R8sXa3Cs7GFRAs8/+wAoWteFYBUVsgVA+eJDKACb0k8=";
};
- vendorHash = "sha256-DN3rCuRBFVeRfiXrwxeHemqOZgXb7OswwzcEqHbi4lo=";
+ vendorHash = "sha256-bTXxhHibKiu+btHhnktTpNycMJSzGekRJ+w9b1IwAQs=";
# This is the released subpackage from upstream repo
subPackages = [ "examples/base" ];
diff --git a/pkgs/by-name/po/pocl/package.nix b/pkgs/by-name/po/pocl/package.nix
index 4075762f19e5..671b6592bb2f 100644
--- a/pkgs/by-name/po/pocl/package.nix
+++ b/pkgs/by-name/po/pocl/package.nix
@@ -41,13 +41,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "pocl";
- version = "6.0-unstable-2025-01-02";
+ version = "7.0";
src = fetchFromGitHub {
owner = "pocl";
repo = "pocl";
- rev = "acf4ea163b7346d20b3023d41c1141f094acc755";
- hash = "sha256-d/BD8YkdMYtu6yFlGNXrsz7PVIrzBvvYLU1JRv7ZJmc=";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-pyolM0SR6xiwhad7K0mX9I/PKbIa8Ltin0CYoA1U/qo=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
diff --git a/pkgs/by-name/ps/ps2patchelf/deps.json b/pkgs/by-name/ps/ps2patchelf/deps.json
new file mode 100644
index 000000000000..fe51488c7066
--- /dev/null
+++ b/pkgs/by-name/ps/ps2patchelf/deps.json
@@ -0,0 +1 @@
+[]
diff --git a/pkgs/by-name/ps/ps2patchelf/package.nix b/pkgs/by-name/ps/ps2patchelf/package.nix
new file mode 100644
index 000000000000..409592dc5353
--- /dev/null
+++ b/pkgs/by-name/ps/ps2patchelf/package.nix
@@ -0,0 +1,40 @@
+{
+ fetchFromGitHub,
+ buildDotnetModule,
+ dotnetCorePackages,
+ lib,
+}:
+
+buildDotnetModule rec {
+ version = "1.0.0";
+ pname = "PS2PatchElf";
+
+ src = fetchFromGitHub {
+ owner = "CaptainSwag101";
+ repo = "PS2PatchElf";
+ tag = "v${version}";
+ hash = "sha256-iQL3tT71UOEFIYBdf9BNLUM4++Fm9qEhr77NkMCZdrU=";
+ };
+
+ patches = [
+ ./patches/target_net8.0.patch
+ ./patches/fix_arg_check.patch
+ ];
+
+ dotnet-sdk = dotnetCorePackages.sdk_8_0;
+ dotnet-runtime = dotnetCorePackages.runtime_8_0;
+
+ dotnetFlags = [ "-p:TargetFramework=net8.0" ];
+
+ nugetDeps = ./deps.json;
+
+ projectFile = "PS2PatchElf/PS2PatchElf.csproj";
+
+ meta = {
+ homepage = "https://github.com/CaptainSwag101/PS2PatchElf/";
+ description = "Very basic tool for converting PCSX2 .pnach cheats to game executable patches";
+ maintainers = [ lib.maintainers.gigahawk ];
+ mainProgram = "PS2PatchElf";
+ license = lib.licenses.mit;
+ };
+}
diff --git a/pkgs/by-name/ps/ps2patchelf/patches/fix_arg_check.patch b/pkgs/by-name/ps/ps2patchelf/patches/fix_arg_check.patch
new file mode 100644
index 000000000000..5e846eabe43c
--- /dev/null
+++ b/pkgs/by-name/ps/ps2patchelf/patches/fix_arg_check.patch
@@ -0,0 +1,14 @@
+diff --git a/PS2PatchElf/Program.cs b/PS2PatchElf/Program.cs
+index 8c0f1b4..78f4042 100644
+--- a/PS2PatchElf/Program.cs
++++ b/PS2PatchElf/Program.cs
+@@ -9,7 +9,7 @@ namespace PS2PatchElf
+ {
+ static void Main(string[] args)
+ {
+- if (args.Length is not 2 or 3)
++ if (args.Length != 2 && args.Length != 3)
+ {
+ Console.WriteLine("Improper number of arguments specified.\nPlease pass an input ELF/SLUS, a PNACH file, and optionally the patched ELF/SLUS's output path, in that order!");
+ return;
+
diff --git a/pkgs/by-name/ps/ps2patchelf/patches/target_net8.0.patch b/pkgs/by-name/ps/ps2patchelf/patches/target_net8.0.patch
new file mode 100644
index 000000000000..420dfe7502c0
--- /dev/null
+++ b/pkgs/by-name/ps/ps2patchelf/patches/target_net8.0.patch
@@ -0,0 +1,26 @@
+diff --git a/PS2PatchElf/PS2PatchElf.csproj b/PS2PatchElf/PS2PatchElf.csproj
+index 3bfd30f..bb0c835 100644
+--- a/PS2PatchElf/PS2PatchElf.csproj
++++ b/PS2PatchElf/PS2PatchElf.csproj
+@@ -2,7 +2,7 @@
+
+
+ Exe
+- net6.0
++ net8.0
+ enable
+
+
+diff --git a/PS2PatchLib/PS2PatchLib.csproj b/PS2PatchLib/PS2PatchLib.csproj
+index 4de8048..8d2b232 100644
+--- a/PS2PatchLib/PS2PatchLib.csproj
++++ b/PS2PatchLib/PS2PatchLib.csproj
+@@ -1,7 +1,7 @@
+
+
+
+- net6.0
++ net8.0
+ enable
+
+
diff --git a/pkgs/by-name/ra/radicale/package.nix b/pkgs/by-name/ra/radicale/package.nix
index 836ba75cf4dc..5d3b72dd129a 100644
--- a/pkgs/by-name/ra/radicale/package.nix
+++ b/pkgs/by-name/ra/radicale/package.nix
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "radicale";
- version = "3.5.3";
+ version = "3.5.4";
pyproject = true;
src = fetchFromGitHub {
owner = "Kozea";
repo = "Radicale";
tag = "v${version}";
- hash = "sha256-+oAVgLXDyexvMCAf7hIhFOT+RELn4zeTpgE8YVGlCyw=";
+ hash = "sha256-45YLZyjQabv92izrMS1euyPhn6AATY0p+p5/GXuQxnM=";
};
build-system = with python3.pkgs; [
diff --git a/pkgs/by-name/re/reth/package.nix b/pkgs/by-name/re/reth/package.nix
index d2c039e2b338..159e4ff84917 100644
--- a/pkgs/by-name/re/reth/package.nix
+++ b/pkgs/by-name/re/reth/package.nix
@@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "reth";
- version = "1.3.12";
+ version = "1.4.3";
src = fetchFromGitHub {
owner = "paradigmxyz";
repo = pname;
rev = "v${version}";
- hash = "sha256-59XUrMaXMiqSELQX8i7eK4Eo8YfGjPVZHT6q+rxoSPs=";
+ hash = "sha256-pl0eQU7BjkSg8ECxeB13oNMO9CNIwLyOOHiWWC4CWhY=";
};
- cargoHash = "sha256-FHQ+iPcjxwcY7uoZMXlm/lRoVA5E5wRg7qFgJe+VSEc=";
+ cargoHash = "sha256-85mtKJWhDguOeNJhsqJyb99xVVF1H7D/2lWRmXF3LSg=";
nativeBuildInputs = [
rustPlatform.bindgenHook
diff --git a/pkgs/by-name/sv/svg-text-to-path/package.nix b/pkgs/by-name/sv/svg-text-to-path/package.nix
new file mode 100644
index 000000000000..3955b0cccdf8
--- /dev/null
+++ b/pkgs/by-name/sv/svg-text-to-path/package.nix
@@ -0,0 +1,33 @@
+{
+ lib,
+ buildNpmPackage,
+ fetchFromGitHub,
+ nix-update-script,
+}:
+
+buildNpmPackage (finalAttrs: {
+ pname = "svg-text-to-path";
+ version = "2.0.4";
+
+ src = fetchFromGitHub {
+ owner = "paulzi";
+ repo = "svg-text-to-path";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-1LW4jYRawP+BM1UtFJiTdcWVnFsEtRdVMlpZgbpZZ8Q=";
+ };
+
+ npmDepsHash = "sha256-HBV002dwyWwb9dBBpQY4FFZ/U0lfrXNEmNz4Aa0gRKw=";
+ npmPackFlags = [ "--ignore-scripts" ];
+ dontNpmBuild = true;
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ description = "Convert svg nodes to vector font-free elements";
+ homepage = "https://github.com/paulzi/svg-text-to-path";
+ maintainers = with lib.maintainers; [ ulysseszhan ];
+ license = lib.licenses.mit;
+ mainProgram = "svg-text-to-path";
+ platforms = lib.platforms.unix;
+ };
+})
diff --git a/pkgs/by-name/sy/syft/package.nix b/pkgs/by-name/sy/syft/package.nix
index ed7a4db2d4de..33715336dd4c 100644
--- a/pkgs/by-name/sy/syft/package.nix
+++ b/pkgs/by-name/sy/syft/package.nix
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "syft";
- version = "1.24.0";
+ version = "1.26.1";
src = fetchFromGitHub {
owner = "anchore";
repo = "syft";
tag = "v${version}";
- hash = "sha256-7Fav9tTcPFpAQnKMXOeD9Ho5rADDwGvLD3f9VzV82NU=";
+ hash = "sha256-xWQxxrKHBr6GizXbCiMhc7IFlVY7xo1kvyB3RsFFDsQ=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -28,7 +28,7 @@ buildGoModule rec {
# hash mismatch with darwin
proxyVendor = true;
- vendorHash = "sha256-+7tqC6I8zFbGVHFulIbeLBdy3br2ifrEEXM5hZZe3/8=";
+ vendorHash = "sha256-mK46xzwQ+Qjey0IrAuYdrt2Mz8rA4RdhrT2ayAK3TTw=";
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index 2d0407937acf..d4bd67400d81 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -68,28 +68,15 @@ self: super: {
# Needs Cabal 3.0.x.
jailbreak-cabal = super.jailbreak-cabal.overrideScope (cself: _: { Cabal = cself.Cabal_3_2_1_0; });
- # https://github.com/tibbe/unordered-containers/issues/214
- unordered-containers = dontCheck super.unordered-containers;
-
# Test suite does not compile.
data-clist = doJailbreak super.data-clist; # won't cope with QuickCheck 2.12.x
dates = doJailbreak super.dates; # base >=4.9 && <4.12
- Diff = dontCheck super.Diff;
- equivalence = dontCheck super.equivalence; # test suite doesn't compile https://github.com/pa-ba/equivalence/issues/5
HaTeX = doJailbreak super.HaTeX; # containers >=0.4 && <0.6 is too tight; https://github.com/Daniel-Diaz/HaTeX/issues/126
hpc-coveralls = doJailbreak super.hpc-coveralls; # https://github.com/guillaume-nargeot/hpc-coveralls/issues/82
http-api-data = doJailbreak super.http-api-data;
- persistent-sqlite = dontCheck super.persistent-sqlite;
- unicode-transforms = dontCheck super.unicode-transforms;
wl-pprint-extras = doJailbreak super.wl-pprint-extras; # containers >=0.4 && <0.6 is too tight; https://github.com/ekmett/wl-pprint-extras/issues/17
- RSA = dontCheck super.RSA; # https://github.com/GaloisInc/RSA/issues/14
- github = dontCheck super.github; # hspec upper bound exceeded; https://github.com/phadej/github/pull/341
- binary-orphans = dontCheck super.binary-orphans; # tasty upper bound exceeded; https://github.com/phadej/binary-orphans/commit/8ce857226595dd520236ff4c51fa1a45d8387b33
rebase = doJailbreak super.rebase; # time ==1.9.* is too low
- # https://github.com/jgm/skylighting/issues/55
- skylighting-core = dontCheck super.skylighting-core;
-
# cabal2nix needs the latest version of Cabal, and the one
# hackage-db uses must match, so take the latest
cabal2nix = super.cabal2nix.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; });
@@ -106,14 +93,5 @@ self: super: {
# This became a core library in ghc 8.10., so we don’t have an "exception" attribute anymore.
exceptions = self.exceptions_0_10_9;
- # vector 0.12.2 indroduced doctest checks that don’t work on older compilers
- vector = dontCheck super.vector;
-
- # https://github.com/haskellari/time-compat/issues/23
- time-compat = dontCheck super.time-compat;
-
mime-string = disableOptimization super.mime-string;
-
- # https://github.com/fpco/inline-c/issues/127 (recommend to upgrade to Nixpkgs GHC >=9.0)
- inline-c-cpp = (if isDarwin then dontCheck else x: x) super.inline-c-cpp;
}
diff --git a/pkgs/development/libraries/librdf/redland.nix b/pkgs/development/libraries/librdf/redland.nix
index 3391a8cf6ee6..2640330fb188 100644
--- a/pkgs/development/libraries/librdf/redland.nix
+++ b/pkgs/development/libraries/librdf/redland.nix
@@ -7,7 +7,6 @@
libxslt,
perl,
curl,
- pcre,
libxml2,
librdf_rasqal,
gmp,
@@ -40,7 +39,6 @@ stdenv.mkDerivation rec {
openssl
libxslt
curl
- pcre
libxml2
gmp
]
diff --git a/pkgs/development/php-packages/excimer/default.nix b/pkgs/development/php-packages/excimer/default.nix
index ff695b0d5eb5..06a8538faa6c 100644
--- a/pkgs/development/php-packages/excimer/default.nix
+++ b/pkgs/development/php-packages/excimer/default.nix
@@ -5,7 +5,7 @@
}:
let
- version = "1.2.3";
+ version = "1.2.5";
in
buildPecl {
inherit version;
@@ -15,7 +15,7 @@ buildPecl {
owner = "wikimedia";
repo = "mediawiki-php-excimer";
tag = version;
- hash = "sha256-p1tnrrSiTtoin/QSQFeeiX0Di1wFD8CMTdLazOfjWKU=";
+ hash = "sha256-xFnyqofazXtPfwp/4xNYwrPEW9vWzz5akXjCOiyP4nw=";
};
meta = {
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index 12112552c2a3..380346dc3d70 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -7,16 +7,16 @@
php.buildComposerProject2 (finalAttrs: {
pname = "phpstan";
- version = "2.1.15";
+ version = "2.1.17";
src = fetchFromGitHub {
owner = "phpstan";
repo = "phpstan-src";
tag = finalAttrs.version;
- hash = "sha256-1MHEN7/OL35xBLkwW7j2CxkjGb4EUkV1Zc8Nvn4xqNI=";
+ hash = "sha256-F4K+9tmnonUdk7VtXVo0tYf4RgoNjzGmIteWkzMOkYE=";
};
- vendorHash = "sha256-7PAO+8hkeNQH9lM77NvRX2/56PlIgWCwJ700b4erM2Y=";
+ vendorHash = "sha256-q83Gb2oujougRQVmeTOtdnVtP4IRghPUpo1kzbSlhiQ=";
composerStrictValidation = false;
doInstallCheck = true;
diff --git a/pkgs/development/python-modules/django-celery-beat/default.nix b/pkgs/development/python-modules/django-celery-beat/default.nix
index e4bed5b213f3..2b80ed336234 100644
--- a/pkgs/development/python-modules/django-celery-beat/default.nix
+++ b/pkgs/development/python-modules/django-celery-beat/default.nix
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "django-celery-beat";
- version = "2.8.0";
+ version = "2.8.1";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "celery";
repo = "django-celery-beat";
tag = "v${version}";
- hash = "sha256-PWTWFcmjeY0T6dmLzMDN3gqgJaYx1kWy1VJKlWxY+io=";
+ hash = "sha256-pakOpch5r2ug0UDSqEU34qr4Tz1/mkuFiHW+IOUuGcc=";
};
pythonRelaxDeps = [ "django" ];
diff --git a/pkgs/development/python-modules/djangocms-alias/default.nix b/pkgs/development/python-modules/djangocms-alias/default.nix
index 6d76e0805895..4fef532d870d 100644
--- a/pkgs/development/python-modules/djangocms-alias/default.nix
+++ b/pkgs/development/python-modules/djangocms-alias/default.nix
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "djangocms-alias";
- version = "2.0.2";
+ version = "2.0.3";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "django-cms";
repo = "djangocms-alias";
tag = version;
- hash = "sha256-yAH3eBeQhTBAHp0Zof1RIa7yYffC9V2zkS7E7mKecbA=";
+ hash = "sha256-q5iNTnoPto7jgxF/46I0oA8NYFBbDafsRUFmKMFoQM4=";
};
build-system = [ setuptools ];
@@ -59,7 +59,7 @@ buildPythonPackage rec {
meta = {
description = "Lean enterprise content management powered by Django";
homepage = "https://django-cms.org";
- changelog = "https://github.com/django-cms/django-cms/releases/tag/${version}";
+ changelog = "https://github.com/django-cms/django-cms/releases/tag/${src.tag}";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.onny ];
};
diff --git a/pkgs/development/python-modules/itables/default.nix b/pkgs/development/python-modules/itables/default.nix
new file mode 100644
index 000000000000..39e6c1292f15
--- /dev/null
+++ b/pkgs/development/python-modules/itables/default.nix
@@ -0,0 +1,79 @@
+{
+ lib,
+ buildPythonPackage,
+ fetchPypi,
+ python,
+
+ # build-system
+ dash,
+ hatchling,
+ hatch-jupyter-builder,
+ pyyaml,
+ setuptools,
+
+ # nativeBuildInputs
+ nodejs,
+
+ # dependencies
+ ipython,
+ numpy,
+ pandas,
+}:
+
+buildPythonPackage rec {
+ pname = "itables";
+ version = "2.4.0";
+
+ # itables has 4 different node packages, each with their own
+ # package-lock.json, and partially depending on each other.
+ # Our fetchNpmDeps tooling in nixpkgs doesn't support this yet, so we fetch
+ # the source tarball from pypi, wich includes the javascript bundle already.
+ src = fetchPypi {
+ inherit pname version;
+ hash = "sha256-S5HASUVfqTny+Vu15MYSSrEffCaJuL7UhDOc3eudVWI=";
+ };
+
+ pyproject = true;
+
+ build-system = [
+ dash
+ hatchling
+ hatch-jupyter-builder
+ pyyaml
+ setuptools
+ ];
+
+ nativeBuildInputs = [
+ nodejs
+ ];
+
+ dependencies = [
+ ipython
+ numpy
+ pandas
+ ];
+
+ # no tests in pypi tarball
+ doCheck = false;
+
+ # don't run the hooks, as they try to invoke npm on packages/,
+ env.HATCH_BUILD_NO_HOOKS = true;
+
+ # The pyproject.toml shipped with the sources doesn't install anything,
+ # as the paths in the pypi tarball are not the same as in the repo checkout.
+ # We exclude itables_for_dash here, as it's missing the .dist-info dir
+ # plumbing to be discoverable, and should be its own package anyways.
+ postInstall = ''
+ cp -R itables $out/${python.sitePackages}
+ '';
+
+ pythonImportsCheck = [ "itables" ];
+
+ meta = {
+ description = "Pandas and Polar DataFrames as interactive DataTables";
+ homepage = "https://github.com/mwouts/itables";
+ changelog = "https://github.com/mwouts/itables/releases/tag/v${version}";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ flokli ];
+ };
+}
diff --git a/pkgs/development/python-modules/pytensor/default.nix b/pkgs/development/python-modules/pytensor/default.nix
index be8e1f24826a..0fefe2c61c32 100644
--- a/pkgs/development/python-modules/pytensor/default.nix
+++ b/pkgs/development/python-modules/pytensor/default.nix
@@ -32,7 +32,7 @@
buildPythonPackage rec {
pname = "pytensor";
- version = "2.31.1";
+ version = "2.31.2";
pyproject = true;
src = fetchFromGitHub {
@@ -42,7 +42,7 @@ buildPythonPackage rec {
postFetch = ''
sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${src.tag})"/' $out/pytensor/_version.py
'';
- hash = "sha256-R/qHLAqNbFqoi2MQeptlVE148cInVOpN5n/wGr1AB9M=";
+ hash = "sha256-dFqJm9/77Nelh//1FjLauPAAQSogDa2fd1JJjlVFWsY=";
};
build-system = [
diff --git a/pkgs/development/tools/analysis/clazy/default.nix b/pkgs/development/tools/analysis/clazy/default.nix
index 6b355d4493b0..cf1997015ec4 100644
--- a/pkgs/development/tools/analysis/clazy/default.nix
+++ b/pkgs/development/tools/analysis/clazy/default.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "clazy";
- version = "1.13";
+ version = "1.14";
src = fetchFromGitHub {
owner = "KDE";
repo = "clazy";
tag = finalAttrs.version;
- hash = "sha256-cNckRQ3+9HjJ1xYIDkosEP7K66+G0J3K9wt4OWLokLs=";
+ hash = "sha256-t1j/MrKD8ocmhbFtWz6BJUbPSCSWjlRmuYnsPhHWgAM=";
};
buildInputs = [
diff --git a/pkgs/servers/hasura/cli.nix b/pkgs/servers/hasura/cli.nix
index 0584e872f310..1b9591db4775 100644
--- a/pkgs/servers/hasura/cli.nix
+++ b/pkgs/servers/hasura/cli.nix
@@ -6,19 +6,19 @@
buildGoModule rec {
pname = "hasura";
- version = "2.3.1";
+ version = "2.48.1";
src = fetchFromGitHub {
owner = "hasura";
repo = "graphql-engine";
rev = "v${version}";
- sha256 = "1r19qw2wxzmngb6sjpin3dk6i5r491brcb0ir4g8kw9d0ic90hpy";
+ sha256 = "sha256-Bj9gaQc7zCy4M8apXdVJhEDClB2n75rzBiVq+PmNP4k=";
};
modRoot = "./cli";
subPackages = [ "cmd/hasura" ];
- vendorHash = "sha256-S6xyevC/7dpn2Ana5mkROwIOvtQVPThoNEVKkXQmUGY=";
+ vendorHash = "sha256-riPCH7H1arKP2se2H52R69fL+DyKXK1i/ne5apoS/5w=";
doCheck = false;
diff --git a/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix b/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
index 535e57b526ca..62b2cf19103a 100644
--- a/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
+++ b/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
@@ -6,13 +6,18 @@
{
plugins.civicrm = stdenv.mkDerivation rec {
pname = "civicrm";
- version = "5.56.0";
+ version = "6.2.0";
src = fetchzip {
inherit version;
name = pname;
- url = "https://storage.googleapis.com/${pname}/${pname}-stable/${version}/${pname}-${version}-wordpress.zip";
- hash = "sha256-XsNFxVL0LF+OHlsqjjTV41x9ERLwMDq9BnKKP3Px2aI=";
+ url = "https://download.civicrm.org/${pname}-${version}-wordpress.zip";
+ hash = "sha256-Bx1rixRbqJsiMrIIkzTGeqLIc5raiNoUVTsoxZ6q9uU=";
};
+ installPhase = ''
+ runHook preInstall
+ cp -r ./ -T $out
+ runHook postInstall
+ '';
meta.license = lib.licenses.agpl3Only;
};
themes = {
diff --git a/pkgs/tools/package-management/nix/common-meson.nix b/pkgs/tools/package-management/nix/common-meson.nix
index 8775feab540f..1e2bb73aef41 100644
--- a/pkgs/tools/package-management/nix/common-meson.nix
+++ b/pkgs/tools/package-management/nix/common-meson.nix
@@ -274,6 +274,10 @@ stdenv.mkDerivation (finalAttrs: {
license = licenses.lgpl21Plus;
inherit maintainers teams;
platforms = platforms.unix;
+ # Gets stuck in functional-tests in cross-trunk jobset and doesn't timeout
+ # https://hydra.nixos.org/build/298175022
+ # probably https://github.com/NixOS/nix/issues/13042
+ broken = stdenv.hostPlatform.system == "i686-linux" && stdenv.buildPlatform != stdenv.hostPlatform;
outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
mainProgram = "nix";
};
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 97119f7d3416..0deb086166fe 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -468,7 +468,7 @@ with self;
artistic1
gpl1Plus
];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.AlienLibGumbo.x86_64-darwin
+ broken = stdenv.hostPlatform.isLinux; # Fails with: cannot find ./.libs/libgumbo.so
};
};
@@ -979,7 +979,7 @@ with self;
artistic1
gpl1Plus
];
- broken = true; # DB.c:(.text+0x153): undefined reference to `Perl_init_debugger'
+ broken = stdenv.hostPlatform.isLinux; # DB.c: undefined reference to `Perl_init_debugger'
};
};
@@ -8273,14 +8273,13 @@ with self;
TestRequires
];
meta = {
- description = "Grep-like program for searching source code";
+ description = "MessagePack serialization format";
homepage = "https://github.com/msgpack/msgpack-perl";
license = with lib.licenses; [
artistic1
gpl1Plus
];
maintainers = [ maintainers.sgo ];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataMessagePack.x86_64-darwin
};
};
@@ -8655,7 +8654,6 @@ with self;
artistic1
gpl1Plus
];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
};
};
@@ -9897,7 +9895,6 @@ with self;
artistic1
gpl1Only
];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DBDsybase.x86_64-darwin
};
};
@@ -13563,7 +13560,6 @@ with self;
artistic1
gpl1Plus
];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.FileLibMagic.x86_64-darwin
};
};
@@ -15809,7 +15805,6 @@ with self;
artistic1
gpl1Plus
];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTMLEscape.x86_64-darwin
};
};
@@ -21025,7 +21020,6 @@ with self;
description = "Fast XS implementation of MaxMind DB reader";
homepage = "https://metacpan.org/release/MaxMind-DB-Reader-XS";
license = with lib.licenses; [ artistic2 ];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBReaderXS.x86_64-darwin
};
};
@@ -21063,7 +21057,6 @@ with self;
artistic1
gpl1Plus
];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBWriter.x86_64-darwin
};
};
@@ -32361,7 +32354,6 @@ with self;
gpl2Plus
artistic1
];
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.SysVirt.x86_64-darwin
};
};
@@ -35836,7 +35828,6 @@ with self;
artistic1
gpl1Plus
]; # taken from el6
- broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextIconv.x86_64-darwin
};
};
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index dabc058c5f53..3e9e11f6e6a8 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -6983,6 +6983,8 @@ self: super: with self; {
israel-rail-api = callPackage ../development/python-modules/israel-rail-api { };
+ itables = callPackage ../development/python-modules/itables { };
+
itanium-demangler = callPackage ../development/python-modules/itanium-demangler { };
item-synchronizer = callPackage ../development/python-modules/item-synchronizer { };