Merge pull request #3419 from MilhouseVH/le10_systemd-242

systemd: update to systemd-242
This commit is contained in:
CvH 2019-05-04 07:25:22 +02:00 committed by GitHub
commit 9d0ed24d93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 308 deletions

View File

@ -3,8 +3,8 @@
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="systemd"
PKG_VERSION="239"
PKG_SHA256="8a11b1b07d620f4c06a16e95bba4dd2a97e90efdf2a5ba47ed0a935085787a14"
PKG_VERSION="242"
PKG_SHA256="ec22be9a5dd94c9640e6348ed8391d1499af8ca2c2f01109198a414cff6c6cba"
PKG_LICENSE="LGPL2.1+"
PKG_SITE="http://www.freedesktop.org/wiki/Software/systemd"
PKG_URL="https://github.com/systemd/systemd/archive/v$PKG_VERSION.tar.gz"
@ -36,12 +36,14 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
-Dqrencode=false \
-Dgcrypt=false \
-Dgnutls=false \
-Dopenssl=false \
-Delfutils=false \
-Dzlib=false \
-Dbzip2=false \
-Dxz=false \
-Dlz4=false \
-Dxkbcommon=false \
-Dpcre2=false \
-Dglib=false \
-Ddbus=false \
-Ddefault-dnssec=no \
@ -60,7 +62,6 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
-Dnetworkd=false \
-Dtimedated=false \
-Dtimesyncd=true \
-Dmyhostname=false \
-Dfirstboot=false \
-Drandomseed=false \
-Dbacklight=false \
@ -77,12 +78,14 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \
-Dsmack=false \
-Dgshadow=false \
-Didn=false \
-Dnss-myhostname=false \
-Dnss-mymachines=false \
-Dnss-resolve=false \
-Dnss-systemd=false \
-Dman=false \
-Dhtml=false \
-Dbashcompletiondir=no \
-Dzshcompletiondir=no \
-Dkill-path=/usr/bin/kill \
-Dkmod-path=/usr/bin/kmod \
-Dmount-path=/usr/bin/mount \
-Dumount-path=/usr/bin/umount"

View File

