Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2026-06-02 00:49:58 +00:00
committed by GitHub
365 changed files with 2237 additions and 1039 deletions
+6
View File
@@ -19,6 +19,12 @@
- `uhttpmock` providing 0.0 ABI was removed. `uhttpmock_1_0` providing 1.0 ABI was renamed to `uhttpmock` and `uhttpmock_1_0` was kept as an alias.
- The ARMv5 Linux kernel build now uses a standard configuration and generates a standard compressed image instead of the deprecated legacy UBoot image format.
`lib.systems.{examples,platforms}.{sheevaplug,pogoplug4}` have been unified into `lib.systems.examples.armv5tel-multiplatform`.
Note that there is no official support for ARMv5 and it is not possible to build even a simple NixOS configuration out of the box.
- Support for the legacy UBoot image format has been removed from the Linux kernel builders, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
- `requireFile` now sets `meta.license = lib.licenses.unfree` by default. Users of `requireFile`-based derivations that preserve this default will need to explicitly allow their evaluation as described in [](#sec-allow-unfree).
- `librest` providing 0.7 ABI was removed. `librest_1_0` providing 1.0 ABI was renamed to `librest` and `librest_1_0` was kept as an alias.
+2 -8
View File
@@ -40,10 +40,9 @@ rec {
rust.rustcTarget = "powerpc-unknown-linux-gnu";
};
sheevaplug = {
armv5tel-multiplatform = {
config = "armv5tel-unknown-linux-gnueabi";
}
// platforms.sheevaplug;
};
raspberryPi = {
config = "armv6l-unknown-linux-gnueabihf";
@@ -99,11 +98,6 @@ rec {
useLLVM = true;
};
pogoplug4 = {
config = "armv5tel-unknown-linux-gnueabi";
}
// platforms.pogoplug4;
ben-nanonote = {
config = "mipsel-unknown-linux-uclibc";
}
+8 -331
View File
@@ -46,138 +46,15 @@ rec {
## ARM
##
pogoplug4 = {
armv5tel-multiplatform = {
linux-kernel = {
name = "pogoplug4";
name = "armv5tel-multiplatform";
baseConfig = "multi_v5_defconfig";
autoModules = false;
extraConfig = ''
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
UBIFS_FS_XATTR y
UBIFS_FS_ADVANCED_COMPR y
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
'';
makeFlags = [ "LOADADDR=0x8000" ];
target = "uImage";
# TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
#DTB = true;
};
gcc = {
arch = "armv5te";
};
};
sheevaplug = {
linux-kernel = {
name = "sheevaplug";
baseConfig = "multi_v5_defconfig";
autoModules = false;
extraConfig = ''
BLK_DEV_RAM y
BLK_DEV_INITRD y
BLK_DEV_CRYPTOLOOP m
BLK_DEV_DM m
DM_CRYPT m
MD y
BTRFS_FS m
XFS_FS m
JFS_FS m
EXT4_FS m
USB_STORAGE_CYPRESS_ATACB m
# mv cesa requires this sw fallback, for mv-sha1
CRYPTO_SHA1 y
# Fast crypto
CRYPTO_TWOFISH y
CRYPTO_TWOFISH_COMMON y
CRYPTO_BLOWFISH y
CRYPTO_BLOWFISH_COMMON y
IP_PNP y
IP_PNP_DHCP y
NFS_FS y
ROOT_NFS y
TUN m
NFS_V4 y
NFS_V4_1 y
NFS_FSCACHE y
NFSD m
NFSD_V2_ACL y
NFSD_V3 y
NFSD_V3_ACL y
NFSD_V4 y
NETFILTER y
IP_NF_IPTABLES y
IP_NF_FILTER y
IP_NF_MATCH_ADDRTYPE y
IP_NF_TARGET_LOG y
IP_NF_MANGLE y
IPV6 m
VLAN_8021Q m
CIFS y
CIFS_XATTR y
CIFS_POSIX y
CIFS_FSCACHE y
CIFS_ACL y
WATCHDOG y
WATCHDOG_CORE y
ORION_WATCHDOG m
ZRAM m
NETCONSOLE m
# Disable OABI to have seccomp_filter (required for systemd)
# https://github.com/raspberrypi/firmware/issues/651
OABI_COMPAT n
# Fail to build
DRM n
SCSI_ADVANSYS n
USB_ISP1362_HCD n
SND_SOC n
SND_ALI5451 n
FB_SAVAGE n
SCSI_NSP32 n
ATA_SFF n
SUNGEM n
IRDA n
ATM_HE n
SCSI_ACARD n
BLK_DEV_CMD640_ENHANCED n
FUSE_FS m
# systemd uses cgroups
CGROUPS y
# Latencytop
LATENCYTOP y
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
UBIFS_FS_XATTR y
UBIFS_FS_ADVANCED_COMPR y
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
# Kdb, for kernel troubles
KGDB y
KGDB_SERIAL_CONSOLE y
KGDB_KDB y
'';
makeFlags = [ "LOADADDR=0x0200000" ];
target = "uImage";
DTB = true; # Beyond 3.10
DTB = true;
autoModules = true;
preferBuiltin = true;
target = "zImage";
};
gcc = {
arch = "armv5te";
@@ -192,11 +69,6 @@ rec {
DTB = true;
autoModules = true;
preferBuiltin = true;
extraConfig = ''
# Disable OABI to have seccomp_filter (required for systemd)
# https://github.com/raspberrypi/firmware/issues/651
OABI_COMPAT n
'';
target = "zImage";
};
gcc = {
@@ -217,15 +89,6 @@ rec {
};
zero-gravitas = {
linux-kernel = {
name = "zero-gravitas";
baseConfig = "zero-gravitas_defconfig";
# Target verified by checking /boot on reMarkable 1 device
target = "zImage";
autoModules = false;
DTB = true;
};
gcc = {
fpu = "neon";
cpu = "cortex-a9";
@@ -233,15 +96,6 @@ rec {
};
zero-sugar = {
linux-kernel = {
name = "zero-sugar";
baseConfig = "zero-sugar_defconfig";
DTB = true;
autoModules = false;
preferBuiltin = true;
target = "zImage";
};
gcc = {
cpu = "cortex-a7";
fpu = "neon-vfpv4";
@@ -249,49 +103,6 @@ rec {
};
};
utilite = {
linux-kernel = {
name = "utilite";
maseConfig = "multi_v7_defconfig";
autoModules = false;
extraConfig = ''
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
UBIFS_FS_XATTR y
UBIFS_FS_ADVANCED_COMPR y
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
'';
makeFlags = [ "LOADADDR=0x10800000" ];
target = "uImage";
DTB = true;
};
gcc = {
cpu = "cortex-a9";
fpu = "neon";
};
};
guruplug = lib.recursiveUpdate sheevaplug {
# Define `CONFIG_MACH_GURUPLUG' (see
# <http://kerneltrap.org/mailarchive/git-commits-head/2010/5/19/33618>)
# and other GuruPlug-specific things. Requires the `guruplug-defconfig'
# patch.
linux-kernel.baseConfig = "guruplug_defconfig";
};
beaglebone = lib.recursiveUpdate armv7l-hf-multiplatform {
linux-kernel = {
name = "beaglebone";
baseConfig = "bb.org_defconfig";
autoModules = false;
extraConfig = ""; # TBD kernel config
target = "zImage";
};
};
# https://developer.android.com/ndk/guides/abis#v7a
armv7a-android = {
linux-kernel.name = "armeabi-v7a";
@@ -305,32 +116,11 @@ rec {
armv7l-hf-multiplatform = {
linux-kernel = {
name = "armv7l-hf-multiplatform";
Major = "2.6"; # Using "2.6" enables 2.6 kernel syscalls in glibc.
baseConfig = "multi_v7_defconfig";
baseConfig = "defconfig";
DTB = true;
autoModules = true;
preferBuiltin = true;
target = "zImage";
extraConfig = ''
# Serial port for Raspberry Pi 3. Wasn't included in ARMv7 defconfig
# until 4.17.
SERIAL_8250_BCM2835AUX y
SERIAL_8250_EXTENDED y
SERIAL_8250_SHARE_IRQ y
# Hangs ODROID-XU4
ARM_BIG_LITTLE_CPUIDLE n
# Disable OABI to have seccomp_filter (required for systemd)
# https://github.com/raspberrypi/firmware/issues/651
OABI_COMPAT n
# >=5.12 fails with:
# drivers/net/ethernet/micrel/ks8851_common.o: in function `ks8851_probe_common':
# ks8851_common.c:(.text+0x179c): undefined reference to `__this_module'
# See: https://lore.kernel.org/netdev/20210116164828.40545-1-marex@denx.de/T/
KS8851_MLL y
'';
};
gcc = {
# Some table about fpu flags:
@@ -363,22 +153,6 @@ rec {
autoModules = true;
preferBuiltin = true;
extraConfig = ''
# Raspberry Pi 3 stuff. Not needed for s >= 4.10.
ARCH_BCM2835 y
BCM2835_MBOX y
BCM2835_WDT y
RASPBERRYPI_FIRMWARE y
RASPBERRYPI_POWER y
SERIAL_8250_BCM2835AUX y
SERIAL_8250_EXTENDED y
SERIAL_8250_SHARE_IRQ y
# Cavium ThunderX stuff.
PCI_HOST_THUNDER_ECAM y
# Nvidia Tegra stuff.
PCI_TEGRA y
# The default (=y) forces us to have the XHCI firmware available in initrd,
# which our initrd builder can't currently do easily.
USB_XHCI_TEGRA m
@@ -412,74 +186,6 @@ rec {
};
fuloong2f_n32 = {
linux-kernel = {
name = "fuloong2f_n32";
baseConfig = "lemote2f_defconfig";
autoModules = false;
extraConfig = ''
MIGRATION n
COMPACTION n
# nixos mounts some cgroup
CGROUPS y
BLK_DEV_RAM y
BLK_DEV_INITRD y
BLK_DEV_CRYPTOLOOP m
BLK_DEV_DM m
DM_CRYPT m
MD y
EXT4_FS m
USB_STORAGE_CYPRESS_ATACB m
IP_PNP y
IP_PNP_DHCP y
IP_PNP_BOOTP y
NFS_FS y
ROOT_NFS y
TUN m
NFS_V4 y
NFS_V4_1 y
NFS_FSCACHE y
NFSD m
NFSD_V2_ACL y
NFSD_V3 y
NFSD_V3_ACL y
NFSD_V4 y
# Fail to build
DRM n
SCSI_ADVANSYS n
USB_ISP1362_HCD n
SND_SOC n
SND_ALI5451 n
FB_SAVAGE n
SCSI_NSP32 n
ATA_SFF n
SUNGEM n
IRDA n
ATM_HE n
SCSI_ACARD n
BLK_DEV_CMD640_ENHANCED n
FUSE_FS m
# Needed for udev >= 150
SYSFS_DEPRECATED_V2 n
VGA_CONSOLE n
VT_HW_CONSOLE_BINDING y
SERIAL_8250_CONSOLE y
FRAMEBUFFER_CONSOLE y
EXT2_FS y
EXT3_FS y
MAGIC_SYSRQ y
# The kernel doesn't boot at all, with FTRACE
FTRACE n
'';
target = "vmlinux";
};
gcc = {
arch = "loongson2f";
float = "hard";
@@ -525,35 +231,6 @@ rec {
};
};
# based on:
# https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html
# https://gmplib.org/~tege/qemu.html#mips64-debian
mips64el-qemu-linux-gnuabi64 = {
linux-kernel = {
name = "mips64el";
baseConfig = "64r2el_defconfig";
target = "vmlinuz";
autoModules = false;
DTB = true;
# for qemu 9p passthrough filesystem
extraConfig = ''
MIPS_MALTA y
PAGE_SIZE_4KB y
CPU_LITTLE_ENDIAN y
CPU_MIPS64_R2 y
64BIT y
CPU_MIPS64_R2 y
NET_9P y
NET_9P_VIRTIO y
9P_FS y
9P_FS_POSIX_ACL y
PCI y
VIRTIO_PCI y
'';
};
};
##
## Other
##
@@ -607,7 +284,7 @@ rec {
if version == null then
pc
else if lib.versionOlder version "6" then
sheevaplug
armv5tel-multiplatform
else if lib.versionOlder version "7" then
raspberrypi
else
+1
View File
@@ -935,6 +935,7 @@
"infinisil": 20525370
},
"members": {
"andir": 638836,
"pyrox0": 35778371
},
"name": "Security review"
@@ -18,10 +18,12 @@
- `boot.vesa` has been removed. It was deprecated in 2020 because Xorg now works better with kernel modesetting. If you still need the legacy VESA 800x600 fallback, set `boot.kernelParams = [ "vga=0x317" "nomodeset" ];` directly.
- Support for the legacy UBoot image format has been removed from the initrd generators, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
- Python 2 has been removed from the top-level package set, as it is long past end-of-life. The `python2`, `python27`, `python2Full`, `python27Full`, `python2Packages`, and `python27Packages` attributes, along with the legacy `python`, `pythonFull`, and `pythonPackages` aliases, now throw an error directing you to `python3`. The `isPy2` and `isPy27` package flags have been removed accordingly. The only remaining Python 2 interpreter is vendored inside the `resholve` package for its `oil` dependency and is not exposed for general use.
## Other Notable Changes {#sec-release-26.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
- The `newuidmap` and `newgidmap` security wrappers are now installed with `cap_setuid`/`cap_setgid` file capabilities instead of the setuid-root bit, matching shadow's `--with-fcaps` install mode and other major distributions. Rootless containers (podman, docker-rootless, unprivileged user namespaces) are unaffected. The only behavioural change is that mapping host uid 0 via `/etc/subuid` (which NixOS never configures by default) additionally requires `cap_setfcap`; users who explicitly grant uid 0 in a subuid range can restore the previous behaviour with `security.wrappers.newuidmap.capabilities = lib.mkForce "cap_setuid,cap_setfcap+ep";`.
@@ -1031,6 +1031,7 @@ class QemuMachine(BaseMachine):
As soon as we read some data from the socket here, we assume that
our root shell is operational.
"""
assert self.shell
(ready, _, _) = select.select([self.shell], [], [], timeout_secs)
return bool(ready)
+2
View File
@@ -47,6 +47,8 @@ in
gyre-fonts # TrueType substitutes for standard PostScript fonts
liberation_ttf
unifont
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-color-emoji
]
);
+21
View File
@@ -319,6 +319,27 @@ in
name = "nixos-rebuild";
package = config.system.build.nixos-rebuild;
})
(
{ config, ... }:
{
options.system.tools.nixos-rebuild.enableRun0Elevation = lib.mkEnableOption ''
support for being targeted by `nixos-rebuild --elevate=run0
--ask-elevate-password`.
This enables polkit and adds {command}`polkit-stdin-agent` to
{option}`environment.systemPackages` so that a deploying host
can find a target-architecture agent at
{file}`<toplevel>/sw/bin/polkit-stdin-agent` after copying the
closure (which is required for cross-architecture deploys and
mismatched nixpkgs revisions to work).
'';
config = lib.mkIf config.system.tools.nixos-rebuild.enableRun0Elevation {
security.polkit.enable = lib.mkDefault true;
environment.systemPackages = [ pkgs.polkit-stdin-agent ];
};
}
)
(mkToolModule {
name = "nixos-version";
package = nixos-version;
+11 -2
View File
@@ -267,13 +267,22 @@ in
group = "root";
inherit source;
};
mkCapRoot = capabilities: source: {
inherit capabilities source;
owner = "root";
group = "root";
};
in
{
su = mkSetuidRoot "${config.security.shadow.su.package}/bin/su";
sg = mkSetuidRoot "${cfg.package.out}/bin/sg";
newgrp = mkSetuidRoot "${cfg.package.out}/bin/newgrp";
newuidmap = mkSetuidRoot "${cfg.package.out}/bin/newuidmap";
newgidmap = mkSetuidRoot "${cfg.package.out}/bin/newgidmap";
# File capabilities instead of setuid root, mirroring shadow's
# own --with-fcaps install mode and what Arch/Fedora/Debian ship.
# The kernel only requires CAP_SETUID/CAP_SETGID over the parent
# userns to write a multi-line /proc/<pid>/[ug]id_map.
newuidmap = mkCapRoot "cap_setuid+ep" "${cfg.package.out}/bin/newuidmap";
newgidmap = mkCapRoot "cap_setgid+ep" "${cfg.package.out}/bin/newgidmap";
}
// lib.optionalAttrs config.users.mutableUsers {
chsh = mkSetuidRoot "${cfg.package.out}/bin/chsh";
+2 -2
View File
@@ -179,10 +179,10 @@ in
}" />
<!-- specify the binaries to be called -->
<!-- the comma in front of the options is necessary for empty options -->
<fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ,${
<fusemount>${pkgs.fuse3}/bin/mount.fuse3 %(VOLUME) %(MNTPT) -o ,${
lib.concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])
}'</fusemount>
<fuseumount>${pkgs.fuse}/bin/fusermount -u %(MNTPT)</fuseumount>
<fuseumount>${pkgs.fuse3}/bin/fusermount3 -u %(MNTPT)</fuseumount>
<!-- the comma in front of the options is necessary for empty options -->
<cryptmount>${pkgs.pam_mount}/bin/mount.crypt -o ,${
lib.concatStringsSep "," (cfg.cryptMountOptions ++ [ "%(OPTIONS)" ])
@@ -322,6 +322,9 @@ in
description = "Run user-specific NixOS activation";
script = config.system.userActivationScripts.script;
unitConfig.ConditionUser = "!@system";
# switch-to-configuration restarts this explicitly on every switch.
restartIfChanged = false;
serviceConfig.RemainAfterExit = true;
serviceConfig.Type = "oneshot";
wantedBy = [ "default.target" ];
};
+1 -1
View File
@@ -41,7 +41,7 @@ in
serviceConfig = {
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /var/lib/lxcfs";
ExecStart = "${pkgs.lxcfs}/bin/lxcfs /var/lib/lxcfs";
ExecStopPost = "-${pkgs.fuse}/bin/fusermount -u /var/lib/lxcfs";
ExecStopPost = "-${pkgs.fuse3}/bin/fusermount3 -u /var/lib/lxcfs";
KillMode = "process";
Restart = "on-failure";
};
@@ -3,10 +3,10 @@
e2fsprogs,
iproute2,
lib,
mypy,
ruff,
setuptools,
systemd,
ty,
}:
buildPythonApplication {
@@ -35,13 +35,13 @@ buildPythonApplication {
doCheck = true;
nativeCheckInputs = [
mypy
ruff
ty
];
checkPhase = ''
echo -e "\x1b[32m## run mypy\x1b[0m"
mypy run_nspawn
echo -e "\x1b[32m## run ty\x1b[0m"
ty check --error-on-warning run_nspawn
echo -e "\x1b[32m## run ruff check\x1b[0m"
ruff check .
echo -e "\x1b[32m## run ruff format\x1b[0m"
+1 -2
View File
@@ -551,7 +551,7 @@ in
y = 768;
};
description = ''
The resolution of the virtual machine display.
The resolution of the virtual machine display (relevant only if virtualised machine uses grub bootloader).
'';
};
@@ -1379,7 +1379,6 @@ in
"-device usb-tablet,bus=usb-bus.0"
])
(mkIf pkgs.stdenv.hostPlatform.isAarch [
"-device virtio-gpu-pci"
"-device usb-ehci,id=usb0"
"-device usb-kbd"
"-device usb-tablet"
+1
View File
@@ -674,6 +674,7 @@ in
gobgpd = runTest ./gobgpd.nix;
gocd-agent = runTest ./gocd-agent.nix;
gocd-server = runTest ./gocd-server.nix;
gocryptfs = runTest ./gocryptfs.nix;
gokapi = runTest ./gokapi.nix;
gollum = runTest ./gollum.nix;
gonic = runTest ./gonic.nix;
+57
View File
@@ -0,0 +1,57 @@
{
name = "gocryptfs";
meta = {
maintainers = [ ];
};
nodes.machine =
{ pkgs, ... }:
{
environment.systemPackages = [
pkgs.gocryptfs
pkgs.openssl
];
specialisation.fstab-test.configuration = {
fileSystems."/plain" = {
device = "/encrypted";
fsType = "fuse.gocryptfs";
options = [
"nofail"
"allow_other"
"passfile=/tmp/password.txt"
];
};
};
};
testScript = ''
# Generate a password
machine.execute("openssl rand -base64 32 > /tmp/password.txt")
# Initialize an encrypted vault
machine.execute("mkdir -p /encrypted /plain")
machine.execute("gocryptfs -init /encrypted -passfile /password.txt -quiet")
# Open and mount vault
machine.execute("gocryptfs /encrypted /plain -passfile /tmp/password.txt -quiet")
machine.execute("echo test > /plain/data.txt")
machine.execute("echo test > /tmp/data.txt")
# Unmount
machine.execute("fusermount -u /plain")
# Switch to the specialisation
machine.succeed("/run/current-system/specialisation/fstab-test/bin/switch-to-configuration test")
# Wait for mount
machine.wait_for_unit("local-fs.target")
# Check data
machine.succeed("diff /plain/data.txt /tmp/data.txt")
'';
}
+22
View File
@@ -22,6 +22,8 @@
};
system.includeBuildDependencies = true;
# Needed so the offline build of the target config succeeds.
system.extraDependencies = [ pkgs.polkit-stdin-agent ];
virtualisation = {
cores = 2;
@@ -49,6 +51,11 @@
users.users.alice.extraGroups = [ "wheel" ];
users.users.bob.extraGroups = [ "wheel" ];
# Needed for --elevate=run0. NixOS's default polkit admin rule is
# `unix-group:wheel`, so bob (in wheel) can authenticate with his
# own password via polkit-stdin-agent.
system.tools.nixos-rebuild.enableRun0Elevation = true;
# Disable sudo for root to ensure sudo isn't called without `--sudo`
security.sudo.extraRules = lib.mkForce [
{
@@ -142,6 +149,7 @@
deployer.copy_from_host("${configFile "config-1-deployed"}", "/root/configuration-1.nix")
deployer.copy_from_host("${configFile "config-2-deployed"}", "/root/configuration-2.nix")
deployer.copy_from_host("${configFile "config-3-deployed"}", "/root/configuration-3.nix")
deployer.copy_from_host("${configFile "config-4-deployed"}", "/root/configuration-4.nix")
deployer.copy_from_host("${targetNetworkJSON}", "/root/target-network.json")
deployer.copy_from_host("${targetConfigJSON}", "/root/target-configuration.json")
@@ -168,6 +176,20 @@
target_hostname = deployer.succeed("ssh alice@target cat /etc/hostname").rstrip()
assert target_hostname == "config-3-deployed", f"{target_hostname=}"
with subtest("Deploy to bob@target with run0 and password"):
# polkit-stdin-agent registers an agent for systemd-run on the
# target and answers the PAM conversation with the password we
# supply locally. The agent is resolved on the target from
# <toplevel>/sw/bin (see Run0Elevator._remote_agent_argv).
deployer.send_chars("nixos-rebuild switch -I nixos-config=/root/configuration-4.nix --target-host bob@target --elevate=run0 --ask-elevate-password\n")
deployer.wait_until_tty_matches("1", "\\[run0\\] password for bob@target")
deployer.send_chars("${nodes.target.users.users.bob.password}\n")
deployer.wait_until_tty_matches("1", "Done. The new configuration is /nix/store/.*config-4-deployed")
target_hostname = deployer.succeed("ssh alice@target cat /etc/hostname").rstrip()
assert target_hostname == "config-4-deployed", f"{target_hostname=}"
# The target-arch agent is reachable at the stable sw/bin path.
target.succeed("test -x /run/current-system/sw/bin/polkit-stdin-agent")
with subtest("Deploy works with very long TMPDIR"):
tmp_dir = "/var/folder/veryveryveryveryverylongpathnamethatdoesnotworkwithcontrolpath"
deployer.succeed(f"mkdir -p {tmp_dir}")
+82 -3
View File
@@ -739,6 +739,22 @@ in
'';
};
# As above, but with reloadIfChanged: pass 2 must reload, not
# restart.
userServiceMigratedToNixosReloadOnly.configuration = {
imports = [ userServiceMigratedToNixosNoStop.configuration ];
systemd.user.services.migrated = {
reloadIfChanged = true;
serviceConfig.ExecReload = "${pkgs.coreutils}/bin/true";
};
};
# As above, but with restartIfChanged = false: pass 2 must skip it.
userServiceMigratedToNixosNoRestart.configuration = {
imports = [ userServiceMigratedToNixosNoStop.configuration ];
systemd.user.services.migrated.restartIfChanged = false;
};
no_inhibitors.configuration.system.switch.inhibitors = lib.mkForce { };
inhibitors.configuration.system.switch.inhibitors = lib.mkForce {
@@ -810,6 +826,15 @@ in
RemainAfterExit=true
ExecStart=${pkgs.runtimeShell} -c 'echo home > %t/migrated-owner'
'';
# Unit file placed in ~/.local/share/systemd/user (lower priority than
# /etc) to simulate a package-shipped unit.
dataMigratedUnit = pkgs.writeText "migrated.service" ''
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=${pkgs.runtimeShell} -c 'echo data > %t/migrated-owner'
'';
in
# python
''
@@ -1729,9 +1754,10 @@ in
out = switch_to_specialisation("${machine}", "simpleUserService")
user_systemctl("is-active usertest.service")
# No-op switch does nothing
# No-op switch leaves the test unit alone.
out = switch_to_specialisation("${machine}", "simpleUserService")
assert_lacks(out, "user units:")
assert_lacks(out, "usertest.service")
assert_contains(out, "restarting the following user units: nixos-activation.service")
# Modifying the unit stop-starts it (default stopIfChanged=true)
out = switch_to_specialisation("${machine}", "simpleUserServiceModified")
@@ -1748,7 +1774,7 @@ in
# reloadIfChanged=true reloads instead
out = switch_to_specialisation("${machine}", "simpleUserServiceReload")
assert_lacks(out, "stopping the following user units:")
assert_lacks(out, "restarting the following user units:")
assert_lacks(out, "restarting the following user units: usertest.service")
assert_contains(out, "reloading the following user units: usertest.service")
user_systemctl("is-active usertest.service")
@@ -1818,6 +1844,59 @@ in
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
assert_contains(out, "nixos")
# Pass 2 must honour reloadIfChanged.
switch_to_specialisation("${machine}", "")
machine.fail(f"sudo -u usertest {user_env} systemctl --user is-active migrated.service")
seed_home_unit()
out = switch_to_specialisation("${machine}", "userServiceMigratedToNixosReloadOnly")
assert_lacks(out, "restarting (post-activation) the following user units: migrated.service")
assert_contains(out, "reloading (post-activation) the following user units: migrated.service")
user_systemctl("is-active migrated.service")
# Reloaded only, so the home ExecStart never re-ran.
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
assert_contains(out, "home")
# Pass 2 must honour restartIfChanged = false.
switch_to_specialisation("${machine}", "")
machine.fail(f"sudo -u usertest {user_env} systemctl --user is-active migrated.service")
seed_home_unit()
out = switch_to_specialisation("${machine}", "userServiceMigratedToNixosNoRestart")
assert_lacks(out, "\nrestarting (post-activation) the following user units: migrated.service")
assert_contains(out, "NOT restarting (post-activation) the following user units: migrated.service")
user_systemctl("is-active migrated.service")
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
assert_contains(out, "home")
# Migration from a lower-priority search-path entry ($XDG_DATA_HOME
# here, standing in for ~/.nix-profile/share etc.). /etc outranks
# these, so pass 2 must restart onto the /etc definition.
switch_to_specialisation("${machine}", "")
machine.fail(f"sudo -u usertest {user_env} systemctl --user is-active migrated.service")
machine.succeed(
"sudo -u usertest mkdir -p ~usertest/.local/share/systemd/user",
"sudo -u usertest cp ${dataMigratedUnit} ~usertest/.local/share/systemd/user/migrated.service",
)
user_systemctl("daemon-reload")
user_systemctl("start migrated.service")
user_systemctl("is-active migrated.service")
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
assert_contains(out, "data")
out = user_systemctl("show -p FragmentPath migrated.service")
assert_contains(out, "/.local/share/systemd/user/migrated.service")
out = switch_to_specialisation("${machine}", "userServiceMigratedShadowed")
assert_contains(out, "restarting (post-activation) the following user units: migrated.service")
user_systemctl("is-active migrated.service")
out = user_systemctl("show -p FragmentPath migrated.service")
assert_contains(out, "/etc/systemd/user/migrated.service")
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
assert_contains(out, "nixos")
# Switching again must NOT touch it: /etc already had it, so it is
# not a candidate even though the lower-priority copy is still there.
out = switch_to_specialisation("${machine}", "userServiceMigratedShadowed")
assert_lacks(out, "migrated.service")
machine.succeed("sudo -u usertest rm -rf ~usertest/.local/share/systemd")
user_systemctl("daemon-reload")
# Units that remain shadowed by ~/.config must be left alone in both
# passes even though /etc now also defines them.
switch_to_specialisation("${machine}", "")
+11 -2
View File
@@ -13,12 +13,14 @@
isNormalUser = true;
};
systemd.user.tmpfiles.users.alice.rules = [ "r %h/file-to-remove" ];
specialisation.changed.configuration.system.userActivationScripts.bar = "true";
};
testScript = ''
def verify_user_activation_run_count(n):
machine.succeed(
'[[ "$(find /home/alice/ -name user-activation-ran.\\* | wc -l)" == %s ]]' % n
t.assertEqual(
n,
int(machine.succeed('find /home/alice/ -name user-activation-ran.\\* | wc -l').rstrip())
)
@@ -36,5 +38,12 @@
machine.succeed("/run/current-system/bin/switch-to-configuration test")
verify_user_activation_run_count(2)
machine.succeed("[[ ! -f /home/alice/file-to-remove ]] || false")
# Activation must not be killed while running.
machine.fail("journalctl -b _SYSTEMD_USER_UNIT=nixos-activation.service | grep -q 'code=killed'")
# Changed activation script: still exactly one run.
machine.succeed("/run/current-system/specialisation/changed/bin/switch-to-configuration test")
verify_user_activation_run_count(3)
machine.fail("journalctl -b _SYSTEMD_USER_UNIT=nixos-activation.service | grep -q 'code=killed'")
'';
}
@@ -32,6 +32,7 @@ pythonPackages.buildPythonApplication (finalAttrs: {
meta = {
description = "Mopidy extension for playing music from SoundCloud";
homepage = "https://github.com/mopidy/mopidy-soundcloud";
license = lib.licenses.mit;
maintainers = [ ];
};
@@ -1145,8 +1145,8 @@ let
mktplcRef = {
name = "vscode-database-client2";
publisher = "cweijan";
version = "8.4.6";
hash = "sha256-GBz0hS75VgfuGuHY/K/VHxp5sFptUCJaz/CXrm6wFPc=";
version = "8.4.7";
hash = "sha256-HiyLNVtdJgzwn6BSR4ojHOkLrQ49PhRQa4twst69j7Q=";
};
meta = {
description = "Database Client For Visual Studio Code";
@@ -1760,8 +1760,8 @@ let
mktplcRef = {
name = "foam-vscode";
publisher = "foam";
version = "0.40.4";
hash = "sha256-WqFIWt3c3XtdsXys+V4tQWxzDMefYOQ88MzTSPDHOKE=";
version = "0.42.0";
hash = "sha256-mk4ZgaBxLFPvrm3EU+hdidorhdWp7EGfRP0e/kARd1A=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/foam.foam-vscode/changelog";
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "basedpyright";
publisher = "detachhead";
version = "1.39.3";
hash = "sha256-uuWkSxjsY7ZL1QUwqkiwPTN8oGUktfm7/Hgv3Enmgqc=";
version = "1.39.6";
hash = "sha256-shxV0g1XDu7qjrGiwyHGpY2qBCJt23tz7SuDbm5AXws=";
};
meta = {
changelog = "https://github.com/detachhead/basedpyright/releases";
@@ -4,8 +4,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "fstar-vscode-assistant";
publisher = "FStarLang";
version = "0.24.0";
hash = "sha256-2XFisNp/TvkBNytzs56kdMnaZTX6f1qWp1k59uLwcuE=";
version = "0.25.0";
hash = "sha256-sya3P9Kn3DM/z5p8xF6TLEUPgrCs5+jgD89Y1KSJAgY=";
};
meta = {
description = "Interactive editing mode VS Code extension for F*";
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "ms-python";
name = "mypy-type-checker";
version = "2026.4.0";
hash = "sha256-N0zml16XSBwjGHzCR1L0W9WiSgqD/375VIQGpGfCkFE=";
version = "2026.6.0";
hash = "sha256-Sis9Tm5uWTyAIJnHvdh/dwOs580YprqDQ3XP8FhWvw0=";
};
meta = {
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "vhba";
version = "20250329";
version = "20260313";
src = fetchurl {
url = "mirror://sourceforge/cdemu/vhba-module-${finalAttrs.version}.tar.xz";
hash = "sha256-piog1yDd8M/lpTIo9FE9SY2JwurZ6a8LG2lZ/4EmB14=";
hash = "sha256-KTADv12dwrOG2w0F9ZXFVINVpTXW38Bv03n9mLsZAXQ=";
};
makeFlags = kernelModuleMakeFlags ++ [
@@ -6,13 +6,13 @@
}:
mkLibretroCore {
core = "yabause";
version = "0-unstable-2026-04-20";
version = "0-unstable-2026-05-30";
src = fetchFromGitHub {
owner = "libretro";
repo = "yabause";
rev = "7cb15b8f9eea5a6fa7cae34468a6989522bcba75";
hash = "sha256-UWZgt0vdjncM7JCzdSWa4XZMJBJ/pnk4QpSKz459Fq0=";
rev = "8926b0c6c347f8c5c755911ddb0ac695420ffbf8";
hash = "sha256-6MTUq1p3PWNwPqFmLu21BVOrHBl1koEQ98d9+B8qYq8=";
};
makefile = "Makefile";
@@ -264,6 +264,7 @@ lib.makeScope pkgs.newScope (
meta = {
broken = gimp.apiVersion != "2.0";
homepage = "https://github.com/lmanul/gimp-texturize";
};
};
@@ -321,6 +322,7 @@ lib.makeScope pkgs.newScope (
meta = {
broken = gimp.apiVersion != "2.0";
homepage = "https://github.com/carlobaldassi/gimp-lqr-plugin";
};
};
+1
View File
@@ -22,6 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Large lexicon for APE (~100,000 entries)";
homepage = "https://github.com/Attempto/Clex";
license = lib.licenses.gpl3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ yrashk ];
@@ -535,11 +535,11 @@
"vendorHash": null
},
"hashicorp_azurerm": {
"hash": "sha256-1WglgZrVUQXMLI/01QxhJ19Nv5+SdR3eEjOJ3PKEwCI=",
"hash": "sha256-DR68u61zP/eyllRkwNqKSXktAKjJJ0psXd9WWa2zA20=",
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
"owner": "hashicorp",
"repo": "terraform-provider-azurerm",
"rev": "v4.73.0",
"rev": "v4.75.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
meta = {
inherit (weechat.meta) platforms;
description = "This simple weechat plugin allows you to compose messages in your $EDITOR";
homepage = "https://github.com/keith/edit-weechat";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ eraserhd ];
};
@@ -109,6 +109,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Free distributed version control system";
homepage = "https://github.com/7c6f434c/monotone-mirror";
maintainers = [ lib.maintainers.raskin ];
platforms = lib.platforms.unix;
license = lib.licenses.gpl2Plus;
@@ -17,6 +17,7 @@ buildKodiAddon rec {
meta = {
description = "Addon that allows to manage bluetooth devices from within a Linux based Kodi";
homepage = "https://github.com/wastis/BluetoothManager";
platforms = lib.platforms.all;
maintainers = lib.teams.kodi.members;
license = lib.licenses.gpl3Plus;
@@ -25,6 +25,7 @@ buildKodiBinaryAddon rec {
meta = {
description = "Binary addon for raw joystick input";
homepage = "https://github.com/xbmc/peripheral.joystick";
platforms = lib.platforms.all;
license = lib.licenses.gpl2Only;
teams = [ lib.teams.kodi ];
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
];
meta = {
homepage = "https://github.com/xbmc/kodi-platform";
license = lib.licenses.gpl2Plus;
};
}
@@ -20,6 +20,7 @@ buildKodiBinaryAddon rec {
meta = {
description = "Binary addon for steam controller";
homepage = "https://github.com/kodi-game/peripheral.steamcontroller";
platforms = lib.platforms.all;
teams = [ lib.teams.kodi ];
license = lib.licenses.gpl2Only;
@@ -35,6 +35,7 @@ buildKodiBinaryAddon rec {
meta = {
description = "LibArchive Virtual Filesystem add-on for Kodi";
homepage = "https://github.com/xbmc/vfs.libarchive";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
teams = [ lib.teams.kodi ];
@@ -21,6 +21,7 @@ buildKodiBinaryAddon rec {
meta = {
description = "RAR archive Virtual Filesystem add-on for Kodi";
homepage = "https://github.com/xbmc/vfs.rar";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
teams = [ lib.teams.kodi ];
@@ -27,6 +27,7 @@ buildKodiBinaryAddon rec {
meta = {
description = "SFTP Virtual Filesystem add-on for Kodi";
homepage = "https://github.com/xbmc/vfs.sftp";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
teams = [ lib.teams.kodi ];
+3
View File
@@ -19,6 +19,9 @@ let
buildInputs = [ vdr ];
preConfigure = "cd PLUGINS/src/${name}";
installFlags = [ "DESTDIR=$(out)" ];
meta = {
homepage = "https://git.tvdr.de/?p=vdr.git";
};
};
in
{
@@ -1,18 +1,15 @@
rec {
cat = {
executable = pkgs: "cat";
ubootName = "none";
extension = ".cpio";
};
gzip = {
executable = pkgs: "${pkgs.gzip}/bin/gzip";
defaultArgs = [ "-9n" ];
ubootName = "gzip";
extension = ".gz";
};
bzip2 = {
executable = pkgs: "${pkgs.bzip2}/bin/bzip2";
ubootName = "bzip2";
extension = ".bz2";
};
xz = {
@@ -29,24 +26,20 @@ rec {
"--check=crc32"
"--lzma1=dict=512KiB"
];
ubootName = "lzma";
extension = ".lzma";
};
lz4 = {
executable = pkgs: "${pkgs.lz4}/bin/lz4";
defaultArgs = [ "-l" ];
ubootName = "lz4";
extension = ".lz4";
};
lzop = {
executable = pkgs: "${pkgs.lzop}/bin/lzop";
ubootName = "lzo";
extension = ".lzo";
};
zstd = {
executable = pkgs: "${pkgs.zstd}/bin/zstd";
defaultArgs = [ "-10" ];
ubootName = "zstd";
extension = ".zst";
};
pigz = gzip // {
+9 -29
View File
@@ -4,14 +4,13 @@ let
# from it.
compressors = import ./initrd-compressor-meta.nix;
# Get the basename of the actual compression program from the whole
# compression command, for the purpose of guessing the u-boot
# compression command, for the purpose of guessing the
# compression type and filename extension.
compressorName = fullCommand: builtins.elemAt (builtins.match "([^ ]*/)?([^ ]+).*" fullCommand) 1;
in
{
stdenvNoCC,
cpio,
ubootTools,
lib,
pkgsBuildHost,
makeInitrdNGTool,
@@ -57,22 +56,13 @@ in
# symlinks to store paths.
prepend ? [ ],
# Whether to wrap the initramfs in a u-boot image.
makeUInitrd ? stdenvNoCC.hostPlatform.linux-kernel.target == "uImage",
# If generating a u-boot image, the architecture to use. The default
# guess may not align with u-boot's nomenclature correctly, so it can
# be overridden.
# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list.
uInitrdArch ? stdenvNoCC.hostPlatform.ubootArch,
# The name of the compression, as recognised by u-boot.
# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list.
# If this isn't guessed, you may want to complete the metadata above and send a PR :)
uInitrdCompression ?
_compressorMeta.ubootName
or (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression"),
# Deprecated; remove in 27.05.
makeUInitrd ? null,
uInitrdArch ? null,
uInitrdCompression ? null,
}:
assert lib.assertMsg (makeUInitrd == null && uInitrdArch == null && uInitrdCompression == null)
"makeInitrdNg: UBoot legacy image support has been removed as it is deprecated upstream and ARMv5 kernels no longer default to uImage";
stdenvNoCC.mkDerivation (finalAttrs: {
__structuredAttrs = true;
@@ -83,11 +73,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
inherit
name
extension
makeUInitrd
uInitrdArch
prepend
;
${if makeUInitrd then "uInitrdCompression" else null} = uInitrdCompression;
compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}";
contentsJSON = builtins.toJSON contents;
@@ -95,8 +82,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeBuildInputs = [
makeInitrdNGTool
cpio
]
++ lib.optional makeUInitrd ubootTools;
];
buildCommand = ''
mkdir -p ./root/{run,tmp,var/empty}
@@ -109,13 +95,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
done
(cd root && find . -print0 | sort -z | cpio --quiet -o -H newc -R +0:+0 --reproducible --null | eval -- $compress >> "$out/initrd")
if [ -n "$makeUInitrd" ]; then
mkimage -A "$uInitrdArch" -O linux -T ramdisk -C "$uInitrdCompression" -d "$out/initrd" $out/initrd.img
# Compatibility symlink
ln -sf "initrd.img" "$out/initrd"
else
ln -s "initrd" "$out/initrd$extension"
fi
ln -s "initrd" "$out/initrd$extension"
'';
passthru = {
+9 -24
View File
@@ -10,18 +10,16 @@
# of algorithms.
let
# Some metadata on various compression programs, relevant to naming
# the initramfs file and, if applicable, generating a u-boot image
# from it.
# the initramfs file.
compressors = import ./initrd-compressor-meta.nix;
# Get the basename of the actual compression program from the whole
# compression command, for the purpose of guessing the u-boot
# compression command, for the purpose of guessing the
# compression type and filename extension.
compressorName = fullCommand: builtins.elemAt (builtins.match "([^ ]*/)?([^ ]+).*" fullCommand) 1;
in
{
stdenvNoCC,
cpio,
ubootTools,
lib,
pkgsBuildHost,
# Name of the derivation (not of the resulting file!)
@@ -65,22 +63,13 @@ in
# symlinks to store paths.
prepend ? [ ],
# Whether to wrap the initramfs in a u-boot image.
makeUInitrd ? stdenvNoCC.hostPlatform.linux-kernel.target or "dummy" == "uImage",
# If generating a u-boot image, the architecture to use. The default
# guess may not align with u-boot's nomenclature correctly, so it can
# be overridden.
# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list.
uInitrdArch ? stdenvNoCC.hostPlatform.linuxArch,
# The name of the compression, as recognised by u-boot.
# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list.
# If this isn't guessed, you may want to complete the metadata above and send a PR :)
uInitrdCompression ?
_compressorMeta.ubootName
or (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression"),
# Deprecated; remove in 27.05.
makeUInitrd ? null,
uInitrdArch ? null,
uInitrdCompression ? null,
}:
assert lib.assertMsg (makeUInitrd == null && uInitrdArch == null && uInitrdCompression == null)
"makeInitrd: UBoot legacy image support has been removed as it is deprecated upstream and ARMv5 kernels no longer default to uImage";
stdenvNoCC.mkDerivation (finalAttrs: {
__structuredAttrs = true;
@@ -91,18 +80,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
inherit
name
extension
makeUInitrd
uInitrdArch
prepend
;
${if makeUInitrd then "uInitrdCompression" else null} = uInitrdCompression;
builder = ./make-initrd.sh;
nativeBuildInputs = [
cpio
]
++ lib.optional makeUInitrd ubootTools;
];
compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}";
+1 -7
View File
@@ -36,10 +36,4 @@ done
(cd root && find * .[^.*] -exec touch -h -d '@1' '{}' +)
(cd root && find * .[^.*] -print0 | sort -z | cpio --quiet -o -H newc -R +0:+0 --reproducible --null | eval -- $compress >> "$out/initrd")
if [ -n "$makeUInitrd" ]; then
mkimage -A "$uInitrdArch" -O linux -T ramdisk -C "$uInitrdCompression" -d "$out/initrd" $out/initrd.img
# Compatibility symlink
ln -sf "initrd.img" "$out/initrd"
else
ln -s "initrd" "$out/initrd$extension"
fi
ln -s "initrd" "$out/initrd$extension"
@@ -77,6 +77,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Silly speed painting game";
homepage = "https://github.com/SimonLarsen/90-Second-Portraits";
mainProgram = "90secondportraits";
platforms = love.meta.platforms;
license = with lib.licenses; [
+1
View File
@@ -44,6 +44,7 @@ stdenv.mkDerivation {
meta = {
description = "6DoF Head tracking software";
homepage = "https://github.com/mdk97/aitrack-linux";
mainProgram = "aitrack";
maintainers = with lib.maintainers; [ ck3d ];
platforms = lib.platforms.linux;
+1
View File
@@ -50,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Library used by KDE finance applications";
homepage = "https://invent.kde.org/office/alkimia";
mainProgram = "onlinequoteseditor5";
longDescription = ''
Alkimia is the infrastructure for common storage and business
+3 -3
View File
@@ -5,16 +5,16 @@
}:
buildGoModule (finalAttrs: {
pname = "alpaca-proxy";
version = "2.0.12";
version = "2.0.13";
src = fetchFromGitHub {
owner = "samuong";
repo = "alpaca";
tag = "v${finalAttrs.version}";
hash = "sha256-Yz90kJGyf2iA3LCj9d/oG5rLVUZVI//cqI6w67iV9Tc=";
hash = "sha256-dzTWruf/1eU34UeLzZkTSxbAqhCfxRuXMPYuKPGImUc=";
};
vendorHash = "sha256-3A88gc8j0OrxBIAFBNlz3Np5CV9xpwwIDCnnfXyBj4Q=";
vendorHash = "sha256-pxCMomMmHqPWdjLi7C4LfcjbgdjMzJVvyhOd1YmHWTU=";
ldflags = [
"-s"
+2 -2
View File
@@ -7,11 +7,11 @@
let
pname = "apidog";
version = "2.8.30";
version = "2.8.32";
src = fetchurl {
url = "https://file-assets.apidog.com/download/${version}/Apidog-${version}.AppImage";
hash = "sha256-h5h/zhUbnYYtYVyWySLZk3QISd4VWs5Gl/JdhgMJKh8=";
hash = "sha256-7MaDC9VsiC+iHe83Vd4vDJQPoDLwUFmCu3R1OwVcTjM=";
};
appimageContents = appimageTools.extract {
+2 -2
View File
@@ -23,13 +23,13 @@
}:
gcc15Stdenv.mkDerivation (finalAttrs: {
pname = "aquamarine";
version = "0.11.0";
version = "0.12.0";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "aquamarine";
tag = "v${finalAttrs.version}";
hash = "sha256-nGiqEpbQK/tg7Mzyb8kIik9uDcm3cInWDcHRquFAOS4=";
hash = "sha256-TtAhxedbRAl1u6OyT+4eRxZ417G2NMJNoqEbIhjvWo0=";
};
nativeBuildInputs = [
+1
View File
@@ -38,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives";
homepage = "https://git.sr.ht/~nabijaczleweli/archivemount-ng";
changelog = "https://git.sr.ht/~nabijaczleweli/archivemount-ng/refs/${finalAttrs.version}";
mainProgram = "archivemount";
license = [
+1
View File
@@ -31,6 +31,7 @@ stdenv.mkDerivation {
meta = {
description = "Argument Parser for C++";
homepage = "https://github.com/Grumbel/argpp";
maintainers = [ lib.maintainers.SchweGELBin ];
platforms = lib.platforms.linux;
license = lib.licenses.free;
@@ -38,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Replacement for the SCCP channel driver in Asterisk";
homepage = "https://github.com/chan-sccp/chan-sccp";
license = lib.licenses.gpl1Only;
maintainers = with lib.maintainers; [ das_j ];
# https://github.com/chan-sccp/chan-sccp/issues/609
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "augustus-go";
version = "0.0.8";
version = "0.0.10";
src = fetchFromGitHub {
owner = "praetorian-inc";
repo = "augustus";
tag = "v${finalAttrs.version}";
hash = "sha256-yC7Wxx7PCWLpIMdXieks7oTdW5Ot6e6zIJHnRyZUOlo=";
hash = "sha256-Lh0N2wWTPCsWWaiIcntCqeMIo9ZPGhMEwy0pP42iLzY=";
};
vendorHash = "sha256-4PQX87yICvP6h4IPjFTWnhbftPBx53im95V0oiL3v6E=";
vendorHash = "sha256-LPBv1i2F5hgJBXBcuZiBwgY0S5OGi0B9Nmy488mbaBQ=";
ldflags = [ "-s" ];
+1
View File
@@ -28,6 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "BACnet open source protocol stack for embedded systems, Linux, and Windows";
homepage = "https://github.com/bacnet-stack/bacnet-stack";
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ WhittlesJr ];
+1
View File
@@ -45,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Set of network-related (mostly VPN-related) tools";
homepage = "https://github.com/ambrop72/badvpn";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ raskin ];
platforms = lib.platforms.linux;
+1
View File
@@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Yet another build manager";
homepage = "https://github.com/matricks/bam";
mainProgram = "bam";
maintainers = with lib.maintainers; [
raskin
+1
View File
@@ -46,6 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Bash unit testing enterprise edition framework for professionals";
homepage = "https://github.com/bash-unit/bash_unit";
maintainers = with lib.maintainers; [ pamplemousse ];
platforms = lib.platforms.all;
license = lib.licenses.gpl3Plus;
+1
View File
@@ -32,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Extremely fast and small background setter for X";
homepage = "https://github.com/Gottox/bgs";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ pSub ];
+2 -2
View File
@@ -11,12 +11,12 @@
let
bigpemu-unwrapped = stdenv.mkDerivation rec {
pname = "BigPEmu";
version = "1.22";
version = "1.221";
src = fetchurl {
url = "https://www.richwhitehouse.com/jaguar/builds/BigPEmu_Linux64_v${
builtins.replaceStrings [ "." ] [ "" ] version
}.tar.gz";
hash = "sha256-z1r04qdZ6LNqGb3HwpCMeyKP6vYJz2hAVsIyHAfJsbU=";
hash = "sha256-wP9hDyHV9VwBxATvmR2J92mls7iTyFcMAzvO9EEh7lc=";
};
installPhase = ''
+1
View File
@@ -31,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Udev helper for naming devices per BIOS names";
homepage = "https://github.com/dell/biosdevname";
license = lib.licenses.gpl2Only;
platforms = [
"x86_64-linux"
+1
View File
@@ -36,6 +36,7 @@ buildGoModule {
meta = {
description = "Mount an Azure Blob storage as filesystem through FUSE";
homepage = "https://github.com/Azure/azure-storage-fuse";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jbgi ];
platforms = lib.platforms.linux;
+3 -3
View File
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "boring";
version = "0.14.0";
version = "0.15.0";
src = fetchFromGitHub {
owner = "alebeck";
repo = "boring";
tag = "v${finalAttrs.version}";
hash = "sha256-cyRy7lF2wGupzDnW4zPKEuM0X0aaHrWbF/3p13xb2DA=";
hash = "sha256-WdohrSeq2N1zDQlYnwIMn1FF3IIb3zAiLSuOOf2GioU=";
};
nativeBuildInputs = [
@@ -26,7 +26,7 @@ buildGoModule (finalAttrs: {
subPackages = [ "cmd/boring" ];
vendorHash = "sha256-4YU0l2YhlMQzcKSMhXt3oEeCk87Yu90esiPelRs5/OQ=";
vendorHash = "sha256-yjqJ7G9n3c1ABLWynswzLP7B6bSwH1dIYKfVZqJX30g=";
ldflags = [
"-s"
+1
View File
@@ -23,6 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Boxing primitive types in C++";
homepage = "https://github.com/contour-terminal/boxed-cpp";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.moni ];
+2 -2
View File
@@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "bpftrace";
version = "0.25.1";
version = "0.26.0";
src = fetchFromGitHub {
owner = "bpftrace";
repo = "bpftrace";
rev = "v${version}";
hash = "sha256-nVBIS6cgCY9ZhzVrWBY6hXI0se9zAWMKnvHuJap3x3c=";
hash = "sha256-NYMMQKOWCLbECQX1FPYaLcQyO3H+LHCw02bF1sWsMuY=";
};
buildInputs = with llvmPackages; [
+2 -2
View File
@@ -21,11 +21,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "btrfs-progs";
version = "6.19.1";
version = "7.0";
src = fetchurl {
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${finalAttrs.version}.tar.xz";
hash = "sha256-uyfh7FTnw8C3suWW+FOnPAej1y8hvJQEIHPCTb8EV5Y=";
hash = "sha256-wobWh2y81yMnoLQX5M/SgDU+wj43tUn9vNeACoMtmpk=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "capstone";
version = "5.0.7";
version = "5.0.9";
src = fetchFromGitHub {
owner = "capstone-engine";
repo = "capstone";
rev = finalAttrs.version;
hash = "sha256-+6QReHZK+iIXspizy6Kvk7cj016HOKgiaKSaP4h7mao=";
hash = "sha256-uAiiKWKGjEATPE0Xc3g+aOLCz5ffIlDmf+7jaGwaZ4I=";
};
cmakeFlags = [
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "chroma";
version = "2.25.0";
version = "2.26.1";
src = fetchFromGitHub {
owner = "alecthomas";
repo = "chroma";
tag = "v${finalAttrs.version}";
hash = "sha256-K2r863R1ckroKVsxMXZanxfTnMrkFtch1ZFYLUb0mMc=";
hash = "sha256-kOhPaiqtFU3H43jz+GjfOOIVEy5acpP9SwQ1/2xsMQc=";
};
vendorHash = "sha256-lamMRKrGF0b5mfXMCsQid/UO6AyuKryJX7cKIRJho1c=";
vendorHash = "sha256-mPB7qPPMIQLjmyN2T7qX/X1Ip0E4X0jNv5h+UfVEHrY=";
modRoot = "./cmd/chroma";
+1
View File
@@ -23,6 +23,7 @@ buildGoModule {
meta = {
description = "Like grep but for IPv4 CIDRs";
homepage = "https://github.com/tomdoherty/cidrgrep";
mainProgram = "cidrgrep";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ das_j ];
+1
View File
@@ -59,6 +59,7 @@ pkgs.stdenv.mkDerivation {
meta = {
description = "C library that implements reading and writing the KDL Document Language";
homepage = "https://github.com/tjol/ckdl";
license = lib.licenses.mit;
platforms = lib.platforms.all;
};
+1
View File
@@ -56,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = {
homepage = "https://github.com/voldikss/coc-extensions";
license = lib.licenses.mit;
};
})
+1
View File
@@ -37,6 +37,7 @@ stdenv.mkDerivation {
buildInputs = [ mono ];
meta = {
description = "Bitmap generation from a single example with convolutions and MCMC";
homepage = "https://github.com/mxgmn/ConvChain";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.raskin ];
platforms = lib.platforms.linux;
+1
View File
@@ -37,6 +37,7 @@ crystal.buildCrystalPackage rec {
meta = {
description = "Utility to convert Crystal's shard.lock files to a Nix file";
homepage = "https://github.com/nix-community/crystal2nix";
mainProgram = "crystal2nix";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
+2 -1
View File
@@ -10,7 +10,7 @@ stdenv.mkDerivation (finalAttrs: {
version = "1.3.0";
src = fetchFromGitHub {
owner = "jakcron";
owner = "3DSGuy";
repo = "Project_CTR";
rev = "ctrtool-v${finalAttrs.version}";
sha256 = "GvEzv97DqCsaDWVqDpajQRWYe+WM8xCYmGE0D3UcSrM=";
@@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
license = lib.licenses.mit;
description = "Tool to extract data from a 3ds rom";
homepage = "https://github.com/3DSGuy/Project_CTR";
platforms = with lib.platforms; linux ++ darwin;
maintainers = with lib.maintainers; [ marius851000 ];
mainProgram = "ctrtool";
@@ -258,6 +258,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Debian package maintenance scripts";
homepage = "https://salsa.debian.org/debian/devscripts";
license = lib.licenses.free; # Mix of public domain, Artistic+GPL, GPL1+, GPL2+, GPL3+, and GPL2-only... TODO
maintainers = with lib.maintainers; [ raskin ];
platforms = lib.platforms.unix;
+1
View File
@@ -61,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Structural variant caller for mapped DNA sequenced data";
homepage = "https://github.com/dellytools/delly";
mainProgram = "delly";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
@@ -25,6 +25,7 @@ buildDotnetModule rec {
meta = {
description = "Steam depot downloader utilizing the SteamKit2 library";
homepage = "https://github.com/SteamRE/DepotDownloader";
changelog = "https://github.com/SteamRE/DepotDownloader/releases/tag/DepotDownloader_${version}";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.babbaj ];
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dhcpcd";
version = "10.3.1";
version = "10.3.2";
src = fetchFromGitHub {
owner = "NetworkConfiguration";
repo = "dhcpcd";
rev = "v${finalAttrs.version}";
sha256 = "sha256-L2rR6/qMHWVth2GR3VAoBZmhA6lmCLddbi0VvEG5r70=";
sha256 = "sha256-tJV533j/nQT/PP5KVPJCgTo0Lu8NNMIGnJBvYUG8ufw=";
};
nativeBuildInputs = [ pkg-config ];
+1
View File
@@ -48,6 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "I/O forwarding server that implements a variant of the 9P protocol";
homepage = "https://github.com/chaos/diod";
maintainers = with lib.maintainers; [ rnhmjoj ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
+1
View File
@@ -34,6 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Overlay FUSE filesystem that introduces non-determinism into filesystem metadata";
homepage = "https://salsa.debian.org/reproducible-builds/disorderfs";
mainProgram = "disorderfs";
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
+1
View File
@@ -50,6 +50,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
This tool suite powers the Web-based analysis available at https://dnsviz.net/
'';
homepage = "https://github.com/dnsviz/dnsviz";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ jojosch ];
};
+5 -1
View File
@@ -16,5 +16,9 @@ buildDartApplication {
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
meta.mainProgram = "domine";
meta = {
homepage = "https://github.com/breitburg/domine";
mainProgram = "domine";
};
}
+1
View File
@@ -31,5 +31,6 @@ buildGoModule rec {
maintainers = with lib.maintainers; [ techknowlogick ];
license = lib.licenses.asl20;
description = "Command line client for the Drone continuous integration server";
homepage = "https://github.com/harness/drone-cli";
};
}
+1
View File
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Duck-themed action puzzle video game";
homepage = "https://github.com/SimonLarsen/duckmarines";
platforms = love.meta.platforms;
hydraPlatforms = [ ];
license = with lib.licenses; [
+1
View File
@@ -53,6 +53,7 @@ stdenv.mkDerivation {
longDescription = ''
Dynamic Disnix is a (very experimental!) prototype extension framework for Disnix supporting dynamic (re)deployment of service-oriented systems.
'';
homepage = "https://github.com/svanderburg/dydisnix";
license = lib.licenses.lgpl21Plus;
maintainers = [ lib.maintainers.tomberek ];
platforms = lib.platforms.unix;
+1
View File
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/humblepenguinn/envio";
changelog = "https://github.com/humblepenguinn/envio/blob/v${finalAttrs.version}/CHANGELOG.md";
description = "Modern and secure CLI tool for managing environment variables";
mainProgram = "envio";
+47
View File
@@ -0,0 +1,47 @@
{
lib,
fetchFromGitHub,
pkg-config,
rustPlatform,
sqlite,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "essh";
version = "0.2.8";
src = fetchFromGitHub {
owner = "matthart1983";
repo = "essh";
tag = "v${finalAttrs.version}";
hash = "sha256-njBhA3CSTAlWjcgY3y+hvl19By2QGy2tHP8+FxgycIA=";
};
__structuredAttrs = true;
cargoHash = "sha256-TlvUdlKnRA/L5oePn+YWum1wy3ktHFuXP5V+nH2QNnc=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ sqlite ];
nativeCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = [ "-V" ];
checkFlags = [
"--skip=mock_ssh_server_drives_real_connect_flow_end_to_end"
];
meta = {
description = "SSH client to manage connections, keys and sessions";
homepage = "https://github.com/matthart1983/essh";
changelog = "https://github.com/matthart1983/essh/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "essh";
};
})
+1
View File
@@ -66,6 +66,7 @@ stdenv.mkDerivation {
meta = {
description = "Input event device header files for FreeBSD";
homepage = "https://cgit.freebsd.org/ports";
maintainers = with lib.maintainers; [ qyliss ];
platforms = lib.platforms.freebsd;
license = lib.licenses.gpl2Only;
+1
View File
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Simple tool for input event debugging";
homepage = "https://gitlab.freedesktop.org/libevdev/evtest";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.bjornfor ];
+1
View File
@@ -42,6 +42,7 @@ buildGoModule (finalAttrs: {
meta = {
description = "Interactive command line expense logger";
homepage = "https://github.com/manojkarthick/expenses";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.manojkarthick ];
mainProgram = "expenses";
+1
View File
@@ -37,6 +37,7 @@ stdenv.mkDerivation {
meta = {
description = "Programming language with macros and syntax at once";
homepage = "https://github.com/falconpl/falcon";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ pSub ];
platforms = with lib.platforms; unix;
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "figurine";
version = "2.0.0";
version = "2.1.1";
src = fetchFromGitHub {
owner = "arsham";
repo = "figurine";
rev = "v${finalAttrs.version}";
hash = "sha256-U25nbXr8SuSgMq1Nqk/7Ci4tKoWAyccv8j4aTIEox3k=";
hash = "sha256-5UCvC3gweOqEzJdTob0mgmljMneYZ4m3G9SD03Xg9tM=";
};
vendorHash = "sha256-CdiHPN0zfOedsz2M6JWFMQpG70vxLbKj//WkKyN58AQ=";
vendorHash = "sha256-4A40TbUeqsw7RHO/1qbAURE1ntarh2GmtPgE7dglGoc=";
ldflags = [
"-s"
+1
View File
@@ -21,6 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Lightweight audio filtering library made from webrtc code";
homepage = "https://github.com/irungentoo/filter_audio";
license = lib.licenses.bsd3;
maintainers = [ ];
platforms = lib.platforms.all;
+1
View File
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
meta = {
description = "Tool for visualizing and communicating the errors in rendered images";
homepage = "https://github.com/NVlabs/flip";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ zmitchell ];
+1
View File
@@ -33,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Lattice algorithms using floating-point arithmetic";
homepage = "https://github.com/fplll/fplll";
changelog = [
# Some release notes are added to the github tags, though they are not
# always complete.
@@ -32,6 +32,7 @@ stdenv.mkDerivation {
];
meta = {
description = "Lattice algorithms using floating-point arithmetic";
homepage = "https://github.com/fplll/fplll";
license = lib.licenses.lgpl21Plus;
maintainers = [ lib.maintainers.raskin ];
platforms = lib.platforms.linux;
+1
View File
@@ -35,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Gameboy sound player";
homepage = "https://github.com/mmitch/gbsplay";
license = lib.licenses.gpl1Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ sigmanificient ];
+2 -2
View File
@@ -16,13 +16,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "gearboy";
version = "3.8.4";
version = "3.8.6";
src = fetchFromGitHub {
owner = "drhelius";
repo = "Gearboy";
tag = finalAttrs.version;
hash = "sha256-wgiUHOL55P9N/wXMy8ZOPq4KcAomPJoWEwukXuYRbGo=";
hash = "sha256-HdTypXuIVMl3y83RbjNviAtgl2KwCU+faI6ZcG2P/LY=";
};
__structuredAttrs = true;
+1
View File
@@ -40,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Collection of point, size and rect classes";
homepage = "https://github.com/Grumbel/geomcpp";
maintainers = [ lib.maintainers.SchweGELBin ];
platforms = lib.platforms.linux;
license = lib.licenses.free;

Some files were not shown because too many files have changed in this diff Show More