Skip to content

Commit eeadbd1

Browse files
Merge staging-next into staging
2 parents 26aae5e + db616ba commit eeadbd1

43 files changed

Lines changed: 264 additions & 217 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

nixos/maintainers/scripts/incus/incus-container-image.nix

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,24 @@
1313
];
1414
};
1515

16-
# copy the config for nixos-rebuild
17-
system.activationScripts.config =
16+
# Create a default configuration.nix on first boot so nixos-rebuild works
17+
# out of the box.
18+
systemd.services.incus-create-nixos-config =
1819
let
19-
config = pkgs.replaceVars ./incus-container-image-inner.nix {
20+
configFile = pkgs.replaceVars ./incus-container-image-inner.nix {
2021
stateVersion = lib.trivial.release;
2122
};
2223
in
23-
''
24-
if [ ! -e /etc/nixos/configuration.nix ]; then
25-
install -m 0644 -D ${config} /etc/nixos/configuration.nix
26-
fi
27-
'';
24+
{
25+
description = "Create default NixOS configuration for Incus";
26+
wantedBy = [ "multi-user.target" ];
27+
unitConfig.ConditionPathExists = "!/etc/nixos/configuration.nix";
28+
serviceConfig = {
29+
Type = "oneshot";
30+
RemainAfterExit = true;
31+
ExecStart = "${pkgs.coreutils}/bin/install -m 0644 -D ${configFile} /etc/nixos/configuration.nix";
32+
};
33+
};
2834

2935
networking = {
3036
dhcpcd.enable = false;

nixos/maintainers/scripts/incus/incus-virtual-machine-image.nix

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,24 @@
1313
];
1414
};
1515

16-
# copy the config for nixos-rebuild
17-
system.activationScripts.config =
16+
# Create a default configuration.nix on first boot so nixos-rebuild works
17+
# out of the box.
18+
systemd.services.incus-create-nixos-config =
1819
let
19-
config = pkgs.replaceVars ./incus-virtual-machine-image-inner.nix {
20+
configFile = pkgs.replaceVars ./incus-virtual-machine-image-inner.nix {
2021
stateVersion = lib.trivial.release;
2122
};
2223
in
23-
''
24-
if [ ! -e /etc/nixos/configuration.nix ]; then
25-
install -m 0644 -D ${config} /etc/nixos/configuration.nix
26-
fi
27-
'';
24+
{
25+
description = "Create default NixOS configuration for Incus";
26+
wantedBy = [ "multi-user.target" ];
27+
unitConfig.ConditionPathExists = "!/etc/nixos/configuration.nix";
28+
serviceConfig = {
29+
Type = "oneshot";
30+
RemainAfterExit = true;
31+
ExecStart = "${pkgs.coreutils}/bin/install -m 0644 -D ${configFile} /etc/nixos/configuration.nix";
32+
};
33+
};
2834

2935
# Network
3036
networking = {

nixos/modules/profiles/docker-container.nix

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,9 @@ in
7979
'';
8080
};
8181

82-
# Install new init script
83-
system.activationScripts.installInitScript = ''
84-
ln -fs $systemConfig/init /init
82+
# Update /init symlink when switching configurations so the container
83+
# boots the new system on restart.
84+
system.build.installBootLoader = pkgs.writeShellScript "install-docker-init" ''
85+
${pkgs.coreutils}/bin/ln -fs "$1/init" /init
8586
'';
8687
}

nixos/modules/services/video/frigate.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,7 @@ in
640640
listen 127.0.0.1:5000;
641641
642642
# vod settings
643+
vod_hls_version 6;
643644
vod_base_url "";
644645
vod_segments_base_url "";
645646
vod_mode mapped;

nixos/modules/virtualisation/lxc-container.nix

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,5 @@
136136

137137
systemd.packages = [ pkgs.distrobuilder.generator ];
138138

139-
system.activationScripts.installInitScript = lib.mkForce ''
140-
ln -fs $systemConfig/init /sbin/init
141-
'';
142139
};
143140
}