@ -1,53 +1,53 @@
From 73f401a5a33ad3e647791685a9af14e69c7a89f6 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 7 Aug 2015 13:25:23 +0300
Subject: [PATCH 3/8] move hwdb.bin to /run
From bf2776b7f9403057cb82c2697e4fca8b554db4bd Mon Sep 17 00:00:00 2001
From: MilhouseVH <milhouseVH.github@nmacleod.com>
Date: Thu, 11 Apr 2019 20:00:05 +0100
Subject: [PATCH] move hwdb.bin to /run
---
src/hwdb/hwdb.c | 2 +-
src/libsystemd/sd-hwdb/sd-hwdb.c | 2 +-
src/udev/udevadm-hwdb.c | 2 +-
src/libsystemd/sd-hwdb/hwdb-util.c | 2 +-
src/libsystemd/sd-hwdb/sd-hwdb.c | 2 +-
units/systemd-hwdb-update.service.in | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c
index 446de3a..be91bfe 100644
--- a/src/hwdb/hwdb.c
+++ b/src/hwdb/hwdb.c
@@ -38,7 +38,7 @@
* Uses a Patricia/radix trie to index all matches for efficient lookup.
*/
-static const char *arg_hwdb_bin_dir = "/etc/udev";
+static const char *arg_hwdb_bin_dir = "/run";
static const char *arg_root = "";
diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
index c83575c..6285f3d 100644
--- a/src/libsystemd/sd-hwdb/hwdb-util.c
+++ b/src/libsystemd/sd-hwdb/hwdb-util.c
@@ -20,7 +20,7 @@
#include "strv.h"
#include "tmpfile-util.h"
-static const char *default_hwdb_bin_dir = "/etc/udev";
+static const char *default_hwdb_bin_dir = "/run";
static const char * const conf_file_dirs[] = {
"/etc/udev/hwdb.d",
UDEVLIBEXECDIR "/hwdb.d",
diff --git a/src/libsystemd/sd-hwdb/sd-hwdb.c b/src/libsystemd/sd-hwdb/sd-hwdb.c
index 61c7b44..6e1de7d 100644
index 79fe1a8..0acbf71 100644
--- a/src/libsystemd/sd-hwdb/sd-hwdb.c
+++ b/src/libsystemd/sd-hwdb/sd-hwdb.c
@@ -269,7 +269,7 @@
@@ -299,7 +299,7 @@ static int trie_search_f(sd_hwdb *hwdb, const char *search) {
static const char hwdb_bin_paths[] =
"/etc/systemd/hwdb/hwdb.bin\0"
- "/etc/udev/hwdb.bin\0"
+ "/run/hwdb.bin\0"
"/usr/lib/systemd/hwdb/hwdb.bin\0"
#ifdef HAVE_SPLIT_USR
#if HAVE_SPLIT_USR
"/lib/systemd/hwdb/hwdb.bin\0"
diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c
index d65e40c..8889df7 100644
--- a/src/udev/udevadm-hwdb.c
+++ b/src/udev/udevadm-hwdb.c
@@ -562,7 +562,7 @@ static int adm_hwdb(struct udev *udev, int argc, char *argv[]) {
};
const char *test = NULL;
const char *root = "";
- const char *hwdb_bin_dir = "/etc/udev";
+ const char *hwdb_bin_dir = "/run";
bool update = false;
struct trie *trie = NULL;
int err, c;
diff --git a/units/systemd-hwdb-update.service.in b/units/systemd-hwdb-update.service.in
index 259fe0d..18d617f 100644
--- a/units/systemd-hwdb-update.service.in
+++ b/units/systemd-hwdb-update.service.in
@@ -16,7 +16,7 @@ After=systemd-remount-fs.service
Before=sysinit.target shutdown.target systemd-update-done.service
ConditionNeedsUpdate=/etc
ConditionPathExists=|!@udevlibexecdir@/hwdb.bin
-ConditionPathExists=|/etc/udev/hwdb.bin
+ConditionPathExists=|/run/hwdb.bin
ConditionDirectoryNotEmpty=|/etc/udev/hwdb.d/
[Service]
--
1.7.10.4
2.14.1

View File

@ -1,105 +0,0 @@
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 dd904c71487..68423bdfa5e 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 71a07d05747..14ad3d49140 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 c5c55ea8461..0ee0979837c 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>

View File

@ -1,124 +0,0 @@
From 9c869d08d82c73f62ab3527567858ce4b0cf1257 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 18 Jul 2018 17:26:17 +0200
Subject: [PATCH 1/2] meson: unify linux/stat.h check with other checks and use
_GNU_SOURCE
Using _GNU_SOURCE is better because that's how we include the headers in the
actual build, and some headers define different stuff when it is defined.
sys/stat.h for example defines 'struct statx' conditionally.
---
meson.build | 20 ++++++++++++++------
src/basic/missing.h | 2 +-
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/meson.build b/meson.build
index 68423bdfa5e..99035d2306c 100644
--- a/meson.build
+++ b/meson.build
@@ -421,11 +421,9 @@ decl_headers = '''
#include <uchar.h>
#include <linux/ethtool.h>
#include <linux/fib_rules.h>
-#include <linux/stat.h>
#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',
@@ -436,13 +434,23 @@ foreach decl : ['char16_t',
]
# We get -1 if the size cannot be determined
- have = cc.sizeof(decl, prefix : decl_headers) > 0
+ have = cc.sizeof(decl, prefix : decl_headers, args : '-D_GNU_SOURCE') > 0
+
+ if decl == 'struct statx'
+ if have
+ want_linux_stat_h = false
+ else
+ have = cc.sizeof(decl,
+ prefix : decl_headers + '#include <linux/stat.h>',
+ args : '-D_GNU_SOURCE') > 0
+ want_linux_stat_h = have
+ endif
+ endif
+
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)
+conf.set10('WANT_LINUX_STAT_H', want_linux_stat_h)
foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
diff --git a/src/basic/missing.h b/src/basic/missing.h
index 14ad3d49140..9044683b15f 100644
--- a/src/basic/missing.h
+++ b/src/basic/missing.h
@@ -24,7 +24,7 @@
#include <uchar.h>
#include <unistd.h>
-#if !HAVE_STRUCT_STATX_IN_SYS_STAT_H
+#if WANT_LINUX_STAT_H
#include <linux/stat.h>
#endif
From 1d7aedf11a22d0c1aca40905e953a25f03252cde Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 18 Jul 2018 17:42:06 +0200
Subject: [PATCH 2/2] meson: remove false check for key_serial_t
key_serial_t is defined in keyutil.h, which wasn't included in the header list
in the test, so the test always failed. We were always compiling stuff with
!HAVE_KEY_SERIAL_T.
We could try to add keyutil.h to the test, but then we'd have to first check if
it is available, which just doesn't seem worth the trouble.
key_serial_t should always be defined as int32_t. Let's keep the uncoditional
define, since repeated compatible typedefs are not a problem, and it allows us
to compile even if the header file is missing. If there's ever a change in the
definition, we'll have to adjust the code for the different type anyway, and
our compiler will tell us.
---
meson.build | 2 --
src/basic/missing.h | 2 --
2 files changed, 4 deletions(-)
diff --git a/meson.build b/meson.build
index 99035d2306c..84656cdc7e8 100644
--- a/meson.build
+++ b/meson.build
@@ -423,11 +423,9 @@ decl_headers = '''
#include <linux/fib_rules.h>
#include <sys/stat.h>
'''
-# FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail
foreach decl : ['char16_t',
'char32_t',
- 'key_serial_t',
'struct ethtool_link_settings',
'struct fib_rule_uid_range',
'struct statx',
diff --git a/src/basic/missing.h b/src/basic/missing.h
index 9044683b15f..477992fbcba 100644
--- a/src/basic/missing.h
+++ b/src/basic/missing.h
@@ -1183,9 +1183,7 @@ struct input_mask {
#define KEY_ALS_TOGGLE 0x230
#endif
-#if ! HAVE_KEY_SERIAL_T
typedef int32_t key_serial_t;
-#endif
#ifndef KEYCTL_JOIN_SESSION_KEYRING
#define KEYCTL_JOIN_SESSION_KEYRING 1

View File

@ -1,40 +0,0 @@
From 1c04c791e85f9dd5e16ae846d0c0b0a99a47076e 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 f79ac4b12e7..2209c935ad6 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 e3140c8c110..7b1f61bf464 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')