The package rpms/efifs.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/efifs.git/commit/?id=c236306db5341a….
Change:
+%ifarch %{arm}
Thanks.
Full change:
============
commit c236306db5341adfca562f60f8e0d365d1f626e7
Author: Robert Scheck <robert(a)fedoraproject.org>
Date: Fri Jan 29 21:22:51 2021 +0100
Initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb913ea
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/efifs-*.tar.gz
+/edk2-*.tar.gz
+/grub-*.tar.gz
diff --git a/efifs-enable.sh b/efifs-enable.sh
new file mode 100644
index 0000000..0772fc4
--- /dev/null
+++ b/efifs-enable.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+# Small helper script to enable EfiFs drivers using efibootmgr
+# Copyright (C) 2020 Robert Scheck <robert(a)fedoraproject.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+
+[ $# -lt 1 ] && { echo "Usage: $(readlink -f "$0") </path/to/driver.efi>" >&2; exit 1; }
+command -v efibootmgr &> /dev/null || { echo "Error: efibootmgr(1) is missing!" >&2; exit 1; }
+
+for file in $@; do
+ if [ -f "${file}" ]; then
+ drv="$(readlink -f "${file}")"
+ esp="/boot/efi"
+ drv="${drv/$esp/}"
+ lbl="${drv##*/}"
+ lbl="${lbl%%.*}"
+ efi="${drv//\//\\}"
+ dev="$(findmnt -n -o source -T "${esp}")"
+ part=${dev#${dev%%[0-9]*}}
+ pdev="$(lsblk -dpno PKNAME "${dev}")"
+
+ efibootmgr -r -c -d "${pdev}" -p "${part}" -L "EfiFs ${lbl}" -l "${efi}" -q
+ else
+ echo "$(readlink -f "${file}"): File does not exist, skipping." >&2;
+ fi
+done
+
+efibootmgr -r -v
diff --git a/efifs.spec b/efifs.spec
new file mode 100644
index 0000000..0c330de
--- /dev/null
+++ b/efifs.spec
@@ -0,0 +1,109 @@
+# EFI/UEFI binaries are not ELF, but PE32/PE32+/COFF
+%global debug_package %{nil}
+
+# Vendor name for the EFI System Partition directory
+%global efi_vendor %{name}
+
+# Git commit mentioned at https://github.com/pbatard/efifs
+%global grub2_version 2.05-0
+%global grub2_commit d7cac52eb21b866ffec66dc8d1319cc0695c94ee
+
+# Preferrably the latest stable version shipped in Fedora
+%global edk2_stable_date 202008
+%global edk2_stable_str edk2-stable%{edk2_stable_date}
+
+Summary: Free software EFI/UEFI standalone file system drivers
+Name: efifs
+Version: 1.7
+Release: 2%{?dist}
+License: GPLv3+
+URL: https://efi.akeo.ie/
+Source0: https://github.com/pbatard/efifs/archive/v%{version}/%{name}-%{version}.tar…
+# Fedora's grub2 RPM packages don't provide neither a -devel subpackage nor any
+# patched GRUB2 sources such as grub-core/{kern/{err,list,misc},fs/{fshelp,<fs>}.c
+Source1: https://git.savannah.gnu.org/cgit/grub.git/snapshot/grub-%{grub2_commit}.ta…
+# Fedora's edk2 RPM packages might be nice, but unusable for EfiFs depending on
+# EDK II build artifacts and files such as MdePkg/MdePkg.dec, ShellPkg/ShellPkg.dec
+Source2: https://github.com/tianocore/edk2/archive/%{edk2_stable_str}.tar.gz
+# Small helper script to enable EfiFs drivers using efibootmgr
+Source3: efifs-enable.sh
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: make
+BuildRequires: libuuid-devel
+BuildRequires: python3
+%ifarch x86_64 %{ix86}
+BuildRequires: nasm
+%endif
+BuildRequires: efi-srpm-macros
+ExclusiveArch: %{efi}
+Requires: efi-filesystem
+Provides: bundled(grub2-efi-modules) = %{grub2_version}.git%(c=%{grub2_commit}; echo ${c:0:7})
+Provides: bundled(edk2-tools) = %{edk2_stable_date}01stable
+
+%description
+Free software EFI/UEFI standalone file system drivers, based on the GRUB 2.0
+read-only drivers: AFFS (Amiga Fast FileSystem), BFS (BeOS FileSystem), btrfs,
+exFAT, ext2/ext3/ext4, F2FS (experimental), HFS and HFS+ (Mac OS, including
+the compression support), ISO9660, JFS (Journaled FileSystem), nilfs2, NTFS
+(including compression support), ReiserFS, SFS (Amiga Smart FileSystem), UDF,
+UFS/FFS, UFS2/FFS2, XFS, ZFS and more.
+
+%prep
+%setup -q -T -c %{name}-%{version} -a 0 -a 2
+cp -p %{SOURCE3} .
+
+pushd %{name}-%{version}
+# Extract GRUB2 into place (Git submodule)
+tar -xf %{SOURCE1} --strip-components=1 --directory grub
+
+# Apply EfiFs upstream patch to GRUB2
+cd grub && patch -Np1 -i ../0001-GRUB-fixes.patch
+popd
+
+pushd edk2-%{edk2_stable_str}
+# Do not build BrotliCompress (because it's unused)
+sed -e '/BrotliCompress/d' -i BaseTools/Source/C/GNUmakefile
+
+# Symlink EfiFs into EDK II build-time working directory
+ln -s ../%{name}-%{version} EfiFsPkg
+popd
+
+%build
+pushd edk2-%{edk2_stable_str}
+export PYTHON_COMMAND=%{__python3}
+%make_build -C BaseTools EXTRA_OPTFLAGS="$RPM_OPT_FLAGS" EXTRA_LDFLAGS="$RPM_LD_FLAGS"
+source ./edksetup.sh --reconfig
+
+# EDK II violates UEFI 2.8 specification by not using AA64
+%ifarch aarch64
+%global efi_arch_upper AARCH64
+%endif
+
+# Fedora's armv7hl expects hardware floating-point ABI
+%ifarch %{arm}
+sed -e 's/-mfloat-abi=soft/-mfloat-abi=hard/' -i Conf/tools_def.txt
+%endif
+
+./EfiFsPkg/set_grub_cpu.sh %{efi_arch_upper}
+build -a %{efi_arch_upper} -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc
+
+%install
+install -d -m 0700 $RPM_BUILD_ROOT%{efi_esp_dir}/
+install -p -m 0700 edk2-%{edk2_stable_str}/Build/EfiFs/RELEASE_GCC5/%{efi_arch_upper}/*.efi $RPM_BUILD_ROOT%{efi_esp_dir}/
+
+%files
+%license %{name}-%{version}/LICENSE %{name}-%{version}/grub/COPYING
+%doc %{name}-%{version}/ChangeLog.txt %{name}-%{version}/README.md efifs-enable.sh
+%{efi_esp_dir}/
+
+%changelog
+* Sun Nov 29 2020 Robert Scheck <robert(a)fedoraproject.org> 1.7-2
+- Changes to match the Fedora Packaging Guidelines (#1902498)
+
+* Wed Nov 25 2020 Robert Scheck <robert(a)fedoraproject.org> 1.7-1
+- Upgrade to 1.7
+
+* Fri May 01 2020 Robert Scheck <robert(a)fedoraproject.org> 1.5-1
+- Upgrade to 1.5
+- Initial spec file for Fedora and Red Hat Enterprise Linux
diff --git a/sources b/sources
new file mode 100644
index 0000000..489f2b0
--- /dev/null
+++ b/sources
@@ -0,0 +1,3 @@
+SHA512 (efifs-1.7.tar.gz) = 51ccfdd6514201ed4d8d694e86d108cc6b7057e4a0fc2b85fb3d848315e8a922a164612f4860473074e8fec9b3ef44cf966a5a8787726c624ca8548174de9df9
+SHA512 (edk2-stable202008.tar.gz) = c32340104f27b9b85f79e934cc9eeb739d47b01e13975c88f39b053e9bc5a1ecfe579ab3b63fc7747cc328e104b337b53d41deb4470c3f20dbbd5552173a4666
+SHA512 (grub-d7cac52eb21b866ffec66dc8d1319cc0695c94ee.tar.gz) = 098b4c489818fd52fdff3d55eabb9e2f6c31d711039c92a8ebd5affaa2eae5bc659c759df25b63418a7791720ff34de05ffaa9053d18696ac51e551bae66af87
The package rpms/efifs.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/efifs.git/commit/?id=c236306db5341a….
Change:
+%ifarch %{arm}
Thanks.
Full change:
============
commit c236306db5341adfca562f60f8e0d365d1f626e7
Author: Robert Scheck <robert(a)fedoraproject.org>
Date: Fri Jan 29 21:22:51 2021 +0100
Initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb913ea
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/efifs-*.tar.gz
+/edk2-*.tar.gz
+/grub-*.tar.gz
diff --git a/efifs-enable.sh b/efifs-enable.sh
new file mode 100644
index 0000000..0772fc4
--- /dev/null
+++ b/efifs-enable.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+# Small helper script to enable EfiFs drivers using efibootmgr
+# Copyright (C) 2020 Robert Scheck <robert(a)fedoraproject.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+
+[ $# -lt 1 ] && { echo "Usage: $(readlink -f "$0") </path/to/driver.efi>" >&2; exit 1; }
+command -v efibootmgr &> /dev/null || { echo "Error: efibootmgr(1) is missing!" >&2; exit 1; }
+
+for file in $@; do
+ if [ -f "${file}" ]; then
+ drv="$(readlink -f "${file}")"
+ esp="/boot/efi"
+ drv="${drv/$esp/}"
+ lbl="${drv##*/}"
+ lbl="${lbl%%.*}"
+ efi="${drv//\//\\}"
+ dev="$(findmnt -n -o source -T "${esp}")"
+ part=${dev#${dev%%[0-9]*}}
+ pdev="$(lsblk -dpno PKNAME "${dev}")"
+
+ efibootmgr -r -c -d "${pdev}" -p "${part}" -L "EfiFs ${lbl}" -l "${efi}" -q
+ else
+ echo "$(readlink -f "${file}"): File does not exist, skipping." >&2;
+ fi
+done
+
+efibootmgr -r -v
diff --git a/efifs.spec b/efifs.spec
new file mode 100644
index 0000000..0c330de
--- /dev/null
+++ b/efifs.spec
@@ -0,0 +1,109 @@
+# EFI/UEFI binaries are not ELF, but PE32/PE32+/COFF
+%global debug_package %{nil}
+
+# Vendor name for the EFI System Partition directory
+%global efi_vendor %{name}
+
+# Git commit mentioned at https://github.com/pbatard/efifs
+%global grub2_version 2.05-0
+%global grub2_commit d7cac52eb21b866ffec66dc8d1319cc0695c94ee
+
+# Preferrably the latest stable version shipped in Fedora
+%global edk2_stable_date 202008
+%global edk2_stable_str edk2-stable%{edk2_stable_date}
+
+Summary: Free software EFI/UEFI standalone file system drivers
+Name: efifs
+Version: 1.7
+Release: 2%{?dist}
+License: GPLv3+
+URL: https://efi.akeo.ie/
+Source0: https://github.com/pbatard/efifs/archive/v%{version}/%{name}-%{version}.tar…
+# Fedora's grub2 RPM packages don't provide neither a -devel subpackage nor any
+# patched GRUB2 sources such as grub-core/{kern/{err,list,misc},fs/{fshelp,<fs>}.c
+Source1: https://git.savannah.gnu.org/cgit/grub.git/snapshot/grub-%{grub2_commit}.ta…
+# Fedora's edk2 RPM packages might be nice, but unusable for EfiFs depending on
+# EDK II build artifacts and files such as MdePkg/MdePkg.dec, ShellPkg/ShellPkg.dec
+Source2: https://github.com/tianocore/edk2/archive/%{edk2_stable_str}.tar.gz
+# Small helper script to enable EfiFs drivers using efibootmgr
+Source3: efifs-enable.sh
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: make
+BuildRequires: libuuid-devel
+BuildRequires: python3
+%ifarch x86_64 %{ix86}
+BuildRequires: nasm
+%endif
+BuildRequires: efi-srpm-macros
+ExclusiveArch: %{efi}
+Requires: efi-filesystem
+Provides: bundled(grub2-efi-modules) = %{grub2_version}.git%(c=%{grub2_commit}; echo ${c:0:7})
+Provides: bundled(edk2-tools) = %{edk2_stable_date}01stable
+
+%description
+Free software EFI/UEFI standalone file system drivers, based on the GRUB 2.0
+read-only drivers: AFFS (Amiga Fast FileSystem), BFS (BeOS FileSystem), btrfs,
+exFAT, ext2/ext3/ext4, F2FS (experimental), HFS and HFS+ (Mac OS, including
+the compression support), ISO9660, JFS (Journaled FileSystem), nilfs2, NTFS
+(including compression support), ReiserFS, SFS (Amiga Smart FileSystem), UDF,
+UFS/FFS, UFS2/FFS2, XFS, ZFS and more.
+
+%prep
+%setup -q -T -c %{name}-%{version} -a 0 -a 2
+cp -p %{SOURCE3} .
+
+pushd %{name}-%{version}
+# Extract GRUB2 into place (Git submodule)
+tar -xf %{SOURCE1} --strip-components=1 --directory grub
+
+# Apply EfiFs upstream patch to GRUB2
+cd grub && patch -Np1 -i ../0001-GRUB-fixes.patch
+popd
+
+pushd edk2-%{edk2_stable_str}
+# Do not build BrotliCompress (because it's unused)
+sed -e '/BrotliCompress/d' -i BaseTools/Source/C/GNUmakefile
+
+# Symlink EfiFs into EDK II build-time working directory
+ln -s ../%{name}-%{version} EfiFsPkg
+popd
+
+%build
+pushd edk2-%{edk2_stable_str}
+export PYTHON_COMMAND=%{__python3}
+%make_build -C BaseTools EXTRA_OPTFLAGS="$RPM_OPT_FLAGS" EXTRA_LDFLAGS="$RPM_LD_FLAGS"
+source ./edksetup.sh --reconfig
+
+# EDK II violates UEFI 2.8 specification by not using AA64
+%ifarch aarch64
+%global efi_arch_upper AARCH64
+%endif
+
+# Fedora's armv7hl expects hardware floating-point ABI
+%ifarch %{arm}
+sed -e 's/-mfloat-abi=soft/-mfloat-abi=hard/' -i Conf/tools_def.txt
+%endif
+
+./EfiFsPkg/set_grub_cpu.sh %{efi_arch_upper}
+build -a %{efi_arch_upper} -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc
+
+%install
+install -d -m 0700 $RPM_BUILD_ROOT%{efi_esp_dir}/
+install -p -m 0700 edk2-%{edk2_stable_str}/Build/EfiFs/RELEASE_GCC5/%{efi_arch_upper}/*.efi $RPM_BUILD_ROOT%{efi_esp_dir}/
+
+%files
+%license %{name}-%{version}/LICENSE %{name}-%{version}/grub/COPYING
+%doc %{name}-%{version}/ChangeLog.txt %{name}-%{version}/README.md efifs-enable.sh
+%{efi_esp_dir}/
+
+%changelog
+* Sun Nov 29 2020 Robert Scheck <robert(a)fedoraproject.org> 1.7-2
+- Changes to match the Fedora Packaging Guidelines (#1902498)
+
+* Wed Nov 25 2020 Robert Scheck <robert(a)fedoraproject.org> 1.7-1
+- Upgrade to 1.7
+
+* Fri May 01 2020 Robert Scheck <robert(a)fedoraproject.org> 1.5-1
+- Upgrade to 1.5
+- Initial spec file for Fedora and Red Hat Enterprise Linux
diff --git a/sources b/sources
new file mode 100644
index 0000000..489f2b0
--- /dev/null
+++ b/sources
@@ -0,0 +1,3 @@
+SHA512 (efifs-1.7.tar.gz) = 51ccfdd6514201ed4d8d694e86d108cc6b7057e4a0fc2b85fb3d848315e8a922a164612f4860473074e8fec9b3ef44cf966a5a8787726c624ca8548174de9df9
+SHA512 (edk2-stable202008.tar.gz) = c32340104f27b9b85f79e934cc9eeb739d47b01e13975c88f39b053e9bc5a1ecfe579ab3b63fc7747cc328e104b337b53d41deb4470c3f20dbbd5552173a4666
+SHA512 (grub-d7cac52eb21b866ffec66dc8d1319cc0695c94ee.tar.gz) = 098b4c489818fd52fdff3d55eabb9e2f6c31d711039c92a8ebd5affaa2eae5bc659c759df25b63418a7791720ff34de05ffaa9053d18696ac51e551bae66af87
The package rpms/efifs.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/efifs.git/commit/?id=c236306db5341a….
Change:
+%ifarch %{arm}
Thanks.
Full change:
============
commit c236306db5341adfca562f60f8e0d365d1f626e7
Author: Robert Scheck <robert(a)fedoraproject.org>
Date: Fri Jan 29 21:22:51 2021 +0100
Initial import
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb913ea
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/efifs-*.tar.gz
+/edk2-*.tar.gz
+/grub-*.tar.gz
diff --git a/efifs-enable.sh b/efifs-enable.sh
new file mode 100644
index 0000000..0772fc4
--- /dev/null
+++ b/efifs-enable.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+# Small helper script to enable EfiFs drivers using efibootmgr
+# Copyright (C) 2020 Robert Scheck <robert(a)fedoraproject.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+
+[ $# -lt 1 ] && { echo "Usage: $(readlink -f "$0") </path/to/driver.efi>" >&2; exit 1; }
+command -v efibootmgr &> /dev/null || { echo "Error: efibootmgr(1) is missing!" >&2; exit 1; }
+
+for file in $@; do
+ if [ -f "${file}" ]; then
+ drv="$(readlink -f "${file}")"
+ esp="/boot/efi"
+ drv="${drv/$esp/}"
+ lbl="${drv##*/}"
+ lbl="${lbl%%.*}"
+ efi="${drv//\//\\}"
+ dev="$(findmnt -n -o source -T "${esp}")"
+ part=${dev#${dev%%[0-9]*}}
+ pdev="$(lsblk -dpno PKNAME "${dev}")"
+
+ efibootmgr -r -c -d "${pdev}" -p "${part}" -L "EfiFs ${lbl}" -l "${efi}" -q
+ else
+ echo "$(readlink -f "${file}"): File does not exist, skipping." >&2;
+ fi
+done
+
+efibootmgr -r -v
diff --git a/efifs.spec b/efifs.spec
new file mode 100644
index 0000000..0c330de
--- /dev/null
+++ b/efifs.spec
@@ -0,0 +1,109 @@
+# EFI/UEFI binaries are not ELF, but PE32/PE32+/COFF
+%global debug_package %{nil}
+
+# Vendor name for the EFI System Partition directory
+%global efi_vendor %{name}
+
+# Git commit mentioned at https://github.com/pbatard/efifs
+%global grub2_version 2.05-0
+%global grub2_commit d7cac52eb21b866ffec66dc8d1319cc0695c94ee
+
+# Preferrably the latest stable version shipped in Fedora
+%global edk2_stable_date 202008
+%global edk2_stable_str edk2-stable%{edk2_stable_date}
+
+Summary: Free software EFI/UEFI standalone file system drivers
+Name: efifs
+Version: 1.7
+Release: 2%{?dist}
+License: GPLv3+
+URL: https://efi.akeo.ie/
+Source0: https://github.com/pbatard/efifs/archive/v%{version}/%{name}-%{version}.tar…
+# Fedora's grub2 RPM packages don't provide neither a -devel subpackage nor any
+# patched GRUB2 sources such as grub-core/{kern/{err,list,misc},fs/{fshelp,<fs>}.c
+Source1: https://git.savannah.gnu.org/cgit/grub.git/snapshot/grub-%{grub2_commit}.ta…
+# Fedora's edk2 RPM packages might be nice, but unusable for EfiFs depending on
+# EDK II build artifacts and files such as MdePkg/MdePkg.dec, ShellPkg/ShellPkg.dec
+Source2: https://github.com/tianocore/edk2/archive/%{edk2_stable_str}.tar.gz
+# Small helper script to enable EfiFs drivers using efibootmgr
+Source3: efifs-enable.sh
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: make
+BuildRequires: libuuid-devel
+BuildRequires: python3
+%ifarch x86_64 %{ix86}
+BuildRequires: nasm
+%endif
+BuildRequires: efi-srpm-macros
+ExclusiveArch: %{efi}
+Requires: efi-filesystem
+Provides: bundled(grub2-efi-modules) = %{grub2_version}.git%(c=%{grub2_commit}; echo ${c:0:7})
+Provides: bundled(edk2-tools) = %{edk2_stable_date}01stable
+
+%description
+Free software EFI/UEFI standalone file system drivers, based on the GRUB 2.0
+read-only drivers: AFFS (Amiga Fast FileSystem), BFS (BeOS FileSystem), btrfs,
+exFAT, ext2/ext3/ext4, F2FS (experimental), HFS and HFS+ (Mac OS, including
+the compression support), ISO9660, JFS (Journaled FileSystem), nilfs2, NTFS
+(including compression support), ReiserFS, SFS (Amiga Smart FileSystem), UDF,
+UFS/FFS, UFS2/FFS2, XFS, ZFS and more.
+
+%prep
+%setup -q -T -c %{name}-%{version} -a 0 -a 2
+cp -p %{SOURCE3} .
+
+pushd %{name}-%{version}
+# Extract GRUB2 into place (Git submodule)
+tar -xf %{SOURCE1} --strip-components=1 --directory grub
+
+# Apply EfiFs upstream patch to GRUB2
+cd grub && patch -Np1 -i ../0001-GRUB-fixes.patch
+popd
+
+pushd edk2-%{edk2_stable_str}
+# Do not build BrotliCompress (because it's unused)
+sed -e '/BrotliCompress/d' -i BaseTools/Source/C/GNUmakefile
+
+# Symlink EfiFs into EDK II build-time working directory
+ln -s ../%{name}-%{version} EfiFsPkg
+popd
+
+%build
+pushd edk2-%{edk2_stable_str}
+export PYTHON_COMMAND=%{__python3}
+%make_build -C BaseTools EXTRA_OPTFLAGS="$RPM_OPT_FLAGS" EXTRA_LDFLAGS="$RPM_LD_FLAGS"
+source ./edksetup.sh --reconfig
+
+# EDK II violates UEFI 2.8 specification by not using AA64
+%ifarch aarch64
+%global efi_arch_upper AARCH64
+%endif
+
+# Fedora's armv7hl expects hardware floating-point ABI
+%ifarch %{arm}
+sed -e 's/-mfloat-abi=soft/-mfloat-abi=hard/' -i Conf/tools_def.txt
+%endif
+
+./EfiFsPkg/set_grub_cpu.sh %{efi_arch_upper}
+build -a %{efi_arch_upper} -b RELEASE -t GCC5 -p EfiFsPkg/EfiFsPkg.dsc
+
+%install
+install -d -m 0700 $RPM_BUILD_ROOT%{efi_esp_dir}/
+install -p -m 0700 edk2-%{edk2_stable_str}/Build/EfiFs/RELEASE_GCC5/%{efi_arch_upper}/*.efi $RPM_BUILD_ROOT%{efi_esp_dir}/
+
+%files
+%license %{name}-%{version}/LICENSE %{name}-%{version}/grub/COPYING
+%doc %{name}-%{version}/ChangeLog.txt %{name}-%{version}/README.md efifs-enable.sh
+%{efi_esp_dir}/
+
+%changelog
+* Sun Nov 29 2020 Robert Scheck <robert(a)fedoraproject.org> 1.7-2
+- Changes to match the Fedora Packaging Guidelines (#1902498)
+
+* Wed Nov 25 2020 Robert Scheck <robert(a)fedoraproject.org> 1.7-1
+- Upgrade to 1.7
+
+* Fri May 01 2020 Robert Scheck <robert(a)fedoraproject.org> 1.5-1
+- Upgrade to 1.5
+- Initial spec file for Fedora and Red Hat Enterprise Linux
diff --git a/sources b/sources
new file mode 100644
index 0000000..489f2b0
--- /dev/null
+++ b/sources
@@ -0,0 +1,3 @@
+SHA512 (efifs-1.7.tar.gz) = 51ccfdd6514201ed4d8d694e86d108cc6b7057e4a0fc2b85fb3d848315e8a922a164612f4860473074e8fec9b3ef44cf966a5a8787726c624ca8548174de9df9
+SHA512 (edk2-stable202008.tar.gz) = c32340104f27b9b85f79e934cc9eeb739d47b01e13975c88f39b053e9bc5a1ecfe579ab3b63fc7747cc328e104b337b53d41deb4470c3f20dbbd5552173a4666
+SHA512 (grub-d7cac52eb21b866ffec66dc8d1319cc0695c94ee.tar.gz) = 098b4c489818fd52fdff3d55eabb9e2f6c31d711039c92a8ebd5affaa2eae5bc659c759df25b63418a7791720ff34de05ffaa9053d18696ac51e551bae66af87