Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-05-26 12:06:38 +00:00
committed by GitHub
61 changed files with 744 additions and 234 deletions
+11
View File
@@ -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";
@@ -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.
+51 -13
View File
@@ -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
+12
View File
@@ -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;
@@ -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 = { };
};
};
}
+3 -1
View File
@@ -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;
+2 -2
View File
@@ -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 ,'
@@ -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}')
+39 -5
View File
@@ -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.
+1 -1
View File
@@ -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 { };
+28
View File
@@ -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')
'';
}
+1
View File
@@ -3,6 +3,7 @@
...
}:
{
bios = runTest ./bios.nix;
checksum = runTest ./checksum.nix;
secureBoot = runTest ./secure-boot.nix;
specialisations = runTest ./specialisations.nix;
+2 -2
View File
@@ -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)
'';
}
+31 -13
View File
@@ -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 '<title>Prowlarr</title>' 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()
'';
}
@@ -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;
};
@@ -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",
+5 -6
View File
@@ -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
+4 -4
View File
@@ -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": {
+3 -3
View File
@@ -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
+10 -9
View File
@@ -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";
+1 -1
View File
@@ -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 '"')
+42 -21
View File
@@ -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
+5 -5
View File
@@ -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 {
@@ -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;
};
}
@@ -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"),
+5 -5
View File
@@ -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"
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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;
+26
View File
@@ -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.")
+3
View File
@@ -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";
+2 -2
View File
@@ -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;
@@ -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="
}
}
+2 -2
View File
@@ -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 ];
+54
View File
@@ -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;
};
}
+2 -2
View File
@@ -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" ];
+2
View File
@@ -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
+2 -2
View File
@@ -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 = [
+3 -3
View File
@@ -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" ];
+3 -3
View File
@@ -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 ''
+1
View File
@@ -0,0 +1 @@
[]
+40
View File
@@ -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;
};
}
@@ -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;
@@ -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 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
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 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
+2 -2
View File
@@ -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; [
+3 -3
View File
@@ -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
@@ -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;
};
})
+3 -3
View File
@@ -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 ];
@@ -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 dont have an "exception" attribute anymore.
exceptions = self.exceptions_0_10_9;
# vector 0.12.2 indroduced doctest checks that dont 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;
}
@@ -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
]
@@ -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 = {
@@ -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;
@@ -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" ];
@@ -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 ];
};
@@ -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 ];
};
}
@@ -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 = [
@@ -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 = [
+3 -3
View File
@@ -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;
@@ -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 = {
@@ -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";
};
+3 -12
View File
@@ -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
};
};
+2
View File
@@ -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 { };