diff options
14 files changed, 101 insertions, 623 deletions
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc index a4def99884..d99d1506d7 100644 --- a/meta/recipes-core/systemd/systemd.inc +++ b/meta/recipes-core/systemd/systemd.inc | |||
| @@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1" | |||
| 14 | LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ | 14 | LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ |
| 15 | file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" | 15 | file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" |
| 16 | 16 | ||
| 17 | SRCREV = "a1e2ef7ec912902d8142e7cb5830cbfb47dba86c" | 17 | SRCREV = "c1edab7ad1e7ccc9be693bedfd464cd1cbffb395" |
| 18 | 18 | ||
| 19 | SRC_URI = "git://github.com/systemd/systemd.git;protocol=git" | 19 | SRC_URI = "git://github.com/systemd/systemd.git;protocol=git" |
| 20 | 20 | ||
diff --git a/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch b/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch index ee2cd6c453..7f1bc447fe 100644 --- a/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch +++ b/meta/recipes-core/systemd/systemd/0001-core-device.c-Change-the-default-device-timeout-to-2.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From a544d6d15f5c418084f322349aafe341128d5fca Mon Sep 17 00:00:00 2001 | 1 | From f1b5a6f717bda6f80a6b5e3e4d50b450f6cc7b09 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Mon, 14 Dec 2015 04:09:19 +0000 | 3 | Date: Mon, 14 Dec 2015 04:09:19 +0000 |
| 4 | Subject: [PATCH 01/19] core/device.c: Change the default device timeout to 240 | 4 | Subject: [PATCH 14/14] core/device.c: Change the default device timeout to 240 |
| 5 | sec. | 5 | sec. |
| 6 | MIME-Version: 1.0 | 6 | MIME-Version: 1.0 |
| 7 | Content-Type: text/plain; charset=UTF-8 | 7 | Content-Type: text/plain; charset=UTF-8 |
| @@ -11,23 +11,24 @@ Upstream-Status: Inappropriate [Specific case QEMU/AB] | |||
| 11 | 11 | ||
| 12 | Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> | 12 | Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> |
| 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 14 | |||
| 14 | --- | 15 | --- |
| 15 | src/core/device.c | 2 +- | 16 | src/core/device.c | 2 +- |
| 16 | 1 file changed, 1 insertion(+), 1 deletion(-) | 17 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 17 | 18 | ||
| 18 | diff --git a/src/core/device.c b/src/core/device.c | 19 | diff --git a/src/core/device.c b/src/core/device.c |
| 19 | index c572a67..f90774e 100644 | 20 | index 77601c552..98bf49ba2 100644 |
| 20 | --- a/src/core/device.c | 21 | --- a/src/core/device.c |
| 21 | +++ b/src/core/device.c | 22 | +++ b/src/core/device.c |
| 22 | @@ -112,7 +112,7 @@ static void device_init(Unit *u) { | 23 | @@ -112,7 +112,7 @@ static void device_init(Unit *u) { |
| 23 | * indefinitely for plugged in devices, something which cannot | 24 | * indefinitely for plugged in devices, something which cannot |
| 24 | * happen for the other units since their operations time out | 25 | * happen for the other units since their operations time out |
| 25 | * anyway. */ | 26 | * anyway. */ |
| 26 | - u->job_timeout = u->manager->default_timeout_start_usec; | 27 | - u->job_running_timeout = u->manager->default_timeout_start_usec; |
| 27 | + u->job_timeout = (240 * USEC_PER_SEC); | 28 | + u->job_running_timeout = (240 * USEC_PER_SEC); |
| 28 | 29 | ||
| 29 | u->ignore_on_isolate = true; | 30 | u->ignore_on_isolate = true; |
| 30 | } | 31 | } |
| 31 | -- | 32 | -- |
| 32 | 2.10.2 | 33 | 2.13.2 |
| 33 | 34 | ||
diff --git a/meta/recipes-core/systemd/systemd/0001-core-load-fragment-refuse-units-with-errors-in-certa.patch b/meta/recipes-core/systemd/systemd/0001-core-load-fragment-refuse-units-with-errors-in-certa.patch deleted file mode 100644 index 80948b2cee..0000000000 --- a/meta/recipes-core/systemd/systemd/0001-core-load-fragment-refuse-units-with-errors-in-certa.patch +++ /dev/null | |||
| @@ -1,329 +0,0 @@ | |||
| 1 | If a user is created with a strictly-speaking invalid name such as '0day' and a | ||
| 2 | unit created to run as that user, systemd rejects the username and runs the unit | ||
| 3 | as root. | ||
| 4 | |||
| 5 | CVE: CVE-2017-1000082 | ||
| 6 | Upstream-Status: Backport | ||
| 7 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
| 8 | |||
| 9 | From d8e1310e1ed7b6f122bc7eb8ba061fbd088783c0 Mon Sep 17 00:00:00 2001 | ||
| 10 | From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> | ||
| 11 | Date: Thu, 6 Jul 2017 13:28:19 -0400 | ||
| 12 | Subject: [PATCH] core/load-fragment: refuse units with errors in certain | ||
| 13 | directives | ||
| 14 | |||
| 15 | If an error is encountered in any of the Exec* lines, WorkingDirectory, | ||
| 16 | SELinuxContext, ApparmorProfile, SmackProcessLabel, Service (in .socket | ||
| 17 | units), User, or Group, refuse to load the unit. If the config stanza | ||
| 18 | has support, ignore the failure if '-' is present. | ||
| 19 | |||
| 20 | For those configuration directives, even if we started the unit, it's | ||
| 21 | pretty likely that it'll do something unexpected (like write files | ||
| 22 | in a wrong place, or with a wrong context, or run with wrong permissions, | ||
| 23 | etc). It seems better to refuse to start the unit and have the admin | ||
| 24 | clean up the configuration without giving the service a chance to mess | ||
| 25 | up stuff. | ||
| 26 | |||
| 27 | Note that all "security" options that restrict what the unit can do | ||
| 28 | (Capabilities, AmbientCapabilities, Restrict*, SystemCallFilter, Limit*, | ||
| 29 | PrivateDevices, Protect*, etc) are _not_ treated like this. Such options are | ||
| 30 | only supplementary, and are not always available depending on the architecture | ||
| 31 | and compilation options, so unit authors have to make sure that the service | ||
| 32 | runs correctly without them anyway. | ||
| 33 | |||
| 34 | Fixes #6237, #6277. | ||
| 35 | |||
| 36 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
| 37 | --- | ||
| 38 | src/core/load-fragment.c | 104 ++++++++++++++++++++++++++++------------------ | ||
| 39 | src/test/test-unit-file.c | 14 +++---- | ||
| 40 | 2 files changed, 70 insertions(+), 48 deletions(-) | ||
| 41 | |||
| 42 | diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c | ||
| 43 | index cbc826809..2047974f4 100644 | ||
| 44 | --- a/src/core/load-fragment.c | ||
| 45 | +++ b/src/core/load-fragment.c | ||
| 46 | @@ -630,20 +630,28 @@ int config_parse_exec( | ||
| 47 | |||
| 48 | if (isempty(f)) { | ||
| 49 | /* First word is either "-" or "@" with no command. */ | ||
| 50 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Empty path in command line, ignoring: \"%s\"", rvalue); | ||
| 51 | - return 0; | ||
| 52 | + log_syntax(unit, LOG_ERR, filename, line, 0, | ||
| 53 | + "Empty path in command line%s: \"%s\"", | ||
| 54 | + ignore ? ", ignoring" : "", rvalue); | ||
| 55 | + return ignore ? 0 : -ENOEXEC; | ||
| 56 | } | ||
| 57 | if (!string_is_safe(f)) { | ||
| 58 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Executable path contains special characters, ignoring: %s", rvalue); | ||
| 59 | - return 0; | ||
| 60 | + log_syntax(unit, LOG_ERR, filename, line, 0, | ||
| 61 | + "Executable path contains special characters%s: %s", | ||
| 62 | + ignore ? ", ignoring" : "", rvalue); | ||
| 63 | + return ignore ? 0 : -ENOEXEC; | ||
| 64 | } | ||
| 65 | if (!path_is_absolute(f)) { | ||
| 66 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Executable path is not absolute, ignoring: %s", rvalue); | ||
| 67 | - return 0; | ||
| 68 | + log_syntax(unit, LOG_ERR, filename, line, 0, | ||
| 69 | + "Executable path is not absolute%s: %s", | ||
| 70 | + ignore ? ", ignoring" : "", rvalue); | ||
| 71 | + return ignore ? 0 : -ENOEXEC; | ||
| 72 | } | ||
| 73 | if (endswith(f, "/")) { | ||
| 74 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Executable path specifies a directory, ignoring: %s", rvalue); | ||
| 75 | - return 0; | ||
| 76 | + log_syntax(unit, LOG_ERR, filename, line, 0, | ||
| 77 | + "Executable path specifies a directory%s: %s", | ||
| 78 | + ignore ? ", ignoring" : "", rvalue); | ||
| 79 | + return ignore ? 0 : -ENOEXEC; | ||
| 80 | } | ||
| 81 | |||
| 82 | if (f == firstword) { | ||
| 83 | @@ -699,7 +707,7 @@ int config_parse_exec( | ||
| 84 | if (r == 0) | ||
| 85 | break; | ||
| 86 | else if (r < 0) | ||
| 87 | - return 0; | ||
| 88 | + return ignore ? 0 : -ENOEXEC; | ||
| 89 | |||
| 90 | if (!GREEDY_REALLOC(n, nbufsize, nlen + 2)) | ||
| 91 | return log_oom(); | ||
| 92 | @@ -709,8 +717,10 @@ int config_parse_exec( | ||
| 93 | } | ||
| 94 | |||
| 95 | if (!n || !n[0]) { | ||
| 96 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Empty executable name or zeroeth argument, ignoring: %s", rvalue); | ||
| 97 | - return 0; | ||
| 98 | + log_syntax(unit, LOG_ERR, filename, line, 0, | ||
| 99 | + "Empty executable name or zeroeth argument%s: %s", | ||
| 100 | + ignore ? ", ignoring" : "", rvalue); | ||
| 101 | + return ignore ? 0 : -ENOEXEC; | ||
| 102 | } | ||
| 103 | |||
| 104 | nce = new0(ExecCommand, 1); | ||
| 105 | @@ -1315,8 +1325,10 @@ int config_parse_exec_selinux_context( | ||
| 106 | |||
| 107 | r = unit_name_printf(u, rvalue, &k); | ||
| 108 | if (r < 0) { | ||
| 109 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve specifiers, ignoring: %m"); | ||
| 110 | - return 0; | ||
| 111 | + log_syntax(unit, LOG_ERR, filename, line, r, | ||
| 112 | + "Failed to resolve specifiers%s: %m", | ||
| 113 | + ignore ? ", ignoring" : ""); | ||
| 114 | + return ignore ? 0 : -ENOEXEC; | ||
| 115 | } | ||
| 116 | |||
| 117 | free(c->selinux_context); | ||
| 118 | @@ -1363,8 +1375,10 @@ int config_parse_exec_apparmor_profile( | ||
| 119 | |||
| 120 | r = unit_name_printf(u, rvalue, &k); | ||
| 121 | if (r < 0) { | ||
| 122 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve specifiers, ignoring: %m"); | ||
| 123 | - return 0; | ||
| 124 | + log_syntax(unit, LOG_ERR, filename, line, r, | ||
| 125 | + "Failed to resolve specifiers%s: %m", | ||
| 126 | + ignore ? ", ignoring" : ""); | ||
| 127 | + return ignore ? 0 : -ENOEXEC; | ||
| 128 | } | ||
| 129 | |||
| 130 | free(c->apparmor_profile); | ||
| 131 | @@ -1411,8 +1425,10 @@ int config_parse_exec_smack_process_label( | ||
| 132 | |||
| 133 | r = unit_name_printf(u, rvalue, &k); | ||
| 134 | if (r < 0) { | ||
| 135 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve specifiers, ignoring: %m"); | ||
| 136 | - return 0; | ||
| 137 | + log_syntax(unit, LOG_ERR, filename, line, r, | ||
| 138 | + "Failed to resolve specifiers%s: %m", | ||
| 139 | + ignore ? ", ignoring" : ""); | ||
| 140 | + return ignore ? 0 : -ENOEXEC; | ||
| 141 | } | ||
| 142 | |||
| 143 | free(c->smack_process_label); | ||
| 144 | @@ -1630,19 +1646,19 @@ int config_parse_socket_service( | ||
| 145 | |||
| 146 | r = unit_name_printf(UNIT(s), rvalue, &p); | ||
| 147 | if (r < 0) { | ||
| 148 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve specifiers, ignoring: %s", rvalue); | ||
| 149 | - return 0; | ||
| 150 | + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve specifiers: %s", rvalue); | ||
| 151 | + return -ENOEXEC; | ||
| 152 | } | ||
| 153 | |||
| 154 | if (!endswith(p, ".service")) { | ||
| 155 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Unit must be of type service, ignoring: %s", rvalue); | ||
| 156 | - return 0; | ||
| 157 | + log_syntax(unit, LOG_ERR, filename, line, 0, "Unit must be of type service: %s", rvalue); | ||
| 158 | + return -ENOEXEC; | ||
| 159 | } | ||
| 160 | |||
| 161 | r = manager_load_unit(UNIT(s)->manager, p, NULL, &error, &x); | ||
| 162 | if (r < 0) { | ||
| 163 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to load unit %s, ignoring: %s", rvalue, bus_error_message(&error, r)); | ||
| 164 | - return 0; | ||
| 165 | + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to load unit %s: %s", rvalue, bus_error_message(&error, r)); | ||
| 166 | + return -ENOEXEC; | ||
| 167 | } | ||
| 168 | |||
| 169 | unit_ref_set(&s->service, x); | ||
| 170 | @@ -1893,13 +1909,13 @@ int config_parse_user_group( | ||
| 171 | |||
| 172 | r = unit_full_printf(u, rvalue, &k); | ||
| 173 | if (r < 0) { | ||
| 174 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", rvalue); | ||
| 175 | - return 0; | ||
| 176 | + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve unit specifiers in %s: %m", rvalue); | ||
| 177 | + return -ENOEXEC; | ||
| 178 | } | ||
| 179 | |||
| 180 | if (!valid_user_group_name_or_id(k)) { | ||
| 181 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid user/group name or numeric ID, ignoring: %s", k); | ||
| 182 | - return 0; | ||
| 183 | + log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid user/group name or numeric ID: %s", k); | ||
| 184 | + return -ENOEXEC; | ||
| 185 | } | ||
| 186 | |||
| 187 | n = k; | ||
| 188 | @@ -1957,19 +1973,19 @@ int config_parse_user_group_strv( | ||
| 189 | if (r == -ENOMEM) | ||
| 190 | return log_oom(); | ||
| 191 | if (r < 0) { | ||
| 192 | - log_syntax(unit, LOG_ERR, filename, line, r, "Invalid syntax, ignoring: %s", rvalue); | ||
| 193 | - break; | ||
| 194 | + log_syntax(unit, LOG_ERR, filename, line, r, "Invalid syntax: %s", rvalue); | ||
| 195 | + return -ENOEXEC; | ||
| 196 | } | ||
| 197 | |||
| 198 | r = unit_full_printf(u, word, &k); | ||
| 199 | if (r < 0) { | ||
| 200 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", word); | ||
| 201 | - continue; | ||
| 202 | + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve unit specifiers in %s: %m", word); | ||
| 203 | + return -ENOEXEC; | ||
| 204 | } | ||
| 205 | |||
| 206 | if (!valid_user_group_name_or_id(k)) { | ||
| 207 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid user/group name or numeric ID, ignoring: %s", k); | ||
| 208 | - continue; | ||
| 209 | + log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid user/group name or numeric ID: %s", k); | ||
| 210 | + return -ENOEXEC; | ||
| 211 | } | ||
| 212 | |||
| 213 | r = strv_push(users, k); | ||
| 214 | @@ -2128,25 +2144,28 @@ int config_parse_working_directory( | ||
| 215 | |||
| 216 | r = unit_full_printf(u, rvalue, &k); | ||
| 217 | if (r < 0) { | ||
| 218 | - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve unit specifiers in working directory path '%s', ignoring: %m", rvalue); | ||
| 219 | - return 0; | ||
| 220 | + log_syntax(unit, LOG_ERR, filename, line, r, | ||
| 221 | + "Failed to resolve unit specifiers in working directory path '%s'%s: %m", | ||
| 222 | + rvalue, missing_ok ? ", ignoring" : ""); | ||
| 223 | + return missing_ok ? 0 : -ENOEXEC; | ||
| 224 | } | ||
| 225 | |||
| 226 | path_kill_slashes(k); | ||
| 227 | |||
| 228 | if (!utf8_is_valid(k)) { | ||
| 229 | log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue); | ||
| 230 | - return 0; | ||
| 231 | + return missing_ok ? 0 : -ENOEXEC; | ||
| 232 | } | ||
| 233 | |||
| 234 | if (!path_is_absolute(k)) { | ||
| 235 | - log_syntax(unit, LOG_ERR, filename, line, 0, "Working directory path '%s' is not absolute, ignoring.", rvalue); | ||
| 236 | - return 0; | ||
| 237 | + log_syntax(unit, LOG_ERR, filename, line, 0, | ||
| 238 | + "Working directory path '%s' is not absolute%s.", | ||
| 239 | + rvalue, missing_ok ? ", ignoring" : ""); | ||
| 240 | + return missing_ok ? 0 : -ENOEXEC; | ||
| 241 | } | ||
| 242 | |||
| 243 | - free_and_replace(c->working_directory, k); | ||
| 244 | - | ||
| 245 | c->working_directory_home = false; | ||
| 246 | + free_and_replace(c->working_directory, k); | ||
| 247 | } | ||
| 248 | |||
| 249 | c->working_directory_missing_ok = missing_ok; | ||
| 250 | @@ -4228,8 +4247,11 @@ int unit_load_fragment(Unit *u) { | ||
| 251 | return r; | ||
| 252 | |||
| 253 | r = load_from_path(u, k); | ||
| 254 | - if (r < 0) | ||
| 255 | + if (r < 0) { | ||
| 256 | + if (r == -ENOEXEC) | ||
| 257 | + log_unit_notice(u, "Unit configuration has fatal error, unit will not be started."); | ||
| 258 | return r; | ||
| 259 | + } | ||
| 260 | |||
| 261 | if (u->load_state == UNIT_STUB) { | ||
| 262 | SET_FOREACH(t, u->names, i) { | ||
| 263 | diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c | ||
| 264 | index 12f48bf43..fd797b587 100644 | ||
| 265 | --- a/src/test/test-unit-file.c | ||
| 266 | +++ b/src/test/test-unit-file.c | ||
| 267 | @@ -146,7 +146,7 @@ static void test_config_parse_exec(void) { | ||
| 268 | r = config_parse_exec(NULL, "fake", 4, "section", 1, | ||
| 269 | "LValue", 0, "/RValue/ argv0 r1", | ||
| 270 | &c, u); | ||
| 271 | - assert_se(r == 0); | ||
| 272 | + assert_se(r == -ENOEXEC); | ||
| 273 | assert_se(c1->command_next == NULL); | ||
| 274 | |||
| 275 | log_info("/* honour_argv0 */"); | ||
| 276 | @@ -161,7 +161,7 @@ static void test_config_parse_exec(void) { | ||
| 277 | r = config_parse_exec(NULL, "fake", 3, "section", 1, | ||
| 278 | "LValue", 0, "@/RValue", | ||
| 279 | &c, u); | ||
| 280 | - assert_se(r == 0); | ||
| 281 | + assert_se(r == -ENOEXEC); | ||
| 282 | assert_se(c1->command_next == NULL); | ||
| 283 | |||
| 284 | log_info("/* no command, whitespace only, reset */"); | ||
| 285 | @@ -220,7 +220,7 @@ static void test_config_parse_exec(void) { | ||
| 286 | "-@/RValue argv0 r1 ; ; " | ||
| 287 | "/goo/goo boo", | ||
| 288 | &c, u); | ||
| 289 | - assert_se(r >= 0); | ||
| 290 | + assert_se(r == -ENOEXEC); | ||
| 291 | c1 = c1->command_next; | ||
| 292 | check_execcommand(c1, "/RValue", "argv0", "r1", NULL, true); | ||
| 293 | |||
| 294 | @@ -374,7 +374,7 @@ static void test_config_parse_exec(void) { | ||
| 295 | r = config_parse_exec(NULL, "fake", 4, "section", 1, | ||
| 296 | "LValue", 0, path, | ||
| 297 | &c, u); | ||
| 298 | - assert_se(r == 0); | ||
| 299 | + assert_se(r == -ENOEXEC); | ||
| 300 | assert_se(c1->command_next == NULL); | ||
| 301 | } | ||
| 302 | |||
| 303 | @@ -401,21 +401,21 @@ static void test_config_parse_exec(void) { | ||
| 304 | r = config_parse_exec(NULL, "fake", 4, "section", 1, | ||
| 305 | "LValue", 0, "/path\\", | ||
| 306 | &c, u); | ||
| 307 | - assert_se(r == 0); | ||
| 308 | + assert_se(r == -ENOEXEC); | ||
| 309 | assert_se(c1->command_next == NULL); | ||
| 310 | |||
| 311 | log_info("/* missing ending ' */"); | ||
| 312 | r = config_parse_exec(NULL, "fake", 4, "section", 1, | ||
| 313 | "LValue", 0, "/path 'foo", | ||
| 314 | &c, u); | ||
| 315 | - assert_se(r == 0); | ||
| 316 | + assert_se(r == -ENOEXEC); | ||
| 317 | assert_se(c1->command_next == NULL); | ||
| 318 | |||
| 319 | log_info("/* missing ending ' with trailing backslash */"); | ||
| 320 | r = config_parse_exec(NULL, "fake", 4, "section", 1, | ||
| 321 | "LValue", 0, "/path 'foo\\", | ||
| 322 | &c, u); | ||
| 323 | - assert_se(r == 0); | ||
| 324 | + assert_se(r == -ENOEXEC); | ||
| 325 | assert_se(c1->command_next == NULL); | ||
| 326 | |||
| 327 | log_info("/* invalid space between modifiers */"); | ||
| 328 | -- | ||
| 329 | 2.11.0 | ||
diff --git a/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch b/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch index 37c6ac5d10..5ba4b9a364 100644 --- a/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch +++ b/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From b383c286f58184575216b2bf6f185ba2ad648956 Mon Sep 17 00:00:00 2001 | 1 | From 96baee0e1962e559f4ea025024ebc337cb5d50c5 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Wed, 9 Nov 2016 19:25:45 -0800 | 3 | Date: Wed, 9 Nov 2016 19:25:45 -0800 |
| 4 | Subject: [PATCH 03/19] define exp10 if missing | 4 | Subject: [PATCH 01/14] define exp10 if missing |
| 5 | 5 | ||
| 6 | Inspired by: http://peter.korsgaard.com/patches/alsa-utils/alsamixer-fix-build-on-uClibc-exp10.patch | 6 | Inspired by: http://peter.korsgaard.com/patches/alsa-utils/alsamixer-fix-build-on-uClibc-exp10.patch |
| 7 | 7 | ||
| @@ -11,16 +11,17 @@ Upstream-Status: Pending | |||
| 11 | 11 | ||
| 12 | Signed-off-by: Samuel Martin <s.martin49@gmail.com> | 12 | Signed-off-by: Samuel Martin <s.martin49@gmail.com> |
| 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 14 | |||
| 14 | --- | 15 | --- |
| 15 | src/basic/missing.h | 5 +++++ | 16 | src/basic/missing.h | 5 +++++ |
| 16 | 1 file changed, 5 insertions(+) | 17 | 1 file changed, 5 insertions(+) |
| 17 | 18 | ||
| 18 | diff --git a/src/basic/missing.h b/src/basic/missing.h | 19 | diff --git a/src/basic/missing.h b/src/basic/missing.h |
| 19 | index 4c013be..4a3fd9c 100644 | 20 | index 7830a4f41..177c0eb8a 100644 |
| 20 | --- a/src/basic/missing.h | 21 | --- a/src/basic/missing.h |
| 21 | +++ b/src/basic/missing.h | 22 | +++ b/src/basic/missing.h |
| 22 | @@ -1078,4 +1078,9 @@ typedef int32_t key_serial_t; | 23 | @@ -1227,4 +1227,9 @@ struct ethtool_link_settings { |
| 23 | 24 | #define AF_VSOCK 40 | |
| 24 | #endif | 25 | #endif |
| 25 | 26 | ||
| 26 | +#ifdef __UCLIBC__ | 27 | +#ifdef __UCLIBC__ |
| @@ -30,5 +31,5 @@ index 4c013be..4a3fd9c 100644 | |||
| 30 | + | 31 | + |
| 31 | #include "missing_syscall.h" | 32 | #include "missing_syscall.h" |
| 32 | -- | 33 | -- |
| 33 | 2.10.2 | 34 | 2.13.2 |
| 34 | 35 | ||
diff --git a/meta/recipes-core/systemd/systemd/0012-rules-whitelist-hd-devices.patch b/meta/recipes-core/systemd/systemd/0012-rules-whitelist-hd-devices.patch index 8666bdc652..eb380ce78d 100644 --- a/meta/recipes-core/systemd/systemd/0012-rules-whitelist-hd-devices.patch +++ b/meta/recipes-core/systemd/systemd/0012-rules-whitelist-hd-devices.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 8cc1ae11f54dcc38ee2168b0f99703b835dd3942 Mon Sep 17 00:00:00 2001 | 1 | From ab5a27040133f7cdf062ac8cfeb94e081d3567b3 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Wed, 9 Nov 2016 19:41:13 -0800 | 3 | Date: Wed, 9 Nov 2016 19:41:13 -0800 |
| 4 | Subject: [PATCH 12/19] rules: whitelist hd* devices | 4 | Subject: [PATCH 07/14] rules: whitelist hd* devices |
| 5 | 5 | ||
| 6 | qemu by default emulates IDE and the linux-yocto kernel(s) use | 6 | qemu by default emulates IDE and the linux-yocto kernel(s) use |
| 7 | CONFIG_IDE instead of the more modern libsata, so disks appear as | 7 | CONFIG_IDE instead of the more modern libsata, so disks appear as |
| @@ -11,23 +11,24 @@ Upstream-Status: Denied [https://github.com/systemd/systemd/pull/1276] | |||
| 11 | 11 | ||
| 12 | Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> | 12 | Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> |
| 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 14 | |||
| 14 | --- | 15 | --- |
| 15 | rules/60-persistent-storage.rules | 2 +- | 16 | rules/60-persistent-storage.rules | 2 +- |
| 16 | 1 file changed, 1 insertion(+), 1 deletion(-) | 17 | 1 file changed, 1 insertion(+), 1 deletion(-) |
| 17 | 18 | ||
| 18 | diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules | 19 | diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules |
| 19 | index c13d05c..b14fbed 100644 | 20 | index d2745f65f..63f472be8 100644 |
| 20 | --- a/rules/60-persistent-storage.rules | 21 | --- a/rules/60-persistent-storage.rules |
| 21 | +++ b/rules/60-persistent-storage.rules | 22 | +++ b/rules/60-persistent-storage.rules |
| 22 | @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end" | 23 | @@ -7,7 +7,7 @@ ACTION=="remove", GOTO="persistent_storage_end" |
| 23 | ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_end" | 24 | ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_end" |
| 24 | 25 | ||
| 25 | SUBSYSTEM!="block", GOTO="persistent_storage_end" | 26 | SUBSYSTEM!="block", GOTO="persistent_storage_end" |
| 26 | -KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*", GOTO="persistent_storage_end" | 27 | -KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*", GOTO="persistent_storage_end" |
| 27 | +KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|hd*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*", GOTO="persistent_storage_end" | 28 | +KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*|hd*", GOTO="persistent_storage_end" |
| 28 | 29 | ||
| 29 | # ignore partitions that span the entire disk | 30 | # ignore partitions that span the entire disk |
| 30 | TEST=="whole_disk", GOTO="persistent_storage_end" | 31 | TEST=="whole_disk", GOTO="persistent_storage_end" |
| 31 | -- | 32 | -- |
| 32 | 2.10.2 | 33 | 2.13.2 |
| 33 | 34 | ||
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 index 2b333375bb..aeebbfb8fe 100644 --- 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 | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 79e64a07840e0d97d66e46111f1c086bf83981b7 Mon Sep 17 00:00:00 2001 | 1 | From 479e1f4aa2b9f1c911a4d0dd18e222d241a978ea Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Wed, 9 Nov 2016 20:35:30 -0800 | 3 | Date: Wed, 9 Nov 2016 20:35:30 -0800 |
| 4 | Subject: [PATCH 13/19] Make root's home directory configurable | 4 | Subject: [PATCH 42/48] Make root's home directory configurable |
| 5 | 5 | ||
| 6 | OpenEmbedded has a configurable home directory for root. Allow | 6 | OpenEmbedded has a configurable home directory for root. Allow |
| 7 | systemd to be built using its idea of what root's home directory | 7 | systemd to be built using its idea of what root's home directory |
| @@ -14,6 +14,7 @@ https://github.com/systemd/systemd/issues/541 | |||
| 14 | 14 | ||
| 15 | Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> | 15 | Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> |
| 16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 17 | |||
| 17 | --- | 18 | --- |
| 18 | Makefile.am | 2 ++ | 19 | Makefile.am | 2 ++ |
| 19 | configure.ac | 7 +++++++ | 20 | configure.ac | 7 +++++++ |
| @@ -24,18 +25,18 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 24 | 6 files changed, 17 insertions(+), 8 deletions(-) | 25 | 6 files changed, 17 insertions(+), 8 deletions(-) |
| 25 | 26 | ||
| 26 | diff --git a/Makefile.am b/Makefile.am | 27 | diff --git a/Makefile.am b/Makefile.am |
| 27 | index 420e0e0..3010b01 100644 | 28 | index 1bcd932c2..c2b4a99d2 100644 |
| 28 | --- a/Makefile.am | 29 | --- a/Makefile.am |
| 29 | +++ b/Makefile.am | 30 | +++ b/Makefile.am |
| 30 | @@ -213,6 +213,7 @@ AM_CPPFLAGS = \ | 31 | @@ -226,6 +226,7 @@ AM_CPPFLAGS = \ |
| 31 | -DLIBDIR=\"$(libdir)\" \ | 32 | -DLIBDIR=\"$(libdir)\" \ |
| 32 | -DROOTLIBDIR=\"$(rootlibdir)\" \ | 33 | -DROOTLIBDIR=\"$(rootlibdir)\" \ |
| 33 | -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \ | 34 | -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \ |
| 34 | + -DROOTHOMEDIR=\"$(roothomedir)\" \ | 35 | + -DROOTHOMEDIR=\"$(roothomedir)\" \ |
| 35 | -DTEST_DIR=\"$(abs_top_srcdir)/test\" \ | ||
| 36 | -I $(top_srcdir)/src \ | 36 | -I $(top_srcdir)/src \ |
| 37 | -I $(top_builddir)/src/basic \ | 37 | -I $(top_builddir)/src/basic \ |
| 38 | @@ -6057,6 +6058,7 @@ substitutions = \ | 38 | -I $(top_srcdir)/src/basic \ |
| 39 | @@ -6356,6 +6357,7 @@ substitutions = \ | ||
| 39 | '|rootlibdir=$(rootlibdir)|' \ | 40 | '|rootlibdir=$(rootlibdir)|' \ |
| 40 | '|rootlibexecdir=$(rootlibexecdir)|' \ | 41 | '|rootlibexecdir=$(rootlibexecdir)|' \ |
| 41 | '|rootbindir=$(rootbindir)|' \ | 42 | '|rootbindir=$(rootbindir)|' \ |
| @@ -44,10 +45,10 @@ index 420e0e0..3010b01 100644 | |||
| 44 | '|SYSTEMCTL=$(rootbindir)/systemctl|' \ | 45 | '|SYSTEMCTL=$(rootbindir)/systemctl|' \ |
| 45 | '|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \ | 46 | '|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \ |
| 46 | diff --git a/configure.ac b/configure.ac | 47 | diff --git a/configure.ac b/configure.ac |
| 47 | index b10c952..dfc0bd3 100644 | 48 | index 0354ffe6a..b53ca1f1a 100644 |
| 48 | --- a/configure.ac | 49 | --- a/configure.ac |
| 49 | +++ b/configure.ac | 50 | +++ b/configure.ac |
| 50 | @@ -1513,6 +1513,11 @@ AC_ARG_WITH([rootlibdir], | 51 | @@ -1641,6 +1641,11 @@ AC_ARG_WITH([rootlibdir], |
| 51 | [with_rootlibdir=${libdir}]) | 52 | [with_rootlibdir=${libdir}]) |
| 52 | AX_NORMALIZE_PATH([with_rootlibdir]) | 53 | AX_NORMALIZE_PATH([with_rootlibdir]) |
| 53 | 54 | ||
| @@ -57,29 +58,29 @@ index b10c952..dfc0bd3 100644 | |||
| 57 | + [with_roothomedir=/root]) | 58 | + [with_roothomedir=/root]) |
| 58 | + | 59 | + |
| 59 | AC_ARG_WITH([pamlibdir], | 60 | AC_ARG_WITH([pamlibdir], |
| 60 | AS_HELP_STRING([--with-pamlibdir=DIR], [Directory for PAM modules]), | 61 | AS_HELP_STRING([--with-pamlibdir=DIR], [directory for PAM modules]), |
| 61 | [], | 62 | [], |
| 62 | @@ -1598,6 +1603,7 @@ AC_SUBST([pamlibdir], [$with_pamlibdir]) | 63 | @@ -1733,6 +1738,7 @@ AC_SUBST([pamconfdir], [$with_pamconfdir]) |
| 63 | AC_SUBST([pamconfdir], [$with_pamconfdir]) | 64 | AC_SUBST([rpmmacrosdir], [$with_rpmmacrosdir]) |
| 64 | AC_SUBST([rootprefix], [$with_rootprefix]) | 65 | AC_SUBST([rootprefix], [$with_rootprefix]) |
| 65 | AC_SUBST([rootlibdir], [$with_rootlibdir]) | 66 | AC_SUBST([rootlibdir], [$with_rootlibdir]) |
| 66 | +AC_SUBST([roothomedir], [$with_roothomedir]) | 67 | +AC_SUBST([roothomedir], [$with_roothomedir]) |
| 67 | 68 | ||
| 68 | AC_CONFIG_FILES([ | 69 | AC_CONFIG_FILES([ |
| 69 | Makefile | 70 | Makefile |
| 70 | @@ -1688,6 +1694,7 @@ AC_MSG_RESULT([ | 71 | @@ -1829,6 +1835,7 @@ AC_MSG_RESULT([ |
| 71 | includedir: ${includedir} | 72 | includedir: ${includedir} |
| 72 | lib dir: ${libdir} | 73 | lib dir: ${libdir} |
| 73 | rootlib dir: ${with_rootlibdir} | 74 | rootlib dir: ${with_rootlibdir} |
| 74 | + root home dir: ${with_roothomedir} | 75 | + root home dir: ${with_roothomedir} |
| 75 | SysV init scripts: ${SYSTEM_SYSVINIT_PATH} | 76 | SysV init scripts: ${SYSTEM_SYSVINIT_PATH} |
| 76 | SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} | 77 | SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} |
| 77 | Build Python: ${PYTHON} | 78 | build Python: ${PYTHON} |
| 78 | diff --git a/src/basic/user-util.c b/src/basic/user-util.c | 79 | diff --git a/src/basic/user-util.c b/src/basic/user-util.c |
| 79 | index 938533d..3f9fdc4 100644 | 80 | index c619dad52..662682adf 100644 |
| 80 | --- a/src/basic/user-util.c | 81 | --- a/src/basic/user-util.c |
| 81 | +++ b/src/basic/user-util.c | 82 | +++ b/src/basic/user-util.c |
| 82 | @@ -127,7 +127,7 @@ int get_user_creds( | 83 | @@ -129,7 +129,7 @@ int get_user_creds( |
| 83 | *gid = 0; | 84 | *gid = 0; |
| 84 | 85 | ||
| 85 | if (home) | 86 | if (home) |
| @@ -88,7 +89,7 @@ index 938533d..3f9fdc4 100644 | |||
| 88 | 89 | ||
| 89 | if (shell) | 90 | if (shell) |
| 90 | *shell = "/bin/sh"; | 91 | *shell = "/bin/sh"; |
| 91 | @@ -387,7 +387,7 @@ int get_home_dir(char **_h) { | 92 | @@ -389,7 +389,7 @@ int get_home_dir(char **_h) { |
| 92 | /* Hardcode home directory for root to avoid NSS */ | 93 | /* Hardcode home directory for root to avoid NSS */ |
| 93 | u = getuid(); | 94 | u = getuid(); |
| 94 | if (u == 0) { | 95 | if (u == 0) { |
| @@ -98,10 +99,10 @@ index 938533d..3f9fdc4 100644 | |||
| 98 | return -ENOMEM; | 99 | return -ENOMEM; |
| 99 | 100 | ||
| 100 | diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c | 101 | diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c |
| 101 | index 19b47cd..e42bf19 100644 | 102 | index 8a5fedd4b..7b01ec078 100644 |
| 102 | --- a/src/nspawn/nspawn.c | 103 | --- a/src/nspawn/nspawn.c |
| 103 | +++ b/src/nspawn/nspawn.c | 104 | +++ b/src/nspawn/nspawn.c |
| 104 | @@ -2798,7 +2798,7 @@ static int inner_child( | 105 | @@ -2291,7 +2291,7 @@ static int inner_child( |
| 105 | if (envp[n_env]) | 106 | if (envp[n_env]) |
| 106 | n_env++; | 107 | n_env++; |
| 107 | 108 | ||
| @@ -110,8 +111,8 @@ index 19b47cd..e42bf19 100644 | |||
| 110 | (asprintf((char**)(envp + n_env++), "USER=%s", arg_user ? arg_user : "root") < 0) || | 111 | (asprintf((char**)(envp + n_env++), "USER=%s", arg_user ? arg_user : "root") < 0) || |
| 111 | (asprintf((char**)(envp + n_env++), "LOGNAME=%s", arg_user ? arg_user : "root") < 0)) | 112 | (asprintf((char**)(envp + n_env++), "LOGNAME=%s", arg_user ? arg_user : "root") < 0)) |
| 112 | return log_oom(); | 113 | return log_oom(); |
| 113 | @@ -2882,7 +2882,7 @@ static int inner_child( | 114 | @@ -2373,7 +2373,7 @@ static int inner_child( |
| 114 | else { | 115 | } else { |
| 115 | if (!arg_chdir) | 116 | if (!arg_chdir) |
| 116 | /* If we cannot change the directory, we'll end up in /, that is expected. */ | 117 | /* If we cannot change the directory, we'll end up in /, that is expected. */ |
| 117 | - (void) chdir(home ?: "/root"); | 118 | - (void) chdir(home ?: "/root"); |
| @@ -120,7 +121,7 @@ index 19b47cd..e42bf19 100644 | |||
| 120 | execle("/bin/bash", "-bash", NULL, env_use); | 121 | execle("/bin/bash", "-bash", NULL, env_use); |
| 121 | execle("/bin/sh", "-sh", NULL, env_use); | 122 | execle("/bin/sh", "-sh", NULL, env_use); |
| 122 | diff --git a/units/emergency.service.in b/units/emergency.service.in | 123 | diff --git a/units/emergency.service.in b/units/emergency.service.in |
| 123 | index da68eb8..e25f879 100644 | 124 | index e9eb238b9..32588e48a 100644 |
| 124 | --- a/units/emergency.service.in | 125 | --- a/units/emergency.service.in |
| 125 | +++ b/units/emergency.service.in | 126 | +++ b/units/emergency.service.in |
| 126 | @@ -15,8 +15,8 @@ Conflicts=syslog.socket | 127 | @@ -15,8 +15,8 @@ Conflicts=syslog.socket |
| @@ -131,11 +132,11 @@ index da68eb8..e25f879 100644 | |||
| 131 | -WorkingDirectory=-/root | 132 | -WorkingDirectory=-/root |
| 132 | +Environment=HOME=@roothomedir@ | 133 | +Environment=HOME=@roothomedir@ |
| 133 | +WorkingDirectory=-@roothomedir@ | 134 | +WorkingDirectory=-@roothomedir@ |
| 134 | ExecStartPre=-/bin/plymouth --wait quit | 135 | ExecStart=-@rootlibexecdir@/systemd-sulogin-shell emergency |
| 135 | ExecStartPre=-/bin/echo -e 'You are in emergency mode. After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' | 136 | Type=idle |
| 136 | ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" | 137 | StandardInput=tty-force |
| 137 | diff --git a/units/rescue.service.in b/units/rescue.service.in | 138 | diff --git a/units/rescue.service.in b/units/rescue.service.in |
| 138 | index 5feff69..a83439e 100644 | 139 | index 4ab66f485..bd9898f2c 100644 |
| 139 | --- a/units/rescue.service.in | 140 | --- a/units/rescue.service.in |
| 140 | +++ b/units/rescue.service.in | 141 | +++ b/units/rescue.service.in |
| 141 | @@ -14,8 +14,8 @@ After=sysinit.target plymouth-start.service | 142 | @@ -14,8 +14,8 @@ After=sysinit.target plymouth-start.service |
| @@ -146,9 +147,9 @@ index 5feff69..a83439e 100644 | |||
| 146 | -WorkingDirectory=-/root | 147 | -WorkingDirectory=-/root |
| 147 | +Environment=HOME=@roothomedir@ | 148 | +Environment=HOME=@roothomedir@ |
| 148 | +WorkingDirectory=-@roothomedir@ | 149 | +WorkingDirectory=-@roothomedir@ |
| 149 | ExecStartPre=-/bin/plymouth --wait quit | 150 | ExecStart=-@rootlibexecdir@/systemd-sulogin-shell rescue |
| 150 | ExecStartPre=-/bin/echo -e 'You are in rescue mode. After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' | 151 | Type=idle |
| 151 | ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" | 152 | StandardInput=tty-force |
| 152 | -- | 153 | -- |
| 153 | 2.10.2 | 154 | 2.13.2 |
| 154 | 155 | ||
diff --git a/meta/recipes-core/systemd/systemd/0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch b/meta/recipes-core/systemd/systemd/0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch index f31d211e76..95871bb053 100644 --- a/meta/recipes-core/systemd/systemd/0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch +++ b/meta/recipes-core/systemd/systemd/0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From 4d28d9a7d8d69fb429955d770e53e7a81640da24 Mon Sep 17 00:00:00 2001 | 1 | From 7883985a3a78677e9a1d5d61fe7fa8badf39f565 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Wed, 9 Nov 2016 20:45:23 -0800 | 3 | Date: Wed, 9 Nov 2016 20:45:23 -0800 |
| 4 | Subject: [PATCH 15/19] Revert "udev: remove userspace firmware loading | 4 | Subject: [PATCH 10/14] Revert "udev: remove userspace firmware loading |
| 5 | support" | 5 | support" |
| 6 | 6 | ||
| 7 | This reverts commit be2ea723b1d023b3d385d3b791ee4607cbfb20ca. | 7 | This reverts commit be2ea723b1d023b3d385d3b791ee4607cbfb20ca. |
| @@ -11,23 +11,24 @@ Upstream-Status: Inappropriate [OE specific] | |||
| 11 | 11 | ||
| 12 | Signed-off-by: Jonathan Liu <net147@gmail.com> | 12 | Signed-off-by: Jonathan Liu <net147@gmail.com> |
| 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 14 | |||
| 14 | --- | 15 | --- |
| 15 | Makefile.am | 12 +++ | 16 | Makefile.am | 12 +++ |
| 16 | README | 6 +- | 17 | README | 4 +- |
| 17 | TODO | 1 + | 18 | TODO | 1 + |
| 18 | configure.ac | 18 +++++ | 19 | configure.ac | 18 +++++ |
| 19 | src/udev/udev-builtin-firmware.c | 154 +++++++++++++++++++++++++++++++++++++++ | 20 | src/udev/udev-builtin-firmware.c | 154 +++++++++++++++++++++++++++++++++++++++ |
| 20 | src/udev/udev-builtin.c | 3 + | 21 | src/udev/udev-builtin.c | 3 + |
| 21 | src/udev/udev.h | 6 ++ | 22 | src/udev/udev.h | 6 ++ |
| 22 | src/udev/udevd.c | 13 ++++ | 23 | src/udev/udevd.c | 13 ++++ |
| 23 | 8 files changed, 210 insertions(+), 3 deletions(-) | 24 | 8 files changed, 209 insertions(+), 2 deletions(-) |
| 24 | create mode 100644 src/udev/udev-builtin-firmware.c | 25 | create mode 100644 src/udev/udev-builtin-firmware.c |
| 25 | 26 | ||
| 26 | diff --git a/Makefile.am b/Makefile.am | 27 | diff --git a/Makefile.am b/Makefile.am |
| 27 | index 3010b01..229492a 100644 | 28 | index c2b4a99d2..692d7bb95 100644 |
| 28 | --- a/Makefile.am | 29 | --- a/Makefile.am |
| 29 | +++ b/Makefile.am | 30 | +++ b/Makefile.am |
| 30 | @@ -3791,6 +3791,18 @@ libudev_core_la_LIBADD = \ | 31 | @@ -3985,6 +3985,18 @@ libudev_core_la_LIBADD = \ |
| 31 | $(BLKID_LIBS) \ | 32 | $(BLKID_LIBS) \ |
| 32 | $(KMOD_LIBS) | 33 | $(KMOD_LIBS) |
| 33 | 34 | ||
| @@ -47,17 +48,10 @@ index 3010b01..229492a 100644 | |||
| 47 | libudev_core_la_SOURCES += \ | 48 | libudev_core_la_SOURCES += \ |
| 48 | src/udev/udev-builtin-kmod.c | 49 | src/udev/udev-builtin-kmod.c |
| 49 | diff --git a/README b/README | 50 | diff --git a/README b/README |
| 50 | index 9f5bc93..f60ae11 100644 | 51 | index 60388eebe..e21976393 100644 |
| 51 | --- a/README | 52 | --- a/README |
| 52 | +++ b/README | 53 | +++ b/README |
| 53 | @@ -50,14 +50,14 @@ REQUIREMENTS: | 54 | @@ -61,8 +61,8 @@ REQUIREMENTS: |
| 54 | CONFIG_PROC_FS | ||
| 55 | CONFIG_FHANDLE (libudev, mount and bind mount handling) | ||
| 56 | |||
| 57 | - udev will fail to work with the legacy sysfs layout: | ||
| 58 | + Udev will fail to work with the legacy sysfs layout: | ||
| 59 | CONFIG_SYSFS_DEPRECATED=n | ||
| 60 | |||
| 61 | Legacy hotplug slows down the system and confuses udev: | 55 | Legacy hotplug slows down the system and confuses udev: |
| 62 | CONFIG_UEVENT_HELPER_PATH="" | 56 | CONFIG_UEVENT_HELPER_PATH="" |
| 63 | 57 | ||
| @@ -69,10 +63,10 @@ index 9f5bc93..f60ae11 100644 | |||
| 69 | 63 | ||
| 70 | Some udev rules and virtualization detection relies on it: | 64 | Some udev rules and virtualization detection relies on it: |
| 71 | diff --git a/TODO b/TODO | 65 | diff --git a/TODO b/TODO |
| 72 | index baaac94..1ab1691 100644 | 66 | index 61efa5e9f..67ccac224 100644 |
| 73 | --- a/TODO | 67 | --- a/TODO |
| 74 | +++ b/TODO | 68 | +++ b/TODO |
| 75 | @@ -658,6 +658,7 @@ Features: | 69 | @@ -740,6 +740,7 @@ Features: |
| 76 | * initialize the hostname from the fs label of /, if /etc/hostname does not exist? | 70 | * initialize the hostname from the fs label of /, if /etc/hostname does not exist? |
| 77 | 71 | ||
| 78 | * udev: | 72 | * udev: |
| @@ -81,11 +75,11 @@ index baaac94..1ab1691 100644 | |||
| 81 | - kill scsi_id | 75 | - kill scsi_id |
| 82 | - add trigger --subsystem-match=usb/usb_device device | 76 | - add trigger --subsystem-match=usb/usb_device device |
| 83 | diff --git a/configure.ac b/configure.ac | 77 | diff --git a/configure.ac b/configure.ac |
| 84 | index dfc0bd3..1de0066 100644 | 78 | index b53ca1f1a..1150ca50e 100644 |
| 85 | --- a/configure.ac | 79 | --- a/configure.ac |
| 86 | +++ b/configure.ac | 80 | +++ b/configure.ac |
| 87 | @@ -1394,6 +1394,23 @@ AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) | 81 | @@ -1522,6 +1522,23 @@ AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) |
| 88 | AC_ARG_ENABLE(hwdb, [AC_HELP_STRING([--disable-hwdb], [disable hardware database support])], | 82 | AC_ARG_ENABLE(hwdb, [AS_HELP_STRING([--disable-hwdb], [disable hardware database support])], |
| 89 | enable_hwdb=$enableval, enable_hwdb=yes) | 83 | enable_hwdb=$enableval, enable_hwdb=yes) |
| 90 | AM_CONDITIONAL(ENABLE_HWDB, [test x$enable_hwdb = xyes]) | 84 | AM_CONDITIONAL(ENABLE_HWDB, [test x$enable_hwdb = xyes]) |
| 91 | +AC_ARG_WITH(firmware-path, | 85 | +AC_ARG_WITH(firmware-path, |
| @@ -108,17 +102,17 @@ index dfc0bd3..1de0066 100644 | |||
| 108 | 102 | ||
| 109 | # ------------------------------------------------------------------------------ | 103 | # ------------------------------------------------------------------------------ |
| 110 | have_manpages=no | 104 | have_manpages=no |
| 111 | @@ -1698,6 +1715,7 @@ AC_MSG_RESULT([ | 105 | @@ -1839,6 +1856,7 @@ AC_MSG_RESULT([ |
| 112 | SysV init scripts: ${SYSTEM_SYSVINIT_PATH} | 106 | SysV init scripts: ${SYSTEM_SYSVINIT_PATH} |
| 113 | SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} | 107 | SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} |
| 114 | Build Python: ${PYTHON} | 108 | build Python: ${PYTHON} |
| 115 | + firmware path: ${FIRMWARE_PATH} | 109 | + firmware path: ${FIRMWARE_PATH} |
| 116 | PAM modules dir: ${with_pamlibdir} | 110 | PAM modules dir: ${with_pamlibdir} |
| 117 | PAM configuration dir: ${with_pamconfdir} | 111 | PAM configuration dir: ${with_pamconfdir} |
| 118 | D-Bus policy dir: ${with_dbuspolicydir} | 112 | RPM macros dir: ${with_rpmmacrosdir} |
| 119 | diff --git a/src/udev/udev-builtin-firmware.c b/src/udev/udev-builtin-firmware.c | 113 | diff --git a/src/udev/udev-builtin-firmware.c b/src/udev/udev-builtin-firmware.c |
| 120 | new file mode 100644 | 114 | new file mode 100644 |
| 121 | index 0000000..bd8c2fb | 115 | index 000000000..bd8c2fb96 |
| 122 | --- /dev/null | 116 | --- /dev/null |
| 123 | +++ b/src/udev/udev-builtin-firmware.c | 117 | +++ b/src/udev/udev-builtin-firmware.c |
| 124 | @@ -0,0 +1,154 @@ | 118 | @@ -0,0 +1,154 @@ |
| @@ -277,7 +271,7 @@ index 0000000..bd8c2fb | |||
| 277 | + .run_once = true, | 271 | + .run_once = true, |
| 278 | +}; | 272 | +}; |
| 279 | diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c | 273 | diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c |
| 280 | index e6b36f1..cd9947e 100644 | 274 | index e6b36f124..cd9947e2a 100644 |
| 281 | --- a/src/udev/udev-builtin.c | 275 | --- a/src/udev/udev-builtin.c |
| 282 | +++ b/src/udev/udev-builtin.c | 276 | +++ b/src/udev/udev-builtin.c |
| 283 | @@ -31,6 +31,9 @@ static const struct udev_builtin *builtins[] = { | 277 | @@ -31,6 +31,9 @@ static const struct udev_builtin *builtins[] = { |
| @@ -291,10 +285,10 @@ index e6b36f1..cd9947e 100644 | |||
| 291 | [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, | 285 | [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, |
| 292 | [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard, | 286 | [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard, |
| 293 | diff --git a/src/udev/udev.h b/src/udev/udev.h | 287 | diff --git a/src/udev/udev.h b/src/udev/udev.h |
| 294 | index 8433e8d..d32366d 100644 | 288 | index c0cb7eae8..9f0f1cf13 100644 |
| 295 | --- a/src/udev/udev.h | 289 | --- a/src/udev/udev.h |
| 296 | +++ b/src/udev/udev.h | 290 | +++ b/src/udev/udev.h |
| 297 | @@ -148,6 +148,9 @@ enum udev_builtin_cmd { | 291 | @@ -150,6 +150,9 @@ enum udev_builtin_cmd { |
| 298 | UDEV_BUILTIN_BLKID, | 292 | UDEV_BUILTIN_BLKID, |
| 299 | #endif | 293 | #endif |
| 300 | UDEV_BUILTIN_BTRFS, | 294 | UDEV_BUILTIN_BTRFS, |
| @@ -304,7 +298,7 @@ index 8433e8d..d32366d 100644 | |||
| 304 | UDEV_BUILTIN_HWDB, | 298 | UDEV_BUILTIN_HWDB, |
| 305 | UDEV_BUILTIN_INPUT_ID, | 299 | UDEV_BUILTIN_INPUT_ID, |
| 306 | UDEV_BUILTIN_KEYBOARD, | 300 | UDEV_BUILTIN_KEYBOARD, |
| 307 | @@ -176,6 +179,9 @@ struct udev_builtin { | 301 | @@ -178,6 +181,9 @@ struct udev_builtin { |
| 308 | extern const struct udev_builtin udev_builtin_blkid; | 302 | extern const struct udev_builtin udev_builtin_blkid; |
| 309 | #endif | 303 | #endif |
| 310 | extern const struct udev_builtin udev_builtin_btrfs; | 304 | extern const struct udev_builtin udev_builtin_btrfs; |
| @@ -315,7 +309,7 @@ index 8433e8d..d32366d 100644 | |||
| 315 | extern const struct udev_builtin udev_builtin_input_id; | 309 | extern const struct udev_builtin udev_builtin_input_id; |
| 316 | extern const struct udev_builtin udev_builtin_keyboard; | 310 | extern const struct udev_builtin udev_builtin_keyboard; |
| 317 | diff --git a/src/udev/udevd.c b/src/udev/udevd.c | 311 | diff --git a/src/udev/udevd.c b/src/udev/udevd.c |
| 318 | index d336ee0..81e5dc5 100644 | 312 | index acbddd418..20347b402 100644 |
| 319 | --- a/src/udev/udevd.c | 313 | --- a/src/udev/udevd.c |
| 320 | +++ b/src/udev/udevd.c | 314 | +++ b/src/udev/udevd.c |
| 321 | @@ -125,6 +125,9 @@ struct event { | 315 | @@ -125,6 +125,9 @@ struct event { |
| @@ -353,5 +347,5 @@ index d336ee0..81e5dc5 100644 | |||
| 353 | if (event->devpath[common] == '/') { | 347 | if (event->devpath[common] == '/') { |
| 354 | event->delaying_seqnum = loop_event->seqnum; | 348 | event->delaying_seqnum = loop_event->seqnum; |
| 355 | -- | 349 | -- |
| 356 | 2.10.2 | 350 | 2.13.2 |
| 357 | 351 | ||
diff --git a/meta/recipes-core/systemd/systemd/0016-make-test-dir-configurable.patch b/meta/recipes-core/systemd/systemd/0016-make-test-dir-configurable.patch deleted file mode 100644 index 10d1df5d52..0000000000 --- a/meta/recipes-core/systemd/systemd/0016-make-test-dir-configurable.patch +++ /dev/null | |||
| @@ -1,65 +0,0 @@ | |||
| 1 | From 218bbc555a37f9373fbb7f03c744eb65109d3470 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Wed, 9 Nov 2016 20:47:37 -0800 | ||
| 4 | Subject: [PATCH 16/19] make test dir configurable | ||
| 5 | |||
| 6 | Upstream-Status: Pending | ||
| 7 | |||
| 8 | test maybe be run on target in cross-compile environment, and test dir | ||
| 9 | is not the compilation dir, so make it configurable | ||
| 10 | |||
| 11 | Signed-off-by: Roy Li <rongqing.li@windriver.com> | ||
| 12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 13 | --- | ||
| 14 | Makefile.am | 2 +- | ||
| 15 | configure.ac | 7 +++++++ | ||
| 16 | 2 files changed, 8 insertions(+), 1 deletion(-) | ||
| 17 | |||
| 18 | diff --git a/Makefile.am b/Makefile.am | ||
| 19 | index 229492a..e997d82 100644 | ||
| 20 | --- a/Makefile.am | ||
| 21 | +++ b/Makefile.am | ||
| 22 | @@ -214,7 +214,7 @@ AM_CPPFLAGS = \ | ||
| 23 | -DROOTLIBDIR=\"$(rootlibdir)\" \ | ||
| 24 | -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \ | ||
| 25 | -DROOTHOMEDIR=\"$(roothomedir)\" \ | ||
| 26 | - -DTEST_DIR=\"$(abs_top_srcdir)/test\" \ | ||
| 27 | + -DTEST_DIR=\"$(testdir)/test\" \ | ||
| 28 | -I $(top_srcdir)/src \ | ||
| 29 | -I $(top_builddir)/src/basic \ | ||
| 30 | -I $(top_srcdir)/src/basic \ | ||
| 31 | diff --git a/configure.ac b/configure.ac | ||
| 32 | index 1de0066..b12e320 100644 | ||
| 33 | --- a/configure.ac | ||
| 34 | +++ b/configure.ac | ||
| 35 | @@ -1535,6 +1535,11 @@ AC_ARG_WITH([roothomedir], | ||
| 36 | [], | ||
| 37 | [with_roothomedir=/root]) | ||
| 38 | |||
| 39 | +AC_ARG_WITH([testdir], | ||
| 40 | + AS_HELP_STRING([--with-testdir=DIR], [test file directory]), | ||
| 41 | + [], | ||
| 42 | + [with_testdir=${abs_top_srcdir}]) | ||
| 43 | + | ||
| 44 | AC_ARG_WITH([pamlibdir], | ||
| 45 | AS_HELP_STRING([--with-pamlibdir=DIR], [Directory for PAM modules]), | ||
| 46 | [], | ||
| 47 | @@ -1621,6 +1626,7 @@ AC_SUBST([pamconfdir], [$with_pamconfdir]) | ||
| 48 | AC_SUBST([rootprefix], [$with_rootprefix]) | ||
| 49 | AC_SUBST([rootlibdir], [$with_rootlibdir]) | ||
| 50 | AC_SUBST([roothomedir], [$with_roothomedir]) | ||
| 51 | +AC_SUBST([testdir], [$with_testdir]) | ||
| 52 | |||
| 53 | AC_CONFIG_FILES([ | ||
| 54 | Makefile | ||
| 55 | @@ -1712,6 +1718,7 @@ AC_MSG_RESULT([ | ||
| 56 | lib dir: ${libdir} | ||
| 57 | rootlib dir: ${with_rootlibdir} | ||
| 58 | root home dir: ${with_roothomedir} | ||
| 59 | + test dir: ${with_testdir} | ||
| 60 | SysV init scripts: ${SYSTEM_SYSVINIT_PATH} | ||
| 61 | SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} | ||
| 62 | Build Python: ${PYTHON} | ||
| 63 | -- | ||
| 64 | 2.10.2 | ||
| 65 | |||
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 index 548ffe03e6..067b73ff35 100644 --- 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 | |||
| @@ -1,22 +1,23 @@ | |||
| 1 | From 7cc0b19d244023c7b3e557765b03b7971e047f29 Mon Sep 17 00:00:00 2001 | 1 | From 1355457092b02a15c646fc1c72e68b694a86dd99 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Mon, 22 Feb 2016 06:02:38 +0000 | 3 | Date: Mon, 22 Feb 2016 06:02:38 +0000 |
| 4 | Subject: [PATCH 18/19] check for uchar.h in configure | 4 | Subject: [PATCH 12/14] check for uchar.h in configure |
| 5 | 5 | ||
| 6 | Use ifdef to include uchar.h | 6 | Use ifdef to include uchar.h |
| 7 | 7 | ||
| 8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 9 | Upstream-Status: Pending | 9 | Upstream-Status: Pending |
| 10 | |||
| 10 | --- | 11 | --- |
| 11 | configure.ac | 1 + | 12 | configure.ac | 1 + |
| 12 | src/basic/missing.h | 2 ++ | 13 | src/basic/missing.h | 2 ++ |
| 13 | 2 files changed, 3 insertions(+) | 14 | 2 files changed, 3 insertions(+) |
| 14 | 15 | ||
| 15 | diff --git a/configure.ac b/configure.ac | 16 | diff --git a/configure.ac b/configure.ac |
| 16 | index b12e320..4e6dfdf 100644 | 17 | index 1150ca50e..60e7df5ee 100644 |
| 17 | --- a/configure.ac | 18 | --- a/configure.ac |
| 18 | +++ b/configure.ac | 19 | +++ b/configure.ac |
| 19 | @@ -298,6 +298,7 @@ AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"]) | 20 | @@ -304,6 +304,7 @@ AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"]) |
| 20 | 21 | ||
| 21 | # ------------------------------------------------------------------------------ | 22 | # ------------------------------------------------------------------------------ |
| 22 | 23 | ||
| @@ -25,12 +26,12 @@ index b12e320..4e6dfdf 100644 | |||
| 25 | AC_CHECK_HEADERS([linux/btrfs.h], [], []) | 26 | AC_CHECK_HEADERS([linux/btrfs.h], [], []) |
| 26 | AC_CHECK_HEADERS([linux/memfd.h], [], []) | 27 | AC_CHECK_HEADERS([linux/memfd.h], [], []) |
| 27 | diff --git a/src/basic/missing.h b/src/basic/missing.h | 28 | diff --git a/src/basic/missing.h b/src/basic/missing.h |
| 28 | index 4936873..ce79404 100644 | 29 | index 25a11f351..d631b7e3e 100644 |
| 29 | --- a/src/basic/missing.h | 30 | --- a/src/basic/missing.h |
| 30 | +++ b/src/basic/missing.h | 31 | +++ b/src/basic/missing.h |
| 31 | @@ -35,7 +35,9 @@ | 32 | @@ -37,7 +37,9 @@ |
| 32 | #include <stdlib.h> | ||
| 33 | #include <sys/resource.h> | 33 | #include <sys/resource.h> |
| 34 | #include <sys/socket.h> | ||
| 34 | #include <sys/syscall.h> | 35 | #include <sys/syscall.h> |
| 35 | +#ifdef HAVE_UCHAR_H | 36 | +#ifdef HAVE_UCHAR_H |
| 36 | #include <uchar.h> | 37 | #include <uchar.h> |
| @@ -39,5 +40,5 @@ index 4936873..ce79404 100644 | |||
| 39 | 40 | ||
| 40 | #ifdef HAVE_AUDIT | 41 | #ifdef HAVE_AUDIT |
| 41 | -- | 42 | -- |
| 42 | 2.10.2 | 43 | 2.13.2 |
| 43 | 44 | ||
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/0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch index 66aa4cab84..b609276201 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/0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch | |||
| @@ -1,18 +1,19 @@ | |||
| 1 | From 289554d87e4fd96cae08c0fb449bf41d5641cd24 Mon Sep 17 00:00:00 2001 | 1 | From b7c6bfe2ec5ae426e586e1d6ecadb52a97128a3f Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Wed, 9 Nov 2016 20:49:53 -0800 | 3 | Date: Wed, 9 Nov 2016 20:49:53 -0800 |
| 4 | Subject: [PATCH 19/19] socket-util: don't fail if libc doesn't support IDN | 4 | Subject: [PATCH 13/14] socket-util: don't fail if libc doesn't support IDN |
| 5 | 5 | ||
| 6 | Upstream-Status: Pending | 6 | Upstream-Status: Pending |
| 7 | 7 | ||
| 8 | Signed-off-by: Emil Renner Berthing <systemd@esmil.dk> | 8 | Signed-off-by: Emil Renner Berthing <systemd@esmil.dk> |
| 9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 10 | |||
| 10 | --- | 11 | --- |
| 11 | src/basic/socket-util.c | 9 +++++++++ | 12 | src/basic/socket-util.c | 9 +++++++++ |
| 12 | 1 file changed, 9 insertions(+) | 13 | 1 file changed, 9 insertions(+) |
| 13 | 14 | ||
| 14 | diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c | 15 | diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c |
| 15 | index 4ebf106..53b9a12 100644 | 16 | index 016e64aa0..d4658826e 100644 |
| 16 | --- a/src/basic/socket-util.c | 17 | --- a/src/basic/socket-util.c |
| 17 | +++ b/src/basic/socket-util.c | 18 | +++ b/src/basic/socket-util.c |
| 18 | @@ -47,6 +47,15 @@ | 19 | @@ -47,6 +47,15 @@ |
| @@ -29,8 +30,8 @@ index 4ebf106..53b9a12 100644 | |||
| 29 | +#define NI_IDN_USE_STD3_ASCII_RULES 0 | 30 | +#define NI_IDN_USE_STD3_ASCII_RULES 0 |
| 30 | +#endif | 31 | +#endif |
| 31 | 32 | ||
| 32 | int socket_address_parse(SocketAddress *a, const char *s) { | 33 | #ifdef ENABLE_IDN |
| 33 | char *e, *n; | 34 | # define IDN_FLAGS (NI_IDN|NI_IDN_USE_STD3_ASCII_RULES) |
| 34 | -- | 35 | -- |
| 35 | 2.10.2 | 36 | 2.13.2 |
| 36 | 37 | ||
diff --git a/meta/recipes-core/systemd/systemd/0020-back-port-233-don-t-use-the-unified-hierarchy-for-the-systemd.patch b/meta/recipes-core/systemd/systemd/0020-back-port-233-don-t-use-the-unified-hierarchy-for-the-systemd.patch deleted file mode 100644 index e96d4d7803..0000000000 --- a/meta/recipes-core/systemd/systemd/0020-back-port-233-don-t-use-the-unified-hierarchy-for-the-systemd.patch +++ /dev/null | |||
| @@ -1,53 +0,0 @@ | |||
| 1 | This is a direct backport from systemd-233's stream to fix lxc/docker. | ||
| 2 | |||
| 3 | % lxc-start -n container -F | ||
| 4 | lxc-start: cgfsng.c: parse_hierarchies: 825 Failed to find current cgroup for controller 'name=systemd' | ||
| 5 | lxc-start: cgfsng.c: all_controllers_found: 431 no systemd controller mountpoint found | ||
| 6 | lxc-start: start.c: lxc_spawn: 1082 failed initializing cgroup support | ||
| 7 | lxc-start: start.c: __lxc_start: 1332 failed to spawn 'container' | ||
| 8 | lxc-start: lxc_start.c: main: 344 The container failed to start. | ||
| 9 | lxc-start: lxc_start.c: main: 348 Additional information can be obtained by setting the --logfile and --logpriority options. | ||
| 10 | |||
| 11 | ## begin backport ## | ||
| 12 | |||
| 13 | From 843d5baf6aad6c53fc00ea8d95d83209a4f92de1 Mon Sep 17 00:00:00 2001 | ||
| 14 | From: Martin Pitt <martin.pitt@ubuntu.com> | ||
| 15 | Date: Thu, 10 Nov 2016 05:33:13 +0100 | ||
| 16 | Subject: [PATCH] core: don't use the unified hierarchy for the systemd cgroup | ||
| 17 | yet (#4628) | ||
| 18 | |||
| 19 | Too many things don't get along with the unified hierarchy yet: | ||
| 20 | |||
| 21 | * https://github.com/opencontainers/runc/issues/1175 | ||
| 22 | * https://github.com/docker/docker/issues/28109 | ||
| 23 | * https://github.com/lxc/lxc/issues/1280 | ||
| 24 | |||
| 25 | So revert the default to the legacy hierarchy for now. Developers of the above | ||
| 26 | software can opt into the unified hierarchy with | ||
| 27 | "systemd.legacy_systemd_cgroup_controller=0". | ||
| 28 | |||
| 29 | Upstream-Status: Backport | ||
| 30 | --- | ||
| 31 | src/basic/cgroup-util.c | 4 ++-- | ||
| 32 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
| 33 | |||
| 34 | diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c | ||
| 35 | index 5e73753..dc13025 100644 | ||
| 36 | --- a/src/basic/cgroup-util.c | ||
| 37 | +++ b/src/basic/cgroup-util.c | ||
| 38 | @@ -2423,10 +2423,10 @@ bool cg_is_unified_systemd_controller_wanted(void) { | ||
| 39 | |||
| 40 | r = get_proc_cmdline_key("systemd.legacy_systemd_cgroup_controller=", &value); | ||
| 41 | if (r < 0) | ||
| 42 | - return true; | ||
| 43 | + return false; | ||
| 44 | |||
| 45 | if (r == 0) | ||
| 46 | - wanted = true; | ||
| 47 | + wanted = false; | ||
| 48 | else | ||
| 49 | wanted = parse_boolean(value) <= 0; | ||
| 50 | } | ||
| 51 | -- | ||
| 52 | 2.10.1 | ||
| 53 | |||
diff --git a/meta/recipes-core/systemd/systemd/0021-build-sys-check-for-lz4-in-the-old-and-new-numbering.patch b/meta/recipes-core/systemd/systemd/0021-build-sys-check-for-lz4-in-the-old-and-new-numbering.patch deleted file mode 100644 index a7d7461bc8..0000000000 --- a/meta/recipes-core/systemd/systemd/0021-build-sys-check-for-lz4-in-the-old-and-new-numbering.patch +++ /dev/null | |||
| @@ -1,51 +0,0 @@ | |||
| 1 | From 8200002233bd40acda4bbfb991a31d87f4224fea Mon Sep 17 00:00:00 2001 | ||
| 2 | From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> | ||
| 3 | Date: Wed, 23 Nov 2016 10:18:30 -0500 | ||
| 4 | Subject: [PATCH 21/21] build-sys: check for lz4 in the old and new numbering | ||
| 5 | scheme (#4717) | ||
| 6 | MIME-Version: 1.0 | ||
| 7 | Content-Type: text/plain; charset=UTF-8 | ||
| 8 | Content-Transfer-Encoding: 8bit | ||
| 9 | |||
| 10 | lz4 upstream decided to switch to an incompatible numbering scheme | ||
| 11 | (1.7.3 follows 131, to match the so version). | ||
| 12 | PKG_CHECK_MODULES does not allow two version matches for the same package, | ||
| 13 | so e.g. lz4 < 10 || lz4 >= 125 cannot be used. Check twice, once for | ||
| 14 | "new" numbers (anything below 10 is assume to be new), once for the "old" | ||
| 15 | numbers (anything above >= 125). This assumes that the "new" versioning | ||
| 16 | will not get to 10 to quickly. I think that's a safe assumption, lz4 is a | ||
| 17 | mature project. | ||
| 18 | |||
| 19 | Fixed #4690. | ||
| 20 | |||
| 21 | Upstream-Status: Backport | ||
| 22 | |||
| 23 | Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> | ||
| 24 | --- | ||
| 25 | configure.ac | 9 ++++++--- | ||
| 26 | 1 file changed, 6 insertions(+), 3 deletions(-) | ||
| 27 | |||
| 28 | diff --git a/configure.ac b/configure.ac | ||
| 29 | index 279ce28..782b5d7 100644 | ||
| 30 | --- a/configure.ac | ||
| 31 | +++ b/configure.ac | ||
| 32 | @@ -640,10 +640,13 @@ AM_CONDITIONAL(HAVE_BZIP2, [test "$have_bzip2" = "yes"]) | ||
| 33 | have_lz4=no | ||
| 34 | AC_ARG_ENABLE(lz4, AS_HELP_STRING([--disable-lz4], [Disable optional LZ4 support])) | ||
| 35 | AS_IF([test "x$enable_lz4" != "xno"], [ | ||
| 36 | - PKG_CHECK_MODULES(LZ4, [ liblz4 >= 125 ], | ||
| 37 | - [AC_DEFINE(HAVE_LZ4, 1, [Define in LZ4 is available]) | ||
| 38 | + PKG_CHECK_MODULES(LZ4, [ liblz4 < 10 ], | ||
| 39 | + [AC_DEFINE(HAVE_LZ4, 1, [Define if LZ4 is available]) | ||
| 40 | have_lz4=yes], | ||
| 41 | - have_lz4=no) | ||
| 42 | + [PKG_CHECK_MODULES(LZ4, [ liblz4 >= 125 ], | ||
| 43 | + [AC_DEFINE(HAVE_LZ4, 1, [Define if LZ4 is available]) | ||
| 44 | + have_lz4=yes], | ||
| 45 | + have_lz4=no)]) | ||
| 46 | AS_IF([test "x$have_lz4" = xno -a "x$enable_lz4" = xyes], | ||
| 47 | [AC_MSG_ERROR([*** LZ4 support requested but libraries not found])]) | ||
| 48 | ]) | ||
| 49 | -- | ||
| 50 | 1.9.1 | ||
| 51 | |||
diff --git a/meta/recipes-core/systemd/systemd/0022-parse-util-Do-not-include-unneeded-xlocale.h.patch b/meta/recipes-core/systemd/systemd/0022-parse-util-Do-not-include-unneeded-xlocale.h.patch deleted file mode 100644 index cad1867a4c..0000000000 --- a/meta/recipes-core/systemd/systemd/0022-parse-util-Do-not-include-unneeded-xlocale.h.patch +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | From 0c50b8332092178378257c2de800fb6b6b4a8706 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Mon, 3 Jul 2017 08:45:04 -0700 | ||
| 4 | Subject: [PATCH] parse-util: Do not include unneeded xlocale.h | ||
| 5 | |||
| 6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 7 | --- | ||
| 8 | Upstream-Status: Backport [ partial https://github.com/systemd/systemd/commit/284d1cd0a12cad96a5ea61d1afb0dd677dbd147e] | ||
| 9 | |||
| 10 | src/basic/parse-util.c | 1 - | ||
| 11 | 1 file changed, 1 deletion(-) | ||
| 12 | |||
| 13 | diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c | ||
| 14 | index c98815b9b..a0eb45805 100644 | ||
| 15 | --- a/src/basic/parse-util.c | ||
| 16 | +++ b/src/basic/parse-util.c | ||
| 17 | @@ -23,7 +23,6 @@ | ||
| 18 | #include <stdio.h> | ||
| 19 | #include <stdlib.h> | ||
| 20 | #include <string.h> | ||
| 21 | -#include <xlocale.h> | ||
| 22 | |||
| 23 | #include "alloc-util.h" | ||
| 24 | #include "extract-word.h" | ||
| 25 | -- | ||
| 26 | 2.13.2 | ||
| 27 | |||
diff --git a/meta/recipes-core/systemd/systemd_232.bb b/meta/recipes-core/systemd/systemd_234.bb index a59ee74092..ad7fc99b90 100644 --- a/meta/recipes-core/systemd/systemd_232.bb +++ b/meta/recipes-core/systemd/systemd_234.bb | |||
| @@ -25,14 +25,9 @@ SRC_URI += " \ | |||
| 25 | file://0013-Make-root-s-home-directory-configurable.patch \ | 25 | file://0013-Make-root-s-home-directory-configurable.patch \ |
| 26 | file://0014-Revert-rules-remove-firmware-loading-rules.patch \ | 26 | file://0014-Revert-rules-remove-firmware-loading-rules.patch \ |
| 27 | file://0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch \ | 27 | file://0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch \ |
| 28 | file://0016-make-test-dir-configurable.patch \ | ||
| 29 | file://0017-remove-duplicate-include-uchar.h.patch \ | 28 | file://0017-remove-duplicate-include-uchar.h.patch \ |
| 30 | file://0018-check-for-uchar.h-in-configure.patch \ | 29 | file://0018-check-for-uchar.h-in-configure.patch \ |
| 31 | file://0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \ | 30 | file://0019-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \ |
| 32 | file://0020-back-port-233-don-t-use-the-unified-hierarchy-for-the-systemd.patch \ | ||
| 33 | file://0021-build-sys-check-for-lz4-in-the-old-and-new-numbering.patch \ | ||
| 34 | file://0022-parse-util-Do-not-include-unneeded-xlocale.h.patch \ | ||
| 35 | file://0001-core-load-fragment-refuse-units-with-errors-in-certa.patch \ | ||
| 36 | " | 31 | " |
| 37 | SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch" | 32 | SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch" |
| 38 | 33 | ||
| @@ -151,7 +146,6 @@ EXTRA_OECONF = " --with-rootprefix=${rootprefix} \ | |||
| 151 | --without-python \ | 146 | --without-python \ |
| 152 | --with-sysvrcnd-path=${sysconfdir} \ | 147 | --with-sysvrcnd-path=${sysconfdir} \ |
| 153 | --with-firmware-path=${nonarch_base_libdir}/firmware \ | 148 | --with-firmware-path=${nonarch_base_libdir}/firmware \ |
| 154 | --with-testdir=${PTEST_PATH} \ | ||
| 155 | " | 149 | " |
| 156 | # per the systemd README, define VALGRIND=1 to run under valgrind | 150 | # per the systemd README, define VALGRIND=1 to run under valgrind |
| 157 | CFLAGS .= "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', ' -DVALGRIND=1', '', d)}" | 151 | CFLAGS .= "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', ' -DVALGRIND=1', '', d)}" |
| @@ -471,11 +465,20 @@ FILES_${PN} = " ${base_bindir}/* \ | |||
| 471 | ${exec_prefix}/lib/modules-load.d \ | 465 | ${exec_prefix}/lib/modules-load.d \ |
| 472 | ${exec_prefix}/lib/sysctl.d \ | 466 | ${exec_prefix}/lib/sysctl.d \ |
| 473 | ${exec_prefix}/lib/sysusers.d \ | 467 | ${exec_prefix}/lib/sysusers.d \ |
| 468 | ${exec_prefix}/lib/environment.d \ | ||
| 474 | ${localstatedir} \ | 469 | ${localstatedir} \ |
| 475 | ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \ | 470 | ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \ |
| 476 | ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \ | 471 | ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \ |
| 477 | ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \ | 472 | ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \ |
| 478 | ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \ | 473 | ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \ |
| 474 | ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \ | ||
| 475 | ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \ | ||
| 476 | ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \ | ||
| 477 | ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ | ||
| 478 | ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ | ||
| 479 | ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \ | ||
| 480 | ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \ | ||
| 481 | ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \ | ||
| 479 | " | 482 | " |
| 480 | 483 | ||
| 481 | FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd" | 484 | FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd" |
