mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
Merge staging-next into staging
This commit is contained in:
commit
68882f66af
130 changed files with 1344 additions and 3035 deletions
|
|
@ -11084,7 +11084,7 @@
|
|||
name = "Hugo Tavares Reis";
|
||||
};
|
||||
httprafa = {
|
||||
email = "rafael.kienitz@gmail.com";
|
||||
email = "rafa.kienitz@proton.me";
|
||||
github = "HttpRafa";
|
||||
githubId = 60099368;
|
||||
name = "Rafael Kienitz";
|
||||
|
|
|
|||
|
|
@ -532,6 +532,17 @@ def install_bootloader(args: argparse.Namespace) -> None:
|
|||
for profile in get_profiles():
|
||||
gens += get_generations(profile)
|
||||
|
||||
if not gens:
|
||||
# With zero generations we would garbage-collect every kernel,
|
||||
# initrd and loader entry off the ESP, leaving the system
|
||||
# unbootable.
|
||||
print(
|
||||
"error: no system generations found in /nix/var/nix/profiles, "
|
||||
"refusing to remove all boot loader entries",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
boot_files: BootFileList = []
|
||||
critical_paths: set[Path] = set()
|
||||
|
||||
|
|
|
|||
|
|
@ -944,7 +944,7 @@ in
|
|||
lomiri-system-settings = runTest ./lomiri-system-settings.nix;
|
||||
lorri = handleTest ./lorri/default.nix { };
|
||||
luks = runTest ./luks.nix;
|
||||
lvm2 = handleTest ./lvm2 { };
|
||||
lvm2 = import ./lvm2 { inherit pkgs runTest; };
|
||||
lxc = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./lxc;
|
||||
lxd-image-server = runTest ./lxd-image-server.nix;
|
||||
lxqt = runTest ./lxqt.nix;
|
||||
|
|
@ -1851,7 +1851,7 @@ in
|
|||
zammad = runTest ./zammad.nix;
|
||||
zenohd = runTest ./zenohd.nix;
|
||||
zeronet-conservancy = runTest ./zeronet-conservancy.nix;
|
||||
zfs = handleTest ./zfs.nix { };
|
||||
zfs = import ./zfs.nix { inherit system pkgs runTest; };
|
||||
zigbee2mqtt = runTest ./zigbee2mqtt.nix;
|
||||
zipline = runTest ./zipline.nix;
|
||||
zoneminder = runTest ./zoneminder.nix;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
resp = json.loads(machine.succeed("curl localhost:8000/api/getconfig"))
|
||||
assert resp["success"] is False
|
||||
assert resp["reason"] == "No valid authentication was found"
|
||||
assert resp["reason"] == "No valid authentication."
|
||||
|
||||
resp = json.loads(machine.succeed("curl -H 'X-API-Key: api_key' localhost:8000/api/getconfig"))
|
||||
expected_version = "${config.nodes.machine.services.chhoto-url.package.version}"
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@
|
|||
# Wait for mounts
|
||||
machine.wait_for_unit("local-fs.target")
|
||||
|
||||
# Sometimes gocryptfs files are slow to appear
|
||||
machine.wait_for_file("/plain/data.txt")
|
||||
|
||||
# Ensure the canary is alive
|
||||
machine.succeed("grep -q success /plain/data.txt")
|
||||
|
||||
|
|
|
|||
|
|
@ -61,47 +61,63 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Encrypt key with empty key so boot should try keyfile and then fallback to empty passphrase
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
toplevel = nodes.machine.system.build.toplevel;
|
||||
boot-luks-missing-keyfile =
|
||||
nodes.machine.specialisation.boot-luks-missing-keyfile.configuration.system.build.toplevel;
|
||||
boot-luks-wrong-keyfile =
|
||||
nodes.machine.specialisation.boot-luks-wrong-keyfile.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Encrypt key with empty key so boot should try keyfile and then fallback to empty passphrase
|
||||
|
||||
|
||||
def grub_select_boot_luks_wrong_key_file():
|
||||
"""
|
||||
Selects "boot-luks" from the GRUB menu
|
||||
to trigger a login request.
|
||||
"""
|
||||
machine.send_monitor_command("sendkey down")
|
||||
machine.send_monitor_command("sendkey down")
|
||||
machine.send_monitor_command("sendkey ret")
|
||||
def grub_select_boot_luks_wrong_key_file():
|
||||
"""
|
||||
Selects "boot-luks" from the GRUB menu
|
||||
to trigger a login request.
|
||||
"""
|
||||
machine.send_monitor_command("sendkey down")
|
||||
machine.send_monitor_command("sendkey down")
|
||||
machine.send_monitor_command("sendkey ret")
|
||||
|
||||
def grub_select_boot_luks_missing_key_file():
|
||||
"""
|
||||
Selects "boot-luks" from the GRUB menu
|
||||
to trigger a login request.
|
||||
"""
|
||||
machine.send_monitor_command("sendkey down")
|
||||
machine.send_monitor_command("sendkey ret")
|
||||
def grub_select_boot_luks_missing_key_file():
|
||||
"""
|
||||
Selects "boot-luks" from the GRUB menu
|
||||
to trigger a login request.
|
||||
"""
|
||||
machine.send_monitor_command("sendkey down")
|
||||
machine.send_monitor_command("sendkey ret")
|
||||
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo "" | cryptsetup luksFormat /dev/vdb --batch-mode")
|
||||
machine.succeed("echo "" | cryptsetup luksOpen /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks-wrong-keyfile.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo "" | cryptsetup luksFormat /dev/vdb --batch-mode")
|
||||
machine.succeed("echo "" | cryptsetup luksOpen /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
machine.succeed("${boot-luks-wrong-keyfile}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Check if rootfs is on /dev/mapper/cryptroot
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
# Check if rootfs is on /dev/mapper/cryptroot
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
|
||||
# Choose boot-luks-missing-keyfile specialisation
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks-missing-keyfile.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Choose boot-luks-missing-keyfile specialisation
|
||||
machine.succeed(
|
||||
"mkdir -p /nix/var/nix/profiles",
|
||||
"ln -sfn ${toplevel} /nix/var/nix/profiles/system-1-link",
|
||||
"ln -sfn system-1-link /nix/var/nix/profiles/system",
|
||||
)
|
||||
|
||||
# Check if rootfs is on /dev/mapper/cryptroot
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
machine.succeed("${boot-luks-missing-keyfile}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Check if rootfs is on /dev/mapper/cryptroot
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Tests LUKS specifically with scripted stage 1. Remove in 26.11.
|
||||
|
||||
{ lib, pkgs, ... }:
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "luks";
|
||||
|
||||
|
|
@ -47,41 +47,59 @@
|
|||
|
||||
enableOCR = true;
|
||||
|
||||
testScript = ''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
toplevel = nodes.machine.system.build.toplevel;
|
||||
boot-luks = nodes.machine.specialisation.boot-luks.configuration.system.build.toplevel;
|
||||
boot-luks-custom-keymap =
|
||||
nodes.machine.specialisation.boot-luks-custom-keymap.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdc cryptroot2")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdc cryptroot2")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
|
||||
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("${boot-luks}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Boot and decrypt the disk
|
||||
machine.start()
|
||||
machine.wait_for_text("Passphrase for")
|
||||
machine.send_chars("supersecret\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
# Boot and decrypt the disk
|
||||
machine.start()
|
||||
machine.wait_for_text("Passphrase for")
|
||||
machine.send_chars("supersecret\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
|
||||
# Boot from the encrypted disk with custom keymap
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks-custom-keymap.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# The new root is empty, so it has no /nix/var/nix/profiles. Without a
|
||||
# system profile, systemd-boot-builder finds zero generations and
|
||||
# bails. So we manually create the one profile link that we need.
|
||||
machine.succeed(
|
||||
"mkdir -p /nix/var/nix/profiles",
|
||||
"ln -sfn ${toplevel} /nix/var/nix/profiles/system-1-link",
|
||||
"ln -sfn system-1-link /nix/var/nix/profiles/system",
|
||||
)
|
||||
|
||||
# Boot and decrypt the disk
|
||||
machine.start()
|
||||
machine.wait_for_text("Passphrase for")
|
||||
machine.send_chars("havfkhfrkfl\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
# Boot from the encrypted disk with custom keymap
|
||||
machine.succeed("${boot-luks-custom-keymap}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
# Boot and decrypt the disk
|
||||
machine.start()
|
||||
machine.wait_for_text("Passphrase for")
|
||||
machine.send_chars("havfkhfrkfl\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
system ? builtins.currentSystem,
|
||||
config ? { },
|
||||
pkgs ? import ../../.. { inherit system config; },
|
||||
lib ? pkgs.lib,
|
||||
pkgs,
|
||||
runTest,
|
||||
kernelVersionsToTest ? [
|
||||
"5.10"
|
||||
"5.15"
|
||||
|
|
@ -15,38 +13,36 @@
|
|||
|
||||
# For quickly running a test, the nixosTests.lvm2.lvm-thinpool-linux-latest attribute is recommended
|
||||
let
|
||||
tests =
|
||||
let
|
||||
callTest = p: lib.flip (import p) { inherit system pkgs; };
|
||||
in
|
||||
{
|
||||
thinpool = {
|
||||
test = callTest ./thinpool.nix;
|
||||
kernelFilter = lib.id;
|
||||
};
|
||||
# we would like to test all versions, but the kernel module currently does not compile against the other versions
|
||||
vdo = {
|
||||
test = callTest ./vdo.nix;
|
||||
kernelFilter = lib.filter (v: v == "latest");
|
||||
};
|
||||
inherit (pkgs) lib;
|
||||
|
||||
# systemd in stage 1
|
||||
raid-sd-stage-1 = {
|
||||
test = callTest ./systemd-stage-1.nix;
|
||||
kernelFilter = lib.filter (v: v != "5.15");
|
||||
flavour = "raid";
|
||||
};
|
||||
thinpool-sd-stage-1 = {
|
||||
test = callTest ./systemd-stage-1.nix;
|
||||
kernelFilter = lib.id;
|
||||
flavour = "thinpool";
|
||||
};
|
||||
vdo-sd-stage-1 = {
|
||||
test = callTest ./systemd-stage-1.nix;
|
||||
kernelFilter = lib.filter (v: v == "latest");
|
||||
flavour = "vdo";
|
||||
};
|
||||
tests = {
|
||||
thinpool = {
|
||||
test = ./thinpool.nix;
|
||||
kernelFilter = lib.id;
|
||||
};
|
||||
# we would like to test all versions, but the kernel module currently does not compile against the other versions
|
||||
vdo = {
|
||||
test = ./vdo.nix;
|
||||
kernelFilter = lib.filter (v: v == "latest");
|
||||
};
|
||||
|
||||
# systemd in stage 1
|
||||
raid-sd-stage-1 = {
|
||||
test = ./systemd-stage-1.nix;
|
||||
kernelFilter = lib.filter (v: v != "5.15");
|
||||
flavour = "raid";
|
||||
};
|
||||
thinpool-sd-stage-1 = {
|
||||
test = ./systemd-stage-1.nix;
|
||||
kernelFilter = lib.id;
|
||||
flavour = "thinpool";
|
||||
};
|
||||
vdo-sd-stage-1 = {
|
||||
test = ./systemd-stage-1.nix;
|
||||
kernelFilter = lib.filter (v: v == "latest");
|
||||
flavour = "vdo";
|
||||
};
|
||||
};
|
||||
in
|
||||
lib.listToAttrs (
|
||||
lib.filter (x: x.value != { }) (
|
||||
|
|
@ -61,18 +57,17 @@ lib.listToAttrs (
|
|||
lib.flip lib.mapAttrsToList tests (
|
||||
name: t:
|
||||
lib.nameValuePair "lvm-${name}-linux-${v'}" (
|
||||
lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (
|
||||
t.test (
|
||||
{
|
||||
kernelPackages = pkgs."linuxPackages_${v'}";
|
||||
inherit mkXfsFlags;
|
||||
}
|
||||
// removeAttrs t [
|
||||
"test"
|
||||
"kernelFilter"
|
||||
]
|
||||
)
|
||||
)
|
||||
lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (runTest {
|
||||
imports = [ t.test ];
|
||||
_module.args = {
|
||||
kernelPackages = pkgs."linuxPackages_${v'}";
|
||||
inherit mkXfsFlags;
|
||||
}
|
||||
// removeAttrs t [
|
||||
"test"
|
||||
"kernelFilter"
|
||||
];
|
||||
})
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
{
|
||||
lib,
|
||||
kernelPackages ? null,
|
||||
flavour,
|
||||
mkXfsFlags ? "",
|
||||
...
|
||||
}:
|
||||
let
|
||||
preparationCode =
|
||||
|
|
@ -66,57 +68,61 @@ let
|
|||
.${flavour};
|
||||
|
||||
in
|
||||
import ../make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lvm2-${flavour}-systemd-stage-1";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
das_j
|
||||
helsinki-Jo
|
||||
];
|
||||
{
|
||||
name = "lvm2-${flavour}-systemd-stage-1";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
das_j
|
||||
helsinki-Jo
|
||||
];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [ extraConfig ];
|
||||
# Use systemd-boot
|
||||
virtualisation = {
|
||||
emptyDiskImages = [
|
||||
8192
|
||||
8192
|
||||
];
|
||||
useBootLoader = true;
|
||||
useEFIBoot = true;
|
||||
# To boot off the LVM disk, we need to have a init script which comes from the Nix store.
|
||||
mountHostNixStore = true;
|
||||
};
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [ extraConfig ];
|
||||
# Use systemd-boot
|
||||
virtualisation = {
|
||||
emptyDiskImages = [
|
||||
8192
|
||||
8192
|
||||
];
|
||||
useBootLoader = true;
|
||||
useEFIBoot = true;
|
||||
# To boot off the LVM disk, we need to have a init script which comes from the Nix store.
|
||||
mountHostNixStore = true;
|
||||
};
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [ xfsprogs ];
|
||||
boot = {
|
||||
initrd.systemd = {
|
||||
enable = true;
|
||||
emergencyAccess = true;
|
||||
};
|
||||
initrd.services.lvm.enable = true;
|
||||
kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
|
||||
};
|
||||
|
||||
specialisation.boot-lvm.configuration.virtualisation = {
|
||||
useDefaultFilesystems = false;
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/test_vg/test_lv";
|
||||
fsType = "xfs";
|
||||
};
|
||||
};
|
||||
|
||||
rootDevice = "/dev/test_vg/test_lv";
|
||||
environment.systemPackages = with pkgs; [ xfsprogs ];
|
||||
boot = {
|
||||
initrd.systemd = {
|
||||
enable = true;
|
||||
emergencyAccess = true;
|
||||
};
|
||||
initrd.services.lvm.enable = true;
|
||||
kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
specialisation.boot-lvm.configuration.virtualisation = {
|
||||
useDefaultFilesystems = false;
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/test_vg/test_lv";
|
||||
fsType = "xfs";
|
||||
};
|
||||
};
|
||||
|
||||
rootDevice = "/dev/test_vg/test_lv";
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-lvm = nodes.machine.specialisation.boot-lvm.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
# Create a VG for the root
|
||||
${preparationCode}
|
||||
|
|
@ -124,7 +130,7 @@ import ../make-test-python.nix (
|
|||
machine.succeed("mkdir -p /mnt && mount /dev/test_vg/test_lv /mnt && echo hello > /mnt/test && umount /mnt")
|
||||
|
||||
# Boot from LVM
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-lvm.conf")
|
||||
machine.succeed("${boot-lvm}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
|
@ -135,5 +141,4 @@ import ../make-test-python.nix (
|
|||
assert "hello" in machine.succeed("cat /test")
|
||||
${extraCheck}
|
||||
'';
|
||||
}
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,49 +1,48 @@
|
|||
{
|
||||
lib,
|
||||
kernelPackages ? null,
|
||||
mkXfsFlags ? "",
|
||||
...
|
||||
}:
|
||||
import ../make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lvm2-thinpool";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
das_j
|
||||
helsinki-Jo
|
||||
];
|
||||
{
|
||||
name = "lvm2-thinpool";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
das_j
|
||||
helsinki-Jo
|
||||
];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
virtualisation.emptyDiskImages = [ 4096 ];
|
||||
services.lvm = {
|
||||
boot.thin.enable = true;
|
||||
dmeventd.enable = true;
|
||||
};
|
||||
environment.systemPackages = with pkgs; [ xfsprogs ];
|
||||
environment.etc."lvm/lvm.conf".text = ''
|
||||
activation/thin_pool_autoextend_percent = 10
|
||||
activation/thin_pool_autoextend_threshold = 80
|
||||
'';
|
||||
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
virtualisation.emptyDiskImages = [ 4096 ];
|
||||
services.lvm = {
|
||||
boot.thin.enable = true;
|
||||
dmeventd.enable = true;
|
||||
};
|
||||
|
||||
testScript =
|
||||
let
|
||||
mkXfsFlags =
|
||||
lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.10") " -m bigtime=0 -m inobtcount=0 "
|
||||
+ lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.19") " -i nrext64=0 ";
|
||||
in
|
||||
''
|
||||
machine.succeed("vgcreate test_vg /dev/vdb")
|
||||
machine.succeed("lvcreate -L 512M -T test_vg/test_thin_pool")
|
||||
machine.succeed("lvcreate -n test_lv -V 16G --thinpool test_thin_pool test_vg")
|
||||
machine.succeed("mkfs.xfs ${mkXfsFlags} /dev/test_vg/test_lv")
|
||||
machine.succeed("mkdir /mnt; mount /dev/test_vg/test_lv /mnt")
|
||||
assert "/dev/mapper/test_vg-test_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
|
||||
machine.succeed("dd if=/dev/zero of=/mnt/empty.file bs=1M count=1024")
|
||||
machine.succeed("journalctl -u dm-event.service | grep \"successfully resized\"")
|
||||
machine.succeed("umount /mnt")
|
||||
machine.succeed("vgchange -a n")
|
||||
environment.systemPackages = with pkgs; [ xfsprogs ];
|
||||
environment.etc."lvm/lvm.conf".text = ''
|
||||
activation/thin_pool_autoextend_percent = 10
|
||||
activation/thin_pool_autoextend_threshold = 80
|
||||
'';
|
||||
}
|
||||
)
|
||||
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
|
||||
};
|
||||
|
||||
testScript =
|
||||
let
|
||||
mkXfsFlags =
|
||||
lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.10") " -m bigtime=0 -m inobtcount=0 "
|
||||
+ lib.optionalString (lib.versionOlder kernelPackages.kernel.version "5.19") " -i nrext64=0 ";
|
||||
in
|
||||
''
|
||||
machine.succeed("vgcreate test_vg /dev/vdb")
|
||||
machine.succeed("lvcreate -L 512M -T test_vg/test_thin_pool")
|
||||
machine.succeed("lvcreate -n test_lv -V 16G --thinpool test_thin_pool test_vg")
|
||||
machine.succeed("mkfs.xfs ${mkXfsFlags} /dev/test_vg/test_lv")
|
||||
machine.succeed("mkdir /mnt; mount /dev/test_vg/test_lv /mnt")
|
||||
assert "/dev/mapper/test_vg-test_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
|
||||
machine.succeed("dd if=/dev/zero of=/mnt/empty.file bs=1M count=1024")
|
||||
machine.succeed("journalctl -u dm-event.service | grep \"successfully resized\"")
|
||||
machine.succeed("umount /mnt")
|
||||
machine.succeed("vgchange -a n")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,35 +1,34 @@
|
|||
{
|
||||
lib,
|
||||
kernelPackages ? null,
|
||||
mkXfsFlags ? "",
|
||||
...
|
||||
}:
|
||||
import ../make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "lvm2-vdo";
|
||||
meta.maintainers = [ ];
|
||||
{
|
||||
name = "lvm2-vdo";
|
||||
meta.maintainers = [ ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
# Minimum required size for VDO volume: 5063921664 bytes
|
||||
virtualisation.emptyDiskImages = [ 8192 ];
|
||||
services.lvm = {
|
||||
boot.vdo.enable = true;
|
||||
dmeventd.enable = true;
|
||||
};
|
||||
environment.systemPackages = with pkgs; [ xfsprogs ];
|
||||
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
# Minimum required size for VDO volume: 5063921664 bytes
|
||||
virtualisation.emptyDiskImages = [ 8192 ];
|
||||
services.lvm = {
|
||||
boot.vdo.enable = true;
|
||||
dmeventd.enable = true;
|
||||
};
|
||||
environment.systemPackages = with pkgs; [ xfsprogs ];
|
||||
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.succeed("vgcreate test_vg /dev/vdb")
|
||||
machine.succeed("lvcreate --type vdo -n vdo_lv -L 6G -V 12G test_vg/vdo_pool_lv")
|
||||
machine.succeed("mkfs.xfs ${mkXfsFlags} -K /dev/test_vg/vdo_lv")
|
||||
machine.succeed("mkdir /mnt; mount /dev/test_vg/vdo_lv /mnt")
|
||||
assert "/dev/mapper/test_vg-vdo_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
|
||||
machine.succeed("umount /mnt")
|
||||
machine.succeed("vdostats")
|
||||
machine.succeed("vgchange -a n")
|
||||
'';
|
||||
}
|
||||
)
|
||||
testScript = ''
|
||||
machine.succeed("vgcreate test_vg /dev/vdb")
|
||||
machine.succeed("lvcreate --type vdo -n vdo_lv -L 6G -V 12G test_vg/vdo_pool_lv")
|
||||
machine.succeed("mkfs.xfs ${mkXfsFlags} -K /dev/test_vg/vdo_lv")
|
||||
machine.succeed("mkdir /mnt; mount /dev/test_vg/vdo_lv /mnt")
|
||||
assert "/dev/mapper/test_vg-vdo_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
|
||||
machine.succeed("umount /mnt")
|
||||
machine.succeed("vdostats")
|
||||
machine.succeed("vgchange -a n")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "systemd-initrd-btrfs-raid";
|
||||
|
||||
|
|
@ -33,21 +33,27 @@
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Create RAID
|
||||
machine.succeed("mkfs.btrfs -d raid0 /dev/vdb /dev/vdc")
|
||||
machine.succeed("mkdir -p /mnt && mount /dev/vdb /mnt && echo hello > /mnt/test && umount /mnt")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-btrfs-raid = nodes.machine.specialisation.boot-btrfs-raid.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Create RAID
|
||||
machine.succeed("mkfs.btrfs -d raid0 /dev/vdb /dev/vdc")
|
||||
machine.succeed("mkdir -p /mnt && mount /dev/vdb /mnt && echo hello > /mnt/test && umount /mnt")
|
||||
|
||||
# Boot from the RAID
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-btrfs-raid.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
# Boot from the RAID
|
||||
machine.succeed("${boot-btrfs-raid}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
# Ensure we have successfully booted from the RAID
|
||||
assert "(initrd)" in machine.succeed("systemd-analyze") # booted with systemd in stage 1
|
||||
assert "/dev/vdb on / type btrfs" in machine.succeed("mount")
|
||||
assert "hello" in machine.succeed("cat /test")
|
||||
assert "Total devices 2" in machine.succeed("btrfs filesystem show")
|
||||
'';
|
||||
# Ensure we have successfully booted from the RAID
|
||||
assert "(initrd)" in machine.succeed("systemd-analyze") # booted with systemd in stage 1
|
||||
assert "/dev/vdb on / type btrfs" in machine.succeed("mount")
|
||||
assert "hello" in machine.succeed("cat /test")
|
||||
assert "Total devices 2" in machine.succeed("btrfs filesystem show")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
hostPkgs,
|
||||
...
|
||||
}:
|
||||
|
|
@ -43,19 +42,25 @@
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("PASSWORD=supersecret SYSTEMD_LOG_LEVEL=debug systemd-cryptenroll --fido2-device=auto /dev/vdb |& systemd-cat")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-luks = nodes.machine.specialisation.boot-luks.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("PASSWORD=supersecret SYSTEMD_LOG_LEVEL=debug systemd-cryptenroll --fido2-device=auto /dev/vdb |& systemd-cat")
|
||||
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("${boot-luks}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Boot and decrypt the disk
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
# Boot and decrypt the disk
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,20 +42,26 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("cryptsetup luksFormat -q --iter-time=1 -d ${keyfile} /dev/vdb")
|
||||
machine.succeed("cryptsetup luksOpen --key-file ${keyfile} /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-luks = nodes.machine.specialisation.boot-luks.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("cryptsetup luksFormat -q --iter-time=1 -d ${keyfile} /dev/vdb")
|
||||
machine.succeed("cryptsetup luksOpen --key-file ${keyfile} /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("${boot-luks}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Boot and decrypt the disk
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
# Boot and decrypt the disk
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "systemd-initrd-luks-password";
|
||||
|
||||
|
|
@ -39,30 +39,36 @@
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-luks = nodes.machine.specialisation.boot-luks.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdc cryptroot2")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdc cryptroot2")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
|
||||
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("${boot-luks}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Boot and decrypt the disk
|
||||
machine.start()
|
||||
machine.wait_for_console_text("Please enter passphrase for disk cryptroot")
|
||||
machine.send_console("supersecret\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
# Boot and decrypt the disk
|
||||
machine.start()
|
||||
machine.wait_for_console_text("Please enter passphrase for disk cryptroot")
|
||||
machine.send_console("supersecret\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount"), "/dev/mapper/cryptroot do not appear in mountpoints list"
|
||||
assert "/dev/mapper/cryptroot2 on /cryptroot2 type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount"), "/dev/mapper/cryptroot do not appear in mountpoints list"
|
||||
assert "/dev/mapper/cryptroot2 on /cryptroot2 type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,21 +35,27 @@
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
machine.succeed("PASSWORD=supersecret SYSTEMD_LOG_LEVEL=debug systemd-cryptenroll --tpm2-pcrs= --tpm2-device=auto /dev/vdb |& systemd-cat")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-luks = nodes.machine.specialisation.boot-luks.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Create encrypted volume
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
machine.succeed("PASSWORD=supersecret SYSTEMD_LOG_LEVEL=debug systemd-cryptenroll --tpm2-pcrs= --tpm2-device=auto /dev/vdb |& systemd-cat")
|
||||
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("${boot-luks}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Boot and decrypt the disk
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
# Boot and decrypt the disk
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,33 +82,39 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-luks = nodes.machine.specialisation.boot-luks.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksFormat -q --iter-time=1 /dev/vdb -")
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksOpen -q /dev/vdb cryptroot")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot")
|
||||
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksOpen -q /dev/vdc cryptroot2")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
|
||||
machine.succeed("echo -n ${passphrase} | cryptsetup luksOpen -q /dev/vdc cryptroot2")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
|
||||
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("${boot-luks}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
|
||||
# Boot and decrypt the disk. This part of the test is SLOW.
|
||||
machine.start()
|
||||
machine.wait_for_unit("unl0kr-agent.service")
|
||||
machine.screenshot("prompt")
|
||||
machine.send_chars("${passphrase}")
|
||||
machine.screenshot("pw")
|
||||
machine.send_chars("\n")
|
||||
machine.switch_root()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
# Boot and decrypt the disk. This part of the test is SLOW.
|
||||
machine.start()
|
||||
machine.wait_for_unit("unl0kr-agent.service")
|
||||
machine.screenshot("prompt")
|
||||
machine.send_chars("${passphrase}")
|
||||
machine.screenshot("pw")
|
||||
machine.send_chars("\n")
|
||||
machine.switch_root()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount"), "/dev/mapper/cryptroot do not appear in mountpoints list"
|
||||
assert "/dev/mapper/cryptroot2 on /cryptroot2 type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount"), "/dev/mapper/cryptroot do not appear in mountpoints list"
|
||||
assert "/dev/mapper/cryptroot2 on /cryptroot2 type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "systemd-initrd-swraid";
|
||||
|
||||
|
|
@ -41,30 +41,36 @@
|
|||
specialisation.build-old-initrd.configuration.boot.initrd.systemd.enable = lib.mkForce false;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Create RAID
|
||||
machine.succeed("mdadm --create --force /dev/md0 -n 2 --level=raid1 /dev/vdb /dev/vdc --metadata=0.90 --bitmap=internal")
|
||||
machine.succeed("mkfs.ext4 -L testraid /dev/md0")
|
||||
machine.succeed("mkdir -p /mnt && mount /dev/md0 /mnt && echo hello > /mnt/test && umount /mnt")
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
boot-swraid = nodes.machine.specialisation.boot-swraid.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
# Create RAID
|
||||
machine.succeed("mdadm --create --force /dev/md0 -n 2 --level=raid1 /dev/vdb /dev/vdc --metadata=0.90 --bitmap=internal")
|
||||
machine.succeed("mkfs.ext4 -L testraid /dev/md0")
|
||||
machine.succeed("mkdir -p /mnt && mount /dev/md0 /mnt && echo hello > /mnt/test && umount /mnt")
|
||||
|
||||
# Boot from the RAID
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-swraid.conf")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
# Boot from the RAID
|
||||
machine.succeed("${boot-swraid}/bin/switch-to-configuration boot")
|
||||
machine.succeed("sync")
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
# Ensure we have successfully booted from the RAID
|
||||
assert "(initrd)" in machine.succeed("systemd-analyze") # booted with systemd in stage 1
|
||||
assert "/dev/md0 on / type ext4" in machine.succeed("mount")
|
||||
assert "hello" in machine.succeed("cat /test")
|
||||
assert "md0" in machine.succeed("cat /proc/mdstat")
|
||||
# Ensure we have successfully booted from the RAID
|
||||
assert "(initrd)" in machine.succeed("systemd-analyze") # booted with systemd in stage 1
|
||||
assert "/dev/md0 on / type ext4" in machine.succeed("mount")
|
||||
assert "hello" in machine.succeed("cat /test")
|
||||
assert "md0" in machine.succeed("cat /proc/mdstat")
|
||||
|
||||
# Verify the RAID array was properly auto-detected and assembled
|
||||
detail = machine.succeed("mdadm --detail /dev/md0")
|
||||
assert "raid1" in detail, f"Expected raid1 in mdadm detail output: {detail}"
|
||||
assert "/dev/vdb" in detail, f"Expected /dev/vdb in array: {detail}"
|
||||
assert "/dev/vdc" in detail, f"Expected /dev/vdc in array: {detail}"
|
||||
# Verify the RAID array was properly auto-detected and assembled
|
||||
detail = machine.succeed("mdadm --detail /dev/md0")
|
||||
assert "raid1" in detail, f"Expected raid1 in mdadm detail output: {detail}"
|
||||
assert "/dev/vdb" in detail, f"Expected /dev/vdb in array: {detail}"
|
||||
assert "/dev/vdc" in detail, f"Expected /dev/vdc in array: {detail}"
|
||||
|
||||
machine.wait_for_unit("mdmonitor.service")
|
||||
'';
|
||||
machine.wait_for_unit("mdmonitor.service")
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,11 @@ in
|
|||
enable = true;
|
||||
openFirewall = true;
|
||||
port = 1337;
|
||||
# required to match certificate principals
|
||||
extraFlags = [
|
||||
"--hostname"
|
||||
"server"
|
||||
];
|
||||
};
|
||||
};
|
||||
client1 = client;
|
||||
|
|
@ -58,7 +63,7 @@ in
|
|||
client2.execute("ssh-keygen -t ed25519 -N \"\" -f /root/.ssh/id_ed25519")
|
||||
|
||||
# Grep the ssh connect command from the output of 'upterm host'
|
||||
ssh_command = client1.succeed("grep 'SSH Command' /tmp/session-details | awk -F'│' '{print $3}'").strip()
|
||||
ssh_command = client1.succeed("grep -m1 '^[[:space:]]*ssh' /tmp/session-details").strip()
|
||||
|
||||
# Connect with client2. Because we used '--force-command hostname' we should get "client1" as the output
|
||||
output = client2.succeed(ssh_command)
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
{
|
||||
system ? builtins.currentSystem,
|
||||
config ? { },
|
||||
pkgs ? import ../.. { inherit system config; },
|
||||
system,
|
||||
pkgs,
|
||||
runTest,
|
||||
}:
|
||||
|
||||
with import ../lib/testing-python.nix { inherit system pkgs; };
|
||||
|
||||
let
|
||||
inherit (pkgs) lib;
|
||||
|
||||
makeZfsTest =
|
||||
{
|
||||
|
|
@ -15,11 +14,9 @@ let
|
|||
zfsPackage,
|
||||
extraTest ? "",
|
||||
}:
|
||||
makeTest {
|
||||
runTest {
|
||||
name = zfsPackage.kernelModuleAttribute;
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ elvishjerricco ];
|
||||
};
|
||||
meta.maintainers = with lib.maintainers; [ elvishjerricco ];
|
||||
|
||||
nodes.machine =
|
||||
{
|
||||
|
|
@ -124,82 +121,90 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed(
|
||||
"zpool status",
|
||||
"parted --script /dev/vdb mklabel msdos",
|
||||
"parted --script /dev/vdb -- mkpart primary 1024M -1s",
|
||||
"parted --script /dev/vdc mklabel msdos",
|
||||
"parted --script /dev/vdc -- mkpart primary 1024M -1s",
|
||||
)
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
samba = nodes.machine.specialisation.samba.configuration.system.build.toplevel;
|
||||
encryption = nodes.machine.specialisation.encryption.configuration.system.build.toplevel;
|
||||
forcepool = nodes.machine.specialisation.forcepool.configuration.system.build.toplevel;
|
||||
in
|
||||
# python
|
||||
''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed(
|
||||
"zpool status",
|
||||
"parted --script /dev/vdb mklabel msdos",
|
||||
"parted --script /dev/vdb -- mkpart primary 1024M -1s",
|
||||
"parted --script /dev/vdc mklabel msdos",
|
||||
"parted --script /dev/vdc -- mkpart primary 1024M -1s",
|
||||
)
|
||||
|
||||
with subtest("sharesmb works"):
|
||||
machine.succeed(
|
||||
"zpool create rpool /dev/vdb1",
|
||||
"zfs create -o mountpoint=legacy rpool/root",
|
||||
# shared datasets cannot have legacy mountpoint
|
||||
"zfs create rpool/shared_smb",
|
||||
"bootctl set-default nixos-generation-1-specialisation-samba.conf",
|
||||
"sync",
|
||||
)
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("zfs set sharesmb=on rpool/shared_smb")
|
||||
machine.succeed(
|
||||
"smbclient -gNL localhost | grep rpool_shared_smb",
|
||||
"umount /tmp/mnt",
|
||||
"zpool destroy rpool",
|
||||
)
|
||||
with subtest("sharesmb works"):
|
||||
machine.succeed(
|
||||
"zpool create rpool /dev/vdb1",
|
||||
"zfs create -o mountpoint=legacy rpool/root",
|
||||
# shared datasets cannot have legacy mountpoint
|
||||
"zfs create rpool/shared_smb",
|
||||
"${samba}/bin/switch-to-configuration boot",
|
||||
"sync",
|
||||
)
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("zfs set sharesmb=on rpool/shared_smb")
|
||||
machine.succeed(
|
||||
"smbclient -gNL localhost | grep rpool_shared_smb",
|
||||
"umount /tmp/mnt",
|
||||
"zpool destroy rpool",
|
||||
)
|
||||
|
||||
with subtest("encryption works"):
|
||||
machine.succeed(
|
||||
'echo password | zpool create -O mountpoint=legacy '
|
||||
+ "-O encryption=aes-256-gcm -O keyformat=passphrase automatic /dev/vdb1",
|
||||
"zpool create -O mountpoint=legacy manual /dev/vdc1",
|
||||
"echo otherpass | zfs create "
|
||||
+ "-o encryption=aes-256-gcm -o keyformat=passphrase manual/encrypted",
|
||||
"zfs create -o encryption=aes-256-gcm -o keyformat=passphrase "
|
||||
+ "-o keylocation=http://localhost/zfskey manual/httpkey",
|
||||
"bootctl set-default nixos-generation-1-specialisation-encryption.conf",
|
||||
"sync",
|
||||
"zpool export automatic",
|
||||
"zpool export manual",
|
||||
)
|
||||
machine.crash()
|
||||
machine.start()
|
||||
machine.wait_for_console_text("Starting password query on")
|
||||
machine.send_console("password\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed(
|
||||
"zfs get -Ho value keystatus manual/encrypted | grep -Fx unavailable",
|
||||
"echo otherpass | zfs load-key manual/encrypted",
|
||||
"systemctl start manual-encrypted.mount",
|
||||
"zfs load-key manual/httpkey",
|
||||
"systemctl start manual-httpkey.mount",
|
||||
"umount /automatic /manual/encrypted /manual/httpkey /manual",
|
||||
"zpool destroy automatic",
|
||||
"zpool destroy manual",
|
||||
)
|
||||
with subtest("encryption works"):
|
||||
machine.succeed(
|
||||
'echo password | zpool create -O mountpoint=legacy '
|
||||
+ "-O encryption=aes-256-gcm -O keyformat=passphrase automatic /dev/vdb1",
|
||||
"zpool create -O mountpoint=legacy manual /dev/vdc1",
|
||||
"echo otherpass | zfs create "
|
||||
+ "-o encryption=aes-256-gcm -o keyformat=passphrase manual/encrypted",
|
||||
"zfs create -o encryption=aes-256-gcm -o keyformat=passphrase "
|
||||
+ "-o keylocation=http://localhost/zfskey manual/httpkey",
|
||||
"${encryption}/bin/switch-to-configuration boot",
|
||||
"sync",
|
||||
"zpool export automatic",
|
||||
"zpool export manual",
|
||||
)
|
||||
machine.crash()
|
||||
machine.start()
|
||||
machine.wait_for_console_text("Starting password query on")
|
||||
machine.send_console("password\n")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed(
|
||||
"zfs get -Ho value keystatus manual/encrypted | grep -Fx unavailable",
|
||||
"echo otherpass | zfs load-key manual/encrypted",
|
||||
"systemctl start manual-encrypted.mount",
|
||||
"zfs load-key manual/httpkey",
|
||||
"systemctl start manual-httpkey.mount",
|
||||
"umount /automatic /manual/encrypted /manual/httpkey /manual",
|
||||
"zpool destroy automatic",
|
||||
"zpool destroy manual",
|
||||
)
|
||||
|
||||
with subtest("boot.zfs.forceImportAll works"):
|
||||
machine.succeed(
|
||||
"rm /etc/hostid",
|
||||
"zgenhostid deadcafe",
|
||||
"zpool create forcepool /dev/vdb1 -O mountpoint=legacy",
|
||||
"bootctl set-default nixos-generation-1-specialisation-forcepool.conf",
|
||||
"rm /etc/hostid",
|
||||
"sync",
|
||||
)
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.fail("zpool import forcepool")
|
||||
machine.succeed(
|
||||
"systemctl start forcepool.mount",
|
||||
"mount | grep forcepool",
|
||||
)
|
||||
''
|
||||
+ extraTest;
|
||||
with subtest("boot.zfs.forceImportAll works"):
|
||||
machine.succeed(
|
||||
"rm /etc/hostid",
|
||||
"zgenhostid deadcafe",
|
||||
"zpool create forcepool /dev/vdb1 -O mountpoint=legacy",
|
||||
"${forcepool}/bin/switch-to-configuration boot",
|
||||
"rm /etc/hostid",
|
||||
"sync",
|
||||
)
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.fail("zpool import forcepool")
|
||||
machine.succeed(
|
||||
"systemctl start forcepool.mount",
|
||||
"mount | grep forcepool",
|
||||
)
|
||||
''
|
||||
+ extraTest;
|
||||
|
||||
};
|
||||
|
||||
|
|
@ -250,7 +255,7 @@ in
|
|||
systemdStage1 = true;
|
||||
}).zfsroot;
|
||||
|
||||
expand-partitions = makeTest {
|
||||
expand-partitions = runTest {
|
||||
name = "multi-disk-zfs";
|
||||
nodes = {
|
||||
machine =
|
||||
|
|
|
|||
|
|
@ -13,10 +13,24 @@ lib.makeScope pkgs.newScope (
|
|||
inherit lib;
|
||||
inherit (pkgs)
|
||||
fetchFromGitHub
|
||||
fetchzip
|
||||
fetchgit
|
||||
;
|
||||
};
|
||||
|
||||
emacs31 = callPackage (self.sources.emacs31) inheritedArgs;
|
||||
|
||||
emacs31-gtk3 = self.emacs31.override {
|
||||
withGTK3 = true;
|
||||
};
|
||||
|
||||
emacs31-nox = self.emacs31.override {
|
||||
noGui = true;
|
||||
};
|
||||
|
||||
emacs31-pgtk = self.emacs31.override {
|
||||
withPgtk = true;
|
||||
};
|
||||
|
||||
emacs30 = callPackage (self.sources.emacs30) inheritedArgs;
|
||||
|
||||
emacs30-gtk3 = self.emacs30.override {
|
||||
|
|
@ -31,11 +45,6 @@ lib.makeScope pkgs.newScope (
|
|||
withPgtk = true;
|
||||
};
|
||||
|
||||
emacs30-macport = callPackage (self.sources.emacs30-macport) (
|
||||
inheritedArgs
|
||||
// {
|
||||
srcRepo = true;
|
||||
}
|
||||
);
|
||||
emacs30-macport = callPackage (self.sources.emacs30-macport) inheritedArgs;
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
gtk3-x11,
|
||||
harfbuzz,
|
||||
imagemagick,
|
||||
jansson,
|
||||
libxaw,
|
||||
libxcursor,
|
||||
libxft,
|
||||
|
|
@ -66,7 +65,7 @@
|
|||
# Boolean flags
|
||||
withNativeCompilation ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
|
||||
noGui ? false,
|
||||
srcRepo ? false,
|
||||
srcRepo ? true,
|
||||
withAcl ? false,
|
||||
withAlsaLib ? false,
|
||||
withAthena ? false,
|
||||
|
|
@ -80,8 +79,6 @@
|
|||
withGpm ? stdenv.hostPlatform.isLinux,
|
||||
# https://github.com/emacs-mirror/emacs/blob/emacs-27.2/etc/NEWS#L118-L120
|
||||
withImageMagick ? false,
|
||||
# Emacs 30+ has native JSON support
|
||||
withJansson ? lib.versionOlder version "30",
|
||||
withMailutils ? true,
|
||||
withMotif ? false,
|
||||
withNS ? stdenv.hostPlatform.isDarwin && !(variant == "macport" || noGui),
|
||||
|
|
@ -256,9 +253,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
gnutls
|
||||
(lib.getDev harfbuzz)
|
||||
]
|
||||
++ lib.optionals withJansson [
|
||||
jansson
|
||||
]
|
||||
++ [
|
||||
libxml2
|
||||
ncurses
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
fetchzip,
|
||||
fetchgit,
|
||||
}:
|
||||
|
||||
let
|
||||
|
|
@ -26,9 +26,9 @@ let
|
|||
src =
|
||||
{
|
||||
"mainline" = (
|
||||
fetchzip {
|
||||
url = "mirror://gnu/emacs/${rev}.tar.xz";
|
||||
inherit hash;
|
||||
fetchgit {
|
||||
url = "https://https.git.savannah.gnu.org/git/emacs.git";
|
||||
inherit rev hash;
|
||||
}
|
||||
);
|
||||
"macport" = (
|
||||
|
|
@ -74,7 +74,7 @@ let
|
|||
'';
|
||||
changelog =
|
||||
{
|
||||
"mainline" = "https://www.gnu.org/savannah-checkouts/gnu/emacs/news/NEWS.${version}";
|
||||
"mainline" = "https://cgit.git.savannah.gnu.org/cgit/emacs.git/plain/etc/NEWS?h=${rev}";
|
||||
"macport" = "https://github.com/jdtsmith/emacs-mac/blob/${rev}/NEWS-mac";
|
||||
}
|
||||
.${variant};
|
||||
|
|
@ -105,12 +105,20 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
emacs31 = import ./make-emacs.nix (mkArgs {
|
||||
pname = "emacs";
|
||||
version = "31.0.90";
|
||||
variant = "mainline";
|
||||
rev = "emacs-31.0.90";
|
||||
hash = "sha256-Rzlnn+NKQ+jICXLNop27RnVInq79myn4hueJieDO2Ck=";
|
||||
});
|
||||
|
||||
emacs30 = import ./make-emacs.nix (mkArgs {
|
||||
pname = "emacs";
|
||||
version = "30.2";
|
||||
variant = "mainline";
|
||||
rev = "emacs-30.2";
|
||||
hash = "sha256-W2eZ+cNQhi/fMeRkwOqSKU7Vzvp43WUOpiwaLLNEXtg=";
|
||||
hash = "sha256-3Lfb3HqdlXqSnwJfxe7npa4GGR9djldy8bKRpkQCdSA=";
|
||||
patches = fetchpatch: [
|
||||
(fetchpatch {
|
||||
name = "fix-off-by-one-mistake-80851-CVE-2026-6861.patch";
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
}:
|
||||
vimUtils.buildVimPlugin rec {
|
||||
pname = "codediff.nvim";
|
||||
version = "2.45.0";
|
||||
version = "2.45.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "esmuellert";
|
||||
repo = "codediff.nvim";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Up4vH5yk13don0HrmHHpqrPIKtc1MTtDbZ6QcMHQYAU=";
|
||||
hash = "sha256-1F6z/rhZxiuI6W1ReyHP6EQFxys4qm3fbINxoy1hQZA=";
|
||||
};
|
||||
|
||||
dependencies = [ vimPlugins.nui-nvim ];
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
|||
mktplcRef = {
|
||||
name = "amazon-q-vscode";
|
||||
publisher = "AmazonWebServices";
|
||||
version = "2.1.0";
|
||||
hash = "sha256-DTh8IoJfKuAoNx5XS41wZlafoJwi68g0oJn0vXbEGDo=";
|
||||
version = "2.2.0";
|
||||
hash = "sha256-HwgInQOaSKHSs8CU+Ng4jYA6aaP/g3l4CSb/0ewkmc4=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
|||
|
|
@ -618,8 +618,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "github-markdown-preview";
|
||||
publisher = "bierner";
|
||||
version = "0.3.0";
|
||||
hash = "sha256-7pbl5OgvJ6S0mtZWsEyUzlg+lkUhdq3rkCCpLsvTm4g=";
|
||||
version = "0.4.0";
|
||||
hash = "sha256-bfj0rrZWVtgNfynap9+kdp8jAef0g9pTozEJwmkzhgU=";
|
||||
};
|
||||
meta = {
|
||||
description = "VSCode extension that changes the markdown preview to support GitHub markdown features";
|
||||
|
|
@ -3491,8 +3491,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "veriloghdl";
|
||||
publisher = "mshr-h";
|
||||
version = "1.23.2";
|
||||
hash = "sha256-btwEFVhvNqCnMCftSt7CS6c4lAf29N3MxBAMriKDyjg=";
|
||||
version = "1.25.0";
|
||||
hash = "sha256-7DN0lYxwLL+Z0mIKApRHGHT7HiJZ0nfDMdojQm7XGAM=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/mshr-h.VerilogHDL/changelog";
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
name = "jjk";
|
||||
publisher = "jjk";
|
||||
version = "0.10.0";
|
||||
hash = "sha256-mzsujU3fil3z3yDxpecaOpbXX1K8oh+6dfx/rbOwFYs=";
|
||||
version = "0.11.0";
|
||||
hash = "sha256-hEgr8u6p2aI5TwjgC+iNF7M5oU+DLLZcw7M88Ech87w=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/keanemind/jjk/releases";
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-psx" + lib.optionalString withHw "-hw";
|
||||
version = "0-unstable-2026-05-23";
|
||||
version = "0-unstable-2026-06-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "beetle-psx-libretro";
|
||||
rev = "ccd8ae3d8d8e43100e9f596a66214a5b2acb2da1";
|
||||
hash = "sha256-zznSKLjpc0ovgqzkpxBqVOMV7UZyuTx1R/x4SCbSPdo=";
|
||||
rev = "ee042b73f8fe2aa9c8c73408b5bf200a3ce1a67b";
|
||||
hash = "sha256-k1DvQHGQH/d6W7jTIAW9jIk0qVHUji3PeYAa8MuUP9w=";
|
||||
};
|
||||
|
||||
extraBuildInputs = lib.optionals withHw [
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
}:
|
||||
mkLibretroCore {
|
||||
core = "puae";
|
||||
version = "0-unstable-2026-05-21";
|
||||
version = "0-unstable-2026-06-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "libretro-uae";
|
||||
rev = "9fda5f344470d6837e17b939b0f53e5afe938878";
|
||||
hash = "sha256-gGuYxGRRGyBbHiyG7Gpoi2/frEI5d+ySo8JdZStznN8=";
|
||||
rev = "2b0ed42fe565fb997a0627aaa8f44e0948b527f8";
|
||||
hash = "sha256-gkCzHvoSqh9CluahSSe3+dhZG1HtiNH0orU404pwjgo=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
|
|
|||
|
|
@ -1058,11 +1058,11 @@
|
|||
"vendorHash": null
|
||||
},
|
||||
"oracle_oci": {
|
||||
"hash": "sha256-AFQV9frUBb8OutvJ0UM5bhMh9IownwQ37iGE1fPmps4=",
|
||||
"hash": "sha256-uIggPhDgTMQei6LpXPzAbfbsoNjVN35P60QcqqHyCIA=",
|
||||
"homepage": "https://registry.terraform.io/providers/oracle/oci",
|
||||
"owner": "oracle",
|
||||
"repo": "terraform-provider-oci",
|
||||
"rev": "v8.15.0",
|
||||
"rev": "v8.17.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "act";
|
||||
version = "0.2.88";
|
||||
version = "0.2.89";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nektos";
|
||||
repo = "act";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/nkaJlB2opuScXb8+Jo9rXdYN1Pwc+nq+T05Y4yxcCI=";
|
||||
hash = "sha256-K3+JJHadA/+aayI5XtGBLgFRbCuu6Uilm45kumnlZUw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-z7FX2hrF4DkmHu0K9Atc76pa+PPLylimpoWhQCeF5uA=";
|
||||
vendorHash = "sha256-Gp4Bxq0n1gmqHwrggSonMsFbWMVeCIgeVKY1U1Oe6lU=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,13 +29,13 @@
|
|||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "amnezia-vpn-bin";
|
||||
version = "4.8.15.4";
|
||||
version = "4.8.16.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/amnezia-vpn/amnezia-client/releases/download/${finalAttrs.version}/AmneziaVPN_${finalAttrs.version}_linux_x64.tar";
|
||||
hash = "sha256-Dr8zuzgwMAPXOTh69URFvA7EzGMnfBFO6kPhjhtjr6A=";
|
||||
hash = "sha256-0gffxBD0pNsyTvqAFdYdjI8rzCkyaXHOApSCu4waP7s=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "apko";
|
||||
version = "1.2.14";
|
||||
version = "1.2.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chainguard-dev";
|
||||
repo = "apko";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-+yvQK6mrDT9MOeJsEJp4maycz6jpyAnGkc4QddaCbDo=";
|
||||
hash = "sha256-/Y5JqCCqbP+5Of4K6+Bdag9lLKiY/SJiz6x3W6gQnDE=";
|
||||
# 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;
|
||||
|
|
@ -29,7 +29,7 @@ buildGoModule (finalAttrs: {
|
|||
find "$out" -name .git -print0 | xargs -0 rm -rf
|
||||
'';
|
||||
};
|
||||
vendorHash = "sha256-ITxeRtPJmLEqD8BundfWdQO10XGHaElL2vpYFSM24pQ=";
|
||||
vendorHash = "sha256-cp29oB3YcqQljeLq4ySOMhV+CXYnQ+ZnDljHn0UzmWs=";
|
||||
|
||||
excludedPackages = [
|
||||
"internal/gen-jsonschema"
|
||||
|
|
|
|||
|
|
@ -10,17 +10,17 @@
|
|||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "aws-vault";
|
||||
version = "7.10.8";
|
||||
version = "7.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ByteNess";
|
||||
repo = "aws-vault";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-h7/OGylN2FOC5ESsOV4JHVFZjG7Qv7JHOVlfqqpSWbE=";
|
||||
hash = "sha256-GsE8UtER5KDIlVA36uFVoKPsX2pJNwotKtaizZH33t0=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-FzA58f2aBNs3OG+o0XpKiAbwe7w3GsBTo7h83gkfRSE=";
|
||||
vendorHash = "sha256-spGYYxSeAfbOy+ze854IBBxxv07jnmE9rNGGqenkkCw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
|
|
|||
|
|
@ -18,13 +18,13 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "buildah";
|
||||
version = "1.43.1";
|
||||
version = "1.44.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "buildah";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Xshe0EvsGhtP8ffoo6yV9iY9YZy1krJjnVUmYouSpAM=";
|
||||
hash = "sha256-/Rv5la54ikmP4qVT19tg0sv0kM+xpQO6w9XU1PpGFk4=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
|
|
|||
|
|
@ -35,14 +35,14 @@ let
|
|||
in
|
||||
python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pname = "checkov";
|
||||
version = "3.2.530";
|
||||
version = "3.2.533";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bridgecrewio";
|
||||
repo = "checkov";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Vb9dtlw/fiDRVZ7Mc8RaXvzu6aKQaCiCJHMdIyo4AHY=";
|
||||
hash = "sha256-WuHmMqtDcivwsZpvZB5wQuKWm5BoDSX4LGJEW7oKJrA=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
|
@ -96,6 +96,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
|||
docker
|
||||
dockerfile-parse
|
||||
dpath
|
||||
ecdsa
|
||||
flake8
|
||||
gitpython
|
||||
igraph
|
||||
|
|
|
|||
|
|
@ -8,23 +8,23 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "chhoto-url";
|
||||
version = "7.1.5";
|
||||
version = "7.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SinTan1729";
|
||||
repo = "chhoto-url";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-TREBriuK7k3ZBDkdQ5gGdptWCG/5UOdhoWcOj1Ppd/8=";
|
||||
hash = "sha256-B6bMuy/EEveYtQtGBO5CNeEUlPK8eQ412k+SwlRPm2M=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/actix";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/{main.rs,services.rs} \
|
||||
substituteInPlace src/{main.rs,services/get.rs,services/utils.rs} \
|
||||
--replace-fail "./resources/" "${placeholder "out"}/share/chhoto-url/resources/"
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-S+fWxhPRB+JZPjWQkww9VYtYfc9vnXCZgUZTu+ND1So=";
|
||||
cargoHash = "sha256-9EVGsOipx9ObygpM37iZYLnhYjSMHFhHTDvjHkLWLz8=";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/chhoto-url
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "codeql";
|
||||
version = "2.25.5";
|
||||
version = "2.25.6";
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
|
||||
hash = "sha256-pD8F2VoWQELKYP/fT2jKr0k4+mq0ZF7/fxyDdlG9JYA=";
|
||||
hash = "sha256-1VLmiheNtN6EkPZfgP35hnAiIKhpnuFhigQd6W5DbxU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "coroot";
|
||||
version = "1.21.0";
|
||||
version = "1.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coroot";
|
||||
repo = "coroot";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-TF1Z4IXXTGWkx6oH3MAE+I1AJ+jO7X8Py9lMQwritMc=";
|
||||
hash = "sha256-FntRLdYazY/FeZrOp+DEV3eaaVhn5hxlE4dkUGbemTc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-npMQah59pJqF6wgD2dlEleneIZbP/atDGEpjjb+KCpI=";
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "ctlptl";
|
||||
version = "0.9.3";
|
||||
version = "0.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tilt-dev";
|
||||
repo = "ctlptl";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-4c/sEWzKhs0PjHmZzVs8jXdWe2GWHYNFGsA9cQF5tOI=";
|
||||
hash = "sha256-/E1E3agKPYIgBjhUDGr2eKmoWH3tAbx+eSQRnDja2k0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-nlLx2+NdhqkhpwM7E5PwKcFW+MsJLeSoXWRdtQjFV4Q=";
|
||||
vendorHash = "sha256-uARktb9Umo/SkJ8UvbOZhNSYb2ooXFybHhtY4xIVSFs=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
|||
|
|
@ -17,16 +17,16 @@
|
|||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dashy-ui";
|
||||
version = "4.0.7";
|
||||
version = "4.2.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lissy93";
|
||||
repo = "dashy";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-PWuynBFOp4A/0AC5Lc5zAkb5Y5DWJgdZHtDc/douYQc=";
|
||||
hash = "sha256-8oShyf4TfHjPG/yxK1sbZA5gHyqOQYqfoUEDQlaJgU0=";
|
||||
};
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = finalAttrs.src + "/yarn.lock";
|
||||
hash = "sha256-jU/XnX6i6P1CWWWyUeVXt2q2PXMExDvmPTiLBOEuHcE=";
|
||||
hash = "sha256-5a2ypu6A4WOGdcm6HlvuzuCEgq3szd64zqTp/rmnjh4=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "doctl";
|
||||
version = "1.160.0";
|
||||
version = "1.160.1";
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ buildGoModule (finalAttrs: {
|
|||
owner = "digitalocean";
|
||||
repo = "doctl";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LXALzs5oubT1uL+sgA0LsaoFbir3e8JYVlIiJv6U5J4=";
|
||||
hash = "sha256-M+DBJfUXymlzY9DJeyHl3SPaCIKCT2iN/I4rd3uyQbQ=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "ecsk";
|
||||
version = "0.9.3";
|
||||
version = "0.9.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yukiarrr";
|
||||
repo = "ecsk";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-1nrV7NslOIXQDHsc7c5YfaWhoJ8kfkEQseoVVeENrHM=";
|
||||
hash = "sha256-wCv3wyD2KM4Jzawd6Z4JFLCafsDp0W40ygbB05h7r0I=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "0.308.0";
|
||||
version = "0.308.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "evcc-io";
|
||||
repo = "evcc";
|
||||
tag = version;
|
||||
hash = "sha256-phrTg6P/sLb3lKTVF+PBH4EGfOQ57dpt3ZfLxZ6EOew=";
|
||||
hash = "sha256-MsNDWTv6CDQfQMA9miImvGkQeJnsh6/zYtAcQJjHaF4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-UI1WyTDJA5GRgt8TmpMQi4DmYzfQFGhDd5WeitT8VnI=";
|
||||
|
|
@ -40,7 +40,7 @@ buildGo126Module rec {
|
|||
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit src;
|
||||
hash = "sha256-zMZAwO/2cch03myTGK+4sDwrEJhQzJJ8TwEg1lwxH0c=";
|
||||
hash = "sha256-ypBg2TQ3qbc8cIBfFqICbNSCsIdokOtaFOqFD9bnMQM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "example-robot-data";
|
||||
version = "4.4.0";
|
||||
version = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Gepetto";
|
||||
repo = "example-robot-data";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-HnI1EaTSqk7mbihwFTgnMxgPZxMSYnAwaCLEXS3LUbE=";
|
||||
hash = "sha256-oQk6mJ1lOTcWrTWLViVQWk+R6DdcnLSigxKuXgpLhs0=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
|
|
|||
|
|
@ -24,11 +24,11 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "filebot";
|
||||
version = "5.2.0";
|
||||
version = "5.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://web.archive.org/web/20230917142929/https://get.filebot.net/filebot/FileBot_${finalAttrs.version}/FileBot_${finalAttrs.version}-portable.tar.xz";
|
||||
hash = "sha256-OcXXKaZcBuP584SJWeQB+aaxO0kih6Oiud0Vm8e9kPo=";
|
||||
hash = "sha256-1LYFc76wQOnmlkdGjE7ZuRh4FeM2o8ZM4sfDwx8hyBc=";
|
||||
};
|
||||
|
||||
unpackPhase = "tar xvf $src";
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gerbil";
|
||||
version = "1.4.0";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fosrl";
|
||||
repo = "gerbil";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-SKpXWlpMkmo5Qwdi/MylqNIBvP4jEHSZfP5BjQD1nVs=";
|
||||
hash = "sha256-wKqJfiCzmMbKZXJGB7BWoXRNDukc4t+PX60XyynJNAU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-k5G8mkqrezRYY2lH1kbMMcW8GsUkyDaPglLEAzJIxYo=";
|
||||
vendorHash = "sha256-S5olgsmX0uZR9P/u/8Rf3lzRCSIwPDcmlvSzJhhJM3w=";
|
||||
|
||||
# patch out the /usr/sbin/iptables
|
||||
postPatch = ''
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gh-ost";
|
||||
version = "1.1.9";
|
||||
version = "1.1.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "github";
|
||||
repo = "gh-ost";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-wnHPFPA0ql6KWN9+ZvzIdXwaAhFdBc94UJK7+4no1NU=";
|
||||
hash = "sha256-1QdGPAvQgh533oAFwVxtGKPGJ7rfq7tG/zy8VUqJLq0=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
|
|||
|
|
@ -10,14 +10,18 @@
|
|||
python3.pkgs.buildPythonApplication {
|
||||
pname = "git-relevant-history";
|
||||
version = "1.0.0-unstable-2022-09-15";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rainlabs-eu";
|
||||
repo = "git-relevant-history";
|
||||
rev = "84552324d7cb4790db86282fc61bf98a05b7a4fd";
|
||||
hash = "sha256-46a6TR1Hi3Lg2DTmOp1aV5Uhd4IukTojZkA3TVbTnRY=";
|
||||
};
|
||||
propagatedBuildInputs = [
|
||||
|
||||
build-system = [ python3.pkgs.setuptools ];
|
||||
|
||||
dependencies = [
|
||||
git
|
||||
git-filter-repo
|
||||
python3.pkgs.docopt
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "github-mcp-server";
|
||||
version = "1.0.5";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "github";
|
||||
repo = "github-mcp-server";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-NVC6geIzaSyz1uTwTQO1awMBdVEuuQMB2csAfUjMvsw=";
|
||||
hash = "sha256-/Wf0p3Ug3fxtXhvfab+ZSPe0XlGlWC0ujxkMb52D+oM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-+ybGV37fjJ5eZjxTb+SUnJ52J20XizJL8WjoM16Rabg=";
|
||||
vendorHash = "sha256-J1hC4hdEKLENXLJrsyV41TaJ9+2CuPz5KoIMm2mXvTE=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "glooctl";
|
||||
version = "1.21.6";
|
||||
version = "1.21.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solo-io";
|
||||
repo = "gloo";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-KZh0ZUCZ5zUJRmt/JpfqowADrjuGgK27XoIJ/1TBgzA=";
|
||||
hash = "sha256-bEFf6paNWstNftUZ3YDKkZmfSp4y4Q3k64p8r1yxzw4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-1bY+69XKEmcV+8HV2X2JYA6S9A29KbHTLaXSZbkFbhg=";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
From ac51f09a9e1a1307ebaf38ffab66eb729cf1b0a5 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Klink <flokli@flokli.de>
|
||||
Date: Tue, 2 Jun 2026 20:17:25 +0200
|
||||
Subject: [PATCH] mount.go: try fusermount3 suid wrapper and fallback to
|
||||
fusermount from $PATH
|
||||
|
||||
On NixOS, we want to use the fusermount3 suid wrapper to allow mounting
|
||||
as non-root user.
|
||||
|
||||
We still want to try fusermount from `$PATH` to work on non-NixOS, and
|
||||
keep the /bin/fusermount fallback as a last resort.
|
||||
---
|
||||
mount.go | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/mount.go b/mount.go
|
||||
index 2508409..defc967 100644
|
||||
--- a/mount.go
|
||||
+++ b/mount.go
|
||||
@@ -526,14 +526,16 @@ func initGoFuse(rootNode fs.InodeEmbedder, args *argContainer) *fuse.Server {
|
||||
|
||||
// haveFusermount2 finds out if the "fusermount" binary is from libfuse 2.x.
|
||||
func haveFusermount2() bool {
|
||||
- path, err := exec.LookPath("fusermount")
|
||||
- if err != nil {
|
||||
- path = "/bin/fusermount"
|
||||
+ path := "/bin/fusermount"
|
||||
+ if _, err := os.Stat("/run/wrappers/bin/fusermount3"); err == nil {
|
||||
+ path = "/run/wrappers/bin/fusermount3"
|
||||
+ } else if newPath, err := exec.LookPath("fusermount"); err == nil {
|
||||
+ path = newPath
|
||||
}
|
||||
cmd := exec.Command(path, "-V")
|
||||
var out bytes.Buffer
|
||||
cmd.Stdout = &out
|
||||
- err = cmd.Run()
|
||||
+ err := cmd.Run()
|
||||
if err != nil {
|
||||
tlog.Warn.Printf("warning: haveFusermount2: %v", err)
|
||||
return false
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
fuse,
|
||||
makeWrapper,
|
||||
openssl,
|
||||
pandoc,
|
||||
|
|
@ -22,6 +21,8 @@ buildGoModule (finalAttrs: {
|
|||
sha256 = "sha256-uQLFcabN418m1dvogJ71lJeTF3F9JycK/8qCPaXblSU=";
|
||||
};
|
||||
|
||||
patches = [ ./0001-mount.go-try-fusermount3-suid-wrapper-and-fallback-t.patch ];
|
||||
|
||||
vendorHash = "sha256-dvOROh5TsMl+52RvKmDG4ftNv3WF19trgttu5BGWktU=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
@ -56,11 +57,7 @@ buildGoModule (finalAttrs: {
|
|||
popd
|
||||
'';
|
||||
|
||||
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount,
|
||||
# as the setuid wrapper is required to use gocryptfs as non-root on NixOS
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/gocryptfs \
|
||||
--suffix PATH : ${lib.makeBinPath [ fuse ]}
|
||||
ln -s $out/bin/gocryptfs $out/bin/mount.fuse.gocryptfs
|
||||
'';
|
||||
|
||||
|
|
|
|||
|
|
@ -6,16 +6,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gogup";
|
||||
version = "1.1.4";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nao1215";
|
||||
repo = "gup";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-ptLWQdafFo1zpcgzW0c3C9t8MKquE+fEUEQehSqA2MY=";
|
||||
hash = "sha256-tkZt0lv3uy43EijCE+Lvgt2X4p1rB2SkZ4UfkJGYPbY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-2iPRWNbhXiaj3jZjWQeEl/hieIzJ3ePYh75rMWDh/pc=";
|
||||
vendorHash = "sha256-lS7C/932cpaVUtXJ3tuZKyqDv4yT2RSG2NfQW5kcQrM=";
|
||||
doCheck = false;
|
||||
|
||||
ldflags = [
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "grimblast";
|
||||
version = "0.1-unstable-2026-03-28";
|
||||
version = "0.1-unstable-2026-05-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyprwm";
|
||||
repo = "contrib";
|
||||
rev = "b3c2a094163cad4aac7af09333fddf2c9838c348";
|
||||
hash = "sha256-xr3Ih1HrAIlO9GGrmnVrmRh50GSPMWI4QWmbEwlbYq8=";
|
||||
rev = "bf1a7cdb086587e6bed6e8ecd285a81c01a11c54";
|
||||
hash = "sha256-epTJKmTCNL1Hm6/YdEWAgiOMVBSzC9/v/rjyOieP3yA=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
lib,
|
||||
}:
|
||||
let
|
||||
version = "0.17.15";
|
||||
version = "0.17.16";
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "heimdall-proxy";
|
||||
|
|
@ -15,10 +15,10 @@ buildGoModule {
|
|||
owner = "dadrus";
|
||||
repo = "heimdall";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-NuSoLULwS634FPLr8bvcLXIIO3zL9nSFcMkjriuE6G8=";
|
||||
hash = "sha256-M1aaY32ykfzKGkH1D8U8yBeEPEM20IWuJHUiHIj9IPE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-mGsV453mv36Gw5XtLRcBlhXkOpXDLGS3bEpt8oZeb1M=";
|
||||
vendorHash = "sha256-ZNKNsiiCHlEp5JVVwHTvQLgxBNWIFAgI8vpYGOCb0RY=";
|
||||
|
||||
tags = [ "sqlite" ];
|
||||
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "httm";
|
||||
version = "0.49.9";
|
||||
version = "0.50.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kimono-koans";
|
||||
repo = "httm";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-Y0WYgi/VdGjE70XZcJD7G+ONCSq2YXpX9/RyijPW3kc=";
|
||||
hash = "sha256-+19Xu42Tp0WkhdmhfFOAbSrTZ3SSQRgbOQwZY8KrFJg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-CSwfwW5ChnvrtN+zl2DdAPHDJCL3RSQHlBT2xWt+KCc=";
|
||||
cargoHash = "sha256-HdYBWbyl5FSOf/hgtXV3BbjpXfrM/6EJpDese5hBNzk=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
|||
|
|
@ -12,16 +12,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "hyfetch";
|
||||
version = "2.0.5";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hykilpikonna";
|
||||
repo = "hyfetch";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-vrTmjg6CZczImueN3JxKg1vYXAaEDYHYG7UaZeupYPU=";
|
||||
hash = "sha256-/aOVgl93n9IL5lDzY1REg88BXhlqtDDjrZnkD4rQ9aw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-SieVB0zwer9Ksio3l87gUZkVJMwb+Da/NjBi5f57tJc=";
|
||||
cargoHash = "sha256-uTIzLY5H+zoCsC/YalA0ImnJ817KhU5sXHWkbvWEfVk=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
|
@ -59,7 +59,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
versionCheckKeepEnvironment = [ "PATH" ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version-regex=^(\\d+\\.\\d+\\.\\d+)$" ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Neofetch with LGBTQ+ pride flags";
|
||||
|
|
@ -81,6 +83,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
isabelroses
|
||||
nullcube
|
||||
defelo
|
||||
Misaka13514
|
||||
];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "iio-niri";
|
||||
version = "2.0.0";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Zhaith-Izaliel";
|
||||
repo = "iio-niri";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-foE+bPJANKWmPSt3s8BOqEIXGZoFNWRJT731xf5sr1M=";
|
||||
hash = "sha256-EwilbkL1cMH8l63Cm5eikVKc+YndsYsaYJxhCNJgz6M=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-y3Sv3JWg252XbuIqEioNagaQ99Vr9x1OfrFC6Jl4kSY=";
|
||||
cargoHash = "sha256-f/pFWlLxQebzawDdHj3UtpT5Kq9a6fm+tAssqg8ibdo=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
|
|
|||
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "inputplumber";
|
||||
version = "0.77.2";
|
||||
version = "0.77.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ShadowBlip";
|
||||
repo = "InputPlumber";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-QxGDmuRTZLHBqZ+S73CtNKdLg/XumutGSpTSz4sGFYQ=";
|
||||
hash = "sha256-lcv61lzZ45vNDdFdlnJOQW/mIN8KdsAEAUsoNuuhLM0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-EtCK/zYRW2LdZhPSrO6ydBXBQwIrkqaJmH+3XfwERTw=";
|
||||
cargoHash = "sha256-VrzePyiBWAWy+IC9QWi5vooAp2+SwuzT3n+SMG/Ntas=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ maven.buildMavenPackage rec {
|
|||
'';
|
||||
|
||||
meta = {
|
||||
description = "Program to visualize different juggling pattens";
|
||||
description = "Program to visualize different juggling patterns";
|
||||
homepage = "https://jugglinglab.org/";
|
||||
license = lib.licenses.gpl2Only;
|
||||
mainProgram = "jugglinglab";
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
lib,
|
||||
stdenvNoCC,
|
||||
fetchzip,
|
||||
installFonts,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
|
|
@ -14,14 +15,7 @@ stdenvNoCC.mkDerivation rec {
|
|||
hash = "sha256-f9hjo3B4q2WBl0j86fHny8bYUqldYSC0pP4uoWOI8Zk=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/fonts/truetype
|
||||
mv *.ttf $out/share/fonts/truetype
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
nativeBuildInputs = [ installFonts ];
|
||||
|
||||
meta = {
|
||||
description = "Monospaced font for scientific and technical computing";
|
||||
|
|
|
|||
|
|
@ -3,13 +3,8 @@
|
|||
stdenv,
|
||||
lib,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
kdoctools,
|
||||
wrapQtAppsHook,
|
||||
kconfig,
|
||||
kcrash,
|
||||
kwidgetsaddons,
|
||||
kxmlgui,
|
||||
kdePackages,
|
||||
qt6,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
|
@ -26,16 +21,16 @@ stdenv.mkDerivation {
|
|||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
kdoctools
|
||||
wrapQtAppsHook
|
||||
kdePackages.extra-cmake-modules
|
||||
kdePackages.kdoctools
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
kconfig
|
||||
kcrash
|
||||
kwidgetsaddons
|
||||
kxmlgui
|
||||
kdePackages.kconfig
|
||||
kdePackages.kcrash
|
||||
kdePackages.kwidgetsaddons
|
||||
kdePackages.kxmlgui
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kulala-core";
|
||||
version = "0.7.0";
|
||||
version = "0.13.0";
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
|
@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
owner = "mistweaverco";
|
||||
repo = "kulala-core";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-zY/Yg/1s/pyyuKxtUa2cIzLCraSNSzpPMBx9EbGIIGI=";
|
||||
hash = "sha256-pUBG8tlybpd/YPArIssCEy5Op47MVPLJsOOolVItZpU=";
|
||||
};
|
||||
|
||||
node_modules = stdenv.mkDerivation {
|
||||
|
|
@ -78,11 +78,13 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
cp -R ${finalAttrs.node_modules}/node_modules .
|
||||
echo '{ "version": "${finalAttrs.version}" }' > packages/core/version.json
|
||||
bun build src/cli.ts \
|
||||
--define __KULALA_EMBED_CURL__=false \
|
||||
--target bun \
|
||||
--outfile dist/kulala-core.js \
|
||||
--cwd packages/core
|
||||
(
|
||||
cd packages/core
|
||||
bun build src/cli.ts \
|
||||
--target=bun \
|
||||
--outdir=dist \
|
||||
--asset-naming='[name].[ext]'
|
||||
)
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
|
@ -90,7 +92,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm644 packages/core/dist/kulala-core.js $out/lib/kulala-core/kulala-core.js
|
||||
install -Dm644 packages/core/dist/cli.js $out/lib/kulala-core/kulala-core.js
|
||||
install -Dm644 packages/core/dist/liblua5.1.wasm $out/lib/kulala-core/liblua5.1.wasm
|
||||
makeWrapper ${lib.getExe bun} $out/bin/kulala-core \
|
||||
--add-flags $out/lib/kulala-core/kulala-core.js \
|
||||
--set KULALA_CURL_PATH ${lib.getExe curl}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
];
|
||||
doInstallCheck = true;
|
||||
|
||||
checkFlags = [
|
||||
# This tests checks the output of `jj diff`. However, `jj diff` had a change upstream making the test fail. Skip for now, until the test is updated.
|
||||
"--skip=commander::files::tests::get_file_diff"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "TUI for Jujutsu/jj";
|
||||
homepage = "https://github.com/Cretezy/lazyjj";
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "librepods";
|
||||
version = "0.2.0";
|
||||
version = "0.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kavishdevar";
|
||||
repo = "librepods";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nLRbVnm+4jr7yH6e/BsygkC4kOx1PJNy6jU5ioe2c54=";
|
||||
hash = "sha256-6l1WjwjDbv5e3tDaWo9+XSEjr9ge/hKysIkeUqyiO4U=";
|
||||
};
|
||||
|
||||
sourceRoot = "source/linux";
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libtrace";
|
||||
version = "4.0.31-1";
|
||||
version = "4.0.32-2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LibtraceTeam";
|
||||
repo = "libtrace";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-QsqJquBnhRf7OBOs6eWFo9WFF9J2Bw4zbX1/ooN43Xw=";
|
||||
hash = "sha256-cqRhTNSXvNlZW63baxqcqVJJEVe8SeunTPdJ623kIvo=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
|||
|
|
@ -47,14 +47,14 @@ in
|
|||
# as bootloader for various platforms and corresponding binary and helper files.
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "limine";
|
||||
version = "12.3.1";
|
||||
version = "12.3.2";
|
||||
|
||||
# We don't use the Git source but the release tarball, as the source has a
|
||||
# `./bootstrap` script performing network access to download resources.
|
||||
# Packaging that in Nix is very cumbersome.
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Limine-Bootloader/Limine/releases/download/v${finalAttrs.version}/limine-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-orkotxbusV4giozDLkUZuLZAHNS4GZnfj+EXi5tSRWU=";
|
||||
hash = "sha256-xQUoMQbq3fpbvFbYwbHPMz0SZU3LN/gOaF01duhwKGU=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
|||
2210
pkgs/by-name/lu/luwen/Cargo.lock
generated
2210
pkgs/by-name/lu/luwen/Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -6,25 +6,21 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "luwen";
|
||||
version = "0.7.14";
|
||||
version = "0.8.5";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tenstorrent";
|
||||
repo = "luwen";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KhkABISkR37MjEwgroVtywYNCxgfwXyM5LG2CIJhu3M=";
|
||||
hash = "sha256-lY7cZ+8C0UEGGYxufl4Vi8g0L4AJFXaGqn7XE2ivTcQ=";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
cp ${./Cargo.lock} $sourceRoot/Cargo.lock
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
protobuf
|
||||
];
|
||||
|
||||
# Vendor a lockfile until upstream manages to consistently have checksums in their's.
|
||||
cargoLock.lockFile = ./Cargo.lock;
|
||||
cargoHash = "sha256-QBGXbRiBk4WIQFopq1OccmUHgx5GzR/PKhMH4Ie+fyg=";
|
||||
|
||||
meta = {
|
||||
description = "Tenstorrent system interface tools";
|
||||
|
|
|
|||
|
|
@ -8,19 +8,18 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "md-tui";
|
||||
version = "0.10.0";
|
||||
version = "0.10.1";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "henriklovhaug";
|
||||
repo = "md-tui";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-ZyCPaeY1fcUEx5LNHlp84BJ525BTeqiwLGxvGElWIVA=";
|
||||
hash = "sha256-bFL84y0735L93x0nWkKAAmTDMdZzs5DDoxqbQhgXUMQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-E/WW3LnD5qVJciyOYmAZSVBhXKRuTgEHbV0UHC18+Vw=";
|
||||
cargoHash = "sha256-xR9bWWDxerP2zGAb43ZWONLcsbmUn8KzMXwDEmrjioU=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "moor";
|
||||
version = "2.13.2";
|
||||
version = "2.13.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "walles";
|
||||
repo = "moor";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-5VfldFEPcYva6yKDolgs1ZzGSAkn3Caxk29sedniw58=";
|
||||
hash = "sha256-Axd6zCAarhXUsT32ZTqcVKC/b2PwmZvIg5f9QNMREAI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-fHOatNwedbDNGp7V8ynW1NiTkqSJmo8vrv6S64gUQqM=";
|
||||
|
|
|
|||
20
pkgs/by-name/na/nanobench/fix-cmake-find_package.patch
Normal file
20
pkgs/by-name/na/nanobench/fix-cmake-find_package.patch
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
--- a/CMakeLists.txt 2026-02-25 19:30:35.568736249 -0800
|
||||
+++ b/CMakeLists.txt 2026-02-25 19:31:26.709567839 -0800
|
||||
@@ -124,6 +124,17 @@
|
||||
DESTINATION ${INSTALL_CONFIGDIR}
|
||||
)
|
||||
|
||||
+ write_basic_package_version_file(
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
+ VERSION 4.3.11
|
||||
+ COMPATIBILITY SameMajorVersion
|
||||
+ )
|
||||
+
|
||||
+ install(FILES
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/nanobench"
|
||||
+ )
|
||||
+
|
||||
# Install headers
|
||||
install(FILES src/include/nanobench.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
else()
|
||||
|
|
@ -36,6 +36,10 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
url = "https://github.com/martinus/nanobench/pull/98/commits/17a1f0b598a09d399dd492c72bca5b48ad76c794.patch";
|
||||
hash = "sha256-2lOD63qN7gywUQxrdSRVyddpzcQjjeWOrA3hqu7x+CY=";
|
||||
})
|
||||
|
||||
# Drop when https://github.com/martinus/nanobench/pull/134 is merged
|
||||
# This is a slice of what that PR provides, it makes it possible for packages to do "find_package"
|
||||
./fix-cmake-find_package.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
|||
|
|
@ -4,31 +4,35 @@
|
|||
lib,
|
||||
fetchFromGitHub,
|
||||
nixVersions,
|
||||
pkg-config,
|
||||
boost,
|
||||
python3Packages,
|
||||
}:
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "nix-heuristic-gc";
|
||||
version = "0.7.3";
|
||||
version = "0.7.4";
|
||||
format = "setuptools";
|
||||
src = fetchFromGitHub {
|
||||
owner = "risicle";
|
||||
repo = "nix-heuristic-gc";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-aTwILsqqlV0DEm9AhDKd6HCB022BbebPH/VwzDgzS4E=";
|
||||
hash = "sha256-T/PKn005gkALJP2FfHfWJj5UIRP9IYkvMOT3+kMY3Wo=";
|
||||
};
|
||||
|
||||
# NIX_SYSTEM suggested at
|
||||
# https://github.com/NixOS/nixpkgs/issues/386184#issuecomment-2692433531
|
||||
env.NIX_SYSTEM = nixVersions.nixComponents_2_30.nix-store.stdenv.hostPlatform.system;
|
||||
env.NIX_SYSTEM = nixVersions.nixComponents_2_31.nix-store.stdenv.hostPlatform.system;
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
nixVersions.nixComponents_2_30.nix-store
|
||||
nixVersions.nixComponents_2_30.nix-main
|
||||
nixVersions.nixComponents_2_31.nix-store
|
||||
nixVersions.nixComponents_2_31.nix-main
|
||||
python3Packages.pybind11
|
||||
python3Packages.setuptools
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
python3Packages.humanfriendly
|
||||
python3Packages.rustworkx
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "prometheus-klipper-exporter";
|
||||
version = "0.14.0";
|
||||
version = "0.15.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scross01";
|
||||
repo = "prometheus-klipper-exporter";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-2BJkSKchUkLbUJke+4nB49MFp8OPPcytYAhtxCEdXO4=";
|
||||
sha256 = "sha256-TcGD7WjExo1/rgwVUSPmKFJEQZhttSgBIY3gKyfcwtQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-8Y5o6Vh1Kn9CBG91qr1TQzyBHA0d31Femj9j1uW+4uk=";
|
||||
vendorHash = "sha256-VebaCzdPGl0hOHRXvwZb4aDzXlDZ57v/QVYzuagvvOM=";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,20 +7,20 @@
|
|||
|
||||
buildNpmPackage rec {
|
||||
pname = "protoc-gen-es";
|
||||
version = "2.11.0";
|
||||
version = "2.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bufbuild";
|
||||
repo = "protobuf-es";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-fH/gp7+MU7W8FESJTr4do6FIqXpxS4v6fAxa4xc+vKw=";
|
||||
hash = "sha256-+na4Gfnl+xfyeDO5r1WHgmG9SpDwamhfJvoFchAzhns=";
|
||||
|
||||
postFetch = ''
|
||||
${lib.getExe npm-lockfile-fix} $out/package-lock.json
|
||||
'';
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-UW17BQoPv5sfQT52n6PBQrwArInDvQptneF3bgKEXTY=";
|
||||
npmDepsHash = "sha256-6iof5DCyA+LLbWfFE/BuznUD87hT8jtmzKleVK5cnw8=";
|
||||
|
||||
npmWorkspace = "packages/protoc-gen-es";
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "rerun";
|
||||
version = "0.32.2";
|
||||
version = "0.33.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
|
@ -49,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
owner = "rerun-io";
|
||||
repo = "rerun";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-VVMogg0mWBoev9oE4CSbv2caTTpcfkReTWA1tJ2n7RI=";
|
||||
hash = "sha256-1jlZ+8jx1dNsWWrkQSyFAIK/VQNSotcyTknz0WhIaIc=";
|
||||
};
|
||||
|
||||
# The path in `build.rs` is wrong for some reason, so we patch it to make the passthru tests work
|
||||
|
|
@ -58,7 +58,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
--replace-fail '"rerun_sdk/rerun_cli/rerun"' '"rerun_sdk/rerun"'
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-6cL7pocqcMiw+D7R6LIcegP4tO9fUTgXQFG51n6rsU4=";
|
||||
cargoHash = "sha256-3erI/kWTJ5Exl9QpGidsIizi0UWbudzMSzoscoSTmP8=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--package"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
dbus,
|
||||
libcap,
|
||||
polkit,
|
||||
systemd,
|
||||
systemdLibs,
|
||||
fetchpatch,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
|
@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
dbus
|
||||
libcap
|
||||
polkit
|
||||
systemd
|
||||
systemdLibs
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "sandbox-runtime";
|
||||
version = "0.0.52";
|
||||
version = "0.0.54";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ buildNpmPackage (finalAttrs: {
|
|||
owner = "anthropic-experimental";
|
||||
repo = "sandbox-runtime";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-EcRnx4j8YdBvhCNgWdfzvgP6SgvXQfqu8aNBjeM1YQM=";
|
||||
hash = "sha256-mk+dd/vMuQPklbFhse35n+m/0Y90WxrLPqjXCFBLE78=";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
|
|
@ -37,7 +37,7 @@ buildNpmPackage (finalAttrs: {
|
|||
|
||||
strictDeps = true;
|
||||
|
||||
npmDepsHash = "sha256-IFf65G1v3JtjjH7o8gS68VongLIP3WuKmD/om41yRts=";
|
||||
npmDepsHash = "sha256-H4azrpaCxKZNQZPEC/xaKxpPzwK19/ZhQlzYKsrDHWY=";
|
||||
|
||||
postFixup =
|
||||
let
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "sish";
|
||||
version = "2.22.1";
|
||||
version = "2.23.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "antoniomika";
|
||||
repo = "sish";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-sLryMoGnxTinMsf4DXyM37MjZ5TaJI+ldYxKiCB6ny0=";
|
||||
hash = "sha256-8C4Xh9OX5pmaQ12Guu3y/jw8nIfy6DV0nduAH6hlImM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-3Imp9g0/Ory7ECw4pkrIltau9G1Aw3uRP5A+zWCz0mE=";
|
||||
vendorHash = "sha256-U+gMlfDTEt9//SRLJA5yx/VZhwFGuMpTCnCfw9Nck+0=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "tofu-ls";
|
||||
version = "0.4.2";
|
||||
version = "0.5.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
|
|
@ -16,10 +16,10 @@ buildGoModule (finalAttrs: {
|
|||
owner = "opentofu";
|
||||
repo = "tofu-ls";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-B7y22tmD8PLO4FRI0rskffRQAZu8Kvi8TyzmjCYsWs8=";
|
||||
hash = "sha256-v6oqCRsiTAOGqhVZD6Zwhq0/bSl55PhH9+aEYxjlQcA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Uq/4rd3OvCBhp53MEMLiWL/V6hkygwdBLSN8Wzwqoew=";
|
||||
vendorHash = "sha256-vugyEaOD7diOiymo9nDEfIez++mPYWq1qVj3a9wCqoc=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
|||
59
pkgs/by-name/tr/trusttunnel-endpoint/package.nix
Normal file
59
pkgs/by-name/tr/trusttunnel-endpoint/package.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
boringssl,
|
||||
cacert,
|
||||
python3,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "trusttunnel-endpoint";
|
||||
version = "1.0.33";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TrustTunnel";
|
||||
repo = "TrustTunnel";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-uTAjZbPBCVucjjrl3cYCT6+6cSxiIe/Q3jm+Oa+Fl7E=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-njQL6YtnRtfpyvsxoTmsSILvyKwYqg42DXsZ8zkhBWo=";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace $cargoDepsCopy/*/boring-sys-*/build/main.rs $cargoDepsCopy/*/quiche-*/src/build.rs \
|
||||
--replace-fail "cargo:rustc-link-lib=static=crypto" "cargo:rustc-link-lib=dylib=crypto" \
|
||||
--replace-fail "cargo:rustc-link-lib=static=ssl" "cargo:rustc-link-lib=dylib=ssl"
|
||||
'';
|
||||
|
||||
env = {
|
||||
BORING_BSSL_PATH = boringssl;
|
||||
BORING_BSSL_INCLUDE_PATH = "${boringssl.dev}/include";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boringssl
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
cacert
|
||||
python3
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Modern, fast and obfuscated VPN protocol - endpoint component";
|
||||
homepage = "https://github.com/TrustTunnel/TrustTunnel";
|
||||
changelog = "https://github.com/TrustTunnel/TrustTunnel/blob/${finalAttrs.src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ k900 ];
|
||||
mainProgram = "trusttunnel_endpoint";
|
||||
};
|
||||
})
|
||||
16
pkgs/by-name/tt/tt-logger/fix-install.patch
Normal file
16
pkgs/by-name/tt/tt-logger/fix-install.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b3c7ca3..927e11c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -41,8 +41,9 @@ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.23)
|
||||
INTERFACE
|
||||
FILE_SET api
|
||||
TYPE HEADERS
|
||||
- BASE_DIRS ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
- FILES ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/tt-logger.hpp
|
||||
+ BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
+ FILES
|
||||
+ include/${PROJECT_NAME}/tt-logger.hpp
|
||||
)
|
||||
endif()
|
||||
|
||||
64
pkgs/by-name/tt/tt-logger/package.nix
Normal file
64
pkgs/by-name/tt/tt-logger/package.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
cmake,
|
||||
ninja,
|
||||
pkg-config,
|
||||
fmt_11,
|
||||
spdlog,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tt-logger";
|
||||
version = "1.1.9";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tenstorrent";
|
||||
repo = "tt-logger";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Vd/FwjcNZWh/FnP5CwXO4UQtKTq/6GhRSppCYJMj9d4=";
|
||||
};
|
||||
|
||||
cpm = fetchurl {
|
||||
url = "https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.40.2/CPM.cmake";
|
||||
hash = "sha256-yM3DLAOBZTjOInge1ylk3IZLKjSjENO3EEgSpcotg10=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/tenstorrent/tt-logger/pull/27
|
||||
./fix-install.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
cp $cpm cmake/CPM.cmake
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
fmt_11
|
||||
spdlog
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
|
||||
(lib.cmakeBool "CPM_USE_LOCAL_PACKAGES_ONLY" true)
|
||||
(lib.cmakeBool "CPM_LOCAL_PACKAGES_ONLY" true)
|
||||
(lib.cmakeBool "TT_LOGGER_INSTALL" true)
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Flexible and performant C++ logging library for Tenstorrent projects";
|
||||
homepage = "https://github.com/tenstorrent/tt-logger";
|
||||
maintainers = with lib.maintainers; [ RossComputerGuy ];
|
||||
license = with lib.licenses; [ asl20 ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
|
@ -4,17 +4,19 @@
|
|||
fetchFromGitHub,
|
||||
pre-commit,
|
||||
versionCheckHook,
|
||||
tt-umd,
|
||||
}:
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "tt-smi";
|
||||
version = "3.0.30";
|
||||
version = "5.2.0";
|
||||
pyproject = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tenstorrent";
|
||||
repo = "tt-smi";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-C6CfcS0H3rFew/Y1uhmzICdFp1UYU7H9h3YPeAKlcbE=";
|
||||
hash = "sha256-meDqvDvGBXx/zbHbtgLUb+Kv8LSmsu9OvYCFhmEPAdQ=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
|
|
@ -33,8 +35,11 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
tt-tools-common
|
||||
setuptools
|
||||
tomli
|
||||
tt-umd
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "tt-umd" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
|
|
|||
35
pkgs/by-name/tt/tt-umd/fix-targets.patch
Normal file
35
pkgs/by-name/tt/tt-umd/fix-targets.patch
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
|
||||
index 96d71990..1db71f88 100644
|
||||
--- a/third_party/CMakeLists.txt
|
||||
+++ b/third_party/CMakeLists.txt
|
||||
@@ -43,6 +43,7 @@ CPMAddPackage(
|
||||
"YAML_CPP_BUILD_TESTS OFF"
|
||||
"YAML_CPP_BUILD_TOOLS OFF"
|
||||
"YAML_BUILD_SHARED_LIBS OFF"
|
||||
+ FIND_PACKAGE_ARGUMENTS GLOBAL
|
||||
)
|
||||
|
||||
if(yaml-cpp_ADDED)
|
||||
@@ -146,7 +147,13 @@ CPMAddPackage(
|
||||
####################################################################################################################
|
||||
# tt-logger
|
||||
####################################################################################################################
|
||||
-CPMAddPackage(NAME tt-logger GITHUB_REPOSITORY tenstorrent/tt-logger VERSION 1.1.8 SYSTEM YES)
|
||||
+CPMAddPackage(
|
||||
+ NAME tt-logger
|
||||
+ GITHUB_REPOSITORY tenstorrent/tt-logger
|
||||
+ VERSION 1.1.8
|
||||
+ SYSTEM YES
|
||||
+ FIND_PACKAGE_ARGUMENTS GLOBAL
|
||||
+)
|
||||
|
||||
####################################################################################################################
|
||||
# cxxopts
|
||||
@@ -159,6 +166,7 @@ CPMAddPackage(
|
||||
SYSTEM YES
|
||||
OPTIONS
|
||||
"CMAKE_MESSAGE_LOG_LEVEL NOTICE"
|
||||
+ FIND_PACKAGE_ARGUMENTS GLOBAL
|
||||
)
|
||||
|
||||
####################################################################################################################
|
||||
114
pkgs/by-name/tt/tt-umd/package.nix
Normal file
114
pkgs/by-name/tt/tt-umd/package.nix
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
cmake,
|
||||
ninja,
|
||||
pkg-config,
|
||||
gtest,
|
||||
yaml-cpp,
|
||||
fmt,
|
||||
nanobench,
|
||||
spdlog,
|
||||
tt-logger,
|
||||
cxxopts,
|
||||
hwloc,
|
||||
python3,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tt-umd";
|
||||
version = "0.9.6";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tenstorrent";
|
||||
repo = "tt-umd";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-3IrgsKRaJP/rEXiMvi2LnzS9n2+Giu5d05RohzRgPw4=";
|
||||
};
|
||||
|
||||
cpm = fetchurl {
|
||||
url = "https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.40.2/CPM.cmake";
|
||||
hash = "sha256-yM3DLAOBZTjOInge1ylk3IZLKjSjENO3EEgSpcotg10=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/tenstorrent/tt-umd/pull/2187
|
||||
./fix-targets.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
cp $cpm cmake/CPM.cmake
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
fmt
|
||||
yaml-cpp
|
||||
nanobench
|
||||
spdlog
|
||||
tt-logger
|
||||
cxxopts
|
||||
python3.pkgs.nanobind
|
||||
hwloc
|
||||
gtest
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
|
||||
(lib.cmakeBool "CPM_USE_LOCAL_PACKAGES_ONLY" true)
|
||||
(lib.cmakeBool "CPM_LOCAL_PACKAGES_ONLY" true)
|
||||
(lib.cmakeFeature "umd_asio_SOURCE_DIR" (
|
||||
builtins.toString (fetchFromGitHub {
|
||||
owner = "chriskohlhoff";
|
||||
repo = "asio";
|
||||
tag = "asio-1-30-2";
|
||||
hash = "sha256-g+ZPKBUhBGlgvce8uTkuR983unD2kbQKgoddko7x+fk=";
|
||||
})
|
||||
))
|
||||
(lib.cmakeBool "TT_UMD_BUILD_TESTS" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "TT_UMD_BUILD_STATIC" stdenv.hostPlatform.isStatic)
|
||||
(lib.cmakeBool "TT_UMD_BUILD_PYTHON" true)
|
||||
(lib.cmakeFeature "nanobind_DIR" "${python3.pkgs.nanobind}/${python3.sitePackages}/nanobind/cmake")
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/${python3.sitePackages}
|
||||
mv $out/tt_umd $out/${python3.sitePackages}/tt_umd
|
||||
rm $out/libtt-umd.so.*
|
||||
|
||||
mkdir -p $out/${python3.sitePackages}/tt_umd-${finalAttrs.version}.dist-info
|
||||
cat > $out/${python3.sitePackages}/tt_umd-${finalAttrs.version}.dist-info/METADATA <<EOF
|
||||
Metadata-Version: 2.1
|
||||
Name: tt-umd
|
||||
Version: ${finalAttrs.version}
|
||||
EOF
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [
|
||||
gtest
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "User-Mode Driver for Tenstorrent hardware";
|
||||
homepage = "https://github.com/tenstorrent/tt-umd";
|
||||
maintainers = with lib.maintainers; [ RossComputerGuy ];
|
||||
license = with lib.licenses; [ asl20 ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "upterm";
|
||||
version = "0.20.0";
|
||||
version = "0.24.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "owenthereal";
|
||||
repo = "upterm";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-qTw8bYROAAB7FwKCCQamIbWGbqSexXl87DdvSNsFZ/I=";
|
||||
hash = "sha256-b52Rny6mYkmfF6Umn2tzlnUhNkENHPFpCzp55OWj92w=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-5OAS7s9A95h5LihXgOwkOXAMylS7g+lqjaI3MKTvlW0=";
|
||||
vendorHash = "sha256-UkZnLbxn0dPT43ycuevcwMw0dXnX1OPHLh5F1XMHWDI=";
|
||||
|
||||
subPackages = [
|
||||
"cmd/upterm"
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
CXXFLAGS = "-Wno-error -std=c++17";
|
||||
env.CXXFLAGS = "-Wno-error -std=c++17";
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost=${boost.dev}"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"platform_key": "Linux_x86_64-gcc3",
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/accssjtqfpf5qicscrptql4jyyxa_4.10.2934.0/oimompecagnajdejgnnjijobebaeigek_4.10.2934.0_linux_ph722a3wl2goebkpserszm6bde.crx3",
|
||||
"sri": "sha512-QhIUIQoJqfntjOSC74V/HCspzhc5JA0eyZphyqPYDbM5N1InVyK99fUDSJ8Sp1MhX+igyC3jrKI3gNT/5XkusQ==",
|
||||
"version": "4.10.2934.0"
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/bywu6vkyg6gmcthxdaetzfkptm_4.10.3050.0/oimompecagnajdejgnnjijobebaeigek_4.10.3050.0_linux_aduyhcxcs7a2znuo6ss5tffn5jpa.crx3",
|
||||
"sri": "sha512-5Xiy7tesiH4T79VZ6RfkiOzkO+tJ20ChM8GPV7+fbtXaVDRTTnD3/Dz07v25x2YWS2VZxRPhc46JnYTXlD1Xeg==",
|
||||
"version": "4.10.3050.0"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,13 +25,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "wipeout-rewrite";
|
||||
version = "0-unstable-2026-03-31";
|
||||
version = "0-unstable-2026-06-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phoboslab";
|
||||
repo = "wipeout-rewrite";
|
||||
rev = "836619aaad75a5881ce7552a33093996eb932dcd";
|
||||
hash = "sha256-pGrX/jGYw+er9mbSO/N4Urxte9j1StI/7op7E0ZlMPs=";
|
||||
rev = "bf7c8251700560978c470267834e61dd0defd458";
|
||||
hash = "sha256-+5YQrzK0NbAu0iWYpMuFhDxtKYMDJ3D6CQdZ7IFkjMQ=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "wiremix";
|
||||
version = "0.10.0";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-Ievr+xELhhWNYukqsiwv0WfCDRJqeCUdaZVeGsKQr2s=";
|
||||
hash = "sha256-aV/HTDw5lKzcA8Q+IziHEFlIu8OpL9eUvjNuvqoz3SQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-vTLoNXZMlGnOvGHLWJVva09SuwXUSb4BHA61DZ7zSJk=";
|
||||
cargoHash = "sha256-QT96vzK0PirBn4nf40SEghcbAt+aRplETUREONZtY3I=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
owner = "zubanls";
|
||||
repo = "zuban";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/m66vCXutOBMXMJfulJ9nFeqRWVJCIrHVJiICOvs/+A=";
|
||||
hash = "sha256-mbBaOwJdYJhD7qUboHRSJfFo1t7ZLA+5/7moQWYjU3M=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,19 +2,24 @@
|
|||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "argparse-addons";
|
||||
version = "0.12.0";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "argparse_addons";
|
||||
inherit version;
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-YyKg3NcGiH52MI0jE21bhtoOq3WigtxklnAdEhC0YK8=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
pythonImportsCheck = [ "argparse_addons" ];
|
||||
|
||||
meta = {
|
||||
|
|
@ -24,4 +29,4 @@ buildPythonPackage rec {
|
|||
maintainers = [
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -3,19 +3,24 @@
|
|||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
pytestCheckHook,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "arpeggio";
|
||||
version = "2.0.3";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "Arpeggio";
|
||||
inherit version;
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-noWtNc/GyThnaBfHrpoQAKfHKjTHHbDGhxNsRg0SuF4=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "arpeggio" ];
|
||||
|
|
@ -26,4 +31,4 @@ buildPythonPackage rec {
|
|||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ nickcao ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -3,22 +3,27 @@
|
|||
lib,
|
||||
fetchFromGitHub,
|
||||
mock,
|
||||
setuptools,
|
||||
unittestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "arxiv2bib";
|
||||
version = "1.0.8";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
# Missing tests on Pypi
|
||||
src = fetchFromGitHub {
|
||||
owner = "nathangrigg";
|
||||
repo = "arxiv2bib";
|
||||
rev = version;
|
||||
sha256 = "1kp2iyx20lpc9dv4qg5fgwf83a1wx6f7hj1ldqyncg0kn9xcrhbg";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-b8HMerITPGY9bjRIeJzpPKiBHH+uPEx2S+xSILqP4s4=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
unittestCheckHook
|
||||
mock
|
||||
|
|
@ -28,6 +33,8 @@ buildPythonPackage rec {
|
|||
"tests"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "arxiv2bib" ];
|
||||
|
||||
meta = {
|
||||
description = "Get a BibTeX entry from an arXiv id number, using the arxiv.org API";
|
||||
mainProgram = "arxiv2bib";
|
||||
|
|
@ -35,4 +42,4 @@ buildPythonPackage rec {
|
|||
license = lib.licenses.bsd3;
|
||||
maintainers = [ lib.maintainers.nico202 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
pyyaml,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aspy-yaml";
|
||||
version = "1.3.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "aspy.yaml";
|
||||
inherit version;
|
||||
sha256 = "0i9z2jm2hjwdxdv4vw4kbs70h2ciz49rv8w73zbawb7z5qw45iz7";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pyyaml ];
|
||||
|
||||
# Tests not included in PyPI tarball
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Few extensions to pyyaml";
|
||||
homepage = "https://github.com/asottile/aspy.yaml";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
|
|
@ -3,18 +3,21 @@
|
|||
fetchPypi,
|
||||
buildPythonPackage,
|
||||
python,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "authres";
|
||||
version = "1.2.0";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1dr5zpqnb54h4f5ax8334l1dcp8j9083d7v4vdi1xqkwmnavklck";
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-k9G5la184h5i22SfNhBIEl3WAiVjoK6KI5CUZfH9Jbc=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
checkPhase = ''
|
||||
# run doctests
|
||||
${python.interpreter} -m authres
|
||||
|
|
@ -28,6 +31,7 @@ buildPythonPackage rec {
|
|||
Python/Python3.
|
||||
'';
|
||||
homepage = "https://launchpad.net/authentication-results-python";
|
||||
changelog = "https://git.launchpad.net/authentication-results-python/tree/CHANGES";
|
||||
license = lib.licenses.bsd3;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -2,24 +2,28 @@
|
|||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "autologging";
|
||||
version = "1.3.2";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "Autologging";
|
||||
inherit version;
|
||||
sha256 = "117659584d8aab8cf62046f682f8e57b54d958b8571c737fa8bf15c32937fbb6";
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-EXZZWE2Kq4z2IEb2gvjle1TZWLhXHHN/qL8Vwyk3+7Y=";
|
||||
extension = "zip";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://ninthtest.info/python-autologging/";
|
||||
description = "Easier logging and tracing for Python classes";
|
||||
homepage = "https://github.com/mzipay/Autologging";
|
||||
changelog = "https://github.com/mzipay/Autologging/releases/tag/${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ twey ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue