Sorry, but that is not a good answer. If the next version upgrade is a pain because of those patches, I will actually make a patch that drops them. Alex On Tue, 25 May 2021 at 15:52, Khem Raj wrote: > > > On Tuesday, May 25, 2021, Alexander Kanavin > wrote: > >> I have to ask: should musl patches for systemd be maintained separately? >> It's a big pile, they aren't accepted by upstream, they aren't tested on >> the AB (hence I didn't even notice the breakage), and they cause rebase >> problems at every version upgrade. >> >> I would propose that a separate recipe is made that takes the sources >> from a repo, rather than carry the patches in oe-core. >> > > It’s fine as it is > > >> >> Alex >> >> On Tue, 25 May 2021 at 03:41, Khem Raj wrote: >> >> since master-next broke my CI, I have sent a fix on top of this. >> Please include that >> >> On Mon, May 24, 2021 at 5:18 PM Khem Raj wrote: >> > >> > Fails to compile for musl >> > >> > https://errors.yoctoproject.org/Errors/Details/585507/ >> > >> > src/basic/percent-util.c source file needs to include >> > >> > #include "missing_stdlib.h" >> > >> > like other files in >> 0005-src-basic-missing.h-check-for-missing-strndupa.patch >> > >> > On Mon, May 24, 2021 at 2:14 AM Alexander Kanavin >> > wrote: >> > > >> > > Drop backports: >> > > 48fff0a2af3f62acd446ebec8081b039b72caad8.patch >> > > 7c5fd25119a495009ea62f79e5daec34cc464628.patch >> > > 0001-analyze-resolve-executable-path-if-it-is-relative.patch >> > > 0001-analyze-resolve-executable-path-if-it-is-relative.patch >> > > >> > > Drop 0027-proc-dont-trigger-mount-error-with-invalid-options-o.patch >> > > as difficult to rebase; please resend if you feel strongly that >> > > it is needed. >> > > >> > > Rebase the big pile of musl patches. >> > > >> > > Signed-off-by: Alexander Kanavin >> > > --- >> > > ...f0a2af3f62acd446ebec8081b039b72caad8.patch | 179 -------------- >> > > ...d25119a495009ea62f79e5daec34cc464628.patch | 53 ---- >> > > ...md-boot_247.6.bb => systemd-boot_248.3.bb} | 0 >> > > meta/recipes-core/systemd/systemd.inc | 6 +- >> > > ...ve-executable-path-if-it-is-relative.patch | 39 --- >> > > ...chvt-as-non-root-user-without-polkit.patch | 227 >> ------------------ >> > > ...002-don-t-use-glibc-specific-qsort_r.patch | 29 ++- >> > > ...dd-__compare_fn_t-and-comparison_fn_.patch | 26 +- >> > > ...k-parse_printf_format-implementation.patch | 46 ++-- >> > > ...missing.h-check-for-missing-strndupa.patch | 204 ++++++++++++---- >> > > .../0006-Include-netinet-if_ether.h.patch | 56 +++-- >> > > ...OB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch | 17 +- >> > > ...008-add-missing-FTW_-macros-for-musl.patch | 8 +- >> > > ..._register_atfork-for-non-glibc-build.patch | 12 +- >> > > ...10-Use-uintmax_t-for-handling-rlim_t.patch | 18 +- >> > > ...sable-tests-for-missing-typedefs-in-.patch | 9 +- >> > > ...T_SYMLINK_NOFOLLOW-flag-to-faccessat.patch | 19 +- >> > > ...patible-basename-for-non-glibc-syste.patch | 11 +- >> > > ...uffering-when-writing-to-oom_score_a.patch | 12 +- >> > > ...compliant-strerror_r-from-GNU-specif.patch | 46 ++-- >> > > ...S_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch | 8 +- >> > > ...ype.h-add-__compar_d_fn_t-definition.patch | 8 +- >> > > ...definition-of-prctl_mm_map-structure.patch | 8 +- >> > > .../systemd/0019-Handle-missing-LOCK_EX.patch | 10 +- >> > > ...ible-pointer-type-struct-sockaddr_un.patch | 12 +- >> > > .../0021-test-json.c-define-M_PIl.patch | 8 +- >> > > ...-not-disable-buffer-in-writing-files.patch | 116 ++++----- >> > > .../0025-Handle-__cpu_mask-usage.patch | 8 +- >> > > .../systemd/0026-Handle-missing-gshadow.patch | 20 +- >> > > ...r-mount-error-with-invalid-options-o.patch | 97 -------- >> > > ...l.h-Define-MIPS-ABI-defines-for-musl.patch | 16 +- >> > > .../{systemd_247.6.bb => systemd_248.3.bb} | 11 +- >> > > 32 files changed, 388 insertions(+), 951 deletions(-) >> > > delete mode 100644 >> meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch >> > > delete mode 100644 >> meta/recipes-core/systemd/files/7c5fd25119a495009ea62f79e5daec34cc464628.patch >> > > rename meta/recipes-core/systemd/{systemd-boot_247.6.bb => >> systemd-boot_248.3.bb} (100%) >> > > delete mode 100644 >> meta/recipes-core/systemd/systemd/0001-analyze-resolve-executable-path-if-it-is-relative.patch >> > > delete mode 100644 >> meta/recipes-core/systemd/systemd/0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch >> > > delete mode 100644 >> meta/recipes-core/systemd/systemd/0027-proc-dont-trigger-mount-error-with-invalid-options-o.patch >> > > rename meta/recipes-core/systemd/{systemd_247.6.bb => >> systemd_248.3.bb} (99%) >> > > >> > > diff --git >> a/meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch >> b/meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch >> > > deleted file mode 100644 >> > > index e3ce296741..0000000000 >> > > --- >> a/meta/recipes-core/systemd/files/48fff0a2af3f62acd446ebec8081b039b72caad8.patch >> > > +++ /dev/null >> > > @@ -1,179 +0,0 @@ >> > > -From 48fff0a2af3f62acd446ebec8081b039b72caad8 Mon Sep 17 00:00:00 >> 2001 >> > > -From: Daan De Meyer >> > > -Date: Fri, 12 Mar 2021 22:09:44 +0000 >> > > -Subject: [PATCH] boot: Move console declarations to missing_efi.h >> > > - >> > > -These were added to eficonex.h in gnu-efi 3.0.13. Let's move them >> > > -to missing_efi.h behind an appropriate guard to fix the build with >> > > -recent versions of gnu-efi. >> > > - >> > > -(cherry picked from commit 95ba433a5f34baf92921fb58051bc8241f908c0e) >> > > - >> > > -Upstream-Status: Backport >> > > -Signed-off-by: Alexander Kanavin >> > > ---- >> > > - src/boot/efi/console.c | 57 -------------------------------- >> > > - src/boot/efi/console.h | 6 +--- >> > > - src/boot/efi/missing_efi.h | 67 >> ++++++++++++++++++++++++++++++++++++++ >> > > - 3 files changed, 68 insertions(+), 62 deletions(-) >> > > - >> > > -diff --git a/src/boot/efi/console.c b/src/boot/efi/console.c >> > > -index 2dd4543d51..1d6dfeeea2 100644 >> > > ---- a/src/boot/efi/console.c >> > > -+++ b/src/boot/efi/console.c >> > > -@@ -9,63 +9,6 @@ >> > > - #define SYSTEM_FONT_WIDTH 8 >> > > - #define SYSTEM_FONT_HEIGHT 19 >> > > - >> > > --#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \ >> > > -- { 0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, >> 0x17, 0xa6, 0x25, 0xaa } } >> > > -- >> > > --struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; >> > > -- >> > > --typedef EFI_STATUS (EFIAPI *EFI_INPUT_RESET_EX)( >> > > -- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -- BOOLEAN ExtendedVerification >> > > --); >> > > -- >> > > --typedef UINT8 EFI_KEY_TOGGLE_STATE; >> > > -- >> > > --typedef struct { >> > > -- UINT32 KeyShiftState; >> > > -- EFI_KEY_TOGGLE_STATE KeyToggleState; >> > > --} EFI_KEY_STATE; >> > > -- >> > > --typedef struct { >> > > -- EFI_INPUT_KEY Key; >> > > -- EFI_KEY_STATE KeyState; >> > > --} EFI_KEY_DATA; >> > > -- >> > > --typedef EFI_STATUS (EFIAPI *EFI_INPUT_READ_KEY_EX)( >> > > -- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -- EFI_KEY_DATA *KeyData >> > > --); >> > > -- >> > > --typedef EFI_STATUS (EFIAPI *EFI_SET_STATE)( >> > > -- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -- EFI_KEY_TOGGLE_STATE *KeyToggleState >> > > --); >> > > -- >> > > --typedef EFI_STATUS (EFIAPI *EFI_KEY_NOTIFY_FUNCTION)( >> > > -- EFI_KEY_DATA *KeyData >> > > --); >> > > -- >> > > --typedef EFI_STATUS (EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY)( >> > > -- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -- EFI_KEY_DATA KeyData, >> > > -- EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction, >> > > -- VOID **NotifyHandle >> > > --); >> > > -- >> > > --typedef EFI_STATUS (EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY)( >> > > -- struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -- VOID *NotificationHandle >> > > --); >> > > -- >> > > --typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL { >> > > -- EFI_INPUT_RESET_EX Reset; >> > > -- EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx; >> > > -- EFI_EVENT WaitForKeyEx; >> > > -- EFI_SET_STATE SetState; >> > > -- EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify; >> > > -- EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify; >> > > --} EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; >> > > -- >> > > - EFI_STATUS console_key_read(UINT64 *key, BOOLEAN wait) { >> > > - EFI_GUID EfiSimpleTextInputExProtocolGuid = >> EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID; >> > > - static EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInputEx; >> > > -diff --git a/src/boot/efi/console.h b/src/boot/efi/console.h >> > > -index 41df3a406e..2c69af552a 100644 >> > > ---- a/src/boot/efi/console.h >> > > -+++ b/src/boot/efi/console.h >> > > -@@ -1,11 +1,7 @@ >> > > - /* SPDX-License-Identifier: LGPL-2.1-or-later */ >> > > - #pragma once >> > > - >> > > --#define EFI_SHIFT_STATE_VALID 0x80000000 >> > > --#define EFI_RIGHT_CONTROL_PRESSED 0x00000004 >> > > --#define EFI_LEFT_CONTROL_PRESSED 0x00000008 >> > > --#define EFI_RIGHT_ALT_PRESSED 0x00000010 >> > > --#define EFI_LEFT_ALT_PRESSED 0x00000020 >> > > -+#include "missing_efi.h" >> > > - >> > > - #define EFI_CONTROL_PRESSED >> (EFI_RIGHT_CONTROL_PRESSED|EFI_LEFT_CONTROL_PRESSED) >> > > - #define EFI_ALT_PRESSED >> (EFI_RIGHT_ALT_PRESSED|EFI_LEFT_ALT_PRESSED) >> > > -diff --git a/src/boot/efi/missing_efi.h b/src/boot/efi/missing_efi.h >> > > -index 1b838af2a4..b6aae1eb5b 100644 >> > > ---- a/src/boot/efi/missing_efi.h >> > > -+++ b/src/boot/efi/missing_efi.h >> > > -@@ -53,3 +53,70 @@ typedef struct _EFI_RNG_PROTOCOL { >> > > - } EFI_RNG_PROTOCOL; >> > > - >> > > - #endif >> > > -+ >> > > -+#ifndef EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID >> > > -+ >> > > -+#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \ >> > > -+ { 0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, >> 0x17, 0xa6, 0x25, 0xaa } } >> > > -+ >> > > -+#define EFI_SHIFT_STATE_VALID 0x80000000 >> > > -+#define EFI_RIGHT_CONTROL_PRESSED 0x00000004 >> > > -+#define EFI_LEFT_CONTROL_PRESSED 0x00000008 >> > > -+#define EFI_RIGHT_ALT_PRESSED 0x00000010 >> > > -+#define EFI_LEFT_ALT_PRESSED 0x00000020 >> > > -+ >> > > -+struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; >> > > -+ >> > > -+typedef EFI_STATUS (EFIAPI *EFI_INPUT_RESET_EX)( >> > > -+ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -+ BOOLEAN ExtendedVerification >> > > -+); >> > > -+ >> > > -+typedef UINT8 EFI_KEY_TOGGLE_STATE; >> > > -+ >> > > -+typedef struct { >> > > -+ UINT32 KeyShiftState; >> > > -+ EFI_KEY_TOGGLE_STATE KeyToggleState; >> > > -+} EFI_KEY_STATE; >> > > -+ >> > > -+typedef struct { >> > > -+ EFI_INPUT_KEY Key; >> > > -+ EFI_KEY_STATE KeyState; >> > > -+} EFI_KEY_DATA; >> > > -+ >> > > -+typedef EFI_STATUS (EFIAPI *EFI_INPUT_READ_KEY_EX)( >> > > -+ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -+ EFI_KEY_DATA *KeyData >> > > -+); >> > > -+ >> > > -+typedef EFI_STATUS (EFIAPI *EFI_SET_STATE)( >> > > -+ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -+ EFI_KEY_TOGGLE_STATE *KeyToggleState >> > > -+); >> > > -+ >> > > -+typedef EFI_STATUS (EFIAPI *EFI_KEY_NOTIFY_FUNCTION)( >> > > -+ EFI_KEY_DATA *KeyData >> > > -+); >> > > -+ >> > > -+typedef EFI_STATUS (EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY)( >> > > -+ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -+ EFI_KEY_DATA KeyData, >> > > -+ EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction, >> > > -+ VOID **NotifyHandle >> > > -+); >> > > -+ >> > > -+typedef EFI_STATUS (EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY)( >> > > -+ struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, >> > > -+ VOID *NotificationHandle >> > > -+); >> > > -+ >> > > -+typedef struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL { >> > > -+ EFI_INPUT_RESET_EX Reset; >> > > -+ EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx; >> > > -+ EFI_EVENT WaitForKeyEx; >> > > -+ EFI_SET_STATE SetState; >> > > -+ EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify; >> > > -+ EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify; >> > > -+} EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL; >> > > -+ >> > > -+#endif >> > > diff --git >> a/meta/recipes-core/systemd/files/7c5fd25119a495009ea62f79e5daec34cc464628.patch >> b/meta/recipes-core/systemd/files/7c5fd25119a495009ea62f79e5daec34cc464628.patch >> > > deleted file mode 100644 >> > > index ae449791f1..0000000000 >> > > --- >> a/meta/recipes-core/systemd/files/7c5fd25119a495009ea62f79e5daec34cc464628.patch >> > > +++ /dev/null >> > > @@ -1,53 +0,0 @@ >> > > -From 7c5fd25119a495009ea62f79e5daec34cc464628 Mon Sep 17 00:00:00 >> 2001 >> > > -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= < >> zbyszek@in.waw.pl> >> > > -Date: Mon, 12 Apr 2021 14:03:32 +0200 >> > > -Subject: [PATCH] meson: do not fail if rsync is not installed with >> meson >> > > - 0.57.2 >> > > - >> > > -https://github.com/mesonbuild/meson/issues/8641 >> > > - >> > > -Our CI started to fail. Even if the change is reverted in meson, >> > > -we need a quick workaround here. >> > > - >> > > -Upstream-Status: Backport >> > > -Signed-off-by: Alexander Kanavin >> > > ---- >> > > - man/meson.build | 25 ++++++++++++++----------- >> > > - 1 file changed, 14 insertions(+), 11 deletions(-) >> > > - >> > > -diff --git a/man/meson.build b/man/meson.build >> > > -index 3cae8446cda..f9c4b83dc81 100644 >> > > ---- a/man/meson.build >> > > -+++ b/man/meson.build >> > > -@@ -184,17 +184,20 @@ html = custom_target( >> > > - depends : html_pages, >> > > - command : ['echo']) >> > > - >> > > --run_target( >> > > -- 'doc-sync', >> > > -- depends : man_pages + html_pages, >> > > -- command : ['rsync', '-rlv', >> > > -- '--delete-excluded', >> > > -- '--include=man', >> > > -- '--include=*.html', >> > > -- '--exclude=*', >> > > -- '--omit-dir-times', >> > > -- meson.current_build_dir(), >> > > -- get_option('www-target')]) >> > > -+rsync = find_program('rsync', required : false) >> > > -+if rsync.found() >> > > -+ run_target( >> > > -+ 'doc-sync', >> > > -+ depends : man_pages + html_pages, >> > > -+ command : [rsync, '-rlv', >> > > -+ '--delete-excluded', >> > > -+ '--include=man', >> > > -+ '--include=*.html', >> > > -+ '--exclude=*', >> > > -+ '--omit-dir-times', >> > > -+ meson.current_build_dir(), >> > > -+ get_option('www-target')]) >> > > -+endif >> > > - >> > > - ############################################################ >> > > - >> > > diff --git a/meta/recipes-core/systemd/systemd-boot_247.6.bb >> b/meta/recipes-core/systemd/systemd-boot_248.3.bb >> > > similarity index 100% >> > > rename from meta/recipes-core/systemd/systemd-boot_247.6.bb >> > > rename to meta/recipes-core/systemd/systemd-boot_248.3.bb >> > > diff --git a/meta/recipes-core/systemd/systemd.inc >> b/meta/recipes-core/systemd/systemd.inc >> > > index 88dddb309c..0524a25008 100644 >> > > --- a/meta/recipes-core/systemd/systemd.inc >> > > +++ b/meta/recipes-core/systemd/systemd.inc >> > > @@ -14,11 +14,9 @@ LICENSE = "GPLv2 & LGPLv2.1" >> > > LIC_FILES_CHKSUM = >> "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ >> > > >> file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" >> > > >> > > -SRCREV = "17472dca0160cbe7b807ca648475fd70d0d62fe5" >> > > -SRCBRANCH = "v247-stable" >> > > +SRCREV = "37c4cfde0ce613f0f00544d3f4e2e72bf93d9c76" >> > > +SRCBRANCH = "v248-stable" >> > > SRC_URI = "git:// >> github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH} >> >> \ >> > > - file://7c5fd25119a495009ea62f79e5daec34cc464628.patch \ >> > > - file://48fff0a2af3f62acd446ebec8081b039b72caad8.patch \ >> > > " >> > > >> > > S = "${WORKDIR}/git" >> > > diff --git >> a/meta/recipes-core/systemd/systemd/0001-analyze-resolve-executable-path-if-it-is-relative.patch >> b/meta/recipes-core/systemd/systemd/0001-analyze-resolve-executable-path-if-it-is-relative.patch >> > > deleted file mode 100644 >> > > index fd7f94a61d..0000000000 >> > > --- >> a/meta/recipes-core/systemd/systemd/0001-analyze-resolve-executable-path-if-it-is-relative.patch >> > > +++ /dev/null >> > > @@ -1,39 +0,0 @@ >> > > -From b9b7a8e3825f0433e120f7a6d7d5d635a839cab9 Mon Sep 17 00:00:00 >> 2001 >> > > -From: Mingli Yu >> > > -Date: Thu, 21 Jan 2021 06:19:44 +0000 >> > > -Subject: [PATCH] analyze: resolve executable path if it is relative >> > > - >> > > -Upstream-Status: Backport [ >> https://github.com/systemd/systemd/commit/f1fb046a985521f7d4a662f02546686ff20b7e5d >> ] >> > > - >> > > -Signed-off-by: Mingli Yu >> > > ---- >> > > - src/analyze/analyze-verify.c | 7 +++++-- >> > > - 1 file changed, 5 insertions(+), 2 deletions(-) >> > > - >> > > -diff --git a/src/analyze/analyze-verify.c >> b/src/analyze/analyze-verify.c >> > > -index a9c89173bf..969523df18 100644 >> > > ---- a/src/analyze/analyze-verify.c >> > > -+++ b/src/analyze/analyze-verify.c >> > > -@@ -115,14 +115,17 @@ static int verify_socket(Unit *u) { >> > > - } >> > > - >> > > - int verify_executable(Unit *u, const ExecCommand *exec) { >> > > -+ int r; >> > > -+ >> > > - if (!exec) >> > > - return 0; >> > > - >> > > - if (exec->flags & EXEC_COMMAND_IGNORE_FAILURE) >> > > - return 0; >> > > - >> > > -- if (access(exec->path, X_OK) < 0) >> > > -- return log_unit_error_errno(u, errno, "Command %s >> is not executable: %m", exec->path); >> > > -+ r = find_executable_full(exec->path, false, NULL); >> > > -+ if (r < 0) >> > > -+ return log_unit_error_errno(u, r, "Command %s is >> not executable: %m", exec->path); >> > > - >> > > - return 0; >> > > - } >> > > --- >> > > -2.26.2 >> > > - >> > > diff --git >> a/meta/recipes-core/systemd/systemd/0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch >> b/meta/recipes-core/systemd/systemd/0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch >> > > deleted file mode 100644 >> > > index 89ef39bc3e..0000000000 >> > > --- >> a/meta/recipes-core/systemd/systemd/0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch >> > > +++ /dev/null >> > > @@ -1,227 +0,0 @@ >> > > -From 150d9cade6d475570395cb418b824524dead9577 Mon Sep 17 00:00:00 >> 2001 >> > > -From: Joshua Watt >> > > -Date: Fri, 30 Oct 2020 08:15:43 -0500 >> > > -Subject: [PATCH] logind: Restore chvt as non-root user without polkit >> > > - >> > > -4acf0cfd2f ("logind: check PolicyKit before allowing VT switch") >> broke >> > > -the ability to write user sessions that run graphical sessions (e.g. >> > > -weston/X11). This was partially amended in 19bb87fbfa ("login: allow >> > > -non-console sessions to change vt") by changing the default PolicyKit >> > > -policy so that non-root users are again allowed to switch the VT. >> This >> > > -makes the policy when PolKit is not enabled (as on many embedded >> > > -systems) match the default PolKit policy and allows launching >> graphical >> > > -sessions as a non-root user. >> > > - >> > > -Closes #17473 >> > > ---- >> > > - src/login/logind-dbus.c | 11 ++------- >> > > - src/login/logind-polkit.c | 26 +++++++++++++++++++++ >> > > - src/login/logind-polkit.h | 10 ++++++++ >> > > - src/login/logind-seat-dbus.c | 41 >> ++++----------------------------- >> > > - src/login/logind-session-dbus.c | 11 ++------- >> > > - src/login/meson.build | 1 + >> > > - 6 files changed, 46 insertions(+), 54 deletions(-) >> > > - create mode 100644 src/login/logind-polkit.c >> > > - create mode 100644 src/login/logind-polkit.h >> > > - >> > > -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c >> > > -index 0f83ed99bc..a3765d88ba 100644 >> > > ---- a/src/login/logind-dbus.c >> > > -+++ b/src/login/logind-dbus.c >> > > -@@ -30,6 +30,7 @@ >> > > - #include "format-util.h" >> > > - #include "fs-util.h" >> > > - #include "logind-dbus.h" >> > > -+#include "logind-polkit.h" >> > > - #include "logind-seat-dbus.h" >> > > - #include "logind-session-dbus.h" >> > > - #include "logind-user-dbus.h" >> > > -@@ -1047,15 +1048,7 @@ static int >> method_activate_session_on_seat(sd_bus_message *message, void *userda >> > > - return sd_bus_error_setf(error, >> BUS_ERROR_SESSION_NOT_ON_SEAT, >> > > - "Session %s not on seat >> %s", session_name, seat_name); >> > > - >> > > -- r = bus_verify_polkit_async( >> > > -- message, >> > > -- CAP_SYS_ADMIN, >> > > -- "org.freedesktop.login1.chvt", >> > > -- NULL, >> > > -- false, >> > > -- UID_INVALID, >> > > -- &m->polkit_registry, >> > > -- error); >> > > -+ r = check_polkit_chvt(message, m, error); >> > > - if (r < 0) >> > > - return r; >> > > - if (r == 0) >> > > -diff --git a/src/login/logind-polkit.c b/src/login/logind-polkit.c >> > > -new file mode 100644 >> > > -index 0000000000..9072570cc6 >> > > ---- /dev/null >> > > -+++ b/src/login/logind-polkit.c >> > > -@@ -0,0 +1,26 @@ >> > > -+/* SPDX-License-Identifier: LGPL-2.1+ */ >> > > -+ >> > > -+#include "bus-polkit.h" >> > > -+#include "logind-polkit.h" >> > > -+#include "missing_capability.h" >> > > -+#include "user-util.h" >> > > -+ >> > > -+int check_polkit_chvt(sd_bus_message *message, Manager *manager, >> sd_bus_error *error) { >> > > -+#if ENABLE_POLKIT >> > > -+ return bus_verify_polkit_async( >> > > -+ message, >> > > -+ CAP_SYS_ADMIN, >> > > -+ "org.freedesktop.login1.chvt", >> > > -+ NULL, >> > > -+ false, >> > > -+ UID_INVALID, >> > > -+ &manager->polkit_registry, >> > > -+ error); >> > > -+#else >> > > -+ /* Allow chvt when polkit is not present. This allows a >> service to start a graphical session as a >> > > -+ * non-root user when polkit is not compiled in, matching >> the default polkit policy */ >> > > -+ return 1; >> > > -+#endif >> > > -+} >> > > -+ >> > > -+ >> > > -diff --git a/src/login/logind-polkit.h b/src/login/logind-polkit.h >> > > -new file mode 100644 >> > > -index 0000000000..476c077a8a >> > > ---- /dev/null >> > > -+++ b/src/login/logind-polkit.h >> > > -@@ -0,0 +1,10 @@ >> > > -+/* SPDX-License-Identifier: LGPL-2.1+ */ >> > > -+#pragma once >> > > -+ >> > > -+#include "sd-bus.h" >> > > -+ >> > > -+#include "bus-object.h" >> > > -+#include "logind.h" >> > > -+ >> > > -+int check_polkit_chvt(sd_bus_message *message, Manager *manager, >> sd_bus_error *error); >> > > -+ >> > > -diff --git a/src/login/logind-seat-dbus.c >> b/src/login/logind-seat-dbus.c >> > > -index a945132284..f22e9e2734 100644 >> > > ---- a/src/login/logind-seat-dbus.c >> > > -+++ b/src/login/logind-seat-dbus.c >> > > -@@ -9,6 +9,7 @@ >> > > - #include "bus-polkit.h" >> > > - #include "bus-util.h" >> > > - #include "logind-dbus.h" >> > > -+#include "logind-polkit.h" >> > > - #include "logind-seat-dbus.h" >> > > - #include "logind-seat.h" >> > > - #include "logind-session-dbus.h" >> > > -@@ -179,15 +180,7 @@ static int >> method_activate_session(sd_bus_message *message, void *userdata, sd_b >> > > - if (session->seat != s) >> > > - return sd_bus_error_setf(error, >> BUS_ERROR_SESSION_NOT_ON_SEAT, "Session %s not on seat %s", name, s->id); >> > > - >> > > -- r = bus_verify_polkit_async( >> > > -- message, >> > > -- CAP_SYS_ADMIN, >> > > -- "org.freedesktop.login1.chvt", >> > > -- NULL, >> > > -- false, >> > > -- UID_INVALID, >> > > -- &s->manager->polkit_registry, >> > > -- error); >> > > -+ r = check_polkit_chvt(message, s->manager, error); >> > > - if (r < 0) >> > > - return r; >> > > - if (r == 0) >> > > -@@ -215,15 +208,7 @@ static int method_switch_to(sd_bus_message >> *message, void *userdata, sd_bus_erro >> > > - if (to <= 0) >> > > - return sd_bus_error_setf(error, >> SD_BUS_ERROR_INVALID_ARGS, "Invalid virtual terminal"); >> > > - >> > > -- r = bus_verify_polkit_async( >> > > -- message, >> > > -- CAP_SYS_ADMIN, >> > > -- "org.freedesktop.login1.chvt", >> > > -- NULL, >> > > -- false, >> > > -- UID_INVALID, >> > > -- &s->manager->polkit_registry, >> > > -- error); >> > > -+ r = check_polkit_chvt(message, s->manager, error); >> > > - if (r < 0) >> > > - return r; >> > > - if (r == 0) >> > > -@@ -243,15 +228,7 @@ static int method_switch_to_next(sd_bus_message >> *message, void *userdata, sd_bus >> > > - assert(message); >> > > - assert(s); >> > > - >> > > -- r = bus_verify_polkit_async( >> > > -- message, >> > > -- CAP_SYS_ADMIN, >> > > -- "org.freedesktop.login1.chvt", >> > > -- NULL, >> > > -- false, >> > > -- UID_INVALID, >> > > -- &s->manager->polkit_registry, >> > > -- error); >> > > -+ r = check_polkit_chvt(message, s->manager, error); >> > > - if (r < 0) >> > > - return r; >> > > - if (r == 0) >> > > -@@ -271,15 +248,7 @@ static int >> method_switch_to_previous(sd_bus_message *message, void *userdata, sd >> > > - assert(message); >> > > - assert(s); >> > > - >> > > -- r = bus_verify_polkit_async( >> > > -- message, >> > > -- CAP_SYS_ADMIN, >> > > -- "org.freedesktop.login1.chvt", >> > > -- NULL, >> > > -- false, >> > > -- UID_INVALID, >> > > -- &s->manager->polkit_registry, >> > > -- error); >> > > -+ r = check_polkit_chvt(message, s->manager, error); >> > > - if (r < 0) >> > > - return r; >> > > - if (r == 0) >> > > -diff --git a/src/login/logind-session-dbus.c >> b/src/login/logind-session-dbus.c >> > > -index ccc5ac8df2..57c8a4e900 100644 >> > > ---- a/src/login/logind-session-dbus.c >> > > -+++ b/src/login/logind-session-dbus.c >> > > -@@ -11,6 +11,7 @@ >> > > - #include "fd-util.h" >> > > - #include "logind-brightness.h" >> > > - #include "logind-dbus.h" >> > > -+#include "logind-polkit.h" >> > > - #include "logind-seat-dbus.h" >> > > - #include "logind-session-dbus.h" >> > > - #include "logind-session-device.h" >> > > -@@ -192,15 +193,7 @@ int bus_session_method_activate(sd_bus_message >> *message, void *userdata, sd_bus_ >> > > - assert(message); >> > > - assert(s); >> > > - >> > > -- r = bus_verify_polkit_async( >> > > -- message, >> > > -- CAP_SYS_ADMIN, >> > > -- "org.freedesktop.login1.chvt", >> > > -- NULL, >> > > -- false, >> > > -- UID_INVALID, >> > > -- &s->manager->polkit_registry, >> > > -- error); >> > > -+ r = check_polkit_chvt(message, s->manager, error); >> > > - if (r < 0) >> > > - return r; >> > > - if (r == 0) >> > > -diff --git a/src/login/meson.build b/src/login/meson.build >> > > -index 0a7d3d5440..7e46be2add 100644 >> > > ---- a/src/login/meson.build >> > > -+++ b/src/login/meson.build >> > > -@@ -26,6 +26,7 @@ liblogind_core_sources = files(''' >> > > - logind-device.h >> > > - logind-inhibit.c >> > > - logind-inhibit.h >> > > -+ logind-polkit.c >> > > - logind-seat-dbus.c >> > > - logind-seat-dbus.h >> > > - logind-seat.c >> > > --- >> > > -2.28.0 >> > > - >> > > diff --git >> a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch >> b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch >> > > index d856bcb583..4cdf66e767 100644 >> > > --- >> a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch >> > > +++ >> b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch >> > > @@ -1,7 +1,7 @@ >> > > -From 66ece0b870b3a34fdabc48b88437e6cc354e9fce Mon Sep 17 00:00:00 >> 2001 >> > > +From 159c53612444ec1df492bae528a5a88a275b93bf Mon Sep 17 00:00:00 >> 2001 >> > > From: Chen Qi >> > > Date: Mon, 25 Feb 2019 13:41:41 +0800 >> > > -Subject: [PATCH 02/26] don't use glibc-specific qsort_r >> > > +Subject: [PATCH] don't use glibc-specific qsort_r >> > > >> > > Upstream-Status: Inappropriate [musl specific] >> > > >> > > @@ -12,6 +12,7 @@ Signed-off-by: Chen Qi >> > > Signed-off-by: Andrej Valek >> > > [Rebased for v247] >> > > Signed-off-by: Luca Boccassi >> > > + >> > > --- >> > > src/basic/sort-util.h | 14 ------------ >> > > src/libsystemd/sd-hwdb/hwdb-util.c | 19 +++++++++++----- >> > > @@ -19,14 +20,13 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > 3 files changed, 38 insertions(+), 31 deletions(-) >> > > >> > > diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h >> > > -index 1d194a1f04..3394c9eb72 100644 >> > > +index 49586a4a24..d92a5ab0ed 100644 >> > > --- a/src/basic/sort-util.h >> > > +++ b/src/basic/sort-util.h >> > > -@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *base, size_t >> nmemb, size_t size, __compar_f >> > > - int (*_func_)(const typeof(p[0])*, const >> typeof(p[0])*) = func; \ >> > > +@@ -55,18 +55,4 @@ static inline void _qsort_safe(void *base, size_t >> nmemb, size_t size, __compar_f >> > > _qsort_safe((p), (n), sizeof((p)[0]), >> (__compar_fn_t) _func_); \ >> > > }) >> > > -- >> > > + >> > > -static inline void qsort_r_safe(void *base, size_t nmemb, size_t >> size, __compar_d_fn_t compar, void *userdata) { >> > > - if (nmemb <= 1) >> > > - return; >> > > @@ -40,11 +40,13 @@ index 1d194a1f04..3394c9eb72 100644 >> > > - int (*_func_)(const typeof(p[0])*, const >> typeof(p[0])*, typeof(userdata)) = func; \ >> > > - qsort_r_safe((p), (n), sizeof((p)[0]), >> (__compar_d_fn_t) _func_, userdata); \ >> > > - }) >> > > +- >> > > + int cmp_int(const int *a, const int *b); >> > > diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c >> b/src/libsystemd/sd-hwdb/hwdb-util.c >> > > -index 4c94ba9c88..95495dba6d 100644 >> > > +index fd45ff0f54..ac4b63c49b 100644 >> > > --- a/src/libsystemd/sd-hwdb/hwdb-util.c >> > > +++ b/src/libsystemd/sd-hwdb/hwdb-util.c >> > > -@@ -126,9 +126,13 @@ static void trie_free(struct trie *trie) { >> > > +@@ -126,9 +126,13 @@ static struct trie* trie_free(struct trie >> *trie) { >> > > >> > > DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free); >> > > >> > > @@ -85,10 +87,10 @@ index 4c94ba9c88..95495dba6d 100644 >> > > } >> > > >> > > diff --git a/src/shared/format-table.c b/src/shared/format-table.c >> > > -index a13a198b7a..bce10bc607 100644 >> > > +index dccb796b26..c3ab8ac296 100644 >> > > --- a/src/shared/format-table.c >> > > +++ b/src/shared/format-table.c >> > > -@@ -1243,30 +1243,32 @@ static int cell_data_compare(TableData *a, >> size_t index_a, TableData *b, size_t >> > > +@@ -1290,30 +1290,32 @@ static int cell_data_compare(TableData *a, >> size_t index_a, TableData *b, size_t >> > > return CMP(index_a, index_b); >> > > } >> > > >> > > @@ -131,7 +133,7 @@ index a13a198b7a..bce10bc607 100644 >> > > } >> > > >> > > /* Order identical lines by the order there were originally >> added in */ >> > > -@@ -1844,7 +1846,12 @@ int table_print(Table *t, FILE *f) { >> > > +@@ -1952,7 +1954,12 @@ int table_print(Table *t, FILE *f) { >> > > for (size_t i = 0; i < n_rows; i++) >> > > sorted[i] = i * t->n_columns; >> > > >> > > @@ -145,7 +147,7 @@ index a13a198b7a..bce10bc607 100644 >> > > } >> > > >> > > if (t->display_map) >> > > -@@ -2440,7 +2447,12 @@ int table_to_json(Table *t, JsonVariant >> **ret) { >> > > +@@ -2580,7 +2587,12 @@ int table_to_json(Table *t, JsonVariant >> **ret) { >> > > for (size_t i = 0; i < n_rows; i++) >> > > sorted[i] = i * t->n_columns; >> > > >> > > @@ -159,6 +161,3 @@ index a13a198b7a..bce10bc607 100644 >> > > } >> > > >> > > if (t->display_map) >> > > --- >> > > -2.27.0 >> > > - >> > > diff --git >> a/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch >> b/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch >> > > index f43a22aa8b..9b1768d9ca 100644 >> > > --- >> a/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch >> > > +++ >> b/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch >> > > @@ -1,7 +1,7 @@ >> > > -From 9f0d5996bbb2db3679a4075fa8301750b786c03b Mon Sep 17 00:00:00 >> 2001 >> > > +From 4afb8adc83348bf75964fc10af7902e04dd62637 Mon Sep 17 00:00:00 >> 2001 >> > > From: Chen Qi >> > > Date: Mon, 25 Feb 2019 13:55:12 +0800 >> > > -Subject: [PATCH 03/26] missing_type.h: add __compare_fn_t and >> comparison_fn_t >> > > +Subject: [PATCH] missing_type.h: add __compare_fn_t and >> comparison_fn_t >> > > >> > > Make it work with musl where comparison_fn_t and __compare_fn_t >> > > is not provided. >> > > @@ -13,11 +13,12 @@ Signed-off-by: Alex Kiernan < >> alex.kiernan@gmail.com> >> > > Signed-off-by: Chen Qi >> > > [Rebased for v242] >> > > Signed-off-by: Andrej Valek >> > > + >> > > --- >> > > - src/basic/missing_type.h | 9 +++++++++ >> > > - src/basic/sort-util.h | 1 + >> > > - src/core/kmod-setup.c | 1 + >> > > - src/journal/catalog.c | 1 + >> > > + src/basic/missing_type.h | 9 +++++++++ >> > > + src/basic/sort-util.h | 1 + >> > > + src/core/kmod-setup.c | 1 + >> > > + src/libsystemd/sd-journal/catalog.c | 1 + >> > > 4 files changed, 12 insertions(+) >> > > >> > > diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h >> > > @@ -38,7 +39,7 @@ index f6233090a9..aeaf6ad5ec 100644 >> > > +typedef int (*__compar_fn_t)(const void *, const void *); >> > > +#endif >> > > diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h >> > > -index 3394c9eb72..d9cb2aecb6 100644 >> > > +index d92a5ab0ed..a63867c716 100644 >> > > --- a/src/basic/sort-util.h >> > > +++ b/src/basic/sort-util.h >> > > @@ -4,6 +4,7 @@ >> > > @@ -61,10 +62,10 @@ index 8a7f82812a..a56f12f47f 100644 >> > > >> > > #if HAVE_KMOD >> > > #include "module-util.h" >> > > -diff --git a/src/journal/catalog.c b/src/journal/catalog.c >> > > -index 0f6ad8a29e..4e1077ade4 100644 >> > > ---- a/src/journal/catalog.c >> > > -+++ b/src/journal/catalog.c >> > > +diff --git a/src/libsystemd/sd-journal/catalog.c >> b/src/libsystemd/sd-journal/catalog.c >> > > +index aea3241d18..75e6c56a28 100644 >> > > +--- a/src/libsystemd/sd-journal/catalog.c >> > > ++++ b/src/libsystemd/sd-journal/catalog.c >> > > @@ -28,6 +28,7 @@ >> > > #include "string-util.h" >> > > #include "strv.h" >> > > @@ -73,6 +74,3 @@ index 0f6ad8a29e..4e1077ade4 100644 >> > > >> > > const char * const catalog_file_dirs[] = { >> > > "/usr/local/lib/systemd/catalog/", >> > > --- >> > > -2.27.0 >> > > - >> > > diff --git >> a/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch >> b/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch >> > > index bdd64a0252..dc40a2fe8d 100644 >> > > --- >> a/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch >> > > +++ >> b/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch >> > > @@ -1,7 +1,7 @@ >> > > -From f3dbe29f7620a063af4d8eb3ea7c48ecd410200d Mon Sep 17 00:00:00 >> 2001 >> > > -From: Chen Qi >> > > -Date: Mon, 25 Feb 2019 14:04:21 +0800 >> > > -Subject: [PATCH 04/26] add fallback parse_printf_format >> implementation >> > > +From 6c18e5f9373da3e3b38f2c5727e2aefe07fcbbd9 Mon Sep 17 00:00:00 >> 2001 >> > > +From: Alexander Kanavin >> > > +Date: Sat, 22 May 2021 20:26:24 +0200 >> > > +Subject: [PATCH] [PATCH] add fallback parse_printf_format >> implementation >> > > >> > > Upstream-Status: Inappropriate [musl specific] >> > > >> > > @@ -11,21 +11,21 @@ Signed-off-by: Chen Qi >> > > [rebased for systemd 243] >> > > Signed-off-by: Scott Murray >> > > --- >> > > - meson.build | 1 + >> > > - src/basic/meson.build | 5 + >> > > - src/basic/parse-printf-format.c | 273 >> ++++++++++++++++++++++++++++++++ >> > > - src/basic/parse-printf-format.h | 57 +++++++ >> > > - src/basic/stdio-util.h | 2 +- >> > > - src/journal/journal-send.c | 2 +- >> > > + meson.build | 1 + >> > > + src/basic/meson.build | 5 + >> > > + src/basic/parse-printf-format.c | 273 >> +++++++++++++++++++++++ >> > > + src/basic/parse-printf-format.h | 57 +++++ >> > > + src/basic/stdio-util.h | 2 +- >> > > + src/libsystemd/sd-journal/journal-send.c | 2 +- >> > > 6 files changed, 338 insertions(+), 2 deletions(-) >> > > create mode 100644 src/basic/parse-printf-format.c >> > > create mode 100644 src/basic/parse-printf-format.h >> > > >> > > diff --git a/meson.build b/meson.build >> > > -index f406d595e6..6aa47fc755 100644 >> > > +index 27186d63a3..2abb7b3188 100644 >> > > --- a/meson.build >> > > +++ b/meson.build >> > > -@@ -646,6 +646,7 @@ endif >> > > +@@ -675,6 +675,7 @@ endif >> > > foreach header : ['crypt.h', >> > > 'linux/memfd.h', >> > > 'linux/vm_sockets.h', >> > > @@ -34,21 +34,21 @@ index f406d595e6..6aa47fc755 100644 >> > > 'valgrind/memcheck.h', >> > > 'valgrind/valgrind.h', >> > > diff --git a/src/basic/meson.build b/src/basic/meson.build >> > > -index 1183ea83ad..aa5c958850 100644 >> > > +index 60ef801a25..aba2172edd 100644 >> > > --- a/src/basic/meson.build >> > > +++ b/src/basic/meson.build >> > > -@@ -322,6 +322,11 @@ foreach item : [['af', af_list_txt, >> 'af', ''], >> > > - endforeach >> > > +@@ -341,6 +341,11 @@ endforeach >> > > >> > > basic_sources += generated_gperf_headers >> > > -+ >> > > + >> > > +if conf.get('HAVE_PRINTF_H') != 1 >> > > + basic_sources += [files('parse-printf-format.c')] >> > > +endif >> > > + >> > > - basic_gcrypt_sources = files( >> > > - 'gcrypt-util.c', >> > > - 'gcrypt-util.h') >> > > ++ >> > > + ############################################################ >> > > + >> > > + arch_list = [ >> > > diff --git a/src/basic/parse-printf-format.c >> b/src/basic/parse-printf-format.c >> > > new file mode 100644 >> > > index 0000000000..49437e5445 >> > > @@ -410,10 +410,10 @@ index 6dc1e72312..cea76b36cf 100644 >> > > >> > > #define snprintf_ok(buf, len, fmt, ...) \ >> > > ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len)) >> > > -diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c >> > > +diff --git a/src/libsystemd/sd-journal/journal-send.c >> b/src/libsystemd/sd-journal/journal-send.c >> > > index fd3fd7ef9c..e8e6ad555b 100644 >> > > ---- a/src/journal/journal-send.c >> > > -+++ b/src/journal/journal-send.c >> > > +--- a/src/libsystemd/sd-journal/journal-send.c >> > > ++++ b/src/libsystemd/sd-journal/journal-send.c >> > > @@ -2,7 +2,6 @@ >> > > >> > > #include >> > > @@ -431,5 +431,5 @@ index fd3fd7ef9c..e8e6ad555b 100644 >> > > #define SNDBUF_SIZE (8*1024*1024) >> > > >> > > -- >> > > -2.27.0 >> > > +2.24.0 >> > > >> > > diff --git >> a/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch >> b/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch >> > > index d63e3c0d09..a0d757b3f3 100644 >> > > --- >> a/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch >> > > +++ >> b/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch >> > > @@ -1,7 +1,7 @@ >> > > -From 5aeae0ea89f5af74ed5d95bed1d87a03b3801ff0 Mon Sep 17 00:00:00 >> 2001 >> > > +From 6b0732ac7164914ce16e231e35980b849bdfc4c8 Mon Sep 17 00:00:00 >> 2001 >> > > From: Chen Qi >> > > Date: Mon, 25 Feb 2019 14:18:21 +0800 >> > > -Subject: [PATCH 05/26] src/basic/missing.h: check for missing >> strndupa >> > > +Subject: [PATCH] src/basic/missing.h: check for missing strndupa >> > > >> > > include missing.h for definition of strndupa >> > > >> > > @@ -17,6 +17,7 @@ Signed-off-by: Alex Kiernan > > >> > > [rebased for systemd 244] >> > > [Rebased for v247] >> > > Signed-off-by: Luca Boccassi >> > > + >> > > --- >> > > meson.build | 1 + >> > > src/backlight/backlight.c | 1 + >> > > @@ -25,6 +26,7 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > src/basic/log.c | 1 + >> > > src/basic/missing_stdlib.h | 12 ++++++++++++ >> > > src/basic/mkdir.c | 1 + >> > > + src/basic/mountpoint-util.c | 1 + >> > > src/basic/parse-util.c | 1 + >> > > src/basic/path-lookup.c | 1 + >> > > src/basic/proc-cmdline.c | 1 + >> > > @@ -41,12 +43,12 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > src/coredump/coredump-vacuum.c | 1 + >> > > src/journal-remote/journal-remote-main.c | 1 + >> > > src/journal/journalctl.c | 1 + >> > > - src/journal/sd-journal.c | 1 + >> > > src/libsystemd/sd-bus/bus-message.c | 1 + >> > > src/libsystemd/sd-bus/bus-objects.c | 1 + >> > > src/libsystemd/sd-bus/bus-socket.c | 1 + >> > > src/libsystemd/sd-bus/sd-bus.c | 1 + >> > > src/libsystemd/sd-bus/test-bus-benchmark.c | 1 + >> > > + src/libsystemd/sd-journal/sd-journal.c | 1 + >> > > src/locale/keymap-util.c | 1 + >> > > src/login/pam_systemd.c | 1 + >> > > src/network/generator/network-generator.c | 1 + >> > > @@ -68,18 +70,22 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > src/udev/udev-builtin-path_id.c | 1 + >> > > src/udev/udev-event.c | 1 + >> > > src/udev/udev-rules.c | 1 + >> > > - 50 files changed, 61 insertions(+) >> > > + 51 files changed, 62 insertions(+) >> > > >> > > +diff --git a/meson.build b/meson.build >> > > +index 2abb7b3188..c97f09062b 100644 >> > > --- a/meson.build >> > > +++ b/meson.build >> > > -@@ -535,6 +535,7 @@ foreach ident : [ >> > > - #include '''], >> > > - ['mallinfo', '''#include '''], >> > > +@@ -550,6 +550,7 @@ foreach ident : [ >> > > + ['execveat', '''#include '''], >> > > ['close_range', '''#include '''], >> > > + ['epoll_pwait2', '''#include '''], >> > > + ['strndupa' , '''#include '''], >> > > ] >> > > >> > > have = cc.has_function(ident[0], prefix : ident[1], args : >> '-D_GNU_SOURCE') >> > > +diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c >> > > +index 86927be62e..a34be158a0 100644 >> > > --- a/src/backlight/backlight.c >> > > +++ b/src/backlight/backlight.c >> > > @@ -19,6 +19,7 @@ >> > > @@ -90,6 +96,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static int help(void) { >> > > _cleanup_free_ char *link = NULL; >> > > +diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c >> > > +index 8dd3f8cd95..50c1ae1b2b 100644 >> > > --- a/src/basic/cgroup-util.c >> > > +++ b/src/basic/cgroup-util.c >> > > @@ -38,6 +38,7 @@ >> > > @@ -100,9 +108,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static int cg_enumerate_items(const char *controller, const char >> *path, FILE **_f, const char *item) { >> > > _cleanup_free_ char *fs = NULL; >> > > +diff --git a/src/basic/env-util.c b/src/basic/env-util.c >> > > +index c110a750a5..e1f091b01e 100644 >> > > --- a/src/basic/env-util.c >> > > +++ b/src/basic/env-util.c >> > > -@@ -15,6 +15,7 @@ >> > > +@@ -18,6 +18,7 @@ >> > > #include "string-util.h" >> > > #include "strv.h" >> > > #include "utf8.h" >> > > @@ -110,6 +120,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > /* We follow bash for the character set. Different shells have >> different rules. */ >> > > #define VALID_BASH_ENV_NAME_CHARS \ >> > > +diff --git a/src/basic/log.c b/src/basic/log.c >> > > +index 595db0c395..daff8eb68a 100644 >> > > --- a/src/basic/log.c >> > > +++ b/src/basic/log.c >> > > @@ -36,6 +36,7 @@ >> > > @@ -120,6 +132,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #define SNDBUF_SIZE (8*1024*1024) >> > > >> > > +diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h >> > > +index 8c76f93eb2..9068bfb4f0 100644 >> > > --- a/src/basic/missing_stdlib.h >> > > +++ b/src/basic/missing_stdlib.h >> > > @@ -11,3 +11,15 @@ >> > > @@ -138,6 +152,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > + (char *)memcpy(__new, __old, __len); \ >> > > + }) >> > > +#endif >> > > +diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c >> > > +index f91f8f7a08..fb31596216 100644 >> > > --- a/src/basic/mkdir.c >> > > +++ b/src/basic/mkdir.c >> > > @@ -14,6 +14,7 @@ >> > > @@ -148,9 +164,23 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int mkdir_safe_internal( >> > > const char *path, >> > > +diff --git a/src/basic/mountpoint-util.c >> b/src/basic/mountpoint-util.c >> > > +index 1d617e87b2..346f9a47d7 100644 >> > > +--- a/src/basic/mountpoint-util.c >> > > ++++ b/src/basic/mountpoint-util.c >> > > +@@ -12,6 +12,7 @@ >> > > + #include "missing_stat.h" >> > > + #include "missing_syscall.h" >> > > + #include "mkdir.h" >> > > ++#include "missing_stdlib.h" >> > > + #include "mountpoint-util.h" >> > > + #include "parse-util.h" >> > > + #include "path-util.h" >> > > +diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c >> > > +index b79c885dfd..6dabda5691 100644 >> > > --- a/src/basic/parse-util.c >> > > +++ b/src/basic/parse-util.c >> > > -@@ -22,6 +22,7 @@ >> > > +@@ -19,6 +19,7 @@ >> > > #include "stat-util.h" >> > > #include "string-util.h" >> > > #include "strv.h" >> > > @@ -158,6 +188,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int parse_boolean(const char *v) { >> > > if (!v) >> > > +diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c >> > > +index e53c2302b1..ca1d40ccbe 100644 >> > > --- a/src/basic/path-lookup.c >> > > +++ b/src/basic/path-lookup.c >> > > @@ -15,6 +15,7 @@ >> > > @@ -168,6 +200,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int xdg_user_runtime_dir(char **ret, const char *suffix) { >> > > const char *e; >> > > +diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c >> > > +index 410b8a3eb5..f2c4355609 100644 >> > > --- a/src/basic/proc-cmdline.c >> > > +++ b/src/basic/proc-cmdline.c >> > > @@ -15,6 +15,7 @@ >> > > @@ -178,6 +212,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int proc_cmdline(char **ret) { >> > > const char *e; >> > > +diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c >> > > +index ccab71f7d2..8f9eee8d36 100644 >> > > --- a/src/basic/procfs-util.c >> > > +++ b/src/basic/procfs-util.c >> > > @@ -11,6 +11,7 @@ >> > > @@ -188,6 +224,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int procfs_tasks_get_limit(uint64_t *ret) { >> > > _cleanup_free_ char *value = NULL; >> > > +diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c >> > > +index ee9e34ed47..96c1e9362d 100644 >> > > --- a/src/basic/selinux-util.c >> > > +++ b/src/basic/selinux-util.c >> > > @@ -27,6 +27,7 @@ >> > > @@ -197,7 +235,9 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > +#include "missing_stdlib.h" >> > > >> > > #if HAVE_SELINUX >> > > - DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free); >> > > + DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(context_t, context_free, NULL); >> > > +diff --git a/src/basic/time-util.c b/src/basic/time-util.c >> > > +index 78d0390a00..47c38ca691 100644 >> > > --- a/src/basic/time-util.c >> > > +++ b/src/basic/time-util.c >> > > @@ -27,6 +27,7 @@ >> > > @@ -208,6 +248,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static clockid_t map_clock_id(clockid_t c) { >> > > >> > > +diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c >> > > +index 97ad1e0cb5..9d60f3cc79 100644 >> > > --- a/src/boot/bless-boot.c >> > > +++ b/src/boot/bless-boot.c >> > > @@ -18,6 +18,7 @@ >> > > @@ -218,16 +260,20 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static char **arg_path = NULL; >> > > >> > > +diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c >> > > +index 04d2ba34f3..651ca9412e 100644 >> > > --- a/src/core/dbus-cgroup.c >> > > +++ b/src/core/dbus-cgroup.c >> > > -@@ -16,6 +16,7 @@ >> > > - #include "fileio.h" >> > > +@@ -17,6 +17,7 @@ >> > > #include "limits-util.h" >> > > #include "path-util.h" >> > > + #include "percent-util.h" >> > > +#include "missing_stdlib.h" >> > > >> > > BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, >> tasks_max_resolve); >> > > >> > > +diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c >> > > +index 5239c41d67..0f604efe98 100644 >> > > --- a/src/core/dbus-execute.c >> > > +++ b/src/core/dbus-execute.c >> > > @@ -41,6 +41,7 @@ >> > > @@ -238,9 +284,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, >> exec_output, ExecOutput); >> > > static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, >> exec_input, ExecInput); >> > > +diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c >> > > +index 44a2ccfca0..3926ccfa4a 100644 >> > > --- a/src/core/dbus-util.c >> > > +++ b/src/core/dbus-util.c >> > > -@@ -7,6 +7,7 @@ >> > > +@@ -9,6 +9,7 @@ >> > > #include "unit-printf.h" >> > > #include "user-util.h" >> > > #include "unit.h" >> > > @@ -248,16 +296,20 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int bus_property_get_triggered_unit( >> > > sd_bus *bus, >> > > +diff --git a/src/core/execute.c b/src/core/execute.c >> > > +index 922913e7af..f82fc294c0 100644 >> > > --- a/src/core/execute.c >> > > +++ b/src/core/execute.c >> > > @@ -96,6 +96,7 @@ >> > > - #include "unit.h" >> > > + #include "unit-serialize.h" >> > > #include "user-util.h" >> > > #include "utmp-wtmp.h" >> > > +#include "missing_stdlib.h" >> > > >> > > #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC) >> > > #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC) >> > > +diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c >> > > +index a56f12f47f..6b8729ef67 100644 >> > > --- a/src/core/kmod-setup.c >> > > +++ b/src/core/kmod-setup.c >> > > @@ -11,6 +11,7 @@ >> > > @@ -268,6 +320,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #if HAVE_KMOD >> > > #include "module-util.h" >> > > +diff --git a/src/core/service.c b/src/core/service.c >> > > +index 4c5bfb17fb..8c05f36119 100644 >> > > --- a/src/core/service.c >> > > +++ b/src/core/service.c >> > > @@ -41,6 +41,7 @@ >> > > @@ -278,6 +332,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static const UnitActiveState >> state_translation_table[_SERVICE_STATE_MAX] = { >> > > [SERVICE_DEAD] = UNIT_INACTIVE, >> > > +diff --git a/src/coredump/coredump-vacuum.c >> b/src/coredump/coredump-vacuum.c >> > > +index 95c3fca661..d4a9f27b08 100644 >> > > --- a/src/coredump/coredump-vacuum.c >> > > +++ b/src/coredump/coredump-vacuum.c >> > > @@ -16,6 +16,7 @@ >> > > @@ -288,9 +344,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) >> /* 1 MiB */ >> > > #define DEFAULT_MAX_USE_UPPER (uint64_t) >> (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */ >> > > +diff --git a/src/journal-remote/journal-remote-main.c >> b/src/journal-remote/journal-remote-main.c >> > > +index ae1d43756a..24de98c9f3 100644 >> > > --- a/src/journal-remote/journal-remote-main.c >> > > +++ b/src/journal-remote/journal-remote-main.c >> > > -@@ -22,6 +22,7 @@ >> > > +@@ -24,6 +24,7 @@ >> > > #include "stat-util.h" >> > > #include "string-table.h" >> > > #include "strv.h" >> > > @@ -298,9 +356,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem" >> > > #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem" >> > > +diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c >> > > +index 76d05c1eee..0beb77b2e5 100644 >> > > --- a/src/journal/journalctl.c >> > > +++ b/src/journal/journalctl.c >> > > -@@ -73,6 +73,7 @@ >> > > +@@ -72,6 +72,7 @@ >> > > #include "unit-name.h" >> > > #include "user-util.h" >> > > #include "varlink.h" >> > > @@ -308,19 +368,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE) >> > > #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages >> processed */ >> > > ---- a/src/journal/sd-journal.c >> > > -+++ b/src/journal/sd-journal.c >> > > -@@ -40,6 +40,7 @@ >> > > - #include "string-util.h" >> > > - #include "strv.h" >> > > - #include "syslog-util.h" >> > > -+#include "missing_stdlib.h" >> > > - >> > > - #define JOURNAL_FILES_MAX 7168 >> > > - >> > > +diff --git a/src/libsystemd/sd-bus/bus-message.c >> b/src/libsystemd/sd-bus/bus-message.c >> > > +index b25064b672..b3bbe63a91 100644 >> > > --- a/src/libsystemd/sd-bus/bus-message.c >> > > +++ b/src/libsystemd/sd-bus/bus-message.c >> > > -@@ -21,6 +21,7 @@ >> > > +@@ -20,6 +20,7 @@ >> > > #include "strv.h" >> > > #include "time-util.h" >> > > #include "utf8.h" >> > > @@ -328,9 +380,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static int message_append_basic(sd_bus_message *m, char type, const >> void *p, const void **stored); >> > > >> > > +diff --git a/src/libsystemd/sd-bus/bus-objects.c >> b/src/libsystemd/sd-bus/bus-objects.c >> > > +index bfd42aea7d..daefc56e3e 100644 >> > > --- a/src/libsystemd/sd-bus/bus-objects.c >> > > +++ b/src/libsystemd/sd-bus/bus-objects.c >> > > -@@ -13,6 +13,7 @@ >> > > +@@ -12,6 +12,7 @@ >> > > #include "set.h" >> > > #include "string-util.h" >> > > #include "strv.h" >> > > @@ -338,6 +392,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static int node_vtable_get_userdata( >> > > sd_bus *bus, >> > > +diff --git a/src/libsystemd/sd-bus/bus-socket.c >> b/src/libsystemd/sd-bus/bus-socket.c >> > > +index 832526cc1b..7bff701806 100644 >> > > --- a/src/libsystemd/sd-bus/bus-socket.c >> > > +++ b/src/libsystemd/sd-bus/bus-socket.c >> > > @@ -28,6 +28,7 @@ >> > > @@ -348,29 +404,47 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #define SNDBUF_SIZE (8*1024*1024) >> > > >> > > +diff --git a/src/libsystemd/sd-bus/sd-bus.c >> b/src/libsystemd/sd-bus/sd-bus.c >> > > +index e719c74370..ac2a605680 100644 >> > > --- a/src/libsystemd/sd-bus/sd-bus.c >> > > +++ b/src/libsystemd/sd-bus/sd-bus.c >> > > @@ -41,6 +41,7 @@ >> > > - #include "process-util.h" >> > > #include "string-util.h" >> > > #include "strv.h" >> > > + #include "user-util.h" >> > > +#include "missing_stdlib.h" >> > > >> > > #define log_debug_bus_message(m) >> \ >> > > do { >> \ >> > > +diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c >> b/src/libsystemd/sd-bus/test-bus-benchmark.c >> > > +index 13c08fe295..9aae83486e 100644 >> > > --- a/src/libsystemd/sd-bus/test-bus-benchmark.c >> > > +++ b/src/libsystemd/sd-bus/test-bus-benchmark.c >> > > @@ -14,6 +14,7 @@ >> > > - #include "missing_resource.h" >> > > + #include "string-util.h" >> > > #include "time-util.h" >> > > #include "util.h" >> > > +#include "missing_stdlib.h" >> > > >> > > #define MAX_SIZE (2*1024*1024) >> > > >> > > +diff --git a/src/libsystemd/sd-journal/sd-journal.c >> b/src/libsystemd/sd-journal/sd-journal.c >> > > +index c90b4c926e..0efdccff5d 100644 >> > > +--- a/src/libsystemd/sd-journal/sd-journal.c >> > > ++++ b/src/libsystemd/sd-journal/sd-journal.c >> > > +@@ -40,6 +40,7 @@ >> > > + #include "string-util.h" >> > > + #include "strv.h" >> > > + #include "syslog-util.h" >> > > ++#include "missing_stdlib.h" >> > > + >> > > + #define JOURNAL_FILES_MAX 7168 >> > > + >> > > +diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c >> > > +index d2f0566dbc..3b7746557e 100644 >> > > --- a/src/locale/keymap-util.c >> > > +++ b/src/locale/keymap-util.c >> > > -@@ -21,6 +21,7 @@ >> > > +@@ -24,6 +24,7 @@ >> > > #include "string-util.h" >> > > #include "strv.h" >> > > #include "tmpfile-util.h" >> > > @@ -378,6 +452,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static bool startswith_comma(const char *s, const char *prefix) { >> > > s = startswith(s, prefix); >> > > +diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c >> > > +index 2021c31bd5..58eb09808d 100644 >> > > --- a/src/login/pam_systemd.c >> > > +++ b/src/login/pam_systemd.c >> > > @@ -31,6 +31,7 @@ >> > > @@ -388,6 +464,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > #include "pam-util.h" >> > > #include "parse-util.h" >> > > #include "path-util.h" >> > > +diff --git a/src/network/generator/network-generator.c >> b/src/network/generator/network-generator.c >> > > +index ae673ddf5b..a79e5114ca 100644 >> > > --- a/src/network/generator/network-generator.c >> > > +++ b/src/network/generator/network-generator.c >> > > @@ -13,6 +13,7 @@ >> > > @@ -398,6 +476,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > /* >> > > # .network >> > > +diff --git a/src/nspawn/nspawn-settings.c >> b/src/nspawn/nspawn-settings.c >> > > +index d4619bead5..0e832fd994 100644 >> > > --- a/src/nspawn/nspawn-settings.c >> > > +++ b/src/nspawn/nspawn-settings.c >> > > @@ -16,6 +16,7 @@ >> > > @@ -408,19 +488,23 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > Settings *settings_new(void) { >> > > Settings *s; >> > > +diff --git a/src/nss-mymachines/nss-mymachines.c >> b/src/nss-mymachines/nss-mymachines.c >> > > +index 44715bb3e5..bc1e688b5e 100644 >> > > --- a/src/nss-mymachines/nss-mymachines.c >> > > +++ b/src/nss-mymachines/nss-mymachines.c >> > > -@@ -19,6 +19,7 @@ >> > > +@@ -21,6 +21,7 @@ >> > > #include "nss-util.h" >> > > #include "signal-util.h" >> > > #include "string-util.h" >> > > +#include "missing_stdlib.h" >> > > >> > > - NSS_GETHOSTBYNAME_PROTOTYPES(mymachines); >> > > - NSS_GETPW_PROTOTYPES(mymachines); >> > > + static void setup_logging(void) { >> > > + /* We need a dummy function because log_parse_environment >> is a macro. */ >> > > +diff --git a/src/portable/portable.c b/src/portable/portable.c >> > > +index f201f52531..c78ad0f471 100644 >> > > --- a/src/portable/portable.c >> > > +++ b/src/portable/portable.c >> > > -@@ -31,6 +31,7 @@ >> > > +@@ -32,6 +32,7 @@ >> > > #include "strv.h" >> > > #include "tmpfile-util.h" >> > > #include "user-util.h" >> > > @@ -428,9 +512,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static const char profile_dirs[] = >> CONF_PATHS_NULSTR("systemd/portable/profile"); >> > > >> > > +diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c >> > > +index 52bbae3293..4ccbae09c4 100644 >> > > --- a/src/resolve/resolvectl.c >> > > +++ b/src/resolve/resolvectl.c >> > > -@@ -37,6 +37,7 @@ >> > > +@@ -41,6 +41,7 @@ >> > > #include "terminal-util.h" >> > > #include "utf8.h" >> > > #include "verbs.h" >> > > @@ -438,6 +524,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static int arg_family = AF_UNSPEC; >> > > static int arg_ifindex = 0; >> > > +diff --git a/src/shared/bus-get-properties.c >> b/src/shared/bus-get-properties.c >> > > +index feb6d3807f..eb11d29e50 100644 >> > > --- a/src/shared/bus-get-properties.c >> > > +++ b/src/shared/bus-get-properties.c >> > > @@ -4,6 +4,7 @@ >> > > @@ -448,6 +536,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int bus_property_get_bool( >> > > sd_bus *bus, >> > > +diff --git a/src/shared/bus-unit-procs.c >> b/src/shared/bus-unit-procs.c >> > > +index b76125e551..2e0892242f 100644 >> > > --- a/src/shared/bus-unit-procs.c >> > > +++ b/src/shared/bus-unit-procs.c >> > > @@ -10,6 +10,7 @@ >> > > @@ -458,9 +548,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > struct CGroupInfo { >> > > char *cgroup_path; >> > > +diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c >> > > +index a75178068b..3de06e2bd5 100644 >> > > --- a/src/shared/bus-unit-util.c >> > > +++ b/src/shared/bus-unit-util.c >> > > -@@ -44,6 +44,7 @@ >> > > +@@ -45,6 +45,7 @@ >> > > #include "unit-def.h" >> > > #include "user-util.h" >> > > #include "utf8.h" >> > > @@ -468,6 +560,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) { >> > > assert(message); >> > > +diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c >> > > +index 64ca67993c..31e3d148ea 100644 >> > > --- a/src/shared/bus-util.c >> > > +++ b/src/shared/bus-util.c >> > > @@ -21,6 +21,7 @@ >> > > @@ -478,6 +572,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static int name_owner_change_callback(sd_bus_message *m, void >> *userdata, sd_bus_error *ret_error) { >> > > sd_event *e = userdata; >> > > +diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c >> > > +index e43aa12882..cec9b413c1 100644 >> > > --- a/src/shared/dns-domain.c >> > > +++ b/src/shared/dns-domain.c >> > > @@ -17,6 +17,7 @@ >> > > @@ -488,6 +584,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > int dns_label_unescape(const char **name, char *dest, size_t sz, >> DNSLabelFlags flags) { >> > > const char *n; >> > > +diff --git a/src/shared/journal-importer.c >> b/src/shared/journal-importer.c >> > > +index b2785f0552..5f00902882 100644 >> > > --- a/src/shared/journal-importer.c >> > > +++ b/src/shared/journal-importer.c >> > > @@ -14,6 +14,7 @@ >> > > @@ -498,6 +596,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > enum { >> > > IMPORTER_STATE_LINE = 0, /* waiting to read, or reading >> line */ >> > > +diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c >> > > +index e63c59bd94..dd9773c009 100644 >> > > --- a/src/shared/logs-show.c >> > > +++ b/src/shared/logs-show.c >> > > @@ -41,6 +41,7 @@ >> > > @@ -508,6 +608,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > /* up to three lines (each up to 100 characters) or 300 characters, >> whichever is less */ >> > > #define PRINT_LINE_THRESHOLD 3 >> > > +diff --git a/src/shared/pager.c b/src/shared/pager.c >> > > +index 4bbad7e37b..eefcdd068c 100644 >> > > --- a/src/shared/pager.c >> > > +++ b/src/shared/pager.c >> > > @@ -26,6 +26,7 @@ >> > > @@ -518,6 +620,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static pid_t pager_pid = 0; >> > > >> > > +diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c >> > > +index 5d5bf7f21d..f1002ffa6c 100644 >> > > --- a/src/shared/uid-range.c >> > > +++ b/src/shared/uid-range.c >> > > @@ -9,6 +9,7 @@ >> > > @@ -528,6 +632,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static bool uid_range_intersect(UidRange *range, uid_t start, uid_t >> nr) { >> > > assert(range); >> > > +diff --git a/src/socket-proxy/socket-proxyd.c >> b/src/socket-proxy/socket-proxyd.c >> > > +index 6e3ee0d76b..7727e33d95 100644 >> > > --- a/src/socket-proxy/socket-proxyd.c >> > > +++ b/src/socket-proxy/socket-proxyd.c >> > > @@ -26,6 +26,7 @@ >> > > @@ -538,6 +644,8 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #define BUFFER_SIZE (256 * 1024) >> > > >> > > +diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c >> > > +index c9d318b8d1..fcb8d40805 100644 >> > > --- a/src/test/test-hexdecoct.c >> > > +++ b/src/test/test-hexdecoct.c >> > > @@ -6,6 +6,7 @@ >> > > @@ -548,19 +656,23 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > static void test_hexchar(void) { >> > > assert_se(hexchar(0xa) == 'a'); >> > > +diff --git a/src/udev/udev-builtin-path_id.c >> b/src/udev/udev-builtin-path_id.c >> > > +index 09cc1c3bd8..8a7d3152a7 100644 >> > > --- a/src/udev/udev-builtin-path_id.c >> > > +++ b/src/udev/udev-builtin-path_id.c >> > > @@ -22,6 +22,7 @@ >> > > - #include "strv.h" >> > > #include "sysexits.h" >> > > #include "udev-builtin.h" >> > > + #include "udev-util.h" >> > > +#include "missing_stdlib.h" >> > > >> > > _printf_(2,3) >> > > static void path_prepend(char **path, const char *fmt, ...) { >> > > +diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c >> > > +index 12597194a9..208b2458b5 100644 >> > > --- a/src/udev/udev-event.c >> > > +++ b/src/udev/udev-event.c >> > > -@@ -34,6 +34,7 @@ >> > > +@@ -33,6 +33,7 @@ >> > > #include "udev-util.h" >> > > #include "udev-watch.h" >> > > #include "user-util.h" >> > > @@ -568,9 +680,11 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > typedef struct Spawn { >> > > sd_device *device; >> > > +diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c >> > > +index 57ede6a197..dc59857765 100644 >> > > --- a/src/udev/udev-rules.c >> > > +++ b/src/udev/udev-rules.c >> > > -@@ -30,6 +30,7 @@ >> > > +@@ -31,6 +31,7 @@ >> > > #include "udev-rules.h" >> > > #include "user-util.h" >> > > #include "virt.h" >> > > @@ -578,13 +692,3 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > >> > > #define RULES_DIRS (const char* const*) >> CONF_PATHS_STRV("udev/rules.d") >> > > >> > > ---- a/src/basic/mountpoint-util.c >> > > -+++ b/src/basic/mountpoint-util.c >> > > -@@ -10,6 +10,7 @@ >> > > - #include "fs-util.h" >> > > - #include "missing_stat.h" >> > > - #include "missing_syscall.h" >> > > -+#include "missing_stdlib.h" >> > > - #include "mountpoint-util.h" >> > > - #include "parse-util.h" >> > > - #include "path-util.h" >> > > diff --git >> a/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch >> b/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch >> > > index a978558b42..54d714266e 100644 >> > > --- >> a/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch >> > > +++ >> b/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch >> > > @@ -1,7 +1,7 @@ >> > > -From d3ed0da271738fd0fc3d3e4d82d6f5810334b05e Mon Sep 17 00:00:00 >> 2001 >> > > +From 2069f0b0d5ab8f869aeba635a347e0b11d362b30 Mon Sep 17 00:00:00 >> 2001 >> > > From: Khem Raj >> > > Date: Thu, 26 Oct 2017 22:10:42 -0700 >> > > -Subject: [PATCH 06/26] Include netinet/if_ether.h >> > > +Subject: [PATCH] Include netinet/if_ether.h >> > > >> > > Fixes >> > > >> /path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: >> error: redefinition of 'struct ethhdr' >> > > @@ -31,6 +31,7 @@ Signed-off-by: Chen Qi >> > > Signed-off-by: Scott Murray >> > > [rebased for systemd 247] >> > > Signed-off-by: Luca Boccassi >> > > + >> > > --- >> > > src/libsystemd-network/sd-dhcp6-client.c | 1 - >> > > src/libsystemd/sd-netlink/netlink-types.c | 1 + >> > > @@ -56,7 +57,7 @@ Signed-off-by: Luca Boccassi < >> luca.boccassi@microsoft.com> >> > > 21 files changed, 26 insertions(+), 8 deletions(-) >> > > >> > > diff --git a/src/libsystemd-network/sd-dhcp6-client.c >> b/src/libsystemd-network/sd-dhcp6-client.c >> > > -index 66f87c4b95..de1264ae46 100644 >> > > +index 410bfda10e..e70ed8be92 100644 >> > > --- a/src/libsystemd-network/sd-dhcp6-client.c >> > > +++ b/src/libsystemd-network/sd-dhcp6-client.c >> > > @@ -5,7 +5,6 @@ >> > > @@ -68,7 +69,7 @@ index 66f87c4b95..de1264ae46 100644 >> > > >> > > #include "sd-dhcp6-client.h" >> > > diff --git a/src/libsystemd/sd-netlink/netlink-types.c >> b/src/libsystemd/sd-netlink/netlink-types.c >> > > -index 6fb6c147d9..8eda02d202 100644 >> > > +index ed7b9a8cd1..112c0b09e4 100644 >> > > --- a/src/libsystemd/sd-netlink/netlink-types.c >> > > +++ b/src/libsystemd/sd-netlink/netlink-types.c >> > > @@ -3,6 +3,7 @@ >> > > @@ -80,7 +81,7 @@ index 6fb6c147d9..8eda02d202 100644 >> > > #include >> > > #include >> > > diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c >> > > -index bb67beb665..f5780f1aec 100644 >> > > +index e7c4ed3c7c..3a1e4f9072 100644 >> > > --- a/src/machine/machine-dbus.c >> > > +++ b/src/machine/machine-dbus.c >> > > @@ -3,6 +3,7 @@ >> > > @@ -92,7 +93,7 @@ index bb67beb665..f5780f1aec 100644 >> > > /* When we include libgen.h because we need dirname() we immediately >> > > * undefine basename() since libgen.h defines it as a macro to the >> POSIX >> > > diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c >> > > -index e27f36067b..8868f1da5d 100644 >> > > +index cf7ca88d6f..34ab468191 100644 >> > > --- a/src/network/netdev/bond.c >> > > +++ b/src/network/netdev/bond.c >> > > @@ -1,5 +1,6 @@ >> > > @@ -103,7 +104,7 @@ index e27f36067b..8868f1da5d 100644 >> > > #include "bond.h" >> > > #include "bond-util.h" >> > > diff --git a/src/network/netdev/bridge.c >> b/src/network/netdev/bridge.c >> > > -index 1f59cd8b42..5fdbae7e99 100644 >> > > +index 38432f1578..79ccfe578e 100644 >> > > --- a/src/network/netdev/bridge.c >> > > +++ b/src/network/netdev/bridge.c >> > > @@ -1,5 +1,6 @@ >> > > @@ -114,7 +115,7 @@ index 1f59cd8b42..5fdbae7e99 100644 >> > > >> > > #include "bridge.h" >> > > diff --git a/src/network/netdev/macsec.c >> b/src/network/netdev/macsec.c >> > > -index 82e71c3920..fbae86e216 100644 >> > > +index 77c5f8c4e7..04be1b4ab2 100644 >> > > --- a/src/network/netdev/macsec.c >> > > +++ b/src/network/netdev/macsec.c >> > > @@ -1,5 +1,6 @@ >> > > @@ -125,19 +126,19 @@ index 82e71c3920..fbae86e216 100644 >> > > #include >> > > #include >> > > diff --git a/src/network/netdev/netdev-gperf.gperf >> b/src/network/netdev/netdev-gperf.gperf >> > > -index 4e89761f2c..91251fa6ec 100644 >> > > +index 8abe044890..3c54c58928 100644 >> > > --- a/src/network/netdev/netdev-gperf.gperf >> > > +++ b/src/network/netdev/netdev-gperf.gperf >> > > -@@ -2,6 +2,7 @@ >> > > +@@ -3,6 +3,7 @@ >> > > #if __GNUC__ >= 7 >> > > _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") >> > > #endif >> > > +#include >> > > #include >> > > #include "bareudp.h" >> > > - #include "bond.h" >> > > + #include "batadv.h" >> > > diff --git a/src/network/netdev/netdev.c >> b/src/network/netdev/netdev.c >> > > -index 9f390b5781..62aeafb1e4 100644 >> > > +index b31f0fa81a..c80e1ff537 100644 >> > > --- a/src/network/netdev/netdev.c >> > > +++ b/src/network/netdev/netdev.c >> > > @@ -1,5 +1,6 @@ >> > > @@ -148,7 +149,7 @@ index 9f390b5781..62aeafb1e4 100644 >> > > #include >> > > #include >> > > diff --git a/src/network/networkd-brvlan.c >> b/src/network/networkd-brvlan.c >> > > -index e53c73c30c..9bf0771b84 100644 >> > > +index 2847b336c9..4d6af8c642 100644 >> > > --- a/src/network/networkd-brvlan.c >> > > +++ b/src/network/networkd-brvlan.c >> > > @@ -4,6 +4,7 @@ >> > > @@ -160,7 +161,7 @@ index e53c73c30c..9bf0771b84 100644 >> > > #include >> > > >> > > diff --git a/src/network/networkd-dhcp-common.c >> b/src/network/networkd-dhcp-common.c >> > > -index 9f58121350..554d006cb8 100644 >> > > +index 00d055cf8d..65821c1d31 100644 >> > > --- a/src/network/networkd-dhcp-common.c >> > > +++ b/src/network/networkd-dhcp-common.c >> > > @@ -1,7 +1,8 @@ >> > > @@ -171,9 +172,9 @@ index 9f58121350..554d006cb8 100644 >> > > +#include >> > > +#include >> > > >> > > + #include "bus-error.h" >> > > #include "dhcp-internal.h" >> > > - #include "dhcp6-internal.h" >> > > -@@ -10,6 +11,7 @@ >> > > +@@ -11,6 +12,7 @@ >> > > #include "networkd-dhcp-common.h" >> > > #include "networkd-link.h" >> > > #include "networkd-manager.h" >> > > @@ -182,7 +183,7 @@ index 9f58121350..554d006cb8 100644 >> > > #include "parse-util.h" >> > > #include "socket-util.h" >> > > diff --git a/src/network/networkd-dhcp-server.c >> b/src/network/networkd-dhcp-server.c >> > > -index cf279c640d..bae541029b 100644 >> > > +index 5cdf432c27..93cffb9863 100644 >> > > --- a/src/network/networkd-dhcp-server.c >> > > +++ b/src/network/networkd-dhcp-server.c >> > > @@ -1,8 +1,8 @@ >> > > @@ -197,7 +198,7 @@ index cf279c640d..bae541029b 100644 >> > > #include "sd-dhcp-server.h" >> > > >> > > diff --git a/src/network/networkd-dhcp4.c >> b/src/network/networkd-dhcp4.c >> > > -index f3c1e5f609..e4ef6eca63 100644 >> > > +index 23dc3a45db..7ae6c2467a 100644 >> > > --- a/src/network/networkd-dhcp4.c >> > > +++ b/src/network/networkd-dhcp4.c >> > > @@ -1,9 +1,9 @@ >> > > @@ -212,7 +213,7 @@ index f3c1e5f609..e4ef6eca63 100644 >> > > #include "escape.h" >> > > #include "alloc-util.h" >> > > diff --git a/src/network/networkd-dhcp6.c >> b/src/network/networkd-dhcp6.c >> > > -index 5c077c1ec8..fa98042aa5 100644 >> > > +index aa077d6219..4f6ce22059 100644 >> > > --- a/src/network/networkd-dhcp6.c >> > > +++ b/src/network/networkd-dhcp6.c >> > > @@ -3,9 +3,9 @@ >> > > @@ -227,7 +228,7 @@ index 5c077c1ec8..fa98042aa5 100644 >> > > #include "sd-dhcp6-client.h" >> > > >> > > diff --git a/src/network/networkd-link.c >> b/src/network/networkd-link.c >> > > -index 3bfe636691..e0c68c8ad3 100644 >> > > +index 8219d95b0d..c92230453b 100644 >> > > --- a/src/network/networkd-link.c >> > > +++ b/src/network/networkd-link.c >> > > @@ -1,8 +1,8 @@ >> > > @@ -241,7 +242,7 @@ index 3bfe636691..e0c6 >> >>