nixos/tests/incus/incus-tests-module.nix

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,16 @@ in
156156
157157
server.succeed(f"incus exec {instance_name} -- test -e /dev/tpm0")
158158
server.succeed(f"incus exec {instance_name} -- test -e /dev/tpmrm0")
159+
160+
with subtest("[${image_id}] default configuration.nix is created on first boot"):
161+
server.succeed(f"incus exec {instance_name} -- test -f /etc/nixos/configuration.nix")
162+
163+
with subtest("[${image_id}] configuration.nix create service does not overwrite existing config"):
164+
server.succeed(f"incus exec {instance_name} -- systemctl restart incus-create-nixos-config.service")
165+
status = server.succeed(
166+
f"incus exec {instance_name} -- systemctl show -p ActiveState incus-create-nixos-config.service"
167+
).strip()
168+
assert "inactive" in status, f"Expected inactive (ConditionPathExists should prevent start), got {status}"
159169
''
160170
#
161171
# container specific
@@ -164,6 +174,21 @@ in
164174
lib.optionalString (config.type == "container")
165175
# python
166176
''
177+
with subtest("[${image_id}] switch-to-configuration updates /sbin/init via installBootLoader"):
178+
# Remove /sbin/init so we can verify installBootLoader recreates it
179+
server.succeed(f"incus exec {instance_name} -- rm -f /sbin/init")
180+
server.fail(f"incus exec {instance_name} -- test -e /sbin/init")
181+
182+
server.succeed(
183+
f"incus exec {instance_name} -- /run/current-system/bin/switch-to-configuration switch"
184+
)
185+
186+
# Verify installBootLoader recreated /sbin/init pointing to the system's init
187+
server.succeed(f"incus exec {instance_name} -- test -x /sbin/init")
188+
target = server.succeed(f"incus exec {instance_name} -- readlink -f /sbin/init").strip()
189+
current = server.succeed(f"incus exec {instance_name} -- readlink -f /run/current-system/init").strip()
190+
assert target == current, f"/sbin/init -> {target}, expected {current}"
191+
167192
# TODO troubleshoot VM hot memory resizing which was introduced in 6.12
168193
with subtest("[${image_id}] memory limits can be hotplug changed"):
169194
server.set_instance_config(instance_name, "limits.memory 512MB")

pkgs/applications/emulators/libretro/cores/gambatte.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
}:
66
mkLibretroCore {
77
core = "gambatte";
8-
version = "0-unstable-2026-03-31";
8+
version = "0-unstable-2026-04-03";
99

1010
src = fetchFromGitHub {
1111
owner = "libretro";
1212
repo = "gambatte-libretro";
13-
rev = "9669d1f9266684e60ac1c5ed9b438bd2a02a3b4d";
14-
hash = "sha256-/mxkjVG7fkjUZ1LHNtFYA0/7ZTyvAYtcF5xO8cxWkzc=";
13+
rev = "483a1f13f7e8a1c2b3076eb8bfc38e668e640c17";
14+
hash = "sha256-efpehssNF3FmSbJAqRS1PkYWTs1v0y0KTdBiRV8K/WY=";
1515
};
1616

1717
meta = {

pkgs/applications/emulators/libretro/cores/play.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
}:
1515
mkLibretroCore {
1616
core = "play";
17-
version = "0-unstable-2026-03-31";
17+
version = "0-unstable-2026-04-07";
1818

1919
src = fetchFromGitHub {
2020
owner = "jpd002";
2121
repo = "Play-";
22-
rev = "cd1dba563cb39925796175f2b8ce95a15c90ee1a";
23-
hash = "sha256-nP22juzUOuD/SQqrIm3AXfa1x98Uqf9rKLhzhXA4yQI=";
22+
rev = "d862ad9cae6c76cbe494db54fa985f21bfcef2a8";
23+
hash = "sha256-//P/ApU/36TamIMepjoBWsUHs2tR5K47V9Gf5HG3goE=";
2424
fetchSubmodules = true;
2525
};
2626

pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@
4545

4646
stdenv.mkDerivation (finalAttrs: {
4747
pname = "telegram-desktop-unwrapped";
48-
version = "6.6.2";
48+
version = "6.7.5";
4949

5050
src = fetchFromGitHub {
5151
owner = "telegramdesktop";
5252
repo = "tdesktop";
5353
rev = "v${finalAttrs.version}";
5454
fetchSubmodules = true;
55-
hash = "sha256-sMg7h+he+mlqTu8wSLAsSJzCmwTX3t+suTEY77RH+aI=";
55+
hash = "sha256-HsXNTZY/+Xz7pIT7durOd5T/u7jML0rVBOPb4pnIXow=";
5656
};
5757

5858
nativeBuildInputs = [
@@ -104,6 +104,8 @@ stdenv.mkDerivation (finalAttrs: {
104104
# We're allowed to used the API ID of the Snap package:
105105
(lib.cmakeFeature "TDESKTOP_API_ID" "611335")
106106
(lib.cmakeFeature "TDESKTOP_API_HASH" "d524b414d21f4d37f08684c1df41ac9c")
107+
# swift 6 is not available in nixpkgs
108+
(lib.cmakeBool "DESKTOP_APP_DISABLE_SWIFT6" true)
107109
];
108110

109111
installPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''

pkgs/by-name/_6/_64gram/package.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ telegram-desktop.override {
1010
inherit withWebkit;
1111
unwrapped = telegram-desktop.unwrapped.overrideAttrs (old: rec {
1212
pname = "64gram-unwrapped";
13-
version = "1.1.94";
13+
version = "1.1.99";
1414

1515
src = fetchFromGitHub {
1616
owner = "TDesktop-x64";
1717
repo = "tdesktop";
1818
tag = "v${version}";
19-
hash = "sha256-pMcG0B3YxrvvaLsC2yWJsm9wHpv5+xLtp+wQhRtJ38Q=";
19+
hash = "sha256-p1mdNoTjftbAeoWJ+AKVPFr87BoxOLIT5fDzWY3VXMQ=";
2020
fetchSubmodules = true;
2121
};
2222

0 commit comments

Comments
 (0)