Compare commits

...

No commits in common. "c8" and "a10s" have entirely different histories.
c8 ... a10s

14 changed files with 395 additions and 178 deletions

View File

@ -1 +0,0 @@
d8c779df5999416a0376754b7a8712d990aea547 SOURCES/efi-rpm-macros-3.tar.bz2

10
.gitignore vendored
View File

@ -1 +1,9 @@
SOURCES/efi-rpm-macros-3.tar.bz2 *~
*.sw?
*.rpm
*.tar.*
.*.sw?
.build-*.log
efi-rpm-macros-*/
x86_64/
noarch/

View File

@ -0,0 +1,53 @@
From 20e624e0ed69a65e8c2365225287206c2cf81215 Mon Sep 17 00:00:00 2001
From: Andrew Lukoshko <alukoshko@almalinux.org>
Date: Mon, 5 Aug 2024 13:59:24 +0000
Subject: [PATCH] Add support for versioned x86_64 arches
---
Makefile | 2 +-
efi-rpm-macros.spec.in | 2 +-
macros.efi-srpm.in | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index d410bc4..1d12fba 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ override EFI_ESP_ROOT=/boot/efi
endif
EFI_ARCHES ?= $(call get-config,arches)
ifeq ($(EFI_ARCHES),)
-override EFI_ARCHES="x86_64 aarch64 %{arm} %{ix86}"
+override EFI_ARCHES="%{x86_64} aarch64 %{arm} %{ix86}"
endif
EFI_VENDOR ?= $(call get-config,vendor)
diff --git a/efi-rpm-macros.spec.in b/efi-rpm-macros.spec.in
index 6f0e7b0..4c22053 100644
--- a/efi-rpm-macros.spec.in
+++ b/efi-rpm-macros.spec.in
@@ -36,7 +36,7 @@ machine bootloaders and tools.
%autosetup -S git_am -n %{name}-@@EFI_SOURCE_VERSION@@
git config --local --add efi.vendor "%{_efi_vendor_}"
git config --local --add efi.esp-root /boot/efi
-git config --local --add efi.arches "x86_64 aarch64 %{arm} %{ix86}"
+git config --local --add efi.arches "%{x86_64} aarch64 %{arm} %{ix86}"
%build
%make_build clean all
diff --git a/macros.efi-srpm.in b/macros.efi-srpm.in
index f91ea31..3f0780a 100644
--- a/macros.efi-srpm.in
+++ b/macros.efi-srpm.in
@@ -29,7 +29,7 @@
local function getarch()
if arch("ia64") then
return("ia64")
- elseif arch("x86_64") then
+ elseif arch("%{x86_64}") then
return("x64")
elseif arch("%{ix86}") then
return("ia32")
--
2.43.5

View File

@ -0,0 +1,26 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Tue, 31 Aug 2021 16:33:07 -0400
Subject: [PATCH] Don't have arm as an alt arch of aarch64
The compiler isn't actually set up in a way that lets us do this without
a cross compiler, so we shouldn't do this this way.
Signed-off-by: Peter Jones <pjones@redhat.com>
---
macros.efi-srpm.in | 2 --
1 file changed, 2 deletions(-)
diff --git a/macros.efi-srpm.in b/macros.efi-srpm.in
index 4d7b019..00503f1 100644
--- a/macros.efi-srpm.in
+++ b/macros.efi-srpm.in
@@ -45,8 +45,6 @@
local function getaltarch()
if arch("x86_64") then
return("ia32")
- elseif arch("aarch64") then
- return("arm")
else
return("none")
end

View File

