summaryrefslogtreecommitdiff
path: root/libre/systemd
diff options
context:
space:
mode:
Diffstat (limited to 'libre/systemd')
-rw-r--r--libre/systemd/PKGBUILD16
-rw-r--r--libre/systemd/systemd-gnu-efi.patch162
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