summary refs log tree commit diff
path: root/pkgs/os-specific/linux/systemd
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2020-03-07 23:47:22 +0100
committerFlorian Klink <flokli@flokli.de>2020-04-17 00:30:51 +0200
commit9de0ac3770c10221b0c6ad33576f2c525544581b (patch)
treea80898b286f84e50e375770f6d2336346cdf1532 /pkgs/os-specific/linux/systemd
parentb4cbcba5b11bc102761e790e988f820fcc885578 (diff)
downloadnixpkgs-9de0ac3770c10221b0c6ad33576f2c525544581b.tar
nixpkgs-9de0ac3770c10221b0c6ad33576f2c525544581b.tar.gz
nixpkgs-9de0ac3770c10221b0c6ad33576f2c525544581b.tar.bz2
nixpkgs-9de0ac3770c10221b0c6ad33576f2c525544581b.tar.lz
nixpkgs-9de0ac3770c10221b0c6ad33576f2c525544581b.tar.xz
nixpkgs-9de0ac3770c10221b0c6ad33576f2c525544581b.tar.zst
nixpkgs-9de0ac3770c10221b0c6ad33576f2c525544581b.zip
systemd: 243.7 -> 244.3
This required some changes in how we treat DEFAULT_PATH_NORMAL.
Diffstat (limited to 'pkgs/os-specific/linux/systemd')
-rw-r--r--pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0003-Don-t-try-to-unmount-nix-or-nix-store.patch16
-rw-r--r--pkgs/os-specific/linux/systemd/0012-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch44
-rw-r--r--pkgs/os-specific/linux/systemd/0018-Install-default-configuration-into-out-share-factory.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0020-reintroduce-the-no-such-path-PATH-that-was-dropped-s.patch41
-rw-r--r--pkgs/os-specific/linux/systemd/0025-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch33
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix13
7 files changed, 87 insertions, 76 deletions
diff --git a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
index 173f41a44c9..5418a6d9d91 100644
--- a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
+++ b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
@@ -9,13 +9,13 @@ makes more sense to me: the device is ready; it's the filesystem
 that's not, but taking care of that is the responsibility of the mount
 unit.  (However, this ignores the fsck unit, so it's not perfect...)
 ---
- rules/99-systemd.rules.in | 4 ----
+ rules.d/99-systemd.rules.in | 4 ----
  1 file changed, 4 deletions(-)
 
-diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
+diff --git a/rules.d/99-systemd.rules.in b/rules.d/99-systemd.rules.in
 index c34b606216..3ab8c1c3fe 100644
---- a/rules/99-systemd.rules.in
-+++ b/rules/99-systemd.rules.in
+--- a/rules.d/99-systemd.rules.in
++++ b/rules.d/99-systemd.rules.in
 @@ -17,10 +17,6 @@ SUBSYSTEM=="ubi", TAG+="systemd"
  SUBSYSTEM=="block", TAG+="systemd"
  SUBSYSTEM=="block", ACTION=="add", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"
diff --git a/pkgs/os-specific/linux/systemd/0003-Don-t-try-to-unmount-nix-or-nix-store.patch b/pkgs/os-specific/linux/systemd/0003-Don-t-try-to-unmount-nix-or-nix-store.patch
index 80b6721cb71..75110faf923 100644
--- a/pkgs/os-specific/linux/systemd/0003-Don-t-try-to-unmount-nix-or-nix-store.patch
+++ b/pkgs/os-specific/linux/systemd/0003-Don-t-try-to-unmount-nix-or-nix-store.patch
@@ -12,20 +12,18 @@ https://github.com/NixOS/nixos/issues/126
  2 files changed, 5 insertions(+), 1 deletion(-)
 
 diff --git a/src/core/mount.c b/src/core/mount.c
-index eef362f0c8..600393ffc1 100644
+index a0dfa6a1a7..4ca6adcdc6 100644
 --- a/src/core/mount.c
 +++ b/src/core/mount.c
-@@ -409,7 +409,9 @@ static bool mount_is_extrinsic(Mount *m) {
+@@ -414,6 +414,8 @@ static bool mount_is_extrinsic(Mount *m) {
  
          if (PATH_IN_SET(m->where,  /* Don't bother with the OS data itself */
-                         "/",
--                        "/usr"))
-+                        "/usr",
-+                        "/nix/",
-+                        "/nix/store"))
+                         "/",       /* (strictly speaking redundant: should already be covered by the perpetual flag check above) */
++                        "/nix",
++                        "/nix/store",
+                         "/usr",
+                         "/etc"))
                  return true;
