]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
systemd: Update to version 239
authorStefan Schantl <stefan.schantl@ipfire.org>
Sun, 21 Oct 2018 19:35:34 +0000 (21:35 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 21 Oct 2018 20:53:44 +0000 (21:53 +0100)
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
systemd/patches/0001-build-sys-Detect-whether-struct-statx-is-defined-in-.patch [new file with mode: 0644]
systemd/patches/0002-meson-rename-Ddebug-to-Ddebug-extra.patch [new file with mode: 0644]
systemd/patches/0003-bus-socket-Fix-line_begins-to-accept-word-matching-f.patch [new file with mode: 0644]
systemd/patches/systemd-231-ipfire-disable-tests.patch [deleted file]
systemd/systemd.nm

diff --git a/systemd/patches/0001-build-sys-Detect-whether-struct-statx-is-defined-in-.patch b/systemd/patches/0001-build-sys-Detect-whether-struct-statx-is-defined-in-.patch
new file mode 100644 (file)
index 0000000..5a2cf23
--- /dev/null
@@ -0,0 +1,105 @@
+From 75720bff62a84896e9a0654afc7cf9408cf89a38 Mon Sep 17 00:00:00 2001
+From: Filipe Brandenburger <filbranden@google.com>
+Date: Sun, 15 Jul 2018 22:43:35 -0700
+Subject: [PATCH] build-sys: Detect whether struct statx is defined in
+ sys/stat.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Starting with glibc 2.27.9000-36.fc29, include file sys/stat.h will have a
+definition for struct statx, in which case include file linux/stat.h should be
+avoided, in order to prevent a duplicate definition.
+
+    In file included from ../src/basic/missing.h:18,
+                    from ../src/basic/util.h:28,
+                    from ../src/basic/hashmap.h:10,
+                    from ../src/shared/bus-util.h:12,
+                    from ../src/libsystemd/sd-bus/bus-creds.c:11:
+    /usr/include/linux/stat.h:99:8: error: redefinition of ‘struct statx’
+     struct statx {
+           ^~~~~
+    In file included from /usr/include/sys/stat.h:446,
+                    from ../src/basic/util.h:19,
+                    from ../src/basic/hashmap.h:10,
+                    from ../src/shared/bus-util.h:12,
+                    from ../src/libsystemd/sd-bus/bus-creds.c:11:
+    /usr/include/bits/statx.h:36:8: note: originally defined here
+     struct statx
+           ^~~~~
+
+Extend our meson.build to look for struct statx when only sys/stat.h is
+included and, in that case, do not include linux/stat.h anymore.
+
+Tested that systemd builds correctly when using a glibc version that includes a
+definition for struct statx.
+
+glibc Fedora RPM update:
+https://src.fedoraproject.org/rpms/glibc/c/28cb5d31fc1e5887912283c889689c47076278ae
+
+glibc upstream commit:
+https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=fd70af45528d59a00eb3190ef6706cb299488fcd
+---
+ meson.build            | 5 +++++
+ src/basic/missing.h    | 5 ++++-
+ src/basic/xattr-util.c | 1 -
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index dd904c7148..68423bdfa5 100644
+--- a/meson.build
++++ b/meson.build
+@@ -425,6 +425,7 @@ decl_headers = '''
+ #include <sys/stat.h>
+ '''
+ # FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail
++# FIXME: these should use -D_GNU_SOURCE, since that is defined at build time
+ foreach decl : ['char16_t',
+                 'char32_t',
+@@ -439,6 +440,10 @@ foreach decl : ['char16_t',
+         conf.set10('HAVE_' + decl.underscorify().to_upper(), have)
+ endforeach
++conf.set10('HAVE_STRUCT_STATX_IN_SYS_STAT_H', cc.sizeof('struct statx', prefix : '''
++#include <sys/stat.h>
++''', args : '-D_GNU_SOURCE') > 0)
++
+ foreach decl : [['IFLA_INET6_ADDR_GEN_MODE',         'linux/if_link.h'],
+                 ['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
+                 ['IFLA_VRF_TABLE',                   'linux/if_link.h'],
+diff --git a/src/basic/missing.h b/src/basic/missing.h
+index 71a07d0574..14ad3d4914 100644
+--- a/src/basic/missing.h
++++ b/src/basic/missing.h
+@@ -15,7 +15,6 @@
+ #include <linux/neighbour.h>
+ #include <linux/oom.h>
+ #include <linux/rtnetlink.h>
+-#include <linux/stat.h>
+ #include <net/ethernet.h>
+ #include <stdlib.h>
+ #include <sys/resource.h>
+@@ -25,6 +24,10 @@
+ #include <uchar.h>
+ #include <unistd.h>
++#if !HAVE_STRUCT_STATX_IN_SYS_STAT_H
++#include <linux/stat.h>
++#endif
++
+ #if HAVE_AUDIT
+ #include <libaudit.h>
+ #endif
+diff --git a/src/basic/xattr-util.c b/src/basic/xattr-util.c
+index c5c55ea846..0ee0979837 100644
+--- a/src/basic/xattr-util.c
++++ b/src/basic/xattr-util.c
+@@ -2,7 +2,6 @@
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <linux/stat.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
diff --git a/systemd/patches/0002-meson-rename-Ddebug-to-Ddebug-extra.patch b/systemd/patches/0002-meson-rename-Ddebug-to-Ddebug-extra.patch
new file mode 100644 (file)
index 0000000..81402af
--- /dev/null
@@ -0,0 +1,43 @@
+From 8f6b442a78d0b485f044742ad90b2e8271b4e68e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
+Date: Sun, 19 Aug 2018 19:11:30 +0200
+Subject: [PATCH] meson: rename -Ddebug to -Ddebug-extra
+
+Meson added -Doptimization and -Ddebug options, which obviously causes
+a conflict with our -Ddebug options. Let's rename it.
+
+Fixes #9883.
+---
+ meson.build       | 2 +-
+ meson_options.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index f79ac4b12..2209c935a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -763,7 +763,7 @@ substs.set('DEBUGTTY', get_option('debug-tty'))
+ enable_debug_hashmap = false
+ enable_debug_mmap_cache = false
+-foreach name : get_option('debug')
++foreach name : get_option('debug-extra')
+         if name == 'hashmap'
+                 enable_debug_hashmap = true
+         elif name == 'mmap-cache'
+diff --git a/meson_options.txt b/meson_options.txt
+index e3140c8c1..7b1f61bf4 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -45,7 +45,7 @@ option('debug-shell', type : 'string', value : '/bin/sh',
+        description : 'path to debug shell binary')
+ option('debug-tty', type : 'string', value : '/dev/tty9',
+        description : 'specify the tty device for debug shell')
+-option('debug', type : 'array', choices : ['hashmap', 'mmap-cache'], value : [],
++option('debug-extra', type : 'array', choices : ['hashmap', 'mmap-cache'], value : [],
+        description : 'enable extra debugging')
+ option('memory-accounting-default', type : 'boolean',
+        description : 'enable MemoryAccounting= by default')
+-- 
+2.14.4
+
diff --git a/systemd/patches/0003-bus-socket-Fix-line_begins-to-accept-word-matching-f.patch b/systemd/patches/0003-bus-socket-Fix-line_begins-to-accept-word-matching-f.patch
new file mode 100644 (file)
index 0000000..1b9df6d
--- /dev/null
@@ -0,0 +1,48 @@
+From 3f10c66270b74530339b3f466c43874bb40c210f Mon Sep 17 00:00:00 2001
+From: Filipe Brandenburger <filbranden@google.com>
+Date: Tue, 17 Jul 2018 11:32:40 -0700
+Subject: [PATCH] bus-socket: Fix line_begins() to accept word matching full
+ string
+
+The switch to memory_startswith() changed the logic to only look for a space or
+NUL byte after the matched word, but matching the full size should also be
+acceptable.
+
+This changed the behavior of parsing of "AUTH\r\n", where m will be set to 4,
+since even though the word will match, the check for it being followed by ' '
+or NUL will make line_begins() return false.
+
+Tested:
+
+- Using netcat to connect to the private socket directly:
+  $ echo -ne '\0AUTH\r\n' | sudo nc -U /run/systemd/private
+  REJECTED EXTERNAL ANONYMOUS
+
+- Running the Ignition blackbox test:
+  $ sudo sh -c 'PATH=$PWD/bin/amd64:$PATH ./tests.test'
+  PASS
+
+Fixes: d27b725abf64a19a6b2f99332b663f17ad046771
+---
+ src/libsystemd/sd-bus/bus-socket.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
+index be491c957..a785a247c 100644
+--- a/src/libsystemd/sd-bus/bus-socket.c
++++ b/src/libsystemd/sd-bus/bus-socket.c
+@@ -246,10 +246,7 @@ static bool line_begins(const char *s, size_t m, const char *word) {
+         const char *p;
+         p = memory_startswith(s, m, word);
+-        if (!p)
+-                return false;
+-
+-        return IN_SET(*p, 0, ' ');
++        return p && (p == (s + m) || *p == ' ');
+ }
+ static int verify_anonymous_token(sd_bus *b, const char *p, size_t l) {
+-- 
+2.14.4
+
diff --git a/systemd/patches/systemd-231-ipfire-disable-tests.patch b/systemd/patches/systemd-231-ipfire-disable-tests.patch
deleted file mode 100644 (file)
index cd4bbe9..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-diff -Nur a/Makefile.am b/Makefile.am
---- a/Makefile.am      2016-07-25 21:49:47.000000000 +0200
-+++ b/Makefile.am      2016-09-23 08:34:47.924257243 +0200
-@@ -1480,9 +1480,7 @@
-       test-job-type \
-       test-env-util \
-       test-strbuf \
--      test-strv \
-       test-path \
--      test-path-util \
-       test-strxcpyx \
-       test-siphash24 \
-       test-unit-name \
-@@ -1541,7 +1539,6 @@
-       test-capability \
-       test-async \
-       test-ratelimit \
--      test-condition \
-       test-uid-range \
-       test-locale-util \
-       test-execute \
-@@ -3586,11 +3583,9 @@
- tests += \
-       test-dhcp-option \
--      test-dhcp-client \
-       test-dhcp-server \
-       test-ipv4ll \
-       test-ndisc-rs \
--      test-dhcp6-client \
-       test-lldp
- # ------------------------------------------------------------------------------
-@@ -4298,16 +4293,11 @@
-       catalog-remove-hook
- tests += \
--      test-journal \
-       test-journal-enum \
-       test-journal-send \
-       test-journal-syslog \
-       test-journal-match \
--      test-journal-stream \
-       test-journal-init \
--      test-journal-verify \
--      test-journal-interleaving \
--      test-journal-flush \
-       test-mmap-cache \
-       test-catalog \
-       test-audit-type
-@@ -6518,7 +6508,6 @@
-       test-libudev-sym.c
- tests += \
--      test-libsystemd-sym \
-       test-libudev-sym
- .PHONY: cppcheck
index a95228f15ee388f0ea7a159dbcce3caf0c82669f..368ecdf0efc35d12e47c2ea902a7e8c0afdb013f 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = systemd
-version    = 233
-release    = 3
+version    = 239
+release    = 1
 
 maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
 groups     = System/Base
@@ -35,8 +35,6 @@ build
                /usr/bin/tree
                /usr/bin/umount
 
-               autoconf
-               automake
                attr-devel
                cryptsetup-luks-devel >= 1.4.2
                dbus-devel
@@ -55,9 +53,10 @@ build
                libcap-devel
                libgcrypt-devel
                libmount-devel
-               libtool
                libuuid-devel
                m4
+               meson
+               ninja >= 1.5
                pam-devel
                pciutils-devel
                python3-devel
@@ -70,30 +69,36 @@ build
 
        export LD_LIBRARY_PATH = %{DIR_APP}/.libs
 
-       configure_options += \
-               PYTHON=%{python3} \
-               --with-sysvinit-path= \
-               --with-sysvrcnd-path= \
-               --enable-zlib \
-               --disable-smack \
-               --disable-backlight \
-               --disable-firstboot \
-               --disable-hibernate \
-               --disable-importd \
-               --disable-libiptc \
-               --disable-machined \
-               --disable-networkd \
-               --disable-resolved \
-               --disable-sysusers \
-               --disable-timesyncd \
-               --disable-timedated \
-               --disable-polkit \
-               --disable-static
+       configure_options = \
+               -Dsysvinit-path= \
+               -Dsysvrcnd-path= \
+               -Dzlib=true \
+               -Dsmack=false \
+               -Dbacklight=false \
+               -Dfirstboot=false \
+               -Dhibernate=false \
+               -Dimportd=false \
+               -Dlibiptc=false \
+               -Dmachined=false \
+               -Dnetworkd=false \
+               -Dresolve=false \
+               -Dportabled=false \
+               -Dsysusers=false \
+               -Dtimesyncd=false \
+               -Dtimedated=false \
+               -Dpolkit=false \
+               -Dstatic=false
 
        prepare_cmds
                %{create_groups}
+       end
+
+       build
+               # Call meson and pass configure options.
+               meson --buildtype=plain %{configure_options} . build
 
-               ./autogen.sh
+               # Call ninja to start build
+               ninja -v %{PARALLELISMFLAGS} -C build
        end
 
        test
@@ -104,10 +109,16 @@ build
                systemd-machine-id-setup
 
                # Run the testsuite.
-               make check || true
+               ninja test -v %{PARALLELISMFLAGS} -C build || true
        end
 
-       install_cmds
+       install
+               # Export destdir.
+               export DESTDIR=%{BUILDROOT}
+
+               # Call ninja to perform installation
+               ninja install -v %{PARALLELISMFLAGS} -C build
+
                # Create folder in log to store the journal.
                mkdir -pv %{BUILDROOT}/var/log/journal