staging-nixos merge for 2026-07-31 (#547573)

This commit is contained in:
Maximilian Bosch
2026-07-31 12:28:05 +00:00
committed by GitHub
23 changed files with 207 additions and 104 deletions
@@ -660,25 +660,22 @@ class BaseMachine(ABC):
def copy_from_machine(self, source: str, target_dir: str = "") -> None:
"""Copy a file from the machine (specified by an in-machine source path) to a path
relative to `$out`. The file is copied via the `shared_dir` shared among
all the machines (using a temporary directory).
all the machines.
"""
# Compute the source, target, and intermediate shared file names
vm_src = Path(source)
with tempfile.TemporaryDirectory(dir=self.shared_dir) as shared_td:
shared_temp = Path(shared_td)
vm_shared_temp = Path("/tmp/shared") / shared_temp.name
vm_intermediate = vm_shared_temp / vm_src.name
intermediate = shared_temp / vm_src.name
# Copy the file to the shared directory inside machines
self.succeed(make_command(["mkdir", "-p", vm_shared_temp]))
self.succeed(make_command(["cp", "-r", vm_src, vm_intermediate]))
abs_target = self.out_dir / target_dir / vm_src.name
abs_target.parent.mkdir(exist_ok=True, parents=True)
# Copy the file from the shared directory outside machines
if intermediate.is_dir():
shutil.copytree(intermediate, abs_target)
else:
shutil.copy(intermediate, abs_target)
vm_intermediate = Path("/tmp/shared") / target_dir / vm_src.name
intermediate = self.shared_dir / target_dir / vm_src.name
# Copy the file to the shared directory inside machines
self.succeed(make_command(["mkdir", "-p", vm_intermediate.parent]))
self.succeed(make_command(["cp", "-r", vm_src, vm_intermediate]))
abs_target = self.out_dir / target_dir / vm_src.name
abs_target.parent.mkdir(exist_ok=True, parents=True)
# Copy the file from the shared directory outside machines
if intermediate.is_dir():
shutil.copytree(intermediate, abs_target)
else:
shutil.copy(intermediate, abs_target)
@warnings.deprecated("Use copy_from_machine() instead")
def copy_from_vm(self, source: str, target_dir: str = "") -> None:
+12 -13
View File
@@ -14,7 +14,6 @@ let
concatStringsSep
mapAttrsToList
toLower
optionalString
literalExpression
match
mkRenamedOptionModule
@@ -34,11 +33,12 @@ let
osReleaseContents =
let
isNixos = cfg.distroId == "nixos";
optionalAttr = cond: attr: if cond then attr else null;
in
{
NAME = "${cfg.distroName}";
ID = "${cfg.distroId}";
ID_LIKE = optionalString (!isNixos) "nixos";
${optionalAttr (!isNixos) "ID_LIKE"} = "nixos";
VENDOR_NAME = cfg.vendorName;
VERSION = "${cfg.release} (${cfg.codeName})";
VERSION_CODENAME = toLower cfg.codeName;
@@ -47,17 +47,16 @@ let
PRETTY_NAME = "${cfg.distroName} ${cfg.release} (${cfg.codeName})";
CPE_NAME = "cpe:/o:${cfg.vendorId}:${cfg.distroId}:${cfg.release}";
LOGO = "nix-snowflake";
HOME_URL = optionalString isNixos "https://nixos.org/";
VENDOR_URL = optionalString isNixos "https://nixos.org/";
DOCUMENTATION_URL = optionalString isNixos "https://nixos.org/learn.html";
SUPPORT_URL = optionalString isNixos "https://nixos.org/community.html";
BUG_REPORT_URL = optionalString isNixos "https://github.com/NixOS/nixpkgs/issues";
ANSI_COLOR = optionalString isNixos "0;38;2;126;186;228";
IMAGE_ID = optionalString (config.system.image.id != null) config.system.image.id;
${if config.system.image.version != null then "IMAGE_VERSION" else null} =
config.system.image.version;
VARIANT = optionalString (cfg.variantName != null) cfg.variantName;
VARIANT_ID = optionalString (cfg.variant_id != null) cfg.variant_id;
${optionalAttr isNixos "HOME_URL"} = "https://nixos.org/";
${optionalAttr isNixos "VENDOR_URL"} = "https://nixos.org/";
${optionalAttr isNixos "DOCUMENTATION_URL"} = "https://nixos.org/learn.html";
${optionalAttr isNixos "SUPPORT_URL"} = "https://nixos.org/community.html";
${optionalAttr isNixos "BUG_REPORT_URL"} = "https://github.com/NixOS/nixpkgs/issues";
${optionalAttr isNixos "ANSI_COLOR"} = "0;38;2;126;186;228";
${optionalAttr (config.system.image.id != null) "IMAGE_ID"} = config.system.image.id;
${optionalAttr (config.system.image.version != null) "IMAGE_VERSION"} = config.system.image.version;
${optionalAttr (cfg.variantName != null) "VARIANT"} = cfg.variantName;
${optionalAttr (cfg.variant_id != null) "VARIANT_ID"} = cfg.variant_id;
DEFAULT_HOSTNAME = config.system.nixos.distroId;
}
// cfg.extraOSReleaseArgs;
@@ -158,7 +158,7 @@ def mk_veth(
def run(
container_name: str,
root_dir_str: str,
shared_dir_str: typing.Optional[str],
shared_dir_str: str | None,
interfaces: dict,
nspawn_options: list[str],
init: str,
@@ -193,13 +193,6 @@ def run(
)
)
def print_pid() -> None:
print(
f"systemd-nspawn's PID is {os.getpid()}",
# Need to flush stdout before systemd-nspawn gets exec-ed.
flush=True,
)
shared_dir = Path(shared_dir_str) if shared_dir_str else None
cp = subprocess.Popen(
@@ -216,7 +209,9 @@ def run(
init,
*cmdline,
],
preexec_fn=print_pid,
)
print(
f"systemd-nspawn's PID is {cp.pid}",
)
try:
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
pkg-config,
libuuid,
libsodium,
@@ -45,6 +46,15 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-F1+FeAlYSqOxeWJI8vHShpXrOZqYXjNGvty/s6f6u8w=";
};
patches = [
# Fix compile-time assertion failure on big-endian
(fetchpatch {
name = "0001-bcachefs-tools-debug-copy-packed-bkey-fields-before-asserting.patch";
url = "https://evilpiepirate.org/git/bcachefs-tools.git/patch/?id=79f119c4cd6900ab9ea27b0aa671f68300d9d38e";
hash = "sha256-ACrpad93wrZOXhc73otnXBNQvyoDeZSfgtwze5nKaUE=";
})
];
postPatch = ''
substituteInPlace Makefile \
--replace-fail "target/release/bcachefs" "target/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/bcachefs"
+9 -23
View File
@@ -30,11 +30,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bind";
version = "9.20.24";
version = "9.20.26";
src = fetchurl {
url = "https://downloads.isc.org/isc/bind9/${finalAttrs.version}/bind-${finalAttrs.version}.tar.xz";
hash = "sha256-mJ/vH8iOpZ0EzYb4VNylpGFqIKmWi83ePBo2aKs2vgg=";
hash = "sha256-VSSN7w+HDExGs95yl46pcmFRMVFmYxiKRWTcodIL81A=";
};
outputs = [
@@ -111,31 +111,17 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
strictDeps = true;
__structuredAttrs = true;
doCheck = false;
# TODO: investigate failures; see this and linked discussions:
# https://github.com/NixOS/nixpkgs/pull/192962
/*
doCheck = with stdenv.hostPlatform; !isStatic && !(isAarch64 && isLinux)
# https://gitlab.isc.org/isc-projects/bind9/-/issues/4269
&& !is32bit;
*/
doCheck = with stdenv.hostPlatform; !isStatic && isLinux;
checkTarget = "unit";
checkInputs = [
cmocka
]
++ lib.optionals (!stdenv.hostPlatform.isMusl) [
tzdata
];
preCheck =
lib.optionalString stdenv.hostPlatform.isMusl ''
# musl doesn't respect TZDIR, skip timezone-related tests
sed -i '/^ISC_TEST_ENTRY(isc_time_formatISO8601L/d' tests/isc/time_test.c
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# Test timeouts on Darwin
sed -i '/^ISC_TEST_ENTRY(tcpdns_recv_one/d' tests/isc/netmgr_test.c
'';
preCheck = ''
# skip timezone-related tests, they are flaky inside the nix sandbox
sed -i '/^ISC_TEST_ENTRY(isc_time_formatISO8601L/d' tests/isc/time_test.c
'';
postFixup = ''
remove-references-to -t "$out" "$dnsutils/bin/delv"
@@ -168,7 +154,7 @@ stdenv.mkDerivation (finalAttrs: {
changelog = "https://downloads.isc.org/isc/bind9/cur/${lib.versions.majorMinor finalAttrs.version}/doc/arm/html/notes.html#notes-for-bind-${
lib.replaceStrings [ "." ] [ "-" ] finalAttrs.version
}";
maintainers = [ ];
maintainers = with lib.maintainers; [ bartoostveen ];
platforms = lib.platforms.unix;
outputsToInstall = [
+7
View File
@@ -583,6 +583,13 @@ stdenv.mkDerivation rec {
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ac1512b872af8567b408518a7efa01607a0219ae";
hash = "sha256-deyp6Yatlgv86bYMt7WcWhKg8J6StDPUEy4UPHqJYIc=";
})
# Required to build grub2_efi with GCC 16, or fails with "error: 'regparm'
# attribute ignored [-Werror=attributes]"
(fetchpatch {
name = "gcc16_make_regparm_attribute_more_conditional.patch";
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=9922ed133c2c754ec9f37198da2b3e3e8a4fd5ff";
hash = "sha256-V2vffDxL/qQ14YN5scc3CFPBFBWvkh57dc5/hWd/6F4=";
})
];
postPatch =
+9
View File
@@ -34,6 +34,15 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
./nix-store-date.patch
# GCC 16's unused variable analysis is more advanced than previous
# versions, and detects that these variables are unused.
# https://github.com/wolfcw/libfaketime/pull/528
(fetchpatch {
name = "libfaketime-silence-unused-variable-warning.patch";
url = "https://github.com/wolfcw/libfaketime/commit/712733e5f01e45372f3160cfdbcfd91520cb093d.patch";
hash = "sha256-Gu13gFhgvkncj8aowAnSRbHbUCctF5sakbX4uRwdy+A=";
})
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
(fetchpatch {
@@ -86,7 +86,7 @@ def get_parser() -> tuple[argparse.ArgumentParser, dict[str, argparse.ArgumentPa
main_parser = argparse.ArgumentParser(
prog="nixos-rebuild",
parents=list(sub_parsers.values()),
parents=sub_parsers.values(),
description="Reconfigure a NixOS machine",
add_help=False,
allow_abbrev=False,
@@ -260,7 +260,6 @@ def parse_args(
if args.v or args.debug:
logger.setLevel(logging.DEBUG)
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh#L56
if args.action == Action.DRY_RUN.value:
args.action = Action.DRY_BUILD.value
@@ -166,6 +166,10 @@ class GenerationJson(TypedDict):
current: bool
class FlakeMetadataJson(TypedDict):
resolvedUrl: str
@dataclass(frozen=True)
class GroupedNixArgs:
build_flags: Args
@@ -19,6 +19,7 @@ from .models import (
Action,
BuildAttr,
Flake,
FlakeMetadataJson,
Generation,
GenerationJson,
ImageVariants,
@@ -29,6 +30,8 @@ from .models import (
from .process import run_wrapper, ssh_default_opts
from .utils import Args, dict_to_flags
local_tz: Final = datetime.now().astimezone().tzinfo
FLAKE_FLAGS: Final = ["--extra-experimental-features", "nix-command flakes"]
FLAKE_REPL_TEMPLATE: Final = "repl.nix.template"
SWITCH_TO_CONFIGURATION_CMD_PREFIX: Final = [
@@ -432,9 +435,10 @@ def get_generations(profile: Profile) -> list[Generation]:
def parse_path(path: Path, profile: Profile) -> Generation:
entry_id = path.name.split("-")[1]
current = path.name == profile.path.readlink().name
timestamp = datetime.fromtimestamp(path.stat().st_ctime).strftime(
"%Y-%m-%d %H:%M:%S"
)
timestamp = datetime.fromtimestamp(
timestamp=path.stat().st_ctime,
tz=local_tz,
).strftime("%Y-%m-%d %H:%M:%S")
return Generation(
id=int(entry_id),
@@ -576,12 +580,32 @@ def repl(build_attr: BuildAttr, nix_flags: Args | None = None) -> None:
run_wrapper([*run_args, *dict_to_flags(nix_flags)])
def get_flake_metadata(
flake: Flake, flake_flags: Args | None = None
) -> FlakeMetadataJson:
r = run_wrapper(
[
"nix",
*FLAKE_FLAGS,
"flake",
"metadata",
"--json",
flake.resolve_path_if_exists(),
*dict_to_flags(flake_flags),
],
stdout=PIPE,
)
j: FlakeMetadataJson = json.loads(r.stdout.strip())
return j
def repl_flake(flake: Flake, flake_flags: Args | None = None) -> None:
expr = Template(
files(__package__).joinpath(FLAKE_REPL_TEMPLATE).read_text()
).substitute(
flake=flake,
flake_path=flake.resolve_path_if_exists(),
# Normalize flake url to respect VSC if present:
flake_path=get_flake_metadata(flake, flake_flags)["resolvedUrl"],
flake_attr=flake.attr,
bold="\033[1m",
blue="\033[34;1m",
@@ -46,8 +46,7 @@ def dict_to_flags(d: Args | None) -> list[str]:
for vs in value:
flags.append(flag)
if isinstance(vs, list):
for v in vs:
flags.append(v)
flags.extend(vs)
else:
flags.append(vs)
case _:
@@ -82,6 +82,10 @@ extend-select = [
# allow Any type
"ANN401"
]
"nixos_rebuild/constants.py" = [
# allow constant comparison since the values are replaced at build-time
"PLR0133"
]
[tool.pytest.ini_options]
pythonpath = ["."]
@@ -993,9 +993,9 @@ def test_execute_nix_switch_flake_build_host(
config_path.touch()
def run_side_effect(args: list[str], **kwargs: Any) -> CompletedProcess[str]:
if args[0] == "nix" and "eval" in args:
return CompletedProcess([], 0, str(config_path))
elif args[0] == "ssh" and "nix" in args:
if (args[0] == "nix" and "eval" in args) or (
args[0] == "ssh" and "nix" in args
):
return CompletedProcess([], 0, str(config_path))
elif args[0] == "nix-instantiate":
return CompletedProcess([], 1)
@@ -1316,9 +1316,7 @@ def test_execute_test_flake(mock_run: Mock, tmp_path: Path) -> None:
def run_side_effect(args: list[str], **kwargs: Any) -> CompletedProcess[str]:
if args[0] == "nix":
return CompletedProcess([], 0, str(config_path))
elif args[0] == "nix-instantiate":
return CompletedProcess([], 1)
elif args[0] == "test":
elif args[0] == "nix-instantiate" or args[0] == "test":
return CompletedProcess([], 1)
else:
return CompletedProcess([], 0)
@@ -1386,9 +1384,9 @@ def test_execute_test_rollback(
2084 2024-11-07 23:54:17 (current)
"""),
)
elif args[0] == "nix-instantiate" and "nixos-system" in args:
return CompletedProcess([], 1)
elif args[0] == "test":
elif (args[0] == "nix-instantiate" and "nixos-system" in args) or args[
0
] == "test":
return CompletedProcess([], 1)
else:
return CompletedProcess([], 0)
@@ -1,3 +1,4 @@
import json
import sys
import textwrap
import uuid
@@ -639,12 +640,18 @@ def test_repl(mock_run: Mock) -> None:
mock_run.assert_called_with(["nix", "repl", "--file", Path("file.nix"), "myAttr"])
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
@patch(
get_qualified_name(n.run_wrapper, n),
autospec=True,
return_value=CompletedProcess(
[], 0, stdout=json.dumps({"resolvedUrl": "path:/flake.nix"})
),
)
def test_repl_flake(mock_run: Mock) -> None:
n.repl_flake(m.Flake("flake.nix", "myAttr"), {"nix_flag": True})
# See nixos-rebuild-ng.tests.repl for a better test,
# this is mostly for sanity check
assert mock_run.call_count == 1
assert mock_run.call_count == 2
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
@@ -29,8 +29,10 @@ def test_remote_env_shell_argv() -> None:
"sudo",
"/bin/sh",
"-c",
"""exec /usr/bin/env -i PATH="${PATH-}" LOCALE_ARCHIVE="${LOCALE_ARCHIVE-}" """
'''NIXOS_NO_CHECK="${NIXOS_NO_CHECK-}" NIXOS_INSTALL_BOOTLOADER=0 "$@"''',
(
"""exec /usr/bin/env -i PATH="${PATH-}" LOCALE_ARCHIVE="${LOCALE_ARCHIVE-}" """
'''NIXOS_NO_CHECK="${NIXOS_NO_CHECK-}" NIXOS_INSTALL_BOOTLOADER=0 "$@"'''
),
"sh",
"cmd",
"arg",
+3 -3
View File
@@ -16,7 +16,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ruff";
version = "0.15.22";
version = "0.16.1";
__structuredAttrs = true;
@@ -24,12 +24,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "astral-sh";
repo = "ruff";
tag = finalAttrs.version;
hash = "sha256-pa42J3M5iwSjfnuatqOOR9DEqzyVtdBbMk6JIRbu12Q=";
hash = "sha256-77h1f8LV9ZTYqs5SymLij6CXe3TzrXEMcCPASOHj/UU=";
};
cargoBuildFlags = [ "--package=ruff" ];
cargoHash = "sha256-jDm0pIrq09ETU+djMLsKSFZJzRx0lKSUx6kjJ4hAkvE=";
cargoHash = "sha256-fgcl0JhGkzbXD+ajDdIwnIUHEuKj3XwDH81JkDEqntc=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "scdoc";
version = "1.11.4";
version = "1.11.5";
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "scdoc";
rev = finalAttrs.version;
hash = "sha256-gldCHzLigeLKDFDcE3TYrNOEWoSt/uYIg9aTg6wwW54=";
hash = "sha256-Tjafa7m+YcUTryYHnW2EF0yaXPRc3uNzWdeEucCdEso=";
};
outputs = [
+5
View File
@@ -37,6 +37,11 @@ stdenv.mkDerivation (finalAttrs: {
cmake
];
cmakeFlags = [
# GCC 16 warns that various uses of `fmt` in value.hpp are used
# uninitialized. This may be a true failure, but it does not seem like a
# major concern, so we silence it for now.
# https://github.com/ToruNiina/toml11/issues/313
(lib.cmakeFeature "CMAKE_CXX_FLAGS" "-Wno-error=maybe-uninitialized")
(lib.cmakeBool "TOML11_BUILD_TOML_TESTS" finalAttrs.finalPackage.doCheck)
];
checkInputs = [
+3 -3
View File
@@ -17,7 +17,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ty";
version = "0.0.61";
version = "0.0.65";
__structuredAttrs = true;
src = fetchFromGitHub {
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
repo = "ty";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-wmNYWfIdgNErP8rw7J43IsEyCg8YuQiaPHd34yzH92M=";
hash = "sha256-+P0mtnz/syeLk7E6GI5OdocjthDtrdMdCc0BrW+C8UQ=";
};
# For Darwin platforms, remove the integration test for file notifications,
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
cargoBuildFlags = [ "--package=ty" ];
cargoHash = "sha256-9hF5JxwCaARBwKaaNhfOzVL2CAp8EOrJ8nPIFLlkN9g=";
cargoHash = "sha256-dAfb5lDt5v7tuqJGbey1mRrLL+zI7eb8GH1DUAtaaT4=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ rust-jemalloc-sys ];
+50 -1
View File
@@ -11,6 +11,7 @@ let
version,
src,
description,
dimensions,
license ? lib.licenses.free,
}:
@@ -58,6 +59,18 @@ let
[Desktop Entry]
Name=${pname}
X-KDE-PluginInfo-Name=${pname}
_EOF
# KDE 6
ln -s $src $out/share/wallpapers/${pname}/contents/images/${dimensions}.png
cat >>$out/share/wallpapers/${pname}/metadata.json <<_EOF
{
"KPlugin": {
"Id": "${pname}",
${lib.optionalString (builtins.hasAttr "spdxId" license) "\"Licence\": \"${license.spdxId}\","}
"Name": "${pname}"
}
}
_EOF
runHook postInstall
@@ -89,6 +102,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-black.png";
hash = "sha256-mhSh0wz2ntH/kri3PF5ZrFykjjdQLhmlIlDDGFQIYWw=";
};
dimensions = "4096x4096";
license = lib.licenses.cc-by-sa-40;
};
@@ -100,6 +114,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-blue.png";
hash = "sha256-oVIRSgool/CsduGingDr0FuJJIkGtfQHXYn0JBI2eho=";
};
dimensions = "4096x4096";
license = lib.licenses.cc-by-sa-40;
};
@@ -111,6 +126,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-red.png";
hash = "sha256-18UvtroyuAnluJ3EoLJWJAwN8T83s/ImPtsr5QTqvAA=";
};
dimensions = "4096x4096";
license = lib.licenses.cc-by-sa-40;
};
@@ -122,6 +138,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-white.png";
hash = "sha256-imj+OmuhTNxRtE54715wWQUA7pe1f32+q3qi2V37i8U=";
};
dimensions = "4096x4096";
license = lib.licenses.cc-by-sa-40;
};
@@ -133,6 +150,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-frappe.png";
hash = "sha256-wtBffKK9rqSJo8+7Wo8OMruRlg091vdroyUZj5mDPfI=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -144,6 +162,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-latte.png";
hash = "sha256-Y6WCwmHOLBStj1D9mcU2082y1fhAFHna01ajfUHxehk=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -155,6 +174,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-macchiato.png";
hash = "sha256-SkXrLbHvBOItJ7+8vW+6iXV+2g0f8bUJf9KcCXYOZF0=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -166,6 +186,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-mocha.png";
hash = "sha256-fmKFYw2gYAYFjOv4lr8IkXPtZfE1+88yKQ4vjEcax1s=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -177,6 +198,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/03c6c20be96c38827037d2238357f2c777ec4aa5/wallpapers/nix-wallpaper-dracula.png";
hash = "sha256-SykeFJXCzkeaxw06np0QkJCK28e0k30PdY8ZDVcQnh4=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -188,6 +210,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-gear.png";
hash = "sha256-2sT6b49/iClTs9QuUvpmZ5gcIeXI9kebs5IqgQN1RL8=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -201,6 +224,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/3f7695afe75239720a32d6c38df7c9888b5ed581/wallpapers/NixOS-Gradient-grey.png";
hash = "sha256-Tf4Xruf608hpl7YwL4Mq9l9egBOCN+W4KFKnqrgosLE=";
};
dimensions = "2560x1440";
# license not clarified
};
@@ -212,6 +236,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-moonscape.png";
hash = "sha256-AR3W8avHzQLxMNLfD/A1efyZH+vAdTLKllEhJwBl0xc=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -223,6 +248,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-mosaic-blue.png";
hash = "sha256-xZbNK8s3/ooRvyeHGxhcYnnifeGAiAnUjw9EjJTWbLE=";
};
dimensions = "1920x1080";
license = lib.licenses.cc0;
};
@@ -234,6 +260,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/da01f68d21ddfdc9f1c6e520c2170871c81f1cf5/wallpapers/nix-wallpaper-nineish.png";
hash = "sha256-EMSD1XQLaqHs0NbLY0lS1oZ4rKznO+h9XOGDS121m9c=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -245,6 +272,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f07707cecfd89bc1459d5dad76a3a4c5315efba1/wallpapers/nix-wallpaper-nineish-dark-gray.png";
hash = "sha256-nhIUtCy/Hb8UbuxXeL3l3FMausjQrnjTVi1B3GkL9B8=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -256,6 +284,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f99638d8d1a11d97a99ff7e0e1e7df58c28643ff/wallpapers/nix-wallpaper-nineish-solarized-dark.png";
hash = "sha256-ZBrk9izKvsY4Hzsr7YovocCbkRVgUN9i/y1B5IzOOKo=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -267,6 +296,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f99638d8d1a11d97a99ff7e0e1e7df58c28643ff/wallpapers/nix-wallpaper-nineish-solarized-light.png";
hash = "sha256-gb5s5ePdw7kuIL3SI8VVhOcLcHu0cHMJJ623vg1kz40=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -278,6 +308,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-frappe-alt.png";
hash = "sha256-ZbtgfBE09FhCTPPCzDlOrSoRUmv1lmhxiNTvHDldF/4=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -289,6 +320,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-frappe.png";
hash = "sha256-/HAtpGwLxjNfJvX5/4YZfM8jPNStaM3gisK8+ImRmQ4=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -300,6 +332,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-latte-alt.png";
hash = "sha256-UyUQ4YQYlJrjoUX6qU6cGWjhA1AnIpQgniQermUtO2w=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -311,6 +344,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-latte.png";
hash = "sha256-+DirQiQ1TUeB+e2AeJD8mWjt0OTWtrqkeqZrVr5v5iY=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -322,6 +356,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-macchiato-alt.png";
hash = "sha256-OUT0SsToRH5Zdd+jOwhr9iVBoVNUKhUkJNBYFDKZGOU=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -333,6 +368,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-macchiato.png";
hash = "sha256-1JWgytxOvI0hwkCk+1hdZqhLB0u5aHEyEcsmlo4kMuw=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -344,6 +380,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-mocha-alt.png";
hash = "sha256-ThDrZIJIyO2DdIW41sV6iYyCNhM89cwHr8l6DAfbXjI=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -355,6 +392,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/33856d7837cb8ba76c4fc9e26f91a659066ee31f/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png";
hash = "sha256-zlYqSid5Q1L5sUrAcvR+7aN2jImiuoR9gygBRk8x9Wo=";
};
dimensions = "1920x1080";
license = lib.licenses.cc-by-sa-40;
};
@@ -366,6 +404,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-recursive.png";
hash = "sha256-YvFrlysNGMwJ7eMFOoz0KI8AjoPN3ao+AVOgnVZzkFE=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -377,6 +416,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-blue.png";
hash = "sha256-utrcjzfeJoFOpUbFY2eIUNCKy5rjLt57xIoUUssJmdI=";
};
dimensions = "1920x1080";
license = lib.licenses.cc0;
};
@@ -388,6 +428,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-dark-gray.png";
hash = "sha256-JaLHdBxwrphKVherDVe5fgh+3zqUtpcwuNbjwrBlAok=";
};
dimensions = "1920x1080";
license = lib.licenses.cc0;
};
@@ -399,17 +440,19 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/9d1f11f652ed5ffe460b6c602fbfe2e7e9a08dff/bootloader/nix-wallpaper-simple-dark-gray_bootloader.png";
hash = "sha256-Sd52CEw/pHmk6Cs+yrM/8wscG9bvYuECylQd27ybRmw=";
};
dimensions = "628x535";
# license not clarified
};
simple-dark-gray-bottom = mkNixBackground {
pname = "simple-dark-gray";
pname = "simple-dark-gray-bottom";
version = "2018-08-28";
description = "Simple dark gray background for NixOS, specifically bootloaders and graphical login";
src = fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/783c38b22de09f6ee33aacc817470a4513392d83/wallpapers/nix-wallpaper-simple-dark-gray_bottom.png";
hash = "sha256-JUyzf9dYRyLQmxJPKptDxXL7yRqAFt5uM0C9crkkEY4=";
};
dimensions = "1920x1080";
# license not clarified
};
@@ -421,6 +464,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-light-gray.png";
hash = "sha256-Ylo5H5OrU/t9vwLbfO0OyPIsB/0vS5iUPTt/G3YHzUQ=";
};
dimensions = "1920x1080";
license = lib.licenses.cc0;
};
@@ -432,6 +476,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-red.png";
hash = "sha256-WnKjgvnn5Rg4R3xaJQ2mhBHQqCfl9jV6Xx3hEXW+uZk=";
};
dimensions = "1920x1080";
license = lib.licenses.cc0;
};
@@ -443,6 +488,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes-logo.png";
hash = "sha256-1MoPwytw8kBiy+Sx70xmHnxMJgqEaOR9YEgQMO6bEjM=";
};
dimensions = "1920x1080";
license = lib.licenses.cc0;
};
@@ -454,6 +500,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes.png";
hash = "sha256-o3GqbFZ/18ScLOlAL6GRy54l8P/U6wUeeK4HtPkZw4Q=";
};
dimensions = "1920x1080";
license = lib.licenses.cc0;
};
@@ -465,6 +512,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-waterfall.png";
hash = "sha256-ULFNUZPU9khDG6rtkMskLe5sYpUcrJVvcFvEkpvXjMM=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -476,6 +524,7 @@ rec {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-watersplash.png";
hash = "sha256-6Gdjzq3hTvUH7GeZmZnf+aOQruFxReUNEryAvJSgycQ=";
};
dimensions = "3840x2160";
license = lib.licenses.cc-by-sa-40;
};
@@ -53,6 +53,11 @@ buildPythonPackage rec {
"test_black_error"
"test_black_error_dot_space"
"test_black_error_multiline"
# Breaks with ruff 0.16.
# https://github.com/pydantic/pytest-examples/issues/69
"test_ruff_ok"
"test_ruff_error"
"test_ruff_config"
];
disabledTestPaths = [
@@ -303,6 +303,7 @@ let
XDP_SOCKETS = yes;
XDP_SOCKETS_DIAG = yes;
WAN = yes;
TCP_AO = whenAtLeast "6.7" yes;
TCP_CONG_ADVANCED = yes;
TCP_CONG_CUBIC = yes; # This is the default congestion control algorithm since 2.6.19
# Required by systemd per-cgroup firewalling
@@ -1181,6 +1182,7 @@ let
];
MODULE_COMPRESS_ALL = whenAtLeast "6.12" yes;
MODULE_COMPRESS_XZ = yes;
MODULE_DECOMPRESS = whenAtLeast "6.0" yes;
SYSVIPC = yes; # System-V IPC
@@ -1291,7 +1293,7 @@ let
KEXEC_HANDOVER = whenAtLeast "6.16" (option yes);
LIVEUPDATE = whenAtLeast "6.19" (option yes);
PARTITION_ADVANCED = yes; # Needed for LDM_PARTITION
PARTITION_ADVANCED = yes; # Needed for LDM_PARTITION and BSD_DISKLABEL
# Windows Logical Disk Manager (Dynamic Disk) support
LDM_PARTITION = yes;
LOGIRUMBLEPAD2_FF = yes; # Logitech Rumblepad 2 force feedback
@@ -1299,6 +1301,8 @@ let
MEDIA_ATTACH = yes;
MEGARAID_NEWGEN = yes;
BSD_DISKLABEL = yes;
MLX5_CORE_EN = option yes;
NVME_MULTIPATH = yes;
+12 -12
View File
@@ -5,33 +5,33 @@
"lts": false
},
"6.1": {
"version": "6.1.178",
"hash": "sha256:03vjdk7lk9zgydzamhwvrg066f8748vrfjggqqd2n0vmr9kzm0vx",
"version": "6.1.180",
"hash": "sha256:0spql1ybfr879wl35rfd2nwlzirvp5chi6gl1d6zqp5mb4bn03jg",
"lts": true
},
"5.15": {
"version": "5.15.212",
"hash": "sha256:1zk51f3pv7ghz68hxkxhds9cjwmk35651pxbyyvyqyhcr7msx5n3",
"version": "5.15.213",
"hash": "sha256:1n71f4im5jg836wk2g4llkxxvmdzbxj7172pxqcf9wrmhm5inwn4",
"lts": true
},
"5.10": {
"version": "5.10.261",
"hash": "sha256:1i6pzaib30r1nmyxsrhqmfsdxy1jvvlmzc9f8lxzv9a00q8a3751",
"version": "5.10.262",
"hash": "sha256:10xlfmblynqcba5ab4h75p7pzqcbm34cbhrx19pkircpkf5dmrzs",
"lts": true
},
"6.6": {
"version": "6.6.145",
"hash": "sha256:09h1pzcai0i10pdyyfbsmq03rgk1x5wv2d937m5nz2xdv0rhw46y",
"version": "6.6.147",
"hash": "sha256:1fsavd2armiwrnz0w556dmm54z76zwy2as0qbbaq6s04xsvjjqz7",
"lts": true
},
"6.12": {
"version": "6.12.97",
"hash": "sha256:0vswyjh91x52ay99mqrdfhwnvd6nnzv4hpncywk908njpfixzgbc",
"version": "6.12.100",
"hash": "sha256:147fvkpsa9n5gv207xyb6if0vmahmvpvrb2bfy32wj866i9p7yb7",
"lts": true
},
"6.18": {
"version": "6.18.40",
"hash": "sha256:0cd42fb4390x73jdzbhacm9g9s0ji58whxhik2ndmr1rr0ggq4ip",
"version": "6.18.41",
"hash": "sha256:1skk2aimvhhymsvs15p83v2mwnlwbmghh82x79isia6lz3q75z0p",
"lts": true
},
"7.1": {