diff options
Diffstat (limited to 'libre/systemd')
-rw-r--r-- | libre/systemd/PKGBUILD | 16 | ||||
-rw-r--r-- | libre/systemd/systemd-gnu-efi.patch | 162 |
2 files changed, 173 insertions, 5 deletions
diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD index 79745ec2e..2f4d7ad79 100644 --- a/libre/systemd/PKGBUILD +++ b/libre/systemd/PKGBUILD @@ -11,9 +11,9 @@ pkgname+=('systemd-common' 'systemd-udev') # We split Arch's systemd-libs into systemd-$X, for the following $X: _systemd_libs=('libsystemd' 'libudev' 'nss-systemd' 'nss-myhostname' 'nss-mymachines' 'nss-resolve') pkgname+=("${_systemd_libs[@]/#/systemd-}") -_tag='5ca6cc7f6e95bd98bb014126040d4a5fae541511' # git rev-parse v${pkgver} -pkgver=247.3 -pkgrel=1 +_tag='f948f652768a5279087e13961ebb87f345626e2e' # git rev-parse v${pkgver} +pkgver=247.4 +pkgrel=2 pkgrel+=.parabola1 arch=('x86_64') arch+=('i686' 'armv7h' 'ppc64le') @@ -56,7 +56,8 @@ source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}?signed" '0004-FSDG-os-release-Default-ID-to-gnu-linux-instead-of-l.patch' '0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch' '0006-FSDG-man-Use-FSDG-operating-systems-as-examples.patch' - '0007-FSDG-bootctl-Say-Systemd-Boot-Manager-instead-of-Lin.patch') + '0007-FSDG-bootctl-Say-Systemd-Boot-Manager-instead-of-Lin.patch' + 'systemd-gnu-efi.patch') sha512sums=('SKIP' 'SKIP' 'e38c7c422c82953f9c2476a5ab8009d614cbec839e4088bff5db7698ddc84e3d8ed64f32ed323f57b1913c5c9703546f794996cb415ed7cdda930b627962a3c4' @@ -84,12 +85,15 @@ sha512sums=('SKIP' 'e9e884015a40dc796fd8cbd8f79b3b9eebc7e48a332b22d52104c21c492be9982b35b7dd30bc29f2c2d274707ffd043eda059659844a4cd50eb433b8a3f7648c' '0d6b894149ec8d0612d1be1dee5daa1768345232e450435ddc750e36a8309dd96782a92f0220169c69103b1c4632af708e4a737cb7ba817944c92dcb61379a30' '34acbb7c47b5ccd14adb6982b734cd718d478e3caf3b7f4e15795c3ba39f3c3f03b0a3f8f5a0c29b4342cd923f892daf55dd22598392900946ea8d185c706c78' - '28a5b3fc9e2c5cec9267bb96725c73ee77788514f140c0cf8df765af64bc8130dd02f4863d9128ac45d54256b2ab4f2b06d1a3f65660ce1dfba5727618cd1839') + '28a5b3fc9e2c5cec9267bb96725c73ee77788514f140c0cf8df765af64bc8130dd02f4863d9128ac45d54256b2ab4f2b06d1a3f65660ce1dfba5727618cd1839' + 'e4e2bb0b0777a297a4c2b32b35a9a7c03e4de2ccf00f44454f1dcf0f441ba41f20d812d4771863612143a7e9b1df5e40e91b05e98de415e354b008fece3ca4da') _backports=( ) _reverts=( + # resolved: gracefully handle with packets with too large RR count + 'fdfffdaf20a18a50c9a6d858359cf4af6d2f4c8b' ) prepare() { @@ -110,6 +114,8 @@ prepare() { # Replace cdrom/dialout/tape groups with optical/uucp/storage patch -Np1 -i ../0001-Use-Arch-Linux-device-access-groups.patch + # Fix FS#70046 + patch -Np1 -i ../systemd-gnu-efi.patch # apply FSDG patches local _patch diff --git a/libre/systemd/systemd-gnu-efi.patch b/libre/systemd/systemd-gnu-efi.patch new file mode 100644 index 000000000..d7a70f42c --- /dev/null +++ b/libre/systemd/systemd-gnu-efi.patch @@ -0,0 +1,162 @@ +diff -rauN systemd/src/boot/efi/console.c systemd-gnu-efi-patch/src/boot/efi/console.c +--- systemd/src/boot/efi/console.c 2021-03-18 08:29:47.379875918 +0100 ++++ systemd-gnu-efi-patch/src/boot/efi/console.c 2021-03-18 08:31:44.879432904 +0100 +@@ -9,63 +9,8 @@ + #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; +- ++#define EFI_SIMPLE_TEXT_INPUT_EX_GUID &(EFI_GUID) EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID ++ + 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 -rauN systemd/src/boot/efi/console.h systemd-gnu-efi-patch/src/boot/efi/console.h +--- systemd/src/boot/efi/console.h 2021-03-18 08:29:47.379875918 +0100 ++++ systemd-gnu-efi-patch/src/boot/efi/console.h 2021-03-18 08:32:00.926039744 +0100 +@@ -1,12 +1,8 @@ + /* 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) + #define KEYPRESS(keys, scan, uni) ((((UINT64)keys) << 32) | (((UINT64)scan) << 16) | (uni)) +diff -rauN systemd/src/boot/efi/missing_efi.h systemd-gnu-efi-patch/src/boot/efi/missing_efi.h +--- systemd/src/boot/efi/missing_efi.h 2021-03-18 08:29:47.379875918 +0100 ++++ systemd-gnu-efi-patch/src/boot/efi/missing_efi.h 2021-03-18 08:33:21.632407838 +0100 +@@ -52,4 +52,71 @@ + EFI_RNG_GET_RNG GetRNG; + } EFI_RNG_PROTOCOL; + ++#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 ++ + #endif |