summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmar Vega Ramos <ovruni@gnu.org.pe>2021-04-02 19:47:40 -0500
committerOmar Vega Ramos <ovruni@gnu.org.pe>2021-04-02 19:47:40 -0500
commit16046e999119dc1f5b5f787e833836617a6fa189 (patch)
tree1547f26e08d39ea0e066128ead9dad56b78b8654
parentacaf58c5e47b673a78298447efab31128b0652ae (diff)
systemd-248-1.parabola1: updating version
-rw-r--r--libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch15
-rw-r--r--libre/systemd/0002-Disable-SYSTEMD_URLIFY-by-default.patch23
-rw-r--r--libre/systemd/0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch23
-rw-r--r--libre/systemd/PKGBUILD41
-rw-r--r--libre/systemd/initcpio-install-systemd12
-rw-r--r--libre/systemd/systemd-gnu-efi.patch162
6 files changed, 81 insertions, 195 deletions
diff --git a/libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch b/libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch
index ccc9ad2ad..3abb448bf 100644
--- a/libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch
+++ b/libre/systemd/0001-Use-Arch-Linux-device-access-groups.patch
@@ -1,17 +1,21 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 6 Mar 2018 23:39:47 +0100
Subject: [PATCH] Use Arch Linux' device access groups
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
cdrom → optical
dialout → uucp
tape → storage
---
rules.d/50-udev-default.rules.in | 14 +++++++-------
- sysusers.d/basic.conf.in | 6 +++---
+ sysusers.d/basic.conf.in | 6 +++---
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/rules.d/50-udev-default.rules.in b/rules.d/50-udev-default.rules.in
-index 191f56f42..f81c4d0fc 100644
+index edfa8bb107..35b8d4ba41 100644
--- a/rules.d/50-udev-default.rules.in
+++ b/rules.d/50-udev-default.rules.in
@@ -22,7 +22,7 @@ SUBSYSTEM=="tty", KERNEL=="sclp_line[0-9]*", GROUP="tty", MODE="0620"
@@ -23,7 +27,7 @@ index 191f56f42..f81c4d0fc 100644
SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
-@@ -57,13 +57,13 @@ KERNEL=="irlpt[0-9]*", GROUP="lp"
+@@ -62,13 +62,13 @@ KERNEL=="irlpt[0-9]*", GROUP="lp"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp"
SUBSYSTEM=="block", GROUP="disk"
@@ -44,10 +48,10 @@ index 191f56f42..f81c4d0fc 100644
KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control"
diff --git a/sysusers.d/basic.conf.in b/sysusers.d/basic.conf.in
-index 8e358c02d..33e513a36 100644
+index 4be0bd869e..cc3721b58a 100644
--- a/sysusers.d/basic.conf.in
+++ b/sysusers.d/basic.conf.in
-@@ -24,14 +24,14 @@ g utmp - - -
+@@ -24,15 +24,15 @@ g utmp - - -
# Hardware access groups
g audio - - -
@@ -59,6 +63,7 @@ index 8e358c02d..33e513a36 100644
g lp - - -
+g optical - - -
g render - - -
+ g sgx - - -
-g tape - - -
+g storage - - -
+g uucp - - -
diff --git a/libre/systemd/0002-Disable-SYSTEMD_URLIFY-by-default.patch b/libre/systemd/0002-Disable-SYSTEMD_URLIFY-by-default.patch
new file mode 100644
index 000000000..b2f04ee7a
--- /dev/null
+++ b/libre/systemd/0002-Disable-SYSTEMD_URLIFY-by-default.patch
@@ -0,0 +1,23 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Mon, 29 Mar 2021 00:12:34 +0000
+Subject: [PATCH] Disable SYSTEMD_URLIFY by default
+
+Until https://github.com/gwsw/less/issues/140 is fixed.
+---
+ src/shared/pretty-print.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/shared/pretty-print.c b/src/shared/pretty-print.c
+index 0f02f32760..1d0f9901dd 100644
+--- a/src/shared/pretty-print.c
++++ b/src/shared/pretty-print.c
+@@ -28,7 +28,7 @@ bool urlify_enabled(void) {
+ if (val >= 0)
+ cached_urlify_enabled = val;
+ else
+- cached_urlify_enabled = colors_enabled();
++ cached_urlify_enabled = 0;
+ }
+
+ return cached_urlify_enabled;
diff --git a/libre/systemd/0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch b/libre/systemd/0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch
index 5e170ce34..2c38cc7e3 100644
--- a/libre/systemd/0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch
+++ b/libre/systemd/0005-FSDG-systemd-resolved-Fallback-hostname-to-gnu-linux.patch
@@ -12,18 +12,23 @@ diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c
index 01372fc66b..9155ce5c2e 100644
--- a/src/resolve/resolved-manager.c
+++ b/src/resolve/resolved-manager.c
-@@ -387,10 +387,10 @@ static int determine_hostname(char **full_hostname, char **llmnr_hostname, char
- static const char *fallback_hostname(void) {
+@@ -388,7 +388,7 @@
+ static char* fallback_hostname(void) {
- /* Determine the fall back hostname. For exposing this system to the outside world, we cannot have it to be
-- * "localhost" even if that's the compiled in hostname. In this case, let's revert to "linux" instead. */
-+ * "localhost" even if that's the compiled in hostname. In this case, let's revert to "gnu-linux" instead. */
+ /* Determine the fall back hostname. For exposing this system to the outside world, we cannot have it
+- * to be "localhost" even if that's the default hostname. In this case, let's revert to "linux"
++ * to be "localhost" even if that's the default hostname. In this case, let's revert to "gnu-linux"
+ * instead. */
- if (is_localhost(FALLBACK_HOSTNAME))
-- return "linux";
-+ return "gnu-linux";
+ _cleanup_free_ char *n = get_default_hostname();
+@@ -396,7 +396,7 @@
+ return NULL;
- return FALLBACK_HOSTNAME;
+ if (is_localhost(n))
+- return strdup("linux");
++ return strdup("gnu-linux");
+
+ return TAKE_PTR(n);
}
--
2.18.0
diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD
index 2f4d7ad79..4c8f04b51 100644
--- a/libre/systemd/PKGBUILD
+++ b/libre/systemd/PKGBUILD
@@ -11,9 +11,10 @@ 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='f948f652768a5279087e13961ebb87f345626e2e' # git rev-parse v${pkgver}
-pkgver=247.4
-pkgrel=2
+_tag='e13126bd95857eb9344e030edbb4c603aab63884' # git rev-parse v${_tag_name}
+_tag_name=248
+pkgver="${_tag_name/-/}"
+pkgrel=1
pkgrel+=.parabola1
arch=('x86_64')
arch+=('i686' 'armv7h' 'ppc64le')
@@ -23,15 +24,16 @@ makedepends=('acl' 'cryptsetup' 'docbook-xsl' 'gperf' 'lz4' 'xz' 'pam' 'libelf'
'libmicrohttpd' 'libxcrypt' 'libxslt' 'util-linux' 'linux-api-headers'
'python-lxml' 'quota-tools' 'shadow' 'git'
'meson' 'libseccomp' 'pcre2' 'audit' 'kexec-tools' 'libxkbcommon'
- 'bash-completion' 'p11-kit' 'systemd')
+ 'bash-completion' 'p11-kit' 'systemd' 'libfido2')
makedepends_i686=('gnu-efi-libs' 'pkgconf')
makedepends_x86_64=('gnu-efi-libs')
options=('strip')
validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4' # Lennart Poettering <lennart@poettering.net>
'5C251B5FC54EB2F80F407AAAC54CA336CFEB557E') # Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}?signed"
- "git+https://github.com/systemd/systemd#tag=v${pkgver%.*}?signed"
+ "git+https://github.com/systemd/systemd#tag=v${_tag_name%.*}?signed"
'0001-Use-Arch-Linux-device-access-groups.patch'
+ '0002-Disable-SYSTEMD_URLIFY-by-default.patch'
'initcpio-hook-udev'
'initcpio-install-systemd'
'initcpio-install-udev'
@@ -56,13 +58,13 @@ 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'
- 'systemd-gnu-efi.patch')
+ '0007-FSDG-bootctl-Say-Systemd-Boot-Manager-instead-of-Lin.patch')
sha512sums=('SKIP'
'SKIP'
- 'e38c7c422c82953f9c2476a5ab8009d614cbec839e4088bff5db7698ddc84e3d8ed64f32ed323f57b1913c5c9703546f794996cb415ed7cdda930b627962a3c4'
+ '882e486b6d88c8bafc50088845e41a49686e98981967f72ca1fb4ef07a01767400632f4b648fd31857d2a2a24a8fd65bcc2a8983284dd4fff2380732741d4c41'
+ '313f3d6cc3d88f718509007e029213a82d84b196afdadc6ef560580acf70ab480aaecd7622f51726cc1af7d7841c6ec5390f72890b055a54fc74722341395651'
'f0d933e8c6064ed830dec54049b0a01e27be87203208f6ae982f10fb4eddc7258cb2919d594cbfb9a33e74c3510cfd682f3416ba8e804387ab87d1a217eb4b73'
- '8e76f8334b95ce7fee9190f4a1016b16109f3a75b68635fc227b2b4791cf8179ef09b532b66b4ed885ddf98ed76befed3106f3c3088f1819ed8cdf4c13e0805a'
+ '6e21d05ca620491ee604f29cfa15d3d03565342939a0391f496c42ab4b2cd056070bd0504160c6c931af722d3dcd59197a0032ca95c6dd905ee2018a0f8ae148'
'a25b28af2e8c516c3a2eec4e64b8c7f70c21f974af4a955a4a9d45fd3e3ff0d2a98b4419fe425d47152d5acae77d64e69d8d014a7209524b75a81b0edb10bf3a'
'70b3f1d6aaa9cd4b6b34055a587554770c34194100b17b2ef3aaf4f16f68da0865f6b3ae443b3252d395e80efabd412b763259ffb76c902b60e23b6b522e3cc8'
'6c6f579644ea2ebb6b46ee274ab15110718b0de40def8c30173ba8480b045d403f2aedd15b50ad9b96453f4ad56920d1350ff76563755bb9a80b10fa7f64f1d9'
@@ -83,17 +85,14 @@ sha512sums=('SKIP'
'3536a497e4d6cfae76296be7bf903c7645d6a85f96f57256196282f91d3845876d74ca121efeb81df8d524ec3c53f614157a90d213a5d3c4bb14958be701fff9'
'fd0df3d365892d4d461a78bb0b728201e81c1269af07a38e134fadfc0ffb29aade7642142d128abcf88803b86494d7629ff5990359ef067feea3d476c7238a67'
'e9e884015a40dc796fd8cbd8f79b3b9eebc7e48a332b22d52104c21c492be9982b35b7dd30bc29f2c2d274707ffd043eda059659844a4cd50eb433b8a3f7648c'
- '0d6b894149ec8d0612d1be1dee5daa1768345232e450435ddc750e36a8309dd96782a92f0220169c69103b1c4632af708e4a737cb7ba817944c92dcb61379a30'
+ 'c6a8a56c54415a266dcb57cc24fd91d085ca7298aca6b522e626f41ed216b13c9695ff4d209f7e60d24fb5e65e40ef5151c8d95db6950eda8a4150d28fcd56be'
'34acbb7c47b5ccd14adb6982b734cd718d478e3caf3b7f4e15795c3ba39f3c3f03b0a3f8f5a0c29b4342cd923f892daf55dd22598392900946ea8d185c706c78'
- '28a5b3fc9e2c5cec9267bb96725c73ee77788514f140c0cf8df765af64bc8130dd02f4863d9128ac45d54256b2ab4f2b06d1a3f65660ce1dfba5727618cd1839'
- 'e4e2bb0b0777a297a4c2b32b35a9a7c03e4de2ccf00f44454f1dcf0f441ba41f20d812d4771863612143a7e9b1df5e40e91b05e98de415e354b008fece3ca4da')
+ '28a5b3fc9e2c5cec9267bb96725c73ee77788514f140c0cf8df765af64bc8130dd02f4863d9128ac45d54256b2ab4f2b06d1a3f65660ce1dfba5727618cd1839')
_backports=(
)
_reverts=(
- # resolved: gracefully handle with packets with too large RR count
- 'fdfffdaf20a18a50c9a6d858359cf4af6d2f4c8b'
)
prepare() {
@@ -114,8 +113,9 @@ 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
+
+ # https://github.com/gwsw/less/issues/140
+ patch -Np1 -i ../0002-Disable-SYSTEMD_URLIFY-by-default.patch
# apply FSDG patches
local _patch
@@ -160,9 +160,10 @@ build() {
-Ddbuspolicydir=/usr/share/dbus-1/system.d
-Ddefault-dnssec=no
- -Ddefault-hierarchy=hybrid
+ -Ddefault-hierarchy=unified
-Ddefault-kill-user-processes=false
-Ddefault-locale=C
+ -Dlocalegen-path=/usr/bin/locale-gen
-Ddns-over-tls=openssl
-Dfallback-hostname='parabola'
-Dnologin-path=/usr/bin/nologin
@@ -244,7 +245,8 @@ package_systemd() {
'quota-tools: kernel-level quota management'
'systemd-sysvcompat: symlink package to provide sysvinit binaries'
'polkit: allow administration as unprivileged user'
- 'curl: machinectl pull-tar and pull-raw')
+ 'curl: machinectl pull-tar and pull-raw'
+ 'libfido2: unlocking LUKS2 volumes')
backup=(etc/pam.d/systemd-user
etc/systemd/coredump.conf
etc/systemd/homed.conf
@@ -253,6 +255,7 @@ package_systemd() {
etc/systemd/journal-upload.conf
etc/systemd/logind.conf
etc/systemd/networkd.conf
+ etc/systemd/oomd.conf
etc/systemd/pstore.conf
etc/systemd/resolved.conf
etc/systemd/sleep.conf
@@ -353,7 +356,7 @@ package_systemd-libs() {
package_systemd-libsystemd() {
pkgdesc='systemd client library'
- depends=('glibc' 'libcap' 'libcap.so' 'libgcrypt' 'lz4' 'xz' 'zstd')
+ depends=('glibc' 'libcap' 'libcap.so' 'libgcrypt' 'libp11-kit' 'lz4' 'xz' 'zstd')
license=('LGPL2.1')
provides=('libsystemd.so')
diff --git a/libre/systemd/initcpio-install-systemd b/libre/systemd/initcpio-install-systemd
index 18846528c..7c2c86c27 100644
--- a/libre/systemd/initcpio-install-systemd
+++ b/libre/systemd/initcpio-install-systemd
@@ -125,6 +125,7 @@ build() {
# udev rules and systemd units
map add_udev_rule "$rules" \
50-udev-default.rules \
+ 60-fido-id.rules \
60-persistent-storage.rules \
64-btrfs.rules \
80-drivers.rules \
@@ -163,6 +164,17 @@ build() {
rescue.target \
emergency.target
+ # add libraries dlopen()ed by systemd and its tools
+ for LIB in fido2; do
+ for FILE in $(find /usr/lib/ -name "lib${LIB}.so*"); do
+ if [[ -L "${FILE}" ]]; then
+ add_symlink "${FILE}"
+ else
+ add_binary "${FILE}"
+ fi
+ done
+ done
+
add_symlink "/usr/lib/systemd/system/default.target" "initrd.target"
add_symlink "/usr/lib/systemd/system/ctrl-alt-del.target" "reboot.target"
diff --git a/libre/systemd/systemd-gnu-efi.patch b/libre/systemd/systemd-gnu-efi.patch
deleted file mode 100644
index d7a70f42c..000000000
--- a/libre/systemd/systemd-gnu-efi.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-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