diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.10.2 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.10.2 index 63a17d7a9c..bbbc445678 100644 --- a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.10.2 +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.10.2 @@ -1,13 +1,13 @@ DEFINED_PHASES=compile configure install pretend setup unpack -DEPEND=!binary? ( amd64? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 dev-lang/python:3.5 >=dev-lang/python-2.7.5-r2:2.7 ) ) x86? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 dev-lang/python:3.5 >=dev-lang/python-2.7.5-r2:2.7 ) ) ) +DEPEND=!binary? ( amd64? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 ) ) x86? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 ) ) ) DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS EAPI=6 HOMEPAGE=https://www.seabios.org/ IUSE=+binary debug +seavgabios -KEYWORDS=~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd +KEYWORDS=~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86 LICENSE=LGPL-3 GPL-3 REQUIRED_USE=debug? ( !binary ) !amd64? ( !x86? ( binary ) ) SLOT=0 SRC_URI=!binary? ( https://code.coreboot.org/p/seabios/downloads/get/seabios-1.10.2.tar.gz ) binary? ( https://dev.gentoo.org/~tamiko/distfiles/seabios-1.10.2-bin.tar.xz ) _eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib 1d91b03d42ab6308b5f4f6b598ed110e preserve-libs ef207dc62baddfddfd39a164d9797648 python-any-r1 4900ae970f827a22d33d41bd8b8f9ace python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf -_md5_=fcadd2aefc816c02906cc4a13cc472a5 +_md5_=5347d234ff052692d8cdfb436b2d8eaa diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.11.0 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.11.0 index 56d20bdf96..f41da9fe88 100644 --- a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.11.0 +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.11.0 @@ -1,13 +1,13 @@ DEFINED_PHASES=compile configure install pretend setup unpack -DEPEND=!binary? ( amd64? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 dev-lang/python:3.5 >=dev-lang/python-2.7.5-r2:2.7 ) ) x86? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 dev-lang/python:3.5 >=dev-lang/python-2.7.5-r2:2.7 ) ) ) +DEPEND=!binary? ( amd64? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 ) ) x86? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 ) ) ) DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS EAPI=6 HOMEPAGE=https://www.seabios.org/ IUSE=+binary debug +seavgabios -KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd +KEYWORDS=~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86 LICENSE=LGPL-3 GPL-3 REQUIRED_USE=debug? ( !binary ) !amd64? ( !x86? ( binary ) ) SLOT=0 SRC_URI=!binary? ( https://code.coreboot.org/p/seabios/downloads/get/seabios-1.11.0.tar.gz ) binary? ( https://dev.gentoo.org/~tamiko/distfiles/seabios-1.11.0-bin.tar.xz ) _eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib 1d91b03d42ab6308b5f4f6b598ed110e preserve-libs ef207dc62baddfddfd39a164d9797648 python-any-r1 4900ae970f827a22d33d41bd8b8f9ace python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf -_md5_=a0cf7a6fc06b550bf09c5058bfde572e +_md5_=8e0a7808510cfa8b180aba7eef8d37fe diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.11.0-r1 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.11.0-r1 new file mode 100644 index 0000000000..2ce431e0fb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.11.0-r1 @@ -0,0 +1,13 @@ +DEFINED_PHASES=compile configure install prepare pretend setup unpack +DEPEND=!binary? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 ) ) +DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS +EAPI=6 +HOMEPAGE=https://www.seabios.org/ +IUSE=+binary debug +seavgabios +KEYWORDS=~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 +LICENSE=LGPL-3 GPL-3 +REQUIRED_USE=debug? ( !binary ) +SLOT=0 +SRC_URI=!binary? ( https://code.coreboot.org/p/seabios/downloads/get/seabios-1.11.0.tar.gz ) binary? ( https://dev.gentoo.org/~tamiko/distfiles/seabios-1.11.0-bin.tar.xz ) +_eclasses_=desktop b1d22ac8bdd4679ab79c71aca235009d epatch a1bf4756dba418a7238f3be0cb010c54 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 6e6c2737b59a4b982de6fb3ecefd87f8 ltprune 2729691420b6deeda2a90b1f1183fb55 multilib 1d91b03d42ab6308b5f4f6b598ed110e preserve-libs ef207dc62baddfddfd39a164d9797648 python-any-r1 4900ae970f827a22d33d41bd8b8f9ace python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf +_md5_=6aa46c0ebde184650dedee246ca2d996 diff --git a/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.12.0 b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.12.0 new file mode 100644 index 0000000000..bf6c1435ab --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/metadata/md5-cache/sys-firmware/seabios-1.12.0 @@ -0,0 +1,13 @@ +DEFINED_PHASES=compile configure install prepare pretend setup unpack +DEPEND=!binary? ( amd64? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 ) ) x86? ( >=sys-power/iasl-20060912 || ( dev-lang/python:3.6 ) ) ) +DESCRIPTION=Open Source implementation of a 16-bit x86 BIOS +EAPI=7 +HOMEPAGE=https://www.seabios.org/ +IUSE=+binary debug +seavgabios +KEYWORDS=~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86 +LICENSE=LGPL-3 GPL-3 +REQUIRED_USE=debug? ( !binary ) !amd64? ( !x86? ( binary ) ) +SLOT=0 +SRC_URI=!binary? ( https://code.coreboot.org/p/seabios/downloads/get/seabios-1.12.0.tar.gz ) binary? ( https://dev.gentoo.org/~tamiko/distfiles/seabios-1.12.0-bin.tar.xz ) +_eclasses_=eutils 6e6c2737b59a4b982de6fb3ecefd87f8 multilib 1d91b03d42ab6308b5f4f6b598ed110e python-any-r1 4900ae970f827a22d33d41bd8b8f9ace python-utils-r1 08e17157a6807add7db1f8d01e7e391f toolchain-funcs 8c7f9d80beedd16f2e5a7f612c609529 +_md5_=d51d6a10923d80d9aba9d86218dd214f diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/Manifest b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/Manifest index a153d6fbff..8c598e824f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/Manifest @@ -2,3 +2,5 @@ DIST seabios-1.10.2-bin.tar.xz 121172 BLAKE2B 9d4ff624b638773e59bbf6674fb8630bd8 DIST seabios-1.10.2.tar.gz 589283 BLAKE2B 08fdbecf7fb06629db472adb05a780249dbf0e0a44d04dcced5480d631c133f74ecd04b04486db3bb817b8e119e783c4b09c3ade15b9a6cc956537e9f7204514 SHA512 ea8396fe247a3bd16b43ab775cf8e23f139673b94e83f450cadb094cc8117ca7e9ef518162d965209d5ab091c96f70ec5cc8ec8d15b638e06c4c8f7a0e1609dc 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 +DIST seabios-1.12.0-bin.tar.xz 162492 BLAKE2B 9a5a349226ed7efbed328493dc057e232203b251677a23f1f09c133743ff0ca6b05270c9d27460be1d8897888fe23ff7bdfa122023fa8ddb23af03d5b9b6f8dd SHA512 f7a0395d621245093bb9a278d95ecc3d4e8d23f620058cd4fddaf885c8b86256f6258f3fd8173c1d24c03306f44d180e768bf8005ee123bc4b699b9f0ca371be +DIST seabios-1.12.0.tar.gz 613542 BLAKE2B f145c2db716996bfa9e5c014086ccfaa8ae96ebc158f34303b122b7bf209408c567665d8691364df8d8e886f63e0e72a3f3cd319dfa86ef581023201b5d94e53 SHA512 e52c5363e5bb37b5286e55545aa06bd126218f9d0e3a06ac2e189de68fe3de3256c11ca1bb13357a9c384d7e3af6284083ff3aa587688b5de04ef11b97bdfa27 diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/README b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/README new file mode 100644 index 0000000000..a7aed6d46c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/README @@ -0,0 +1,2 @@ +The configuration files config.vga-xxx are based on the variants found in +the qemu/roms/ tree. diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/seabios/README b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/seabios/README deleted file mode 100644 index 7030949c18..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/seabios/README +++ /dev/null @@ -1 +0,0 @@ -The config.vga-xxx files come from the qemu/roms/ tree. diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/seavgabios/README b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/seavgabios/README deleted file mode 100644 index 7030949c18..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/files/seavgabios/README +++ /dev/null @@ -1 +0,0 @@ -The config.vga-xxx files come from the qemu/roms/ tree. diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/metadata.xml index 584d4b5605..4235b1b9f4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/metadata.xml @@ -2,12 +2,8 @@ - cardoe@gentoo.org - Doug Goldstein - - - qemu@gentoo.org - Gentoo QEMU Project + tamiko@gentoo.org + Matthias Maier virtualization@gentoo.org diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.10.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.10.2.ebuild index d06e51b40a..11231f42e3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.10.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.10.2.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" -PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) +PYTHON_COMPAT=( python3_6 ) inherit eutils toolchain-funcs python-any-r1 @@ -16,7 +16,7 @@ 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" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86" # Binary versions taken from fedora: # http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/s/ diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.11.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.11.0-r1.ebuild new file mode 100644 index 0000000000..794dcb1afd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.11.0-r1.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python3_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 ~sparc ~x86" + + # 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 )" + +SOURCE_DEPEND=" + >=sys-power/iasl-20060912 + ${PYTHON_DEPS}" +DEPEND=" + !binary? ( + ${SOURCE_DEPEND} + )" +RDEPEND="" + +choose_target_chost() { + if [[ -n "${CC}" ]]; then + ${CC} -dumpmachine + return + fi + + if use amd64 || use x86; then + # Use the native compiler + echo "${CHOST}" + return + fi + + local i + for i in x86_64 i686 i586 i486 i386 ; do + i=${i}-pc-linux-gnu + type -P ${i}-gcc > /dev/null && echo ${i} && return + done +} + +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." + if [[ -z "$(choose_target_chost)" ]]; then + elog + eerror "Before you can compile ${PN}[-binary], you need to install a x86 cross-compiler" + eerror "Run the following commands:" + eerror " emerge crossdev" + eerror " crossdev --stable -t x86_64-pc-linux-gnu" + die "cross-compiler is needed" + fi + 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 + + local TARGET_CHOST=$(choose_target_chost) + + cp "${FILESDIR}/seabios/config.seabios-256k" .config || die + _emake oldnoconfig + CHOST="${TARGET_CHOST}" _emake iasl + CHOST="${TARGET_CHOST}" _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 + CHOST="${TARGET_CHOST}" _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 +} diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.11.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.11.0.ebuild index 699fca3bfa..43e3d9d88e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.11.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.11.0.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" -PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) +PYTHON_COMPAT=( python3_6 ) inherit eutils toolchain-funcs python-any-r1 @@ -16,7 +16,7 @@ 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" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86" # Binary versions taken from fedora: # http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/s/ diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.12.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.12.0.ebuild new file mode 100644 index 0000000000..80dc73a3d8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/seabios/seabios-1.12.0.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +PYTHON_COMPAT=( python3_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 ~sparc x86" + + # Binary versions taken from fedora: + # http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/Packages/s/ + # seabios-bin-1.12.1-2.fc31.noarch.rpm + # seavgabios-bin-1.12.1-2.fc31.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 +}