@ -0,0 +1,29 @@
From 110b9c24200ff90c5d09cc2bf41df728810a0e0e Mon Sep 17 00:00:00 2001
From: Sandro Bonazzola <sbonazzo@redhat.com>
Date: Wed, 3 May 2023 11:20:36 +0200
Subject: [PATCH] Makefile: fix permission on /boot/efi/EFI
Ensure /boot/efi/EFI is created with 0700 mode.
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=2144459
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 7d56eae..37e97a5 100644
--- a/Makefile
+++ b/Makefile
@@ -65,6 +65,7 @@ install : $(TARGETS)
install -d -m 0755 $(DESTDIR)/boot ; \
fi
install -d -m 0700 $(DESTDIR)/$(EFI_ESP_ROOT)
+ install -d -m 0700 $(DESTDIR)/$(EFI_ESP_ROOT)/EFI
install -d -m 0700 $(DESTDIR)/$(EFI_ESP_ROOT)/EFI/BOOT
install -d -m 0700 $(DESTDIR)/$(EFI_ESP_ROOT)/EFI/$(EFI_VENDOR)
--
2.40.1

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# efi-rpm-macros
The efi-rpm-macros package

View File

@ -1,74 +0,0 @@
From 29e47cd8011b1569c4a73c8e395c7fb5192e6dc1 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Fri, 4 May 2018 15:02:14 -0400
Subject: [PATCH] macros.efi-srpm: make all of our macros always expandable,
even if wrong
In particular, arch and altarch give "none", and when they do efi_has_arch
and efi_has_alt_arch are 0 (respectively). if they're correct, they'll
be 1.
Signed-off-by: Peter Jones <pjones@redhat.com>
---
macros.efi-srpm.in | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/macros.efi-srpm.in b/macros.efi-srpm.in
index 5f8a784af8a..f3b4c68b2f9 100644
--- a/macros.efi-srpm.in
+++ b/macros.efi-srpm.in
@@ -38,7 +38,7 @@
elseif arch("%{arm}") then
return("arm")
else
- return("")
+ return("none")
end
end
-- alt arch
@@ -46,24 +46,30 @@
if arch("x86_64") then
return("ia32")
else
- return(nil)
+ return("none")
end
end
-- make some macros
local done = rpm.expand("%{?_efi}")
if done == nil or done == "" then
+ local arch = getarch()
local alt = getaltarch()
print("%global _efi @@EFI_ARCHES@@\\n")
print("%global _efi_vendor @@EFI_VENDOR@@\\n")
+ if arch == "none" then
+ print("%global _efi_has_arch 0\\n")
+ else
+ print("%global _efi_has_arch 1\\n")
+ end
print("%global _efi_arch " .. getarch() .. "\\n")
print("%global _efi_arch_upper " .. string.upper(getarch()) .. "\\n")
- if alt == nil then
+ if alt == "none" then
print("%global _efi_has_alt_arch 0\\n")
else
print("%global _efi_has_alt_arch 1\\n")
- print("%global _efi_alt_arch " .. alt .. "\\n")
- print("%global _efi_alt_arch_upper " .. string.upper(alt) .. "\\n")
end
+ print("%global _efi_alt_arch " .. alt .. "\\n")
+ print("%global _efi_alt_arch_upper " .. string.upper(alt) .. "\\n")
end
}}
@@ -79,6 +85,7 @@
%efi_arch %{expand:%{_efi_srpm_macros_setup}}%{_efi_arch}
%efi_arch_upper %{expand:%{_efi_srpm_macros_setup}}%{_efi_arch_upper}
+%efi_has_arch %{expand:%{_efi_srpm_macros_setup}}0%{_efi_has_arch}
%efi_has_alt_arch %{expand:%{_efi_srpm_macros_setup}}0%{_efi_has_alt_arch}
%efi_alt_arch %{expand:%{_efi_srpm_macros_setup}}%{?_efi_alt_arch}%{nil}
%efi_alt_arch_upper %{expand:%{_efi_srpm_macros_setup}}%{?_efi_alt_arch_upper}%{nil}
--
2.14.3

View File

