]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #4879 from poettering/systemd
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 15 Jan 2017 00:48:04 +0000 (19:48 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 15 Jan 2017 02:29:27 +0000 (21:29 -0500)
1  2 
NEWS
TODO
configure.ac
man/systemd-firstboot.xml
man/systemd.service.xml
src/gpt-auto-generator/gpt-auto-generator.c
src/journal/journald-server.h
src/machine/image-dbus.c
src/machine/machinectl.c
src/nspawn/nspawn.c

diff --cc NEWS
index b8767a27581a2e5fea31ea353378f98c7acdf831,aad574ef746580376c07b9cb50514c80e619f6de..540f4231a132d57f8dc2204d6f742ab2a6e4f4a5
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -2,10 -2,11 +2,15 @@@ systemd System and Service Manage
  
  CHANGES WITH 233 in spe
  
 +        * DBus policy files are now installed into /usr rather than /etc. Make
 +          sure your system has dbus >= 1.9.18 running before upgrading to this
 +          version, or override the install path with --with-dbuspolicydir= .
 +
+         * The shell invoked by debug-shell.service now defaults to /bin/sh in
+           all cases. If distributions want to use a different shell for this
+           purpose (for example Fedora's /sbin/sushell) they need to specify
+           this explicitly at configure time using --with-debug-shell=.
          * The confirmation spawn prompt has been reworked to offer the
            following choices:
  
diff --cc TODO
index 89e08749035efa5bb066b74bdfec4661a52bbbdb,39e4d8bcc4742076bc6a29af84b7be8f100d542c..c06a47b7ea1b4be940a45d386b48529c3cb02a65
--- 1/TODO
--- 2/TODO
+++ b/TODO
@@@ -24,6 -24,19 +24,19 @@@ Janitorial Clean-ups
  
  Features:
  
 -  there of. This information can then be used to flush out old udev-created
+ * Maybe add a small tool invoked early at boot, that adds in or resizes
+   partitions automatically, to be used when the media used is actually larger
+   than the image written onto it is.
+ * change the dependency Set* objects in Unit structures to become Hashmap*, and
+   then store a bit mask who created a specific dependency: the source unit via
+   fragment configuration, the destination unit via fragment configuration, or
+   the source unit via udev rules (in case of .device units), or any combination
++  thereof. This information can then be used to flush out old udev-created
+   dependencies when the udev properties change, and eventually to implement a
+   "systemctl refresh" operation for reloading the configuration of individual
+   units without reloading the whole set.
  * Add ExecMonitor= setting. May be used multiple times. Forks off a process in
    the service cgroup, which is supposed to monitor the service, and when it
    exits the service is considered failed by its monitor.
diff --cc configure.ac
Simple merge
index b269e4811352b08fbbcbde35066ead30f245545e,4e3b1a3a8149595073ab575bad12d74e0f297907..8cdc297a0eec8086e02e2b2c6ae6804deda328f9
      otherwise.</para>
    </refsect1>
  
 -        <listitem><para>Takes a boolean argument, defaults to on. If off <filename>systemd-firstboot.service</filename>
 -        won't interactively query the user for basic settings at first boot, even if if the settings are not
+   <refsect1>
+     <title>Kernel Command Line</title>
+     <variablelist class='kernel-commandline-options'>
+       <varlistentry>
+         <term><varname>systemd.firstboot=</varname></term>
++        <listitem><para>Takes a boolean argument, defaults to on. If off, <filename>systemd-firstboot.service</filename>
++        won't interactively query the user for basic settings at first boot, even if those settings are not
+         initialized yet.</para></listitem>
+       </varlistentry>
+     </variablelist>
+   </refsect1>
    <refsect1>
      <title>See Also</title>
      <para>
Simple merge
index 0f95f0d813bf51a88fe1a37d718792a5de2dc88c,f05544f3d46e1400d2196008efa033d14f0d8cbd..e61ef8f249e989812e5c17e01eb89700ef667a8b
@@@ -876,8 -664,40 +664,40 @@@ static int get_block_device_harder(cons
                  if (!IN_SET(de->d_type, DT_LNK, DT_UNKNOWN))
                          continue;
  
-                 if (found) /* Don't try to support multiple backing block devices */
-                         goto fallback;
+                 if (found) {
+                         _cleanup_free_ char *u = NULL, *v = NULL, *a = NULL, *b = NULL;
+                         /* We found a device backed by multiple other devices. We don't really support automatic
+                          * discovery on such setups, with the exception of dm-verity partitions. In this case there are
 -                         * two backing devices: the data partitoin and the hash partition. We are fine with such
++                         * two backing devices: the data partition and the hash partition. We are fine with such
+                          * setups, however, only if both partitions are on the same physical device. Hence, let's
+                          * verify this. */
+                         u = strjoin(p, "/", de->d_name, "/../dev");
+                         if (!u)
+                                 return -ENOMEM;
+                         v = strjoin(p, "/", found->d_name, "/../dev");
+                         if (!v)
+                                 return -ENOMEM;
+                         r = read_one_line_file(u, &a);
+                         if (r < 0) {
+                                 log_debug_errno(r, "Failed to read %s: %m", u);
+                                 goto fallback;
+                         }
+                         r = read_one_line_file(v, &b);
+                         if (r < 0) {
+                                 log_debug_errno(r, "Failed to read %s: %m", v);
+                                 goto fallback;
+                         }
+                         /* Check if the parent device is the same. If not, then the two backing devices are on
+                          * different physical devices, and we don't support that. */
+                         if (!streq(a, b))
+                                 goto fallback;
+                 }
  
                  found = de;
          }
Simple merge
Simple merge
Simple merge
Simple merge