diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index f3e2d4bafb09..6903a1e2581f 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10873,6 +10873,12 @@ }]; name = "Yaroslav Bolyukin"; }; + lachrymal = { + email = "lachrymalfutura@gmail.com"; + name = "lachrymaL"; + github = "lachrymaLF"; + githubId = 13716477; + }; lafrenierejm = { email = "joseph@lafreniere.xyz"; github = "lafrenierejm"; @@ -14330,6 +14336,12 @@ githubId = 6930756; name = "Nicolas Mattia"; }; + noaccos = { + name = "Francesco Noacco"; + email = "francesco.noacco2000@gmail.com"; + github = "noaccOS"; + githubId = 24324352; + }; nobbz = { name = "Norbert Melzer"; email = "timmelzer+nixpkgs@gmail.com"; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 60c5c7dadf55..9380e1e2aa21 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -257,7 +257,6 @@ with lib.maintainers; { docs = { members = [ - asymmetric ryantm ]; scope = "Maintain nixpkgs/NixOS documentation and tools for building it."; diff --git a/nixos/lib/testing/meta.nix b/nixos/lib/testing/meta.nix index 8d053ce86d88..529fe714fcf6 100644 --- a/nixos/lib/testing/meta.nix +++ b/nixos/lib/testing/meta.nix @@ -34,6 +34,13 @@ in Sets the [`meta.broken`](https://nixos.org/manual/nixpkgs/stable/#var-meta-broken) attribute on the [{option}`test`](#test-opt-test) derivation. ''; }; + platforms = lib.mkOption { + type = types.listOf types.raw; + default = lib.platforms.linux; + description = '' + Sets the [`meta.platforms`](https://nixos.org/manual/nixpkgs/stable/#var-meta-platforms) attribute on the [{option}`test`](#test-opt-test) derivation. + ''; + }; }; }; default = {}; diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index b5a8b08eee70..a8e5db4f8a5b 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -186,7 +186,7 @@ let NIX_EFI_VARS=$(readlink -f "''${NIX_EFI_VARS:-${config.system.name}-efi-vars.fd}") # VM needs writable EFI vars if ! test -e "$NIX_EFI_VARS"; then - ${if cfg.useBootLoader then + ${if cfg.efi.keepVariables then # We still need the EFI var from the make-disk-image derivation # because our "switch-to-configuration" process might # write into it and we want to keep this data. @@ -905,6 +905,13 @@ in Defaults to OVMF. ''; }; + + keepVariables = mkOption { + type = types.bool; + default = cfg.useBootLoader; + defaultText = literalExpression "cfg.useBootLoader"; + description = "Whether to keep EFI variable values from the generated system image"; + }; }; virtualisation.tpm = { diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 1de886d6a0d1..7e835041eb39 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -51,7 +51,7 @@ let boot.loader.systemd-boot.enable = true; ''} - boot.initrd.secrets."/etc/secret" = ./secret; + boot.initrd.secrets."/etc/secret" = "/etc/nixos/secret"; ${optionalString clevisTest '' boot.kernelParams = [ "console=tty0" "ip=192.168.1.1:::255.255.255.0::eth1:none" ]; @@ -80,39 +80,24 @@ let # a test script fragment `createPartitions', which must create # partitions and filesystems. testScriptFun = { bootLoader, createPartitions, grubDevice, grubUseEfi, grubIdentifier - , postInstallCommands, preBootCommands, postBootCommands, extraConfig + , postInstallCommands, postBootCommands, extraConfig , testSpecialisationConfig, testFlakeSwitch, clevisTest, clevisFallbackTest , disableFileSystems }: let - qemu-common = import ../lib/qemu-common.nix { inherit (pkgs) lib pkgs; }; - isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi); - qemu = qemu-common.qemuBinary pkgs.qemu_test; - in if !isEfi && !pkgs.stdenv.hostPlatform.isx86 then '' - machine.succeed("true") - '' else '' + startTarget = '' + ${optionalString clevisTest "tpm.start()"} + target.start() + ${postBootCommands} + target.wait_for_unit("multi-user.target") + ''; + in '' + ${optionalString clevisTest '' import os import subprocess tpm_folder = os.environ['NIX_BUILD_TOP'] - startcommand = "${qemu} -m 2048" - - ${optionalString clevisTest '' - startcommand += f" -chardev socket,id=chrtpm,path={tpm_folder}/swtpm-sock -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0" - startcommand += " -device virtio-net-pci,netdev=vlan1,mac=52:54:00:12:11:02 -netdev vde,id=vlan1,sock=\"$QEMU_VDE_SOCKET_1\"" - ''} - ${optionalString isEfi '' - startcommand +=" -drive if=pflash,format=raw,unit=0,readonly=on,file=${pkgs.OVMF.firmware} -drive if=pflash,format=raw,unit=1,readonly=on,file=${pkgs.OVMF.variables}" - ''} - - image_dir = machine.state_dir - disk_image = os.path.join(image_dir, "machine.qcow2") - startcommand += f" -drive file={disk_image},if=virtio,werror=report" - - def create_machine_named(name): - return create_machine(startcommand, name=name) - class Tpm: def __init__(self): self.start() @@ -143,30 +128,31 @@ let os.mkdir(f"{tpm_folder}/swtpm") tpm = Tpm() tpm.check() + ''} - start_all() + installer.start() ${optionalString clevisTest '' + tang.start() tang.wait_for_unit("sockets.target") tang.systemctl("start network-online.target") tang.wait_for_unit("network-online.target") - machine.systemctl("start network-online.target") - machine.wait_for_unit("network-online.target") + installer.systemctl("start network-online.target") + installer.wait_for_unit("network-online.target") ''} - machine.wait_for_unit("multi-user.target") - + installer.wait_for_unit("multi-user.target") with subtest("Assert readiness of login prompt"): - machine.succeed("echo hello") + installer.succeed("echo hello") with subtest("Wait for hard disks to appear in /dev"): - machine.succeed("udevadm settle") + installer.succeed("udevadm settle") ${createPartitions} with subtest("Create the NixOS configuration"): - machine.succeed("nixos-generate-config ${optionalString disableFileSystems "--no-filesystems"} --root /mnt") - machine.succeed("cat /mnt/etc/nixos/hardware-configuration.nix >&2") - machine.copy_from_host( + installer.succeed("nixos-generate-config ${optionalString disableFileSystems "--no-filesystems"} --root /mnt") + installer.succeed("cat /mnt/etc/nixos/hardware-configuration.nix >&2") + installer.copy_from_host( "${ makeConfig { inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest; @@ -174,13 +160,13 @@ let }", "/mnt/etc/nixos/configuration.nix", ) - machine.copy_from_host("${pkgs.writeText "secret" "secret"}", "/mnt/etc/nixos/secret") + installer.copy_from_host("${pkgs.writeText "secret" "secret"}", "/mnt/etc/nixos/secret") ${optionalString clevisTest '' with subtest("Create the Clevis secret with Tang"): - machine.systemctl("start network-online.target") - machine.wait_for_unit("network-online.target") - machine.succeed('echo -n password | clevis encrypt sss \'{"t": 2, "pins": {"tpm2": {}, "tang": {"url": "http://192.168.1.2"}}}\' -y > /mnt/etc/nixos/clevis-secret.jwe')''} + installer.systemctl("start network-online.target") + installer.wait_for_unit("network-online.target") + installer.succeed('echo -n password | clevis encrypt sss \'{"t": 2, "pins": {"tpm2": {}, "tang": {"url": "http://192.168.1.2"}}}\' -y > /mnt/etc/nixos/clevis-secret.jwe')''} ${optionalString clevisFallbackTest '' with subtest("Shutdown Tang to check fallback to interactive prompt"): @@ -188,13 +174,13 @@ let ''} with subtest("Perform the installation"): - machine.succeed("nixos-install < /dev/null >&2") + installer.succeed("nixos-install < /dev/null >&2") with subtest("Do it again to make sure it's idempotent"): - machine.succeed("nixos-install < /dev/null >&2") + installer.succeed("nixos-install < /dev/null >&2") with subtest("Check that we can build things in nixos-enter"): - machine.succeed( + installer.succeed( """ nixos-enter -- nix-build --option substitute false -E 'derivation { name = "t"; @@ -209,48 +195,48 @@ let ${postInstallCommands} with subtest("Shutdown system after installation"): - machine.succeed("umount -R /mnt") - machine.succeed("sync") - machine.shutdown() + installer.succeed("umount -R /mnt") + installer.succeed("sync") + installer.shutdown() + + # We're actually the same machine, just booting differently this time. + target.state_dir = installer.state_dir # Now see if we can boot the installation. - machine = create_machine_named("boot-after-install") - - # For example to enter LUKS passphrase. - ${preBootCommands} + ${startTarget} with subtest("Assert that /boot get mounted"): - machine.wait_for_unit("local-fs.target") + target.wait_for_unit("local-fs.target") ${if bootLoader == "grub" - then ''machine.succeed("test -e /boot/grub")'' - else ''machine.succeed("test -e /boot/loader/loader.conf")'' + then ''target.succeed("test -e /boot/grub")'' + else ''target.succeed("test -e /boot/loader/loader.conf")'' } with subtest("Check whether /root has correct permissions"): - assert "700" in machine.succeed("stat -c '%a' /root") + assert "700" in target.succeed("stat -c '%a' /root") with subtest("Assert swap device got activated"): # uncomment once https://bugs.freedesktop.org/show_bug.cgi?id=86930 is resolved - machine.wait_for_unit("swap.target") - machine.succeed("cat /proc/swaps | grep -q /dev") + target.wait_for_unit("swap.target") + target.succeed("cat /proc/swaps | grep -q /dev") with subtest("Check that the store is in good shape"): - machine.succeed("nix-store --verify --check-contents >&2") + target.succeed("nix-store --verify --check-contents >&2") with subtest("Check whether the channel works"): - machine.succeed("nix-env -iA nixos.procps >&2") - assert ".nix-profile" in machine.succeed("type -tP ps | tee /dev/stderr") + target.succeed("nix-env -iA nixos.procps >&2") + assert ".nix-profile" in target.succeed("type -tP ps | tee /dev/stderr") with subtest( "Check that the daemon works, and that non-root users can run builds " "(this will build a new profile generation through the daemon)" ): - machine.succeed("su alice -l -c 'nix-env -iA nixos.procps' >&2") + target.succeed("su alice -l -c 'nix-env -iA nixos.procps' >&2") with subtest("Configure system with writable Nix store on next boot"): # we're not using copy_from_host here because the installer image # doesn't know about the host-guest sharing mechanism. - machine.copy_from_host_via_shell( + target.copy_from_host_via_shell( "${ makeConfig { inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest; @@ -261,25 +247,23 @@ let ) with subtest("Check whether nixos-rebuild works"): - machine.succeed("nixos-rebuild switch >&2") + target.succeed("nixos-rebuild switch >&2") # FIXME: Nix 2.4 broke nixos-option, someone has to fix it. # with subtest("Test nixos-option"): - # kernel_modules = machine.succeed("nixos-option boot.initrd.kernelModules") + # kernel_modules = target.succeed("nixos-option boot.initrd.kernelModules") # assert "virtio_console" in kernel_modules # assert "List of modules" in kernel_modules # assert "qemu-guest.nix" in kernel_modules - machine.shutdown() + target.shutdown() # Check whether a writable store build works - machine = create_machine_named("rebuild-switch") - ${preBootCommands} - machine.wait_for_unit("multi-user.target") + ${startTarget} # we're not using copy_from_host here because the installer image # doesn't know about the host-guest sharing mechanism. - machine.copy_from_host_via_shell( + target.copy_from_host_via_shell( "${ makeConfig { inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest; @@ -288,73 +272,62 @@ let }", "/etc/nixos/configuration.nix", ) - machine.succeed("nixos-rebuild boot >&2") - machine.shutdown() + target.succeed("nixos-rebuild boot >&2") + target.shutdown() - # And just to be sure, check that the machine still boots after - # "nixos-rebuild switch". - machine = create_machine_named("boot-after-rebuild-switch") - ${preBootCommands} - machine.wait_for_unit("network.target") + # And just to be sure, check that the target still boots after "nixos-rebuild switch". + ${startTarget} + target.wait_for_unit("network.target") # Sanity check, is it the configuration.nix we generated? - hostname = machine.succeed("hostname").strip() + hostname = target.succeed("hostname").strip() assert hostname == "thatworked" - ${postBootCommands} - machine.shutdown() + target.shutdown() # Tests for validating clone configuration entries in grub menu '' + optionalString testSpecialisationConfig '' - # Reboot Machine - machine = create_machine_named("clone-default-config") - ${preBootCommands} - machine.wait_for_unit("multi-user.target") + # Reboot target + ${startTarget} with subtest("Booted configuration name should be 'Home'"): # This is not the name that shows in the grub menu. # The default configuration is always shown as "Default" - machine.succeed("cat /run/booted-system/configuration-name >&2") - assert "Home" in machine.succeed("cat /run/booted-system/configuration-name") + target.succeed("cat /run/booted-system/configuration-name >&2") + assert "Home" in target.succeed("cat /run/booted-system/configuration-name") with subtest("We should **not** find a file named /etc/gitconfig"): - machine.fail("test -e /etc/gitconfig") + target.fail("test -e /etc/gitconfig") with subtest("Set grub to boot the second configuration"): - machine.succeed("grub-reboot 1") + target.succeed("grub-reboot 1") - ${postBootCommands} - machine.shutdown() + target.shutdown() - # Reboot Machine - machine = create_machine_named("clone-alternate-config") - ${preBootCommands} + # Reboot target + ${startTarget} - machine.wait_for_unit("multi-user.target") with subtest("Booted configuration name should be Work"): - machine.succeed("cat /run/booted-system/configuration-name >&2") - assert "Work" in machine.succeed("cat /run/booted-system/configuration-name") + target.succeed("cat /run/booted-system/configuration-name >&2") + assert "Work" in target.succeed("cat /run/booted-system/configuration-name") with subtest("We should find a file named /etc/gitconfig"): - machine.succeed("test -e /etc/gitconfig") + target.succeed("test -e /etc/gitconfig") - ${postBootCommands} - machine.shutdown() + target.shutdown() '' + optionalString testFlakeSwitch '' - ${preBootCommands} - machine.start() + ${startTarget} with subtest("Configure system with flake"): # TODO: evaluate as user? - machine.succeed(""" + target.succeed(""" mkdir /root/my-config mv /etc/nixos/hardware-configuration.nix /root/my-config/ - mv /etc/nixos/secret /root/my-config/ rm /etc/nixos/configuration.nix """) - machine.copy_from_host_via_shell( + target.copy_from_host_via_shell( "${makeConfig { inherit bootLoader grubDevice grubIdentifier grubUseEfi extraConfig clevisTest; forceGrubReinstallCount = 1; @@ -362,11 +335,11 @@ let }}", "/root/my-config/configuration.nix", ) - machine.copy_from_host_via_shell( + target.copy_from_host_via_shell( "${./installer/flake.nix}", "/root/my-config/flake.nix", ) - machine.succeed(""" + target.succeed(""" # for some reason the image does not have `pkgs.path`, so # we use readlink to find a Nixpkgs source. pkgs=$(readlink -f /nix/var/nix/profiles/per-user/root/channels)/nixos @@ -378,36 +351,32 @@ let """) with subtest("Switch to flake based config"): - machine.succeed("nixos-rebuild switch --flake /root/my-config#xyz") + target.succeed("nixos-rebuild switch --flake /root/my-config#xyz") - ${postBootCommands} - machine.shutdown() + target.shutdown() - ${preBootCommands} - machine.start() - - machine.wait_for_unit("multi-user.target") + ${startTarget} with subtest("nix-channel command is not available anymore"): - machine.succeed("! which nix-channel") + target.succeed("! which nix-channel") # Note that the channel profile is still present on disk, but configured # not to be used. with subtest("builtins.nixPath is now empty"): - machine.succeed(""" + target.succeed(""" [[ "[ ]" == "$(nix-instantiate builtins.nixPath --eval --expr)" ]] """) with subtest(" does not resolve"): - machine.succeed(""" + target.succeed(""" ! nix-instantiate '' --eval --expr """) with subtest("Evaluate flake config in fresh env without nix-channel"): - machine.succeed("nixos-rebuild switch --flake /root/my-config#xyz") + target.succeed("nixos-rebuild switch --flake /root/my-config#xyz") with subtest("Evaluate flake config in fresh env without channel profiles"): - machine.succeed(""" + target.succeed(""" ( exec 1>&2 rm -v /root/.nix-channels @@ -415,16 +384,15 @@ let rm -vrf /nix/var/nix/profiles/per-user/root/channels* ) """) - machine.succeed("nixos-rebuild switch --flake /root/my-config#xyz") + target.succeed("nixos-rebuild switch --flake /root/my-config#xyz") - ${postBootCommands} - machine.shutdown() + target.shutdown() ''; makeInstallerTest = name: { createPartitions - , postInstallCommands ? "", preBootCommands ? "", postBootCommands ? "" + , postInstallCommands ? "", postBootCommands ? "" , extraConfig ? "" , extraInstallerConfig ? {} , bootLoader ? "grub" # either "grub" or "systemd-boot" @@ -436,18 +404,39 @@ let , clevisFallbackTest ? false , disableFileSystems ? false }: - makeTest { + let + isEfi = bootLoader == "systemd-boot" || (bootLoader == "grub" && grubUseEfi); + in makeTest { inherit enableOCR; name = "installer-" + name; meta = { # put global maintainers here, individuals go into makeInstallerTest fkt call maintainers = (meta.maintainers or []); + # non-EFI tests can only run on x86 + platforms = if isEfi then platforms.linux else [ "x86_64-linux" "i686-linux" ]; }; - nodes = { + nodes = let + commonConfig = { + # builds stuff in the VM, needs more juice + virtualisation.diskSize = 8 * 1024; + virtualisation.cores = 8; + virtualisation.memorySize = 2048; - # The configuration of the machine used to run "nixos-install". - machine = { pkgs, ... }: { + # both installer and target need to use the same drive + virtualisation.diskImage = "./target.qcow2"; + + # and the same TPM options + virtualisation.qemu.options = mkIf (clevisTest) [ + "-chardev socket,id=chrtpm,path=$NIX_BUILD_TOP/swtpm-sock" + "-tpmdev emulator,id=tpm0,chardev=chrtpm" + "-device tpm-tis,tpmdev=tpm0" + ]; + }; + in { + # The configuration of the system used to run "nixos-install". + installer = { imports = [ + commonConfig ../modules/profiles/installation-device.nix ../modules/profiles/base.nix extraInstallerConfig @@ -458,11 +447,6 @@ let # root filesystem. virtualisation.fileSystems."/".autoFormat = systemdStage1; - # builds stuff in the VM, needs more juice - virtualisation.diskSize = 8 * 1024; - virtualisation.cores = 8; - virtualisation.memorySize = 2048; - boot.initrd.systemd.enable = systemdStage1; # Use a small /dev/vdb as the root disk for the @@ -470,17 +454,6 @@ let # the same during and after installation. virtualisation.emptyDiskImages = [ 512 ]; virtualisation.rootDevice = "/dev/vdb"; - virtualisation.bootLoaderDevice = "/dev/vda"; - virtualisation.qemu.diskInterface = "virtio"; - virtualisation.qemu.options = mkIf (clevisTest) [ - "-chardev socket,id=chrtpm,path=$NIX_BUILD_TOP/swtpm-sock" - "-tpmdev emulator,id=tpm0,chardev=chrtpm" - "-device tpm-tis,tpmdev=tpm0" - ]; - # We don't want to have any networking in the guest apart from the clevis tests. - virtualisation.vlans = mkIf (!clevisTest) []; - - boot.loader.systemd-boot.enable = mkIf (bootLoader == "systemd-boot") true; hardware.enableAllFirmware = mkForce false; @@ -520,7 +493,13 @@ let in [ (pkgs.grub2.override { inherit zfsSupport; }) (pkgs.grub2_efi.override { inherit zfsSupport; }) - ]) ++ optionals clevisTest [ pkgs.klibc ]; + ]) + ++ optionals (bootLoader == "systemd-boot") [ + pkgs.zstd.bin + pkgs.mypy + pkgs.bootspec + ] + ++ optionals clevisTest [ pkgs.klibc ]; nix.settings = { substituters = mkForce []; @@ -529,6 +508,18 @@ let }; }; + target = { + imports = [ commonConfig ]; + virtualisation.useBootLoader = true; + virtualisation.useEFIBoot = isEfi; + virtualisation.useDefaultFilesystems = false; + virtualisation.efi.keepVariables = false; + + virtualisation.fileSystems."/" = { + device = "/dev/disk/by-label/this-is-not-real-and-will-never-be-used"; + fsType = "ext4"; + }; + }; } // optionalAttrs clevisTest { tang = { services.tang = { @@ -541,7 +532,7 @@ let }; testScript = testScriptFun { - inherit bootLoader createPartitions postInstallCommands preBootCommands postBootCommands + inherit bootLoader createPartitions postInstallCommands postBootCommands grubDevice grubIdentifier grubUseEfi extraConfig testSpecialisationConfig testFlakeSwitch clevisTest clevisFallbackTest disableFileSystems; @@ -550,7 +541,7 @@ let makeLuksRootTest = name: luksFormatOpts: makeInstallerTest name { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot + " mkpart primary linux-swap 100M 1024M" @@ -572,10 +563,9 @@ let boot.kernelParams = lib.mkAfter [ "console=tty0" ]; ''; enableOCR = true; - preBootCommands = '' - machine.start() - machine.wait_for_text("[Pp]assphrase for") - machine.send_chars("supersecret\n") + postBootCommands = '' + target.wait_for_text("[Pp]assphrase for") + target.send_chars("supersecret\n") ''; }; @@ -583,7 +573,7 @@ let # one big filesystem partition. simple-test-config = { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary linux-swap 1M 1024M" + " mkpart primary ext2 1024M -1s", @@ -602,7 +592,7 @@ let simple-uefi-grub-config = { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel gpt" + " mkpart ESP fat32 1M 100MiB" # /boot + " set 1 boot on" @@ -656,7 +646,7 @@ let environment.systemPackages = with pkgs; [ keyutils clevis ]; }; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" + " mkpart primary linux-swap 100M 1024M" @@ -680,13 +670,9 @@ let # not know the UUID in advance. fileSystems."/" = lib.mkForce { device = "/dev/vda3"; fsType = "bcachefs"; }; ''; - preBootCommands = '' - tpm = Tpm() - tpm.check() - '' + optionalString fallback '' - machine.start() - machine.wait_for_text("enter passphrase for") - machine.send_chars("password\n") + postBootCommands = optionalString fallback '' + target.wait_for_text("enter passphrase for") + target.send_chars("password\n") ''; }; @@ -698,7 +684,7 @@ let environment.systemPackages = with pkgs; [ clevis ]; }; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" + " mkpart primary linux-swap 100M 1024M" @@ -719,17 +705,13 @@ let extraConfig = '' boot.initrd.clevis.devices."crypt-root".secretFile = "/etc/nixos/clevis-secret.jwe"; ''; - preBootCommands = '' - tpm = Tpm() - tpm.check() - '' + optionalString fallback '' - machine.start() + postBootCommands = optionalString fallback '' ${if systemdStage1 then '' - machine.wait_for_text("Please enter") + target.wait_for_text("Please enter") '' else '' - machine.wait_for_text("Passphrase for") + target.wait_for_text("Passphrase for") ''} - machine.send_chars("password\n") + target.send_chars("password\n") ''; }; @@ -742,7 +724,7 @@ let environment.systemPackages = with pkgs; [ clevis ]; }; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" + " mkpart primary linux-swap 100M 1024M" @@ -770,17 +752,13 @@ let boot.zfs.devNodes = "/dev/disk/by-uuid/"; networking.hostId = "00000000"; ''; - preBootCommands = '' - tpm = Tpm() - tpm.check() - '' + optionalString fallback '' - machine.start() + postBootCommands = optionalString fallback '' ${if systemdStage1 then '' - machine.wait_for_text("Enter key for rpool/root") + target.wait_for_text("Enter key for rpool/root") '' else '' - machine.wait_for_text("Key load error") + target.wait_for_text("Key load error") ''} - machine.send_chars("password\n") + target.send_chars("password\n") ''; }; @@ -801,7 +779,7 @@ in { # Simple GPT/UEFI configuration using systemd-boot with 3 partitions: ESP, swap & root filesystem simpleUefiSystemdBoot = makeInstallerTest "simpleUefiSystemdBoot" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel gpt" + " mkpart ESP fat32 1M 100MiB" # /boot + " set 1 boot on" @@ -828,7 +806,7 @@ in { # Same as the previous, but now with a separate /boot partition. separateBoot = makeInstallerTest "separateBoot" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot + " mkpart primary linux-swap 100MB 1024M" @@ -848,7 +826,7 @@ in { # Same as the previous, but with fat32 /boot. separateBootFat = makeInstallerTest "separateBootFat" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot + " mkpart primary linux-swap 100MB 1024M" @@ -880,7 +858,7 @@ in { ''; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 256MB" # /boot + " mkpart primary linux-swap 256MB 1280M" @@ -932,8 +910,8 @@ in { # umount & export bpool before shutdown # this is a fix for "cannot import 'bpool': pool was previously in use from another system." postInstallCommands = '' - machine.succeed("umount /mnt/boot") - machine.succeed("zpool export bpool") + installer.succeed("umount /mnt/boot") + installer.succeed("zpool export bpool") ''; }; @@ -954,7 +932,7 @@ in { ''; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary 1M 100MB" # /boot + " mkpart primary linux-swap 100M 1024M" @@ -980,7 +958,7 @@ in { # that contains the logical swap and root partitions. lvm = makeInstallerTest "lvm" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary 1M 2048M" # PV1 + " set 1 lvm on" @@ -1013,7 +991,7 @@ in { # keyfile is configured encryptedFSWithKeyfile = makeInstallerTest "encryptedFSWithKeyfile" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot + " mkpart primary linux-swap 100M 1024M" @@ -1052,7 +1030,7 @@ in { # LVM-on-LUKS and a keyfile in initrd.secrets to enter the passphrase once fullDiskEncryption = makeInstallerTest "fullDiskEncryption" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel gpt" + " mkpart ESP fat32 1M 100MiB" # /boot/efi + " set 1 boot on" @@ -1083,23 +1061,22 @@ in { boot.loader.grub.enableCryptodisk = true; boot.loader.efi.efiSysMountPoint = "/boot/efi"; - boot.initrd.secrets."/luks.key" = ./luks.key; + boot.initrd.secrets."/luks.key" = "/etc/nixos/luks.key"; boot.initrd.luks.devices.crypt = { device = "/dev/vda2"; keyFile = "/luks.key"; }; ''; enableOCR = true; - preBootCommands = '' - machine.start() - machine.wait_for_text("Enter passphrase for") - machine.send_chars("supersecret\n") + postBootCommands = '' + target.wait_for_text("Enter passphrase for") + target.send_chars("supersecret\n") ''; }; swraid = makeInstallerTest "swraid" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda --" + " mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot @@ -1128,15 +1105,14 @@ in { "udevadm settle", ) ''; - preBootCommands = '' - machine.start() - machine.fail("dmesg | grep 'immediate safe mode'") + postBootCommands = '' + target.fail("dmesg | grep 'immediate safe mode'") ''; }; bcache = makeInstallerTest "bcache" { createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda --" + " mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot @@ -1165,7 +1141,7 @@ in { }; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot + " mkpart primary linux-swap 100M 1024M" # swap @@ -1197,18 +1173,17 @@ in { ''; enableOCR = true; - preBootCommands = '' - machine.start() + postBootCommands = '' # Enter it wrong once - machine.wait_for_text("enter passphrase for ") - machine.send_chars("wrong\n") + target.wait_for_text("enter passphrase for ") + target.send_chars("wrong\n") # Then enter it right. - machine.wait_for_text("enter passphrase for ") - machine.send_chars("password\n") + target.wait_for_text("enter passphrase for ") + target.send_chars("password\n") ''; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot + " mkpart primary linux-swap 100M 1024M" # swap @@ -1235,7 +1210,7 @@ in { }; createPartitions = '' - machine.succeed( + installer.succeed( "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + " mkpart primary ext2 1M 100MB" # /boot + " mkpart primary linux-swap 100M 1024M" # swap @@ -1256,7 +1231,7 @@ in { # Test using labels to identify volumes in grub simpleLabels = makeInstallerTest "simpleLabels" { createPartitions = '' - machine.succeed( + installer.succeed( "sgdisk -Z /dev/vda", "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", "mkswap /dev/vda2 -L swap", @@ -1273,7 +1248,7 @@ in { simpleProvided = makeInstallerTest "simpleProvided" { createPartitions = '' uuid = "$(blkid -s UUID -o value /dev/vda2)" - machine.succeed( + installer.succeed( "sgdisk -Z /dev/vda", "sgdisk -n 1:0:+1M -n 2:0:+100M -n 3:0:+1G -N 4 -t 1:ef02 -t 2:8300 " + "-t 3:8200 -t 4:8300 -c 2:boot -c 4:root /dev/vda", @@ -1282,9 +1257,9 @@ in { "mkfs.ext4 -L boot /dev/vda2", "mkfs.ext4 -L root /dev/vda4", ) - machine.execute(f"ln -s ../../vda2 /dev/disk/by-uuid/{uuid}") - machine.execute("ln -s ../../vda4 /dev/disk/by-label/root") - machine.succeed( + installer.execute(f"ln -s ../../vda2 /dev/disk/by-uuid/{uuid}") + installer.execute("ln -s ../../vda4 /dev/disk/by-label/root") + installer.succeed( "mount /dev/disk/by-label/root /mnt", "mkdir /mnt/boot", f"mount /dev/disk/by-uuid/{uuid} /mnt/boot", @@ -1296,7 +1271,7 @@ in { # Simple btrfs grub testing btrfsSimple = makeInstallerTest "btrfsSimple" { createPartitions = '' - machine.succeed( + installer.succeed( "sgdisk -Z /dev/vda", "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", "mkswap /dev/vda2 -L swap", @@ -1310,7 +1285,7 @@ in { # Test to see if we can detect /boot and /nix on subvolumes btrfsSubvols = makeInstallerTest "btrfsSubvols" { createPartitions = '' - machine.succeed( + installer.succeed( "sgdisk -Z /dev/vda", "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", "mkswap /dev/vda2 -L swap", @@ -1332,7 +1307,7 @@ in { # Test to see if we can detect default and aux subvolumes correctly btrfsSubvolDefault = makeInstallerTest "btrfsSubvolDefault" { createPartitions = '' - machine.succeed( + installer.succeed( "sgdisk -Z /dev/vda", "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", "mkswap /dev/vda2 -L swap", @@ -1358,7 +1333,7 @@ in { # Test to see if we can deal with subvols that need to be escaped in fstab btrfsSubvolEscape = makeInstallerTest "btrfsSubvolEscape" { createPartitions = '' - machine.succeed( + installer.succeed( "sgdisk -Z /dev/vda", "sgdisk -n 1:0:+1M -n 2:0:+1G -N 3 -t 1:ef02 -t 2:8200 -t 3:8300 -c 3:root /dev/vda", "mkswap /dev/vda2 -L swap", @@ -1385,7 +1360,7 @@ in { } // optionalAttrs systemdStage1 { stratisRoot = makeInstallerTest "stratisRoot" { createPartitions = '' - machine.succeed( + installer.succeed( "sgdisk --zap-all /dev/vda", "sgdisk --new=1:0:+100M --typecode=0:ef00 /dev/vda", # /boot "sgdisk --new=2:0:+1G --typecode=0:8200 /dev/vda", # swap @@ -1428,7 +1403,7 @@ in { in makeInstallerTest "gptAutoRoot" { disableFileSystems = true; createPartitions = '' - machine.succeed( + installer.succeed( "sgdisk --zap-all /dev/vda", "sgdisk --new=1:0:+100M --typecode=0:ef00 /dev/vda", # /boot "sgdisk --new=2:0:+1G --typecode=0:8200 /dev/vda", # swap diff --git a/pkgs/applications/editors/sublime/4/common.nix b/pkgs/applications/editors/sublime/4/common.nix index e71185f3f010..a7425863d898 100644 --- a/pkgs/applications/editors/sublime/4/common.nix +++ b/pkgs/applications/editors/sublime/4/common.nix @@ -1,19 +1,50 @@ -{ buildVersion, aarch64sha256, x64sha256, dev ? false }: +{ + buildVersion, + dev ? false, + aarch64sha256, + x64sha256, +}: -{ fetchurl, stdenv, lib, xorg, glib, libglvnd, glibcLocales, gtk3, cairo, pango, makeWrapper, wrapGAppsHook -, writeShellScript, common-updater-scripts, curl -, openssl_1_1, bzip2, bash, unzip, zip -, sqlite +{ + fetchurl, + stdenv, + lib, + xorg, + glib, + libglvnd, + glibcLocales, + gtk3, + cairo, + pango, + makeWrapper, + wrapGAppsHook, + writeShellScript, + common-updater-scripts, + curl, + openssl_1_1, + bzip2, + sqlite, }: let pnameBase = "sublimetext4"; packageAttribute = "sublime4${lib.optionalString dev "-dev"}"; - binaries = [ "sublime_text" "plugin_host-3.3" "plugin_host-3.8" crashHandlerBinary ]; + binaries = [ + "sublime_text" + "plugin_host-3.3" + "plugin_host-3.8" + crashHandlerBinary + ]; primaryBinary = "sublime_text"; - primaryBinaryAliases = [ "subl" "sublime" "sublime4" ]; - crashHandlerBinary = if lib.versionAtLeast buildVersion "4153" then "crash_handler" else "crash_reporter"; - downloadUrl = arch: "https://download.sublimetext.com/sublime_text_build_${buildVersion}_${arch}.tar.xz"; + primaryBinaryAliases = [ + "subl" + "sublime" + "sublime4" + ]; + crashHandlerBinary = + if lib.versionAtLeast buildVersion "4153" then "crash_handler" else "crash_reporter"; + downloadUrl = + arch: "https://download.sublimetext.com/sublime_text_build_${buildVersion}_${arch}.tar.xz"; versionUrl = "https://download.sublimetext.com/latest/${if dev then "dev" else "stable"}"; versionFile = builtins.toString ./packages.nix; @@ -30,7 +61,8 @@ let ] ++ lib.optionals (lib.versionAtLeast buildVersion "4145") [ sqlite ]; -in let +in +let binaryPackage = stdenv.mkDerivation rec { pname = "${pnameBase}-bin"; version = buildVersion; @@ -39,31 +71,22 @@ in let dontStrip = true; dontPatchELF = true; - buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH - nativeBuildInputs = [ zip unzip makeWrapper wrapGAppsHook ]; - # make exec.py in Default.sublime-package use own bash with an LD_PRELOAD instead of "/bin/bash" - patchPhase = '' - runHook prePatch + buildInputs = [ + glib + # for GSETTINGS_SCHEMAS_PATH + gtk3 + ]; - # TODO: Should not be necessary even in 3 - mkdir Default.sublime-package-fix - ( cd Default.sublime-package-fix - unzip -q ../Packages/Default.sublime-package - substituteInPlace "exec.py" --replace \ - "[\"/bin/bash\"" \ - "[\"$out/sublime_bash\"" - zip -q ../Packages/Default.sublime-package **/* - ) - rm -r Default.sublime-package-fix - - runHook postPatch - ''; + nativeBuildInputs = [ + makeWrapper + wrapGAppsHook + ]; buildPhase = '' runHook preBuild - for binary in ${ builtins.concatStringsSep " " binaries }; do + for binary in ${builtins.concatStringsSep " " binaries}; do patchelf \ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath ${lib.makeLibraryPath neededLibraries}:${stdenv.cc.cc.lib}/lib${lib.optionalString stdenv.is64bit "64"} \ @@ -86,10 +109,6 @@ in let mkdir -p $out cp -r * $out/ - # We can't just call /usr/bin/env bash because a relocation error occurs - # when trying to run a build from within Sublime Text - ln -s ${bash}/bin/bash $out/sublime_bash - runHook postInstall ''; @@ -116,7 +135,8 @@ in let }; }; }; -in stdenv.mkDerivation (rec { +in +stdenv.mkDerivation (rec { pname = pnameBase; version = buildVersion; @@ -124,27 +144,44 @@ in stdenv.mkDerivation (rec { ${primaryBinary} = binaryPackage; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ + makeWrapper + ]; - installPhase = '' - mkdir -p "$out/bin" - makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" - '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + '' - mkdir -p "$out/share/applications" - substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}" - for directory in ''$${primaryBinary}/Icon/*; do - size=$(basename $directory) - mkdir -p "$out/share/icons/hicolor/$size/apps" - ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps - done - ''; + installPhase = + '' + mkdir -p "$out/bin" + makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + '' + + builtins.concatStringsSep "" ( + map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases + ) + + '' + mkdir -p "$out/share/applications" + + substitute \ + "''$${primaryBinary}/${primaryBinary}.desktop" \ + "$out/share/applications/${primaryBinary}.desktop" \ + --replace-fail "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}" + + for directory in ''$${primaryBinary}/Icon/*; do + size=$(basename $directory) + mkdir -p "$out/share/icons/hicolor/$size/apps" + ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps + done + ''; passthru = { updateScript = let script = writeShellScript "${packageAttribute}-update-script" '' set -o errexit - PATH=${lib.makeBinPath [ common-updater-scripts curl ]} + PATH=${ + lib.makeBinPath [ + common-updater-scripts + curl + ] + } versionFile=$1 latestVersion=$(curl -s "${versionUrl}") @@ -161,15 +198,27 @@ in stdenv.mkDerivation (rec { update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" done ''; - in [ script versionFile ]; + in + [ + script + versionFile + ]; }; meta = with lib; { description = "Sophisticated text editor for code, markup and prose"; homepage = "https://www.sublimetext.com/"; - maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ]; + maintainers = with maintainers; [ + jtojnar + wmertens + demin-dmitriy + zimbatm + ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; - platforms = [ "aarch64-linux" "x86_64-linux" ]; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; }; }) diff --git a/pkgs/applications/editors/sublime/4/packages.nix b/pkgs/applications/editors/sublime/4/packages.nix index d583467ad832..d77a6205fc20 100644 --- a/pkgs/applications/editors/sublime/4/packages.nix +++ b/pkgs/applications/editors/sublime/4/packages.nix @@ -3,17 +3,17 @@ let common = opts: callPackage (import ./common.nix opts); in - { - sublime4 = common { - buildVersion = "4169"; - x64sha256 = "jk9wKC0QgfhiHDYUcnDhsmgJsBPOUmCkyvQeI54IJJ4="; - aarch64sha256 = "/W/xGbE+8gGu1zNh6lERZrfG9Dh9QUGkYiqTzp216JI="; - } {}; +{ + sublime4 = common { + buildVersion = "4169"; + x64sha256 = "jk9wKC0QgfhiHDYUcnDhsmgJsBPOUmCkyvQeI54IJJ4="; + aarch64sha256 = "/W/xGbE+8gGu1zNh6lERZrfG9Dh9QUGkYiqTzp216JI="; + } { }; - sublime4-dev = common { - buildVersion = "4168"; - dev = true; - x64sha256 = "KfW1Mh78CUBTmthHQd1s15a7GrmssSnWZ1RgaarJeag="; - aarch64sha256 = "qJ9oix1kwWN+TUb5/WSKyHcHzB+Q87XolMOhmqx1OFc="; - } {}; - } + sublime4-dev = common { + buildVersion = "4173"; + dev = true; + x64sha256 = "JEf974X+m0XaZ5x2g4o5XYkdo2A0cIZNjFLCrIgFzEA="; + aarch64sha256 = "+aVV7o59ZFwSOyV0DDNUpaq3q21bXslE+Oz/i33X+4Y="; + } { }; +} diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 204be07734c0..dce8a6d05300 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -14054,6 +14054,18 @@ final: prev: meta.homepage = "https://github.com/mzlogin/vim-markdown-toc/"; }; + vim-matchtag = buildVimPlugin { + pname = "vim-matchtag"; + version = "2022-06-24"; + src = fetchFromGitHub { + owner = "leafOfTree"; + repo = "vim-matchtag"; + rev = "54357c00979e07d86aa12b383ddd1d6a7fbda2c2"; + sha256 = "01ar9qma2glb6wyhpafnwpf1f63v9i417hx1dzck1gi4fcz1pfqa"; + }; + meta.homepage = "https://github.com/leafOfTree/vim-matchtag/"; + }; + vim-matchup = buildVimPlugin { pname = "vim-matchup"; version = "2024-02-24"; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index 5f74ad2bc33c..17d0214df96a 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -997,6 +997,13 @@ dependencies = with self; [ nvim-dap ]; }; + nvim-dap-ui = super.nvim-dap-ui.overrideAttrs { + dependencies = with self; [ nvim-dap nvim-nio ]; + + doInstallCheck = true; + nvimRequireCheck = "dapui"; + }; + nvim-lsputils = super.nvim-lsputils.overrideAttrs { dependencies = with self; [ popfix ]; }; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index ae13c6299be9..735a74026e20 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -1184,6 +1184,7 @@ https://github.com/Yilin-Yang/vim-markbar/,, https://github.com/preservim/vim-markdown/,, https://github.com/euclio/vim-markdown-composer/,, https://github.com/mzlogin/vim-markdown-toc/,, +https://github.com/leafOfTree/vim-matchtag/,HEAD, https://github.com/andymass/vim-matchup/,, https://github.com/aquach/vim-mediawiki-editor/,HEAD, https://github.com/samoshkin/vim-mergetool/,, diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index d2ad3d2c9e1d..f2d9d2bde36e 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -857,6 +857,22 @@ let }; }; + cameron.vscode-pytest = buildVscodeMarketplaceExtension { + mktplcRef = { + name = "vscode-pytest"; + publisher = "Cameron"; + version = "0.1.1"; + sha256 = "sha256-YU37a0Q+IXusXgwf9doxXLlYiyzkizbPjjdCZFxeDaA="; + }; + meta = { + changelog = "https://github.com/cameronmaske/pytest-vscode/blob/master/CHANGELOG.md"; + description = "A Visual Studio Code extension that adds IntelliSense support for pytest fixtures"; + downloadPage = "https://marketplace.visualstudio.com/items?itemName=Cameron.vscode-pytest"; + license = lib.licenses.unlicense; + maintainers = [ lib.maintainers.rhoriguchi ]; + }; + }; + christian-kohler.npm-intellisense = buildVscodeMarketplaceExtension { mktplcRef = { name = "npm-intellisense"; @@ -4831,6 +4847,22 @@ let }; }; + zainchen.json = buildVscodeMarketplaceExtension { + mktplcRef = { + name = "json"; + publisher = "ZainChen"; + version = "2.0.2"; + sha256 = "sha256-nC3Q8KuCtn/jg1j/NaAxWGvnKe/ykrPm2PUjfsJz8aI="; + }; + meta = { + changelog = "https://marketplace.visualstudio.com/items/ZainChen.json/changelog"; + description = "A Visual Studio Code extension for JSON support"; + downloadPage = "https://marketplace.visualstudio.com/items?itemName=ZainChen.json"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.rhoriguchi ]; + }; + }; + zhuangtongfa.material-theme = buildVscodeMarketplaceExtension { mktplcRef = { name = "material-theme"; diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json index 9a51c13d1580..a8443af73f44 100644 --- a/pkgs/applications/emulators/retroarch/hashes.json +++ b/pkgs/applications/emulators/retroarch/hashes.json @@ -287,10 +287,10 @@ "src": { "owner": "libretro", "repo": "fbneo", - "rev": "fa70abd34f49d8c461165b65a4ad436a4245eb51", - "hash": "sha256-BaV+BY7jTw/6M4XmAAVSRQ9viftyaPZmG17TFgSFqOg=" + "rev": "537b5b8dcc358370f2349109004233fbeab46cfe", + "hash": "sha256-zBOF1RV2dx5zraREZm/W//8DwrRMDc/j8sx+CwTyKz0=" }, - "version": "unstable-2024-03-27" + "version": "unstable-2024-04-02" }, "fceumm": { "fetcher": "fetchFromGitHub", @@ -307,11 +307,11 @@ "src": { "owner": "flyinghead", "repo": "flycast", - "rev": "c9fafa0ed176d1ffabae5c1a7a363d0ee276a972", - "hash": "sha256-ruqgen9X3CEY+PRZFVGNPhEDUUvH486paWphQfGCHew=", + "rev": "a0c81d2f2a393bd34caf6f15c1231ba4e2175405", + "hash": "sha256-hajTfovkSH7l6AayQyiHI7E4I/82pBhQnDSxo0BcYu0=", "fetchSubmodules": true }, - "version": "unstable-2024-03-26" + "version": "unstable-2024-04-03" }, "fmsx": { "fetcher": "fetchFromGitHub", @@ -408,10 +408,10 @@ "src": { "owner": "libretro", "repo": "mame", - "rev": "6d6d21fd9e41dab2b0e0ca0587baf3fcad18fd67", - "hash": "sha256-8pPDIxnEeeTQl160E+sg/wmchOR53pQmbhvEAXRFif0=" + "rev": "ac9d0347f5d331eb49017cd599a5e63a668b4f22", + "hash": "sha256-P5Hunw1o0C29/YsOu7tmR/oY2sbL2qTmY6RoJ56bTzI=" }, - "version": "unstable-2024-02-29" + "version": "unstable-2024-04-01" }, "mame2000": { "fetcher": "fetchFromGitHub", @@ -438,10 +438,10 @@ "src": { "owner": "libretro", "repo": "mame2003-plus-libretro", - "rev": "ee777f235b99d652890dedbc94337094968869d4", - "hash": "sha256-nfoZRymtbAsXWvb8MKFHUwQr0xRk9kLRtgPC2G2iAVE=" + "rev": "f03f865af9d496965ab15b9a213691319daad9d2", + "hash": "sha256-yHVkEJYSXHeUGNFJ/zbAwNi+I4gka8Id7z+LnDkCCSM=" }, - "version": "unstable-2024-03-22" + "version": "unstable-2024-04-03" }, "mame2010": { "fetcher": "fetchFromGitHub", @@ -559,10 +559,10 @@ "src": { "owner": "libretro", "repo": "nestopia", - "rev": "2cef539e0df9ae5c8e6adf830a37f5d122bf5f05", - "hash": "sha256-OKqD99kqpIoqRUOByQ4qwAczYlIGeAn0xfTZVC5jptc=" + "rev": "efe3a052c75ad47d6e98eeffd1f3d2d4893279c2", + "hash": "sha256-sSXU+rUBJcE2gQRTqnZV8NSuBz/zWNxlZHQqoAUoigU=" }, - "version": "unstable-2024-02-18" + "version": "unstable-2024-03-29" }, "np2kai": { "fetcher": "fetchFromGitHub", @@ -630,10 +630,10 @@ "src": { "owner": "libretro", "repo": "pcsx_rearmed", - "rev": "e2fb1389dc12376acb84e4993ed3b08760257252", - "hash": "sha256-h/Bjgyfp+8gx3VoxteJyXxI/z4ghyw/xdmwAGXidEkc=" + "rev": "2fb8465594a7ffb7ccbac39fdedf7c70085d7f63", + "hash": "sha256-RQU2EDcBRa6aH40JrEJ3eppjflk5++AWlOH+iGJyjFY=" }, - "version": "unstable-2024-03-25" + "version": "unstable-2024-03-29" }, "picodrive": { "fetcher": "fetchFromGitHub", @@ -651,22 +651,22 @@ "src": { "owner": "jpd002", "repo": "Play-", - "rev": "08db12cefaad02eaa5265283e3ad0b51eeb8a633", - "hash": "sha256-1wO/iBnyGnBx+vIlnqaihAVrth3shCvogEX9TC59GaY=", + "rev": "8445595b734301f22c6fdd57536867fea3786b58", + "hash": "sha256-3e9+PkSGZbjZ2LVY0cWRIK+TbdJ4hn8FxBjWqhsQB4o=", "fetchSubmodules": true }, - "version": "unstable-2024-03-26" + "version": "unstable-2024-04-02" }, "ppsspp": { "fetcher": "fetchFromGitHub", "src": { "owner": "hrydgard", "repo": "ppsspp", - "rev": "768174e19ca80bccadc067bd2c7adc0d35fb4602", - "hash": "sha256-V66SGvOAcw5lMOBID+qnsjuvKQkt1afl8wdiscKN3Us=", + "rev": "5bead8d999717ed13f7808d3e6b88a237806899e", + "hash": "sha256-bGNlzpC3xPX5xyFyMfXbeR4q3Q9bGN/oRwFTLcgzfJM=", "fetchSubmodules": true }, - "version": "unstable-2024-03-27" + "version": "unstable-2024-04-04" }, "prboom": { "fetcher": "fetchFromGitHub", @@ -793,10 +793,10 @@ "src": { "owner": "stella-emu", "repo": "stella", - "rev": "8e8549c1c441e62c2bac0ae5a6489ba3e15412c6", - "hash": "sha256-gcIBtLpfmjPHxnixMOF/onNyIclC8sDrmgTi3zHW0Mc=" + "rev": "09be43c5060b7f23eeb413aa3d7a7021e9a6566c", + "hash": "sha256-jxvX9YAgUVe/92AbwXwgOqJmfoH7t8QxnrrGoXzjFZs=" }, - "version": "unstable-2024-03-08" + "version": "unstable-2024-04-04" }, "stella2014": { "fetcher": "fetchFromGitHub", diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix index ae792037e453..f9939000f744 100644 --- a/pkgs/applications/networking/gns3/server.nix +++ b/pkgs/applications/networking/gns3/server.nix @@ -66,7 +66,7 @@ python3.pkgs.buildPythonApplication { checkInputs = with python3.pkgs; [ pytest-aiohttp pytest-rerunfailures - pytestCheckHook + (pytestCheckHook.override { pytest = pytest_7; }) ]; pytestFlagsArray = [ diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix index 40e9c77e57a7..58bab558db74 100644 --- a/pkgs/applications/networking/instant-messengers/discord/default.nix +++ b/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -2,22 +2,22 @@ let versions = if stdenv.isLinux then { - stable = "0.0.46"; + stable = "0.0.47"; ptb = "0.0.76"; - canary = "0.0.323"; + canary = "0.0.326"; development = "0.0.16"; } else { - stable = "0.0.296"; - ptb = "0.0.102"; - canary = "0.0.435"; - development = "0.0.31"; + stable = "0.0.298"; + ptb = "0.0.105"; + canary = "0.0.451"; + development = "0.0.39"; }; version = versions.${branch}; srcs = rec { x86_64-linux = { stable = fetchurl { url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; - hash = "sha256-uGHDZg4vu7rUJce6SSVbuLRBPEHXgN4oocAQY+Dqdaw="; + hash = "sha256-4cELs7K7DAfzbA0/BwAkKraTD7z58jzOf1J3Our3CwM="; }; ptb = fetchurl { url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; @@ -25,7 +25,7 @@ let }; canary = fetchurl { url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; - hash = "sha256-jhfg66zd5oADT84RDdoBXp8n9xGd1jNaX8hDRnJKFK0="; + hash = "sha256-MxiFhd7tLvL1tBRc451qjCFZlmGM8IolckExp0sR3y8="; }; development = fetchurl { url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz"; @@ -35,19 +35,19 @@ let x86_64-darwin = { stable = fetchurl { url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg"; - hash = "sha256-0bSyL/J2P1pVzv9pFTNSR3V2NkQcDTd74t8KT+WVd64="; + hash = "sha256-GlTebQ16sRgHdpB9+Jw7dn+KVZ6qIrAmWBSypTcoFmE="; }; ptb = fetchurl { url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg"; - hash = "sha256-33x6M++EsRJXTbsC4BCa21Yz7cbAhsosPO1WqYq/lCY="; + hash = "sha256-X5bYO1D5eWTYh22v4R274OhjTsVv70XCyrMqeRlt0Bo="; }; canary = fetchurl { url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg"; - hash = "sha256-Jreet8EstaTAYAmQrzRaJE/b+xwgRVXIW8elEY7amvw="; + hash = "sha256-psVm0eXDHVBGNb/R0kHbvz/4ilyIg4xlOj/CwkwlvgM="; }; development = fetchurl { url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg"; - hash = "sha256-He/9KH1oMyj9ofYSwHhdqm7jKDsvrGpPPjLED9fSq30="; + hash = "sha256-nZV9LK3eGpXK/2wQKJBn3K2Ud6uBk8aammkeE00rWx0="; }; }; aarch64-darwin = x86_64-darwin; diff --git a/pkgs/applications/networking/trayscale/default.nix b/pkgs/applications/networking/trayscale/default.nix index 329491fd8230..b9fa0fb9c0f1 100644 --- a/pkgs/applications/networking/trayscale/default.nix +++ b/pkgs/applications/networking/trayscale/default.nix @@ -11,13 +11,13 @@ buildGoModule rec { pname = "trayscale"; - version = "0.11.0"; + version = "0.11.1"; src = fetchFromGitHub { owner = "DeedleFake"; repo = "trayscale"; rev = "v${version}"; - hash = "sha256-qSrt94hEJosdvs2N6rbcJLpjqvMPkY20dIKV3jtjFlg="; + hash = "sha256-SepVgSxM4+csX7S0LPl6HmGDcgS991sgWJrOAA2YjIc="; }; vendorHash = "sha256-eIakjEYfVp2wfXu0oqBmd5hJZTp0xgYKNNbtpRBnT2w="; @@ -46,10 +46,11 @@ buildGoModule rec { ''; meta = with lib; { + changelog = "https://github.com/DeedleFake/trayscale/releases/tag/${version}"; description = "An unofficial GUI wrapper around the Tailscale CLI client"; homepage = "https://github.com/DeedleFake/trayscale"; license = licenses.mit; - maintainers = with maintainers; [ k900 ]; + maintainers = with maintainers; [ patka ]; mainProgram = "trayscale"; }; } diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix index c3c7964b52a3..39157edf809b 100644 --- a/pkgs/applications/version-management/sublime-merge/common.nix +++ b/pkgs/applications/version-management/sublime-merge/common.nix @@ -1,18 +1,49 @@ -{ buildVersion, aarch64sha256, x64sha256, dev ? false }: +{ + buildVersion, + dev ? false, + aarch64sha256, + x64sha256, +}: -{ fetchurl, lib, stdenv, xorg, glib, libGL, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook -, pkexecPath ? "/run/wrappers/bin/pkexec" -, writeShellScript, common-updater-scripts, curl, gnugrep, coreutils +{ + fetchurl, + lib, + stdenv, + xorg, + glib, + libGL, + glibcLocales, + gtk3, + cairo, + pango, + libredirect, + makeWrapper, + wrapGAppsHook, + pkexecPath ? "/run/wrappers/bin/pkexec", + writeShellScript, + common-updater-scripts, + curl, + gnugrep, + coreutils, }: let pnameBase = "sublime-merge"; packageAttribute = "sublime-merge${lib.optionalString dev "-dev"}"; - binaries = [ "sublime_merge" crashHandlerBinary "git-credential-sublime" "ssh-askpass-sublime" ]; + binaries = [ + "sublime_merge" + crashHandlerBinary + "git-credential-sublime" + "ssh-askpass-sublime" + ]; primaryBinary = "sublime_merge"; - primaryBinaryAliases = [ "smerge" ]; - crashHandlerBinary = if lib.versionAtLeast buildVersion "2086" then "crash_handler" else "crash_reporter"; - downloadUrl = arch: "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_${arch}.tar.xz"; + primaryBinaryAliases = [ + "smerge" + ]; + crashHandlerBinary = + if lib.versionAtLeast buildVersion "2086" then "crash_handler" else "crash_reporter"; + downloadUrl = + arch: "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_${arch}.tar.xz"; versionUrl = "https://www.sublimemerge.com/${if dev then "dev" else "download"}"; versionFile = builtins.toString ./default.nix; @@ -25,8 +56,12 @@ let curl ]; - redirects = [ "/usr/bin/pkexec=${pkexecPath}" "/bin/true=${coreutils}/bin/true" ]; -in let + redirects = [ + "/usr/bin/pkexec=${pkexecPath}" + "/bin/true=${coreutils}/bin/true" + ]; +in +let binaryPackage = stdenv.mkDerivation rec { pname = "${pnameBase}-bin"; version = buildVersion; @@ -35,13 +70,20 @@ in let dontStrip = true; dontPatchELF = true; - buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH - nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + buildInputs = [ + glib + # for GSETTINGS_SCHEMAS_PATH + gtk3 + ]; + nativeBuildInputs = [ + makeWrapper + wrapGAppsHook + ]; buildPhase = '' runHook preBuild - for binary in ${ builtins.concatStringsSep " " binaries }; do + for binary in ${builtins.concatStringsSep " " binaries}; do patchelf \ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath ${lib.makeLibraryPath neededLibraries}:${libGL}/lib:${stdenv.cc.cc.lib}/lib${lib.optionalString stdenv.is64bit "64"} \ @@ -96,7 +138,8 @@ in let }; }; }; -in stdenv.mkDerivation (rec { +in +stdenv.mkDerivation (rec { pname = pnameBase; version = buildVersion; @@ -104,27 +147,45 @@ in stdenv.mkDerivation (rec { ${primaryBinary} = binaryPackage; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ + makeWrapper + ]; - installPhase = '' - mkdir -p "$out/bin" - makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" - '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + '' - mkdir -p "$out/share/applications" - substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}" - for directory in ''$${primaryBinary}/Icon/*; do - size=$(basename $directory) - mkdir -p "$out/share/icons/hicolor/$size/apps" - ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps - done - ''; + installPhase = + '' + mkdir -p "$out/bin" + makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + '' + + builtins.concatStringsSep "" ( + map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases + ) + + '' + mkdir -p "$out/share/applications" + + substitute \ + "''$${primaryBinary}/${primaryBinary}.desktop" \ + "$out/share/applications/${primaryBinary}.desktop" \ + --replace-fail "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}" + + for directory in ''$${primaryBinary}/Icon/*; do + size=$(basename $directory) + mkdir -p "$out/share/icons/hicolor/$size/apps" + ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps + done + ''; passthru = { updateScript = let script = writeShellScript "${packageAttribute}-update-script" '' set -o errexit - PATH=${lib.makeBinPath [ common-updater-scripts curl gnugrep ]} + PATH=${ + lib.makeBinPath [ + common-updater-scripts + curl + gnugrep + ] + } versionFile=$1 latestVersion=$(curl -s ${versionUrl} | grep -Po '(?<=

Version: Build )([0-9]+)') @@ -141,7 +202,11 @@ in stdenv.mkDerivation (rec { update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" done ''; - in [ script versionFile ]; + in + [ + script + versionFile + ]; }; meta = with lib; { @@ -150,6 +215,9 @@ in stdenv.mkDerivation (rec { maintainers = with maintainers; [ zookatron ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; - platforms = [ "aarch64-linux" "x86_64-linux" ]; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; }; }) diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix index 068e9cca20aa..6a1cc1e5575e 100644 --- a/pkgs/applications/version-management/sublime-merge/default.nix +++ b/pkgs/applications/version-management/sublime-merge/default.nix @@ -2,17 +2,18 @@ let common = opts: callPackage (import ./common.nix opts); -in { +in +{ sublime-merge = common { buildVersion = "2091"; aarch64sha256 = "dkPKuuzQQtL3eZlaAPeL7e2p5PCxroFRSp6Rw5wHODc="; x64sha256 = "T5g6gHgl9xGytEOsh3VuB08IrbDvMu24o/1edCGmfd4="; - } {}; + } { }; sublime-merge-dev = common { buildVersion = "2092"; + dev = true; aarch64sha256 = "3QMDynXMVB4QVtM8EPbZ8I4m+5sEjzs8XN+jEoMaktM="; x64sha256 = "S9E+wRvO41Eq+PLA/J+sjBIAn6yz715Wg9bKRW2Eobg="; - dev = true; - } {}; + } { }; } diff --git a/pkgs/by-name/as/astartectl/package.nix b/pkgs/by-name/as/astartectl/package.nix new file mode 100644 index 000000000000..3027c78984b2 --- /dev/null +++ b/pkgs/by-name/as/astartectl/package.nix @@ -0,0 +1,35 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, installShellFiles +}: +buildGoModule rec { + pname = "astartectl"; + version = "23.5.0"; + + src = fetchFromGitHub { + owner = "astarte-platform"; + repo = "astartectl"; + rev = "v${version}"; + hash = "sha256-4NgDVuYEeJI5Arq+/+xdyUOBWdCLALM3EKVLSFimJlI="; + }; + + vendorHash = "sha256-Syod7SUsjiM3cdHPZgjH/3qdsiowa0enyV9DN8k13Ws="; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion --cmd astartectl \ + --bash <($out/bin/astartectl completion bash) \ + --fish <($out/bin/astartectl completion fish) \ + --zsh <($out/bin/astartectl completion zsh) + ''; + + meta = with lib; { + homepage = "https://github.com/astarte-platform/astartectl"; + description = "Astarte command line client utility"; + license = licenses.asl20; + mainProgram = "astartectl"; + maintainers = with maintainers; [ noaccos ]; + }; +} diff --git a/pkgs/tools/misc/audible-cli/default.nix b/pkgs/by-name/au/audible-cli/package.nix similarity index 86% rename from pkgs/tools/misc/audible-cli/default.nix rename to pkgs/by-name/au/audible-cli/package.nix index 4d0134e8eaee..7e78e2a8d395 100644 --- a/pkgs/tools/misc/audible-cli/default.nix +++ b/pkgs/by-name/au/audible-cli/package.nix @@ -1,15 +1,15 @@ -{ lib, python3Packages, fetchFromGitHub, installShellFiles }: +{ lib, python3Packages, fetchFromGitHub, installShellFiles, nix-update-script }: python3Packages.buildPythonApplication rec { pname = "audible-cli"; - version = "0.2.6"; + version = "0.3.1"; pyproject = true; src = fetchFromGitHub { owner = "mkb79"; repo = "audible-cli"; rev = "refs/tags/v${version}"; - hash = "sha256-J81RcehFokOpsQBJLvmeihSrlMyX0geHPl3PPxvGjmY="; + hash = "sha256-AYL7lcYYY7gK12Id94aHRWRlCiznnF4r+lpI5VFpAWY="; }; nativeBuildInputs = with python3Packages; [ @@ -35,7 +35,6 @@ python3Packages.buildPythonApplication rec { pythonRelaxDeps = [ "httpx" - "audible" ]; postInstall = '' @@ -53,6 +52,8 @@ python3Packages.buildPythonApplication rec { "audible_cli" ]; + passthru.updateScript = nix-update-script { }; + meta = with lib; { description = "A command line interface for audible package. With the cli you can download your Audible books, cover, chapter files"; license = licenses.agpl3Only; diff --git a/pkgs/by-name/de/devenv/package.nix b/pkgs/by-name/de/devenv/package.nix index 2d482956eed4..ea3560af7039 100644 --- a/pkgs/by-name/de/devenv/package.nix +++ b/pkgs/by-name/de/devenv/package.nix @@ -29,7 +29,7 @@ let doInstallCheck = false; }); - version = "1.0.2"; + version = "1.0.3"; in rustPlatform.buildRustPackage { pname = "devenv"; inherit version; @@ -38,10 +38,10 @@ in rustPlatform.buildRustPackage { owner = "cachix"; repo = "devenv"; rev = "v${version}"; - hash = "sha256-JCxjmWr2+75KMPOoVybNZhy9zhhrg9BAKA8D+J6MNBc="; + hash = "sha256-fnJPqMFoWTYsPNEwbxTxO0h771vZKu+b5Ig4LJQcoRg="; }; - cargoHash = "sha256-FGB8p9ClGokYDrV0b47PnjeSlOv7p+IgThNajve3yms="; + cargoHash = "sha256-Qckh7knX3sARMHgn+39ozQj8CnfyEQV4yjJPP2+v2SM="; nativeBuildInputs = [ makeWrapper pkg-config ]; diff --git a/pkgs/by-name/hy/hydrapaper/package.nix b/pkgs/by-name/hy/hydrapaper/package.nix new file mode 100644 index 000000000000..313a9ed4b829 --- /dev/null +++ b/pkgs/by-name/hy/hydrapaper/package.nix @@ -0,0 +1,77 @@ +{ lib +, python3Packages +, fetchFromGitLab +, meson +, ninja +, glib +, pkg-config +, pandoc +, appstream +, blueprint-compiler +, gobject-introspection +, wrapGAppsHook4 +, dbus +, libadwaita +, xdg-user-dirs +}: + +python3Packages.buildPythonApplication rec { + pname = "hydrapaper"; + version = "3.3.2"; + pyproject = false; + + src = fetchFromGitLab { + owner = "gabmus"; + repo = "HydraPaper"; + rev = version; + hash = "sha256-IDaM8bM/0KH9h59523WqLKe400V5lLNyJ4faPf980Ro="; + }; + + nativeBuildInputs = [ + meson + ninja + glib + pkg-config + pandoc + appstream + blueprint-compiler + gobject-introspection + wrapGAppsHook4 + ]; + + buildInputs = [ + dbus + glib + libadwaita + ]; + + propagatedBuildInputs = with python3Packages; [ + dbus-python + pygobject3 + pillow + ]; + + # wrapGAppsHook4 propogates gtk4 -- which provides gtk4-update-icon-cache instead + preInstall = '' + substituteInPlace /build/source/meson_post_install.py \ + --replace-fail gtk-update-icon-cache gtk4-update-icon-cache + ''; + + dontWrapGApps = true; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : ${lib.makeBinPath [ glib xdg-user-dirs ]} + ) + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = { + description = "GNOME utility for setting different wallpapers on individual monitors"; + homepage = "https://hydrapaper.gabmus.org"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ lachrymal ]; + mainProgram = "hydrapaper"; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/by-name/li/lib60870/package.nix b/pkgs/by-name/li/lib60870/package.nix index 96a062af50a6..f5c744e71098 100644 --- a/pkgs/by-name/li/lib60870/package.nix +++ b/pkgs/by-name/li/lib60870/package.nix @@ -1,9 +1,11 @@ -{ cmake -, lib -, stdenv -, fetchFromGitHub -, gitUpdater +{ + cmake, + lib, + stdenv, + fetchFromGitHub, + gitUpdater, }: + stdenv.mkDerivation (finalAttrs: { pname = "lib60870"; version = "2.3.2"; @@ -21,15 +23,13 @@ stdenv.mkDerivation (finalAttrs: { preConfigure = "cd lib60870-C"; - passthru.updateScript = gitUpdater { - rev-prefix = "v"; - }; + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; meta = with lib; { description = "Implementation of the IEC 60870-5-101/104 protocol"; homepage = "https://libiec61850.com/"; license = licenses.gpl3Only; maintainers = with maintainers; [ stv0g ]; - platforms = [ "x86_64-linux" ]; + platforms = platforms.linux; }; }) diff --git a/pkgs/by-name/li/libiec61850/package.nix b/pkgs/by-name/li/libiec61850/package.nix index 890f9f746914..c5e85c462bb3 100644 --- a/pkgs/by-name/li/libiec61850/package.nix +++ b/pkgs/by-name/li/libiec61850/package.nix @@ -1,9 +1,11 @@ -{ cmake -, lib -, stdenv -, fetchFromGitHub -, gitUpdater +{ + cmake, + lib, + stdenv, + fetchFromGitHub, + gitUpdater, }: + stdenv.mkDerivation (finalAttrs: { pname = "libiec61850"; version = "1.5.3"; @@ -19,15 +21,13 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake ]; - passthru.updateScript = gitUpdater { - rev-prefix = "v"; - }; + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; meta = with lib; { description = "Open-source library for the IEC 61850 protocols"; homepage = "https://libiec61850.com/"; license = licenses.gpl3Only; maintainers = with maintainers; [ stv0g ]; - platforms = [ "x86_64-linux" ]; + platforms = platforms.linux; }; }) diff --git a/pkgs/by-name/mi/mihomo/package.nix b/pkgs/by-name/mi/mihomo/package.nix index a90d4046d270..732898379776 100644 --- a/pkgs/by-name/mi/mihomo/package.nix +++ b/pkgs/by-name/mi/mihomo/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "mihomo"; - version = "1.18.2"; + version = "1.18.3"; src = fetchFromGitHub { owner = "MetaCubeX"; repo = "mihomo"; rev = "v${version}"; - hash = "sha256-/4Tlv6LLT1+CHdjJ1ZlYaZj44TX5y6FEHdKk+OA1vBU="; + hash = "sha256-/fFVUI++OhOer5DrvcXO+R+4whtb5+3Qg3e4+ikJr1Y="; }; vendorHash = "sha256-k4xB/jO78VGD+n9HtuoWXoXB+kZCEyPKJTTwj32nGIw="; diff --git a/pkgs/by-name/pe/pest/composer.lock b/pkgs/by-name/pe/pest/composer.lock index b00f4245372f..9a82b13ea242 100644 --- a/pkgs/by-name/pe/pest/composer.lock +++ b/pkgs/by-name/pe/pest/composer.lock @@ -1069,16 +1069,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.27.0", + "version": "1.28.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "86e4d5a4b036f8f0be1464522f4c6b584c452757" + "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/86e4d5a4b036f8f0be1464522f4c6b584c452757", - "reference": "86e4d5a4b036f8f0be1464522f4c6b584c452757", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", + "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", "shasum": "" }, "require": { @@ -1110,9 +1110,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.27.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.28.0" }, - "time": "2024-03-21T13:14:53+00:00" + "time": "2024-04-03T18:51:33+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2557,16 +2557,16 @@ }, { "name": "symfony/console", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f" + "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/6b099f3306f7c9c2d2786ed736d0026b2903205f", - "reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f", + "url": "https://api.github.com/repos/symfony/console/zipball/fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", + "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", "shasum": "" }, "require": { @@ -2630,7 +2630,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.0.4" + "source": "https://github.com/symfony/console/tree/v7.0.6" }, "funding": [ { @@ -2646,7 +2646,7 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-04-01T11:04:53+00:00" }, { "name": "symfony/finder", @@ -3093,16 +3093,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.4.1", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", "shasum": "" }, "require": { @@ -3155,7 +3155,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" }, "funding": [ { @@ -3171,7 +3171,7 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2023-12-19T21:51:00+00:00" }, { "name": "symfony/string", @@ -3502,16 +3502,16 @@ }, { "name": "laravel/pint", - "version": "v1.14.0", + "version": "v1.15.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "6b127276e3f263f7bb17d5077e9e0269e61b2a0e" + "reference": "5f288b5e79938cc72f5c298d384e639de87507c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/6b127276e3f263f7bb17d5077e9e0269e61b2a0e", - "reference": "6b127276e3f263f7bb17d5077e9e0269e61b2a0e", + "url": "https://api.github.com/repos/laravel/pint/zipball/5f288b5e79938cc72f5c298d384e639de87507c6", + "reference": "5f288b5e79938cc72f5c298d384e639de87507c6", "shasum": "" }, "require": { @@ -3522,13 +3522,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.49.0", - "illuminate/view": "^10.43.0", - "larastan/larastan": "^2.8.1", + "friendsofphp/php-cs-fixer": "^3.52.1", + "illuminate/view": "^10.48.4", + "larastan/larastan": "^2.9.2", "laravel-zero/framework": "^10.3.0", - "mockery/mockery": "^1.6.7", + "mockery/mockery": "^1.6.11", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.33.6" + "pestphp/pest": "^2.34.5" }, "bin": [ "builds/pint" @@ -3564,7 +3564,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-02-20T17:38:05+00:00" + "time": "2024-04-02T14:28:47+00:00" }, { "name": "nette/utils", @@ -3787,16 +3787,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.65", + "version": "1.10.66", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "3c657d057a0b7ecae19cb12db446bbc99d8839c6" + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3c657d057a0b7ecae19cb12db446bbc99d8839c6", - "reference": "3c657d057a0b7ecae19cb12db446bbc99d8839c6", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", + "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", "shasum": "" }, "require": { @@ -3845,7 +3845,7 @@ "type": "tidelift" } ], - "time": "2024-03-23T10:30:26+00:00" + "time": "2024-03-28T16:17:31+00:00" }, { "name": "phpstan/phpstan-strict-rules", @@ -4026,16 +4026,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.4", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "b439823f04c98b84d4366c79507e9da6230944b1" + "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b439823f04c98b84d4366c79507e9da6230944b1", - "reference": "b439823f04c98b84d4366c79507e9da6230944b1", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/95bd2706a97fb875185b51ecaa6112ec184233d4", + "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4", "shasum": "" }, "require": { @@ -4091,7 +4091,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.4" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.6" }, "funding": [ { @@ -4107,7 +4107,7 @@ "type": "tidelift" } ], - "time": "2024-02-15T11:23:52+00:00" + "time": "2024-03-19T11:56:30+00:00" }, { "name": "symplify/phpstan-rules", diff --git a/pkgs/by-name/pe/pest/package.nix b/pkgs/by-name/pe/pest/package.nix index 9b2512018ce4..6b7231ec8f8e 100644 --- a/pkgs/by-name/pe/pest/package.nix +++ b/pkgs/by-name/pe/pest/package.nix @@ -2,7 +2,7 @@ php.buildComposerProject (finalAttrs: { pname = "pest"; - version = "2.34.5"; + version = "2.34.7"; src = fetchFromGitHub { owner = "pestphp"; @@ -13,7 +13,7 @@ php.buildComposerProject (finalAttrs: { composerLock = ./composer.lock; - vendorHash = "sha256-skNf6bUyGUN/F9Ffpz325napOmPINYk1TyUyYqWmwRM="; + vendorHash = "sha256-+FKNGjwq+KFPw8agdwsgnwb2ENgFAWK5EngmS4hMcSA="; meta = { changelog = "https://github.com/pestphp/pest/releases/tag/v${finalAttrs.version}"; diff --git a/pkgs/by-name/up/upsun/package.nix b/pkgs/by-name/up/upsun/package.nix new file mode 100644 index 000000000000..5e2d53d78667 --- /dev/null +++ b/pkgs/by-name/up/upsun/package.nix @@ -0,0 +1,34 @@ +{ stdenvNoCC, lib, fetchurl }: + +stdenvNoCC.mkDerivation rec { + pname = "upsun"; + version = "5.0.12"; + + src = { + x86_64-linux = fetchurl { + url = "https://github.com/platformsh/cli/releases/download/${version}/upsun_${version}_linux_amd64.tar.gz"; + hash = "sha256-svEPMVY7r7pAoXwFIMYqCEduqR3Nkocaguf2nIGt+G8="; + }; + aarch64-linux = fetchurl { + url = "https://github.com/platformsh/cli/releases/download/${version}/upsun_${version}_linux_arm64.tar.gz"; + hash = "sha256-ZraS/PqSPL/kcj5o6hzDdL70IV2IWXOma6OHCiXIDQc="; + }; + }.${stdenvNoCC.system} or (throw "${pname}-${version}: ${stdenvNoCC.system} is unsupported."); + + dontConfigure = true; + dontBuild = true; + + sourceRoot = "."; + installPhase = '' + install -Dm755 upsun $out/bin/upsun + ''; + + meta = { + homepage = "https://github.com/platformsh/cli"; + description = "The unified tool for managing your Upsun services from the command line"; + maintainers = with lib.maintainers; [ spk ]; + license = lib.licenses.mit; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/pkgs/by-name/xo/xonsh/unwrapped.nix b/pkgs/by-name/xo/xonsh/unwrapped.nix index b0115dc247c4..e5b55efbf344 100644 --- a/pkgs/by-name/xo/xonsh/unwrapped.nix +++ b/pkgs/by-name/xo/xonsh/unwrapped.nix @@ -90,8 +90,6 @@ python3.pkgs.buildPythonApplication { export HOME=$TMPDIR ''; - dontWrapPythonPrograms = true; - passthru = { shellPath = "/bin/xonsh"; python = python3; # To the wrapper diff --git a/pkgs/desktops/deepin/tools/deepin-gettext-tools/default.nix b/pkgs/desktops/deepin/tools/deepin-gettext-tools/default.nix index d219e6d73b16..f9a789c21989 100644 --- a/pkgs/desktops/deepin/tools/deepin-gettext-tools/default.nix +++ b/pkgs/desktops/deepin/tools/deepin-gettext-tools/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "deepin-gettext-tools"; - version = "1.0.10"; + version = "1.0.11"; src = fetchFromGitHub { owner = "linuxdeepin"; repo = pname; rev = version; - sha256 = "sha256-5Dd2QU6JYwuktusssNDfA7IHa6HbFcWo9sZf5PS7NtI="; + sha256 = "sha256-V6X0E80352Vb6zwaBTRfZZnXEVCmBRbO2bca9A9OL6c="; }; postPatch = '' diff --git a/pkgs/development/compilers/typescript/default.nix b/pkgs/development/compilers/typescript/default.nix index 9e91337da753..19fe228e35b9 100644 --- a/pkgs/development/compilers/typescript/default.nix +++ b/pkgs/development/compilers/typescript/default.nix @@ -2,20 +2,20 @@ buildNpmPackage rec { pname = "typescript"; - version = "5.4.3"; + version = "5.4.4"; src = fetchFromGitHub { owner = "microsoft"; repo = "TypeScript"; rev = "v${version}"; - hash = "sha256-yB87R6LyuTbSbQOcRi+QOhrnUy+ra76PiCzsEvPx3ds="; + hash = "sha256-8mVkVLy/E8Fl4Ds9NphtE2Hp1HLM8ehhW/dG6MlaLIs="; }; patches = [ ./disable-dprint-dstBundler.patch ]; - npmDepsHash = "sha256-XlXDof0yFxEpNCZN+4ZY2BVgpbAkwdAUJcTRxIXi8eQ="; + npmDepsHash = "sha256-Csu9Ik9aC9qvZmx9Yn1xzkrP1bjHL0o72ZSwzCicFoI="; passthru.tests = { version = testers.testVersion { diff --git a/pkgs/development/libraries/mbedtls/2.nix b/pkgs/development/libraries/mbedtls/2.nix index 97d62fad3ced..42fb6edae78f 100644 --- a/pkgs/development/libraries/mbedtls/2.nix +++ b/pkgs/development/libraries/mbedtls/2.nix @@ -1,6 +1,6 @@ { callPackage }: callPackage ./generic.nix { - version = "2.28.7"; - hash = "sha256-JI0Frbz4HkPqrLQNrSIj1ikN8201h4kd1wTwyPotERw="; + version = "2.28.8"; + hash = "sha256-A1DYZrvJ8SRujroVwqPfcTOSgLnT5xRat/RVdq2fL/o="; } diff --git a/pkgs/development/libraries/mbedtls/3.nix b/pkgs/development/libraries/mbedtls/3.nix index 267349ac5d7b..d672e218f577 100644 --- a/pkgs/development/libraries/mbedtls/3.nix +++ b/pkgs/development/libraries/mbedtls/3.nix @@ -1,6 +1,18 @@ -{ callPackage }: +{ callPackage +, fetchpatch +}: callPackage ./generic.nix { - version = "3.5.2"; - hash = "sha256-lVGmnSYccNmRS6vfF/fDiny5cYRPc/wJBpgciFLPUvM="; + version = "3.6.0"; + hash = "sha256-tCwAKoTvY8VCjcTPNwS3DeitflhpKHLr6ygHZDbR6wQ="; + + patches = [ + # https://github.com/Mbed-TLS/mbedtls/pull/9000 + # Remove at next version update + (fetchpatch { + name = "fix-darwin-memcpy-error.patch"; + url = "https://github.com/Mbed-TLS/mbedtls/commit/b32d7ae0fee2f906be59780b42a0cd4468a39bd1.patch"; + hash = "sha256-BTkJs9NEkCl+/Q8EwB/LW9uwF95jQOKWmoCK4B/7/sU="; + }) + ]; } diff --git a/pkgs/development/libraries/mbedtls/generic.nix b/pkgs/development/libraries/mbedtls/generic.nix index 2e79a593b7c3..e87a133eb2a1 100644 --- a/pkgs/development/libraries/mbedtls/generic.nix +++ b/pkgs/development/libraries/mbedtls/generic.nix @@ -2,6 +2,7 @@ , stdenv , version , hash +, patches ? [] , fetchFromGitHub , cmake @@ -21,8 +22,12 @@ stdenv.mkDerivation rec { repo = "mbedtls"; rev = "${pname}-${version}"; inherit hash; + # mbedtls >= 3.6.0 uses git submodules + fetchSubmodules = true; }; + inherit patches; + nativeBuildInputs = [ cmake ninja perl python3 ]; strictDeps = true; diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix index d6e3aa57e986..920b8467bc99 100644 --- a/pkgs/development/libraries/tdlib/default.nix +++ b/pkgs/development/libraries/tdlib/default.nix @@ -1,8 +1,8 @@ { fetchFromGitHub, gperf, openssl, readline, zlib, cmake, lib, stdenv }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "tdlib"; - version = "1.8.24"; + version = "1.8.27"; src = fetchFromGitHub { owner = "tdlib"; @@ -11,8 +11,8 @@ stdenv.mkDerivation rec { # The tdlib authors do not set tags for minor versions, but # external programs depending on tdlib constrain the minor # version, hence we set a specific commit with a known version. - rev = "c5c55092dd61b9eb15d6bbfd0f02c04c593450e7"; - hash = "sha256-jqS3PGg42W15QBgpL1PNU3xJdk67g8u0THN/4hW5i88="; + rev = "efc6bd553b61dea0ae8c0436695e8d2539bf03f9"; + hash = "sha256-AHfuT+bLkc8Lm1B96E/kwUx1ZKStQbv/skH8woRITRk="; }; buildInputs = [ gperf openssl readline zlib ]; diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix index 2111d5fa4d6b..0400906ea883 100644 --- a/pkgs/development/python-modules/yalexs/default.nix +++ b/pkgs/development/python-modules/yalexs/default.nix @@ -1,24 +1,25 @@ -{ lib -, aiofiles -, aiohttp -, aioresponses -, aiounittest -, buildPythonPackage -, ciso8601 -, fetchFromGitHub -, pubnub -, pyjwt -, pytestCheckHook -, python-dateutil -, pythonOlder -, requests -, requests-mock -, setuptools +{ + lib, + aiofiles, + aiohttp, + aioresponses, + aiounittest, + buildPythonPackage, + ciso8601, + fetchFromGitHub, + pubnub, + pyjwt, + pytestCheckHook, + python-dateutil, + pythonOlder, + requests, + requests-mock, + setuptools, }: buildPythonPackage rec { pname = "yalexs"; - version = "3.0.0"; + version = "3.0.1"; pyproject = true; disabled = pythonOlder "3.9"; @@ -27,7 +28,7 @@ buildPythonPackage rec { owner = "bdraco"; repo = "yalexs"; rev = "refs/tags/v${version}"; - hash = "sha256-hY46hUUmbQUWmI+Oa9qIQ1rZdXT5daGo1Vd5JRKfDHE="; + hash = "sha256-+FdQQzQhKhIOEnOym2DNT9uQL2uAbfE8tUXUHIFFK2I="; }; postPatch = '' @@ -36,11 +37,9 @@ buildPythonPackage rec { --replace-fail '"vol",' "" ''; - nativeBuildInputs = [ - setuptools - ]; + build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ aiofiles aiohttp ciso8601 @@ -60,9 +59,7 @@ buildPythonPackage rec { requests-mock ]; - pythonImportsCheck = [ - "yalexs" - ]; + pythonImportsCheck = [ "yalexs" ]; meta = with lib; { description = "Python API for Yale Access (formerly August) Smart Lock and Doorbell"; diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix index 7176bf7e3bd3..770f4b5db181 100644 --- a/pkgs/development/tools/go-mockery/default.nix +++ b/pkgs/development/tools/go-mockery/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "go-mockery"; - version = "2.42.1"; + version = "2.42.2"; src = fetchFromGitHub { owner = "vektra"; repo = "mockery"; rev = "v${version}"; - sha256 = "sha256-+D91qWXv+OAZKKXllCv6cpGppzmIlwUTweN2NR/nTqU="; + sha256 = "sha256-y0HMoQvv001smvWlK1qN0bYeHgNDLz1uKQCaRmDnoM4="; }; preCheck = '' @@ -24,7 +24,7 @@ buildGoModule rec { CGO_ENABLED = false; proxyVendor = true; - vendorHash = "sha256-FCl17nywcMoXEA3l0rOzY66Pj51rEEGdK6Zo6Y3/n34="; + vendorHash = "sha256-1SzdVM1Ncpym6bPg1aSyfoAM1YiUGal3Glw0paz+buk="; subPackages = [ "." ]; diff --git a/pkgs/development/tools/rust/cargo-hack/default.nix b/pkgs/development/tools/rust/cargo-hack/default.nix index a24fa814fc02..89f062c75880 100644 --- a/pkgs/development/tools/rust/cargo-hack/default.nix +++ b/pkgs/development/tools/rust/cargo-hack/default.nix @@ -2,14 +2,14 @@ rustPlatform.buildRustPackage rec { pname = "cargo-hack"; - version = "0.6.22"; + version = "0.6.27"; src = fetchCrate { inherit pname version; - hash = "sha256-TlTm4pQrviKHusBBYLbpIX1dGcS4dSs1G/TfZT32CvY="; + hash = "sha256-TaXVHTUof/T+p0Zxpdf552uVqCr7jzQtNGKLKq7asqI="; }; - cargoHash = "sha256-OFzeD15m6Ie2GrRlItsqDO3QGTBWkcsvSkanbzPdne4="; + cargoHash = "sha256-qhD6PLvvfLkVr9rOB90Kw4/jDOw06h7TUe1YCjGad1g="; # some necessary files are absent in the crate version doCheck = false; diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix index e29d18aa7ffc..e4aa0b353aca 100644 --- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix +++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix @@ -21,6 +21,7 @@ stdenvNoCC.mkDerivation rec { cp -av sof-tplg $out/lib/firmware/intel/sof-tplg cp -av sof-ace-tplg $out/lib/firmware/intel/sof-ace-tplg cp -av sof-ipc4 $out/lib/firmware/intel/sof-ipc4 + cp -av sof-ipc4-tplg $out/lib/firmware/intel/sof-ipc4-tplg runHook postInstall ''; diff --git a/pkgs/servers/sql/dolt/default.nix b/pkgs/servers/sql/dolt/default.nix index bb6687c20473..2ae5e937b10e 100644 --- a/pkgs/servers/sql/dolt/default.nix +++ b/pkgs/servers/sql/dolt/default.nix @@ -2,18 +2,18 @@ buildGoModule rec { pname = "dolt"; - version = "1.35.4"; + version = "1.35.7"; src = fetchFromGitHub { owner = "dolthub"; repo = "dolt"; rev = "v${version}"; - sha256 = "sha256-9EEqwS7IKlRfE5bwxjScDX7KMCTpmbxixAznRhbaOE0="; + sha256 = "sha256-n6J6gFXdUvR1G2KmZf/k1ngeXAUbYorNFDxND+e5YIY="; }; modRoot = "./go"; subPackages = [ "cmd/dolt" ]; - vendorHash = "sha256-TXx+YmXsAwh2J+nHpff0oHatI6G2QY2QZmMMcHAG6Lc="; + vendorHash = "sha256-o9b+eoFCrC7oN26nyeFGMWnLtvU+Wk7e9cr38bSsKTs="; proxyVendor = true; doCheck = false; diff --git a/pkgs/tools/filesystems/nilfs-utils/default.nix b/pkgs/tools/filesystems/nilfs-utils/default.nix index ae96def578f6..3fe4f9af4a08 100644 --- a/pkgs/tools/filesystems/nilfs-utils/default.nix +++ b/pkgs/tools/filesystems/nilfs-utils/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "nilfs-utils"; - version = "2.2.10"; + version = "2.2.11"; src = fetchFromGitHub { owner = "nilfs-dev"; repo = pname; rev = "v${version}"; - sha256 = "sha256-xTnd3sfBaVU4Ovcsk4oufylNpGS+5n3ZLa2GXzUbeCE="; + sha256 = "sha256-qvs0PBkMYzGfIQ/Z2Wz0aHe2Y2Ia6fA4pMSk5Jhejf4="; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/tools/nix/nixdoc/default.nix b/pkgs/tools/nix/nixdoc/default.nix index 616ee90d9a3f..54d0c1be4ce6 100644 --- a/pkgs/tools/nix/nixdoc/default.nix +++ b/pkgs/tools/nix/nixdoc/default.nix @@ -22,7 +22,6 @@ rustPlatform.buildRustPackage rec { license = [ licenses.gpl3 ]; maintainers = with maintainers; [ infinisil - asymmetric hsjobeki ]; platforms = platforms.unix; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0381bfd5d00a..5717c09857c4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1708,8 +1708,6 @@ with pkgs; arubaotp-seed-extractor = callPackage ../tools/security/arubaotp-seed-extractor { }; - audible-cli = callPackage ../tools/misc/audible-cli { }; - auditwheel = with python3Packages; toPythonApplication auditwheel; amidst = callPackage ../tools/games/minecraft/amidst { };