Merge staging-next into staging
This commit is contained in:
@@ -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 U‐Boot 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 U‐Boot 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.
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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 U‐Boot 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)
|
||||
|
||||
|
||||
@@ -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
|
||||
]
|
||||
);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,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}")
|
||||
|
||||
@@ -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}", "")
|
||||
|
||||
@@ -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";
|
||||
|
||||
+2
-2
@@ -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 = {
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 // {
|
||||
|
||||
@@ -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: U‐Boot 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 = {
|
||||
|
||||
@@ -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: U‐Boot 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}";
|
||||
|
||||
|
||||
@@ -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; [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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; [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -56,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/voldikss/coc-extensions";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
|
||||
@@ -16,5 +16,9 @@ buildDartApplication {
|
||||
};
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
meta.mainProgram = "domine";
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/breitburg/domine";
|
||||
mainProgram = "domine";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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; [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user