Accepting request 668546 from home:gary_lin:branches:devel:openSUSE:Factory

- Move 'efi'-executables to '/usr/share/efi'  (FATE#326960)
  (preparing the move to 'noarch' for this package)

OBS-URL: https://build.opensuse.org/request/show/668546
OBS-URL: https://build.opensuse.org/package/show/devel:openSUSE:Factory/shim?expand=0&rev=146
This commit is contained in:
Gary Ching-Pang Lin 2019-01-25 09:28:34 +00:00 committed by Git OBS Bridge
parent 426b9f297b
commit f402a003c4
3 changed files with 65 additions and 23 deletions

View File

@ -1,5 +1,6 @@
#! /bin/bash -e #! /bin/bash -e
arch=`uname -m`
rootdir= rootdir=
bootdir= bootdir=
efidir= efidir=
@ -10,8 +11,9 @@ no_nvram=no
removable=no removable=no
clean=no clean=no
sysconfdir="/etc" sysconfdir="/etc"
libdir="/usr/lib64" libdir="/usr/lib64" # Beware, this is arch dependent!
source_dir="$libdir/efi" datadir="/usr/share"
source_dir="${data_dir}/efi/${arch}"
grub_probe="/usr/sbin/grub2-probe" grub_probe="/usr/sbin/grub2-probe"
grub_mkrelpath="/usr/bin/grub2-mkrelpath" grub_mkrelpath="/usr/bin/grub2-mkrelpath"
grub_install="/usr/sbin/grub2-install" grub_install="/usr/sbin/grub2-install"
@ -22,7 +24,6 @@ update_boot=no
def_grub_efi="${source_dir}/grub.efi" def_grub_efi="${source_dir}/grub.efi"
def_boot_efi= def_boot_efi=
arch=`uname -m`
if [ x${arch} = xx86_64 ] ; then if [ x${arch} = xx86_64 ] ; then
grub_install_target="x86_64-efi" grub_install_target="x86_64-efi"
def_boot_efi="bootx64.efi" def_boot_efi="bootx64.efi"
@ -34,6 +35,12 @@ else
exit 1 exit 1
fi fi
if [ ! -d "${source_dir}" -o ! -e "${def_grub_efi}" ] ; then
# for outdated packages fall back to previous behavior
source_dir="$libdir/efi"
def_grub_efi="${source_dir}/grub.efi"
fi
# Get GRUB_DISTRIBUTOR. # Get GRUB_DISTRIBUTOR.
if test -f "${sysconfdir}/default/grub" ; then if test -f "${sysconfdir}/default/grub" ; then
. "${sysconfdir}/default/grub" . "${sysconfdir}/default/grub"

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Jan 17 17:12:14 UTC 2019 - rw@suse.com
- Move 'efi'-executables to '/usr/share/efi' (FATE#326960)
(preparing the move to 'noarch' for this package)
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Jan 14 09:48:59 UTC 2019 - Gary Ching-Pang Lin <glin@suse.com> Mon Jan 14 09:48:59 UTC 2019 - Gary Ching-Pang Lin <glin@suse.com>

View File

@ -19,6 +19,17 @@
%undefine _debuginfo_subpackages %undefine _debuginfo_subpackages
%undefine _build_create_debug %undefine _build_create_debug
%ifarch aarch64
%define grubplatform arm64-efi
%else
%define grubplatform %{_target_cpu}-efi
%endif
%if 0%{?suse_version} > 1500
%define sysefibasedir %{_datadir}/efi
%define sysefidir %{sysefibasedir}/%{_target_cpu}
%else
%define sysefidir /usr/lib64/efi
%endif
Name: shim Name: shim
Version: 15+git47 Version: 15+git47
@ -71,7 +82,7 @@ Requires: perl-Bootloader
%endif %endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
# For shim-install script # For shim-install script
Requires: grub2-efi Requires: grub2-%{grubplatform}
ExclusiveArch: x86_64 aarch64 ExclusiveArch: x86_64 aarch64
%description %description
@ -103,6 +114,7 @@ The source code of UEFI shim loader
%if 0%{?is_opensuse} == 1 %if 0%{?is_opensuse} == 1
%patch100 -p1 %patch100 -p1
%endif %endif
%build %build
# first, build MokManager and fallback as they don't depend on a # first, build MokManager and fallback as they don't depend on a
# specific certificate # specific certificate
@ -211,12 +223,12 @@ find . \( -name "*.c" -o -name "*.h" \) -type f -exec cp --parents -a {} ../sour
mv ../source . mv ../source .
%install %install
export BRP_PESIGN_FILES='%{_libdir}/efi/shim*.efi %{_libdir}/efi/MokManager.efi %{_libdir}/efi/fallback.efi' export BRP_PESIGN_FILES='%{sysefidir}/shim*.efi %{sysefidir}/MokManager.efi %{sysefidir}/fallback.efi'
install -d %{buildroot}/%{_libdir}/efi install -d %{buildroot}/%{sysefidir}
cp -a shim*.efi %{buildroot}/%{_libdir}/efi cp -a shim*.efi %{buildroot}/%{sysefidir}
install -m 444 shim-*.der %{buildroot}/%{_libdir}/efi install -m 444 shim-*.der %{buildroot}/%{sysefidir}
install -m 644 MokManager.efi %{buildroot}/%{_libdir}/efi/MokManager.efi install -m 644 MokManager.efi %{buildroot}/%{sysefidir}/MokManager.efi
install -m 644 fallback.efi %{buildroot}/%{_libdir}/efi/fallback.efi install -m 644 fallback.efi %{buildroot}/%{sysefidir}/fallback.efi
install -d %{buildroot}/%{_sbindir} install -d %{buildroot}/%{_sbindir}
install -m 755 %{SOURCE3} %{buildroot}/%{_sbindir}/ install -m 755 %{SOURCE3} %{buildroot}/%{_sbindir}/
# install SUSE certificate # install SUSE certificate
@ -225,12 +237,21 @@ for file in shim-*.der; do
fpr=$(openssl x509 -sha1 -fingerprint -inform DER -noout -in $file | cut -c 18- | cut -d ":" -f 1,2,3,4 | sed 's/://g') fpr=$(openssl x509 -sha1 -fingerprint -inform DER -noout -in $file | cut -c 18- | cut -d ":" -f 1,2,3,4 | sed 's/://g')
install -m 644 $file %{buildroot}/%{_sysconfdir}/uefi/certs/${fpr}-shim.crt install -m 644 $file %{buildroot}/%{_sysconfdir}/uefi/certs/${fpr}-shim.crt
done done
%if 0%{?suse_version} > 1500 && 0%{?suse_version} < 1600
%ifarch x86_64
if [ "%{sysefidir}" != "/usr/lib64/efi" ]; then
# provide compatibility sym-link for previous kiwi, etc.
install -d $RPM_BUILD_ROOT/usr/lib64/efi
ln -srf $RPM_BUILD_ROOT%{sysefidir}/*.efi $RPM_BUILD_ROOT/usr/lib64/efi/
fi
%endif
%endif
# install the debug symbols # install the debug symbols
install -d %{buildroot}/usr/lib/debug/%{_libdir}/efi install -d %{buildroot}/usr/lib/debug/%{sysefidir}
install -m 644 shim.debug %{buildroot}/usr/lib/debug/%{_libdir}/efi install -m 644 shim.debug %{buildroot}/usr/lib/debug/%{sysefidir}
install -m 644 MokManager.efi.debug %{buildroot}/usr/lib/debug/%{_libdir}/efi/MokManager.debug install -m 644 MokManager.efi.debug %{buildroot}/usr/lib/debug/%{sysefidir}/MokManager.debug
install -m 644 fallback.efi.debug %{buildroot}/usr/lib/debug/%{_libdir}/efi/fallback.debug install -m 644 fallback.efi.debug %{buildroot}/usr/lib/debug/%{sysefidir}/fallback.debug
# install the debug source # install the debug source
install -d %{buildroot}/usr/src/debug/%{name}-%{version} install -d %{buildroot}/usr/src/debug/%{name}-%{version}
@ -252,22 +273,30 @@ cp -r source/* %{buildroot}/usr/src/debug/%{name}-%{version}
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc COPYRIGHT %doc COPYRIGHT
%dir %{_libdir}/efi %dir %{?sysefibasedir}
%{_libdir}/efi/shim.efi %dir %{sysefidir}
%{_libdir}/efi/shim-*.efi %{sysefidir}/shim.efi
%{_libdir}/efi/shim-*.der %{sysefidir}/shim-*.efi
%{_libdir}/efi/MokManager.efi %{sysefidir}/shim-*.der
%{_libdir}/efi/fallback.efi %{sysefidir}/MokManager.efi
%{sysefidir}/fallback.efi
%{_sbindir}/shim-install %{_sbindir}/shim-install
%dir %{_sysconfdir}/uefi/ %dir %{_sysconfdir}/uefi/
%dir %{_sysconfdir}/uefi/certs/ %dir %{_sysconfdir}/uefi/certs/
%{_sysconfdir}/uefi/certs/*.crt %{_sysconfdir}/uefi/certs/*.crt
%if 0%{?suse_version} > 1500 && 0%{?suse_version} < 1600
%ifarch x86_64
# provide compatibility sym-link for previous kiwi, etc.
%dir /usr/lib64/efi
/usr/lib64/efi/*.efi
%endif
%endif
%files -n shim-debuginfo %files -n shim-debuginfo
%defattr(-,root,root,-) %defattr(-,root,root,-)
/usr/lib/debug/%{_libdir}/efi/shim.debug /usr/lib/debug%{sysefidir}/shim.debug
/usr/lib/debug/%{_libdir}/efi/MokManager.debug /usr/lib/debug%{sysefidir}/MokManager.debug
/usr/lib/debug/%{_libdir}/efi/fallback.debug /usr/lib/debug%{sysefidir}/fallback.debug
%files -n shim-debugsource %files -n shim-debugsource
%defattr(-,root,root,-) %defattr(-,root,root,-)