@ -1,102 +0,0 @@
Summary: Common RPM Macros for building EFI-related packages
Name: efi-rpm-macros
Version: 3
Release: 3%{?dist}
Group: Development/System
License: GPLv3+
URL: https://github.com/rhboot/%{name}/
BuildRequires: git sed
BuildArch: noarch
Source0: https://github.com/rhboot/%{name}/releases/download/%{version}/%{name}-%{version}.tar.bz2
Patch0001: 0001-macros.efi-srpm-make-all-of-our-macros-always-expand.patch
%global debug_package %{nil}
%global _efi_vendor_ %(eval echo $(sed -n -e 's/rhel/redhat/' -e 's/^ID=//p' /etc/os-release))
%description
%{name} provides a set of RPM macros for use in EFI-related packages.
%package -n efi-srpm-macros
Summary: Common SRPM Macros for building EFI-related packages
Group: Development/System
BuildArch: noarch
Requires: rpm
%description -n efi-srpm-macros
efi-srpm-macros provides a set of SRPM macros for use in EFI-related packages.
%package -n efi-filesystem
Summary: The basic directory layout for EFI machines
Group: System Environment/Base
BuildArch: noarch
Requires: filesystem
%description -n efi-filesystem
The efi-filesystem package contains the basic directory layout for EFI
machine bootloaders and tools.
%prep
%autosetup -S git
%build
%make_build EFI_VENDOR=%{_efi_vendor_} clean all
%install
%make_install EFI_VENDOR=%{_efi_vendor_}
#%%files
#%%{!?_licensedir:%%global license %%%%doc}
#%%license LICENSE
#%%doc README
#%%{_rpmmacrodir}/macros.efi
%files -n efi-srpm-macros
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc README
%{_rpmmacrodir}/macros.efi-srpm
%files -n efi-filesystem
%defattr(0700,root,root,-)
%verify(not mode) %dir /boot/efi
%verify(not mode) %dir /boot/efi/EFI
%verify(not mode) %dir /boot/efi/EFI/BOOT
%verify(not mode) %dir /boot/efi/EFI/%{_efi_vendor_}
%changelog
* Thu Nov 05 2020 Javier Martinez Canillas <javierm@redhat.com> - 3-3
- Ignore the mode bits when doing RPM verification of files in /boot/efi
Resolves: rhbz#1845052
* Fri May 04 2018 Peter Jones <pjones@redhat.com> - 3-2
- Always provide macros for efi_arch and efi_alt_arch (and their _upper
variants), and make efi_has_arch and efi_has_alt_arch 0 when they will be
wrong. This ensures everything can always expand when we're on a non-efi
architecture.
* Fri May 04 2018 Peter Jones <pjones@redhat.com> - 3-1
- Update to version 3 to try and un-break rawhide composes due to
ExclusiveArch constraints.
* Thu May 03 2018 Peter Jones <pjones@redhat.com> - 2-6
- Rework the macros for better srpm use.
* Wed May 02 2018 Peter Jones <pjones@redhat.com> - 2-5
- Add efi-filesystem subpackage
* Wed May 02 2018 Peter Jones <pjones@redhat.com> - 2-4
- Add %%{efi_has_alt_arch}
* Tue May 01 2018 Peter Jones <pjones@redhat.com> - 2-3
- Make an efi-srpm-macros subpackage to pull in so %%{efi} works in
ExclusiveArch in koji.
* Tue May 01 2018 Peter Jones <pjones@redhat.com> - 2-2
- Fix the non-efi and non-efi-alt-arch cases, hopefully.
* Tue May 01 2018 Peter Jones <pjones@redhat.com> - 2-1
- Lots of rpmlint fixups and the like.
* Mon Apr 30 2018 Peter Jones <pjones@redhat.com> - 1-1
- First shot at building it.

176
efi-rpm-macros.spec Normal file
View File

