summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/systemd/systemd.inc2
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch (renamed from meta/recipes-core/systemd/systemd/0004-Use-getenv-when-secure-versions-are-not-available.patch)21
-rw-r--r--meta/recipes-core/systemd/systemd/0001-core-evaluate-presets-after-generators-have-run-6526.patch69
-rw-r--r--meta/recipes-core/systemd/systemd/0001-main-skip-many-initialization-steps-when-running-in-.patch163
-rw-r--r--meta/recipes-core/systemd/systemd/0001-meson-update-header-file-to-detect-memfd_create.patch28
-rw-r--r--meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch81
-rw-r--r--meta/recipes-core/systemd/systemd/0002-configure.ac-Check-if-memfd_create-is-already-define.patch27
-rw-r--r--meta/recipes-core/systemd/systemd/0002-src-basic-missing.h-check-for-missing-strndupa.patch104
-rw-r--r--meta/recipes-core/systemd/systemd/0003-fileio-include-sys-mman.h.patch26
-rw-r--r--meta/recipes-core/systemd/systemd/0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch64
-rw-r--r--meta/recipes-core/systemd/systemd/0004-implment-systemd-sysv-install-for-OE.patch (renamed from meta/recipes-core/systemd/systemd/0010-implment-systemd-sysv-install-for-OE.patch)8
-rw-r--r--meta/recipes-core/systemd/systemd/0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch74
-rw-r--r--meta/recipes-core/systemd/systemd/0005-rules-whitelist-hd-devices.patch (renamed from meta/recipes-core/systemd/systemd/0012-rules-whitelist-hd-devices.patch)9
-rw-r--r--meta/recipes-core/systemd/systemd/0006-Make-root-s-home-directory-configurable.patch78
-rw-r--r--meta/recipes-core/systemd/systemd/0007-Revert-rules-remove-firmware-loading-rules.patch (renamed from meta/recipes-core/systemd/systemd/0014-Revert-rules-remove-firmware-loading-rules.patch)8
-rw-r--r--meta/recipes-core/systemd/systemd/0007-check-for-missing-canonicalize_file_name.patch63
-rw-r--r--meta/recipes-core/systemd/systemd/0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch40
-rw-r--r--meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests.patch35
-rw-r--r--meta/recipes-core/systemd/systemd/0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch (renamed from meta/recipes-core/systemd/systemd/0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch)204
-rw-r--r--meta/recipes-core/systemd/systemd/0009-remove-duplicate-include-uchar.h.patch (renamed from meta/recipes-core/systemd/systemd/0017-remove-duplicate-include-uchar.h.patch)14
-rw-r--r--meta/recipes-core/systemd/systemd/0010-check-for-uchar.h-in-meson.build.patch45
-rw-r--r--meta/recipes-core/systemd/systemd/0010-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch49
-rw-r--r--meta/recipes-core/systemd/systemd/0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch38
-rw-r--r--meta/recipes-core/systemd/systemd/0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch (renamed from meta/recipes-core/systemd/systemd/0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch)26
-rw-r--r--meta/recipes-core/systemd/systemd/0012-rules-watch-metadata-changes-in-ide-devices.patch (renamed from meta/recipes-core/systemd/systemd/0020-rules-watch-metadata-changes-in-ide-devices.patch)8
-rw-r--r--meta/recipes-core/systemd/systemd/0013-Make-root-s-home-directory-configurable.patch155
-rw-r--r--meta/recipes-core/systemd/systemd/0013-add-fallback-parse_printf_format-implementation.patch (renamed from meta/recipes-core/systemd/systemd/0001-add-fallback-parse_printf_format-implementation.patch)86
-rw-r--r--meta/recipes-core/systemd/systemd/0014-src-basic-missing.h-check-for-missing-strndupa.patch118
-rw-r--r--meta/recipes-core/systemd/systemd/0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch (renamed from meta/recipes-core/systemd/systemd/0003-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch)30
-rw-r--r--meta/recipes-core/systemd/systemd/0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch (renamed from meta/recipes-core/systemd/systemd/0004-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch)18
-rw-r--r--meta/recipes-core/systemd/systemd/0017-Include-netinet-if_ether.h.patch (renamed from meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch)55
-rw-r--r--meta/recipes-core/systemd/systemd/0018-check-for-missing-canonicalize_file_name.patch47
-rw-r--r--meta/recipes-core/systemd/systemd/0018-check-for-uchar.h-in-configure.patch44
-rw-r--r--meta/recipes-core/systemd/systemd/0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch29
-rw-r--r--meta/recipes-core/systemd/systemd/0020-test-hexdecoct.c-Include-missing.h-for-strndupa.patch (renamed from meta/recipes-core/systemd/systemd/0009-test-hexdecoct.c-Include-missing.h-form-strndupa.patch)15
-rw-r--r--meta/recipes-core/systemd/systemd/0021-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch42
-rw-r--r--meta/recipes-core/systemd/systemd/0022-don-t-use-glibc-specific-qsort_r.patch (renamed from meta/recipes-core/systemd/systemd/0011-don-t-use-glibc-specific-qsort_r.patch)26
-rw-r--r--meta/recipes-core/systemd/systemd/0023-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch (renamed from meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch)22
-rw-r--r--meta/recipes-core/systemd/systemd/0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch (renamed from meta/recipes-core/systemd/systemd/0013-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch)14
-rw-r--r--meta/recipes-core/systemd/systemd/0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch (renamed from meta/recipes-core/systemd/systemd/0001-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch)16
-rw-r--r--meta/recipes-core/systemd/systemd/0026-Use-uintmax_t-for-handling-rlim_t.patch (renamed from meta/recipes-core/systemd/systemd/0001-Use-uintmax_t-for-handling-rlim_t.patch)22
-rw-r--r--meta/recipes-core/systemd/systemd/0027-remove-nobody-user-group-checking.patch63
-rw-r--r--meta/recipes-core/systemd/systemd/0028-add-missing-FTW_-macros-for-musl.patch50
-rw-r--r--meta/recipes-core/systemd/systemd/0029-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch43
-rw-r--r--meta/recipes-core/systemd/systemd/0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch45
-rw-r--r--meta/recipes-core/systemd/systemd/0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch30
-rw-r--r--meta/recipes-core/systemd/systemd/run-ptest6
-rw-r--r--meta/recipes-core/systemd/systemd_237.bb (renamed from meta/recipes-core/systemd/systemd_234.bb)269
48 files changed, 1156 insertions, 1373 deletions
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc
index d99d1506d7..5fa48e7ab1 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
14LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ 14LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
15 file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" 15 file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
16 16
17SRCREV = "c1edab7ad1e7ccc9be693bedfd464cd1cbffb395" 17SRCREV = "46659f7deb962f55c728e70597e37c2a3ab6326d"
18 18
19SRC_URI = "git://github.com/systemd/systemd.git;protocol=git" 19SRC_URI = "git://github.com/systemd/systemd.git;protocol=git"
20 20
diff --git a/meta/recipes-core/systemd/systemd/0004-Use-getenv-when-secure-versions-are-not-available.patch b/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch
index ab2cbe035b..f4c15e1c46 100644
--- a/meta/recipes-core/systemd/systemd/0004-Use-getenv-when-secure-versions-are-not-available.patch
+++ b/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch
@@ -1,23 +1,26 @@
1From 5765cda4f7243e240b1e8723dc536fb20503d544 Mon Sep 17 00:00:00 2001 1From b1192a6e171413291d9d64fafc04773c6bbc9cab Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 9 Nov 2016 19:28:32 -0800 3Date: Fri, 23 Feb 2018 10:04:48 +0800
4Subject: [PATCH 04/19] Use getenv when secure versions are not available 4Subject: [PATCH 01/31] Use getenv when secure versions are not available
5 5
6musl doesnt implement secure version, so we default 6musl doesnt implement secure version, so we default
7to it if configure does not detect a secure imeplementation 7to it if configure does not detect a secure implementation
8 8
9Signed-off-by: Khem Raj <raj.khem@gmail.com> 9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10
10Upstream-Status: Denied 11Upstream-Status: Denied
12
13Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
11--- 14---
12 src/basic/missing.h | 2 +- 15 src/basic/missing.h | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-) 16 1 file changed, 1 insertion(+), 1 deletion(-)
14 17
15diff --git a/src/basic/missing.h b/src/basic/missing.h 18diff --git a/src/basic/missing.h b/src/basic/missing.h
16index 4a3fd9c..4936873 100644 19index 1280e6c41..39c1fb700 100644
17--- a/src/basic/missing.h 20--- a/src/basic/missing.h
18+++ b/src/basic/missing.h 21+++ b/src/basic/missing.h
19@@ -529,7 +529,7 @@ struct btrfs_ioctl_quota_ctl_args { 22@@ -605,7 +605,7 @@ struct btrfs_ioctl_quota_ctl_args {
20 # ifdef HAVE___SECURE_GETENV 23 # if HAVE___SECURE_GETENV
21 # define secure_getenv __secure_getenv 24 # define secure_getenv __secure_getenv
22 # else 25 # else
23-# error "neither secure_getenv nor __secure_getenv are available" 26-# error "neither secure_getenv nor __secure_getenv are available"
@@ -26,5 +29,5 @@ index 4a3fd9c..4936873 100644
26 #endif 29 #endif
27 30
28-- 31--
292.10.2 322.13.0
30 33
diff --git a/meta/recipes-core/systemd/systemd/0001-core-evaluate-presets-after-generators-have-run-6526.patch b/meta/recipes-core/systemd/systemd/0001-core-evaluate-presets-after-generators-have-run-6526.patch
deleted file mode 100644
index df100e587d..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-core-evaluate-presets-after-generators-have-run-6526.patch
+++ /dev/null
@@ -1,69 +0,0 @@
1From 28dd66ecfce743b1ea9046c7bb501e0fcaeff724 Mon Sep 17 00:00:00 2001
2From: Luca Bruno <luca.bruno@coreos.com>
3Date: Sun, 6 Aug 2017 13:24:24 +0000
4Subject: [PATCH] core: evaluate presets after generators have run (#6526)
5
6This commit moves the first-boot system preset-settings evaluation out
7of main and into the manager startup logic itself. Notably, it reverses
8the order between generators and presets evaluation, so that any changes
9performed by first-boot generators are taken into the account by presets
10logic.
11
12After this change, units created by a generator can be enabled as part
13of a preset.
14
15Upstream-Status: Backport
16
17Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
18---
19 src/core/main.c | 12 ++----------
20 src/core/manager.c | 8 ++++++++
21 2 files changed, 10 insertions(+), 10 deletions(-)
22
23diff --git a/src/core/main.c b/src/core/main.c
24index dfedc3d..11ac9cf 100644
25--- a/src/core/main.c
26+++ b/src/core/main.c
27@@ -1809,18 +1809,10 @@ int main(int argc, char *argv[]) {
28 if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0)
29 log_warning_errno(errno, "Failed to make us a subreaper: %m");
30
31- if (arg_system) {
32+ if (arg_system)
33+ /* Bump up RLIMIT_NOFILE for systemd itself */
34 (void) bump_rlimit_nofile(&saved_rlimit_nofile);
35
36- if (empty_etc) {
37- r = unit_file_preset_all(UNIT_FILE_SYSTEM, 0, NULL, UNIT_FILE_PRESET_ENABLE_ONLY, NULL, 0);
38- if (r < 0)
39- log_full_errno(r == -EEXIST ? LOG_NOTICE : LOG_WARNING, r, "Failed to populate /etc with preset unit settings, ignoring: %m");
40- else
41- log_info("Populated /etc with preset unit settings.");
42- }
43- }
44-
45 r = manager_new(arg_system ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, arg_action == ACTION_TEST, &m);
46 if (r < 0) {
47 log_emergency_errno(r, "Failed to allocate manager object: %m");
48diff --git a/src/core/manager.c b/src/core/manager.c
49index 1aadb70..fb5e2b5 100644
50--- a/src/core/manager.c
51+++ b/src/core/manager.c
52@@ -1328,6 +1328,14 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
53 if (r < 0)
54 return r;
55
56+ if (m->first_boot && m->unit_file_scope == UNIT_FILE_SYSTEM) {
57+ q = unit_file_preset_all(UNIT_FILE_SYSTEM, 0, NULL, UNIT_FILE_PRESET_ENABLE_ONLY, NULL, 0);
58+ if (q < 0)
59+ log_full_errno(q == -EEXIST ? LOG_NOTICE : LOG_WARNING, q, "Failed to populate /etc with preset unit settings, ignoring: %m");
60+ else
61+ log_info("Populated /etc with preset unit settings.");
62+ }
63+
64 lookup_paths_reduce(&m->lookup_paths);
65 manager_build_unit_path_cache(m);
66
67--
682.10.2
69
diff --git a/meta/recipes-core/systemd/systemd/0001-main-skip-many-initialization-steps-when-running-in-.patch b/meta/recipes-core/systemd/systemd/0001-main-skip-many-initialization-steps-when-running-in-.patch
deleted file mode 100644
index a033b04b23..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-main-skip-many-initialization-steps-when-running-in-.patch
+++ /dev/null
@@ -1,163 +0,0 @@
1From dea374e898a749a0474b72b2015cca9009b1432b Mon Sep 17 00:00:00 2001
2From: Lennart Poettering <lennart@poettering.net>
3Date: Wed, 13 Sep 2017 10:31:40 +0200
4Subject: [PATCH] main: skip many initialization steps when running in --test
5 mode
6
7Most importantly, don't collect open socket activation fds when in
8--test mode. This specifically created a problem because we invoke
9pager_open() beforehand (which these days makes copies of the original
10stdout/stderr in order to be able to restore them when the pager goes
11away) and we might mistakenly the fd copies it creates as socket
12activation fds.
13
14Fixes: #6383
15
16Upstream-Status: Backport
17
18Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
19---
20 src/core/main.c | 108 +++++++++++++++++++++++++++++---------------------------
21 1 file changed, 56 insertions(+), 52 deletions(-)
22
23diff --git a/src/core/main.c b/src/core/main.c
24index 11ac9cf..d1a53a5 100644
25--- a/src/core/main.c
26+++ b/src/core/main.c
27@@ -1679,20 +1679,22 @@ int main(int argc, char *argv[]) {
28 log_close();
29
30 /* Remember open file descriptors for later deserialization */
31- r = fdset_new_fill(&fds);
32- if (r < 0) {
33- log_emergency_errno(r, "Failed to allocate fd set: %m");
34- error_message = "Failed to allocate fd set";
35- goto finish;
36- } else
37- fdset_cloexec(fds, true);
38+ if (arg_action == ACTION_RUN) {
39+ r = fdset_new_fill(&fds);
40+ if (r < 0) {
41+ log_emergency_errno(r, "Failed to allocate fd set: %m");
42+ error_message = "Failed to allocate fd set";
43+ goto finish;
44+ } else
45+ fdset_cloexec(fds, true);
46
47- if (arg_serialization)
48- assert_se(fdset_remove(fds, fileno(arg_serialization)) >= 0);
49+ if (arg_serialization)
50+ assert_se(fdset_remove(fds, fileno(arg_serialization)) >= 0);
51
52- if (arg_system)
53- /* Become a session leader if we aren't one yet. */
54- setsid();
55+ if (arg_system)
56+ /* Become a session leader if we aren't one yet. */
57+ setsid();
58+ }
59
60 /* Move out of the way, so that we won't block unmounts */
61 assert_se(chdir("/") == 0);
62@@ -1762,56 +1764,58 @@ int main(int argc, char *argv[]) {
63 arg_action == ACTION_TEST ? " test" : "", getuid(), t);
64 }
65
66- if (arg_system && !skip_setup) {
67- if (arg_show_status > 0)
68- status_welcome();
69+ if (arg_action == ACTION_RUN) {
70+ if (arg_system && !skip_setup) {
71+ if (arg_show_status > 0)
72+ status_welcome();
73
74- hostname_setup();
75- machine_id_setup(NULL, arg_machine_id, NULL);
76- loopback_setup();
77- bump_unix_max_dgram_qlen();
78+ hostname_setup();
79+ machine_id_setup(NULL, arg_machine_id, NULL);
80+ loopback_setup();
81+ bump_unix_max_dgram_qlen();
82
83- test_usr();
84- }
85+ test_usr();
86+ }
87
88- if (arg_system && arg_runtime_watchdog > 0 && arg_runtime_watchdog != USEC_INFINITY)
89- watchdog_set_timeout(&arg_runtime_watchdog);
90+ if (arg_system && arg_runtime_watchdog > 0 && arg_runtime_watchdog != USEC_INFINITY)
91+ watchdog_set_timeout(&arg_runtime_watchdog);
92
93- if (arg_timer_slack_nsec != NSEC_INFINITY)
94- if (prctl(PR_SET_TIMERSLACK, arg_timer_slack_nsec) < 0)
95- log_error_errno(errno, "Failed to adjust timer slack: %m");
96+ if (arg_timer_slack_nsec != NSEC_INFINITY)
97+ if (prctl(PR_SET_TIMERSLACK, arg_timer_slack_nsec) < 0)
98+ log_error_errno(errno, "Failed to adjust timer slack: %m");
99
100- if (arg_system && !cap_test_all(arg_capability_bounding_set)) {
101- r = capability_bounding_set_drop_usermode(arg_capability_bounding_set);
102- if (r < 0) {
103- log_emergency_errno(r, "Failed to drop capability bounding set of usermode helpers: %m");
104- error_message = "Failed to drop capability bounding set of usermode helpers";
105- goto finish;
106- }
107- r = capability_bounding_set_drop(arg_capability_bounding_set, true);
108- if (r < 0) {
109- log_emergency_errno(r, "Failed to drop capability bounding set: %m");
110- error_message = "Failed to drop capability bounding set";
111- goto finish;
112+ if (arg_system && !cap_test_all(arg_capability_bounding_set)) {
113+ r = capability_bounding_set_drop_usermode(arg_capability_bounding_set);
114+ if (r < 0) {
115+ log_emergency_errno(r, "Failed to drop capability bounding set of usermode helpers: %m");
116+ error_message = "Failed to drop capability bounding set of usermode helpers";
117+ goto finish;
118+ }
119+ r = capability_bounding_set_drop(arg_capability_bounding_set, true);
120+ if (r < 0) {
121+ log_emergency_errno(r, "Failed to drop capability bounding set: %m");
122+ error_message = "Failed to drop capability bounding set";
123+ goto finish;
124+ }
125 }
126- }
127
128- if (arg_syscall_archs) {
129- r = enforce_syscall_archs(arg_syscall_archs);
130- if (r < 0) {
131- error_message = "Failed to set syscall architectures";
132- goto finish;
133+ if (arg_syscall_archs) {
134+ r = enforce_syscall_archs(arg_syscall_archs);
135+ if (r < 0) {
136+ error_message = "Failed to set syscall architectures";
137+ goto finish;
138+ }
139 }
140- }
141
142- if (!arg_system)
143- /* Become reaper of our children */
144- if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0)
145- log_warning_errno(errno, "Failed to make us a subreaper: %m");
146+ if (!arg_system)
147+ /* Become reaper of our children */
148+ if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0)
149+ log_warning_errno(errno, "Failed to make us a subreaper: %m");
150
151- if (arg_system)
152- /* Bump up RLIMIT_NOFILE for systemd itself */
153- (void) bump_rlimit_nofile(&saved_rlimit_nofile);
154+ if (arg_system)
155+ /* Bump up RLIMIT_NOFILE for systemd itself */
156+ (void) bump_rlimit_nofile(&saved_rlimit_nofile);
157+ }
158
159 r = manager_new(arg_system ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, arg_action == ACTION_TEST, &m);
160 if (r < 0) {
161--
1622.10.2
163
diff --git a/meta/recipes-core/systemd/systemd/0001-meson-update-header-file-to-detect-memfd_create.patch b/meta/recipes-core/systemd/systemd/0001-meson-update-header-file-to-detect-memfd_create.patch
deleted file mode 100644
index c6431209d0..0000000000
--- a/meta/recipes-core/systemd/systemd/0001-meson-update-header-file-to-detect-memfd_create.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From 2207e1ffe4f7e2dcc5e745dadb48738aa1048d63 Mon Sep 17 00:00:00 2001
2From: Yu Watanabe <watanabe.yu+github@gmail.com>
3Date: Sun, 26 Nov 2017 02:17:06 +0900
4Subject: [PATCH 1/3] meson: update header file to detect memfd_create()
5
6---
7Upstream-Status: Backport
8
9 meson.build | 3 ++-
10 1 file changed, 2 insertions(+), 1 deletion(-)
11
12diff --git a/meson.build b/meson.build
13index 20b27c860..550dd4ad8 100644
14--- a/meson.build
15+++ b/meson.build
16@@ -414,7 +414,8 @@ foreach ident : ['secure_getenv', '__secure_getenv']
17 endforeach
18
19 foreach ident : [
20- ['memfd_create', '''#include <sys/memfd.h>'''],
21+ ['memfd_create', '''#define _GNU_SOURCE
22+ #include <sys/mman.h>'''],
23 ['gettid', '''#include <sys/types.h>'''],
24 ['pivot_root', '''#include <stdlib.h>'''], # no known header declares pivot_root
25 ['name_to_handle_at', '''#define _GNU_SOURCE
26--
272.16.1
28
diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
new file mode 100644
index 0000000000..c3f4b39345
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
@@ -0,0 +1,81 @@
1From c93eb6cdec03f5e243e59e95dc49273fcb90e7c1 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Fri, 23 Feb 2018 10:23:40 +0800
4Subject: [PATCH 02/31] binfmt: Don't install dependency links at install time
5 for the binfmt services
6
7use [Install] blocks so that they get created when the service is enabled
8like a traditional service.
9
10The [Install] blocks were rejected upstream as they don't have a way to
11"enable" it on install without static symlinks which can't be disabled,
12only masked. We however can do that in a postinst.
13
14Upstream-Status: Denied
15
16Signed-off-by: Ross Burton <ross.burton@intel.com>
17Signed-off-by: Khem Raj <raj.khem@gmail.com>
18Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
19---
20 units/meson.build | 6 ++----
21 units/proc-sys-fs-binfmt_misc.automount | 3 +++
22 units/systemd-binfmt.service.in | 4 ++++
23 3 files changed, 9 insertions(+), 4 deletions(-)
24
25diff --git a/units/meson.build b/units/meson.build
26index 814ee7885..49ace0d0f 100644
27--- a/units/meson.build
28+++ b/units/meson.build
29@@ -60,8 +60,7 @@ units = [
30 ['poweroff.target', '',
31 'runlevel0.target'],
32 ['printer.target', ''],
33- ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT',
34- 'sysinit.target.wants/'],
35+ ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT'],
36 ['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'],
37 ['reboot.target', '',
38 'runlevel6.target ctrl-alt-del.target'],
39@@ -144,8 +143,7 @@ in_units = [
40 ['systemd-ask-password-console.service', ''],
41 ['systemd-ask-password-wall.service', ''],
42 ['systemd-backlight@.service', 'ENABLE_BACKLIGHT'],
43- ['systemd-binfmt.service', 'ENABLE_BINFMT',
44- 'sysinit.target.wants/'],
45+ ['systemd-binfmt.service', 'ENABLE_BINFMT'],
46 ['systemd-coredump@.service', 'ENABLE_COREDUMP'],
47 ['systemd-exit.service', ''],
48 ['systemd-firstboot.service', 'ENABLE_FIRSTBOOT',
49diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
50index 30a6bc991..4231f3b70 100644
51--- a/units/proc-sys-fs-binfmt_misc.automount
52+++ b/units/proc-sys-fs-binfmt_misc.automount
53@@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/
54
55 [Automount]
56 Where=/proc/sys/fs/binfmt_misc
57+
58+[Install]
59+WantedBy=sysinit.target
60diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
61index df9396d89..0687f4648 100644
62--- a/units/systemd-binfmt.service.in
63+++ b/units/systemd-binfmt.service.in
64@@ -13,6 +13,7 @@ Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5)
65 Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt
66 DefaultDependencies=no
67 Conflicts=shutdown.target
68+Wants=proc-sys-fs-binfmt_misc.automount
69 After=proc-sys-fs-binfmt_misc.automount
70 Before=sysinit.target shutdown.target
71 ConditionPathIsReadWrite=/proc/sys/
72@@ -27,3 +28,6 @@ Type=oneshot
73 RemainAfterExit=yes
74 ExecStart=@rootlibexecdir@/systemd-binfmt
75 TimeoutSec=90s
76+
77+[Install]
78+WantedBy=sysinit.target
79--
802.13.0
81
diff --git a/meta/recipes-core/systemd/systemd/0002-configure.ac-Check-if-memfd_create-is-already-define.patch b/meta/recipes-core/systemd/systemd/0002-configure.ac-Check-if-memfd_create-is-already-define.patch
deleted file mode 100644
index da798a79a3..0000000000
--- a/meta/recipes-core/systemd/systemd/0002-configure.ac-Check-if-memfd_create-is-already-define.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 025408c87869962f511de044dd41a1f4b1d80165 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 27 Jan 2018 11:53:38 -0800
4Subject: [PATCH 2/3] configure.ac: Check if memfd_create is already defined
5
6Upstream-Status: Inappropriate [upstream systemd uses meson]
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 configure.ac | 1 +
11 1 file changed, 1 insertion(+)
12
13diff --git a/configure.ac b/configure.ac
14index 3674190fb..c7a184d72 100644
15--- a/configure.ac
16+++ b/configure.ac
17@@ -340,6 +340,7 @@ AC_CHECK_DECLS([
18 [], [], [[
19 #include <sys/types.h>
20 #include <unistd.h>
21+#include <sys/mman.h>
22 #include <sys/mount.h>
23 #include <fcntl.h>
24 #include <sched.h>
25--
262.16.1
27
diff --git a/meta/recipes-core/systemd/systemd/0002-src-basic-missing.h-check-for-missing-strndupa.patch b/meta/recipes-core/systemd/systemd/0002-src-basic-missing.h-check-for-missing-strndupa.patch
deleted file mode 100644
index 94c136b0d9..0000000000
--- a/meta/recipes-core/systemd/systemd/0002-src-basic-missing.h-check-for-missing-strndupa.patch
+++ /dev/null
@@ -1,104 +0,0 @@
1From 585abd891a56409915314304101cac26b42c076b Mon Sep 17 00:00:00 2001
2From: Emil Renner Berthing <systemd@esmil.dk>
3Date: Mon, 23 Oct 2017 10:45:46 -0700
4Subject: [PATCH 02/12] src/basic/missing.h: check for missing strndupa
5
6include missing.h for definition of strndupa
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10Upstream-Status: Pending
11
12 configure.ac | 1 +
13 src/basic/missing.h | 11 +++++++++++
14 src/basic/mkdir.c | 1 +
15 src/basic/parse-util.c | 1 +
16 src/shared/pager.c | 1 +
17 src/shared/uid-range.c | 1 +
18 6 files changed, 16 insertions(+)
19
20diff --git a/configure.ac b/configure.ac
21index efcdc6c16..cd035a971 100644
22--- a/configure.ac
23+++ b/configure.ac
24@@ -329,6 +329,7 @@ AC_CHECK_DECLS([
25 pivot_root,
26 name_to_handle_at,
27 setns,
28+ strndupa,
29 renameat2,
30 kcmp,
31 keyctl,
32diff --git a/src/basic/missing.h b/src/basic/missing.h
33index 04912bf52..8009888ad 100644
34--- a/src/basic/missing.h
35+++ b/src/basic/missing.h
36@@ -1104,6 +1104,17 @@ typedef int32_t key_serial_t;
37 #define KEYCTL_DESCRIBE 6
38 #endif
39
40+#if !HAVE_DECL_STRNDUPA
41+#define strndupa(s, n) \
42+ ({ \
43+ const char *__old = (s); \
44+ size_t __len = strnlen(__old, (n)); \
45+ char *__new = (char *)alloca(__len + 1); \
46+ __new[__len] = '\0'; \
47+ (char *)memcpy(__new, __old, __len); \
48+ })
49+#endif
50+
51 #ifndef KEYCTL_READ
52 #define KEYCTL_READ 11
53 #endif
54diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
55index 6b1a98402..d1388df48 100644
56--- a/src/basic/mkdir.c
57+++ b/src/basic/mkdir.c
58@@ -28,6 +28,7 @@
59 #include "path-util.h"
60 #include "stat-util.h"
61 #include "user-util.h"
62+#include "missing.h"
63
64 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkdir_func_t _mkdir) {
65 struct stat st;
66diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
67index 4532f222c..7a30a0e06 100644
68--- a/src/basic/parse-util.c
69+++ b/src/basic/parse-util.c
70@@ -30,6 +30,7 @@
71 #include "parse-util.h"
72 #include "process-util.h"
73 #include "string-util.h"
74+#include "missing.h"
75
76 int parse_boolean(const char *v) {
77 assert(v);
78diff --git a/src/shared/pager.c b/src/shared/pager.c
79index 4d7b02c63..854efc0c9 100644
80--- a/src/shared/pager.c
81+++ b/src/shared/pager.c
82@@ -38,6 +38,7 @@
83 #include "string-util.h"
84 #include "strv.h"
85 #include "terminal-util.h"
86+#include "missing.h"
87
88 static pid_t pager_pid = 0;
89
90diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
91index b6ec47439..91ce9fb7f 100644
92--- a/src/shared/uid-range.c
93+++ b/src/shared/uid-range.c
94@@ -24,6 +24,7 @@
95 #include "macro.h"
96 #include "uid-range.h"
97 #include "user-util.h"
98+#include "missing.h"
99
100 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
101 assert(range);
102--
1032.14.2
104
diff --git a/meta/recipes-core/systemd/systemd/0003-fileio-include-sys-mman.h.patch b/meta/recipes-core/systemd/systemd/0003-fileio-include-sys-mman.h.patch
deleted file mode 100644
index c466d0d87b..0000000000
--- a/meta/recipes-core/systemd/systemd/0003-fileio-include-sys-mman.h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1From 52e922343faaa87b9efb8aa9ea578399ccc9bec9 Mon Sep 17 00:00:00 2001
2From: Yu Watanabe <watanabe.yu+github@gmail.com>
3Date: Sun, 26 Nov 2017 02:40:23 +0900
4Subject: [PATCH 3/3] fileio: include sys/mman.h
5
6---
7Upstream-Status: Backport
8
9 src/basic/fileio.c | 1 +
10 1 file changed, 1 insertion(+)
11
12diff --git a/src/basic/fileio.c b/src/basic/fileio.c
13index 9a185e3e6..1015afd29 100644
14--- a/src/basic/fileio.c
15+++ b/src/basic/fileio.c
16@@ -24,6 +24,7 @@
17 #include <stdint.h>
18 #include <stdlib.h>
19 #include <string.h>
20+#include <sys/mman.h>
21 #include <sys/stat.h>
22 #include <sys/types.h>
23 #include <unistd.h>
24--
252.16.1
26
diff --git a/meta/recipes-core/systemd/systemd/0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch b/meta/recipes-core/systemd/systemd/0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
new file mode 100644
index 0000000000..28f1b217e0
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
@@ -0,0 +1,64 @@
1From 8b9d194e956848e0d1fb35ef2fba714b2691ebe6 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 28 Feb 2018 20:47:49 -0800
4Subject: [PATCH 03/31] use lnr wrapper instead of looking for --relative
5 option for ln
6
7Remove file manually to avoid the 'File Exists' error when creating
8symlink. This is because the original 'ln' command uses '-f' option.
9
10Upstream-Status: Inappropriate [OE-Specific]
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
14---
15 meson.build | 4 ----
16 tools/meson-make-symlink.sh | 3 ++-
17 units/meson-add-wants.sh | 7 ++++++-
18 3 files changed, 8 insertions(+), 6 deletions(-)
19
20diff --git a/meson.build b/meson.build
21index 36a62d280..7347ea880 100644
22--- a/meson.build
23+++ b/meson.build
24@@ -570,10 +570,6 @@ endforeach
25
26 conf.set_quoted('TELINIT', get_option('telinit-path'))
27
28-if run_command('ln', '--relative', '--help').returncode() != 0
29- error('ln does not support --relative')
30-endif
31-
32 ############################################################
33
34 gperf = find_program('gperf')
35diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh
36index 501cd43d4..f4e4ac9ac 100755
37--- a/tools/meson-make-symlink.sh
38+++ b/tools/meson-make-symlink.sh
39@@ -8,5 +8,6 @@ mkdir -vp "$(dirname "${DESTDIR:-}$2")"
40 if [ "$(dirname $1)" = . ]; then
41 ln -vfs -T "$1" "${DESTDIR:-}$2"
42 else
43- ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
44+ rm -f "${DESTDIR:-}$2"
45+ lnr "${DESTDIR:-}$1" "${DESTDIR:-}$2"
46 fi
47diff --git a/units/meson-add-wants.sh b/units/meson-add-wants.sh
48index 70f7172ae..a42666aac 100755
49--- a/units/meson-add-wants.sh
50+++ b/units/meson-add-wants.sh
51@@ -25,4 +25,9 @@ case "$target" in
52 ;;
53 esac
54
55-ln -vfs --relative "$unitpath" "$dir"
56+if [ -d "$dir" ]; then
57+ rm -f "$dir/$unit"
58+ lnr "$unitpath" "$dir/$unit"
59+else
60+ lnr "$unitpath" "$dir"
61+fi
62--
632.13.0
64
diff --git a/meta/recipes-core/systemd/systemd/0010-implment-systemd-sysv-install-for-OE.patch b/meta/recipes-core/systemd/systemd/0004-implment-systemd-sysv-install-for-OE.patch
index 8828d6ec3e..83fdb530bf 100644
--- a/meta/recipes-core/systemd/systemd/0010-implment-systemd-sysv-install-for-OE.patch
+++ b/meta/recipes-core/systemd/systemd/0004-implment-systemd-sysv-install-for-OE.patch
@@ -1,7 +1,7 @@
1From 52726be92e2b841f744a96c378cc872ae0033a2b Mon Sep 17 00:00:00 2001 1From 70d456fb21de2a80697fa364f08475339d6396c1 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 5 Sep 2015 06:31:47 +0000 3Date: Sat, 5 Sep 2015 06:31:47 +0000
4Subject: [PATCH 10/19] implment systemd-sysv-install for OE 4Subject: [PATCH 04/31] implment systemd-sysv-install for OE
5 5
6Use update-rc.d for enabling/disabling and status command 6Use update-rc.d for enabling/disabling and status command
7to check the status of the sysv service 7to check the status of the sysv service
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 3 insertions(+), 3 deletions(-) 14 1 file changed, 3 insertions(+), 3 deletions(-)
15 15
16diff --git a/src/systemctl/systemd-sysv-install.SKELETON b/src/systemctl/systemd-sysv-install.SKELETON 16diff --git a/src/systemctl/systemd-sysv-install.SKELETON b/src/systemctl/systemd-sysv-install.SKELETON
17index a53a3e6..5d877b0 100755 17index a53a3e622..5d877b06e 100755
18--- a/src/systemctl/systemd-sysv-install.SKELETON 18--- a/src/systemctl/systemd-sysv-install.SKELETON
19+++ b/src/systemctl/systemd-sysv-install.SKELETON 19+++ b/src/systemctl/systemd-sysv-install.SKELETON
20@@ -30,17 +30,17 @@ case "$1" in 20@@ -30,17 +30,17 @@ case "$1" in
@@ -39,5 +39,5 @@ index a53a3e6..5d877b0 100755
39 *) 39 *)
40 usage ;; 40 usage ;;
41-- 41--
422.10.2 422.13.0
43 43
diff --git a/meta/recipes-core/systemd/systemd/0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch
deleted file mode 100644
index 7016e986b8..0000000000
--- a/meta/recipes-core/systemd/systemd/0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1From 74450f0dbad2f8478c26eeaa46d4e4a987858f45 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 20 Feb 2015 05:03:44 +0000
4Subject: [PATCH 05/19] binfmt: Don't install dependency links at install time
5 for the binfmt services
6
7use [Install] blocks so that they get created when the service is enabled
8like a traditional service.
9
10The [Install] blocks were rejected upstream as they don't have a way to
11"enable"
12it on install without static symlinks which can't be disabled, only
13masked. We
14however can do that in a postinst.
15
16Upstream-Status: Denied
17
18Signed-off-by: Ross Burton <ross.burton@intel.com>
19Signed-off-by: Khem Raj <raj.khem@gmail.com>
20---
21 Makefile.am | 4 ----
22 units/proc-sys-fs-binfmt_misc.automount | 3 +++
23 units/systemd-binfmt.service.in | 5 +++++
24 3 files changed, 8 insertions(+), 4 deletions(-)
25
26diff --git a/Makefile.am b/Makefile.am
27index 50da458..29ed1dd 100644
28--- a/Makefile.am
29+++ b/Makefile.am
30@@ -4635,10 +4635,6 @@ INSTALL_DIRS += \
31 $(prefix)/lib/binfmt.d \
32 $(sysconfdir)/binfmt.d
33
34-SYSINIT_TARGET_WANTS += \
35- systemd-binfmt.service \
36- proc-sys-fs-binfmt_misc.automount
37-
38 endif
39
40 EXTRA_DIST += \
41diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
42index 6be3893..709adef 100644
43--- a/units/proc-sys-fs-binfmt_misc.automount
44+++ b/units/proc-sys-fs-binfmt_misc.automount
45@@ -16,3 +16,6 @@ ConditionPathIsReadWrite=/proc/sys/
46
47 [Automount]
48 Where=/proc/sys/fs/binfmt_misc
49+
50+[Install]
51+WantedBy=sysinit.target
52diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
53index d53073e..8c57ee0 100644
54--- a/units/systemd-binfmt.service.in
55+++ b/units/systemd-binfmt.service.in
56@@ -11,6 +11,8 @@ Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5)
57 Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt
58 DefaultDependencies=no
59 Conflicts=shutdown.target
60+Wants=proc-sys-fs-binfmt_misc.automount
61+
62 After=proc-sys-fs-binfmt_misc.automount
63 Before=sysinit.target shutdown.target
64 ConditionPathIsReadWrite=/proc/sys/
65@@ -25,3 +27,6 @@ Type=oneshot
66 RemainAfterExit=yes
67 ExecStart=@rootlibexecdir@/systemd-binfmt
68 TimeoutSec=90s
69+
70+[Install]
71+WantedBy=sysinit.target
72--
732.10.2
74
diff --git a/meta/recipes-core/systemd/systemd/0012-rules-whitelist-hd-devices.patch b/meta/recipes-core/systemd/systemd/0005-rules-whitelist-hd-devices.patch
index eb380ce78d..e4421c826f 100644
--- a/meta/recipes-core/systemd/systemd/0012-rules-whitelist-hd-devices.patch
+++ b/meta/recipes-core/systemd/systemd/0005-rules-whitelist-hd-devices.patch
@@ -1,7 +1,7 @@
1From ab5a27040133f7cdf062ac8cfeb94e081d3567b3 Mon Sep 17 00:00:00 2001 1From 7b5b34993002b4418ba8a3c2ae661a7337fd8ed0 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 9 Nov 2016 19:41:13 -0800 3Date: Wed, 9 Nov 2016 19:41:13 -0800
4Subject: [PATCH 07/14] rules: whitelist hd* devices 4Subject: [PATCH 05/31] rules: whitelist hd* devices
5 5
6qemu by default emulates IDE and the linux-yocto kernel(s) use 6qemu by default emulates IDE and the linux-yocto kernel(s) use
7CONFIG_IDE instead of the more modern libsata, so disks appear as 7CONFIG_IDE instead of the more modern libsata, so disks appear as
@@ -11,13 +11,12 @@ Upstream-Status: Denied [https://github.com/systemd/systemd/pull/1276]
11 11
12Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> 12Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
13Signed-off-by: Khem Raj <raj.khem@gmail.com> 13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14
15--- 14---
16 rules/60-persistent-storage.rules | 2 +- 15 rules/60-persistent-storage.rules | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-) 16 1 file changed, 1 insertion(+), 1 deletion(-)
18 17
19diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules 18diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
20index d2745f65f..63f472be8 100644 19index 0de8cf3a1..d3f58f153 100644
21--- a/rules/60-persistent-storage.rules 20--- a/rules/60-persistent-storage.rules
22+++ b/rules/60-persistent-storage.rules 21+++ b/rules/60-persistent-storage.rules
23@@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end" 22@@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end"
@@ -30,5 +29,5 @@ index d2745f65f..63f472be8 100644
30 # ignore partitions that span the entire disk 29 # ignore partitions that span the entire disk
31 TEST=="whole_disk", GOTO="persistent_storage_end" 30 TEST=="whole_disk", GOTO="persistent_storage_end"
32-- 31--
332.13.2 322.13.0
34 33
diff --git a/meta/recipes-core/systemd/systemd/0006-Make-root-s-home-directory-configurable.patch b/meta/recipes-core/systemd/systemd/0006-Make-root-s-home-directory-configurable.patch
new file mode 100644
index 0000000000..5ba966168a
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0006-Make-root-s-home-directory-configurable.patch
@@ -0,0 +1,78 @@
1From 9d63227420f0c4f093c1c2066eafe2b6152070cf Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Fri, 23 Feb 2018 13:47:37 +0800
4Subject: [PATCH 06/31] Make root's home directory configurable
5
6OpenEmbedded has a configurable home directory for root. Allow
7systemd to be built using its idea of what root's home directory
8should be.
9
10Upstream-Status: Denied
11Upstream wants to have a unified hierarchy where everyone is
12using the same root folder.
13https://github.com/systemd/systemd/issues/541
14
15Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
18---
19 meson.build | 8 ++++++++
20 meson_options.txt | 2 ++
21 2 files changed, 10 insertions(+)
22
23diff --git a/meson.build b/meson.build
24index 7347ea880..918101d6b 100644
25--- a/meson.build
26+++ b/meson.build
27@@ -94,6 +94,11 @@ if rootlibdir == ''
28 rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
29 endif
30
31+roothomedir = get_option('roothomedir')
32+if roothomedir == ''
33+ roothomedir = '/root'
34+endif
35+
36 # Dirs of external packages
37 pkgconfigdatadir = join_paths(datadir, 'pkgconfig')
38 pkgconfiglibdir = join_paths(libdir, 'pkgconfig')
39@@ -205,6 +210,7 @@ conf.set_quoted('UDEVLIBEXECDIR', udevlibexecdir)
40 conf.set_quoted('POLKIT_AGENT_BINARY_PATH', join_paths(bindir, 'pkttyagent'))
41 conf.set_quoted('LIBDIR', libdir)
42 conf.set_quoted('ROOTLIBDIR', rootlibdir)
43+conf.set_quoted('ROOTHOMEDIR', roothomedir)
44 conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir)
45 conf.set_quoted('BOOTLIBDIR', bootlibdir)
46 conf.set_quoted('SYSTEMD_PULL_PATH', join_paths(rootlibexecdir, 'systemd-pull'))
47@@ -221,6 +227,7 @@ substs.set('prefix', prefixdir)
48 substs.set('exec_prefix', prefixdir)
49 substs.set('libdir', libdir)
50 substs.set('rootlibdir', rootlibdir)
51+substs.set('roothomedir', roothomedir)
52 substs.set('includedir', includedir)
53 substs.set('pkgsysconfdir', pkgsysconfdir)
54 substs.set('bindir', bindir)
55@@ -2705,6 +2712,7 @@ status = [
56 'include directory: @0@'.format(includedir),
57 'lib directory: @0@'.format(libdir),
58 'rootlib directory: @0@'.format(rootlibdir),
59+ 'roothome directory: @0@'.format(roothomedir),
60 'SysV init scripts: @0@'.format(sysvinit_path),
61 'SysV rc?.d directories: @0@'.format(sysvrcnd_path),
62 'PAM modules directory: @0@'.format(pamlibdir),
63diff --git a/meson_options.txt b/meson_options.txt
64index 39822d6cd..0b24f0e0f 100644
65--- a/meson_options.txt
66+++ b/meson_options.txt
67@@ -22,6 +22,8 @@ option('rootlibdir', type : 'string',
68 description : '''[/usr]/lib/x86_64-linux-gnu or such''')
69 option('rootprefix', type : 'string',
70 description : '''override the root prefix''')
71+option('roothomedir', type : 'string',
72+ description : '''override the root home directory''')
73 option('link-udev-shared', type : 'boolean',
74 description : 'link systemd-udev and its helpers to libsystemd-shared.so')
75
76--
772.13.0
78
diff --git a/meta/recipes-core/systemd/systemd/0014-Revert-rules-remove-firmware-loading-rules.patch b/meta/recipes-core/systemd/systemd/0007-Revert-rules-remove-firmware-loading-rules.patch
index ed7c68fe70..bb12d30a41 100644
--- a/meta/recipes-core/systemd/systemd/0014-Revert-rules-remove-firmware-loading-rules.patch
+++ b/meta/recipes-core/systemd/systemd/0007-Revert-rules-remove-firmware-loading-rules.patch
@@ -1,7 +1,7 @@
1From 0f47cfcb16e8e40a90a9221f9995f8cd8a915c22 Mon Sep 17 00:00:00 2001 1From 35d6d384e83ac38077603611bb791969ef95fe68 Mon Sep 17 00:00:00 2001
2From: Jonathan Liu <net147@gmail.com> 2From: Jonathan Liu <net147@gmail.com>
3Date: Thu, 19 Mar 2015 15:01:29 +1100 3Date: Thu, 19 Mar 2015 15:01:29 +1100
4Subject: [PATCH 14/19] Revert "rules: remove firmware loading rules" 4Subject: [PATCH 07/31] Revert "rules: remove firmware loading rules"
5 5
6This reverts commit 70e7d754ddb356fb1a2942b262f8cee9650e2a19. 6This reverts commit 70e7d754ddb356fb1a2942b262f8cee9650e2a19.
7Userspace firmware loading support is needed for Linux < 3.7. 7Userspace firmware loading support is needed for Linux < 3.7.
@@ -16,7 +16,7 @@ Signed-off-by: Jonathan Liu <net147@gmail.com>
16 16
17diff --git a/rules/50-firmware.rules b/rules/50-firmware.rules 17diff --git a/rules/50-firmware.rules b/rules/50-firmware.rules
18new file mode 100644 18new file mode 100644
19index 0000000..f0ae684 19index 000000000..f0ae68451
20--- /dev/null 20--- /dev/null
21+++ b/rules/50-firmware.rules 21+++ b/rules/50-firmware.rules
22@@ -0,0 +1,3 @@ 22@@ -0,0 +1,3 @@
@@ -24,5 +24,5 @@ index 0000000..f0ae684
24+ 24+
25+SUBSYSTEM=="firmware", ACTION=="add", RUN{builtin}="firmware" 25+SUBSYSTEM=="firmware", ACTION=="add", RUN{builtin}="firmware"
26-- 26--
272.10.2 272.13.0
28 28
diff --git a/meta/recipes-core/systemd/systemd/0007-check-for-missing-canonicalize_file_name.patch b/meta/recipes-core/systemd/systemd/0007-check-for-missing-canonicalize_file_name.patch
deleted file mode 100644
index 5234c59a78..0000000000
--- a/meta/recipes-core/systemd/systemd/0007-check-for-missing-canonicalize_file_name.patch
+++ /dev/null
@@ -1,63 +0,0 @@
1From 05dffe67919ffc72be5c017bc6cf82f164b2e8f9 Mon Sep 17 00:00:00 2001
2From: Emil Renner Berthing <systemd@esmil.dk>
3Date: Mon, 23 Oct 2017 11:42:03 -0700
4Subject: [PATCH 07/12] check for missing canonicalize_file_name
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending
9
10 configure.ac | 2 ++
11 src/basic/missing.h | 1 +
12 src/basic/missing_syscall.h | 6 ++++++
13 3 files changed, 9 insertions(+)
14
15diff --git a/configure.ac b/configure.ac
16index cd035a971..3674190fb 100644
17--- a/configure.ac
18+++ b/configure.ac
19@@ -333,6 +333,7 @@ AC_CHECK_DECLS([
20 renameat2,
21 kcmp,
22 keyctl,
23+ canonicalize_file_name,
24 LO_FLAGS_PARTSCAN,
25 copy_file_range,
26 explicit_bzero],
27@@ -343,6 +344,7 @@ AC_CHECK_DECLS([
28 #include <fcntl.h>
29 #include <sched.h>
30 #include <string.h>
31+#include <stdlib.h>
32 #include <linux/loop.h>
33 ]])
34
35diff --git a/src/basic/missing.h b/src/basic/missing.h
36index 671f341c6..8ae4964e1 100644
37--- a/src/basic/missing.h
38+++ b/src/basic/missing.h
39@@ -1246,3 +1246,4 @@ struct ethtool_link_settings {
40 #endif
41
42 #include "missing_syscall.h"
43+
44diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
45index 898116c7b..4d44ee4fa 100644
46--- a/src/basic/missing_syscall.h
47+++ b/src/basic/missing_syscall.h
48@@ -28,6 +28,12 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
49 }
50 #endif
51
52+#if !HAVE_DECL_CANONICALIZE_FILE_NAME
53+static inline char *canonicalize_file_name(const char *path) {
54+ return realpath(path, NULL);
55+}
56+#endif
57+
58 /* ======================================================================= */
59
60 #if !HAVE_DECL_MEMFD_CREATE
61--
622.14.2
63
diff --git a/meta/recipes-core/systemd/systemd/0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch b/meta/recipes-core/systemd/systemd/0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
deleted file mode 100644
index bc92db7468..0000000000
--- a/meta/recipes-core/systemd/systemd/0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From a3482c91642cf568b3ac27fa6c0cb3c6b30669b7 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 9 Nov 2016 19:32:14 -0800
4Subject: [PATCH 07/19] use lnr wrapper instead of looking for --relative
5 option for ln
6
7Upstream-Status: Inappropriate [OE-Specific]
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 Makefile.am | 2 +-
12 configure.ac | 2 --
13 2 files changed, 1 insertion(+), 3 deletions(-)
14
15Index: git/Makefile.am
16===================================================================
17--- git.orig/Makefile.am
18+++ git/Makefile.am
19@@ -320,7 +320,7 @@ define install-relative-aliases
20 while [ -n "$$1" ]; do \
21 $(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \
22 rm -f $(DESTDIR)$$dir/$$2 && \
23- $(LN_S) --relative $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
24+ lnr $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
25 shift 2 || exit $$?; \
26 done
27 endef
28Index: git/configure.ac
29===================================================================
30--- git.orig/configure.ac
31+++ git/configure.ac
32@@ -110,8 +110,6 @@ AC_PATH_PROG([SULOGIN], [sulogin], [/usr
33 AC_PATH_PROG([MOUNT_PATH], [mount], [/usr/bin/mount], [$PATH:/usr/sbin:/sbin])
34 AC_PATH_PROG([UMOUNT_PATH], [umount], [/usr/bin/umount], [$PATH:/usr/sbin:/sbin])
35
36-AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])])
37-
38 M4_DEFINES=
39
40 AC_CHECK_TOOL(OBJCOPY, objcopy)
diff --git a/meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests.patch b/meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests.patch
deleted file mode 100644
index 67a4f8e03e..0000000000
--- a/meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 48e7c0f5b2f5d777a16ac5584dc4f50f1dfa832c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 23 Oct 2017 12:27:53 -0700
4Subject: [PATCH 08/12] Do not enable nss tests
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending
9
10 Makefile.am | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/Makefile.am b/Makefile.am
14index 3cc8f3451..df20a9a11 100644
15--- a/Makefile.am
16+++ b/Makefile.am
17@@ -5290,6 +5290,7 @@ EXTRA_DIST += \
18 src/timesync/timesyncd.conf.in
19
20 # ------------------------------------------------------------------------------
21+if ENABLE_NSS_SYSTEMD
22 test_nss_SOURCES = \
23 src/test/test-nss.c
24
25@@ -5302,7 +5303,6 @@ manual_tests += \
26 test-nss
27
28 # ------------------------------------------------------------------------------
29-if ENABLE_NSS_SYSTEMD
30 libnss_systemd_la_SOURCES = \
31 src/nss-systemd/nss-systemd.sym \
32 src/nss-systemd/nss-systemd.c
33--
342.14.2
35
diff --git a/meta/recipes-core/systemd/systemd/0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch b/meta/recipes-core/systemd/systemd/0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch
index 95871bb053..15d7e0290a 100644
--- a/meta/recipes-core/systemd/systemd/0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch
+++ b/meta/recipes-core/systemd/systemd/0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch
@@ -1,7 +1,7 @@
1From 7883985a3a78677e9a1d5d61fe7fa8badf39f565 Mon Sep 17 00:00:00 2001 1From 5cce7626f33e92f624ac06b613125813fb47d445 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 9 Nov 2016 20:45:23 -0800 3Date: Wed, 28 Feb 2018 21:05:39 -0800
4Subject: [PATCH 10/14] Revert "udev: remove userspace firmware loading 4Subject: [PATCH 08/31] Revert "udev: remove userspace firmware loading
5 support" 5 support"
6 6
7This reverts commit be2ea723b1d023b3d385d3b791ee4607cbfb20ca. 7This reverts commit be2ea723b1d023b3d385d3b791ee4607cbfb20ca.
@@ -11,47 +11,26 @@ Upstream-Status: Inappropriate [OE specific]
11 11
12Signed-off-by: Jonathan Liu <net147@gmail.com> 12Signed-off-by: Jonathan Liu <net147@gmail.com>
13Signed-off-by: Khem Raj <raj.khem@gmail.com> 13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 14Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
15--- 15---
16 Makefile.am | 12 +++
17 README | 4 +- 16 README | 4 +-
18 TODO | 1 + 17 TODO | 1 +
19 configure.ac | 18 +++++ 18 meson.build | 9 +++
19 meson_options.txt | 2 +
20 rules/meson.build | 4 +
21 src/udev/meson.build | 4 +
20 src/udev/udev-builtin-firmware.c | 154 +++++++++++++++++++++++++++++++++++++++ 22 src/udev/udev-builtin-firmware.c | 154 +++++++++++++++++++++++++++++++++++++++
21 src/udev/udev-builtin.c | 3 + 23 src/udev/udev-builtin.c | 3 +
22 src/udev/udev.h | 6 ++ 24 src/udev/udev.h | 6 ++
23 src/udev/udevd.c | 13 ++++ 25 src/udev/udevd.c | 12 +++
24 8 files changed, 209 insertions(+), 2 deletions(-) 26 10 files changed, 197 insertions(+), 2 deletions(-)
25 create mode 100644 src/udev/udev-builtin-firmware.c 27 create mode 100644 src/udev/udev-builtin-firmware.c
26 28
27diff --git a/Makefile.am b/Makefile.am
28index c2b4a99d2..692d7bb95 100644
29--- a/Makefile.am
30+++ b/Makefile.am
31@@ -3985,6 +3985,18 @@ libudev_core_la_LIBADD = \
32 $(BLKID_LIBS) \
33 $(KMOD_LIBS)
34
35+libudev_core_la_CPPFLAGS = \
36+ $(AM_CPPFLAGS) \
37+ -DFIRMWARE_PATH="$(FIRMWARE_PATH)"
38+
39+if ENABLE_FIRMWARE
40+libudev_core_la_SOURCES += \
41+ src/udev/udev-builtin-firmware.c
42+
43+dist_udevrules_DATA += \
44+ rules/50-firmware.rules
45+endif
46+
47 if HAVE_KMOD
48 libudev_core_la_SOURCES += \
49 src/udev/udev-builtin-kmod.c
50diff --git a/README b/README 29diff --git a/README b/README
51index 60388eebe..e21976393 100644 30index 8807e5cfe..bfd7a35de 100644
52--- a/README 31--- a/README
53+++ b/README 32+++ b/README
54@@ -61,8 +61,8 @@ REQUIREMENTS: 33@@ -58,8 +58,8 @@ REQUIREMENTS:
55 Legacy hotplug slows down the system and confuses udev: 34 Legacy hotplug slows down the system and confuses udev:
56 CONFIG_UEVENT_HELPER_PATH="" 35 CONFIG_UEVENT_HELPER_PATH=""
57 36
@@ -63,10 +42,10 @@ index 60388eebe..e21976393 100644
63 42
64 Some udev rules and virtualization detection relies on it: 43 Some udev rules and virtualization detection relies on it:
65diff --git a/TODO b/TODO 44diff --git a/TODO b/TODO
66index 61efa5e9f..67ccac224 100644 45index a77028c7b..39e72d7ec 100644
67--- a/TODO 46--- a/TODO
68+++ b/TODO 47+++ b/TODO
69@@ -740,6 +740,7 @@ Features: 48@@ -783,6 +783,7 @@ Features:
70 * initialize the hostname from the fs label of /, if /etc/hostname does not exist? 49 * initialize the hostname from the fs label of /, if /etc/hostname does not exist?
71 50
72 * udev: 51 * udev:
@@ -74,42 +53,90 @@ index 61efa5e9f..67ccac224 100644
74 - move to LGPL 53 - move to LGPL
75 - kill scsi_id 54 - kill scsi_id
76 - add trigger --subsystem-match=usb/usb_device device 55 - add trigger --subsystem-match=usb/usb_device device
77diff --git a/configure.ac b/configure.ac 56diff --git a/meson.build b/meson.build
78index b53ca1f1a..1150ca50e 100644 57index 918101d6b..9c25022a4 100644
79--- a/configure.ac 58--- a/meson.build
80+++ b/configure.ac 59+++ b/meson.build
81@@ -1522,6 +1522,23 @@ AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) 60@@ -72,6 +72,12 @@ conf.set10('HAVE_SYSV_COMPAT', have,
82 AC_ARG_ENABLE(hwdb, [AS_HELP_STRING([--disable-hwdb], [disable hardware database support])], 61 description : 'SysV init scripts and rcN.d links are supported')
83 enable_hwdb=$enableval, enable_hwdb=yes) 62 m4_defines += have ? ['-DHAVE_SYSV_COMPAT'] : []
84 AM_CONDITIONAL(ENABLE_HWDB, [test x$enable_hwdb = xyes]) 63
85+AC_ARG_WITH(firmware-path, 64+firmware_path = get_option('firmware-path')
86+ AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], 65+have = firmware_path != ''
87+ [Firmware search path (default="")]), 66+conf.set10('HAVE_FIRMWARE', have,
88+ [], [with_firmware_path=""]) 67+ description : 'Userspace firmware loading is supported')
89+OLD_IFS=$IFS 68+m4_defines += have ? ['-DHAVE_FIRMWARE'] : []
90+IFS=: 69+
91+for i in $with_firmware_path; do 70 # join_paths ignore the preceding arguments if an absolute component is
92+ if test "x${FIRMWARE_PATH}" = "x"; then 71 # encountered, so this should canonicalize various paths when they are
93+ FIRMWARE_PATH="\\\"${i}/\\\"" 72 # absolute or relative.
94+ else 73@@ -178,6 +184,7 @@ conf.set_quoted('SYSTEM_CONFIG_UNIT_PATH', join_paths(pkgsysc
95+ FIRMWARE_PATH="${FIRMWARE_PATH}, \\\"${i}/\\\"" 74 conf.set_quoted('SYSTEM_DATA_UNIT_PATH', systemunitdir)
96+ fi 75 conf.set_quoted('SYSTEM_SYSVINIT_PATH', sysvinit_path)
97+done 76 conf.set_quoted('SYSTEM_SYSVRCND_PATH', sysvrcnd_path)
98+IFS=$OLD_IFS 77+conf.set_quoted('FIRMWARE_PATH', firmware_path)
99+AC_SUBST(FIRMWARE_PATH) 78 conf.set_quoted('RC_LOCAL_SCRIPT_PATH_START', get_option('rc-local'))
100+AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is available]) ]) 79 conf.set_quoted('RC_LOCAL_SCRIPT_PATH_STOP', get_option('halt-local'))
101+AM_CONDITIONAL(ENABLE_FIRMWARE, [test "x${FIRMWARE_PATH}" != "x"]) 80 conf.set_quoted('USER_CONFIG_UNIT_PATH', join_paths(pkgsysconfdir, 'user'))
81@@ -258,6 +265,7 @@ substs.set('SYSTEMCTL', join_paths(rootbin
82 substs.set('RANDOM_SEED', join_paths(randomseeddir, 'random-seed'))
83 substs.set('SYSTEM_SYSVINIT_PATH', sysvinit_path)
84 substs.set('SYSTEM_SYSVRCND_PATH', sysvrcnd_path)
85+substs.set('FIRMWARE_PATH', firmware_path)
86 substs.set('RC_LOCAL_SCRIPT_PATH_START', get_option('rc-local'))
87 substs.set('RC_LOCAL_SCRIPT_PATH_STOP', get_option('halt-local'))
88
89@@ -2715,6 +2723,7 @@ status = [
90 'roothome directory: @0@'.format(roothomedir),
91 'SysV init scripts: @0@'.format(sysvinit_path),
92 'SysV rc?.d directories: @0@'.format(sysvrcnd_path),
93+ 'firmware path: @0@'.format(firmware_path),
94 'PAM modules directory: @0@'.format(pamlibdir),
95 'PAM configuration directory: @0@'.format(pamconfdir),
96 'RPM macros directory: @0@'.format(rpmmacrosdir),
97diff --git a/meson_options.txt b/meson_options.txt
98index 0b24f0e0f..92d25fa35 100644
99--- a/meson_options.txt
100+++ b/meson_options.txt
101@@ -108,6 +108,8 @@ option('tmpfiles', type : 'boolean',
102 description : 'support for tmpfiles.d')
103 option('importd', type : 'combo', choices : ['auto', 'true', 'false'],
104 description : 'install the systemd-importd daemon')
105+option('firmware-path', type : 'string', value : '',
106+ description : 'Firmware search path')
107 option('hwdb', type : 'boolean',
108 description : 'support for the hardware database')
109 option('rfkill', type : 'boolean',
110diff --git a/rules/meson.build b/rules/meson.build
111index e253b9f59..5eee5fbca 100644
112--- a/rules/meson.build
113+++ b/rules/meson.build
114@@ -41,6 +41,10 @@ rules = files('''
115 install_data(rules,
116 install_dir : udevrulesdir)
102 117
103 # ------------------------------------------------------------------------------ 118+if conf.get('HAVE_FIRMWARE') == 1
104 have_manpages=no 119+ install_data('50-firmware.rules', install_dir : udevrulesdir)
105@@ -1839,6 +1856,7 @@ AC_MSG_RESULT([ 120+endif
106 SysV init scripts: ${SYSTEM_SYSVINIT_PATH} 121+
107 SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} 122 all_rules = rules
108 build Python: ${PYTHON} 123
109+ firmware path: ${FIRMWARE_PATH} 124 rules_in = '''
110 PAM modules dir: ${with_pamlibdir} 125diff --git a/src/udev/meson.build b/src/udev/meson.build
111 PAM configuration dir: ${with_pamconfdir} 126index de2fd2d9c..b6b0ca006 100644
112 RPM macros dir: ${with_rpmmacrosdir} 127--- a/src/udev/meson.build
128+++ b/src/udev/meson.build
129@@ -67,6 +67,10 @@ if conf.get('HAVE_ACL') == 1
130 sd_login_c]
131 endif
132
133+if conf.get('HAVE_FIRMWARE') == 1
134+ libudev_core_sources += ['udev-builtin-firmware.c']
135+endif
136+
137 ############################################################
138
139 generate_keyboard_keys_list = find_program('generate-keyboard-keys-list.sh')
113diff --git a/src/udev/udev-builtin-firmware.c b/src/udev/udev-builtin-firmware.c 140diff --git a/src/udev/udev-builtin-firmware.c b/src/udev/udev-builtin-firmware.c
114new file mode 100644 141new file mode 100644
115index 000000000..bd8c2fb96 142index 000000000..bd8c2fb96
@@ -271,81 +298,80 @@ index 000000000..bd8c2fb96
271+ .run_once = true, 298+ .run_once = true,
272+}; 299+};
273diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c 300diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c
274index e6b36f124..cd9947e2a 100644 301index db2b6874f..ccd88638c 100644
275--- a/src/udev/udev-builtin.c 302--- a/src/udev/udev-builtin.c
276+++ b/src/udev/udev-builtin.c 303+++ b/src/udev/udev-builtin.c
277@@ -31,6 +31,9 @@ static const struct udev_builtin *builtins[] = { 304@@ -32,6 +32,9 @@ static const struct udev_builtin *builtins[] = {
278 [UDEV_BUILTIN_BLKID] = &udev_builtin_blkid, 305 [UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
279 #endif 306 #endif
280 [UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs, 307 [UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs,
281+#ifdef HAVE_FIRMWARE 308+#if HAVE_FIRMWARE
282+ [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware, 309+ [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
283+#endif 310+#endif
284 [UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb, 311 [UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb,
285 [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, 312 [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
286 [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard, 313 [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard,
287diff --git a/src/udev/udev.h b/src/udev/udev.h 314diff --git a/src/udev/udev.h b/src/udev/udev.h
288index c0cb7eae8..9f0f1cf13 100644 315index ea11c2d29..c47dd3d88 100644
289--- a/src/udev/udev.h 316--- a/src/udev/udev.h
290+++ b/src/udev/udev.h 317+++ b/src/udev/udev.h
291@@ -150,6 +150,9 @@ enum udev_builtin_cmd { 318@@ -151,6 +151,9 @@ enum udev_builtin_cmd {
292 UDEV_BUILTIN_BLKID, 319 UDEV_BUILTIN_BLKID,
293 #endif 320 #endif
294 UDEV_BUILTIN_BTRFS, 321 UDEV_BUILTIN_BTRFS,
295+#ifdef HAVE_FIRMWARE 322+#if HAVE_FIRMWARE
296+ UDEV_BUILTIN_FIRMWARE, 323+ UDEV_BUILTIN_FIRMWARE,
297+#endif 324+#endif
298 UDEV_BUILTIN_HWDB, 325 UDEV_BUILTIN_HWDB,
299 UDEV_BUILTIN_INPUT_ID, 326 UDEV_BUILTIN_INPUT_ID,
300 UDEV_BUILTIN_KEYBOARD, 327 UDEV_BUILTIN_KEYBOARD,
301@@ -178,6 +181,9 @@ struct udev_builtin { 328@@ -179,6 +182,9 @@ struct udev_builtin {
302 extern const struct udev_builtin udev_builtin_blkid; 329 extern const struct udev_builtin udev_builtin_blkid;
303 #endif 330 #endif
304 extern const struct udev_builtin udev_builtin_btrfs; 331 extern const struct udev_builtin udev_builtin_btrfs;
305+#ifdef HAVE_FIRMWARE 332+#if HAVE_FIRMWARE
306+extern const struct udev_builtin udev_builtin_firmware; 333+extern const struct udev_builtin udev_builtin_firmware;
307+#endif 334+#endif
308 extern const struct udev_builtin udev_builtin_hwdb; 335 extern const struct udev_builtin udev_builtin_hwdb;
309 extern const struct udev_builtin udev_builtin_input_id; 336 extern const struct udev_builtin udev_builtin_input_id;
310 extern const struct udev_builtin udev_builtin_keyboard; 337 extern const struct udev_builtin udev_builtin_keyboard;
311diff --git a/src/udev/udevd.c b/src/udev/udevd.c 338diff --git a/src/udev/udevd.c b/src/udev/udevd.c
312index acbddd418..20347b402 100644 339index 5c757d513..2f3313007 100644
313--- a/src/udev/udevd.c 340--- a/src/udev/udevd.c
314+++ b/src/udev/udevd.c 341+++ b/src/udev/udevd.c
315@@ -125,6 +125,9 @@ struct event { 342@@ -127,6 +127,9 @@ struct event {
316 bool is_block; 343 bool is_block;
317 sd_event_source *timeout_warning; 344 sd_event_source *timeout_warning;
318 sd_event_source *timeout; 345 sd_event_source *timeout;
319+#ifdef HAVE_FIRMWARE 346+#if HAVE_FIRMWARE
320+ bool nodelay; 347+ bool nodelay;
321+#endif 348+#endif
322 }; 349 };
323 350
324 static inline struct event *node_to_event(struct udev_list_node *node) { 351 static void event_queue_cleanup(Manager *manager, enum event_state type);
325@@ -613,6 +616,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) { 352@@ -609,6 +612,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) {
326 event->devnum = udev_device_get_devnum(dev); 353 event->devnum = udev_device_get_devnum(dev);
327 event->is_block = streq("block", udev_device_get_subsystem(dev)); 354 event->is_block = streq("block", udev_device_get_subsystem(dev));
328 event->ifindex = udev_device_get_ifindex(dev); 355 event->ifindex = udev_device_get_ifindex(dev);
329+#ifdef HAVE_FIRMWARE 356+#if HAVE_FIRMWARE
330+ if (streq(udev_device_get_subsystem(dev), "firmware")) 357+ if (streq(udev_device_get_subsystem(dev), "firmware"))
331+ event->nodelay = true; 358+ event->nodelay = true;
332+#endif 359+#endif
333 360
334 log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev), 361 log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev),
335 udev_device_get_action(dev), udev_device_get_subsystem(dev)); 362 udev_device_get_action(dev), udev_device_get_subsystem(dev));
336@@ -698,6 +705,12 @@ static bool is_devpath_busy(Manager *manager, struct event *event) { 363@@ -692,6 +699,11 @@ static bool is_devpath_busy(Manager *manager, struct event *event) {
337 return true; 364 return true;
338 } 365 }
339 366
340+#ifdef HAVE_FIRMWARE 367+#if HAVE_FIRMWARE
341+ /* allow to bypass the dependency tracking */ 368+ /* allow to bypass the dependency tracking */
342+ if (event->nodelay) 369+ if (event->nodelay)
343+ continue; 370+ continue;
344+#endif 371+#endif
345+
346 /* parent device event found */ 372 /* parent device event found */
347 if (event->devpath[common] == '/') { 373 if (event->devpath[common] == '/') {
348 event->delaying_seqnum = loop_event->seqnum; 374 event->delaying_seqnum = loop_event->seqnum;
349-- 375--
3502.13.2 3762.13.0
351 377
diff --git a/meta/recipes-core/systemd/systemd/0017-remove-duplicate-include-uchar.h.patch b/meta/recipes-core/systemd/systemd/0009-remove-duplicate-include-uchar.h.patch
index d2006351df..1b14369ce2 100644
--- a/meta/recipes-core/systemd/systemd/0017-remove-duplicate-include-uchar.h.patch
+++ b/meta/recipes-core/systemd/systemd/0009-remove-duplicate-include-uchar.h.patch
@@ -1,7 +1,7 @@
1From e78af874fc9f3d3af49498b8207109993d93a596 Mon Sep 17 00:00:00 2001 1From ffdf9cb6ba0d932b81933d824f23a878c313a8d4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 22 Feb 2016 05:59:01 +0000 3Date: Mon, 22 Feb 2016 05:59:01 +0000
4Subject: [PATCH 17/19] remove duplicate include uchar.h 4Subject: [PATCH 09/31] remove duplicate include uchar.h
5 5
6missing.h already includes it 6missing.h already includes it
7 7
@@ -13,10 +13,10 @@ Upstream-Status: Pending
13 2 files changed, 2 deletions(-) 13 2 files changed, 2 deletions(-)
14 14
15diff --git a/src/basic/escape.h b/src/basic/escape.h 15diff --git a/src/basic/escape.h b/src/basic/escape.h
16index deaa4de..36d437c 100644 16index de89f43a8..9921ccbbd 100644
17--- a/src/basic/escape.h 17--- a/src/basic/escape.h
18+++ b/src/basic/escape.h 18+++ b/src/basic/escape.h
19@@ -23,7 +23,6 @@ 19@@ -24,7 +24,6 @@
20 #include <stddef.h> 20 #include <stddef.h>
21 #include <stdint.h> 21 #include <stdint.h>
22 #include <sys/types.h> 22 #include <sys/types.h>
@@ -25,10 +25,10 @@ index deaa4de..36d437c 100644
25 #include "string-util.h" 25 #include "string-util.h"
26 #include "missing.h" 26 #include "missing.h"
27diff --git a/src/basic/utf8.h b/src/basic/utf8.h 27diff --git a/src/basic/utf8.h b/src/basic/utf8.h
28index f9b9c94..6ac9a3c 100644 28index b0a7485ae..fa06d2906 100644
29--- a/src/basic/utf8.h 29--- a/src/basic/utf8.h
30+++ b/src/basic/utf8.h 30+++ b/src/basic/utf8.h
31@@ -22,7 +22,6 @@ 31@@ -23,7 +23,6 @@
32 #include <stdbool.h> 32 #include <stdbool.h>
33 #include <stddef.h> 33 #include <stddef.h>
34 #include <stdint.h> 34 #include <stdint.h>
@@ -37,5 +37,5 @@ index f9b9c94..6ac9a3c 100644
37 #include "macro.h" 37 #include "macro.h"
38 #include "missing.h" 38 #include "missing.h"
39-- 39--
402.10.2 402.13.0
41 41
diff --git a/meta/recipes-core/systemd/systemd/0010-check-for-uchar.h-in-meson.build.patch b/meta/recipes-core/systemd/systemd/0010-check-for-uchar.h-in-meson.build.patch
new file mode 100644
index 0000000000..9a44b5484b
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0010-check-for-uchar.h-in-meson.build.patch
@@ -0,0 +1,45 @@
1From ea4caaa1c6a6dc682bb04548ab05c5c73d0b45d6 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 26 Feb 2018 15:34:52 +0800
4Subject: [PATCH 10/31] check for uchar.h in meson.build
5
6Use #if HAVE_UCHAR_H to include uchar.h conditionally.
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Upstream-Status: Pending
10
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12---
13 meson.build | 1 +
14 src/basic/missing.h | 2 ++
15 2 files changed, 3 insertions(+)
16
17diff --git a/meson.build b/meson.build
18index 9c25022a4..94a16712b 100644
19--- a/meson.build
20+++ b/meson.build
21@@ -623,6 +623,7 @@ foreach header : ['crypt.h',
22 'sys/auxv.h',
23 'valgrind/memcheck.h',
24 'valgrind/valgrind.h',
25+ 'uchar.h',
26 ]
27
28 conf.set10('HAVE_' + header.underscorify().to_upper(),
29diff --git a/src/basic/missing.h b/src/basic/missing.h
30index 39c1fb700..84d6d9167 100644
31--- a/src/basic/missing.h
32+++ b/src/basic/missing.h
33@@ -38,7 +38,9 @@
34 #include <sys/resource.h>
35 #include <sys/socket.h>
36 #include <sys/syscall.h>
37+#if HAVE_UCHAR_H
38 #include <uchar.h>
39+#endif
40 #include <unistd.h>
41
42 #if HAVE_AUDIT
43--
442.13.0
45
diff --git a/meta/recipes-core/systemd/systemd/0010-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/meta/recipes-core/systemd/systemd/0010-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
deleted file mode 100644
index 808c83aba3..0000000000
--- a/meta/recipes-core/systemd/systemd/0010-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From 6e9d2bcaa6f886b2384c1c35a04e4ebc148aea68 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 23 Oct 2017 12:40:25 -0700
4Subject: [PATCH 10/12] test-sizeof.c: Disable tests for missing typedefs in
5 musl
6
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9Upstream-Status: Pending
10
11 src/test/test-sizeof.c | 5 ++++-
12 1 file changed, 4 insertions(+), 1 deletion(-)
13
14diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
15index 269adfd18..ba7855dff 100644
16--- a/src/test/test-sizeof.c
17+++ b/src/test/test-sizeof.c
18@@ -18,7 +18,6 @@
19 ***/
20
21 #include <stdio.h>
22-
23 #include "time-util.h"
24
25 /* Print information about various types. Useful when diagnosing
26@@ -48,8 +47,10 @@ int main(void) {
27 info(unsigned);
28 info(long unsigned);
29 info(long long unsigned);
30+#ifdef __GLIBC__
31 info(__syscall_ulong_t);
32 info(__syscall_slong_t);
33+#endif
34
35 info(float);
36 info(double);
37@@ -59,7 +60,9 @@ int main(void) {
38 info(ssize_t);
39 info(time_t);
40 info(usec_t);
41+#ifdef __GLIBC__
42 info(__time_t);
43+#endif
44
45 info(enum Enum);
46 info(enum BigEnum);
47--
482.14.2
49
diff --git a/meta/recipes-core/systemd/systemd/0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch b/meta/recipes-core/systemd/systemd/0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch
deleted file mode 100644
index b01ae97150..0000000000
--- a/meta/recipes-core/systemd/systemd/0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From 3f6f45578b828e414f50c6822375073e7174236a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 14 Dec 2015 00:50:01 +0000
4Subject: [PATCH 11/19] nss-mymachines: Build conditionally when
5 HAVE_MYHOSTNAME is set
6
7Fixes build failures when building with --disable-myhostname
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 Makefile.am | 2 ++
14 1 file changed, 2 insertions(+)
15
16diff --git a/Makefile.am b/Makefile.am
17index 02f4017..420e0e0 100644
18--- a/Makefile.am
19+++ b/Makefile.am
20@@ -5146,6 +5146,7 @@ SYSTEM_UNIT_ALIASES += \
21 BUSNAMES_TARGET_WANTS += \
22 org.freedesktop.machine1.busname
23
24+if HAVE_MYHOSTNAME
25 libnss_mymachines_la_SOURCES = \
26 src/nss-mymachines/nss-mymachines.sym \
27 src/nss-mymachines/nss-mymachines.c
28@@ -5167,6 +5168,7 @@ rootlib_LTLIBRARIES += \
29 libnss_mymachines.la
30
31 endif
32+endif
33
34 polkitpolicy_in_files += \
35 src/machine/org.freedesktop.machine1.policy.in
36--
372.10.2
38
diff --git a/meta/recipes-core/systemd/systemd/0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch b/meta/recipes-core/systemd/systemd/0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch
index b609276201..b0923d15f8 100644
--- a/meta/recipes-core/systemd/systemd/0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch
+++ b/meta/recipes-core/systemd/systemd/0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch
@@ -1,25 +1,26 @@
1From b7c6bfe2ec5ae426e586e1d6ecadb52a97128a3f Mon Sep 17 00:00:00 2001 1From 60dd411e9756fc2b14c0e061ad803782b4aee874 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 9 Nov 2016 20:49:53 -0800 3Date: Mon, 26 Feb 2018 15:46:05 +0800
4Subject: [PATCH 13/14] socket-util: don't fail if libc doesn't support IDN 4Subject: [PATCH 11/31] socket-util: don't fail if libc doesn't support IDN
5 5
6Upstream-Status: Pending 6Upstream-Status: Pending
7 7
8Signed-off-by: Emil Renner Berthing <systemd@esmil.dk> 8Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
9Signed-off-by: Khem Raj <raj.khem@gmail.com> 9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10 10
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
11--- 12---
12 src/basic/socket-util.c | 9 +++++++++ 13 src/basic/socket-util.c | 10 ++++++++++
13 1 file changed, 9 insertions(+) 14 1 file changed, 10 insertions(+)
14 15
15diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c 16diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
16index 016e64aa0..d4658826e 100644 17index 2c70cade1..67aedadd4 100644
17--- a/src/basic/socket-util.c 18--- a/src/basic/socket-util.c
18+++ b/src/basic/socket-util.c 19+++ b/src/basic/socket-util.c
19@@ -47,6 +47,15 @@ 20@@ -50,6 +50,16 @@
20 #include "user-util.h"
21 #include "utf8.h" 21 #include "utf8.h"
22 #include "util.h" 22 #include "util.h"
23
23+/* Don't fail if the standard library 24+/* Don't fail if the standard library
24+ * doesn't support IDN */ 25+ * doesn't support IDN */
25+#ifndef NI_IDN 26+#ifndef NI_IDN
@@ -29,9 +30,10 @@ index 016e64aa0..d4658826e 100644
29+#ifndef NI_IDN_USE_STD3_ASCII_RULES 30+#ifndef NI_IDN_USE_STD3_ASCII_RULES
30+#define NI_IDN_USE_STD3_ASCII_RULES 0 31+#define NI_IDN_USE_STD3_ASCII_RULES 0
31+#endif 32+#endif
32 33+
33 #ifdef ENABLE_IDN 34 #if ENABLE_IDN
34 # define IDN_FLAGS (NI_IDN|NI_IDN_USE_STD3_ASCII_RULES) 35 # define IDN_FLAGS (NI_IDN|NI_IDN_USE_STD3_ASCII_RULES)
36 #else
35-- 37--
362.13.2 382.13.0
37 39
diff --git a/meta/recipes-core/systemd/systemd/0020-rules-watch-metadata-changes-in-ide-devices.patch b/meta/recipes-core/systemd/systemd/0012-rules-watch-metadata-changes-in-ide-devices.patch
index 17d698a06c..720786371c 100644
--- a/meta/recipes-core/systemd/systemd/0020-rules-watch-metadata-changes-in-ide-devices.patch
+++ b/meta/recipes-core/systemd/systemd/0012-rules-watch-metadata-changes-in-ide-devices.patch
@@ -1,7 +1,7 @@
1From 8207d645582e96c56950674e104653d0cd552d60 Mon Sep 17 00:00:00 2001 1From 406a4c8692316e8c7e14c78f9a802689be304a95 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 17 Nov 2017 09:46:00 +0800 3Date: Fri, 17 Nov 2017 09:46:00 +0800
4Subject: [PATCH] rules: watch metadata changes in ide devices 4Subject: [PATCH 12/31] rules: watch metadata changes in ide devices
5 5
6Formatting IDE storage does not trigger "change" uevents. As a result 6Formatting IDE storage does not trigger "change" uevents. As a result
7clients using udev API don't get any updates afterwards and get outdated 7clients using udev API don't get any updates afterwards and get outdated
@@ -29,7 +29,7 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
29 1 file changed, 1 insertion(+), 1 deletion(-) 29 1 file changed, 1 insertion(+), 1 deletion(-)
30 30
31diff --git a/rules/60-block.rules b/rules/60-block.rules 31diff --git a/rules/60-block.rules b/rules/60-block.rules
32index 343fc06..b5237da 100644 32index 343fc06f8..b5237dac4 100644
33--- a/rules/60-block.rules 33--- a/rules/60-block.rules
34+++ b/rules/60-block.rules 34+++ b/rules/60-block.rules
35@@ -8,4 +8,4 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_ 35@@ -8,4 +8,4 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_
@@ -39,5 +39,5 @@ index 343fc06..b5237da 100644
39-ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*", OPTIONS+="watch" 39-ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*", OPTIONS+="watch"
40+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*|hd*", OPTIONS+="watch" 40+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*|hd*", OPTIONS+="watch"
41-- 41--
421.8.3.1 422.13.0
43 43
diff --git a/meta/recipes-core/systemd/systemd/0013-Make-root-s-home-directory-configurable.patch b/meta/recipes-core/systemd/systemd/0013-Make-root-s-home-directory-configurable.patch
deleted file mode 100644
index aeebbfb8fe..0000000000
--- a/meta/recipes-core/systemd/systemd/0013-Make-root-s-home-directory-configurable.patch
+++ /dev/null
@@ -1,155 +0,0 @@
1From 479e1f4aa2b9f1c911a4d0dd18e222d241a978ea Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 9 Nov 2016 20:35:30 -0800
4Subject: [PATCH 42/48] Make root's home directory configurable
5
6OpenEmbedded has a configurable home directory for root. Allow
7systemd to be built using its idea of what root's home directory
8should be.
9
10Upstream-Status: Denied
11Upstream wants to have a unified hierarchy where everyone is
12using the same root folder.
13https://github.com/systemd/systemd/issues/541
14
15Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17
18---
19 Makefile.am | 2 ++
20 configure.ac | 7 +++++++
21 src/basic/user-util.c | 4 ++--
22 src/nspawn/nspawn.c | 4 ++--
23 units/emergency.service.in | 4 ++--
24 units/rescue.service.in | 4 ++--
25 6 files changed, 17 insertions(+), 8 deletions(-)
26
27diff --git a/Makefile.am b/Makefile.am
28index 1bcd932c2..c2b4a99d2 100644
29--- a/Makefile.am
30+++ b/Makefile.am
31@@ -226,6 +226,7 @@ AM_CPPFLAGS = \
32 -DLIBDIR=\"$(libdir)\" \
33 -DROOTLIBDIR=\"$(rootlibdir)\" \
34 -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
35+ -DROOTHOMEDIR=\"$(roothomedir)\" \
36 -I $(top_srcdir)/src \
37 -I $(top_builddir)/src/basic \
38 -I $(top_srcdir)/src/basic \
39@@ -6356,6 +6357,7 @@ substitutions = \
40 '|rootlibdir=$(rootlibdir)|' \
41 '|rootlibexecdir=$(rootlibexecdir)|' \
42 '|rootbindir=$(rootbindir)|' \
43+ '|roothomedir=$(roothomedir)|' \
44 '|bindir=$(bindir)|' \
45 '|SYSTEMCTL=$(rootbindir)/systemctl|' \
46 '|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \
47diff --git a/configure.ac b/configure.ac
48index 0354ffe6a..b53ca1f1a 100644
49--- a/configure.ac
50+++ b/configure.ac
51@@ -1641,6 +1641,11 @@ AC_ARG_WITH([rootlibdir],
52 [with_rootlibdir=${libdir}])
53 AX_NORMALIZE_PATH([with_rootlibdir])
54
55+AC_ARG_WITH([roothomedir],
56+ AS_HELP_STRING([--with-roothomedir=DIR], [Home directory for the root user]),
57+ [],
58+ [with_roothomedir=/root])
59+
60 AC_ARG_WITH([pamlibdir],
61 AS_HELP_STRING([--with-pamlibdir=DIR], [directory for PAM modules]),
62 [],
63@@ -1733,6 +1738,7 @@ AC_SUBST([pamconfdir], [$with_pamconfdir])
64 AC_SUBST([rpmmacrosdir], [$with_rpmmacrosdir])
65 AC_SUBST([rootprefix], [$with_rootprefix])
66 AC_SUBST([rootlibdir], [$with_rootlibdir])
67+AC_SUBST([roothomedir], [$with_roothomedir])
68
69 AC_CONFIG_FILES([
70 Makefile
71@@ -1829,6 +1835,7 @@ AC_MSG_RESULT([
72 includedir: ${includedir}
73 lib dir: ${libdir}
74 rootlib dir: ${with_rootlibdir}
75+ root home dir: ${with_roothomedir}
76 SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
77 SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
78 build Python: ${PYTHON}
79diff --git a/src/basic/user-util.c b/src/basic/user-util.c
80index c619dad52..662682adf 100644
81--- a/src/basic/user-util.c
82+++ b/src/basic/user-util.c
83@@ -129,7 +129,7 @@ int get_user_creds(
84 *gid = 0;
85
86 if (home)
87- *home = "/root";
88+ *home = ROOTHOMEDIR;
89
90 if (shell)
91 *shell = "/bin/sh";
92@@ -389,7 +389,7 @@ int get_home_dir(char **_h) {
93 /* Hardcode home directory for root to avoid NSS */
94 u = getuid();
95 if (u == 0) {
96- h = strdup("/root");
97+ h = strdup(ROOTHOMEDIR);
98 if (!h)
99 return -ENOMEM;
100
101diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
102index 8a5fedd4b..7b01ec078 100644
103--- a/src/nspawn/nspawn.c
104+++ b/src/nspawn/nspawn.c
105@@ -2291,7 +2291,7 @@ static int inner_child(
106 if (envp[n_env])
107 n_env++;
108
109- if ((asprintf((char**)(envp + n_env++), "HOME=%s", home ? home: "/root") < 0) ||
110+ if ((asprintf((char**)(envp + n_env++), "HOME=%s", home ? home: ROOTHOMEDIR) < 0) ||
111 (asprintf((char**)(envp + n_env++), "USER=%s", arg_user ? arg_user : "root") < 0) ||
112 (asprintf((char**)(envp + n_env++), "LOGNAME=%s", arg_user ? arg_user : "root") < 0))
113 return log_oom();
114@@ -2373,7 +2373,7 @@ static int inner_child(
115 } else {
116 if (!arg_chdir)
117 /* If we cannot change the directory, we'll end up in /, that is expected. */
118- (void) chdir(home ?: "/root");
119+ (void) chdir(home ?: ROOTHOMEDIR);
120
121 execle("/bin/bash", "-bash", NULL, env_use);
122 execle("/bin/sh", "-sh", NULL, env_use);
123diff --git a/units/emergency.service.in b/units/emergency.service.in
124index e9eb238b9..32588e48a 100644
125--- a/units/emergency.service.in
126+++ b/units/emergency.service.in
127@@ -15,8 +15,8 @@ Conflicts=syslog.socket
128 Before=shutdown.target
129
130 [Service]
131-Environment=HOME=/root
132-WorkingDirectory=-/root
133+Environment=HOME=@roothomedir@
134+WorkingDirectory=-@roothomedir@
135 ExecStart=-@rootlibexecdir@/systemd-sulogin-shell emergency
136 Type=idle
137 StandardInput=tty-force
138diff --git a/units/rescue.service.in b/units/rescue.service.in
139index 4ab66f485..bd9898f2c 100644
140--- a/units/rescue.service.in
141+++ b/units/rescue.service.in
142@@ -14,8 +14,8 @@ After=sysinit.target plymouth-start.service
143 Before=shutdown.target
144
145 [Service]
146-Environment=HOME=/root
147-WorkingDirectory=-/root
148+Environment=HOME=@roothomedir@
149+WorkingDirectory=-@roothomedir@
150 ExecStart=-@rootlibexecdir@/systemd-sulogin-shell rescue
151 Type=idle
152 StandardInput=tty-force
153--
1542.13.2
155
diff --git a/meta/recipes-core/systemd/systemd/0001-add-fallback-parse_printf_format-implementation.patch b/meta/recipes-core/systemd/systemd/0013-add-fallback-parse_printf_format-implementation.patch
index e2f7458abe..9c9278d3f3 100644
--- a/meta/recipes-core/systemd/systemd/0001-add-fallback-parse_printf_format-implementation.patch
+++ b/meta/recipes-core/systemd/systemd/0013-add-fallback-parse_printf_format-implementation.patch
@@ -1,53 +1,51 @@
1From 0933ca6251808f856b92b0ce8da8696d5febc333 Mon Sep 17 00:00:00 2001 1From 580d23cf0b32e36a8fb96710336ffef432b3c7ce Mon Sep 17 00:00:00 2001
2From: Emil Renner Berthing <systemd@esmil.dk> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 23 Oct 2017 10:41:39 -0700 3Date: Wed, 28 Feb 2018 21:10:58 -0800
4Subject: [PATCH 01/12] add fallback parse_printf_format implementation 4Subject: [PATCH] add fallback parse_printf_format implementation
5
6Upstream-Status: Pending
5 7
6Signed-off-by: Emil Renner Berthing <systemd@esmil.dk> 8Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
7Signed-off-by: Khem Raj <raj.khem@gmail.com> 9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
8--- 11---
9Upstream-Status: Pending 12 meson.build | 1 +
10 13 src/basic/meson.build | 4 +
11 Makefile.am | 4 +
12 configure.ac | 2 +
13 src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++ 14 src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++++++++++
14 src/basic/parse-printf-format.h | 57 +++++++++ 15 src/basic/parse-printf-format.h | 57 +++++++++
15 src/basic/stdio-util.h | 2 +- 16 src/basic/stdio-util.h | 2 +-
16 src/journal/journal-send.c | 2 +- 17 src/journal/journal-send.c | 2 +-
17 6 files changed, 338 insertions(+), 2 deletions(-) 18 6 files changed, 337 insertions(+), 2 deletions(-)
18 create mode 100644 src/basic/parse-printf-format.c 19 create mode 100644 src/basic/parse-printf-format.c
19 create mode 100644 src/basic/parse-printf-format.h 20 create mode 100644 src/basic/parse-printf-format.h
20 21
21diff --git a/Makefile.am b/Makefile.am 22diff --git a/meson.build b/meson.build
22index 692d7bb95..3cc8f3451 100644 23index 94a16712b..4eabaafe8 100644
23--- a/Makefile.am 24--- a/meson.build
24+++ b/Makefile.am 25+++ b/meson.build
25@@ -997,6 +997,10 @@ libbasic_la_SOURCES = \ 26@@ -620,6 +620,7 @@ foreach header : ['crypt.h',
26 src/basic/journal-importer.h \ 27 'linux/btrfs.h',
27 src/basic/journal-importer.c 28 'linux/memfd.h',
29 'linux/vm_sockets.h',
30+ 'printf.h',
31 'sys/auxv.h',
32 'valgrind/memcheck.h',
33 'valgrind/valgrind.h',
34diff --git a/src/basic/meson.build b/src/basic/meson.build
35index 44cd31ecb..435c6ee02 100644
36--- a/src/basic/meson.build
37+++ b/src/basic/meson.build
38@@ -310,6 +310,10 @@ endforeach
28 39
29+if !HAVE_PRINTF_H 40 basic_sources += [missing_h] + generated_gperf_headers
30+libbasic_la_SOURCES += src/basic/parse-printf-format.c 41
42+if conf.get('HAVE_PRINTF_H') != 1
43+ basic_sources += [files('parse-printf-format.c')]
31+endif 44+endif
32+ 45+
33 nodist_libbasic_la_SOURCES = \ 46 libbasic = static_library(
34 src/basic/errno-from-name.h \ 47 'basic',
35 src/basic/errno-to-name.h \ 48 basic_sources,
36diff --git a/configure.ac b/configure.ac
37index 60e7df5ee..efcdc6c16 100644
38--- a/configure.ac
39+++ b/configure.ac
40@@ -308,8 +308,10 @@ AC_CHECK_HEADERS([uchar.h], [], [])
41 AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
42 AC_CHECK_HEADERS([linux/btrfs.h], [], [])
43 AC_CHECK_HEADERS([linux/memfd.h], [], [])
44+AC_CHECK_HEADERS([printf.h], [], [])
45 AC_CHECK_HEADERS([linux/vm_sockets.h], [], [], [#include <sys/socket.h>])
46
47+AM_CONDITIONAL(HAVE_PRINTF_H, [test "x$ac_cv_header_printf_h" = xyes])
48 # unconditionally pull-in librt with old glibc versions
49 AC_SEARCH_LIBS([clock_gettime], [rt], [], [])
50
51diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c 49diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
52new file mode 100644 50new file mode 100644
53index 000000000..49437e544 51index 000000000..49437e544
@@ -329,7 +327,7 @@ index 000000000..49437e544
329+} 327+}
330diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h 328diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
331new file mode 100644 329new file mode 100644
332index 000000000..4371177b0 330index 000000000..47be7522d
333--- /dev/null 331--- /dev/null
334+++ b/src/basic/parse-printf-format.h 332+++ b/src/basic/parse-printf-format.h
335@@ -0,0 +1,57 @@ 333@@ -0,0 +1,57 @@
@@ -361,7 +359,7 @@ index 000000000..4371177b0
361+ 359+
362+#include "config.h" 360+#include "config.h"
363+ 361+
364+#ifdef HAVE_PRINTF_H 362+#if HAVE_PRINTF_H
365+#include <printf.h> 363+#include <printf.h>
366+#else 364+#else
367+ 365+
@@ -391,10 +389,10 @@ index 000000000..4371177b0
391+ 389+
392+#endif /* HAVE_PRINTF_H */ 390+#endif /* HAVE_PRINTF_H */
393diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h 391diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
394index bd1144b4c..c9c95eb54 100644 392index dbfafba26..8038380d6 100644
395--- a/src/basic/stdio-util.h 393--- a/src/basic/stdio-util.h
396+++ b/src/basic/stdio-util.h 394+++ b/src/basic/stdio-util.h
397@@ -19,12 +19,12 @@ 395@@ -20,12 +20,12 @@
398 along with systemd; If not, see <http://www.gnu.org/licenses/>. 396 along with systemd; If not, see <http://www.gnu.org/licenses/>.
399 ***/ 397 ***/
400 398
@@ -409,10 +407,10 @@ index bd1144b4c..c9c95eb54 100644
409 #define xsprintf(buf, fmt, ...) \ 407 #define xsprintf(buf, fmt, ...) \
410 assert_message_se((size_t) snprintf(buf, ELEMENTSOF(buf), fmt, __VA_ARGS__) < ELEMENTSOF(buf), "xsprintf: " #buf "[] must be big enough") 408 assert_message_se((size_t) snprintf(buf, ELEMENTSOF(buf), fmt, __VA_ARGS__) < ELEMENTSOF(buf), "xsprintf: " #buf "[] must be big enough")
411diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c 409diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
412index 440fba67c..0236c43c4 100644 410index 73329ba02..70bb9e0e8 100644
413--- a/src/journal/journal-send.c 411--- a/src/journal/journal-send.c
414+++ b/src/journal/journal-send.c 412+++ b/src/journal/journal-send.c
415@@ -19,7 +19,6 @@ 413@@ -20,7 +20,6 @@
416 414
417 #include <errno.h> 415 #include <errno.h>
418 #include <fcntl.h> 416 #include <fcntl.h>
@@ -420,7 +418,7 @@ index 440fba67c..0236c43c4 100644
420 #include <stddef.h> 418 #include <stddef.h>
421 #include <sys/socket.h> 419 #include <sys/socket.h>
422 #include <sys/un.h> 420 #include <sys/un.h>
423@@ -38,6 +37,7 @@ 421@@ -39,6 +38,7 @@
424 #include "stdio-util.h" 422 #include "stdio-util.h"
425 #include "string-util.h" 423 #include "string-util.h"
426 #include "util.h" 424 #include "util.h"
@@ -429,5 +427,5 @@ index 440fba67c..0236c43c4 100644
429 #define SNDBUF_SIZE (8*1024*1024) 427 #define SNDBUF_SIZE (8*1024*1024)
430 428
431-- 429--
4322.14.2 4302.13.0
433 431
diff --git a/meta/recipes-core/systemd/systemd/0014-src-basic-missing.h-check-for-missing-strndupa.patch b/meta/recipes-core/systemd/systemd/0014-src-basic-missing.h-check-for-missing-strndupa.patch
new file mode 100644
index 0000000000..9f62cbbe69
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0014-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -0,0 +1,118 @@
1From 33be9052315cc4ec8e929fa238e1f0cc0161ad07 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 28 Feb 2018 21:15:28 -0800
4Subject: [PATCH] src/basic/missing.h: check for missing strndupa
5
6include missing.h for definition of strndupa
7
8Upstream-Status: Pending
9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12---
13 meson.build | 1 +
14 src/basic/missing.h | 11 +++++++++++
15 src/basic/mkdir.c | 1 +
16 src/basic/parse-util.c | 1 +
17 src/basic/procfs-util.c | 1 +
18 src/shared/pager.c | 1 +
19 src/shared/uid-range.c | 1 +
20 7 files changed, 17 insertions(+)
21
22diff --git a/meson.build b/meson.build
23index 4eabaafe8..12811b3f3 100644
24--- a/meson.build
25+++ b/meson.build
26@@ -525,6 +525,7 @@ foreach ident : [
27 ['bpf', '''#include <sys/syscall.h>
28 #include <unistd.h>'''],
29 ['explicit_bzero' , '''#include <string.h>'''],
30+ ['strndupa' , '''#include <string.h>'''],
31 ]
32
33 have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
34diff --git a/src/basic/missing.h b/src/basic/missing.h
35index 84d6d9167..07a8c8364 100644
36--- a/src/basic/missing.h
37+++ b/src/basic/missing.h
38@@ -1187,6 +1187,17 @@ struct input_mask {
39 typedef int32_t key_serial_t;
40 #endif
41
42+#if ! HAVE_STRNDUPA
43+#define strndupa(s, n) \
44+ ({ \
45+ const char *__old = (s); \
46+ size_t __len = strnlen(__old, (n)); \
47+ char *__new = (char *)alloca(__len + 1); \
48+ __new[__len] = '\0'; \
49+ (char *)memcpy(__new, __old, __len); \
50+ })
51+#endif
52+
53 #ifndef KEYCTL_JOIN_SESSION_KEYRING
54 #define KEYCTL_JOIN_SESSION_KEYRING 1
55 #endif
56diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
57index de4746c86..d51518a5a 100644
58--- a/src/basic/mkdir.c
59+++ b/src/basic/mkdir.c
60@@ -30,6 +30,7 @@
61 #include "path-util.h"
62 #include "stat-util.h"
63 #include "user-util.h"
64+#include "missing.h"
65
66 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, bool follow_symlink, mkdir_func_t _mkdir) {
67 struct stat st;
68diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
69index 2c22753de..97533721d 100644
70--- a/src/basic/parse-util.c
71+++ b/src/basic/parse-util.c
72@@ -33,6 +33,7 @@
73 #include "parse-util.h"
74 #include "process-util.h"
75 #include "string-util.h"
76+#include "missing.h"
77
78 int parse_boolean(const char *v) {
79 assert(v);
80diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
81index 9bb42cc7b..23bbd9e67 100644
82--- a/src/basic/procfs-util.c
83+++ b/src/basic/procfs-util.c
84@@ -9,6 +9,7 @@
85 #include "procfs-util.h"
86 #include "stdio-util.h"
87 #include "string-util.h"
88+#include "missing.h"
89
90 int procfs_tasks_get_limit(uint64_t *ret) {
91 _cleanup_free_ char *value = NULL;
92diff --git a/src/shared/pager.c b/src/shared/pager.c
93index 75db3c985..84f06bf7d 100644
94--- a/src/shared/pager.c
95+++ b/src/shared/pager.c
96@@ -39,6 +39,7 @@
97 #include "string-util.h"
98 #include "strv.h"
99 #include "terminal-util.h"
100+#include "missing.h"
101
102 static pid_t pager_pid = 0;
103
104diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
105index c38b7cc98..8ec6bf08d 100644
106--- a/src/shared/uid-range.c
107+++ b/src/shared/uid-range.c
108@@ -25,6 +25,7 @@
109 #include "macro.h"
110 #include "uid-range.h"
111 #include "user-util.h"
112+#include "missing.h"
113
114 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
115 assert(range);
116--
1172.13.0
118
diff --git a/meta/recipes-core/systemd/systemd/0003-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/meta/recipes-core/systemd/systemd/0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
index 9a2d2c8e0a..450947667b 100644
--- a/meta/recipes-core/systemd/systemd/0003-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
+++ b/meta/recipes-core/systemd/systemd/0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -1,7 +1,7 @@
1From 5bbbc2a08a3b4283ec04af0e77e25fb205aa8b82 Mon Sep 17 00:00:00 2001 1From b45cf4923c7e1f1165925e9b4d7db2108faf2eae Mon Sep 17 00:00:00 2001
2From: Emil Renner Berthing <systemd@esmil.dk> 2From: Emil Renner Berthing <systemd@esmil.dk>
3Date: Mon, 23 Oct 2017 10:50:14 -0700 3Date: Mon, 23 Oct 2017 10:50:14 -0700
4Subject: [PATCH 03/12] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not 4Subject: [PATCH 15/31] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
5 defined 5 defined
6 6
7If the standard library doesn't provide brace 7If the standard library doesn't provide brace
@@ -11,20 +11,20 @@ Dont use GNU GLOB extentions on non-glibc systems
11 11
12Conditionalize use of GLOB_ALTDIRFUNC 12Conditionalize use of GLOB_ALTDIRFUNC
13 13
14Signed-off-by: Khem Raj <raj.khem@gmail.com>
15---
16Upstream-Status: Pending 14Upstream-Status: Pending
17 15
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17---
18 src/basic/glob-util.c | 20 +++++++++++++++++--- 18 src/basic/glob-util.c | 20 +++++++++++++++++---
19 src/test/test-glob-util.c | 17 +++++++++++++++-- 19 src/test/test-glob-util.c | 17 +++++++++++++++--
20 src/tmpfiles/tmpfiles.c | 8 ++++++++ 20 src/tmpfiles/tmpfiles.c | 8 ++++++++
21 3 files changed, 40 insertions(+), 5 deletions(-) 21 3 files changed, 40 insertions(+), 5 deletions(-)
22 22
23diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c 23diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
24index f611c42e4..ad6e2be8d 100644 24index 6e80a1e23..312bb3fd1 100644
25--- a/src/basic/glob-util.c 25--- a/src/basic/glob-util.c
26+++ b/src/basic/glob-util.c 26+++ b/src/basic/glob-util.c
27@@ -27,13 +27,18 @@ 27@@ -28,13 +28,18 @@
28 #include "macro.h" 28 #include "macro.h"
29 #include "path-util.h" 29 #include "path-util.h"
30 #include "strv.h" 30 #include "strv.h"
@@ -44,7 +44,7 @@ index f611c42e4..ad6e2be8d 100644
44 if (!pglob->gl_closedir) 44 if (!pglob->gl_closedir)
45 pglob->gl_closedir = (void (*)(void *)) closedir; 45 pglob->gl_closedir = (void (*)(void *)) closedir;
46 if (!pglob->gl_readdir) 46 if (!pglob->gl_readdir)
47@@ -44,10 +49,13 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { 47@@ -45,10 +50,13 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
48 pglob->gl_lstat = lstat; 48 pglob->gl_lstat = lstat;
49 if (!pglob->gl_stat) 49 if (!pglob->gl_stat)
50 pglob->gl_stat = stat; 50 pglob->gl_stat = stat;
@@ -60,7 +60,7 @@ index f611c42e4..ad6e2be8d 100644
60 if (k == GLOB_NOMATCH) 60 if (k == GLOB_NOMATCH)
61 return -ENOENT; 61 return -ENOENT;
62 if (k == GLOB_NOSPACE) 62 if (k == GLOB_NOSPACE)
63@@ -60,6 +68,12 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { 63@@ -61,6 +69,12 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
64 return 0; 64 return 0;
65 } 65 }
66 66
@@ -74,10 +74,10 @@ index f611c42e4..ad6e2be8d 100644
74 _cleanup_globfree_ glob_t g = {}; 74 _cleanup_globfree_ glob_t g = {};
75 int k; 75 int k;
76diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c 76diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
77index af866e004..3afa09ada 100644 77index bd2f8fcfd..a10c77427 100644
78--- a/src/test/test-glob-util.c 78--- a/src/test/test-glob-util.c
79+++ b/src/test/test-glob-util.c 79+++ b/src/test/test-glob-util.c
80@@ -29,6 +29,11 @@ 80@@ -30,6 +30,11 @@
81 #include "glob-util.h" 81 #include "glob-util.h"
82 #include "macro.h" 82 #include "macro.h"
83 #include "rm-rf.h" 83 #include "rm-rf.h"
@@ -89,7 +89,7 @@ index af866e004..3afa09ada 100644
89 89
90 static void test_glob_exists(void) { 90 static void test_glob_exists(void) {
91 char name[] = "/tmp/test-glob_exists.XXXXXX"; 91 char name[] = "/tmp/test-glob_exists.XXXXXX";
92@@ -51,25 +56,33 @@ static void test_glob_exists(void) { 92@@ -52,25 +57,33 @@ static void test_glob_exists(void) {
93 static void test_glob_no_dot(void) { 93 static void test_glob_no_dot(void) {
94 char template[] = "/tmp/test-glob-util.XXXXXXX"; 94 char template[] = "/tmp/test-glob-util.XXXXXXX";
95 const char *fn; 95 const char *fn;
@@ -126,10 +126,10 @@ index af866e004..3afa09ada 100644
126 126
127 (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL); 127 (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
128diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c 128diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
129index 9419c99e2..07027a765 100644 129index 38cbb739c..88cc543f0 100644
130--- a/src/tmpfiles/tmpfiles.c 130--- a/src/tmpfiles/tmpfiles.c
131+++ b/src/tmpfiles/tmpfiles.c 131+++ b/src/tmpfiles/tmpfiles.c
132@@ -71,6 +71,12 @@ 132@@ -76,6 +76,12 @@
133 #include "umask-util.h" 133 #include "umask-util.h"
134 #include "user-util.h" 134 #include "user-util.h"
135 #include "util.h" 135 #include "util.h"
@@ -142,7 +142,7 @@ index 9419c99e2..07027a765 100644
142 142
143 /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates 143 /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
144 * them in the file system. This is intended to be used to create 144 * them in the file system. This is intended to be used to create
145@@ -1092,7 +1098,9 @@ static int item_do_children(Item *i, const char *path, action_t action) { 145@@ -1288,7 +1294,9 @@ static int item_do_children(Item *i, const char *path, action_t action) {
146 146
147 static int glob_item(Item *i, action_t action, bool recursive) { 147 static int glob_item(Item *i, action_t action, bool recursive) {
148 _cleanup_globfree_ glob_t g = { 148 _cleanup_globfree_ glob_t g = {
@@ -153,5 +153,5 @@ index 9419c99e2..07027a765 100644
153 int r = 0, k; 153 int r = 0, k;
154 char **fn; 154 char **fn;
155-- 155--
1562.14.2 1562.13.0
157 157
diff --git a/meta/recipes-core/systemd/systemd/0004-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch b/meta/recipes-core/systemd/systemd/0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch
index cb5ae99a46..53037ea6d7 100644
--- a/meta/recipes-core/systemd/systemd/0004-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch
+++ b/meta/recipes-core/systemd/systemd/0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch
@@ -1,24 +1,24 @@
1From c850b654e71677e0d6292f1345207b9b5acffc33 Mon Sep 17 00:00:00 2001 1From efc57856f961c1f3bf016c511c53d990db8abdff Mon Sep 17 00:00:00 2001
2From: Emil Renner Berthing <systemd@esmil.dk> 2From: Emil Renner Berthing <systemd@esmil.dk>
3Date: Mon, 23 Oct 2017 11:31:03 -0700 3Date: Mon, 23 Oct 2017 11:31:03 -0700
4Subject: [PATCH 04/12] src/basic/missing.h: check for missing __compar_fn_t 4Subject: [PATCH 16/31] src/basic/missing.h: check for missing __compar_fn_t
5 typedef 5 typedef
6 6
7include missing.h for missing __compar_fn_t 7include missing.h for missing __compar_fn_t
8 8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11Upstream-Status: Pending 9Upstream-Status: Pending
12 10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 src/basic/missing.h | 5 +++++ 13 src/basic/missing.h | 5 +++++
14 src/basic/strbuf.c | 1 + 14 src/basic/strbuf.c | 1 +
15 2 files changed, 6 insertions(+) 15 2 files changed, 6 insertions(+)
16 16
17diff --git a/src/basic/missing.h b/src/basic/missing.h 17diff --git a/src/basic/missing.h b/src/basic/missing.h
18index 8009888ad..671f341c6 100644 18index 07a8c8364..1aee3346a 100644
19--- a/src/basic/missing.h 19--- a/src/basic/missing.h
20+++ b/src/basic/missing.h 20+++ b/src/basic/missing.h
21@@ -1063,6 +1063,11 @@ struct input_mask { 21@@ -1162,6 +1162,11 @@ struct input_mask {
22 #define RENAME_NOREPLACE (1 << 0) 22 #define RENAME_NOREPLACE (1 << 0)
23 #endif 23 #endif
24 24
@@ -31,10 +31,10 @@ index 8009888ad..671f341c6 100644
31 #define KCMP_FILE 0 31 #define KCMP_FILE 0
32 #endif 32 #endif
33diff --git a/src/basic/strbuf.c b/src/basic/strbuf.c 33diff --git a/src/basic/strbuf.c b/src/basic/strbuf.c
34index 00aaf9e62..9dc4a584a 100644 34index 8befffa66..bcb860f95 100644
35--- a/src/basic/strbuf.c 35--- a/src/basic/strbuf.c
36+++ b/src/basic/strbuf.c 36+++ b/src/basic/strbuf.c
37@@ -23,6 +23,7 @@ 37@@ -24,6 +24,7 @@
38 38
39 #include "alloc-util.h" 39 #include "alloc-util.h"
40 #include "strbuf.h" 40 #include "strbuf.h"
@@ -43,5 +43,5 @@ index 00aaf9e62..9dc4a584a 100644
43 /* 43 /*
44 * Strbuf stores given strings in a single continuous allocated memory 44 * Strbuf stores given strings in a single continuous allocated memory
45-- 45--
462.14.2 462.13.0
47 47
diff --git a/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/meta/recipes-core/systemd/systemd/0017-Include-netinet-if_ether.h.patch
index 55887ee823..a09cfddaa8 100644
--- a/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
+++ b/meta/recipes-core/systemd/systemd/0017-Include-netinet-if_ether.h.patch
@@ -1,53 +1,54 @@
1From 21080b6a40d0a4ddd2db8f0fa37686f6fa885d1c Mon Sep 17 00:00:00 2001 1From f2b0173cd9807864db1ef3b102abaa76ef37e506 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 23 Oct 2017 11:38:33 -0700 3Date: Wed, 28 Feb 2018 21:19:12 -0800
4Subject: [PATCH 06/12] Include netinet/if_ether.h 4Subject: [PATCH 17/31] Include netinet/if_ether.h
5 5
6Fixes 6Fixes
7/mnt/a/oe/build/tmp/work/mips32r2-bec-linux-musl/systemd/1_234-r0/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr' 7/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
8 struct ethhdr { 8 struct ethhdr {
9 ^~~~~~ 9 ^~~~~~
10 10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13Upstream-Status: Pending 11Upstream-Status: Pending
14 12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
15---
15 src/libsystemd/sd-netlink/netlink-types.c | 1 + 16 src/libsystemd/sd-netlink/netlink-types.c | 1 +
16 src/network/netdev/tuntap.c | 1 + 17 src/network/netdev/tuntap.c | 1 +
17 src/network/networkd-brvlan.c | 1 + 18 src/network/networkd-brvlan.c | 1 +
18 src/udev/net/ethtool-util.c | 2 +- 19 src/udev/net/ethtool-util.c | 1 +
19 src/udev/udev-builtin-net_setup_link.c | 2 +- 20 src/udev/udev-builtin-net_setup_link.c | 1 +
20 5 files changed, 5 insertions(+), 2 deletions(-) 21 5 files changed, 5 insertions(+)
21 22
22diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c 23diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
23index 923f7dd10..b95b1e4b2 100644 24index 0ee7d6f0d..ef75893a6 100644
24--- a/src/libsystemd/sd-netlink/netlink-types.c 25--- a/src/libsystemd/sd-netlink/netlink-types.c
25+++ b/src/libsystemd/sd-netlink/netlink-types.c 26+++ b/src/libsystemd/sd-netlink/netlink-types.c
26@@ -19,6 +19,7 @@ 27@@ -21,6 +21,7 @@
27 28 #include <netinet/in.h>
28 #include <stdint.h> 29 #include <stdint.h>
29 #include <sys/socket.h> 30 #include <sys/socket.h>
30+#include <netinet/if_ether.h> 31+#include <netinet/if_ether.h>
31 #include <linux/netlink.h> 32 #include <linux/netlink.h>
32 #include <linux/rtnetlink.h> 33 #include <linux/rtnetlink.h>
33 #include <linux/can/netlink.h> 34 #include <linux/genetlink.h>
34diff --git a/src/network/netdev/tuntap.c b/src/network/netdev/tuntap.c 35diff --git a/src/network/netdev/tuntap.c b/src/network/netdev/tuntap.c
35index 3d6280884..40e58c38f 100644 36index 4fc9b610a..628c61c57 100644
36--- a/src/network/netdev/tuntap.c 37--- a/src/network/netdev/tuntap.c
37+++ b/src/network/netdev/tuntap.c 38+++ b/src/network/netdev/tuntap.c
38@@ -18,6 +18,7 @@ 39@@ -20,6 +20,7 @@
39 ***/
40 40
41 #include <errno.h>
41 #include <fcntl.h> 42 #include <fcntl.h>
42+#include <netinet/if_ether.h> 43+#include <netinet/if_ether.h>
43 #include <linux/if_tun.h> 44 #include <linux/if_tun.h>
44 #include <net/if.h> 45 #include <net/if.h>
45 #include <netinet/if_ether.h> 46 #include <netinet/if_ether.h>
46diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c 47diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
47index fa5d3ee7f..e0828962a 100644 48index 99dd41629..90407c9d8 100644
48--- a/src/network/networkd-brvlan.c 49--- a/src/network/networkd-brvlan.c
49+++ b/src/network/networkd-brvlan.c 50+++ b/src/network/networkd-brvlan.c
50@@ -18,6 +18,7 @@ 51@@ -19,6 +19,7 @@
51 ***/ 52 ***/
52 53
53 #include <netinet/in.h> 54 #include <netinet/in.h>
@@ -56,31 +57,29 @@ index fa5d3ee7f..e0828962a 100644
56 #include <stdbool.h> 57 #include <stdbool.h>
57 58
58diff --git a/src/udev/net/ethtool-util.c b/src/udev/net/ethtool-util.c 59diff --git a/src/udev/net/ethtool-util.c b/src/udev/net/ethtool-util.c
59index 201fc2343..5f7cc2a0a 100644 60index 9bdaef8d9..948f89cf8 100644
60--- a/src/udev/net/ethtool-util.c 61--- a/src/udev/net/ethtool-util.c
61+++ b/src/udev/net/ethtool-util.c 62+++ b/src/udev/net/ethtool-util.c
62@@ -16,7 +16,7 @@ 63@@ -18,6 +18,7 @@
63 You should have received a copy of the GNU Lesser General Public License
64 along with systemd; If not, see <http://www.gnu.org/licenses/>. 64 along with systemd; If not, see <http://www.gnu.org/licenses/>.
65 ***/ 65 ***/
66- 66
67+#include <netinet/if_ether.h> 67+#include <netinet/if_ether.h>
68 #include <net/if.h> 68 #include <net/if.h>
69 #include <sys/ioctl.h> 69 #include <sys/ioctl.h>
70 #include <linux/ethtool.h> 70 #include <linux/ethtool.h>
71diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c 71diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
72index 8e4777513..d01fff2a4 100644 72index 40158e0af..b24b3fce8 100644
73--- a/src/udev/udev-builtin-net_setup_link.c 73--- a/src/udev/udev-builtin-net_setup_link.c
74+++ b/src/udev/udev-builtin-net_setup_link.c 74+++ b/src/udev/udev-builtin-net_setup_link.c
75@@ -16,7 +16,7 @@ 75@@ -18,6 +18,7 @@
76 You should have received a copy of the GNU Lesser General Public License
77 along with systemd; If not, see <http://www.gnu.org/licenses/>. 76 along with systemd; If not, see <http://www.gnu.org/licenses/>.
78 ***/ 77 ***/
79- 78
80+#include <netinet/if_ether.h> 79+#include <netinet/if_ether.h>
81 #include "alloc-util.h" 80 #include "alloc-util.h"
82 #include "link-config.h" 81 #include "link-config.h"
83 #include "log.h" 82 #include "log.h"
84-- 83--
852.14.2 842.13.0
86 85
diff --git a/meta/recipes-core/systemd/systemd/0018-check-for-missing-canonicalize_file_name.patch b/meta/recipes-core/systemd/systemd/0018-check-for-missing-canonicalize_file_name.patch
new file mode 100644
index 0000000000..ab7edf5ca4
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0018-check-for-missing-canonicalize_file_name.patch
@@ -0,0 +1,47 @@
1From 690eeef9590c7ef1d9d2c31d8c1d5d8071da8c4c Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 26 Feb 2018 17:21:11 +0800
4Subject: [PATCH 18/31] check for missing canonicalize_file_name
5
6Upstream-Status: Pending
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
10---
11 meson.build | 2 ++
12 src/basic/missing_syscall.h | 6 ++++++
13 2 files changed, 8 insertions(+)
14
15diff --git a/meson.build b/meson.build
16index 12811b3f3..f6515e97c 100644
17--- a/meson.build
18+++ b/meson.build
19@@ -520,6 +520,8 @@ foreach ident : [
20 ['kcmp', '''#include <linux/kcmp.h>'''],
21 ['keyctl', '''#include <sys/types.h>
22 #include <keyutils.h>'''],
23+ ['canonicalize_file_name', '''#define _GNU_SOURCE
24+ #include <stdlib.h>'''],
25 ['copy_file_range', '''#include <sys/syscall.h>
26 #include <unistd.h>'''],
27 ['bpf', '''#include <sys/syscall.h>
28diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
29index c938d0d97..308b9472b 100644
30--- a/src/basic/missing_syscall.h
31+++ b/src/basic/missing_syscall.h
32@@ -31,6 +31,12 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
33 }
34 #endif
35
36+#if !HAVE_CANONICALIZE_FILE_NAME
37+static inline char *canonicalize_file_name(const char *path) {
38+ return realpath(path, NULL);
39+}
40+#endif
41+
42 /* ======================================================================= */
43
44 #if !HAVE_MEMFD_CREATE
45--
462.13.0
47
diff --git a/meta/recipes-core/systemd/systemd/0018-check-for-uchar.h-in-configure.patch b/meta/recipes-core/systemd/systemd/0018-check-for-uchar.h-in-configure.patch
deleted file mode 100644
index 067b73ff35..0000000000
--- a/meta/recipes-core/systemd/systemd/0018-check-for-uchar.h-in-configure.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 1355457092b02a15c646fc1c72e68b694a86dd99 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 22 Feb 2016 06:02:38 +0000
4Subject: [PATCH 12/14] check for uchar.h in configure
5
6Use ifdef to include uchar.h
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Upstream-Status: Pending
10
11---
12 configure.ac | 1 +
13 src/basic/missing.h | 2 ++
14 2 files changed, 3 insertions(+)
15
16diff --git a/configure.ac b/configure.ac
17index 1150ca50e..60e7df5ee 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -304,6 +304,7 @@ AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"])
21
22 # ------------------------------------------------------------------------------
23
24+AC_CHECK_HEADERS([uchar.h], [], [])
25 AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
26 AC_CHECK_HEADERS([linux/btrfs.h], [], [])
27 AC_CHECK_HEADERS([linux/memfd.h], [], [])
28diff --git a/src/basic/missing.h b/src/basic/missing.h
29index 25a11f351..d631b7e3e 100644
30--- a/src/basic/missing.h
31+++ b/src/basic/missing.h
32@@ -37,7 +37,9 @@
33 #include <sys/resource.h>
34 #include <sys/socket.h>
35 #include <sys/syscall.h>
36+#ifdef HAVE_UCHAR_H
37 #include <uchar.h>
38+#endif
39 #include <unistd.h>
40
41 #ifdef HAVE_AUDIT
42--
432.13.2
44
diff --git a/meta/recipes-core/systemd/systemd/0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch b/meta/recipes-core/systemd/systemd/0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch
new file mode 100644
index 0000000000..16b21a0683
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch
@@ -0,0 +1,29 @@
1From f5f313915d78bc43eb96e2aafb8ce3cda304c277 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 26 Feb 2018 17:27:56 +0800
4Subject: [PATCH 19/31] Do not enable nss tests if nss-systemd is not enabled
5
6Upstream-Status: Pending
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
10---
11 src/test/meson.build | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/src/test/meson.build b/src/test/meson.build
15index 1db8aa107..df3a1f5c5 100644
16--- a/src/test/meson.build
17+++ b/src/test/meson.build
18@@ -646,7 +646,7 @@ tests += [
19 [['src/test/test-nss.c'],
20 [],
21 [libdl],
22- '', 'manual'],
23+ 'ENABLE_NSS_SYSTEMD', 'manual'],
24 ]
25
26 ############################################################
27--
282.13.0
29
diff --git a/meta/recipes-core/systemd/systemd/0009-test-hexdecoct.c-Include-missing.h-form-strndupa.patch b/meta/recipes-core/systemd/systemd/0020-test-hexdecoct.c-Include-missing.h-for-strndupa.patch
index d3694dcbd5..ad49cfe8f7 100644
--- a/meta/recipes-core/systemd/systemd/0009-test-hexdecoct.c-Include-missing.h-form-strndupa.patch
+++ b/meta/recipes-core/systemd/systemd/0020-test-hexdecoct.c-Include-missing.h-for-strndupa.patch
@@ -1,20 +1,21 @@
1From 75f4e7f167de533a160ee1af2a03fba4c5a5ffc6 Mon Sep 17 00:00:00 2001 1From d63d2fedcd80e58ee53655aeaf2836d4b0a14652 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 23 Oct 2017 12:33:22 -0700 3Date: Mon, 23 Oct 2017 12:33:22 -0700
4Subject: [PATCH 09/12] test-hexdecoct.c: Include missing.h form strndupa 4Subject: [PATCH 20/31] test-hexdecoct.c: Include missing.h for strndupa
5 5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending 6Upstream-Status: Pending
9 7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
10---
10 src/test/test-hexdecoct.c | 1 + 11 src/test/test-hexdecoct.c | 1 +
11 1 file changed, 1 insertion(+) 12 1 file changed, 1 insertion(+)
12 13
13diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c 14diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
14index fcae427e7..5eb5e2ed7 100644 15index 3e25a0bac..ab3e508f1 100644
15--- a/src/test/test-hexdecoct.c 16--- a/src/test/test-hexdecoct.c
16+++ b/src/test/test-hexdecoct.c 17+++ b/src/test/test-hexdecoct.c
17@@ -21,6 +21,7 @@ 18@@ -24,6 +24,7 @@
18 #include "hexdecoct.h" 19 #include "hexdecoct.h"
19 #include "macro.h" 20 #include "macro.h"
20 #include "string-util.h" 21 #include "string-util.h"
@@ -23,5 +24,5 @@ index fcae427e7..5eb5e2ed7 100644
23 static void test_hexchar(void) { 24 static void test_hexchar(void) {
24 assert_se(hexchar(0xa) == 'a'); 25 assert_se(hexchar(0xa) == 'a');
25-- 26--
262.14.2 272.13.0
27 28
diff --git a/meta/recipes-core/systemd/systemd/0021-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/meta/recipes-core/systemd/systemd/0021-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
new file mode 100644
index 0000000000..9c8aeca9a5
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0021-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
@@ -0,0 +1,42 @@
1From dfea4b98844795a0cd14fdaf40c67df389dbd27e Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 28 Feb 2018 21:25:22 -0800
4Subject: [PATCH 21/31] test-sizeof.c: Disable tests for missing typedefs in
5 musl
6
7Upstream-Status: Pending
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
11---
12 src/test/test-sizeof.c | 4 ++++
13 1 file changed, 4 insertions(+)
14
15diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
16index aed6db842..0de6fa63c 100644
17--- a/src/test/test-sizeof.c
18+++ b/src/test/test-sizeof.c
19@@ -50,8 +50,10 @@ int main(void) {
20 info(unsigned);
21 info(long unsigned);
22 info(long long unsigned);
23+#ifdef __GLIBC__
24 info(__syscall_ulong_t);
25 info(__syscall_slong_t);
26+#endif
27
28 info(float);
29 info(double);
30@@ -61,7 +63,9 @@ int main(void) {
31 info(ssize_t);
32 info(time_t);
33 info(usec_t);
34+#ifdef __GLIBC__
35 info(__time_t);
36+#endif
37 info(pid_t);
38 info(uid_t);
39 info(gid_t);
40--
412.13.0
42
diff --git a/meta/recipes-core/systemd/systemd/0011-don-t-use-glibc-specific-qsort_r.patch b/meta/recipes-core/systemd/systemd/0022-don-t-use-glibc-specific-qsort_r.patch
index 7cfe829e85..a5f74421ac 100644
--- a/meta/recipes-core/systemd/systemd/0011-don-t-use-glibc-specific-qsort_r.patch
+++ b/meta/recipes-core/systemd/systemd/0022-don-t-use-glibc-specific-qsort_r.patch
@@ -1,21 +1,21 @@
1From 2eb45f5a0a8bfb8bdca084587ad28e5001f3cc4b Mon Sep 17 00:00:00 2001 1From d343757d629402c70ca8e5eaa551deaf175c96f3 Mon Sep 17 00:00:00 2001
2From: Emil Renner Berthing <systemd@esmil.dk> 2From: Emil Renner Berthing <systemd@esmil.dk>
3Date: Thu, 18 Sep 2014 15:24:56 +0200 3Date: Thu, 18 Sep 2014 15:24:56 +0200
4Subject: [PATCH 11/12] don't use glibc-specific qsort_r 4Subject: [PATCH 22/31] don't use glibc-specific qsort_r
5 5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending 6Upstream-Status: Pending
9 7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 src/hwdb/hwdb.c | 18 +++++++++++------- 10 src/hwdb/hwdb.c | 18 +++++++++++-------
11 src/udev/udevadm-hwdb.c | 16 ++++++++++------ 11 src/udev/udevadm-hwdb.c | 16 ++++++++++------
12 2 files changed, 21 insertions(+), 13 deletions(-) 12 2 files changed, 21 insertions(+), 13 deletions(-)
13 13
14diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c 14diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c
15index 793398ca6..669b00818 100644 15index 4540260f9..81aca7a9b 100644
16--- a/src/hwdb/hwdb.c 16--- a/src/hwdb/hwdb.c
17+++ b/src/hwdb/hwdb.c 17+++ b/src/hwdb/hwdb.c
18@@ -151,13 +151,12 @@ static void trie_free(struct trie *trie) { 18@@ -152,13 +152,12 @@ static void trie_free(struct trie *trie) {
19 19
20 DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free); 20 DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
21 21
@@ -33,7 +33,7 @@ index 793398ca6..669b00818 100644
33 } 33 }
34 34
35 static int trie_node_add_value(struct trie *trie, struct trie_node *node, 35 static int trie_node_add_value(struct trie *trie, struct trie_node *node,
36@@ -182,7 +181,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, 36@@ -183,7 +182,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
37 .value_off = v, 37 .value_off = v,
38 }; 38 };
39 39
@@ -45,7 +45,7 @@ index 793398ca6..669b00818 100644
45 if (val) { 45 if (val) {
46 /* At this point we have 2 identical properties on the same match-string. 46 /* At this point we have 2 identical properties on the same match-string.
47 * Since we process files in order, we just replace the previous value. 47 * Since we process files in order, we just replace the previous value.
48@@ -207,7 +209,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, 48@@ -208,7 +210,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
49 node->values[node->values_count].file_priority = file_priority; 49 node->values[node->values_count].file_priority = file_priority;
50 node->values[node->values_count].line_number = line_number; 50 node->values[node->values_count].line_number = line_number;
51 node->values_count++; 51 node->values_count++;
@@ -57,10 +57,10 @@ index 793398ca6..669b00818 100644
57 } 57 }
58 58
59diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c 59diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c
60index 69b0b9025..fbd213300 100644 60index ab5dc7ab6..c777e30ab 100644
61--- a/src/udev/udevadm-hwdb.c 61--- a/src/udev/udevadm-hwdb.c
62+++ b/src/udev/udevadm-hwdb.c 62+++ b/src/udev/udevadm-hwdb.c
63@@ -128,13 +128,13 @@ static void trie_node_cleanup(struct trie_node *node) { 63@@ -130,13 +130,13 @@ static void trie_node_cleanup(struct trie_node *node) {
64 free(node); 64 free(node);
65 } 65 }
66 66
@@ -78,7 +78,7 @@ index 69b0b9025..fbd213300 100644
78 } 78 }
79 79
80 static int trie_node_add_value(struct trie *trie, struct trie_node *node, 80 static int trie_node_add_value(struct trie *trie, struct trie_node *node,
81@@ -155,7 +155,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, 81@@ -157,7 +157,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
82 .value_off = v, 82 .value_off = v,
83 }; 83 };
84 84
@@ -89,7 +89,7 @@ index 69b0b9025..fbd213300 100644
89 if (val) { 89 if (val) {
90 /* replace existing earlier key with new value */ 90 /* replace existing earlier key with new value */
91 val->value_off = v; 91 val->value_off = v;
92@@ -172,7 +174,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, 92@@ -174,7 +176,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
93 node->values[node->values_count].key_off = k; 93 node->values[node->values_count].key_off = k;
94 node->values[node->values_count].value_off = v; 94 node->values[node->values_count].value_off = v;
95 node->values_count++; 95 node->values_count++;
@@ -101,5 +101,5 @@ index 69b0b9025..fbd213300 100644
101 } 101 }
102 102
103-- 103--
1042.14.2 1042.13.0
105 105
diff --git a/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta/recipes-core/systemd/systemd/0023-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
index 1a6db654f8..09c2b5c109 100644
--- a/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ b/meta/recipes-core/systemd/systemd/0023-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -1,7 +1,7 @@
1From 9621618c701a2d5eb3e26f40c68354d4dfb8f872 Mon Sep 17 00:00:00 2001 1From 7b802ada1207ed00ed3867b9804dd0f316641b9b Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com> 2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 10 Oct 2017 14:33:30 -0700 3Date: Tue, 10 Oct 2017 14:33:30 -0700
4Subject: [PATCH 12/12] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat() 4Subject: [PATCH 23/31] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
5 5
6Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right 6Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
7thing to do and it's not portable (not supported by musl). See: 7thing to do and it's not portable (not supported by musl). See:
@@ -22,19 +22,19 @@ The laccess() macros was added to systemd some time ago and it's not
22clear if or why it needs to return success for broken symlinks. Maybe 22clear if or why it needs to return success for broken symlinks. Maybe
23just historical and not actually necessary or desired behaviour? 23just historical and not actually necessary or desired behaviour?
24 24
25Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
26---
27Upstream-Status: Pending 25Upstream-Status: Pending
28 26
27Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
28---
29 src/basic/fs-util.h | 22 +++++++++++++++++++++- 29 src/basic/fs-util.h | 22 +++++++++++++++++++++-
30 src/shared/base-filesystem.c | 6 +++--- 30 src/shared/base-filesystem.c | 6 +++---
31 2 files changed, 24 insertions(+), 4 deletions(-) 31 2 files changed, 24 insertions(+), 4 deletions(-)
32 32
33diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h 33diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
34index 094acf179..cdbc0ae72 100644 34index 4dba1ea56..9c4b02ecc 100644
35--- a/src/basic/fs-util.h 35--- a/src/basic/fs-util.h
36+++ b/src/basic/fs-util.h 36+++ b/src/basic/fs-util.h
37@@ -48,7 +48,27 @@ int fchmod_umask(int fd, mode_t mode); 37@@ -50,7 +50,27 @@ int fchmod_umask(int fd, mode_t mode);
38 38
39 int fd_warn_permissions(const char *path, int fd); 39 int fd_warn_permissions(const char *path, int fd);
40 40
@@ -64,10 +64,10 @@ index 094acf179..cdbc0ae72 100644
64 int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode); 64 int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
65 int touch(const char *path); 65 int touch(const char *path);
66diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c 66diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
67index 903a18786..2f6052ee7 100644 67index 3c25aa534..574ca71c7 100644
68--- a/src/shared/base-filesystem.c 68--- a/src/shared/base-filesystem.c
69+++ b/src/shared/base-filesystem.c 69+++ b/src/shared/base-filesystem.c
70@@ -70,7 +70,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { 70@@ -71,7 +71,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
71 return log_error_errno(errno, "Failed to open root file system: %m"); 71 return log_error_errno(errno, "Failed to open root file system: %m");
72 72
73 for (i = 0; i < ELEMENTSOF(table); i ++) { 73 for (i = 0; i < ELEMENTSOF(table); i ++) {
@@ -76,7 +76,7 @@ index 903a18786..2f6052ee7 100644
76 continue; 76 continue;
77 77
78 if (table[i].target) { 78 if (table[i].target) {
79@@ -78,7 +78,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { 79@@ -79,7 +79,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
80 80
81 /* check if one of the targets exists */ 81 /* check if one of the targets exists */
82 NULSTR_FOREACH(s, table[i].target) { 82 NULSTR_FOREACH(s, table[i].target) {
@@ -85,7 +85,7 @@ index 903a18786..2f6052ee7 100644
85 continue; 85 continue;
86 86
87 /* check if a specific file exists at the target path */ 87 /* check if a specific file exists at the target path */
88@@ -89,7 +89,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { 88@@ -90,7 +90,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
89 if (!p) 89 if (!p)
90 return log_oom(); 90 return log_oom();
91 91
@@ -95,5 +95,5 @@ index 903a18786..2f6052ee7 100644
95 } 95 }
96 96
97-- 97--
982.14.2 982.13.0
99 99
diff --git a/meta/recipes-core/systemd/systemd/0013-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch b/meta/recipes-core/systemd/systemd/0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
index e219981ab0..fe7e623ff1 100644
--- a/meta/recipes-core/systemd/systemd/0013-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
+++ b/meta/recipes-core/systemd/systemd/0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch
@@ -1,23 +1,23 @@
1From 4b6733544beb662a0f77310302fae1fb7b76d167 Mon Sep 17 00:00:00 2001 1From 76c71aa889155f29be1d5d2b74a2c4faa5909c8c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 12 Sep 2015 18:53:31 +0000 3Date: Sat, 12 Sep 2015 18:53:31 +0000
4Subject: [PATCH 13/13] comparison_fn_t is glibc specific, use raw signature in 4Subject: [PATCH 24/31] comparison_fn_t is glibc specific, use raw signature in
5 function pointer 5 function pointer
6 6
7make it work with musl where comparison_fn_t is not provided 7make it work with musl where comparison_fn_t is not provided
8 8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11Upstream-Status: Pending 9Upstream-Status: Pending
12 10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 src/basic/util.h | 2 +- 13 src/basic/util.h | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
15 15
16diff --git a/src/basic/util.h b/src/basic/util.h 16diff --git a/src/basic/util.h b/src/basic/util.h
17index c7da6c39b..87f62b891 100644 17index 9d1b10756..12db53a93 100644
18--- a/src/basic/util.h 18--- a/src/basic/util.h
19+++ b/src/basic/util.h 19+++ b/src/basic/util.h
20@@ -98,7 +98,7 @@ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, 20@@ -95,7 +95,7 @@ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
21 * Normal qsort requires base to be nonnull. Here were require 21 * Normal qsort requires base to be nonnull. Here were require
22 * that only if nmemb > 0. 22 * that only if nmemb > 0.
23 */ 23 */
@@ -27,5 +27,5 @@ index c7da6c39b..87f62b891 100644
27 return; 27 return;
28 28
29-- 29--
302.14.2 302.13.0
31 31
diff --git a/meta/recipes-core/systemd/systemd/0001-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch b/meta/recipes-core/systemd/systemd/0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch
index 35599d44c2..9376a8f750 100644
--- a/meta/recipes-core/systemd/systemd/0001-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch
+++ b/meta/recipes-core/systemd/systemd/0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch
@@ -1,22 +1,22 @@
1From 3ca5326485cb19e775af6de615c17be66e44e472 Mon Sep 17 00:00:00 2001 1From a0b1496322f4d7ce83f4fbfd2a90b91d0721f643 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 24 Oct 2017 23:08:24 -0700 3Date: Tue, 24 Oct 2017 23:08:24 -0700
4Subject: [PATCH] Define _PATH_WTMPX and _PATH_UTMPX if not defined 4Subject: [PATCH 25/31] Define _PATH_WTMPX and _PATH_UTMPX if not defined
5 5
6Musl needs these defines 6Musl needs these defines
7 7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10Upstream-Status: Pending 8Upstream-Status: Pending
11 9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 src/shared/utmp-wtmp.c | 8 ++++++++ 12 src/shared/utmp-wtmp.c | 8 ++++++++
13 1 file changed, 8 insertions(+) 13 1 file changed, 8 insertions(+)
14 14
15diff --git a/src/shared/utmp-wtmp.c b/src/shared/utmp-wtmp.c 15diff --git a/src/shared/utmp-wtmp.c b/src/shared/utmp-wtmp.c
16index 9750dcd81..bd55d74a1 100644 16index cab1cd6a2..f5eedac18 100644
17--- a/src/shared/utmp-wtmp.c 17--- a/src/shared/utmp-wtmp.c
18+++ b/src/shared/utmp-wtmp.c 18+++ b/src/shared/utmp-wtmp.c
19@@ -27,6 +27,7 @@ 19@@ -28,6 +28,7 @@
20 #include <sys/time.h> 20 #include <sys/time.h>
21 #include <sys/utsname.h> 21 #include <sys/utsname.h>
22 #include <unistd.h> 22 #include <unistd.h>
@@ -24,7 +24,7 @@ index 9750dcd81..bd55d74a1 100644
24 #include <utmpx.h> 24 #include <utmpx.h>
25 25
26 #include "alloc-util.h" 26 #include "alloc-util.h"
27@@ -41,6 +42,13 @@ 27@@ -42,6 +43,13 @@
28 #include "util.h" 28 #include "util.h"
29 #include "utmp-wtmp.h" 29 #include "utmp-wtmp.h"
30 30
@@ -39,5 +39,5 @@ index 9750dcd81..bd55d74a1 100644
39 struct utmpx *found, lookup = { .ut_type = RUN_LVL }; 39 struct utmpx *found, lookup = { .ut_type = RUN_LVL };
40 int r; 40 int r;
41-- 41--
422.14.3 422.13.0
43 43
diff --git a/meta/recipes-core/systemd/systemd/0001-Use-uintmax_t-for-handling-rlim_t.patch b/meta/recipes-core/systemd/systemd/0026-Use-uintmax_t-for-handling-rlim_t.patch
index 779dc78fd3..46d75ada75 100644
--- a/meta/recipes-core/systemd/systemd/0001-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/meta/recipes-core/systemd/systemd/0026-Use-uintmax_t-for-handling-rlim_t.patch
@@ -1,7 +1,7 @@
1From b2d4171c6e521cf1e70331fb769234d63a4a6d44 Mon Sep 17 00:00:00 2001 1From 88c48ea84db6fda19dfaeb64545fccf8fa0525ec Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 27 Oct 2017 13:00:41 -0700 3Date: Fri, 27 Oct 2017 13:00:41 -0700
4Subject: [PATCH] Use uintmax_t for handling rlim_t 4Subject: [PATCH 26/31] Use uintmax_t for handling rlim_t
5 5
6PRIu{32,64} is not right format to represent rlim_t type 6PRIu{32,64} is not right format to represent rlim_t type
7therefore use %ju and typecast the rlim_t variables to 7therefore use %ju and typecast the rlim_t variables to
@@ -15,20 +15,20 @@ execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned i
15| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max); 15| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
16| ~~~~~~~~~~~~~~~~~~~~~~ 16| ~~~~~~~~~~~~~~~~~~~~~~
17 17
18Signed-off-by: Khem Raj <raj.khem@gmail.com>
19---
20Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/7199] 18Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/7199]
21 19
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21---
22 src/basic/format-util.h | 8 -------- 22 src/basic/format-util.h | 8 --------
23 src/basic/rlimit-util.c | 8 ++++---- 23 src/basic/rlimit-util.c | 8 ++++----
24 src/core/execute.c | 8 ++++---- 24 src/core/execute.c | 8 ++++----
25 3 files changed, 8 insertions(+), 16 deletions(-) 25 3 files changed, 8 insertions(+), 16 deletions(-)
26 26
27diff --git a/src/basic/format-util.h b/src/basic/format-util.h 27diff --git a/src/basic/format-util.h b/src/basic/format-util.h
28index ae42a8f89..144249cd6 100644 28index d9a78f781..9a1bc21d7 100644
29--- a/src/basic/format-util.h 29--- a/src/basic/format-util.h
30+++ b/src/basic/format-util.h 30+++ b/src/basic/format-util.h
31@@ -60,14 +60,6 @@ 31@@ -61,14 +61,6 @@
32 # define PRI_TIMEX "li" 32 # define PRI_TIMEX "li"
33 #endif 33 #endif
34 34
@@ -44,10 +44,10 @@ index ae42a8f89..144249cd6 100644
44 # define DEV_FMT "%" PRIu64 44 # define DEV_FMT "%" PRIu64
45 #elif SIZEOF_DEV_T == 4 45 #elif SIZEOF_DEV_T == 4
46diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c 46diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
47index ca834df62..41fcebb74 100644 47index 00648211d..df3d9ecc1 100644
48--- a/src/basic/rlimit-util.c 48--- a/src/basic/rlimit-util.c
49+++ b/src/basic/rlimit-util.c 49+++ b/src/basic/rlimit-util.c
50@@ -284,13 +284,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) { 50@@ -286,13 +286,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
51 if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY) 51 if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
52 s = strdup("infinity"); 52 s = strdup("infinity");
53 else if (rl->rlim_cur >= RLIM_INFINITY) 53 else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -66,10 +66,10 @@ index ca834df62..41fcebb74 100644
66 if (!s) 66 if (!s)
67 return -ENOMEM; 67 return -ENOMEM;
68diff --git a/src/core/execute.c b/src/core/execute.c 68diff --git a/src/core/execute.c b/src/core/execute.c
69index d72e5bf08..d38946002 100644 69index 0df3971df..aabdddb68 100644
70--- a/src/core/execute.c 70--- a/src/core/execute.c
71+++ b/src/core/execute.c 71+++ b/src/core/execute.c
72@@ -3443,10 +3443,10 @@ void exec_context_dump(ExecContext *c, FILE* f, const char *prefix) { 72@@ -3991,10 +3991,10 @@ void exec_context_dump(ExecContext *c, FILE* f, const char *prefix) {
73 73
74 for (i = 0; i < RLIM_NLIMITS; i++) 74 for (i = 0; i < RLIM_NLIMITS; i++)
75 if (c->rlimit[i]) { 75 if (c->rlimit[i]) {
@@ -85,5 +85,5 @@ index d72e5bf08..d38946002 100644
85 85
86 if (c->ioprio_set) { 86 if (c->ioprio_set) {
87-- 87--
882.14.3 882.13.0
89 89
diff --git a/meta/recipes-core/systemd/systemd/0027-remove-nobody-user-group-checking.patch b/meta/recipes-core/systemd/systemd/0027-remove-nobody-user-group-checking.patch
new file mode 100644
index 0000000000..42f59b0829
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0027-remove-nobody-user-group-checking.patch
@@ -0,0 +1,63 @@
1From 5354eb767d1eba2ec41eb273f6b657f4a630ca8a Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 9 Jan 2018 14:45:46 +0800
4Subject: [PATCH 27/31] remove nobody user/group checking
5
6Upstream-Status: Inappropriate [OE Specific]
7
8Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
9---
10 meson.build | 37 -------------------------------------
11 1 file changed, 37 deletions(-)
12
13diff --git a/meson.build b/meson.build
14index f6515e97c..1b947adac 100644
15--- a/meson.build
16+++ b/meson.build
17@@ -700,43 +700,6 @@ substs.set('containeruidbasemax', container_uid_base_max)
18 nobody_user = get_option('nobody-user')
19 nobody_group = get_option('nobody-group')
20
21-getent_result = run_command('getent', 'passwd', '65534')
22-if getent_result.returncode() == 0
23- name = getent_result.stdout().split(':')[0]
24- if name != nobody_user
25- message('WARNING:\n' +
26- ' The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) +
27- ' Your build will result in an user table setup that is incompatible with the local system.')
28- endif
29-endif
30-id_result = run_command('id', '-u', nobody_user)
31-if id_result.returncode() == 0
32- id = id_result.stdout().to_int()
33- if id != 65534
34- message('WARNING:\n' +
35- ' The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) +
36- ' Your build will result in an user table setup that is incompatible with the local system.')
37- endif
38-endif
39-
40-getent_result = run_command('getent', 'group', '65534')
41-if getent_result.returncode() == 0
42- name = getent_result.stdout().split(':')[0]
43- if name != nobody_group
44- message('WARNING:\n' +
45- ' The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) +
46- ' Your build will result in an group table setup that is incompatible with the local system.')
47- endif
48-endif
49-id_result = run_command('id', '-g', nobody_group)
50-if id_result.returncode() == 0
51- id = id_result.stdout().to_int()
52- if id != 65534
53- message('WARNING:\n' +
54- ' The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) +
55- ' Your build will result in an group table setup that is incompatible with the local system.')
56- endif
57-endif
58 if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup')
59 message('WARNING:\n' +
60 ' The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) +
61--
622.13.0
63
diff --git a/meta/recipes-core/systemd/systemd/0028-add-missing-FTW_-macros-for-musl.patch b/meta/recipes-core/systemd/systemd/0028-add-missing-FTW_-macros-for-musl.patch
new file mode 100644
index 0000000000..9ec3137b09
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0028-add-missing-FTW_-macros-for-musl.patch
@@ -0,0 +1,50 @@
1From 03cdd33be62db4c72a7fcf21b61d0d056c23c6a9 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 28 Feb 2018 21:36:32 -0800
4Subject: [PATCH 28/31] add missing FTW_ macros for musl
5
6This is to avoid build failures like below for musl.
7
8 locale-util.c:296:24: error: 'FTW_STOP' undeclared
9
10Upstream-Status: Pending
11
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13---
14 src/basic/missing.h | 20 ++++++++++++++++++++
15 1 file changed, 20 insertions(+)
16
17diff --git a/src/basic/missing.h b/src/basic/missing.h
18index 1aee3346a..5b9fde692 100644
19--- a/src/basic/missing.h
20+++ b/src/basic/missing.h
21@@ -207,6 +207,26 @@ struct sockaddr_vm {
22 #define BTRFS_QGROUP_LEVEL_SHIFT 48
23 #endif
24
25+#ifndef FTW_ACTIONRETVAL
26+#define FTW_ACTIONRETVAL 16
27+#endif
28+
29+#ifndef FTW_CONTINUE
30+#define FTW_CONTINUE 0
31+#endif
32+
33+#ifndef FTW_STOP
34+#define FTW_STOP 1
35+#endif
36+
37+#ifndef FTW_SKIP_SUBTREE
38+#define FTW_SKIP_SUBTREE 2
39+#endif
40+
41+#ifndef FTW_SKIP_SIBLINGS
42+#define FTW_SKIP_SIBLINGS 3
43+#endif
44+
45 #if ! HAVE_LINUX_BTRFS_H
46 #define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \
47 struct btrfs_ioctl_qgroup_assign_args)
48--
492.13.0
50
diff --git a/meta/recipes-core/systemd/systemd/0029-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch b/meta/recipes-core/systemd/systemd/0029-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch
new file mode 100644
index 0000000000..517249f434
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0029-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch
@@ -0,0 +1,43 @@
1From 5845c82d1016a3e3f2696180d5ac91b46950540a Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 27 Feb 2018 12:56:21 +0800
4Subject: [PATCH 29/31] nss-mymachines: Build conditionally when
5 ENABLE_MYHOSTNAME is set
6
7Fixes build failures when building with --disable-myhostname
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13---
14 meson.build | 11 +++++++----
15 1 file changed, 7 insertions(+), 4 deletions(-)
16
17diff --git a/meson.build b/meson.build
18index 1b947adac..1ed4dde72 100644
19--- a/meson.build
20+++ b/meson.build
21@@ -1351,12 +1351,15 @@ test_dlopen = executable(
22 link_with : [libbasic],
23 dependencies : [libdl])
24
25-foreach tuple : [['myhostname', 'ENABLE_MYHOSTNAME'],
26- ['systemd', 'ENABLE_NSS_SYSTEMD'],
27- ['mymachines', 'ENABLE_MACHINED'],
28- ['resolve', 'ENABLE_RESOLVE']]
29+foreach tuple : [['myhostname', 'ENABLE_MYHOSTNAME', ''],
30+ ['systemd', 'ENABLE_NSS_SYSTEMD', ''],
31+ ['mymachines', 'ENABLE_MACHINED', 'ENABLE_MYHOSTNAME'],
32+ ['resolve', 'ENABLE_RESOLVE', '']]
33
34 condition = tuple[1] == '' or conf.get(tuple[1]) == 1
35+ if tuple[2] != '' and condition
36+ condition = conf.get(tuple[2]) == 1
37+ endif
38 if condition
39 module = tuple[0]
40
41--
422.13.0
43
diff --git a/meta/recipes-core/systemd/systemd/0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/meta/recipes-core/systemd/systemd/0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch
new file mode 100644
index 0000000000..7f0b4bf818
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch
@@ -0,0 +1,45 @@
1From b7eacdf0388f930fc5271bdecfa46612c71dd65c Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 27 Feb 2018 13:27:47 +0800
4Subject: [PATCH 30/31] fix missing of __register_atfork for non-glibc builds
5
6Upstream-Status: Pending
7
8Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
9---
10 src/basic/process-util.c | 7 +++++++
11 1 file changed, 7 insertions(+)
12
13diff --git a/src/basic/process-util.c b/src/basic/process-util.c
14index dc7c9ef9e..85ce8a0cc 100644
15--- a/src/basic/process-util.c
16+++ b/src/basic/process-util.c
17@@ -39,6 +39,9 @@
18 #if HAVE_VALGRIND_VALGRIND_H
19 #include <valgrind/valgrind.h>
20 #endif
21+#ifndef __GLIBC__
22+#include <pthread.h>
23+#endif
24
25 #include "alloc-util.h"
26 #include "architecture.h"
27@@ -1112,11 +1115,15 @@ void reset_cached_pid(void) {
28 cached_pid = CACHED_PID_UNSET;
29 }
30
31+#ifdef __GLIBC__
32 /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
33 * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
34 * libpthread, as it is part of glibc anyway. */
35 extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle);
36 extern void* __dso_handle __attribute__ ((__weak__));
37+#else
38+#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)
39+#endif
40
41 pid_t getpid_cached(void) {
42 pid_t current_value;
43--
442.13.0
45
diff --git a/meta/recipes-core/systemd/systemd/0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch b/meta/recipes-core/systemd/systemd/0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch
new file mode 100644
index 0000000000..319c4b65fc
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch
@@ -0,0 +1,30 @@
1From adcd7e426fcd80e754274a730221d1a1f49dbc21 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 27 Feb 2018 14:01:30 +0800
4Subject: [PATCH 31/31] fix missing ULONG_LONG_MAX definition in case of musl
5
6Upstream-Status: Pending
7
8Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
9---
10 src/basic/missing.h | 4 ++++
11 1 file changed, 4 insertions(+)
12
13diff --git a/src/basic/missing.h b/src/basic/missing.h
14index 5b9fde692..a922f1346 100644
15--- a/src/basic/missing.h
16+++ b/src/basic/missing.h
17@@ -72,6 +72,10 @@ struct sockaddr_vm {
18 };
19 #endif /* !HAVE_LINUX_VM_SOCKETS_H */
20
21+#ifndef ULONG_LONG_MAX
22+#define ULONG_LONG_MAX ULLONG_MAX
23+#endif
24+
25 #ifndef RLIMIT_RTTIME
26 #define RLIMIT_RTTIME 15
27 #endif
28--
292.13.0
30
diff --git a/meta/recipes-core/systemd/systemd/run-ptest b/meta/recipes-core/systemd/systemd/run-ptest
deleted file mode 100644
index 2ae76ffaf1..0000000000
--- a/meta/recipes-core/systemd/systemd/run-ptest
+++ /dev/null
@@ -1,6 +0,0 @@
1#!/bin/sh
2
3cd tests
4tar -C test -xJf test/sys.tar.xz
5make check-TESTS
6cd ..
diff --git a/meta/recipes-core/systemd/systemd_234.bb b/meta/recipes-core/systemd/systemd_237.bb
index b15e5a41db..8ef1026086 100644
--- a/meta/recipes-core/systemd/systemd_234.bb
+++ b/meta/recipes-core/systemd/systemd_237.bb
@@ -8,50 +8,47 @@ DEPENDS = "kmod intltool-native gperf-native acl readline libcap libcgroup util-
8 8
9SECTION = "base/shell" 9SECTION = "base/shell"
10 10
11inherit useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu systemd ptest gettext bash-completion manpages distro_features_check 11inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages distro_features_check
12 12
13# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so 13# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
14# that we don't build both udev and systemd in world builds. 14# that we don't build both udev and systemd in world builds.
15REQUIRED_DISTRO_FEATURES = "systemd" 15REQUIRED_DISTRO_FEATURES = "systemd"
16 16
17SRC_URI = "git://github.com/systemd/systemd.git;protocol=git \ 17SRC_URI += "file://touchscreen.rules \
18 file://touchscreen.rules \
19 file://00-create-volatile.conf \ 18 file://00-create-volatile.conf \
20 file://init \ 19 file://init \
21 file://run-ptest \
22 file://0004-Use-getenv-when-secure-versions-are-not-available.patch \
23 file://0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
24 file://0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
25 file://0010-implment-systemd-sysv-install-for-OE.patch \
26 file://0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch \
27 file://0012-rules-whitelist-hd-devices.patch \
28 file://0013-Make-root-s-home-directory-configurable.patch \
29 file://0014-Revert-rules-remove-firmware-loading-rules.patch \
30 file://0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch \
31 file://0017-remove-duplicate-include-uchar.h.patch \
32 file://0018-check-for-uchar.h-in-configure.patch \
33 file://0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \
34 file://0020-rules-watch-metadata-changes-in-ide-devices.patch \
35 file://0001-add-fallback-parse_printf_format-implementation.patch \
36 file://0002-src-basic-missing.h-check-for-missing-strndupa.patch \
37 file://0003-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
38 file://0004-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch \
39 file://0006-Include-netinet-if_ether.h.patch \
40 file://0007-check-for-missing-canonicalize_file_name.patch \
41 file://0008-Do-not-enable-nss-tests.patch \
42 file://0009-test-hexdecoct.c-Include-missing.h-form-strndupa.patch \
43 file://0010-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
44 file://0011-don-t-use-glibc-specific-qsort_r.patch \
45 file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
46 file://0013-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \
47 file://0001-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch \
48 file://0001-Use-uintmax_t-for-handling-rlim_t.patch \
49 file://0001-core-evaluate-presets-after-generators-have-run-6526.patch \
50 file://0001-main-skip-many-initialization-steps-when-running-in-.patch \
51 file://0001-meson-update-header-file-to-detect-memfd_create.patch \
52 file://0002-configure.ac-Check-if-memfd_create-is-already-define.patch \
53 file://0003-fileio-include-sys-mman.h.patch \
54 file://0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \ 20 file://0001-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
21 file://0001-Use-getenv-when-secure-versions-are-not-available.patch \
22 file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
23 file://0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
24 file://0004-implment-systemd-sysv-install-for-OE.patch \
25 file://0005-rules-whitelist-hd-devices.patch \
26 file://0006-Make-root-s-home-directory-configurable.patch \
27 file://0007-Revert-rules-remove-firmware-loading-rules.patch \
28 file://0008-Revert-udev-remove-userspace-firmware-loading-suppor.patch \
29 file://0009-remove-duplicate-include-uchar.h.patch \
30 file://0010-check-for-uchar.h-in-meson.build.patch \
31 file://0011-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \
32 file://0012-rules-watch-metadata-changes-in-ide-devices.patch \
33 file://0013-add-fallback-parse_printf_format-implementation.patch \
34 file://0014-src-basic-missing.h-check-for-missing-strndupa.patch \
35 file://0015-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
36 file://0016-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch \
37 file://0017-Include-netinet-if_ether.h.patch \
38 file://0018-check-for-missing-canonicalize_file_name.patch \
39 file://0019-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch \
40 file://0020-test-hexdecoct.c-Include-missing.h-for-strndupa.patch \
41 file://0021-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
42 file://0022-don-t-use-glibc-specific-qsort_r.patch \
43 file://0023-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
44 file://0024-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \
45 file://0025-Define-_PATH_WTMPX-and-_PATH_UTMPX-if-not-defined.patch \
46 file://0026-Use-uintmax_t-for-handling-rlim_t.patch \
47 file://0027-remove-nobody-user-group-checking.patch \
48 file://0028-add-missing-FTW_-macros-for-musl.patch \
49 file://0029-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch \
50 file://0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
51 file://0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch \
55 " 52 "
56SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch" 53SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
57 54
@@ -80,7 +77,7 @@ PACKAGECONFIG ??= " \
80 polkit \ 77 polkit \
81 quotacheck \ 78 quotacheck \
82 randomseed \ 79 randomseed \
83 resolved \ 80 resolve \
84 smack \ 81 smack \
85 sysusers \ 82 sysusers \
86 timedated \ 83 timedated \
@@ -94,7 +91,7 @@ PACKAGECONFIG_remove_libc-musl = " \
94 localed \ 91 localed \
95 myhostname \ 92 myhostname \
96 nss \ 93 nss \
97 resolved \ 94 resolve \
98 selinux \ 95 selinux \
99 smack \ 96 smack \
100 sysusers \ 97 sysusers \
@@ -106,72 +103,59 @@ PACKAGECONFIG_remove_libc-musl = " \
106# systemd-serialgetty.bb - not enabled by default. 103# systemd-serialgetty.bb - not enabled by default.
107PACKAGECONFIG[serial-getty-generator] = "" 104PACKAGECONFIG[serial-getty-generator] = ""
108 105
109PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit" 106PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit"
110PACKAGECONFIG[backlight] = "--enable-backlight,--disable-backlight" 107PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false"
111PACKAGECONFIG[binfmt] = "--enable-binfmt,--disable-binfmt" 108PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false"
112PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2" 109PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2"
113PACKAGECONFIG[coredump] = "--enable-coredump,--disable-coredump" 110PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false"
114PACKAGECONFIG[cryptsetup] = "--enable-libcryptsetup,--disable-libcryptsetup,cryptsetup" 111PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup"
115PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" 112PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
116PACKAGECONFIG[efi] = "--enable-efi,--disable-efi" 113PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
117PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils" 114PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
118PACKAGECONFIG[firstboot] = "--enable-firstboot,--disable-firstboot" 115PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
119# Sign the journal for anti-tampering 116# Sign the journal for anti-tampering
120PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt" 117PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt"
121PACKAGECONFIG[hibernate] = "--enable-hibernate,--disable-hibernate" 118PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false"
122PACKAGECONFIG[hostnamed] = "--enable-hostnamed,--disable-hostnamed" 119PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false"
123PACKAGECONFIG[ima] = "--enable-ima,--disable-ima" 120PACKAGECONFIG[ima] = "-Dima=true,-Dima=false"
124# importd requires curl/xz/zlib/bzip2/gcrypt 121# importd requires curl/xz/zlib/bzip2/gcrypt
125PACKAGECONFIG[importd] = "--enable-importd,--disable-importd" 122PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false"
126# Update NAT firewall rules 123# Update NAT firewall rules
127PACKAGECONFIG[iptc] = "--enable-libiptc,--disable-libiptc,iptables" 124PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
128PACKAGECONFIG[journal-upload] = "--enable-libcurl,--disable-libcurl,curl" 125PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
129PACKAGECONFIG[ldconfig] = "--enable-ldconfig,--disable-ldconfig" 126PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false"
130PACKAGECONFIG[libidn] = "--enable-libidn,--disable-libidn,libidn" 127PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn"
131PACKAGECONFIG[localed] = "--enable-localed,--disable-localed" 128PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
132PACKAGECONFIG[logind] = "--enable-logind,--disable-logind" 129PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
133PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" 130PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4"
134PACKAGECONFIG[machined] = "--enable-machined,--disable-machined" 131PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false"
135PACKAGECONFIG[manpages] = "--enable-manpages,--disable-manpages,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" 132PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
136PACKAGECONFIG[microhttpd] = "--enable-microhttpd,--disable-microhttpd,libmicrohttpd" 133PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd"
137PACKAGECONFIG[myhostname] = "--enable-myhostname,--disable-myhostname" 134PACKAGECONFIG[myhostname] = "-Dmyhostname=true,-Dmyhostname=false"
138PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd" 135PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false"
139PACKAGECONFIG[nss] = "--enable-nss-systemd,--disable-nss-systemd" 136PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false"
140PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam,${PAM_PLUGINS}" 137PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}"
141PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit" 138PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false"
142PACKAGECONFIG[qrencode] = "--enable-qrencode,--disable-qrencode,qrencode" 139PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode"
143PACKAGECONFIG[quotacheck] = "--enable-quotacheck,--disable-quotacheck" 140PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
144PACKAGECONFIG[randomseed] = "--enable-randomseed,--disable-randomseed" 141PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
145PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved" 142PACKAGECONFIG[resolve] = "-Dresolve=true,-Dresolve=false"
146PACKAGECONFIG[rfkill] = "--enable-rfkill,--disable-rfkill" 143PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false"
147# libseccomp is found in meta-security 144# libseccomp is found in meta-security
148PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp" 145PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
149PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,initscripts-sushell" 146PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell"
150PACKAGECONFIG[smack] = "--enable-smack,--disable-smack" 147PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
151PACKAGECONFIG[sysusers] = "--enable-sysusers,--disable-sysusers" 148PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
152PACKAGECONFIG[timedated] = "--enable-timedated,--disable-timedated" 149PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false"
153PACKAGECONFIG[timesyncd] = "--enable-timesyncd,--disable-timesyncd" 150PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false"
154PACKAGECONFIG[usrmerge] = "--disable-split-usr,--enable-split-usr" 151PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true"
155PACKAGECONFIG[utmp] = "--enable-utmp,--disable-utmp" 152PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false"
156PACKAGECONFIG[valgrind] = "ac_cv_header_valgrind_memcheck_h=yes ac_cv_header_valgrind_valgrind_h=yes,ac_cv_header_valgrind_memcheck_h=no ac_cv_header_valgrind_valgrind_h=no,valgrind" 153PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind"
157PACKAGECONFIG[vconsole] = "--enable-vconsole,--disable-vconsole,,${PN}-vconsole-setup" 154PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup"
158# Verify keymaps on locale change 155# Verify keymaps on locale change
159PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon" 156PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon"
160PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz" 157PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz"
161PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" 158PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib"
162
163# Hardcode target binary paths to avoid AC_PROG_PATH in the systemd
164# configure script detecting and setting paths from sysroot or host.
165CACHED_CONFIGUREVARS_class-target = " \
166 ac_cv_path_KEXEC=${sbindir}/kexec \
167 ac_cv_path_KILL=${base_bindir}/kill \
168 ac_cv_path_KMOD=${base_bindir}/kmod \
169 ac_cv_path_MOUNT_PATH=${base_bindir}/mount \
170 ac_cv_path_QUOTACHECK=${sbindir}/quotacheck \
171 ac_cv_path_QUOTAON=${sbindir}/quotaon \
172 ac_cv_path_SULOGIN=${base_sbindir}/sulogin \
173 ac_cv_path_UMOUNT_PATH=${base_bindir}/umount \
174"
175 159
176# Helper variables to clarify locations. This mirrors the logic in systemd's 160# Helper variables to clarify locations. This mirrors the logic in systemd's
177# build system. 161# build system.
@@ -179,38 +163,27 @@ rootprefix ?= "${root_prefix}"
179rootlibdir ?= "${base_libdir}" 163rootlibdir ?= "${base_libdir}"
180rootlibexecdir = "${rootprefix}/lib" 164rootlibexecdir = "${rootprefix}/lib"
181 165
182EXTRA_OECONF = " \ 166EXTRA_OEMESON += "-Dnobody-user=nobody \
183 --without-python \ 167 -Dnobody-group=nobody \
184 --with-roothomedir=${ROOT_HOME} \ 168 -Droothomedir=${ROOTHOME} \
185 --with-rootlibdir=${rootlibdir} \ 169 -Drootlibdir=${rootlibdir} \
186 --with-rootprefix=${rootprefix} \ 170 -Drootprefix=${rootprefix} \
187 --with-sysvrcnd-path=${sysconfdir} \ 171 -Dsysvrcnd-path=${sysconfdir} \
188 --with-firmware-path=${nonarch_base_libdir}/firmware \ 172 -Dfirmware-path=${nonarch_base_libdir}/firmware \
189" 173 "
190 174
191# per the systemd README, define VALGRIND=1 to run under valgrind 175# Hardcode target binary paths to avoid using paths from sysroot
192CFLAGS .= "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', ' -DVALGRIND=1', '', d)}" 176EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
193 177 -Dkill-path=${base_bindir}/kill \
194COMPILER_NM ?= "${HOST_PREFIX}gcc-nm" 178 -Dkmod-path=${base_bindir}/kmod \
195COMPILER_AR ?= "${HOST_PREFIX}gcc-ar" 179 -Dmount-path=${base_bindir}/mount \
196COMPILER_RANLIB ?= "${HOST_PREFIX}gcc-ranlib" 180 -Dquotacheck-path=${sbindir}/quotacheck \
197 181 -Dquotaon-path=${sbindir}/quotaon \
198do_configure_prepend() { 182 -Dsulogin-path={base_sbindir}/sulogin \
199 export NM="${COMPILER_NM}" 183 -Dumount-path=${base_bindir}/umount"
200 export AR="${COMPILER_AR}"
201 export RANLIB="${COMPILER_RANLIB}"
202 export KMOD="${base_bindir}/kmod"
203 if [ -d ${S}/units.pre_sed ] ; then
204 cp -r ${S}/units.pre_sed ${S}/units
205 else
206 cp -r ${S}/units ${S}/units.pre_sed
207 fi
208 sed -i -e 's:-DTEST_DIR=\\\".*\\\":-DTEST_DIR=\\\"${PTEST_PATH}/tests/test\\\":' ${S}/Makefile.am
209 sed -i -e 's:-DCATALOG_DIR=\\\".*\\\":-DCATALOG_DIR=\\\"${PTEST_PATH}/tests/catalog\\\":' ${S}/Makefile.am
210}
211 184
212do_install() { 185do_install() {
213 autotools_do_install 186 meson_do_install
214 install -d ${D}/${base_sbindir} 187 install -d ${D}/${base_sbindir}
215 if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then 188 if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
216 # Provided by a separate recipe 189 # Provided by a separate recipe
@@ -269,7 +242,7 @@ do_install() {
269 if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then 242 if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
270 ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)} 243 ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
271 fi 244 fi
272 if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then 245 if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolve', 'true', 'false', d)}; then
273 echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf 246 echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
274 echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf 247 echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
275 echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf 248 echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
@@ -289,31 +262,6 @@ do_install() {
289 fi 262 fi
290} 263}
291 264
292do_install_ptest () {
293 # install data files needed for tests
294 install -d ${D}${PTEST_PATH}/tests/test
295 cp -rfL ${S}/test/* ${D}${PTEST_PATH}/tests/test
296 # python is disabled for systemd, thus removing these python testing scripts
297 rm ${D}${PTEST_PATH}/tests/test/*.py
298 sed -i 's/"tree"/"ls"/' ${D}${PTEST_PATH}/tests/test/udev-test.pl
299
300 install -d ${D}${PTEST_PATH}/tests/catalog
301 install ${S}/catalog/* ${D}${PTEST_PATH}/tests/catalog/
302
303 install -D ${S}/build-aux/test-driver ${D}${PTEST_PATH}/tests/build-aux/test-driver
304
305 install -d ${D}${PTEST_PATH}/tests/rules
306 install ${B}/rules/* ${D}${PTEST_PATH}/tests/rules/
307
308 # This directory needs to be there for udev-test.pl to work.
309 install -d ${D}${libdir}/udev/rules.d
310
311 # install actual test binaries
312 install -m 0755 ${B}/test-* ${D}${PTEST_PATH}/tests/
313 install -m 0755 ${B}/.libs/test-* ${D}${PTEST_PATH}/tests/
314
315 install ${B}/Makefile ${D}${PTEST_PATH}/tests/
316}
317 265
318python populate_packages_prepend (){ 266python populate_packages_prepend (){
319 systemdlibdir = d.getVar("rootlibdir") 267 systemdlibdir = d.getVar("rootlibdir")
@@ -348,7 +296,7 @@ USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'journal-upload',
348USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}" 296USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}"
349USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}" 297USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}"
350USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}" 298USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}"
351USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}" 299USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolve', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}"
352USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}" 300USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}"
353GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal" 301GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
354USERADD_PARAM_${PN}-extra-utils += "--system -d / -M --shell /bin/nologin systemd-bus-proxy;" 302USERADD_PARAM_${PN}-extra-utils += "--system -d / -M --shell /bin/nologin systemd-bus-proxy;"
@@ -358,14 +306,6 @@ FILES_${PN}-analyze = "${bindir}/systemd-analyze"
358FILES_${PN}-initramfs = "/init" 306FILES_${PN}-initramfs = "/init"
359RDEPENDS_${PN}-initramfs = "${PN}" 307RDEPENDS_${PN}-initramfs = "${PN}"
360 308
361RDEPENDS_${PN}-ptest += "gawk make perl bash xz \
362 tzdata tzdata-americas tzdata-asia \
363 tzdata-europe tzdata-africa tzdata-antarctica \
364 tzdata-arctic tzdata-atlantic tzdata-australia \
365 tzdata-pacific tzdata-posix"
366
367FILES_${PN}-ptest += "${libdir}/udev/rules.d"
368
369FILES_${PN}-gui = "${bindir}/systemadm" 309FILES_${PN}-gui = "${bindir}/systemadm"
370 310
371FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \ 311FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
@@ -514,6 +454,7 @@ FILES_${PN} = " ${base_bindir}/* \
514 ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \ 454 ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \
515 ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \ 455 ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \
516 ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \ 456 ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \
457 ${nonarch_base_libdir}/modprobe.d/systemd.conf \
517 ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \ 458 ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
518 ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \ 459 ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
519 ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \ 460 ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \