commit
3eb1aa7749
21 changed files with 179 additions and 262 deletions
|
@ -1,7 +1,7 @@
|
||||||
From 8622539fe2ce67934ed2e60626a2303ef8191e40 Mon Sep 17 00:00:00 2001
|
From c8b50208dce4c467c1f85c3db3e05bdcfd43c378 Mon Sep 17 00:00:00 2001
|
||||||
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
Date: Tue, 8 Jan 2013 15:46:30 +0100
|
Date: Tue, 8 Jan 2013 15:46:30 +0100
|
||||||
Subject: [PATCH 01/19] Start device units for uninitialised encrypted devices
|
Subject: [PATCH 01/18] Start device units for uninitialised encrypted devices
|
||||||
|
|
||||||
This is necessary because the NixOS service that initialises the
|
This is necessary because the NixOS service that initialises the
|
||||||
filesystem depends on the appearance of the device unit. Also, this
|
filesystem depends on the appearance of the device unit. Also, this
|
||||||
|
@ -28,5 +28,5 @@ index 25b8a590a6..d18999ea87 100644
|
||||||
SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}!="crypto_LUKS", SYMLINK+="gpt-auto-root"
|
SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}!="crypto_LUKS", SYMLINK+="gpt-auto-root"
|
||||||
SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}=="crypto_LUKS", SYMLINK+="gpt-auto-root-luks"
|
SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}=="crypto_LUKS", SYMLINK+="gpt-auto-root-luks"
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From a845786195182c376b72a85433e278c35243676d Mon Sep 17 00:00:00 2001
|
From c884aee4c66c97f592ae0f8ebd97f48a39d8c53c Mon Sep 17 00:00:00 2001
|
||||||
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
Date: Fri, 12 Apr 2013 13:16:57 +0200
|
Date: Fri, 12 Apr 2013 13:16:57 +0200
|
||||||
Subject: [PATCH 02/19] Don't try to unmount /nix or /nix/store
|
Subject: [PATCH 02/18] Don't try to unmount /nix or /nix/store
|
||||||
|
|
||||||
They'll still be remounted read-only.
|
They'll still be remounted read-only.
|
||||||
|
|
||||||
|
@ -25,10 +25,10 @@ index f683f05981..5a04c2c2a6 100644
|
||||||
"/etc"))
|
"/etc"))
|
||||||
return true;
|
return true;
|
||||||
diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c
|
diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c
|
||||||
index f5a2cb20c1..51608d24c0 100644
|
index 820aa8e286..653e43053d 100644
|
||||||
--- a/src/shutdown/umount.c
|
--- a/src/shutdown/umount.c
|
||||||
+++ b/src/shutdown/umount.c
|
+++ b/src/shutdown/umount.c
|
||||||
@@ -502,6 +502,8 @@ static int delete_md(MountPoint *m) {
|
@@ -518,6 +518,8 @@ static int delete_md(MountPoint *m) {
|
||||||
|
|
||||||
static bool nonunmountable_path(const char *path) {
|
static bool nonunmountable_path(const char *path) {
|
||||||
return path_equal(path, "/")
|
return path_equal(path, "/")
|
||||||
|
@ -38,5 +38,5 @@ index f5a2cb20c1..51608d24c0 100644
|
||||||
|| path_equal(path, "/usr")
|
|| path_equal(path, "/usr")
|
||||||
#endif
|
#endif
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d33f3461fa2202ef9b0d6cdf2137c510c59fb052 Mon Sep 17 00:00:00 2001
|
From eb3ff76f95bfe248f517e029ea1b152f4983370a Mon Sep 17 00:00:00 2001
|
||||||
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
Date: Wed, 16 Apr 2014 10:59:28 +0200
|
Date: Wed, 16 Apr 2014 10:59:28 +0200
|
||||||
Subject: [PATCH 03/19] Fix NixOS containers
|
Subject: [PATCH 03/18] Fix NixOS containers
|
||||||
|
|
||||||
In NixOS containers, the init script is bind-mounted into the
|
In NixOS containers, the init script is bind-mounted into the
|
||||||
container, so checking early whether it exists will fail.
|
container, so checking early whether it exists will fail.
|
||||||
|
@ -10,19 +10,19 @@ container, so checking early whether it exists will fail.
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
||||||
index 8f17ab8810..197e5aa252 100644
|
index c5fd978395..0fa415f5b5 100644
|
||||||
--- a/src/nspawn/nspawn.c
|
--- a/src/nspawn/nspawn.c
|
||||||
+++ b/src/nspawn/nspawn.c
|
+++ b/src/nspawn/nspawn.c
|
||||||
@@ -5625,6 +5625,7 @@ static int run(int argc, char *argv[]) {
|
@@ -5651,6 +5651,7 @@ static int run(int argc, char *argv[]) {
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
+#if 0
|
+#if 0
|
||||||
const char *p, *q;
|
_cleanup_free_ char *p = NULL;
|
||||||
|
|
||||||
if (arg_pivot_root_new)
|
if (arg_pivot_root_new)
|
||||||
@@ -5639,6 +5640,7 @@ static int run(int argc, char *argv[]) {
|
@@ -5665,6 +5666,7 @@ static int run(int argc, char *argv[]) {
|
||||||
r = -EINVAL;
|
"Directory %s doesn't look like it has an OS tree (/usr/ directory is missing). Refusing.", arg_directory);
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
+#endif
|
+#endif
|
||||||
|
@ -30,5 +30,5 @@ index 8f17ab8810..197e5aa252 100644
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 8fd5968163f3a1cb5f196d934756ba08ccaa5b1e Mon Sep 17 00:00:00 2001
|
From 789ca236fdc81dc3f514ddad3354eeb5fa8cc7d8 Mon Sep 17 00:00:00 2001
|
||||||
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
Date: Thu, 1 May 2014 14:10:10 +0200
|
Date: Thu, 1 May 2014 14:10:10 +0200
|
||||||
Subject: [PATCH 04/19] Look for fsck in the right place
|
Subject: [PATCH 04/18] Look for fsck in the right place
|
||||||
|
|
||||||
---
|
---
|
||||||
src/fsck/fsck.c | 2 +-
|
src/fsck/fsck.c | 2 +-
|
||||||
|
@ -21,5 +21,5 @@ index 745d01ff50..dd4eef45c3 100644
|
||||||
cmdline[i++] = "-T";
|
cmdline[i++] = "-T";
|
||||||
|
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 90d1a90d3147e9c8db5caec8befabda270e755d4 Mon Sep 17 00:00:00 2001
|
From 6871d9637bc653a976e04cd595697d7244a293e2 Mon Sep 17 00:00:00 2001
|
||||||
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
Date: Fri, 19 Dec 2014 14:46:17 +0100
|
Date: Fri, 19 Dec 2014 14:46:17 +0100
|
||||||
Subject: [PATCH 05/19] Add some NixOS-specific unit directories
|
Subject: [PATCH 05/18] Add some NixOS-specific unit directories
|
||||||
|
|
||||||
Look in `/nix/var/nix/profiles/default/lib/systemd/{system,user}` for
|
Look in `/nix/var/nix/profiles/default/lib/systemd/{system,user}` for
|
||||||
units provided by packages installed into the default profile via
|
units provided by packages installed into the default profile via
|
||||||
|
@ -14,7 +14,7 @@ Also, remove /usr and /lib as these don't exist on NixOS.
|
||||||
2 files changed, 6 insertions(+), 19 deletions(-)
|
2 files changed, 6 insertions(+), 19 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
|
diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
|
||||||
index 6fb8c40e7a..142ecdecec 100644
|
index 1f4331a8bf..4b9a8ae26e 100644
|
||||||
--- a/src/basic/path-lookup.c
|
--- a/src/basic/path-lookup.c
|
||||||
+++ b/src/basic/path-lookup.c
|
+++ b/src/basic/path-lookup.c
|
||||||
@@ -92,11 +92,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
|
@@ -92,11 +92,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
|
||||||
|
@ -29,7 +29,7 @@ index 6fb8c40e7a..142ecdecec 100644
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -614,15 +610,13 @@ int lookup_paths_init(
|
@@ -617,15 +613,13 @@ int lookup_paths_init(
|
||||||
persistent_config,
|
persistent_config,
|
||||||
SYSTEM_CONFIG_UNIT_DIR,
|
SYSTEM_CONFIG_UNIT_DIR,
|
||||||
"/etc/systemd/system",
|
"/etc/systemd/system",
|
||||||
|
@ -46,7 +46,7 @@ index 6fb8c40e7a..142ecdecec 100644
|
||||||
STRV_IFNOTNULL(generator_late));
|
STRV_IFNOTNULL(generator_late));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -638,14 +632,11 @@ int lookup_paths_init(
|
@@ -641,14 +635,11 @@ int lookup_paths_init(
|
||||||
persistent_config,
|
persistent_config,
|
||||||
USER_CONFIG_UNIT_DIR,
|
USER_CONFIG_UNIT_DIR,
|
||||||
"/etc/systemd/user",
|
"/etc/systemd/user",
|
||||||
|
@ -62,23 +62,23 @@ index 6fb8c40e7a..142ecdecec 100644
|
||||||
STRV_IFNOTNULL(generator_late));
|
STRV_IFNOTNULL(generator_late));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -795,7 +786,6 @@ char **generator_binary_paths(UnitFileScope scope) {
|
@@ -808,7 +799,6 @@ char **generator_binary_paths(LookupScope scope) {
|
||||||
case UNIT_FILE_SYSTEM:
|
case LOOKUP_SCOPE_SYSTEM:
|
||||||
add = strv_new("/run/systemd/system-generators",
|
add = strv_new("/run/systemd/system-generators",
|
||||||
"/etc/systemd/system-generators",
|
"/etc/systemd/system-generators",
|
||||||
- "/usr/local/lib/systemd/system-generators",
|
- "/usr/local/lib/systemd/system-generators",
|
||||||
SYSTEM_GENERATOR_DIR);
|
SYSTEM_GENERATOR_DIR);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -803,7 +793,6 @@ char **generator_binary_paths(UnitFileScope scope) {
|
@@ -816,7 +806,6 @@ char **generator_binary_paths(LookupScope scope) {
|
||||||
case UNIT_FILE_USER:
|
case LOOKUP_SCOPE_USER:
|
||||||
add = strv_new("/run/systemd/user-generators",
|
add = strv_new("/run/systemd/user-generators",
|
||||||
"/etc/systemd/user-generators",
|
"/etc/systemd/user-generators",
|
||||||
- "/usr/local/lib/systemd/user-generators",
|
- "/usr/local/lib/systemd/user-generators",
|
||||||
USER_GENERATOR_DIR);
|
USER_GENERATOR_DIR);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -842,12 +831,10 @@ char **env_generator_binary_paths(bool is_system) {
|
@@ -855,12 +844,10 @@ char **env_generator_binary_paths(bool is_system) {
|
||||||
if (is_system)
|
if (is_system)
|
||||||
add = strv_new("/run/systemd/system-environment-generators",
|
add = strv_new("/run/systemd/system-environment-generators",
|
||||||
"/etc/systemd/system-environment-generators",
|
"/etc/systemd/system-environment-generators",
|
||||||
|
@ -122,5 +122,5 @@ index fc0f8c34fa..162432e77f 100644
|
||||||
|
|
||||||
systemd_sleep_dir=${root_prefix}/lib/systemd/system-sleep
|
systemd_sleep_dir=${root_prefix}/lib/systemd/system-sleep
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 213279752124dc4a57a4189df9b5b2e96feaa0b3 Mon Sep 17 00:00:00 2001
|
From 67daf22c74a780e283a493a0f9fdbbea2ce0aaba Mon Sep 17 00:00:00 2001
|
||||||
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
Date: Mon, 11 May 2015 15:39:38 +0200
|
Date: Mon, 11 May 2015 15:39:38 +0200
|
||||||
Subject: [PATCH 06/19] Get rid of a useless message in user sessions
|
Subject: [PATCH 06/18] Get rid of a useless message in user sessions
|
||||||
|
|
||||||
Namely lots of variants of
|
Namely lots of variants of
|
||||||
|
|
||||||
|
@ -13,10 +13,10 @@ in containers.
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/core/manager.c b/src/core/manager.c
|
diff --git a/src/core/manager.c b/src/core/manager.c
|
||||||
index 9368a1dfa1..5b0bdb1bc7 100644
|
index 296b759959..71ef7f27b4 100644
|
||||||
--- a/src/core/manager.c
|
--- a/src/core/manager.c
|
||||||
+++ b/src/core/manager.c
|
+++ b/src/core/manager.c
|
||||||
@@ -1408,7 +1408,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) {
|
@@ -1428,7 +1428,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) {
|
||||||
if (!unit_is_bound_by_inactive(u, &culprit))
|
if (!unit_is_bound_by_inactive(u, &culprit))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -27,5 +27,5 @@ index 9368a1dfa1..5b0bdb1bc7 100644
|
||||||
/* If stopping a unit fails continuously we might enter a stop loop here, hence stop acting on the
|
/* If stopping a unit fails continuously we might enter a stop loop here, hence stop acting on the
|
||||||
* service being unnecessary after a while. */
|
* service being unnecessary after a while. */
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 14474d5e116609ce4fac60d779b08fa3eab840c3 Mon Sep 17 00:00:00 2001
|
From 21b9acb1d4202a022475a24db727055f9dd2532a Mon Sep 17 00:00:00 2001
|
||||||
From: Gabriel Ebner <gebner@gebner.org>
|
From: Gabriel Ebner <gebner@gebner.org>
|
||||||
Date: Sun, 6 Dec 2015 14:26:36 +0100
|
Date: Sun, 6 Dec 2015 14:26:36 +0100
|
||||||
Subject: [PATCH 07/19] hostnamed, localed, timedated: disable methods that
|
Subject: [PATCH 07/18] hostnamed, localed, timedated: disable methods that
|
||||||
change system settings.
|
change system settings.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -11,10 +11,10 @@ Subject: [PATCH 07/19] hostnamed, localed, timedated: disable methods that
|
||||||
3 files changed, 25 insertions(+)
|
3 files changed, 25 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
|
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
|
||||||
index b20a93ad81..6292fca4fc 100644
|
index 5f09e6d0eb..46bef3b59d 100644
|
||||||
--- a/src/hostname/hostnamed.c
|
--- a/src/hostname/hostnamed.c
|
||||||
+++ b/src/hostname/hostnamed.c
|
+++ b/src/hostname/hostnamed.c
|
||||||
@@ -813,6 +813,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
|
@@ -910,6 +910,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ index b20a93ad81..6292fca4fc 100644
|
||||||
name = empty_to_null(name);
|
name = empty_to_null(name);
|
||||||
|
|
||||||
context_read_etc_hostname(c);
|
context_read_etc_hostname(c);
|
||||||
@@ -876,6 +879,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
|
@@ -973,6 +976,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -35,10 +35,10 @@ index b20a93ad81..6292fca4fc 100644
|
||||||
|
|
||||||
context_read_machine_info(c);
|
context_read_machine_info(c);
|
||||||
diff --git a/src/locale/localed.c b/src/locale/localed.c
|
diff --git a/src/locale/localed.c b/src/locale/localed.c
|
||||||
index c228385d0e..942ccaa038 100644
|
index 89bf9c6fba..af2f37a4ca 100644
|
||||||
--- a/src/locale/localed.c
|
--- a/src/locale/localed.c
|
||||||
+++ b/src/locale/localed.c
|
+++ b/src/locale/localed.c
|
||||||
@@ -360,6 +360,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er
|
@@ -359,6 +359,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ index c228385d0e..942ccaa038 100644
|
||||||
use_localegen = locale_gen_check_available();
|
use_localegen = locale_gen_check_available();
|
||||||
|
|
||||||
/* If single locale without variable name is provided, then we assume it is LANG=. */
|
/* If single locale without variable name is provided, then we assume it is LANG=. */
|
||||||
@@ -485,6 +488,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro
|
@@ -484,6 +487,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ index c228385d0e..942ccaa038 100644
|
||||||
keymap = empty_to_null(keymap);
|
keymap = empty_to_null(keymap);
|
||||||
keymap_toggle = empty_to_null(keymap_toggle);
|
keymap_toggle = empty_to_null(keymap_toggle);
|
||||||
|
|
||||||
@@ -665,6 +671,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err
|
@@ -664,6 +670,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -69,10 +69,10 @@ index c228385d0e..942ccaa038 100644
|
||||||
model = empty_to_null(model);
|
model = empty_to_null(model);
|
||||||
variant = empty_to_null(variant);
|
variant = empty_to_null(variant);
|
||||||
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
|
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
|
||||||
index 66b454269d..0a8fe25d0f 100644
|
index 9ca5d37b75..e41d8d73df 100644
|
||||||
--- a/src/timedate/timedated.c
|
--- a/src/timedate/timedated.c
|
||||||
+++ b/src/timedate/timedated.c
|
+++ b/src/timedate/timedated.c
|
||||||
@@ -668,6 +668,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
|
@@ -669,6 +669,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ index 66b454269d..0a8fe25d0f 100644
|
||||||
if (!timezone_is_valid(z, LOG_DEBUG))
|
if (!timezone_is_valid(z, LOG_DEBUG))
|
||||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid or not installed time zone '%s'", z);
|
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid or not installed time zone '%s'", z);
|
||||||
|
|
||||||
@@ -747,6 +751,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
|
@@ -748,6 +752,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -104,5 +104,5 @@ index 66b454269d..0a8fe25d0f 100644
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d668df39728c992ec0c691ef6e76664e7121f5bd Mon Sep 17 00:00:00 2001
|
From 3894fcd76e5791e094c685c0095006b6867893c1 Mon Sep 17 00:00:00 2001
|
||||||
From: Nikolay Amiantov <ab@fmap.me>
|
From: Nikolay Amiantov <ab@fmap.me>
|
||||||
Date: Thu, 7 Jul 2016 02:47:13 +0300
|
Date: Thu, 7 Jul 2016 02:47:13 +0300
|
||||||
Subject: [PATCH 08/19] Fix hwdb paths
|
Subject: [PATCH 08/18] Fix hwdb paths
|
||||||
|
|
||||||
Patch by vcunat.
|
Patch by vcunat.
|
||||||
---
|
---
|
||||||
|
@ -9,10 +9,10 @@ Patch by vcunat.
|
||||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/libsystemd/sd-hwdb/hwdb-internal.h b/src/libsystemd/sd-hwdb/hwdb-internal.h
|
diff --git a/src/libsystemd/sd-hwdb/hwdb-internal.h b/src/libsystemd/sd-hwdb/hwdb-internal.h
|
||||||
index 5ddc2211e6..ee621eec46 100644
|
index 62d27f7b89..87318e041b 100644
|
||||||
--- a/src/libsystemd/sd-hwdb/hwdb-internal.h
|
--- a/src/libsystemd/sd-hwdb/hwdb-internal.h
|
||||||
+++ b/src/libsystemd/sd-hwdb/hwdb-internal.h
|
+++ b/src/libsystemd/sd-hwdb/hwdb-internal.h
|
||||||
@@ -82,8 +82,5 @@ struct trie_value_entry2_f {
|
@@ -83,8 +83,5 @@ struct trie_value_entry2_f {
|
||||||
} _packed_;
|
} _packed_;
|
||||||
|
|
||||||
#define hwdb_bin_paths \
|
#define hwdb_bin_paths \
|
||||||
|
@ -24,5 +24,5 @@ index 5ddc2211e6..ee621eec46 100644
|
||||||
+ "/etc/udev/hwdb.bin\0"
|
+ "/etc/udev/hwdb.bin\0"
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From dd59ce5f1bbdafb0b92f8aeacc68b000ec347a61 Mon Sep 17 00:00:00 2001
|
From 322fe2a15ac92d38f6952a2f7fd66e56eaa0f1f4 Mon Sep 17 00:00:00 2001
|
||||||
From: Nikolay Amiantov <ab@fmap.me>
|
From: Nikolay Amiantov <ab@fmap.me>
|
||||||
Date: Tue, 11 Oct 2016 13:12:08 +0300
|
Date: Tue, 11 Oct 2016 13:12:08 +0300
|
||||||
Subject: [PATCH 09/19] Change /usr/share/zoneinfo to /etc/zoneinfo
|
Subject: [PATCH 09/18] Change /usr/share/zoneinfo to /etc/zoneinfo
|
||||||
|
|
||||||
NixOS uses this path.
|
NixOS uses this path.
|
||||||
---
|
---
|
||||||
|
@ -35,10 +35,10 @@ index e486474c44..5f373d0723 100644
|
||||||
<literal>Etc/UTC</literal>. The resulting link should lead to the
|
<literal>Etc/UTC</literal>. The resulting link should lead to the
|
||||||
corresponding binary
|
corresponding binary
|
||||||
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
|
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
|
||||||
index b659d6905d..660b1c6fed 100644
|
index c309369406..e0d84a7cfa 100644
|
||||||
--- a/src/basic/time-util.c
|
--- a/src/basic/time-util.c
|
||||||
+++ b/src/basic/time-util.c
|
+++ b/src/basic/time-util.c
|
||||||
@@ -1267,7 +1267,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) {
|
@@ -1281,7 +1281,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) {
|
||||||
|
|
||||||
assert(ret);
|
assert(ret);
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ index b659d6905d..660b1c6fed 100644
|
||||||
if (!f)
|
if (!f)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
@@ -1306,7 +1306,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) {
|
@@ -1320,7 +1320,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) {
|
||||||
_cleanup_strv_free_ char **zones = NULL;
|
_cleanup_strv_free_ char **zones = NULL;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ index b659d6905d..660b1c6fed 100644
|
||||||
if (!f)
|
if (!f)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
@@ -1419,7 +1419,7 @@ int verify_timezone(const char *name, int log_level) {
|
@@ -1433,7 +1433,7 @@ int verify_timezone(const char *name, int log_level) {
|
||||||
if (p - name >= PATH_MAX)
|
if (p - name >= PATH_MAX)
|
||||||
return -ENAMETOOLONG;
|
return -ENAMETOOLONG;
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ index b659d6905d..660b1c6fed 100644
|
||||||
|
|
||||||
fd = open(t, O_RDONLY|O_CLOEXEC);
|
fd = open(t, O_RDONLY|O_CLOEXEC);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
@@ -1510,7 +1510,7 @@ int get_timezone(char **ret) {
|
@@ -1491,7 +1491,7 @@ int get_timezone(char **ret) {
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r; /* returns EINVAL if not a symlink */
|
return r; /* returns EINVAL if not a symlink */
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ index b659d6905d..660b1c6fed 100644
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
|
diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
|
||||||
index d28a416e5d..c7c215731d 100644
|
index 39160182ef..8dcc3307c8 100644
|
||||||
--- a/src/firstboot/firstboot.c
|
--- a/src/firstboot/firstboot.c
|
||||||
+++ b/src/firstboot/firstboot.c
|
+++ b/src/firstboot/firstboot.c
|
||||||
@@ -494,7 +494,7 @@ static int process_timezone(void) {
|
@@ -494,7 +494,7 @@ static int process_timezone(void) {
|
||||||
|
@ -88,10 +88,10 @@ index d28a416e5d..c7c215731d 100644
|
||||||
(void) mkdir_parents(etc_localtime, 0755);
|
(void) mkdir_parents(etc_localtime, 0755);
|
||||||
if (symlink(e, etc_localtime) < 0)
|
if (symlink(e, etc_localtime) < 0)
|
||||||
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
||||||
index 197e5aa252..c674fa61d5 100644
|
index 0fa415f5b5..b4404fff49 100644
|
||||||
--- a/src/nspawn/nspawn.c
|
--- a/src/nspawn/nspawn.c
|
||||||
+++ b/src/nspawn/nspawn.c
|
+++ b/src/nspawn/nspawn.c
|
||||||
@@ -1899,8 +1899,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid
|
@@ -1901,8 +1901,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid
|
||||||
static const char *timezone_from_path(const char *path) {
|
static const char *timezone_from_path(const char *path) {
|
||||||
return PATH_STARTSWITH_SET(
|
return PATH_STARTSWITH_SET(
|
||||||
path,
|
path,
|
||||||
|
@ -103,10 +103,10 @@ index 197e5aa252..c674fa61d5 100644
|
||||||
|
|
||||||
static bool etc_writable(void) {
|
static bool etc_writable(void) {
|
||||||
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
|
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
|
||||||
index 0a8fe25d0f..2f02b9a520 100644
|
index e41d8d73df..ff1a384b3b 100644
|
||||||
--- a/src/timedate/timedated.c
|
--- a/src/timedate/timedated.c
|
||||||
+++ b/src/timedate/timedated.c
|
+++ b/src/timedate/timedated.c
|
||||||
@@ -279,7 +279,7 @@ static int context_read_data(Context *c) {
|
@@ -282,7 +282,7 @@ static int context_read_data(Context *c) {
|
||||||
|
|
||||||
r = get_timezone(&t);
|
r = get_timezone(&t);
|
||||||
if (r == -EINVAL)
|
if (r == -EINVAL)
|
||||||
|
@ -115,7 +115,7 @@ index 0a8fe25d0f..2f02b9a520 100644
|
||||||
else if (r < 0)
|
else if (r < 0)
|
||||||
log_warning_errno(r, "Failed to get target of /etc/localtime: %m");
|
log_warning_errno(r, "Failed to get target of /etc/localtime: %m");
|
||||||
|
|
||||||
@@ -303,7 +303,7 @@ static int context_write_data_timezone(Context *c) {
|
@@ -306,7 +306,7 @@ static int context_write_data_timezone(Context *c) {
|
||||||
|
|
||||||
if (isempty(c->zone) || streq(c->zone, "UTC")) {
|
if (isempty(c->zone) || streq(c->zone, "UTC")) {
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ index 0a8fe25d0f..2f02b9a520 100644
|
||||||
|
|
||||||
if (unlink("/etc/localtime") < 0 && errno != ENOENT)
|
if (unlink("/etc/localtime") < 0 && errno != ENOENT)
|
||||||
return -errno;
|
return -errno;
|
||||||
@@ -311,9 +311,9 @@ static int context_write_data_timezone(Context *c) {
|
@@ -314,9 +314,9 @@ static int context_write_data_timezone(Context *c) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,5 +137,5 @@ index 0a8fe25d0f..2f02b9a520 100644
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From a93da270bed88972f4d60a1fa08f24e00712d7fb Mon Sep 17 00:00:00 2001
|
From 35dd77fafe73cc4a648f101163945cbcae8ed6b9 Mon Sep 17 00:00:00 2001
|
||||||
From: Imuli <i@imu.li>
|
From: Imuli <i@imu.li>
|
||||||
Date: Wed, 19 Oct 2016 08:46:47 -0400
|
Date: Wed, 19 Oct 2016 08:46:47 -0400
|
||||||
Subject: [PATCH 10/19] localectl: use /etc/X11/xkb for list-x11-*
|
Subject: [PATCH 10/18] localectl: use /etc/X11/xkb for list-x11-*
|
||||||
|
|
||||||
NixOS has an option to link the xkb data files to /etc/X11, but not to
|
NixOS has an option to link the xkb data files to /etc/X11, but not to
|
||||||
/usr/share/X11.
|
/usr/share/X11.
|
||||||
|
@ -10,10 +10,10 @@ NixOS has an option to link the xkb data files to /etc/X11, but not to
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/locale/localectl.c b/src/locale/localectl.c
|
diff --git a/src/locale/localectl.c b/src/locale/localectl.c
|
||||||
index b5624209dc..4ab7adfdb6 100644
|
index 661d54c27d..e98b578531 100644
|
||||||
--- a/src/locale/localectl.c
|
--- a/src/locale/localectl.c
|
||||||
+++ b/src/locale/localectl.c
|
+++ b/src/locale/localectl.c
|
||||||
@@ -279,7 +279,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
|
@@ -277,7 +277,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
|
||||||
} state = NONE, look_for;
|
} state = NONE, look_for;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
@ -23,5 +23,5 @@ index b5624209dc..4ab7adfdb6 100644
|
||||||
return log_error_errno(errno, "Failed to open keyboard mapping list. %m");
|
return log_error_errno(errno, "Failed to open keyboard mapping list. %m");
|
||||||
|
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
From 3bc3462165cd72de93a1c71f03e6c4150726b159 Mon Sep 17 00:00:00 2001
|
From 1928e1d8eda7d3e296170bb5bd813463cc3e679c Mon Sep 17 00:00:00 2001
|
||||||
From: Franz Pletz <fpletz@fnordicwalking.de>
|
From: Franz Pletz <fpletz@fnordicwalking.de>
|
||||||
Date: Sun, 11 Feb 2018 04:37:44 +0100
|
Date: Sun, 11 Feb 2018 04:37:44 +0100
|
||||||
Subject: [PATCH 11/19] build: don't create statedir and don't touch prefixdir
|
Subject: [PATCH 11/18] build: don't create statedir and don't touch prefixdir
|
||||||
|
|
||||||
---
|
---
|
||||||
meson.build | 3 ---
|
meson.build | 3 ---
|
||||||
1 file changed, 3 deletions(-)
|
1 file changed, 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/meson.build b/meson.build
|
diff --git a/meson.build b/meson.build
|
||||||
index c0cbadecb1..8266bf57de 100644
|
index 36cbfa4893..a10d6a3eb7 100644
|
||||||
--- a/meson.build
|
--- a/meson.build
|
||||||
+++ b/meson.build
|
+++ b/meson.build
|
||||||
@@ -3729,9 +3729,6 @@ install_data('LICENSE.GPL2',
|
@@ -3926,9 +3926,6 @@ install_data('LICENSE.GPL2',
|
||||||
install_subdir('LICENSES',
|
install_subdir('LICENSES',
|
||||||
install_dir : docdir)
|
install_dir : docdir)
|
||||||
|
|
||||||
|
@ -22,5 +22,5 @@ index c0cbadecb1..8266bf57de 100644
|
||||||
|
|
||||||
# Ensure that changes to the docs/ directory do not break the
|
# Ensure that changes to the docs/ directory do not break the
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From b30d2273d3ce1480b0c4c27c25211f84e04172e9 Mon Sep 17 00:00:00 2001
|
From 201b588b4b30fb53aefaed43e5d434373a076cb0 Mon Sep 17 00:00:00 2001
|
||||||
From: Andreas Rammhold <andreas@rammhold.de>
|
From: Andreas Rammhold <andreas@rammhold.de>
|
||||||
Date: Thu, 9 May 2019 11:15:22 +0200
|
Date: Thu, 9 May 2019 11:15:22 +0200
|
||||||
Subject: [PATCH 13/19] add rootprefix to lookup dir paths
|
Subject: [PATCH 12/18] add rootprefix to lookup dir paths
|
||||||
|
|
||||||
systemd does not longer use the UDEVLIBEXEC directory as root for
|
systemd does not longer use the UDEVLIBEXEC directory as root for
|
||||||
discovery default udev rules. By adding `$out/lib` to the lookup paths
|
discovery default udev rules. By adding `$out/lib` to the lookup paths
|
||||||
|
@ -12,7 +12,7 @@ files that I might have missed.
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/basic/def.h b/src/basic/def.h
|
diff --git a/src/basic/def.h b/src/basic/def.h
|
||||||
index eccee3d3fa..e94a2c8bd0 100644
|
index 0a1ae023a3..cc00ff6c68 100644
|
||||||
--- a/src/basic/def.h
|
--- a/src/basic/def.h
|
||||||
+++ b/src/basic/def.h
|
+++ b/src/basic/def.h
|
||||||
@@ -39,13 +39,15 @@
|
@@ -39,13 +39,15 @@
|
||||||
|
@ -34,5 +34,5 @@ index eccee3d3fa..e94a2c8bd0 100644
|
||||||
#define CONF_PATHS(n) \
|
#define CONF_PATHS(n) \
|
||||||
CONF_PATHS_USR(n) \
|
CONF_PATHS_USR(n) \
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
From 85f0ad0cb7b4f0cfd482c9611f9cbc2dacbba33a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Rammhold <andreas@rammhold.de>
|
|
||||||
Date: Fri, 2 Nov 2018 21:15:42 +0100
|
|
||||||
Subject: [PATCH 12/19] inherit systemd environment when calling generators.
|
|
||||||
|
|
||||||
Systemd generators need access to the environment configured in
|
|
||||||
stage-2-init.sh since it schedules fsck and mkfs executions based on
|
|
||||||
being able to find an appropriate binary for the target filesystem.
|
|
||||||
|
|
||||||
With this commit I am altering the systemd behaviour since upstream
|
|
||||||
tries to gather environments with that they call
|
|
||||||
"environment-generators" and then seems to pass that on to all the other
|
|
||||||
executables that are being called from managers.
|
|
||||||
---
|
|
||||||
src/core/manager.c | 13 +++++++++----
|
|
||||||
1 file changed, 9 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/manager.c b/src/core/manager.c
|
|
||||||
index 5b0bdb1bc7..1538a5200a 100644
|
|
||||||
--- a/src/core/manager.c
|
|
||||||
+++ b/src/core/manager.c
|
|
||||||
@@ -3653,10 +3653,15 @@ static int manager_run_generators(Manager *m) {
|
|
||||||
argv[4] = NULL;
|
|
||||||
|
|
||||||
RUN_WITH_UMASK(0022)
|
|
||||||
- (void) execute_directories((const char* const*) paths, DEFAULT_TIMEOUT_USEC, NULL, NULL,
|
|
||||||
- (char**) argv, m->transient_environment,
|
|
||||||
- EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS | EXEC_DIR_SET_SYSTEMD_EXEC_PID);
|
|
||||||
-
|
|
||||||
+ (void) execute_directories((const char* const*) paths, DEFAULT_TIMEOUT_USEC,
|
|
||||||
+ // On NixOS we must propagate PATH to generators so they are
|
|
||||||
+ // able to find binaries such as `fsck.${fstype}` and
|
|
||||||
+ // `mkfs.${fstype}`. That is why the last argument of the
|
|
||||||
+ // function (envp) is set to NULL. This propagates systemd's
|
|
||||||
+ // environment (e.g. PATH) that was setup
|
|
||||||
+ // before calling systemd from stage-2-init.sh.
|
|
||||||
+ NULL, NULL, (char**) argv, /* NixOS: use inherited env */ NULL,
|
|
||||||
+ EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS | EXEC_DIR_SET_SYSTEMD_EXEC_PID);
|
|
||||||
r = 0;
|
|
||||||
|
|
||||||
finish:
|
|
||||||
--
|
|
||||||
2.34.0
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 76da27ff77e5db07e502d4d8d26286d69c3f0319 Mon Sep 17 00:00:00 2001
|
From 67434c58caddf7dd3cef66dd3e3f704d39e4bcb0 Mon Sep 17 00:00:00 2001
|
||||||
From: Nikolay Amiantov <ab@fmap.me>
|
From: Nikolay Amiantov <ab@fmap.me>
|
||||||
Date: Thu, 25 Jul 2019 20:45:55 +0300
|
Date: Thu, 25 Jul 2019 20:45:55 +0300
|
||||||
Subject: [PATCH 14/19] systemd-shutdown: execute scripts in
|
Subject: [PATCH 13/18] systemd-shutdown: execute scripts in
|
||||||
/etc/systemd/system-shutdown
|
/etc/systemd/system-shutdown
|
||||||
|
|
||||||
This is needed for NixOS to use such scripts as systemd directory is immutable.
|
This is needed for NixOS to use such scripts as systemd directory is immutable.
|
||||||
|
@ -10,7 +10,7 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c
|
diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c
|
||||||
index 7ad9930677..fdb03a2e1a 100644
|
index 2c3cbec02c..1b876203c6 100644
|
||||||
--- a/src/shutdown/shutdown.c
|
--- a/src/shutdown/shutdown.c
|
||||||
+++ b/src/shutdown/shutdown.c
|
+++ b/src/shutdown/shutdown.c
|
||||||
@@ -335,7 +335,7 @@ int main(int argc, char *argv[]) {
|
@@ -335,7 +335,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
@ -23,5 +23,5 @@ index 7ad9930677..fdb03a2e1a 100644
|
||||||
/* The log target defaults to console, but the original systemd process will pass its log target in through a
|
/* The log target defaults to console, but the original systemd process will pass its log target in through a
|
||||||
* command line argument, which will override this default. Also, ensure we'll never log to the journal or
|
* command line argument, which will override this default. Also, ensure we'll never log to the journal or
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 47c651f97acae814d4ff679ae04d78d4532cbca6 Mon Sep 17 00:00:00 2001
|
From db1280d020e6d46a994240e755ce369d895322c5 Mon Sep 17 00:00:00 2001
|
||||||
From: Nikolay Amiantov <ab@fmap.me>
|
From: Nikolay Amiantov <ab@fmap.me>
|
||||||
Date: Thu, 25 Jul 2019 20:46:58 +0300
|
Date: Thu, 25 Jul 2019 20:46:58 +0300
|
||||||
Subject: [PATCH 15/19] systemd-sleep: execute scripts in
|
Subject: [PATCH 14/18] systemd-sleep: execute scripts in
|
||||||
/etc/systemd/system-sleep
|
/etc/systemd/system-sleep
|
||||||
|
|
||||||
This is needed for NixOS to use such scripts as systemd directory is immutable.
|
This is needed for NixOS to use such scripts as systemd directory is immutable.
|
||||||
|
@ -10,10 +10,10 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
|
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
|
||||||
index 7064f3a905..b60ced9d9b 100644
|
index 65e391d02a..28af2f8bf5 100644
|
||||||
--- a/src/sleep/sleep.c
|
--- a/src/sleep/sleep.c
|
||||||
+++ b/src/sleep/sleep.c
|
+++ b/src/sleep/sleep.c
|
||||||
@@ -182,6 +182,7 @@ static int execute(
|
@@ -180,6 +180,7 @@ static int execute(
|
||||||
};
|
};
|
||||||
static const char* const dirs[] = {
|
static const char* const dirs[] = {
|
||||||
SYSTEM_SLEEP_PATH,
|
SYSTEM_SLEEP_PATH,
|
||||||
|
@ -22,5 +22,5 @@ index 7064f3a905..b60ced9d9b 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From df0fec7ac2f33bcca60ba9a2396af33397ba42cc Mon Sep 17 00:00:00 2001
|
From ac9f97341e6fe3fb4b5fe22e72f43312ef5b1ca4 Mon Sep 17 00:00:00 2001
|
||||||
From: Florian Klink <flokli@flokli.de>
|
From: Florian Klink <flokli@flokli.de>
|
||||||
Date: Sat, 7 Mar 2020 22:40:27 +0100
|
Date: Sat, 7 Mar 2020 22:40:27 +0100
|
||||||
Subject: [PATCH 16/19] kmod-static-nodes.service: Update ConditionFileNotEmpty
|
Subject: [PATCH 15/18] kmod-static-nodes.service: Update ConditionFileNotEmpty
|
||||||
|
|
||||||
On NixOS, kernel modules of the currently booted systems are located at
|
On NixOS, kernel modules of the currently booted systems are located at
|
||||||
/run/booted-system/kernel-modules/lib/modules/%v/, not /lib/modules/%v/.
|
/run/booted-system/kernel-modules/lib/modules/%v/, not /lib/modules/%v/.
|
||||||
|
@ -23,5 +23,5 @@ index 777e82d16b..b6abc2bba0 100644
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From f21722ac0f51b0b59a5c030af3db5fe4e6397f7c Mon Sep 17 00:00:00 2001
|
From 6f40d7a9d0029b5a805245b938ac62e7b150ea75 Mon Sep 17 00:00:00 2001
|
||||||
From: Florian Klink <flokli@flokli.de>
|
From: Florian Klink <flokli@flokli.de>
|
||||||
Date: Sun, 8 Mar 2020 01:05:54 +0100
|
Date: Sun, 8 Mar 2020 01:05:54 +0100
|
||||||
Subject: [PATCH 17/19] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
|
Subject: [PATCH 16/18] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
|
||||||
|
|
||||||
This will be the $PATH used to lookup ExecStart= etc. options, which
|
This will be the $PATH used to lookup ExecStart= etc. options, which
|
||||||
systemd itself uses extensively.
|
systemd itself uses extensively.
|
||||||
|
@ -10,7 +10,7 @@ systemd itself uses extensively.
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/basic/path-util.h b/src/basic/path-util.h
|
diff --git a/src/basic/path-util.h b/src/basic/path-util.h
|
||||||
index 518f3340bf..18e826ea0b 100644
|
index 553aa4fb58..46294f4bb1 100644
|
||||||
--- a/src/basic/path-util.h
|
--- a/src/basic/path-util.h
|
||||||
+++ b/src/basic/path-util.h
|
+++ b/src/basic/path-util.h
|
||||||
@@ -24,11 +24,11 @@
|
@@ -24,11 +24,11 @@
|
||||||
|
@ -29,5 +29,5 @@ index 518f3340bf..18e826ea0b 100644
|
||||||
#if HAVE_SPLIT_USR
|
#if HAVE_SPLIT_USR
|
||||||
# define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
|
# define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 968bd0c7bc058a4b05b6457f9ff20d02b70c9852 Mon Sep 17 00:00:00 2001
|
From 8d9355264f11034a28ad78e4e70809908acfdb3e Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
|
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
|
||||||
Date: Sun, 6 Dec 2020 08:34:19 +0100
|
Date: Sun, 6 Dec 2020 08:34:19 +0100
|
||||||
Subject: [PATCH 18/19] pkg-config: derive prefix from --prefix
|
Subject: [PATCH 17/18] pkg-config: derive prefix from --prefix
|
||||||
|
|
||||||
Point prefix to the one configured, instead of `/usr` `systemd` has limited
|
Point prefix to the one configured, instead of `/usr` `systemd` has limited
|
||||||
support for making the pkgconfig prefix overridable, and interpolates those
|
support for making the pkgconfig prefix overridable, and interpolates those
|
||||||
|
@ -29,5 +29,5 @@ index 162432e77f..2fc20daf03 100644
|
||||||
rootprefix=${root_prefix}
|
rootprefix=${root_prefix}
|
||||||
sysconf_dir={{SYSCONF_DIR}}
|
sysconf_dir={{SYSCONF_DIR}}
|
||||||
--
|
--
|
||||||
2.34.0
|
2.36.1
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
From 291ead07daab980fa39fd18512c8266c23161540 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yuriy Taraday <yorik.sar@gmail.com>
|
||||||
|
Date: Fri, 17 Jun 2022 12:45:10 +0000
|
||||||
|
Subject: [PATCH 18/18] inherit systemd environment when calling generators.
|
||||||
|
|
||||||
|
Systemd generators need access to the environment configured in
|
||||||
|
stage-2-init.sh since it schedules fsck and mkfs executions based on
|
||||||
|
being able to find an appropriate binary for the target filesystem.
|
||||||
|
|
||||||
|
With this commit I am altering the systemd behaviour since upstream
|
||||||
|
tries to gather environments with that they call
|
||||||
|
"environment-generators" and then seems to pass that on to all the other
|
||||||
|
executables that are being called from managers.
|
||||||
|
---
|
||||||
|
src/core/manager.c | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/core/manager.c b/src/core/manager.c
|
||||||
|
index 71ef7f27b4..33ded94a7c 100644
|
||||||
|
--- a/src/core/manager.c
|
||||||
|
+++ b/src/core/manager.c
|
||||||
|
@@ -3704,9 +3704,17 @@ static int build_generator_environment(Manager *m, char ***ret) {
|
||||||
|
* adjust generated units to that. Let's pass down some bits of information that are easy for us to
|
||||||
|
* determine (but a bit harder for generator scripts to determine), as environment variables. */
|
||||||
|
|
||||||
|
+ // On NixOS we must propagate PATH to generators so they are
|
||||||
|
+ // able to find binaries such as `fsck.${fstype}` and
|
||||||
|
+ // `mkfs.${fstype}`. That is why we ignore transient_environment that
|
||||||
|
+ // overrides the PATH variable. This propagates systemd's
|
||||||
|
+ // environment (e.g. PATH) that was setup
|
||||||
|
+ // before calling systemd from stage-2-init.sh.
|
||||||
|
+#if 0
|
||||||
|
nl = strv_copy(m->transient_environment);
|
||||||
|
if (!nl)
|
||||||
|
return -ENOMEM;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
r = strv_env_assign(&nl, "SYSTEMD_SCOPE", MANAGER_IS_SYSTEM(m) ? "system" : "user");
|
||||||
|
if (r < 0)
|
||||||
|
--
|
||||||
|
2.36.1
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
From 169fc6f270ff3e3903a7a31550c964152f9751ec Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Rammhold <andreas@rammhold.de>
|
|
||||||
Date: Wed, 18 Aug 2021 19:10:08 +0200
|
|
||||||
Subject: [PATCH 19/19] core: handle lookup paths being symlinks
|
|
||||||
|
|
||||||
With a recent change paths leaving the statically known lookup paths
|
|
||||||
would be treated differently then those that remained within those. That
|
|
||||||
was done (AFAIK) to consistently handle alias names. Unfortunately that
|
|
||||||
means that on some distributions, especially those where /etc/ consists
|
|
||||||
mostly of symlinks, would trigger that new detection for every single
|
|
||||||
unit in /etc/systemd/system. The reason for that is that the units
|
|
||||||
directory itself is already a symlink.
|
|
||||||
---
|
|
||||||
src/basic/unit-file.c | 33 +++++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 31 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/basic/unit-file.c b/src/basic/unit-file.c
|
|
||||||
index 30c632dfce..6179100126 100644
|
|
||||||
--- a/src/basic/unit-file.c
|
|
||||||
+++ b/src/basic/unit-file.c
|
|
||||||
@@ -255,6 +255,7 @@ int unit_file_build_name_map(
|
|
||||||
|
|
||||||
_cleanup_hashmap_free_ Hashmap *ids = NULL, *names = NULL;
|
|
||||||
_cleanup_set_free_free_ Set *paths = NULL;
|
|
||||||
+ _cleanup_strv_free_ char **expanded_search_paths = NULL;
|
|
||||||
uint64_t timestamp_hash;
|
|
||||||
char **dir;
|
|
||||||
int r;
|
|
||||||
@@ -274,6 +275,34 @@ int unit_file_build_name_map(
|
|
||||||
return log_oom();
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* Go over all our search paths, chase their symlinks and store the
|
|
||||||
+ * result in the expanded_search_paths list.
|
|
||||||
+ *
|
|
||||||
+ * This is important for cases where any of the unit directories itself
|
|
||||||
+ * are symlinks into other directories and would therefore cause all of
|
|
||||||
+ * the unit files to be recognized as linked units.
|
|
||||||
+ *
|
|
||||||
+ * This is important for distributions such as NixOS where most paths
|
|
||||||
+ * in /etc/ are symlinks to some other location on the filesystem (e.g.
|
|
||||||
+ * into /nix/store/).
|
|
||||||
+ */
|
|
||||||
+ STRV_FOREACH(dir, (char**) lp->search_path) {
|
|
||||||
+ _cleanup_free_ char *resolved_dir = NULL;
|
|
||||||
+ r = strv_extend(&expanded_search_paths, *dir);
|
|
||||||
+ if (r < 0)
|
|
||||||
+ return log_oom();
|
|
||||||
+
|
|
||||||
+ r = chase_symlinks(*dir, NULL, 0, &resolved_dir, NULL);
|
|
||||||
+ if (r < 0) {
|
|
||||||
+ if (r != -ENOENT)
|
|
||||||
+ log_warning_errno(r, "Failed to resolve symlink %s, ignoring: %m", *dir);
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (strv_consume(&expanded_search_paths, TAKE_PTR(resolved_dir)) < 0)
|
|
||||||
+ return log_oom();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
STRV_FOREACH(dir, (char**) lp->search_path) {
|
|
||||||
_cleanup_closedir_ DIR *d = NULL;
|
|
||||||
|
|
||||||
@@ -386,11 +415,11 @@ int unit_file_build_name_map(
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Check if the symlink goes outside of our search path.
|
|
||||||
+ /* Check if the symlink goes outside of our (expanded) search path.
|
|
||||||
* If yes, it's a linked unit file or mask, and we don't care about the target name.
|
|
||||||
* Let's just store the link source directly.
|
|
||||||
* If not, let's verify that it's a good symlink. */
|
|
||||||
- char *tail = path_startswith_strv(simplified, lp->search_path);
|
|
||||||
+ char *tail = path_startswith_strv(simplified, expanded_search_paths);
|
|
||||||
if (!tail) {
|
|
||||||
log_debug("%s: linked unit file: %s → %s",
|
|
||||||
__func__, filename, simplified);
|
|
||||||
--
|
|
||||||
2.34.0
|
|
||||||
|
|
|
@ -127,13 +127,13 @@ assert withCryptsetup -> (cryptsetup != null);
|
||||||
let
|
let
|
||||||
wantCurl = withRemote || withImportd;
|
wantCurl = withRemote || withImportd;
|
||||||
wantGcrypt = withResolved || withImportd;
|
wantGcrypt = withResolved || withImportd;
|
||||||
version = "250.4";
|
version = "251.3";
|
||||||
|
|
||||||
# Bump this variable on every (major) version change. See below (in the meson options list) for why.
|
# Bump this variable on every (major) version change. See below (in the meson options list) for why.
|
||||||
# command:
|
# command:
|
||||||
# $ curl -s https://api.github.com/repos/systemd/systemd/releases/latest | \
|
# $ curl -s https://api.github.com/repos/systemd/systemd/releases/latest | \
|
||||||
# jq '.created_at|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime'
|
# jq '.created_at|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime'
|
||||||
releaseTimestamp = "1640290180";
|
releaseTimestamp = "1653143108";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
@ -144,7 +144,7 @@ stdenv.mkDerivation {
|
||||||
owner = "systemd";
|
owner = "systemd";
|
||||||
repo = "systemd-stable";
|
repo = "systemd-stable";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-AdzPh7dGVrGbbjL9+PqytQOpRzNDUUEftmKZAbFH3L4=";
|
sha256 = "sha256-vcj+k/duRID2R+wGQIyq+dVRrFYNQTsjHya6k0hmZxk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# On major changes, or when otherwise required, you *must* reformat the patches,
|
# On major changes, or when otherwise required, you *must* reformat the patches,
|
||||||
|
@ -163,28 +163,13 @@ stdenv.mkDerivation {
|
||||||
./0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
|
./0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
|
||||||
./0010-localectl-use-etc-X11-xkb-for-list-x11.patch
|
./0010-localectl-use-etc-X11-xkb-for-list-x11.patch
|
||||||
./0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
|
./0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
|
||||||
./0012-inherit-systemd-environment-when-calling-generators.patch
|
./0012-add-rootprefix-to-lookup-dir-paths.patch
|
||||||
./0013-add-rootprefix-to-lookup-dir-paths.patch
|
./0013-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
|
||||||
./0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
|
./0014-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
|
||||||
./0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
|
./0015-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
|
||||||
./0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
|
./0016-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
|
||||||
./0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
|
./0017-pkg-config-derive-prefix-from-prefix.patch
|
||||||
./0018-pkg-config-derive-prefix-from-prefix.patch
|
./0018-inherit-systemd-environment-when-calling-generators.patch
|
||||||
|
|
||||||
# In v248 or v249 we started to get in trouble due to our
|
|
||||||
# /etc/systemd/system being a symlink and thus being treated differently by
|
|
||||||
# systemd. With the below patch we mitigate that effect by special casing
|
|
||||||
# all our root unit dirs if they are symlinks. This does exactly what we
|
|
||||||
# need (AFAICT).
|
|
||||||
# See https://github.com/systemd/systemd/pull/20479 for upstream discussion.
|
|
||||||
./0019-core-handle-lookup-paths-being-symlinks.patch
|
|
||||||
|
|
||||||
# fixes reproducability of dbus xml files
|
|
||||||
# Should no longer be necessary with v251.
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/systemd/systemd/pull/22174.patch";
|
|
||||||
sha256 = "sha256-RVhxUEUiISgRlIP/AhU+w1VHfDQw2W16cFl2TXXyxno=";
|
|
||||||
})
|
|
||||||
] ++ lib.optional stdenv.hostPlatform.isMusl (
|
] ++ lib.optional stdenv.hostPlatform.isMusl (
|
||||||
let
|
let
|
||||||
oe-core = fetchzip {
|
oe-core = fetchzip {
|
||||||
|
@ -547,6 +532,7 @@ stdenv.mkDerivation {
|
||||||
"src/analyze/test-verify.c"
|
"src/analyze/test-verify.c"
|
||||||
"src/test/test-env-file.c"
|
"src/test/test-env-file.c"
|
||||||
"src/test/test-fileio.c"
|
"src/test/test-fileio.c"
|
||||||
|
"src/test/test-load-fragment.c"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -573,29 +559,39 @@ stdenv.mkDerivation {
|
||||||
replacement = "\\\"${gnutar}/bin/tar\\\"";
|
replacement = "\\\"${gnutar}/bin/tar\\\"";
|
||||||
where = [
|
where = [
|
||||||
"src/import/export-tar.c"
|
"src/import/export-tar.c"
|
||||||
"src/import/export.c"
|
|
||||||
"src/import/import-common.c"
|
"src/import/import-common.c"
|
||||||
"src/import/import-tar.c"
|
"src/import/import-tar.c"
|
||||||
|
];
|
||||||
|
ignore = [
|
||||||
|
# occurences here refer to the tar sub command
|
||||||
|
"src/sysupdate/sysupdate-resource.c"
|
||||||
|
"src/sysupdate/sysupdate-transfer.c"
|
||||||
|
"src/import/pull.c"
|
||||||
|
"src/import/export.c"
|
||||||
"src/import/import.c"
|
"src/import/import.c"
|
||||||
"src/import/importd.c"
|
"src/import/importd.c"
|
||||||
|
# runs `tar` but also also creates a temporary directory with the string
|
||||||
"src/import/pull-tar.c"
|
"src/import/pull-tar.c"
|
||||||
"src/import/pull.c"
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
# { replacement, search, where } -> List[str]
|
# { replacement, search, where } -> List[str]
|
||||||
mkSubstitute = { replacement, search, where }:
|
mkSubstitute = { replacement, search, where, ignore ? [] }:
|
||||||
map (path: "substituteInPlace ${path} --replace '${search}' \"${replacement}\"") where;
|
map (path: "substituteInPlace ${path} --replace '${search}' \"${replacement}\"") where;
|
||||||
mkEnsureSubstituted = { replacement, search, where }:
|
mkEnsureSubstituted = { replacement, search, where, ignore ? [] }:
|
||||||
''
|
let
|
||||||
if [[ $(grep -r '${search}' | grep -v "${replacement}" | grep -Ev 'NEWS|^test/' | wc -l) -gt 0 ]]; then
|
ignore' = lib.concatStringsSep "|" (ignore ++ ["^test" "NEWS"]);
|
||||||
echo "Not all references to '${search}' have been replaced. Found the following matches:"
|
in ''
|
||||||
grep '${search}' -r | grep -v "${replacement}" | grep -Ev 'NEWS|^test/'
|
set +e
|
||||||
exit 1
|
search=$(grep '${search}' -r | grep -v "${replacement}" | grep -Ev "${ignore'}")
|
||||||
fi
|
set -e
|
||||||
'';
|
if [[ -n "$search" ]]; then
|
||||||
|
echo "Not all references to '${search}' have been replaced. Found the following matches:"
|
||||||
|
echo "$search"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
''
|
''
|
||||||
mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org")
|
mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org")
|
||||||
|
@ -606,6 +602,9 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
substituteInPlace src/libsystemd/sd-journal/catalog.c \
|
substituteInPlace src/libsystemd/sd-journal/catalog.c \
|
||||||
--replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
|
--replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
|
||||||
|
|
||||||
|
substituteInPlace src/import/pull-tar.c \
|
||||||
|
--replace 'wait_for_terminate_and_check("tar"' 'wait_for_terminate_and_check("${gnutar}/bin/tar"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# These defines are overridden by CFLAGS and would trigger annoying
|
# These defines are overridden by CFLAGS and would trigger annoying
|
||||||
|
|
Loading…
Reference in a new issue