@ -0,0 +1,176 @@
Summary: Common RPM Macros for building EFI-related packages
Name: efi-rpm-macros
Version: 6
Release: 4%{?dist}.alma.1
License: GPL-3.0-or-later
URL: https://github.com/rhboot/%{name}/
BuildRequires: git sed
BuildRequires: make
BuildArch: noarch
Source0: https://github.com/rhboot/%{name}/releases/download/%{version}/%{name}-6.tar.bz2
Patch0001: 0001-Add-support-for-versioned-x86_64-arches.patch
%global debug_package %{nil}
%global _efi_vendor_ %(eval echo $(sed -n -e 's/rhel/redhat/' -e 's/^ID=//p' /etc/os-release))
%description
%{name} provides a set of RPM macros for use in EFI-related packages.
%package -n efi-srpm-macros
Summary: Common SRPM Macros for building EFI-related packages
BuildArch: noarch
Requires: rpm
%description -n efi-srpm-macros
efi-srpm-macros provides a set of SRPM macros for use in EFI-related packages.
%package -n efi-filesystem
Summary: The basic directory layout for EFI machines
BuildArch: noarch
Requires: filesystem
%description -n efi-filesystem
The efi-filesystem package contains the basic directory layout for EFI
machine bootloaders and tools.
%prep
%autosetup -S git_am -n %{name}-6
git config --local --add efi.vendor "%{_efi_vendor_}"
git config --local --add efi.esp-root /boot/efi
git config --local --add efi.arches "%{x86_64} aarch64 %{arm} %{ix86}"
%build
%make_build clean all
%install
%make_install
#%%files
#%%{!?_licensedir:%%global license %%%%doc}
#%%license LICENSE
#%%doc README
#%%{_rpmmacrodir}/macros.efi
%files -n efi-srpm-macros
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc README
%{_rpmmacrodir}/macros.efi-srpm
%{_rpmconfigdir}/brp-boot-efi-times
%files -n efi-filesystem
%defattr(0700,root,root,-)
%dir /boot/efi
%dir /boot/efi/EFI
%dir /boot/efi/EFI/BOOT
%dir /boot/efi/EFI/%{_efi_vendor_}
%changelog
* Thu Sep 26 2024 Andrew Lukoshko <alukoshko@almalinux.org> - 6-4.alma.1
- Add support for versioned x86_64 arches
* Fri Sep 20 2024 Nicolas Frayer <nfrayer@redhat.com> - 6-4
- source: Updated the archive to match upstream
- Resolves: #RHEL-54694
* Tue Jul 30 2024 Nicolas Frayer <nfrayer@redhat.com> - 6-3
- Update to efi-rpm-macros version 6
- Resolves: #RHEL-50848
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 5-12
- Bump release for June 2024 mass rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Dec 13 2023 Nicolas Frayer <nfrayer@redhat.com>
- Migrate to SPDX license
- Please refer to https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 09 2023 Sandro Bonazzola <sbonazzo@redhat.com> - 5-8
- Fixes permissions on /boot/efi/EFI
- Resolves: rhbz#2144459
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Sep 02 2021 Robbie Harwood <rharwood@redhat.com> - 5-4
- Remove arm as an alt for aarch64 (would require cross compiler)
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Apr 06 2021 Peter Jones <pjones@redhat.com> - 5-2
- There's always a typo.
* Tue Apr 06 2021 Peter Jones <pjones@redhat.com> - 5-1
- Add arm as an alt for aarch64
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Sep 26 2018 Peter Jones <pjones@redhat.com> - 4-1
- Provide %%{efi_build_requires} and brp-boot-efi-times
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri May 04 2018 Peter Jones <pjones@redhat.com> - 3-2
- Always provide macros for efi_arch and efi_alt_arch (and their _upper
variants), and make efi_has_arch and efi_has_alt_arch 0 when they will be
wrong. This ensures everything can always expand when we're on a non-efi
architecture.
* Fri May 04 2018 Peter Jones <pjones@redhat.com> - 3-1
- Update to version 3 to try and un-break rawhide composes due to
ExclusiveArch constraints.
* Thu May 03 2018 Peter Jones <pjones@redhat.com> - 2-6
- Rework the macros for better srpm use.
* Wed May 02 2018 Peter Jones <pjones@redhat.com> - 2-5
- Add efi-filesystem subpackage
* Wed May 02 2018 Peter Jones <pjones@redhat.com> - 2-4
- Add %%{efi_has_alt_arch}
* Tue May 01 2018 Peter Jones <pjones@redhat.com> - 2-3
- Make an efi-srpm-macros subpackage to pull in so %%{efi} works in
ExclusiveArch in koji.
* Tue May 01 2018 Peter Jones <pjones@redhat.com> - 2-2
- Fix the non-efi and non-efi-alt-arch cases, hopefully.
- Make efi-*-macros packages not be ExclusiveArch, because they need to work
in non-efi-arch packages.
* Tue May 01 2018 Peter Jones <pjones@redhat.com> - 2-1
- Lots of rpmlint fixups and the like.
* Mon Apr 30 2018 Peter Jones <pjones@redhat.com> - 1-1
- First shot at building it.

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (efi-rpm-macros-6.tar.bz2) = 8e587d82191576fd673863f0637af2b86b79dbb2d558f088602b8fd8ef5f59d94ee12d993e48739b90aadcf6e69b75f9f7f640b27c615f58376b87da26ea2004

