commit: 23705d366e67b61fc1006845adbff9dfee738d3f Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> AuthorDate: Fri Mar 15 17:45:07 2024 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Fri Mar 15 17:48:18 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=23705d36
app-emulation/virt-firmware: add 24.2_p20240315 Closes: https://github.com/projg2/installkernel-gentoo/pull/20 Closes: https://github.com/projg2/installkernel-gentoo/issues/19 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> app-emulation/virt-firmware/Manifest | 1 + .../files/virt-firmware-24.2-dont-force-shim.patch | 45 ++++++++++++++++++ .../virt-firmware-24.2_p20240315.ebuild | 54 ++++++++++++++++++++++ 3 files changed, 100 insertions(+) diff --git a/app-emulation/virt-firmware/Manifest b/app-emulation/virt-firmware/Manifest index bc81330a6c0a..b076a294d071 100644 --- a/app-emulation/virt-firmware/Manifest +++ b/app-emulation/virt-firmware/Manifest @@ -1 +1,2 @@ DIST virt-firmware-24.2.tar.gz 110844 BLAKE2B db7ad7663678a313bdd0e23de7e374547e5dbc1a04b37a65e366ae042410a3a6c21ccfef3747a2534cb76906868caaf1364ac1ecd1443c1c1053a5b7687da50b SHA512 8583420acb31fb32e4c195c0c1816b36248ec2e486ded0795e51180e2690b2bcdc10eb8707f4fc9fa36da5b24082737c5c3b2e3988f6c5455e08a5d2a0ff92e7 +DIST virt-firmware-24.2_p20240315.tar.gz 105633 BLAKE2B 6d43a00626403739cf40e9d1d9310c02b0a3794a66c61124f21f45714207b3700fe1e91f0bdb57968d03bd1b08b262327edf3e2271db5b7d7dfc33cf52dce7fd SHA512 cb7e10c8ecb65e90373199be30c1e44c6d89a7c1244780999f5a38de10366ad98b0b747ca471360dd3b38a018df883f21a6758cfeabf85f44d96f38622a19655 diff --git a/app-emulation/virt-firmware/files/virt-firmware-24.2-dont-force-shim.patch b/app-emulation/virt-firmware/files/virt-firmware-24.2-dont-force-shim.patch new file mode 100644 index 000000000000..bb45026391eb --- /dev/null +++ b/app-emulation/virt-firmware/files/virt-firmware-24.2-dont-force-shim.patch @@ -0,0 +1,45 @@ +https://gitlab.com/kraxel/virt-firmware/-/merge_requests/11 +diff --git a/virt/firmware/bootcfg/linuxcfg.py b/virt/firmware/bootcfg/linuxcfg.py +index 5682b15..121af73 100644 +--- a/virt/firmware/bootcfg/linuxcfg.py ++++ b/virt/firmware/bootcfg/linuxcfg.py +@@ -188,9 +188,10 @@ class LinuxOsInfo(OsRelease): + + def shim_path(self): + esp = self.esp_path() +- subdir = self.esp_distro_dir() ++ distro_dir = self.esp_distro_dir() + arch = self.efi_arch() +- shim = f'{esp}/EFI/{subdir}/shim{arch}.efi' +- if os.path.exists(shim): +- return shim ++ for subdir in distro_dir, 'shim', 'Linux': ++ shim = f'{esp}/EFI/{subdir}/shim{arch}.efi' ++ if os.path.exists(shim): ++ return shim + return None +diff --git a/virt/firmware/bootcfg/main.py b/virt/firmware/bootcfg/main.py +index 04888d5..291903b 100644 +--- a/virt/firmware/bootcfg/main.py ++++ b/virt/firmware/bootcfg/main.py +@@ -34,8 +34,7 @@ def update_next_or_order(cfg, options, nr): + + def add_uki(cfg, options): + if not options.shim and cfg.secureboot: +- logging.error('shim binary not specified') +- sys.exit(1) ++ logging.warning('shim binary not specified') + if not options.title: + logging.error('entry title not specified') + sys.exit(1) +@@ -112,8 +111,8 @@ def boot_success(cfg, options): + + def update_boot_csv(cfg, options): + if not options.shim: +- logging.error('shim binary not specified') +- sys.exit(1) ++ logging.warning('shim binary not specified') ++ sys.exit(0) + efishim = linuxcfg.LinuxEfiFile(options.shim) + shimpath = efishim.dev_path_file() + diff --git a/app-emulation/virt-firmware/virt-firmware-24.2_p20240315.ebuild b/app-emulation/virt-firmware/virt-firmware-24.2_p20240315.ebuild new file mode 100644 index 000000000000..cf1fcb8fc0ef --- /dev/null +++ b/app-emulation/virt-firmware/virt-firmware-24.2_p20240315.ebuild @@ -0,0 +1,54 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 optfeature systemd + +COMMIT="f278ef19b0bc94ae93881ee4ab45fcbb03926e5f" + +DESCRIPTION="Tools for ovmf/armvirt firmware volumes" +HOMEPAGE=" + https://gitlab.com/kraxel/virt-firmware + https://pypi.org/project/virt-firmware/ +" +SRC_URI="https://gitlab.com/kraxel/virt-firmware/-/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${COMMIT}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/pefile[${PYTHON_USEDEP}] +" + +PATCHES=( + "${FILESDIR}/${PN}-24.2-dont-force-shim.patch" +) + +distutils_enable_tests unittest + +python_test() { + eunittest tests +} + +python_install_all() { + distutils-r1_python_install_all + + doman man/*.1 + + systemd_dounit systemd/kernel-bootcfg-boot-successful.service + + exeinto /usr/lib/kernel/install.d + doexe systemd/99-uki-uefi-setup.install +} + +pkg_postinst() { + optfeature "managing UEFI entries on Unified Kernel Image installation and removal" \ + "sys-kernel/installkernel[systemd]" +}
