From 536c3711867ec947c1738f2c4b96f22e4863322d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 18 Nov 2018 09:38:27 +0000 Subject: gentoo resync : 18.11.2018 --- sys-firmware/Manifest.gz | Bin 5031 -> 5039 bytes sys-firmware/intel-microcode/Manifest | 4 +- .../intel-microcode-20180807a_p20181027.ebuild | 253 --------------------- .../intel-microcode-20180807a_p20181117.ebuild | 253 +++++++++++++++++++++ sys-firmware/seabios/Manifest | 1 + sys-firmware/seabios/seabios-1.11.0-r1.ebuild | 145 ++++++++++++ 6 files changed, 401 insertions(+), 255 deletions(-) delete mode 100644 sys-firmware/intel-microcode/intel-microcode-20180807a_p20181027.ebuild create mode 100644 sys-firmware/intel-microcode/intel-microcode-20180807a_p20181117.ebuild create mode 100644 sys-firmware/seabios/seabios-1.11.0-r1.ebuild (limited to 'sys-firmware') diff --git a/sys-firmware/Manifest.gz b/sys-firmware/Manifest.gz index 40a212451ceb..728cf9e735a5 100644 Binary files a/sys-firmware/Manifest.gz and b/sys-firmware/Manifest.gz differ diff --git a/sys-firmware/intel-microcode/Manifest b/sys-firmware/intel-microcode/Manifest index 11e07737d2dc..fd75b8bb8799 100644 --- a/sys-firmware/intel-microcode/Manifest +++ b/sys-firmware/intel-microcode/Manifest @@ -1,4 +1,4 @@ -DIST intel-microcode-collection-20181027.tar.xz 4517880 BLAKE2B 189e23cfc77d89da945dec6e1762ce9ba16c1cbc0a618e80f3c328b3d9766ef3bb8e62c84c3a6f32ef994f426b5f00ff1ec520105ac7734f25a606e7cb036ec6 SHA512 fc96d0bbacea9da7a232a6482a7731a029c7e110c3358f917d99e1906c9a783b90df22dde2ad4043e8029a4e3ca5a86d43927b38f668456dfda4098d9d5f37c5 +DIST intel-microcode-collection-20181117.tar.xz 4454740 BLAKE2B c9f106a6c6477966d535faef6a6a6a547218b0162ed6405dd9ab47967a87b2c4d9d2d33e8caf716720179bb0035df8c4a38d06c654584396f2af82828fcabd5e SHA512 cdff0e9d88c7848746487710c17cbcdf2adb0940072d71d6f32651a7e2fb66751409856e28d36e7e156e1bae08ad6575098972572bf809db5f07023870b2b9c6 DIST microcode-20180807a.tgz 1628061 BLAKE2B a6b5a07596a0b1687efb95c207b2194865b2f975cc0d761a687d5b9d8fea63e777eb73373113f356a18592fd53651cf37d044d4e98cdfe6b306393b54ac06129 SHA512 3cd6794a5ce26e86f7b644e523ba978699316046e593da215b73b17c4b43049ac4a81636e2ce3e727d06c2efbac98657764aa3ff355edb429127585bb49a9b10 -EBUILD intel-microcode-20180807a_p20181027.ebuild 9205 BLAKE2B be5acb098ad91810cff8832d99ce317863e5983a0c43d0ea460316f316b907eece97dc2a16e09cf0cf948bb2989d14df1054ab18cdefab3c94b702477ecbcb37 SHA512 30cbaf81a5ff14768799923afd42af1d2a975b5b947deadeafdf33c3bb5ed6ff6c53de5c2bb20311462764abb01c9fd3303dc29074ccbe500f225f7c2ca567dd +EBUILD intel-microcode-20180807a_p20181117.ebuild 9205 BLAKE2B be5acb098ad91810cff8832d99ce317863e5983a0c43d0ea460316f316b907eece97dc2a16e09cf0cf948bb2989d14df1054ab18cdefab3c94b702477ecbcb37 SHA512 30cbaf81a5ff14768799923afd42af1d2a975b5b947deadeafdf33c3bb5ed6ff6c53de5c2bb20311462764abb01c9fd3303dc29074ccbe500f225f7c2ca567dd MISC metadata.xml 667 BLAKE2B f229775df839b3ddf34fcc289803ae113ad4b0ce293e036c24f3025bbd146d51c6e3ac55b4a7eb9b2ff0b6829aa020179ea4603f5e481de1c822a1deb66fd594 SHA512 a2d6bc54901a9eb12732e8fa0720c03b51ab615383f12a52019453b3a13f5c70233ee88a8d81706ce7e86eaec6d85155484cf32da288c3486d4b1a19647d2698 diff --git a/sys-firmware/intel-microcode/intel-microcode-20180807a_p20181027.ebuild b/sys-firmware/intel-microcode/intel-microcode-20180807a_p20181027.ebuild deleted file mode 100644 index cf35c112d2dd..000000000000 --- a/sys-firmware/intel-microcode/intel-microcode-20180807a_p20181027.ebuild +++ /dev/null @@ -1,253 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit linux-info toolchain-funcs mount-boot - -# Find updates by searching and clicking the first link (hopefully it's the one): -# https://www.intel.com/content/www/us/en/search.html?keyword=Processor+Microcode+Data+File - -COLLECTION_SNAPSHOT="${PV##*_p}" -INTEL_SNAPSHOT="${PV/_p*}" -NUM="28087" -DESCRIPTION="Intel IA32/IA64 microcode update data" -HOMEPAGE="http://inertiawar.com/microcode/ https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=${NUM}" -SRC_URI="https://downloadmirror.intel.com/${NUM}/eng/microcode-${INTEL_SNAPSHOT}.tgz - https://dev.gentoo.org/~whissi/dist/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz" - -LICENSE="intel-ucode" -SLOT="0" -KEYWORDS="-* amd64 x86" -IUSE="hostonly initramfs +split-ucode vanilla" -REQUIRED_USE="|| ( initramfs split-ucode )" - -DEPEND="sys-apps/iucode_tool" - -# ! "${ED%/}/tmp/.blacklist_altered" || die "Failed to add marker that MICROCODE_BLACKLIST variable was used" - fi - - if [[ "${MICROCODE_SIGNATURES}" != "${MICROCODE_SIGNATURES_DEFAULT}" ]]; then - echo ${MICROCODE_SIGNATURES} > "${ED%/}/tmp/.signatures_altered" || die "Failed to add marker that MICROCODE_SIGNATURES variable was used" - fi -} - -pkg_preinst() { - if [[ -f "${ED%/}/tmp/.blacklist_altered" ]]; then - local _recorded_MICROCODE_BLACKLIST_value=$(cat "${ED%/}/tmp/.blacklist_altered") - ewarn "MICROCODE_BLACKLIST is set to \"${_recorded_MICROCODE_BLACKLIST_value}\" instead of default \"${MICROCODE_BLACKLIST_DEFAULT}\". You are on your own!" - fi - - if [[ -f "${ED%/}/tmp/.signatures_altered" ]]; then - local _recorded_MICROCODE_SIGNATURES_value=$(cat "${ED%/}/tmp/.signatures_altered") - ewarn "Package was created using advanced options:" - ewarn "MICROCODE_SIGNATURES is set to \"${_recorded_MICROCODE_SIGNATURES_value}\" instead of default \"${MICROCODE_SIGNATURES_DEFAULT}\"!" - fi - - # Make sure /boot is available if needed. - use initramfs && mount-boot_pkg_preinst - - local _initramfs_file="${ED%/}/boot/intel-uc.img" - local _ucode_dir="${ED%/}/lib/firmware/intel-ucode" - - if use hostonly; then - # While this output looks redundant we do this check to detect - # rare cases where iucode_tool was unable to detect system's processor(s). - local _detected_processors=$(iucode_tool --scan-system 2>&1) - if [[ -z "${_detected_processors}" ]]; then - ewarn "Looks like iucode_tool was unable to detect any processor!" - else - einfo "Only installing ucode(s) for ${_detected_processors#iucode_tool: system has } due to USE=hostonly ..." - fi - - opts=( - --scan-system - # be strict about what we are doing - --overwrite - --strict-checks - --no-ignore-broken - # we want to install latest version - --no-downgrade - # show everything we find - --list-all - # show what we selected - --list - ) - - # The earlyfw cpio needs to be in /boot because it must be loaded before - # rootfs is mounted. - use initramfs && opts+=( --write-earlyfw=${_initramfs_file} ) - # split location: - use split-ucode && dodir /lib/firmware/intel-ucode && opts+=( --write-firmware=${_ucode_dir} ) - - iucode_tool \ - "${opts[@]}" \ - "${ED%/}"/tmp/intel-ucode \ - || die "iucode_tool ${opts[@]} ${ED%/}/tmp/intel-ucode" - - else - if use split-ucode; then - # Temporary /tmp/intel-ucode will become final /lib/firmware/intel-ucode ... - dodir /lib/firmware - mv "${ED%/}/tmp/intel-ucode" "${ED%/}/lib/firmware" || die "Failed to install splitted ucodes!" - fi - fi - - # Because it is possible that this package will install not one single file - # due to user selection which is still somehow unexpected we add the following - # check to inform user so that the user has at least a chance to detect - # a problem/invalid select. - local _has_installed_something= - if use initramfs && [[ -s "${_initramfs_file}" ]]; then - _has_installed_something="yes" - elif use split-ucode; then - _has_installed_something=$(find "${_ucode_dir}" -maxdepth 0 -not -empty -exec echo yes \;) - fi - - if use hostonly && [[ -n "${_has_installed_something}" ]]; then - elog "You only installed ucode(s) for all currently available (=online)" - elog "processor(s). Remember to re-emerge this package whenever you" - elog "change the system's processor model." - elog "" - elif [[ -z "${_has_installed_something}" ]]; then - ewarn "WARNING:" - if [[ -f "${ED%/}/tmp/.signatures_altered" ]]; then - ewarn "No ucode was installed! Because you have created this package" - ewarn "using MICROCODE_SIGNATURES variable please double check if you" - ewarn "have an invalid select." - ewarn "It's rare but it is also possible that just no ucode update" - ewarn "is available for your processor(s). In this case it is safe" - ewarn "to ignore this warning." - else - ewarn "No ucode was installed! It's rare but it is also possible" - ewarn "that just no ucode update is available for your processor(s)." - ewarn "In this case it is safe to ignore this warning." - fi - - ewarn "" - - if use hostonly; then - ewarn "Unset \"hostonly\" USE flag to install all available ucodes." - ewarn "" - fi - fi - - # Cleanup any temporary leftovers so that we don't merge any - # unneeded files on disk. - rm -r "${ED%/}/tmp" || die "Failed to cleanup '${ED%/}/tmp'" -} - -pkg_prerm() { - # Make sure /boot is mounted so that we can remove /boot/intel-uc.img! - use initramfs && mount-boot_pkg_prerm -} - -pkg_postrm() { - # Don't forget to umount /boot if it was previously mounted by us. - use initramfs && mount-boot_pkg_postrm -} - -pkg_postinst() { - # Don't forget to umount /boot if it was previously mounted by us. - use initramfs && mount-boot_pkg_postinst - - # We cannot give detailed information if user is affected or not: - # If MICROCODE_BLACKLIST wasn't modified, user can still use MICROCODE_SIGNATURES - # to to force a specific, otherwise blacklisted, microcode. So we - # only show a generic warning based on running kernel version: - if kernel_is -lt 4 14 34; then - ewarn "${P} contains microcode updates which require" - ewarn "additional kernel patches which aren't yet included in kernel <4.14.34." - ewarn "Loading such a microcode through kernel interface from an unpatched kernel" - ewarn "can crash your system!" - ewarn "" - ewarn "Those microcodes are blacklisted per default. However, if you have altered" - ewarn "MICROCODE_BLACKLIST or MICROCODE_SIGNATURES, you maybe have unintentionally" - ewarn "re-enabled those microcodes...!" - ewarn "" - ewarn "Check \"${EROOT%/}/usr/share/doc/${PN}-*/releasenot*\" if your microcode update" - ewarn "requires additional kernel patches or not." - fi -} diff --git a/sys-firmware/intel-microcode/intel-microcode-20180807a_p20181117.ebuild b/sys-firmware/intel-microcode/intel-microcode-20180807a_p20181117.ebuild new file mode 100644 index 000000000000..cf35c112d2dd --- /dev/null +++ b/sys-firmware/intel-microcode/intel-microcode-20180807a_p20181117.ebuild @@ -0,0 +1,253 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit linux-info toolchain-funcs mount-boot + +# Find updates by searching and clicking the first link (hopefully it's the one): +# https://www.intel.com/content/www/us/en/search.html?keyword=Processor+Microcode+Data+File + +COLLECTION_SNAPSHOT="${PV##*_p}" +INTEL_SNAPSHOT="${PV/_p*}" +NUM="28087" +DESCRIPTION="Intel IA32/IA64 microcode update data" +HOMEPAGE="http://inertiawar.com/microcode/ https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=${NUM}" +SRC_URI="https://downloadmirror.intel.com/${NUM}/eng/microcode-${INTEL_SNAPSHOT}.tgz + https://dev.gentoo.org/~whissi/dist/intel-microcode/intel-microcode-collection-${COLLECTION_SNAPSHOT}.tar.xz" + +LICENSE="intel-ucode" +SLOT="0" +KEYWORDS="-* amd64 x86" +IUSE="hostonly initramfs +split-ucode vanilla" +REQUIRED_USE="|| ( initramfs split-ucode )" + +DEPEND="sys-apps/iucode_tool" + +# ! "${ED%/}/tmp/.blacklist_altered" || die "Failed to add marker that MICROCODE_BLACKLIST variable was used" + fi + + if [[ "${MICROCODE_SIGNATURES}" != "${MICROCODE_SIGNATURES_DEFAULT}" ]]; then + echo ${MICROCODE_SIGNATURES} > "${ED%/}/tmp/.signatures_altered" || die "Failed to add marker that MICROCODE_SIGNATURES variable was used" + fi +} + +pkg_preinst() { + if [[ -f "${ED%/}/tmp/.blacklist_altered" ]]; then + local _recorded_MICROCODE_BLACKLIST_value=$(cat "${ED%/}/tmp/.blacklist_altered") + ewarn "MICROCODE_BLACKLIST is set to \"${_recorded_MICROCODE_BLACKLIST_value}\" instead of default \"${MICROCODE_BLACKLIST_DEFAULT}\". You are on your own!" + fi + + if [[ -f "${ED%/}/tmp/.signatures_altered" ]]; then + local _recorded_MICROCODE_SIGNATURES_value=$(cat "${ED%/}/tmp/.signatures_altered") + ewarn "Package was created using advanced options:" + ewarn "MICROCODE_SIGNATURES is set to \"${_recorded_MICROCODE_SIGNATURES_value}\" instead of default \"${MICROCODE_SIGNATURES_DEFAULT}\"!" + fi + + # Make sure /boot is available if needed. + use initramfs && mount-boot_pkg_preinst + + local _initramfs_file="${ED%/}/boot/intel-uc.img" + local _ucode_dir="${ED%/}/lib/firmware/intel-ucode" + + if use hostonly; then + # While this output looks redundant we do this check to detect + # rare cases where iucode_tool was unable to detect system's processor(s). + local _detected_processors=$(iucode_tool --scan-system 2>&1) + if [[ -z "${_detected_processors}" ]]; then + ewarn "Looks like iucode_tool was unable to detect any processor!" + else + einfo "Only installing ucode(s) for ${_detected_processors#iucode_tool: system has } due to USE=hostonly ..." + fi + + opts=( + --scan-system + # be strict about what we are doing + --overwrite + --strict-checks + --no-ignore-broken + # we want to install latest version + --no-downgrade + # show everything we find + --list-all + # show what we selected + --list + ) + + # The earlyfw cpio needs to be in /boot because it must be loaded before + # rootfs is mounted. + use initramfs && opts+=( --write-earlyfw=${_initramfs_file} ) + # split location: + use split-ucode && dodir /lib/firmware/intel-ucode && opts+=( --write-firmware=${_ucode_dir} ) + + iucode_tool \ + "${opts[@]}" \ + "${ED%/}"/tmp/intel-ucode \ + || die "iucode_tool ${opts[@]} ${ED%/}/tmp/intel-ucode" + + else + if use split-ucode; then + # Temporary /tmp/intel-ucode will become final /lib/firmware/intel-ucode ... + dodir /lib/firmware + mv "${ED%/}/tmp/intel-ucode" "${ED%/}/lib/firmware" || die "Failed to install splitted ucodes!" + fi + fi + + # Because it is possible that this package will install not one single file + # due to user selection which is still somehow unexpected we add the following + # check to inform user so that the user has at least a chance to detect + # a problem/invalid select. + local _has_installed_something= + if use initramfs && [[ -s "${_initramfs_file}" ]]; then + _has_installed_something="yes" + elif use split-ucode; then + _has_installed_something=$(find "${_ucode_dir}" -maxdepth 0 -not -empty -exec echo yes \;) + fi + + if use hostonly && [[ -n "${_has_installed_something}" ]]; then + elog "You only installed ucode(s) for all currently available (=online)" + elog "processor(s). Remember to re-emerge this package whenever you" + elog "change the system's processor model." + elog "" + elif [[ -z "${_has_installed_something}" ]]; then + ewarn "WARNING:" + if [[ -f "${ED%/}/tmp/.signatures_altered" ]]; then + ewarn "No ucode was installed! Because you have created this package" + ewarn "using MICROCODE_SIGNATURES variable please double check if you" + ewarn "have an invalid select." + ewarn "It's rare but it is also possible that just no ucode update" + ewarn "is available for your processor(s). In this case it is safe" + ewarn "to ignore this warning." + else + ewarn "No ucode was installed! It's rare but it is also possible" + ewarn "that just no ucode update is available for your processor(s)." + ewarn "In this case it is safe to ignore this warning." + fi + + ewarn "" + + if use hostonly; then + ewarn "Unset \"hostonly\" USE flag to install all available ucodes." + ewarn "" + fi + fi + + # Cleanup any temporary leftovers so that we don't merge any + # unneeded files on disk. + rm -r "${ED%/}/tmp" || die "Failed to cleanup '${ED%/}/tmp'" +} + +pkg_prerm() { + # Make sure /boot is mounted so that we can remove /boot/intel-uc.img! + use initramfs && mount-boot_pkg_prerm +} + +pkg_postrm() { + # Don't forget to umount /boot if it was previously mounted by us. + use initramfs && mount-boot_pkg_postrm +} + +pkg_postinst() { + # Don't forget to umount /boot if it was previously mounted by us. + use initramfs && mount-boot_pkg_postinst + + # We cannot give detailed information if user is affected or not: + # If MICROCODE_BLACKLIST wasn't modified, user can still use MICROCODE_SIGNATURES + # to to force a specific, otherwise blacklisted, microcode. So we + # only show a generic warning based on running kernel version: + if kernel_is -lt 4 14 34; then + ewarn "${P} contains microcode updates which require" + ewarn "additional kernel patches which aren't yet included in kernel <4.14.34." + ewarn "Loading such a microcode through kernel interface from an unpatched kernel" + ewarn "can crash your system!" + ewarn "" + ewarn "Those microcodes are blacklisted per default. However, if you have altered" + ewarn "MICROCODE_BLACKLIST or MICROCODE_SIGNATURES, you maybe have unintentionally" + ewarn "re-enabled those microcodes...!" + ewarn "" + ewarn "Check \"${EROOT%/}/usr/share/doc/${PN}-*/releasenot*\" if your microcode update" + ewarn "requires additional kernel patches or not." + fi +} diff --git a/sys-firmware/seabios/Manifest b/sys-firmware/seabios/Manifest index c23bca3fdd56..50ce9d9a609d 100644 --- a/sys-firmware/seabios/Manifest +++ b/sys-firmware/seabios/Manifest @@ -13,5 +13,6 @@ DIST seabios-1.10.2.tar.gz 589283 BLAKE2B 08fdbecf7fb06629db472adb05a780249dbf0e DIST seabios-1.11.0-bin.tar.xz 158552 BLAKE2B 44c42b9eea70a090ad51296949fe79e5360b569bae791fe84f447061f8dbcdb6b601501e2cc1607b62308f3118087386d15ba32c8495202f62f9f9a1e3cf27c3 SHA512 03a1523dc99dbf6e353e7844a4f12020d88bf8d5cbfd187007663ab1b02447b02694f27ee93aa46a18a5ab161f13b1ffe62f2d0f678cd86975a3d53295a6eb1e DIST seabios-1.11.0.tar.gz 607746 BLAKE2B 9f688be6b8f7c0fcbd72b59ac649a9c763fdd9e2971a4d85636c9972efc0ad42082a1622a8c41156ad1e2063907349c2e02cff9aeb444844dc445b5f7d6062bb SHA512 cae79c720bfbba3321777bbc6d5bde432fe56e2ba8f1be8acfebbde0bd453a58e889f5fa24db6055dca0a3a56d35b907761723ea35ef248c5f812129d0a27b77 EBUILD seabios-1.10.2.ebuild 3411 BLAKE2B 60be808fdaa681aad580615c077896eb32cc0138207f56bf474fa93dfef80bdcda875e7757f242d5f01a3796857a036b8f81c2f71ee97fc3b7081101e4a6fcb6 SHA512 c1dd401ea38f1c4479d7c0c7436e13ac83288f0fa21b3ea368389b5b9dbda14d63ce319d92c6ea7a03c6efef9dd0d126691efa4d79f36c9d730f52cba85befb7 +EBUILD seabios-1.11.0-r1.ebuild 3487 BLAKE2B 625a7a396089769cd9f0404096aeef22b5b84bf6c2e6b80ee960db7e122836faa110e2d3b76bdb4a28b8a9548c9dde5bb4b0234ee8e91926f63e804e0a699025 SHA512 7b9e04c02c27b831016f081526ddcec265eb24a18e287268494a0949938b7a6f3356d279a0e6dff187de4b1fafc89f868e8af69b9a418f4ce120c4a7fded9fbc EBUILD seabios-1.11.0.ebuild 3327 BLAKE2B f16d71b802cd1424bb317168021404fa0cb05a1449a306b74758a9a1e1d1f2d85dbaf3030f478fe41bd989638ca50c03b88fedfb77e7fcb391a1f5c36237779a SHA512 77bae186b7e8e4aa411d6705168365c65b4ec2348a463734eaedf298afcc8312c1c237f400471fb8681aed780d74fbb51742e4f4f31c476ee4814ab2d144f30d MISC metadata.xml 659 BLAKE2B ec90c7e7dec453a99ac7d431f3d431cfbbbdfe4ba5fef5d57b7923ed5a8b1f3511c1a8e260c51080f754aa1f27b4d63e6cfba97fadfa00765fcf14277431c583 SHA512 62dbf23559c5c19e9157fcaab10356fd51f52e98a1c39ac138445b058a45a350c758ecb2e6b36eb2e05a384bf6c5c7413deea3b5db7a3a2468248b677136b246 diff --git a/sys-firmware/seabios/seabios-1.11.0-r1.ebuild b/sys-firmware/seabios/seabios-1.11.0-r1.ebuild new file mode 100644 index 000000000000..ea838ed955ef --- /dev/null +++ b/sys-firmware/seabios/seabios-1.11.0-r1.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) + +inherit eutils toolchain-funcs python-any-r1 + +# SeaBIOS maintainers sometimes don't release stable tarballs or stable +# binaries to generate the stable tarball the following is necessary: +# git clone git://git.seabios.org/seabios.git && cd seabios +# git archive --output seabios-${PV}.tar.gz --prefix seabios-${PV}/ rel-${PV} + +if [[ ${PV} == *9999* || -n "${EGIT_COMMIT}" ]] ; then + EGIT_REPO_URI="git://git.seabios.org/seabios.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" + + # Binary versions taken from fedora: + # http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/s/ + # seabios-bin-1.10.2-1.fc27.noarch.rpm + # seavgabios-bin-1.10.2-1.fc27.noarch.rpm + SRC_URI=" + !binary? ( https://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz ) + binary? ( https://dev.gentoo.org/~tamiko/distfiles/${P}-bin.tar.xz )" +fi + +DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS" +HOMEPAGE="https://www.seabios.org/" + +LICENSE="LGPL-3 GPL-3" +SLOT="0" +IUSE="+binary debug +seavgabios" + +REQUIRED_USE="debug? ( !binary ) + !amd64? ( !x86? ( binary ) )" + +# The amd64/x86 check is needed to workaround #570892. +SOURCE_DEPEND=" + >=sys-power/iasl-20060912 + ${PYTHON_DEPS}" +DEPEND=" + !binary? ( + amd64? ( ${SOURCE_DEPEND} ) + x86? ( ${SOURCE_DEPEND} ) + )" +RDEPEND="" + +pkg_pretend() { + if ! use binary; then + ewarn "You have decided to compile your own SeaBIOS. This is not" + ewarn "supported by upstream unless you use their recommended" + ewarn "toolchain (which you are not)." + elog + ewarn "If you are intending to use this build with QEMU, realize" + ewarn "you will not receive any support if you have compiled your" + ewarn "own SeaBIOS. Virtual machines subtly fail based on changes" + ewarn "in SeaBIOS." + fi +} + +pkg_setup() { + use binary || python-any-r1_pkg_setup +} + +src_unpack() { + default + + # This simplifies the logic between binary & source builds. + mkdir -p "${S}" +} + +src_prepare() { + default + + # Ensure precompiled iasl files are never used + find "${WORKDIR}" -name '*.hex' -delete || die +} + +src_configure() { + use binary && return + + tc-ld-disable-gold #438058 + + if use debug ; then + echo "CONFIG_DEBUG_LEVEL=8" >.config + fi + _emake config +} + +_emake() { + LANG=C \ + emake V=1 \ + CC="$(tc-getCC)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" \ + AS="$(tc-getAS)" \ + OBJCOPY="$(tc-getOBJCOPY)" \ + RANLIB="$(tc-getRANLIB)" \ + OBJDUMP="$(tc-getOBJDUMP)" \ + HOST_CC="$(tc-getBUILD_CC)" \ + VERSION="Gentoo/${EGIT_COMMIT:-${PVR}}" \ + "$@" +} + +src_compile() { + use binary && return + + cp "${FILESDIR}/seabios/config.seabios-256k" .config || die + _emake oldnoconfig + _emake iasl + _emake out/bios.bin + mv out/bios.bin ../bios-256k.bin || die + + if use seavgabios ; then + local config t targets=( + cirrus + isavga + qxl + stdvga + virtio + vmware + ) + for t in "${targets[@]}" ; do + emake clean distclean + cp "${FILESDIR}/seavgabios/config.vga-${t}" .config || die + _emake oldnoconfig + _emake out/vgabios.bin + cp out/vgabios.bin ../vgabios-${t}.bin || die + done + fi +} + +src_install() { + insinto /usr/share/seabios + use binary && doins ../bios.bin + doins ../bios-256k.bin + + if use seavgabios ; then + insinto /usr/share/seavgabios + doins ../vgabios*.bin + fi +} -- cgit v1.2.3