106 lines
3.2 KiB
RPMSpec
106 lines
3.2 KiB
RPMSpec
# No, please don't break the linker. Thanks.
|
|
%undefine _auto_set_build_flags
|
|
|
|
Name: gnu-efi
|
|
Epoch: 1
|
|
Version: 3.0.18
|
|
Release: %autorelease -e 0.riscv64
|
|
Summary: Development Libraries and headers for EFI
|
|
License: BSD-2-Clause AND BSD-2-Clause-Patent AND BSD-3-Clause AND BSD-4-Clause AND GPL-2.0-or-later AND GPL-2.0-only
|
|
URL: https://sourceforge.net/projects/gnu-efi/
|
|
|
|
Source0: https://sourceforge.net/projects/gnu-efi/files/gnu-efi-%{version}.tar.bz2
|
|
|
|
# upstream this breaks non-GNU LD, Heinrich Schuchardt asked us not to do this:
|
|
# "The correct approach is to adjust the loader script to put non-static
|
|
# data into a different section than the code and to make the .text section RX."
|
|
#Patch0048: 0048-ld-Don-t-warn-about-RWX-segment-maps.patch
|
|
|
|
ExclusiveArch: %{efi}
|
|
BuildRequires: binutils
|
|
BuildRequires: efi-srpm-macros >= 5-4
|
|
BuildRequires: gcc
|
|
|
|
# We're explicitly *not* requiring glibc-headers, because it gets us
|
|
# cross-arch dependency problems in "fedpkg mockbuild" from x86_64.
|
|
# BuildRequires: glibc-headers
|
|
%ifarch x86_64
|
|
# So... in some build environments, glibc32 provides some headers. In
|
|
# others, glibc-devel.i686 does. They have no provides in common, as
|
|
# file provides in /usr/include or /usr/lib are not usable with dnf5.
|
|
BuildRequires: (glibc-devel(x86-32) or glibc32)
|
|
%endif
|
|
BuildRequires: make
|
|
|
|
# added 2020-01-24, so time is up...
|
|
Obsoletes: %{name}-compat < 3.0.11-12
|
|
|
|
# rpmlint, shut up.
|
|
%define lib %{nil}lib%{nil}
|
|
|
|
%define debug_package %{nil}
|
|
|
|
# brp-strip-static-archive will senselessly /add/ timestamps and uid/gid
|
|
# data to our .a and make them not multilib clean if we don't have this.
|
|
%undefine __brp_strip_static_archive
|
|
%global __brp_strip_static_archive find '%{buildroot}' -name '*.a' -print -exec %{__strip} -gDp {} \\;
|
|
|
|
%description
|
|
This package contains development headers and libraries for developing
|
|
applications that run under EFI (Extensible Firmware Interface).
|
|
|
|
%package devel
|
|
Summary: Development Libraries and headers for EFI
|
|
Obsoletes: gnu-efi < 1:3.0.2-1
|
|
Requires: gnu-efi = %{epoch}:%{version}-%{release}
|
|
|
|
%description devel
|
|
This package contains development headers and libraries for developing
|
|
applications that run under EFI (Extensible Firmware Interface).
|
|
|
|
%package utils
|
|
Summary: Utilities for EFI systems
|
|
|
|
%description utils
|
|
This package contains utilities for debugging and developing EFI systems.
|
|
|
|
%prep
|
|
%autosetup -p1
|
|
|
|
%build
|
|
%undefine _hardened_ldflags
|
|
# Package cannot build with %%{?_smp_mflags}.
|
|
make LIBDIR=%{_prefix}/lib
|
|
make apps
|
|
|
|
%install
|
|
make PREFIX=%{_prefix} LIBDIR=%{_prefix}/lib INSTALLROOT=%{buildroot} install
|
|
mkdir -p %{buildroot}/%{efi_esp_dir}/%{efi_arch}
|
|
mv %{buildroot}/usr/lib/gnuefi/apps/*.efi %{buildroot}%{efi_esp_dir}/%{efi_arch}/
|
|
|
|
%ifarch x86_64 aarch64 riscv64
|
|
mkdir -p %{buildroot}%{_libdir}
|
|
mv %{buildroot}%{_prefix}/lib/pkgconfig %{buildroot}%{_libdir}
|
|
%endif
|
|
|
|
# delete useless file
|
|
rm %{buildroot}/usr/lib/gnuefi/apps/debughook.efi.debug
|
|
|
|
%files
|
|
%{_prefix}/lib/*.o
|
|
%{_prefix}/lib/*.lds
|
|
|
|
%files devel
|
|
%doc README.*
|
|
%{_includedir}/efi
|
|
%{_prefix}/lib/libefi.a
|
|
%{_prefix}/lib/libgnuefi.a
|
|
%{_libdir}/pkgconfig/gnu-efi.pc
|
|
|
|
%files utils
|
|
%dir %attr(0700,root,root) %{efi_esp_dir}/%{efi_arch}/
|
|
%attr(0700,root,root) %{efi_esp_dir}/%{efi_arch}/*.efi
|
|
|
|
%changelog
|
|
%autochangelog
|