- 
-         if (PATH_STARTSWITH_SET(m->where,
 diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c
 index 2d07d3d6c1..8b112f464e 100644
 --- a/src/shutdown/umount.c
diff --git a/pkgs/os-specific/linux/systemd/0012-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/os-specific/linux/systemd/0012-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
index 0b14eb7a58b..ad76fda7d95 100644
--- a/pkgs/os-specific/linux/systemd/0012-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
+++ b/pkgs/os-specific/linux/systemd/0012-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
@@ -1,15 +1,16 @@
-From 76f3fba3031d74647855ce0da2d4e317016cb7d6 Mon Sep 17 00:00:00 2001
+From 78479b75c9f9342646223b3db6b4b0744817dc24 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Tue, 11 Oct 2016 13:12:08 +0300
-Subject: [PATCH 12/27] Change /usr/share/zoneinfo to /etc/zoneinfo
+Subject: [PATCH] Change /usr/share/zoneinfo to /etc/zoneinfo
 
 NixOS uses this path.
 ---
  man/localtime.xml         | 4 ++--
  src/basic/time-util.c     | 6 +++---
  src/firstboot/firstboot.c | 2 +-
+ src/nspawn/nspawn.c       | 4 ++--
  src/timedate/timedated.c  | 8 ++++----
- 4 files changed, 10 insertions(+), 10 deletions(-)
+ 5 files changed, 12 insertions(+), 12 deletions(-)
 
 diff --git a/man/localtime.xml b/man/localtime.xml
 index 0f1652ee2e..71c4f95c2e 100644
@@ -34,10 +35,10 @@ index 0f1652ee2e..71c4f95c2e 100644
      <literal>Etc/UTC</literal>. The resulting link should lead to the
      corresponding binary
 diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index e14ae8f2f7..a8a3488be1 100644
+index 105584e2e7..5238f69931 100644
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
-@@ -1215,7 +1215,7 @@ int get_timezones(char ***ret) {
+@@ -1217,7 +1217,7 @@ int get_timezones(char ***ret) {
          n_allocated = 2;
          n_zones = 1;
  
@@ -46,7 +47,7 @@ index e14ae8f2f7..a8a3488be1 100644
          if (f) {
                  for (;;) {
                          _cleanup_free_ char *line = NULL;
-@@ -1310,7 +1310,7 @@ bool timezone_is_valid(const char *name, int log_level) {
+@@ -1312,7 +1312,7 @@ bool timezone_is_valid(const char *name, int log_level) {
          if (p - name >= PATH_MAX)
                  return false;
  
@@ -55,7 +56,7 @@ index e14ae8f2f7..a8a3488be1 100644
  
          fd = open(t, O_RDONLY|O_CLOEXEC);
          if (fd < 0) {
-@@ -1408,7 +1408,7 @@ int get_timezone(char **ret) {
+@@ -1410,7 +1410,7 @@ int get_timezone(char **ret) {
          if (r < 0)
                  return r; /* returns EINVAL if not a symlink */
  
@@ -77,11 +78,26 @@ index 528e6452cf..c712ca9072 100644
  
          (void) mkdir_parents(etc_localtime, 0755);
          if (symlink(e, etc_localtime) < 0)
+diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
+index 873a76596f..a024b10f32 100644
+--- a/src/nspawn/nspawn.c
++++ b/src/nspawn/nspawn.c
+@@ -1642,8 +1642,8 @@ static int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t u
+ static const char *timezone_from_path(const char *path) {
+         return PATH_STARTSWITH_SET(
+                         path,
+-                        "../usr/share/zoneinfo/",
+-                        "/usr/share/zoneinfo/");
++                        "../etc/zoneinfo/",
++                        "/etc/zoneinfo/");
+ }
+ 
+ static bool etc_writable(void) {
 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
-index fa20d22cde..8e6dbe1efb 100644
+index 5e2fb50d83..02eb2ca11d 100644
 --- a/src/timedate/timedated.c
 +++ b/src/timedate/timedated.c
-@@ -265,7 +265,7 @@ static int context_read_data(Context *c) {
+@@ -264,7 +264,7 @@ static int context_read_data(Context *c) {
  
          r = get_timezone(&t);
          if (r == -EINVAL)
@@ -90,7 +106,7 @@ index fa20d22cde..8e6dbe1efb 100644
          else if (r < 0)
                  log_warning_errno(r, "Failed to get target of /etc/localtime: %m");
  
-@@ -289,7 +289,7 @@ static int context_write_data_timezone(Context *c) {
+@@ -288,7 +288,7 @@ static int context_write_data_timezone(Context *c) {
  
          if (isempty(c->zone) || streq(c->zone, "UTC")) {
  
@@ -99,18 +115,18 @@ index fa20d22cde..8e6dbe1efb 100644
  
                          if (unlink("/etc/localtime") < 0 && errno != ENOENT)
                                  return -errno;
-@@ -297,9 +297,9 @@ static int context_write_data_timezone(Context *c) {
+@@ -296,9 +296,9 @@ static int context_write_data_timezone(Context *c) {
                          return 0;
                  }
  
 -                source = "../usr/share/zoneinfo/UTC";
-+                source = "zoneinfo/UTC";
++                source = "../etc/zoneinfo/UTC";
          } else {
 -                p = path_join("../usr/share/zoneinfo", c->zone);
-+                p = path_join("zoneinfo", c->zone);
++                p = path_join("../etc/zoneinfo", c->zone);
                  if (!p)
                          return -ENOMEM;
  
 -- 
-2.24.1
+2.25.1
 
diff --git a/pkgs/os-specific/linux/systemd/0018-Install-default-configuration-into-out-share-factory.patch b/pkgs/os-specific/linux/systemd/0018-Install-default-configuration-into-out-share-factory.patch
index 1793f5d1818..3911d1b0181 100644
--- a/pkgs/os-specific/linux/systemd/0018-Install-default-configuration-into-out-share-factory.patch
+++ b/pkgs/os-specific/linux/systemd/0018-Install-default-configuration-into-out-share-factory.patch
@@ -11,7 +11,7 @@ this commit introduces two new configuration variables `factoryconfdir`
 and `factorypkgconfdir` to install systemd's own configuration into nix
 store again, while having executables looking up files in /etc.
 ---
- hwdb/meson.build               |  2 +-
+ hwdb.d/meson.build               |  2 +-
  meson.build                    | 11 +++++++----
  network/meson.build            |  2 +-
  src/core/meson.build           | 10 +++++-----
@@ -30,10 +30,10 @@ store again, while having executables looking up files in /etc.
  units/meson.build              |  3 ++-
  17 files changed, 30 insertions(+), 26 deletions(-)
 
-diff --git a/hwdb/meson.build b/hwdb/meson.build
+diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
 index badf39f555..8fd9c7639f 100644
---- a/hwdb/meson.build
-+++ b/hwdb/meson.build
+--- a/hwdb.d/meson.build
++++ b/hwdb.d/meson.build
 @@ -26,7 +26,7 @@ if conf.get('ENABLE_HWDB') == 1
                       install_dir : udevhwdbdir)
  
diff --git a/pkgs/os-specific/linux/systemd/0020-reintroduce-the-no-such-path-PATH-that-was-dropped-s.patch b/pkgs/os-specific/linux/systemd/0020-reintroduce-the-no-such-path-PATH-that-was-dropped-s.patch
deleted file mode 100644
index 63d694c2daa..00000000000
--- a/pkgs/os-specific/linux/systemd/0020-reintroduce-the-no-such-path-PATH-that-was-dropped-s.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 95c4e1ffd2249a52ca02e4fbe46aa4e51c5abd17 Mon Sep 17 00:00:00 2001
-From: Andreas Rammhold <andreas@rammhold.de>
-Date: Fri, 2 Nov 2018 20:56:49 +0100
-Subject: [PATCH 20/27] reintroduce the /no-such-path PATH that was dropped
- some versions ago
-
-Originally eelco set the DEFAULT_PATH_NORMAL to "/no-such-path" since we
-do not need that in NixOS and usually refer to all our executables with
-an absolute path. This commit reintroduces this change.
----
- src/basic/path-util.h | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/src/basic/path-util.h b/src/basic/path-util.h
-index 71fb7041a3..b856e782a8 100644
---- a/src/basic/path-util.h
-+++ b/src/basic/path-util.h
-@@ -28,13 +28,13 @@
- #  define PATH_SBIN_BIN_NULSTR(x) PATH_NORMAL_SBIN_BIN_NULSTR(x)
- #endif
- 
--#define DEFAULT_PATH_NORMAL PATH_SBIN_BIN("/usr/local/") ":" PATH_SBIN_BIN("/usr/")
--#define DEFAULT_USER_PATH_NORMAL PATH_BIN_SBIN("/usr/local/") ":" PATH_BIN_SBIN("/usr/")
--#define DEFAULT_PATH_NORMAL_NULSTR PATH_SBIN_BIN_NULSTR("/usr/local/") PATH_SBIN_BIN_NULSTR("/usr/")
--#define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":" PATH_SBIN_BIN("/")
--#define DEFAULT_USER_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":" PATH_BIN_SBIN("/")
--#define DEFAULT_PATH_SPLIT_USR_NULSTR DEFAULT_PATH_NORMAL_NULSTR PATH_SBIN_BIN_NULSTR("/")
--#define DEFAULT_PATH_COMPAT PATH_SPLIT_SBIN_BIN("/usr/local/") ":" PATH_SPLIT_SBIN_BIN("/usr/") ":" PATH_SPLIT_SBIN_BIN("/")
-+#define DEFAULT_PATH_NORMAL "/no-such-path"
-+#define DEFAULT_USER_PATH_NORMAL "/no-such-path"
-+#define DEFAULT_PATH_NORMAL_NULSTR "/no-such-path\0"
-+#define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL
-+#define DEFAULT_USER_PATH_SPLIT_USR DEFAULT_PATH_NORMAL DEFAULT_PATH_NORMAL
-+#define DEFAULT_PATH_SPLIT_USR_NULSTR DEFAULT_PATH_NORMAL_NULSTR
-+#define DEFAULT_PATH_COMPAT DEFAULT_PATH_NORMAL
- 
- #if HAVE_SPLIT_USR
- #  define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
--- 
-2.24.1
-
diff --git a/pkgs/os-specific/linux/systemd/0025-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/pkgs/os-specific/linux/systemd/0025-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
new file mode 100644
index 00000000000..10bf54708f0
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/0025-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
@@ -0,0 +1,33 @@
+From 0939ac4be7ced099670979f26adf8a579173ce4b Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Sun, 8 Mar 2020 01:05:54 +0100
+Subject: [PATCH] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
+
+This will be the $PATH used to lookup ExecStart= etc. options, which
+systemd itself uses extensively.
+---
+ src/basic/path-util.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/basic/path-util.h b/src/basic/path-util.h
+index 111d85d445..cfd92aeb73 100644
+--- a/src/basic/path-util.h
++++ b/src/basic/path-util.h
+@@ -24,11 +24,11 @@
+ #  define PATH_SBIN_BIN_NULSTR(x) PATH_NORMAL_SBIN_BIN_NULSTR(x)
+ #endif
+ 
+-#define DEFAULT_PATH_NORMAL PATH_SBIN_BIN("/usr/local/") ":" PATH_SBIN_BIN("/usr/")
+-#define DEFAULT_PATH_NORMAL_NULSTR PATH_SBIN_BIN_NULSTR("/usr/local/") PATH_SBIN_BIN_NULSTR("/usr/")
++#define DEFAULT_PATH_NORMAL "@defaultPathNormal@"
++#define DEFAULT_PATH_NORMAL_NULSTR "@defaultPathNormal@\0"
+ #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":" PATH_SBIN_BIN("/")
+ #define DEFAULT_PATH_SPLIT_USR_NULSTR DEFAULT_PATH_NORMAL_NULSTR PATH_SBIN_BIN_NULSTR("/")
+-#define DEFAULT_PATH_COMPAT PATH_SPLIT_SBIN_BIN("/usr/local/") ":" PATH_SPLIT_SBIN_BIN("/usr/") ":" PATH_SPLIT_SBIN_BIN("/")
++#define DEFAULT_PATH_COMPAT DEFAULT_PATH_NORMAL
+ 
+ #if HAVE_SPLIT_USR
+ #  define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
+-- 
+2.25.1
+
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index c09db7e8ab0..045497b4b2b 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -7,6 +7,7 @@
 , gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45
 , ninja, meson, python3Packages, glibcLocales
 , patchelf
+, substituteAll
 , getent
 , buildPackages
 , perl
@@ -30,7 +31,7 @@ let gnupg-minimal = gnupg.override {
   bzip2 = null;
 };
 in stdenv.mkDerivation {
-  version = "243.7";
+  version = "244.3";
   pname = "systemd";
 
   # When updating, use https://github.com/systemd/systemd-stable tree, not the development one!
@@ -38,8 +39,8 @@ in stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "systemd";
     repo = "systemd-stable";
-    rev = "f8dd0f2f15a566ede668c59e3c810c61f9d62c51";
-    sha256 = "1alvvciddg36by1bgzi8aarnms4crzqqyizj3nhlddh35pgpwvdk";
+    rev = "c4280c342bbf4fa8da833103482362236c18f835";
+    sha256 = "0y83nsrbdn0y3wfyfx53ac8c3wy9jrra86aaxix568vigi48g9zi";
   };
 
   patches = [
@@ -56,13 +57,17 @@ in stdenv.mkDerivation {
     ./0016-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
     ./0018-Install-default-configuration-into-out-share-factory.patch
     ./0019-inherit-systemd-environment-when-calling-generators.patch
-    ./0020-reintroduce-the-no-such-path-PATH-that-was-dropped-s.patch
     ./0021-add-rootprefix-to-lookup-dir-paths.patch
     ./0022-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
     ./0023-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
     ./0024-kmod-static-nodes.service-Update-ConditionFileNotEmpty.patch
+    ./0025-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
   ];
 
+  postPatch = ''
+    substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/"
+  '';
+
   outputs = [ "out" "lib" "man" "dev" ];
 
   nativeBuildInputs =