Hello community,
here is the log from the commit of package systemd for openSUSE:Factory checked in at 2019-11-03 11:58:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
and /work/SRC/openSUSE:Factory/.systemd.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd"
Sun Nov 3 11:58:18 2019 rev:300 rq:744384 version:243
Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2019-10-23 15:45:57.318377129 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new.2990/systemd-mini.changes 2019-11-03 11:58:21.615434088 +0100
@@ -1,0 +2,59 @@
+Thu Oct 31 07:38:55 UTC 2019 - Franck Bui
+
+- Drop 0001-compat-rules-escape-when-used-for-shell-expansion.patch
+
+ It's part of the previous import.
+
+-------------------------------------------------------------------
+Thu Oct 31 07:32:47 UTC 2019 - Franck Bui
+
+- Import commit b7467b7b553d6d0d6f92758d966b69f1a88b6b42
+
+ 441f44f371 fileio: introduce read_full_virtual_file() for reading virtual files in sysfs, procfs (bsc#1133495)
+ 8a1bb5c66b swap: do not make swap units wanted by its device unit anymore
+
+-------------------------------------------------------------------
+Tue Oct 29 10:35:03 UTC 2019 - Franck Bui
+
+- Import commit 5df9000899ef7d45ddbcacd0fdf73afa07a40f6b
+
+ f0ed7237e4 udev/cdrom_id: Do not open CD-rom in exclusive mode. (bsc#1154256)
+ b37054aa5a compat-rules: escape '$' when used for shell expansion
+
+ Changes from the v243-stable:
+
+ ef677436aa test: Pass personality test even when i686 userland runs on x86_64 kernel
+ 3f6398c450 docs: fix inadvertent change in uid range
+ 25bb377a73 cgroup: fix typo in BPF firewall support warning message
+ 6d97aca0d5 fix build with compilers with default stack-protector enabled
+ fbad077cec nspawn: surrender controlling terminal to PID2 when using the PID1 stub
+ 0553c3c668 pid1: fix DefaultTasksMax initialization
+ f406a691a7 src/core/automount: use DirectoryMode when calling mkdir -p
+ 20438f96c3 udevadm trigger: do not propagate EACCES and ENODEV
+ 6480630bc3 hwdb: Correct WWWW Pattern In Documentation Comment
+ 9d8e889810 nspawn: consistenly fail if parsing the environment fails
+ 40e169b304 nspawn: default to unified hierarchy if --as-pid2 is used
+ b5df1037a0 cgroup: Mark memory protections as explicitly set in transient units
+ f14e3e02cc cgroup: Respect DefaultMemoryMin when setting memory.min
+ ea248e53bf cgroup: Check ancestor memory min for unified memory config
+ de1d25a506 cgroup: docs: memory.high doc fixups
+ 2ab45f38d8 cgroup: docs: Mention unbounded protection for memory.{low,min}
+ 19a43dc38a Consider smb3 as remote filesystem
+ 5c0224c7bf Handle d_type == DT_UNKNOWN correctly
+ 8282bc61df util-lib: Don't propagate EACCES from find_binary PATH lookup to caller
+ 9d0ae987a6 network: drop noisy log message
+ f67f0e4ec4 Updated log message when the timesync happens for the first time (#13624)
+ e151bf4674 units: make systemd-binfmt.service easier to work with no autofs
+ 2b8e574d82 Corect man page reference in systemd-nologin.conf comments
+ a0577353f1 man: Add a missing space in machinectl(1)
+ 693e983988 log: Add missing "%" in "%m" log format strings
+ ea7151b8c4 pid1: do not warn if /run/systemd/relabel-extra.d/ doesn't exist
+ b90549290e man: fix typo
+
+-------------------------------------------------------------------
+Tue Oct 22 22:25:34 UTC 2019 - Stefan Brüns
+
+- Remove intltool BuildRequires, not needed since v237
+- Use python3-base BuildRequires instead of full python3
+
+-------------------------------------------------------------------
systemd.changes: same change
Old:
----
0001-compat-rules-escape-when-used-for-shell-expansion.patch
systemd-v243+suse.91.g428b937f91.tar.xz
New:
----
systemd-v243+suse.126.gb7467b7b55.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.M2mKf9/_old 2019-11-03 11:58:23.995437071 +0100
+++ /var/tmp/diff_new_pack.M2mKf9/_new 2019-11-03 11:58:23.999437076 +0100
@@ -26,7 +26,7 @@
##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! #####
%define mini -mini
%define min_kernel_version 4.5
-%define suse_version +suse.91.g428b937f91
+%define suse_version +suse.126.gb7467b7b55
%bcond_with gnuefi
%if 0%{?bootstrap}
@@ -69,7 +69,7 @@
BuildRequires: libxslt-tools
BuildRequires: polkit
# python is only required for generating systemd.directives.xml
-BuildRequires: python3
+BuildRequires: python3-base
BuildRequires: python3-lxml
BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0
BuildRequires: pkgconfig(libdw)
@@ -84,7 +84,6 @@
%endif
BuildRequires: fdupes
BuildRequires: gperf
-BuildRequires: intltool
BuildRequires: libacl-devel
BuildRequires: libcap-devel
BuildRequires: libmount-devel >= 2.27.1
@@ -167,7 +166,6 @@
# broken in upstream and need an urgent fix. Even in this case, the
# patches are temporary and should be removed as soon as a fix is
# merged by upstream.
-Patch1: 0001-compat-rules-escape-when-used-for-shell-expansion.patch
Patch2: 0001-logind-keep-backward-compatibility-with-UserTasksMax.patch
%description
++++++ systemd.spec ++++++
--- /var/tmp/diff_new_pack.M2mKf9/_old 2019-11-03 11:58:24.023437106 +0100
+++ /var/tmp/diff_new_pack.M2mKf9/_new 2019-11-03 11:58:24.027437111 +0100
@@ -24,7 +24,7 @@
%define bootstrap 0
%define mini %nil
%define min_kernel_version 4.5
-%define suse_version +suse.91.g428b937f91
+%define suse_version +suse.126.gb7467b7b55
%bcond_with gnuefi
%if 0%{?bootstrap}
@@ -67,7 +67,7 @@
BuildRequires: libxslt-tools
BuildRequires: polkit
# python is only required for generating systemd.directives.xml
-BuildRequires: python3
+BuildRequires: python3-base
BuildRequires: python3-lxml
BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0
BuildRequires: pkgconfig(libdw)
@@ -82,7 +82,6 @@
%endif
BuildRequires: fdupes
BuildRequires: gperf
-BuildRequires: intltool
BuildRequires: libacl-devel
BuildRequires: libcap-devel
BuildRequires: libmount-devel >= 2.27.1
@@ -165,7 +164,6 @@
# broken in upstream and need an urgent fix. Even in this case, the
# patches are temporary and should be removed as soon as a fix is
# merged by upstream.
-Patch1: 0001-compat-rules-escape-when-used-for-shell-expansion.patch
Patch2: 0001-logind-keep-backward-compatibility-with-UserTasksMax.patch
%description
++++++ systemd-v243+suse.91.g428b937f91.tar.xz -> systemd-v243+suse.126.gb7467b7b55.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/docs/UIDS-GIDS.md new/systemd-v243+suse.126.gb7467b7b55/docs/UIDS-GIDS.md
--- old/systemd-v243+suse.91.g428b937f91/docs/UIDS-GIDS.md 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/docs/UIDS-GIDS.md 2019-10-31 08:31:53.000000000 +0100
@@ -237,7 +237,7 @@
| 65535 | 16bit `(uid_t) -1` | Linux | |
| 65536…524287 | Unused | | |
| 524288…1879048191 | Container UID ranges | `systemd` | `nss-mymachines` |
-| 1879048191…2147483647 | Unused | | |
+| 1879048192…2147483647 | Unused | | |
| 2147483648…4294967294 | HIC SVNT LEONES | | |
| 4294967295 | 32bit `(uid_t) -1` | Linux | |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/hwdb/60-keyboard.hwdb new/systemd-v243+suse.126.gb7467b7b55/hwdb/60-keyboard.hwdb
--- old/systemd-v243+suse.91.g428b937f91/hwdb/60-keyboard.hwdb 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/hwdb/60-keyboard.hwdb 2019-10-31 08:31:53.000000000 +0100
@@ -23,7 +23,7 @@
# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
# This matches on the kernel modalias of the input-device, mainly:
# ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
-# WWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
+# WWWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
# is an arbitrary length input-modalias describing the device capabilities.
# The vendor, product and version ID for a device node "eventX" is listed
# in /sys/class/input/eventX/device/id.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/man/machinectl.xml new/systemd-v243+suse.126.gb7467b7b55/man/machinectl.xml
--- old/systemd-v243+suse.91.g428b937f91/man/machinectl.xml 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/man/machinectl.xml 2019-10-31 08:31:53.000000000 +0100
@@ -695,7 +695,7 @@
server, under the same URL as the <filename>.tar</filename> file.
With <option>--verify=checksum</option>, only the SHA256 checksum
for the file is verified, based on the <filename>.sha256</filename>
- suffixed file or the<filename>SHA256SUMS</filename> file.
+ suffixed file or the <filename>SHA256SUMS</filename> file.
With <option>--verify=signature</option>, the sha checksum file is
first verified with the inline signature in the
<filename>.sha256</filename> file or the detached GPG signature file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/man/systemd-time-wait-sync.service.xml new/systemd-v243+suse.126.gb7467b7b55/man/systemd-time-wait-sync.service.xml
--- old/systemd-v243+suse.91.g428b937f91/man/systemd-time-wait-sync.service.xml 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/man/systemd-time-wait-sync.service.xml 2019-10-31 08:31:53.000000000 +0100
@@ -35,7 +35,7 @@
<para><filename>systemd-timesyncd.service</filename> notifies on successful synchronization.
<filename>systemd-time-wait-sync</filename> also tries to detect when the kernel marks the time as synchronized,
- but this detection is not reliable and is intended only as a fallback for other servies that can be used to
+ but this detection is not reliable and is intended only as a fallback for other services that can be used to
synchronize time (e.g., ntpd, chronyd).</para>
</refsect1>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/man/systemd.resource-control.xml new/systemd-v243+suse.126.gb7467b7b55/man/systemd.resource-control.xml
--- old/systemd-v243+suse.91.g428b937f91/man/systemd.resource-control.xml 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/man/systemd.resource-control.xml 2019-10-31 08:31:53.000000000 +0100
@@ -239,7 +239,9 @@
<para>Takes a memory size in bytes. If the value is suffixed with K, M, G or T, the specified memory size is
parsed as Kilobytes, Megabytes, Gigabytes, or Terabytes (with the base 1024), respectively. Alternatively, a
percentage value may be specified, which is taken relative to the installed physical memory on the
- system. This controls the <literal>memory.min</literal> control group attribute. For details about this
+ system. If assigned the special value <literal>infinity</literal>, all available memory is protected, which may be
+ useful in order to always inherit all of the protection afforded by ancestors.
+ This controls the <literal>memory.min</literal> control group attribute. For details about this
control group attribute, see <ulink
url="https://www.kernel.org/doc/Documentation/cgroup-v2.txt">cgroup-v2.txt</ulink>.</para>
@@ -263,7 +265,9 @@
<para>Takes a memory size in bytes. If the value is suffixed with K, M, G or T, the specified memory size is
parsed as Kilobytes, Megabytes, Gigabytes, or Terabytes (with the base 1024), respectively. Alternatively, a
percentage value may be specified, which is taken relative to the installed physical memory on the
- system. This controls the <literal>memory.low</literal> control group attribute. For details about this
+ system. If assigned the special value <literal>infinity</literal>, all available memory is protected, which may be
+ useful in order to always inherit all of the protection afforded by ancestors.
+ This controls the <literal>memory.low</literal> control group attribute. For details about this
control group attribute, see <ulink
url="https://www.kernel.org/doc/Documentation/cgroup-v2.txt">cgroup-v2.txt</ulink>.</para>
@@ -280,7 +284,7 @@
<term><varname>MemoryHigh=<replaceable>bytes</replaceable></varname></term>
<listitem>
- <para>Specify the high limit on memory usage of the executed processes in this unit. Memory usage may go
+ <para>Specify the throttling limit on memory usage of the executed processes in this unit. Memory usage may go
above the limit if unavoidable, but the processes are heavily slowed down and memory is taken away
aggressively in such cases. This is the main mechanism to control memory usage of a unit.</para>
@@ -288,7 +292,7 @@
parsed as Kilobytes, Megabytes, Gigabytes, or Terabytes (with the base 1024), respectively. Alternatively, a
percentage value may be specified, which is taken relative to the installed physical memory on the
system. If assigned the
- special value <literal>infinity</literal>, no memory limit is applied. This controls the
+ special value <literal>infinity</literal>, no memory throttling is applied. This controls the
<literal>memory.high</literal> control group attribute. For details about this control group attribute, see
<ulink url="https://www.kernel.org/doc/Documentation/cgroup-v2.txt">cgroup-v2.txt</ulink>.</para>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/meson.build new/systemd-v243+suse.126.gb7467b7b55/meson.build
--- old/systemd-v243+suse.91.g428b937f91/meson.build 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/meson.build 2019-10-31 08:31:53.000000000 +0100
@@ -382,6 +382,7 @@
possible_link_flags = [
'-Wl,-z,relro',
'-Wl,-z,now',
+ '-fstack-protector',
]
if cc.get_id() == 'clang'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/rules/61-persistent-storage-compat.rules new/systemd-v243+suse.126.gb7467b7b55/rules/61-persistent-storage-compat.rules
--- old/systemd-v243+suse.91.g428b937f91/rules/61-persistent-storage-compat.rules 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/rules/61-persistent-storage-compat.rules 2019-10-31 08:31:53.000000000 +0100
@@ -80,17 +80,17 @@
# symlink is created.
KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_EUI_COMPAT}!="?*", ATTRS{eui}=="?*", ATTRS{eui}!="0000000000000000", \
- PROGRAM=="/bin/sh -c 'eui=\"%s{eui}\"; echo ${eui// /}", ENV{ID_NVME_EUI_COMPAT}="2%c"
+ PROGRAM=="/bin/sh -c 'eui=\"%s{eui}\"; echo $${eui// /}", ENV{ID_NVME_EUI_COMPAT}="2%c"
KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_NGUID_COMPAT}!="?*", ATTRS{nguid}=="?*", \
- PROGRAM=="/bin/sh -c 'nguid=\"%s{nguid}\"; echo ${nguid//-/}", ENV{ID_NVME_NGUID_COMPAT}="%c"
+ PROGRAM=="/bin/sh -c 'nguid=\"%s{nguid}\"; echo $${nguid//-/}", ENV{ID_NVME_NGUID_COMPAT}="%c"
KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_NVME_SERIAL_COMPAT}!="?*", ATTRS{model}=="?*", ATTRS{serial}=="?*", \
PROGRAM=="/bin/sh -c ' \
cd /sys/%p; \
while ! [ -f model ]; do \
cd ..; \
- [ $(pwd) = %S ] && exit 1; \
+ [ $$(pwd) = %S ] && exit 1; \
done; \
cut -c 1-16 model'", ENV{ID_NVME_SERIAL_COMPAT}="SNVMe_%c%s{serial}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/basic/fileio.c new/systemd-v243+suse.126.gb7467b7b55/src/basic/fileio.c
--- old/systemd-v243+suse.91.g428b937f91/src/basic/fileio.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/basic/fileio.c 2019-10-31 08:31:53.000000000 +0100
@@ -310,6 +310,113 @@
return 1;
}
+int read_full_virtual_file(const char *filename, char **ret_contents, size_t *ret_size) {
+ _cleanup_free_ char *buf = NULL;
+ _cleanup_close_ int fd = -1;
+ struct stat st;
+ size_t n, size;
+ int n_retries;
+ char *p;
+
+ assert(ret_contents);
+
+ /* Virtual filesystems such as sysfs or procfs use kernfs, and kernfs can work
+ * with two sorts of virtual files. One sort uses "seq_file", and the results of
+ * the first read are buffered for the second read. The other sort uses "raw"
+ * reads which always go direct to the device. In the latter case, the content of
+ * the virtual file must be retrieved with a single read otherwise a second read
+ * might get the new value instead of finding EOF immediately. That's the reason
+ * why the usage of fread(3) is prohibited in this case as it always performs a
+ * second call to read(2) looking for EOF. See issue 13585. */
+
+ fd = open(filename, O_RDONLY|O_CLOEXEC);
+ if (fd < 0)
+ return -errno;
+
+ /* Start size for files in /proc which usually report a file size of 0. */
+ size = LINE_MAX / 2;
+
+ /* Limit the number of attempts to read the number of bytes returned by fstat(). */
+ n_retries = 3;
+
+ for (;;) {
+ if (n_retries <= 0)
+ return -EIO;
+
+ if (fstat(fd, &st) < 0)
+ return -errno;
+
+ if (!S_ISREG(st.st_mode))
+ return -EBADF;
+
+ /* Be prepared for files from /proc which generally report a file size of 0. */
+ if (st.st_size > 0) {
+ size = st.st_size;
+ n_retries--;
+ } else
+ size = size * 2;
+
+ if (size > READ_FULL_BYTES_MAX)
+ return -E2BIG;
+
+ p = realloc(buf, size + 1);
+ if (!p)
+ return -ENOMEM;
+ buf = TAKE_PTR(p);
+
+ for (;;) {
+ ssize_t k;
+
+ /* Read one more byte so we can detect whether the content of the
+ * file has already changed or the guessed size for files from /proc
+ * wasn't large enough . */
+ k = read(fd, buf, size + 1);
+ if (k >= 0) {
+ n = k;
+ break;
+ }
+
+ if (errno != -EINTR)
+ return -errno;
+ }
+
+ /* Consider a short read as EOF */
+ if (n <= size)
+ break;
+
+ /* Hmm... either we read too few bytes from /proc or less likely the content
+ * of the file might have been changed (and is now bigger) while we were
+ * processing, let's try again either with a bigger guessed size or the new
+ * file size. */
+
+ if (lseek(fd, 0, SEEK_SET) < 0)
+ return -errno;
+ }
+
+ if (n < size) {
+ p = realloc(buf, n + 1);
+ if (!p)
+ return -ENOMEM;
+ buf = TAKE_PTR(p);
+ }
+
+ if (!ret_size) {
+ /* Safety check: if the caller doesn't want to know the size of what we
+ * just read it will rely on the trailing NUL byte. But if there's an
+ * embedded NUL byte, then we should refuse operation as otherwise
+ * there'd be ambiguity about what we just read. */
+
+ if (memchr(buf, 0, n))
+ return -EBADMSG;
+ } else
+ *ret_size = n;
+
+ buf[n] = 0;
+ *ret_contents = TAKE_PTR(buf);
+
+ return 0;
+}
+
int read_full_stream_full(
FILE *f,
const char *filename,
@@ -342,9 +449,9 @@
if (st.st_size > READ_FULL_BYTES_MAX)
return -E2BIG;
- /* Start with the right file size, but be prepared for files from /proc which generally report a file
- * size of 0. Note that we increase the size to read here by one, so that the first read attempt
- * already makes us notice the EOF. */
+ /* Start with the right file size. Note that we increase the size
+ * to read here by one, so that the first read attempt already
+ * makes us notice the EOF. */
if (st.st_size > 0)
n_next = st.st_size + 1;
@@ -502,7 +609,7 @@
assert(pattern);
assert(field);
- r = read_full_file(filename, &status, NULL);
+ r = read_full_virtual_file(filename, &status, NULL);
if (r < 0)
return r;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/basic/fileio.h new/systemd-v243+suse.126.gb7467b7b55/src/basic/fileio.h
--- old/systemd-v243+suse.91.g428b937f91/src/basic/fileio.h 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/basic/fileio.h 2019-10-31 08:31:53.000000000 +0100
@@ -56,6 +56,7 @@
static inline int read_full_file(const char *filename, char **contents, size_t *size) {
return read_full_file_full(filename, 0, contents, size);
}
+int read_full_virtual_file(const char *filename, char **ret_contents, size_t *ret_size);
int read_full_stream_full(FILE *f, const char *filename, ReadFullFileFlags flags, char **contents, size_t *size);
static inline int read_full_stream(FILE *f, char **contents, size_t *size) {
return read_full_stream_full(f, NULL, 0, contents, size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/basic/mountpoint-util.c new/systemd-v243+suse.126.gb7467b7b55/src/basic/mountpoint-util.c
--- old/systemd-v243+suse.91.g428b937f91/src/basic/mountpoint-util.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/basic/mountpoint-util.c 2019-10-31 08:31:53.000000000 +0100
@@ -298,6 +298,7 @@
return STR_IN_SET(fstype,
"afs",
"cifs",
+ "smb3",
"smbfs",
"sshfs",
"ncpfs",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/basic/path-util.c new/systemd-v243+suse.126.gb7467b7b55/src/basic/path-util.c
--- old/systemd-v243+suse.91.g428b937f91/src/basic/path-util.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/basic/path-util.c 2019-10-31 08:31:53.000000000 +0100
@@ -651,7 +651,9 @@
return 0;
}
- last_error = -errno;
+ /* PATH entries which we don't have access to are ignored, as per tradition. */
+ if (errno != EACCES)
+ last_error = -errno;
}
return last_error;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/core/automount.c new/systemd-v243+suse.126.gb7467b7b55/src/core/automount.c
--- old/systemd-v243+suse.91.g428b937f91/src/core/automount.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/core/automount.c 2019-10-31 08:31:53.000000000 +0100
@@ -568,7 +568,7 @@
if (r < 0)
goto fail;
- (void) mkdir_p_label(a->where, 0555);
+ (void) mkdir_p_label(a->where, a->directory_mode);
unit_warn_if_dir_nonempty(UNIT(a), a->where);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/core/cgroup.c new/systemd-v243+suse.126.gb7467b7b55/src/core/cgroup.c
--- old/systemd-v243+suse.91.g428b937f91/src/core/cgroup.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/core/cgroup.c 2019-10-31 08:31:53.000000000 +0100
@@ -933,7 +933,7 @@
c = unit_get_cgroup_context(u);
assert(c);
- return c->memory_min > 0 || unit_get_ancestor_memory_low(u) > 0 ||
+ return unit_get_ancestor_memory_min(u) > 0 || unit_get_ancestor_memory_low(u) > 0 ||
c->memory_high != CGROUP_LIMIT_MAX || c->memory_max != CGROUP_LIMIT_MAX ||
c->memory_swap_max != CGROUP_LIMIT_MAX;
}
@@ -1200,7 +1200,7 @@
log_cgroup_compat(u, "Applying MemoryLimit=%" PRIu64 " as MemoryMax=", max);
}
- cgroup_apply_unified_memory_limit(u, "memory.min", c->memory_min);
+ cgroup_apply_unified_memory_limit(u, "memory.min", unit_get_ancestor_memory_min(u));
cgroup_apply_unified_memory_limit(u, "memory.low", unit_get_ancestor_memory_low(u));
cgroup_apply_unified_memory_limit(u, "memory.high", c->memory_high);
cgroup_apply_unified_memory_limit(u, "memory.max", max);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/core/dbus-cgroup.c new/systemd-v243+suse.126.gb7467b7b55/src/core/dbus-cgroup.c
--- old/systemd-v243+suse.91.g428b937f91/src/core/dbus-cgroup.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/core/dbus-cgroup.c 2019-10-31 08:31:53.000000000 +0100
@@ -531,7 +531,7 @@
static bool warned = false;
log_full(warned ? LOG_DEBUG : LOG_WARNING,
- "Transient unit %s configures an IP firewall with BPF, but the local system does not support BPF/cgroup firewalling with mulitiple filters.\n"
+ "Transient unit %s configures an IP firewall with BPF, but the local system does not support BPF/cgroup firewalling with multiple filters.\n"
"Starting this unit will fail! (This warning is only shown for the first started transient unit using IP firewalling.)", u->id);
warned = true;
}
@@ -749,17 +749,33 @@
if (streq(name, "MemoryAccounting"))
return bus_cgroup_set_boolean(u, name, &c->memory_accounting, CGROUP_MASK_MEMORY, message, flags, error);
- if (streq(name, "MemoryMin"))
- return bus_cgroup_set_memory_protection(u, name, &c->memory_min, message, flags, error);
+ if (streq(name, "MemoryMin")) {
+ r = bus_cgroup_set_memory_protection(u, name, &c->memory_min, message, flags, error);
+ if (r > 0)
+ c->memory_min_set = true;
+ return r;
+ }
- if (streq(name, "MemoryLow"))
- return bus_cgroup_set_memory_protection(u, name, &c->memory_low, message, flags, error);
+ if (streq(name, "MemoryLow")) {
+ r = bus_cgroup_set_memory_protection(u, name, &c->memory_low, message, flags, error);
+ if (r > 0)
+ c->memory_low_set = true;
+ return r;
+ }
- if (streq(name, "DefaultMemoryMin"))
- return bus_cgroup_set_memory_protection(u, name, &c->default_memory_min, message, flags, error);
+ if (streq(name, "DefaultMemoryMin")) {
+ r = bus_cgroup_set_memory_protection(u, name, &c->default_memory_min, message, flags, error);
+ if (r > 0)
+ c->default_memory_min_set = true;
+ return r;
+ }
- if (streq(name, "DefaultMemoryLow"))
- return bus_cgroup_set_memory_protection(u, name, &c->default_memory_low, message, flags, error);
+ if (streq(name, "DefaultMemoryLow")) {
+ r = bus_cgroup_set_memory_protection(u, name, &c->default_memory_low, message, flags, error);
+ if (r > 0)
+ c->default_memory_low_set = true;
+ return r;
+ }
if (streq(name, "MemoryHigh"))
return bus_cgroup_set_memory(u, name, &c->memory_high, message, flags, error);
@@ -773,17 +789,33 @@
if (streq(name, "MemoryLimit"))
return bus_cgroup_set_memory(u, name, &c->memory_limit, message, flags, error);
- if (streq(name, "MemoryMinScale"))
- return bus_cgroup_set_memory_protection_scale(u, name, &c->memory_min, message, flags, error);
+ if (streq(name, "MemoryMinScale")) {
+ r = bus_cgroup_set_memory_protection_scale(u, name, &c->memory_min, message, flags, error);
+ if (r > 0)
+ c->memory_min_set = true;
+ return r;
+ }
- if (streq(name, "MemoryLowScale"))
- return bus_cgroup_set_memory_protection_scale(u, name, &c->memory_low, message, flags, error);
+ if (streq(name, "MemoryLowScale")) {
+ r = bus_cgroup_set_memory_protection_scale(u, name, &c->memory_low, message, flags, error);
+ if (r > 0)
+ c->memory_low_set = true;
+ return r;
+ }
- if (streq(name, "DefaultMemoryMinScale"))
- return bus_cgroup_set_memory_protection_scale(u, name, &c->default_memory_min, message, flags, error);
+ if (streq(name, "DefaultMemoryMinScale")) {
+ r = bus_cgroup_set_memory_protection_scale(u, name, &c->default_memory_min, message, flags, error);
+ if (r > 0)
+ c->default_memory_min_set = true;
+ return r;
+ }
- if (streq(name, "DefaultMemoryLowScale"))
- return bus_cgroup_set_memory_protection_scale(u, name, &c->default_memory_low, message, flags, error);
+ if (streq(name, "DefaultMemoryLowScale")) {
+ r = bus_cgroup_set_memory_protection_scale(u, name, &c->default_memory_low, message, flags, error);
+ if (r > 0)
+ c->default_memory_low_set = true;
+ return r;
+ }
if (streq(name, "MemoryHighScale"))
return bus_cgroup_set_memory_scale(u, name, &c->memory_high, message, flags, error);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/core/mount-setup.c new/systemd-v243+suse.126.gb7467b7b55/src/core/mount-setup.c
--- old/systemd-v243+suse.91.g428b937f91/src/core/mount-setup.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/core/mount-setup.c 2019-10-31 08:31:53.000000000 +0100
@@ -495,8 +495,9 @@
log_warning_errno(errno, "Failed to remove /run/systemd/relabel-extra.d/%s, ignoring: %m", de->d_name);
}
- /* Remove when we completing things. */
- if (rmdir("/run/systemd/relabel-extra.d") < 0)
+ /* Remove when we complete things. */
+ if (rmdir("/run/systemd/relabel-extra.d") < 0 &&
+ errno != ENOENT)
log_warning_errno(errno, "Failed to remove /run/systemd/relabel-extra.d/ directory: %m");
return c;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/core/smack-setup.c new/systemd-v243+suse.126.gb7467b7b55/src/core/smack-setup.c
--- old/systemd-v243+suse.91.g428b937f91/src/core/smack-setup.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/core/smack-setup.c 2019-10-31 08:31:53.000000000 +0100
@@ -84,6 +84,7 @@
FOREACH_DIRENT(entry, dir, return 0) {
_cleanup_fclose_ FILE *policy = NULL;
+ dirent_ensure_type(dir, entry);
if (!dirent_is_file(entry))
continue;
@@ -150,6 +151,7 @@
FOREACH_DIRENT(entry, dir, return 0) {
_cleanup_fclose_ FILE *policy = NULL;
+ dirent_ensure_type(dir, entry);
if (!dirent_is_file(entry))
continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/core/swap.c new/systemd-v243+suse.126.gb7467b7b55/src/core/swap.c
--- old/systemd-v243+suse.91.g428b937f91/src/core/swap.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/core/swap.c 2019-10-31 08:31:53.000000000 +0100
@@ -195,12 +195,11 @@
return 0;
if (is_device_path(s->what))
- return unit_add_node_dependency(UNIT(s), s->what, MANAGER_IS_SYSTEM(UNIT(s)->manager), UNIT_BINDS_TO, UNIT_DEPENDENCY_FILE);
- else
- /* File based swap devices need to be ordered after
- * systemd-remount-fs.service, since they might need a
- * writable file system. */
- return unit_add_dependency_by_name(UNIT(s), UNIT_AFTER, SPECIAL_REMOUNT_FS_SERVICE, true, UNIT_DEPENDENCY_FILE);
+ return unit_add_node_dependency(UNIT(s), s->what, false, UNIT_BINDS_TO, UNIT_DEPENDENCY_FILE);
+
+ /* File based swap devices need to be ordered after systemd-remount-fs.service,
+ * since they might need a writable file system. */
+ return unit_add_dependency_by_name(UNIT(s), UNIT_AFTER, SPECIAL_REMOUNT_FS_SERVICE, true, UNIT_DEPENDENCY_FILE);
}
static int swap_add_default_dependencies(Swap *s) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/core/unit.c new/systemd-v243+suse.126.gb7467b7b55/src/core/unit.c
--- old/systemd-v243+suse.91.g428b937f91/src/core/unit.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/core/unit.c 2019-10-31 08:31:53.000000000 +0100
@@ -2788,7 +2788,7 @@
r = sd_event_source_set_priority(s, SD_EVENT_PRIORITY_IDLE);
if (r < 0)
- return log_error_errno(r, "Failed to adjust priority of event source for tidying watched PIDs: m");
+ return log_error_errno(r, "Failed to adjust priority of event source for tidying watched PIDs: %m");
(void) sd_event_source_set_description(s, "tidy-watch-pids");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/libsystemd/sd-device/sd-device.c new/systemd-v243+suse.126.gb7467b7b55/src/libsystemd/sd-device/sd-device.c
--- old/systemd-v243+suse.91.g428b937f91/src/libsystemd/sd-device/sd-device.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/libsystemd/sd-device/sd-device.c 2019-10-31 08:31:53.000000000 +0100
@@ -1786,7 +1786,7 @@
size_t size;
/* read attribute value */
- r = read_full_file(path, &value, &size);
+ r = read_full_virtual_file(path, &value, &size);
if (r < 0)
return r;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/login/logind-dbus.c new/systemd-v243+suse.126.gb7467b7b55/src/login/logind-dbus.c
--- old/systemd-v243+suse.91.g428b937f91/src/login/logind-dbus.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/login/logind-dbus.c 2019-10-31 08:31:53.000000000 +0100
@@ -1378,6 +1378,7 @@
struct dirent *de;
FOREACH_DIRENT_ALL(de, d, break) {
+ dirent_ensure_type(d, de);
if (!dirent_is_file(de))
continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/login/logind.c new/systemd-v243+suse.126.gb7467b7b55/src/login/logind.c
--- old/systemd-v243+suse.91.g428b937f91/src/login/logind.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/login/logind.c 2019-10-31 08:31:53.000000000 +0100
@@ -291,6 +291,7 @@
FOREACH_DIRENT(de, d, return -errno) {
int k;
+ dirent_ensure_type(d, de);
if (!dirent_is_file(de))
continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/network/networkd-link.c new/systemd-v243+suse.126.gb7467b7b55/src/network/networkd-link.c
--- old/systemd-v243+suse.91.g428b937f91/src/network/networkd-link.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/network/networkd-link.c 2019-10-31 08:31:53.000000000 +0100
@@ -856,8 +856,6 @@
if (link->state != LINK_STATE_CONFIGURING)
return;
- log_link_info(link, "Configured");
-
link_set_state(link, LINK_STATE_CONFIGURED);
(void) link_join_netdevs_after_configured(link);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/nspawn/nspawn-stub-pid1.c new/systemd-v243+suse.126.gb7467b7b55/src/nspawn/nspawn-stub-pid1.c
--- old/systemd-v243+suse.91.g428b937f91/src/nspawn/nspawn-stub-pid1.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/nspawn/nspawn-stub-pid1.c 2019-10-31 08:31:53.000000000 +0100
@@ -53,6 +53,12 @@
assert_se(sigfillset(&fullmask) >= 0);
assert_se(sigprocmask(SIG_BLOCK, &fullmask, &oldmask) >= 0);
+ /* Surrender the terminal this stub may control so that child processes can have a controlling terminal
+ * without resorting to setsid hacks. */
+ r = ioctl(STDIN_FILENO, TIOCNOTTY);
+ if (r < 0 && errno != ENOTTY)
+ return log_error_errno(errno, "Failed to surrender controlling terminal: %m");
+
pid = fork();
if (pid < 0)
return log_error_errno(errno, "Failed to fork child pid: %m");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/nspawn/nspawn.c new/systemd-v243+suse.126.gb7467b7b55/src/nspawn/nspawn.c
--- old/systemd-v243+suse.91.g428b937f91/src/nspawn/nspawn.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/nspawn/nspawn.c 2019-10-31 08:31:53.000000000 +0100
@@ -433,8 +433,8 @@
static int detect_unified_cgroup_hierarchy_from_image(const char *directory) {
int r;
- /* Let's inherit the mode to use from the host system, but let's take into consideration what systemd in the
- * image actually supports. */
+ /* Let's inherit the mode to use from the host system, but let's take into consideration what systemd
+ * in the image actually supports. */
r = cg_all_unified();
if (r < 0)
return log_error_errno(r, "Failed to determine whether we are in all unified mode.");
@@ -467,58 +467,66 @@
return 0;
}
-static void parse_share_ns_env(const char *name, unsigned long ns_flag) {
+static int parse_share_ns_env(const char *name, unsigned long ns_flag) {
int r;
r = getenv_bool(name);
if (r == -ENXIO)
- return;
+ return 0;
if (r < 0)
- log_warning_errno(r, "Failed to parse %s from environment, defaulting to false.", name);
+ return log_error_errno(r, "Failed to parse $%s: %m", name);
arg_clone_ns_flags = (arg_clone_ns_flags & ~ns_flag) | (r > 0 ? 0 : ns_flag);
arg_settings_mask |= SETTING_CLONE_NS_FLAGS;
+ return 0;
}
-static void parse_mount_settings_env(void) {
+static int parse_mount_settings_env(void) {
const char *e;
int r;
r = getenv_bool("SYSTEMD_NSPAWN_TMPFS_TMP");
+ if (r < 0 && r != -ENXIO)
+ return log_error_errno(r, "Failed to parse $SYSTEMD_NSPAWN_TMPFS_TMP: %m");
if (r >= 0)
SET_FLAG(arg_mount_settings, MOUNT_APPLY_TMPFS_TMP, r > 0);
- else if (r != -ENXIO)
- log_warning_errno(r, "Failed to parse $SYSTEMD_NSPAWN_TMPFS_TMP, ignoring: %m");
e = getenv("SYSTEMD_NSPAWN_API_VFS_WRITABLE");
- if (!e)
- return;
-
- if (streq(e, "network")) {
+ if (streq_ptr(e, "network"))
arg_mount_settings |= MOUNT_APPLY_APIVFS_RO|MOUNT_APPLY_APIVFS_NETNS;
- return;
- }
- r = parse_boolean(e);
- if (r < 0) {
- log_warning_errno(r, "Failed to parse SYSTEMD_NSPAWN_API_VFS_WRITABLE from environment, ignoring.");
- return;
+ else if (e) {
+ r = parse_boolean(e);
+ if (r < 0)
+ return log_error_errno(r, "Failed to parse $SYSTEMD_NSPAWN_API_VFS_WRITABLE: %m");
+
+ SET_FLAG(arg_mount_settings, MOUNT_APPLY_APIVFS_RO, r == 0);
+ SET_FLAG(arg_mount_settings, MOUNT_APPLY_APIVFS_NETNS, false);
}
- SET_FLAG(arg_mount_settings, MOUNT_APPLY_APIVFS_RO, r == 0);
- SET_FLAG(arg_mount_settings, MOUNT_APPLY_APIVFS_NETNS, false);
+ return 0;
}
-static void parse_environment(void) {
+static int parse_environment(void) {
const char *e;
int r;
- parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_IPC", CLONE_NEWIPC);
- parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_PID", CLONE_NEWPID);
- parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_UTS", CLONE_NEWUTS);
- parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_SYSTEM", CLONE_NEWIPC|CLONE_NEWPID|CLONE_NEWUTS);
+ r = parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_IPC", CLONE_NEWIPC);
+ if (r < 0)
+ return r;
+ r = parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_PID", CLONE_NEWPID);
+ if (r < 0)
+ return r;
+ r = parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_NS_UTS", CLONE_NEWUTS);
+ if (r < 0)
+ return r;
+ r = parse_share_ns_env("SYSTEMD_NSPAWN_SHARE_SYSTEM", CLONE_NEWIPC|CLONE_NEWPID|CLONE_NEWUTS);
+ if (r < 0)
+ return r;
- parse_mount_settings_env();
+ r = parse_mount_settings_env();
+ if (r < 0)
+ return r;
/* SYSTEMD_NSPAWN_USE_CGNS=0 can be used to disable CLONE_NEWCGROUP use,
* even if it is supported. If not supported, it has no effect. */
@@ -528,7 +536,7 @@
r = getenv_bool("SYSTEMD_NSPAWN_USE_CGNS");
if (r < 0) {
if (r != -ENXIO)
- log_warning_errno(r, "Failed to parse $SYSTEMD_NSPAWN_USE_CGNS, ignoring: %m");
+ return log_error_errno(r, "Failed to parse $SYSTEMD_NSPAWN_USE_CGNS: %m");
arg_use_cgns = true;
} else {
@@ -541,7 +549,7 @@
if (e)
arg_container_service_name = e;
- detect_unified_cgroup_hierarchy_from_environment();
+ return detect_unified_cgroup_hierarchy_from_environment();
}
static int parse_argv(int argc, char *argv[]) {
@@ -1424,7 +1432,9 @@
arg_caps_retain = (arg_caps_retain | plus | (arg_private_network ? UINT64_C(1) << CAP_NET_ADMIN : 0)) & ~minus;
/* Make sure to parse environment before we reset the settings mask below */
- parse_environment();
+ r = parse_environment();
+ if (r < 0)
+ return r;
/* Load all settings from .nspawn files */
if (mask_no_settings)
@@ -1440,6 +1450,25 @@
static int verify_arguments(void) {
int r;
+ if (arg_start_mode == START_PID2 && arg_unified_cgroup_hierarchy == CGROUP_UNIFIED_UNKNOWN) {
+ /* If we are running the stub init in the container, we don't need to look at what the init
+ * in the container supports, because we are not using it. Let's immediately pick the right
+ * setting based on the host system configuration.
+ *
+ * We only do this, if the user didn't use an environment variable to override the detection.
+ */
+
+ r = cg_all_unified();
+ if (r < 0)
+ return log_error_errno(r, "Failed to determine whether we are in all unified mode.");
+ if (r > 0)
+ arg_unified_cgroup_hierarchy = CGROUP_UNIFIED_ALL;
+ else if (cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) > 0)
+ arg_unified_cgroup_hierarchy = CGROUP_UNIFIED_SYSTEMD;
+ else
+ arg_unified_cgroup_hierarchy = CGROUP_UNIFIED_NONE;
+ }
+
if (arg_userns_mode != USER_NAMESPACE_NO)
arg_mount_settings |= MOUNT_USE_USERNS;
@@ -4730,9 +4759,8 @@
if (r < 0)
goto finish;
- r = detect_unified_cgroup_hierarchy_from_environment();
- if (r < 0)
- goto finish;
+ /* Reapply environment settings. */
+ (void) detect_unified_cgroup_hierarchy_from_environment();
/* Ignore SIGPIPE here, because we use splice() on the ptyfwd stuff and that will generate SIGPIPE if
* the result is closed. Note that the container payload child will reset signal mask+handler anyway,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/shared/bootspec.c new/systemd-v243+suse.126.gb7467b7b55/src/shared/bootspec.c
--- old/systemd-v243+suse.91.g428b937f91/src/shared/bootspec.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/shared/bootspec.c 2019-10-31 08:31:53.000000000 +0100
@@ -475,6 +475,7 @@
_cleanup_free_ char *j = NULL, *osrelease = NULL, *cmdline = NULL;
_cleanup_close_ int fd = -1;
+ dirent_ensure_type(d, de);
if (!dirent_is_file(de))
continue;
@@ -876,7 +877,7 @@
errno = 0;
r = blkid_probe_lookup_value(b, "PART_ENTRY_NUMBER", &v, NULL);
if (r != 0)
- return log_error_errno(errno ?: SYNTHETIC_ERRNO(EIO), "Failed to probe partition number of \"%s\": m", node);
+ return log_error_errno(errno ?: SYNTHETIC_ERRNO(EIO), "Failed to probe partition number of \"%s\": %m", node);
r = safe_atou32(v, &part);
if (r < 0)
return log_error_errno(r, "Failed to parse PART_ENTRY_NUMBER field.");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/shared/unit-file.c new/systemd-v243+suse.126.gb7467b7b55/src/shared/unit-file.c
--- old/systemd-v243+suse.91.g428b937f91/src/shared/unit-file.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/shared/unit-file.c 2019-10-31 08:31:53.000000000 +0100
@@ -279,6 +279,7 @@
if (hashmap_contains(ids, de->d_name))
continue;
+ dirent_ensure_type(d, de);
if (de->d_type == DT_LNK) {
/* We don't explicitly check for alias loops here. unit_ids_map_get() which
* limits the number of hops should be used to access the map. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/timesync/timesyncd-manager.c new/systemd-v243+suse.126.gb7467b7b55/src/timesync/timesyncd-manager.c
--- old/systemd-v243+suse.91.g428b937f91/src/timesync/timesyncd-manager.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/timesync/timesyncd-manager.c 2019-10-31 08:31:53.000000000 +0100
@@ -617,9 +617,9 @@
m->good = true;
server_address_pretty(m->current_server_address, &pretty);
- /* "for the first time", as further successful syncs will not be logged. */
- log_info("Synchronized to time server for the first time %s (%s).", strna(pretty), m->current_server_name->string);
- sd_notifyf(false, "STATUS=Synchronized to time server for the first time %s (%s).", strna(pretty), m->current_server_name->string);
+ /* "Initial", as further successful syncs will not be logged. */
+ log_info("Initial synchronization to time server %s (%s).", strna(pretty), m->current_server_name->string);
+ sd_notifyf(false, "STATUS=Initial synchronization to time server %s (%s).", strna(pretty), m->current_server_name->string);
}
r = manager_arm_timer(m, m->poll_interval_usec);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/udev/cdrom_id/cdrom_id.c new/systemd-v243+suse.126.gb7467b7b55/src/udev/cdrom_id/cdrom_id.c
--- old/systemd-v243+suse.91.g428b937f91/src/udev/cdrom_id/cdrom_id.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/udev/cdrom_id/cdrom_id.c 2019-10-31 08:31:53.000000000 +0100
@@ -85,28 +85,6 @@
#define ASC(errcode) (((errcode) >> 8) & 0xFF)
#define ASCQ(errcode) ((errcode) & 0xFF)
-static bool is_mounted(const char *device) {
- struct stat statbuf;
- FILE *fp;
- int maj, min;
- bool mounted = false;
-
- if (stat(device, &statbuf) < 0)
- return false;
-
- fp = fopen("/proc/self/mountinfo", "re");
- if (!fp)
- return false;
- while (fscanf(fp, "%*s %*s %i:%i %*[^\n]", &maj, &min) == 2) {
- if (makedev(maj, min) == statbuf.st_rdev) {
- mounted = true;
- break;
- }
- }
- fclose(fp);
- return mounted;
-}
-
static void info_scsi_cmd_err(const char *cmd, int err) {
if (err == -1)
log_debug("%s failed", cmd);
@@ -873,7 +851,7 @@
for (cnt = 20; cnt > 0; cnt--) {
struct timespec duration;
- fd = open(node, O_RDONLY|O_NONBLOCK|O_CLOEXEC|(is_mounted(node) ? 0 : O_EXCL));
+ fd = open(node, O_RDONLY|O_NONBLOCK|O_CLOEXEC);
if (fd >= 0 || errno != EBUSY)
break;
duration.tv_sec = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/src/udev/udevadm-trigger.c new/systemd-v243+suse.126.gb7467b7b55/src/udev/udevadm-trigger.c
--- old/systemd-v243+suse.91.g428b937f91/src/udev/udevadm-trigger.c 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/src/udev/udevadm-trigger.c 2019-10-31 08:31:53.000000000 +0100
@@ -45,9 +45,11 @@
r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER);
if (r < 0) {
- log_full_errno(r == -ENOENT ? LOG_DEBUG : LOG_ERR, r,
+ bool ignore = IN_SET(r, -ENOENT, -EACCES, -ENODEV);
+
+ log_full_errno(ignore ? LOG_DEBUG : LOG_ERR, r,
"Failed to write '%s' to '%s': %m", action, filename);
- if (ret == 0 && r != -ENOENT)
+ if (ret == 0 && !ignore)
ret = r;
continue;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/test/test-execute/exec-personality-x86.service new/systemd-v243+suse.126.gb7467b7b55/test/test-execute/exec-personality-x86.service
--- old/systemd-v243+suse.91.g428b937f91/test/test-execute/exec-personality-x86.service 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/test/test-execute/exec-personality-x86.service 2019-10-31 08:31:53.000000000 +0100
@@ -2,6 +2,6 @@
Description=Test for Personality=x86
[Service]
-ExecStart=/bin/sh -x -c 'c=$$(uname -m); test "$$c" = "i686"'
+ExecStart=/bin/sh -x -c 'c=$$(uname -m); test "$$c" = "i686" -o "$$c" = "x86_64"'
Type=oneshot
Personality=x86
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/tmpfiles.d/systemd-nologin.conf new/systemd-v243+suse.126.gb7467b7b55/tmpfiles.d/systemd-nologin.conf
--- old/systemd-v243+suse.91.g428b937f91/tmpfiles.d/systemd-nologin.conf 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/tmpfiles.d/systemd-nologin.conf 2019-10-31 08:31:53.000000000 +0100
@@ -5,7 +5,7 @@
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
-# See tmpfiles.d(5), systemd-user-session.service(5) and pam_nologin(8).
+# See tmpfiles.d(5), systemd-user-sessions.service(8) and pam_nologin(8).
# This file has special suffix so it is not run by mistake.
F! /run/nologin 0644 - - - "System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/units/proc-sys-fs-binfmt_misc.mount new/systemd-v243+suse.126.gb7467b7b55/units/proc-sys-fs-binfmt_misc.mount
--- old/systemd-v243+suse.91.g428b937f91/units/proc-sys-fs-binfmt_misc.mount 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/units/proc-sys-fs-binfmt_misc.mount 2019-10-31 08:31:53.000000000 +0100
@@ -18,3 +18,6 @@
Where=/proc/sys/fs/binfmt_misc
Type=binfmt_misc
Options=nosuid,nodev,noexec
+
+[Install]
+WantedBy=sysinit.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/systemd-v243+suse.91.g428b937f91/units/systemd-binfmt.service.in new/systemd-v243+suse.126.gb7467b7b55/units/systemd-binfmt.service.in
--- old/systemd-v243+suse.91.g428b937f91/units/systemd-binfmt.service.in 2019-10-04 16:25:57.000000000 +0200
+++ new/systemd-v243+suse.126.gb7467b7b55/units/systemd-binfmt.service.in 2019-10-31 08:31:53.000000000 +0100
@@ -15,6 +15,7 @@
DefaultDependencies=no
Conflicts=shutdown.target
After=proc-sys-fs-binfmt_misc.automount
+After=proc-sys-fs-binfmt_misc.mount
Before=sysinit.target shutdown.target
ConditionPathIsReadWrite=/proc/sys/
ConditionDirectoryNotEmpty=|/lib/binfmt.d