summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-firmware/seabios/Manifest3
-rw-r--r--sys-firmware/seabios/files/seavgabios/config.vga-virtio6
-rw-r--r--sys-firmware/seabios/seabios-1.8.2.ebuild126
3 files changed, 135 insertions, 0 deletions
diff --git a/sys-firmware/seabios/Manifest b/sys-firmware/seabios/Manifest
index 65ec2114d322..4f7b1e1fc820 100644
--- a/sys-firmware/seabios/Manifest
+++ b/sys-firmware/seabios/Manifest
@@ -1,3 +1,6 @@
DIST bios.bin-1.7.5.gz 78943 SHA256 2e83e68e6cff73ede1c2490dabad74c177d7b67f9d93a5ed5f2ef39e76dea0ea SHA512 153a4cf190843540a9a72fcb0cf34f1f9f6ff2efb4b4f700c515dea467b101a8999421b53c2f21599864e2e803ae455a4ae39c7e8be9491c4383b4bfbe734014 WHIRLPOOL 2383f5f3a91581b0ee0ff19fd429a67b7fe09db05c456b98aee01ab9008a12d265e56f81b4d60224c7be15a86da9d2288f83a1d83f621b2ff00ab3aaccb277a4
+DIST bios.bin-1.8.2.xz 67428 SHA256 b4628fdbfc39fd73e7ab0c54dfc26128b6011d34778e381c1b2d2340209be838 SHA512 2b2339c02134bcbd6e71e8d31f9907a160534a047bc91502c215d3d4c79431b962177ac43d826cc5689d71dfc0995bc8a9a5caf1a35929f308b3c2bdad720c15 WHIRLPOOL 050a7880d0da8bb8be1ce3e1262f7e5107a5a426eb31ce9629ef497305e390d348de7ed3c7595248010eb02481a2b4a9e4dca94b3a9c954c18b8a9624f46bbc6
DIST seabios-1.7.5.tar.gz 537566 SHA256 858d9eda4ad91efa1c45a5a401d560ef9ca8dd172f03b0a106f06661c252dc51 SHA512 ecf5fb9ac44dde6e4ac00baa6c920dde51b923f23dd74e62c5a02eceaf235e57b885975c5a8bd0927e268115c72bd1143a080fdfd4eff4e168ebeaa30436280e WHIRLPOOL 5e1e99b3bd82a8607c5986fde4592c7437bec4bd78abd5873710f6c431d075436725e8d0d32e9f0dd2921c9d84b8613108b21d31c5309a73e337ead7adf35e90
+DIST seabios-1.8.2.tar.gz 538497 SHA256 f59479307fdae840de398b75aacb2333c8eba24a5964d68c77e32ca6c987ee61 SHA512 798d222d5f5725a805cde9e6000b5ce714d0551fd4a3c2642cc6e77b2bdab1a9e239939a358a23bbe0e00112f5ad70696c87d20b90655463c835541fc04e1a00 WHIRLPOOL 9cda0ad502a59dd718c543b759ac3fcf5acb4adee70c3da9bfea95ab188415acf6425827de77f45421ec3be8fd9e0c37fb486e62828217ba3e83f88d942a3f4a
DIST seabios_1.7.5-1_all.deb 112098 SHA256 61bab13a733e8087147ae4798f0053c6d632866e332a1ee3af2265e4f57ced36 SHA512 891a26e084ccac8e9badce5a58eeadfb958af9d5ed087a99998f92153718e8231c14abfae0ed86bde870aa9e2f29fd93d5cc04515695e6f2d7b9fcaaef11bfce WHIRLPOOL d47ad79e7bd701862d059d86c7cb3b730b0303c5170ec52a481df5326cad0cd98ea78fcdb2730623b6b65289d9042f4685991eb515402543083cd8228f849959
+DIST seavgabios-1.8.2.tar.xz 20284 SHA256 d28ff071ee56f7bd88cec2482908f469d553cd8b61485a8e89989c26cb5c0e4a SHA512 16d2b54cd98aa22f7af21d8c51a4cf87d9462ec0c99bf703bf7f6c3c4e0be4cbd313b8cf0fb79cdb7b6a7f94441493a4f9669b6d44297e12f03a749befa2d845 WHIRLPOOL 9d61957ec4e3a0c5e4b999495119c6cfb4f2165d98b652b530dbee3ceb19b18a75d07902a5ee15b41b877154bb9ac19163d75c6024a40c4e94e6cf5cdf561e9d
diff --git a/sys-firmware/seabios/files/seavgabios/config.vga-virtio b/sys-firmware/seabios/files/seavgabios/config.vga-virtio
new file mode 100644
index 000000000000..aa7a15ba1172
--- /dev/null
+++ b/sys-firmware/seabios/files/seavgabios/config.vga-virtio
@@ -0,0 +1,6 @@
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_BOCHS=y
+CONFIG_VGA_PCI=y
+CONFIG_OVERRIDE_PCI_ID=y
+CONFIG_VGA_VID=0x1af4
+CONFIG_VGA_DID=0x1050
diff --git a/sys-firmware/seabios/seabios-1.8.2.ebuild b/sys-firmware/seabios/seabios-1.8.2.ebuild
new file mode 100644
index 000000000000..61b1a8d77671
--- /dev/null
+++ b/sys-firmware/seabios/seabios-1.8.2.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+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* || ! -z "${EGIT_COMMIT}" ]]; then
+ EGIT_REPO_URI="git://git.seabios.org/seabios.git"
+ inherit git-2
+else
+ KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd"
+ # Upstream hasn't released a new binary. We snipe ours from Fedora for now.
+ # http://code.coreboot.org/p/seabios/downloads/get/bios.bin-${PV}.gz
+ SRC_URI="!binary? ( http://code.coreboot.org/p/seabios/downloads/get/${P}.tar.gz )
+ binary? (
+ mirror://gentoo/bios.bin-${PV}.xz
+ seavgabios? ( mirror://gentoo/seavgabios-${PV}.tar.xz )
+ )"
+fi
+
+DESCRIPTION="Open Source implementation of a 16-bit x86 BIOS"
+HOMEPAGE="http://www.seabios.org"
+
+LICENSE="LGPL-3 GPL-3"
+SLOT="0"
+IUSE="+binary +seavgabios"
+
+REQUIRED_USE="ppc? ( binary )
+ ppc64? ( binary )"
+
+DEPEND="
+ !binary? (
+ >=sys-power/iasl-20060912
+ ${PYTHON_DEPS}
+ )"
+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() {
+ use binary || epatch_user
+}
+
+src_configure() {
+ use binary || tc-ld-disable-gold #438058
+}
+
+_emake() {
+ LANG=C \
+ emake V=1 \
+ CC="$(tc-getCC)" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ OBJCOPY="$(tc-getOBJCOPY)" \
+ RANLIB="$(tc-getRANLIB)" \
+ OBJDUMP="$(tc-getOBJDUMP)" \
+ HOST_CC="$(tc-getBUILD_CC)" \
+ VERSION="Gentoo/${EGIT_COMMIT:-${PVR}}" \
+ "$@"
+}
+
+src_compile() {
+ use binary && return
+
+ _emake out/bios.bin
+ mv out/bios.bin ../bios.bin
+
+ 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
+ newins ../bios.bin* bios.bin
+
+ if use seavgabios ; then
+ insinto /usr/share/seavgabios
+ doins ../vgabios*.bin
+ fi
+}