diff --git a/systemd-247-gnu-efi-3.0.13.patch b/systemd-247-gnu-efi-3.0.13.patch new file mode 100644 index 0000000..37d4658 --- /dev/null +++ b/systemd-247-gnu-efi-3.0.13.patch @@ -0,0 +1,176 @@ +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) +--- + 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/systemd.spec b/systemd.spec index 0cea079..3d78bf8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -27,7 +27,7 @@ Name: systemd Epoch: 2 Version: 247 -Release: 3mamba +Release: 5mamba Summary: A system and service manager compatible with SysV and LSB init scripts Group: System/Configuration Vendor: openmamba @@ -69,6 +69,7 @@ Patch18: systemd-238-upstream-dont-include-libmount-h.patch Patch19: systemd-239-glibc-2.28.patch Patch20: systemd-240-upstream_fix_return_values.patch Patch21: systemd-247-upstream-fixes-1.patch +Patch22: systemd-247-gnu-efi-3.0.13.patch License: GPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel @@ -109,8 +110,8 @@ Requires: udev = %{?epoch:%epoch:}%{version}-%{release} Requires: kbd Requires: dbus >= 1.13.2 Provides: laptop-mode-tools +Requires: filesystem >= 2.3-4mamba Obsoletes: laptop-mode-tools -BuildRoot: %{_tmppath}/%{name}-%{version}-root %description systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. @@ -220,10 +221,12 @@ This package include development files for building software using udev librarie #-D -T #:<< _EOF %patch21 -p1 +%patch22 -p1 sed -i "s|@bindir@|/bin|g" src/core/macros.systemd.in %build +#:<< _EOF # LANG Workaround for meson error export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" @@ -312,6 +315,12 @@ install -D -m0755 %{SOURCE17} %{buildroot}/lib/systemd/systemd-sysv-install install -d -m0755 %{buildroot}%{_sysconfdir}/repart.d install -d -m0755 %{buildroot}%{_prefix}/lib/repart.d +# fix /sbin/init symlink after flat filesystem migration +rm -f %{buildroot}/sbin/init +ln -s /lib/systemd/systemd %{buildroot}/sbin/init +rm -f %{buildroot}/sbin/resolvconf +ln -s /usr/bin/resolvectl %{buildroot}/sbin/resolvconf + %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" @@ -698,6 +707,12 @@ systemctl daemon-reload &>/dev/null || : %{_libdir}/pkgconfig/libudev.pc %changelog +* Tue Apr 20 2021 Silvan Calarco 247-5mamba +- fix for symlinks fixed in previous release + +* Mon Apr 19 2021 Silvan Calarco 247-4mamba +- fix /sbin/init and /sbin/resolvconf symlinks broken after flat bin dirs migration + * Sat Mar 06 2021 Silvan Calarco 247-3mamba - include rpm triggers file