View File

@ -0,0 +1,58 @@
#!/bin/bash
# exit when any command fails
set -e
declare -A archs
archs[ia64]="efi_alt_arch=none
efi_alt_arch_upper=NONE
efi_arch=ia64
efi_arch_upper=IA64
efi_has_alt_arch=00
efi_has_arch=01"
archs[x86_64]="efi_alt_arch=ia32
efi_alt_arch_upper=IA32
efi_arch=x64
efi_arch_upper=X64
efi_has_alt_arch=01
efi_has_arch=01"
archs["%{ix86}"]="efi_alt_arch=none
efi_alt_arch_upper=NONE
efi_arch=ia32
efi_arch_upper=IA32
efi_has_alt_arch=00
efi_has_arch=01"
archs[aarch64]="efi_alt_arch=none
efi_alt_arch_upper=NONE
efi_arch=aa64
efi_arch_upper=AA64
efi_has_alt_arch=00
efi_has_arch=01"
archs["%{arm}"]="efi_alt_arch=none
efi_alt_arch_upper=NONE
efi_arch=arm
efi_arch_upper=ARM
efi_has_alt_arch=00
efi_has_arch=01"
common="efi_esp_boot=/boot/efi/EFI/BOOT
efi_esp_dir=/boot/efi/EFI/redhat
efi_esp_efi=/boot/efi/EFI
efi_esp_root=/boot/efi
efi_vendor=redhat"
output=$(mktemp)
for arch in "${!archs[@]}"; do
echo "Testing ${arch}"
rpmbuild -bp --target ${arch}-redhat-linux test.spec \
| grep -A12 %prep > $output
for item in ${archs[$arch]}; do
grep ^$item $output
done
for item in ${common}; do
grep ^$item $output
done
echo ""
done

22
tests/test.spec Normal file
View File

@ -0,0 +1,22 @@
Name: test
Version: 1
Release: 1%{?dist}
Summary: test
License: None
%description
None
%prep
echo efi_alt_arch=%{efi_alt_arch}
echo efi_alt_arch_upper=%{efi_alt_arch_upper}
echo efi_arch=%{efi_arch}
echo efi_arch_upper=%{efi_arch_upper}
echo efi_esp_boot=%{efi_esp_boot}
echo efi_esp_dir=%{efi_esp_dir}
echo efi_esp_efi=%{efi_esp_efi}
echo efi_esp_root=%{efi_esp_root}
echo efi_has_alt_arch=%{efi_has_alt_arch}
echo efi_has_arch=%{efi_has_arch}
echo efi_srpm_macros_version=%{efi_srpm_macros_version}
echo efi_vendor=%{efi_vendor}

12
tests/tests.yml Normal file
View File

@ -0,0 +1,12 @@
---
- hosts: all
roles:
- role: standard-test-basic
tags:
- classic
required_packages:
- rpm-build
tests:
- rpm-macros:
dir: .
run: ./macros.efi-srpm_test.sh