fix b43 stuff and wifitap, drop everything that hasn't been touched in years that I don't care about

This commit is contained in:
Rick Farina (Zero_Chaos) 2017-03-30 11:20:50 -04:00
parent 42592c86bc
commit a652262068
No known key found for this signature in database
GPG key ID: A5DD1427DD11F94A
21 changed files with 37 additions and 601 deletions

View file

@ -1,26 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit git-r3 python-r1
DESCRIPTION="Search and display all shellcodes in shell-storm database."
HOMEPAGE="http://www.shell-storm.org/project/shell-storm-API/"
SRC_URI=""
#EGIT_REPO_URI="https://github.com/JonathanSalwan/shell-storm-api.git"
EGIT_REPO_URI="https://github.com/MasterMind555/shell-storm-api.git"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~arm"
IUSE=""
DEPEND=""
RDEPEND=""
src_install() {
newbin "shell-storm-api.py" shellstorm.py
dodoc README.md
}

View file

@ -1 +0,0 @@
DIST disitool_v0_3.zip 1983 SHA256 aef923f49e53c7c2194058f34a73b293d21448deb7e2112819fc1b3b450347b8 SHA512 4548baf0d2590217d41825aac66ea7a96bbe5f7ef66127031bc8bd245b6885a08a2e528dd71d1cb9f5608f16e9f0ae2d7afe020ebc8037c524be26ba69af5dd7 WHIRLPOOL eb8d4ff252614f64a1ad8994f2e884b77c7b09b125be774e0351a010dfbafd6ee2bafd31165d78ba3b9bdccecaae96d0b63735ae46c4069e9956f15f37a4db9e

View file

@ -1,34 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
#FIXME: migrate to new python eclass
#PYTHON_DEPEND="2"
#inherit python
MY_P="${PN}_v${PV//./_}"
SRC_URI="http://www.didierstevens.com/files/software/${MY_P}.zip"
DESCRIPTION="This tool will allow the manipulation of Authenticode digital
signatures"
HOMEPAGE="http://blog.didierstevens.com/programs/disitool/"
LICENSE="public-domain"
SLOT="0"
#KEYWORDS="amd64 ~arm x86"
IUSE=""
RDEPEND=""
DEPEND="app-arch/unzip"
S="${WORKDIR}"
pkg_setup() {
python_set_active_version 2
python_pkg_setup
}
src_install() {
newbin "${PN}.py" "${PN}"
}

View file

@ -1 +0,0 @@
DIST taof-0.3.2.tgz 508670 SHA256 2cdcfa280c07b6e4333f9530e55cb40d5f9dd36018a327a7f86d41f9ee4ed9a3 SHA512 f01c77533f93f5bd462eb52e47b84c490fe939b0cf7eee6aebb0b999cf42a2d4d47a96aaeb1f6c2f518cb5b133480f47a82c2a1c541bf04178510543d431c82c WHIRLPOOL 22407e5a6db59ecb454e198d707731bc74aa19bfdf3c501d56487ffb76d989b02086c1a20311cbb0c13825e551b4710b7527c65379104ff579d14c4a1e62e71f

View file

@ -1,4 +0,0 @@
#!/bin/sh
cd /usr/lib/taof
python2 taof.py

View file

@ -1,38 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
#FIXME: migrate to new python eclass
#PYTHON_DEPEND="2"
#inherit python
DESCRIPTION="A generic fuzzer framework"
HOMEPAGE="http://taof.sourceforge.net"
SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
LICENSE="GPL-2"
SLOT="0"
#KEYWORDS=""
IUSE=""
RDEPEND="dev-python/pygtk
dev-python/twisted"
pkg_setup() {
python_set_active_version 2
python_pkg_setup
}
src_prepare() {
python_convert_shebangs -r 2 .
default
}
src_install() {
insinto /usr/lib/"${PN}"
doins -r *
dodoc Changelog
dobin "${FILESDIR}"/taof
# dosym /usr/lib/"${PN}"/taof.py /usr/bin/taof
}

View file

@ -1 +0,0 @@
DIST themole-0.3-lin-src.tar.gz 196812 SHA256 9d2ec07374b52984df1b7923875a149f1cc439c8c0d910ecc92032a2eb5d9f73

View file

@ -1,36 +0,0 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
#FIXME: migrate to new python eclass
#PYTHON_DEPEND="3"
#inherit python
DESCRIPTION="An automatic SQL Injection exploitation tool"
HOMEPAGE="http://themole.nasel.com.ar/"
SRC_URI="mirror://sourceforge/${PN}/${P/_/}-lin-src.tar.gz"
LICENSE="GPL-3"
SLOT="0"
#KEYWORDS="~amd64 ~x86"
IUSE=""
RDEPEND="sys-libs/readline
dev-python/lxml"
DEPEND="${RDEPEND}"
pkg_setup() {
python_set_active_version 3
python_pkg_setup
}
src_install() {
dodir /usr/lib/${PN}
insinto /usr/lib/${PN}
doins -r *
chmod +x "${D}/usr/lib/${PN}/mole.py"
dosym "/usr/lib/${PN}/mole.py" "/usr/bin/${PN}"
dodoc README changelog
}

View file

@ -1 +0,0 @@
DIST loki-0.2.7.tar.gz 303166 SHA256 d15223328ab3d30c7ac6241cb1554057d904417cf3bd9b077e2deb943a2a96c5 SHA512 c2f722e63024526f139dc182b5deb1779becd8f53a557c303daf4c6b02059cefb90636a7389e1267cb56e769925b4eeed4cee4c7895291462ae43ca88b097908 WHIRLPOOL 8928d38746f058214c6643c1ddeccf4ce267ffedd5b137bf1c9f903a5e0bd112b4433c08a179dc6fa6363c46c9e3c597e35111800717aa377de47714b526e304

View file

@ -1,47 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit autotools linux-info
#FIXME: migrate to new python eclass
# python
DESCRIPTION="Layer3 attacking tool"
HOMEPAGE="https://www.ernw.de/research/loki.html http://c0decafe.de"
SRC_URI="http://c0decafe.de/loki/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
#KEYWORDS="~x86 ~amd64"
IUSE="gnome"
DEPEND="dev-python/pygtk
dev-python/ipy
dev-python/dpkt
dev-python/pylibpcap
dev-libs/libdnet[python]
dev-libs/libdnet
gnome? ( gnome-base/libglade )"
RDEPEND="${DEPEND}"
CONFIG_CHECK="~TCP_MD5SIG ~NETFILTER ~IP_NF_FILTER ~IP_NF_TARGET_REJECT"
pkg_setup() {
python_set_active_version 2
python_pkg_setup
linux-info_pkg_setup
}
src_prepare() {
python_convert_shebangs -r 2 .
eautoreconf
}
src_install() {
emake DESTDIR="${D}" install || die "make install failed"
dosym "/usr/bin/${PN}.py" "/usr/sbin/${PN}"
}

View file

@ -1,59 +1,24 @@
#Copyright 1999-2012 Gentoo Foundation
#Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
#Thank You to Zero_Chaos for the encouragement & Arfrever for unfucking my
#fuckery
EAPI=6
#PYTHON_DEPEND="2"
#SUPPORT_PYTHON_ABIS="1"
#RESTRICT_PYTHON_ABIS="3.*"
PYTHON_COMPAT=( python3_{4,5,6} )
inherit git-r3
#FIXME: migrate to new python eclass
#inherit python git-2
inherit git-r3 distutils-r1
DESCRIPTION="Wordpress finger printing tool, retrieve information about the plugins and versions installed"
HOMEPAGE="http://www.iniqua.com/labs/plecost/"
EGIT_REPO_URI="https://github.com/iniqua/plecost.git"
LICENSE="GPL-3"
EGIT_BRANCH="develop"
LICENSE="BSD"
SLOT="0"
#KEYWORDS="~amd64 ~x86"
KEYWORDS=""
IUSE=""
DEPEND="dev-python/beautifulsoup:python-2"
DEPEND="dev-python/beautifulsoup[${PYTHON_USEDEP}]
dev-python/aiohttp[${PYTHON_USEDEP}]
dev-python/termcolor[${PYTHON_USEDEP}]
dev-python/chardet[${PYTHON_USEDEP}]"
RDEPEND="${DEPEND}"
src_prepare() {
# Delete internal copy of dev-python/beautifulsoup.
rm -f xgoogle/BeautifulSoup.py
}
src_install() {
installation() {
mkdir -p "${T}/images/${PYTHON_ABI}${EPREFIX}/usr/bin"
cp plecost.py "${T}/images/${PYTHON_ABI}${EPREFIX}/usr/bin/plecost"
insinto $(python_get_sitedir)
doins -r xgoogle
}
python_execute_function installation
python_merge_intermediate_installation_images "${T}/images"
# wordpress plugin list
insinto /usr/share/plecost
doins wp_plugin_list.txt
dodoc README CVE.dat
}
pkg_postinst(){
python_mod_optimize xgoogle
}
pkg_postrm(){
python_mod_cleanup xgoogle
}

View file

@ -1,37 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
#FIXME: migrate to new python eclass
#PYTHON_DEPEND="2"
#inherit subversion python
inherit subversion
DESCRIPTION="A simple piece of PoC code written to demonstrate HTTP POST Denial of Service vulnerabilies"
HOMEPAGE="http://code.google.com/p/post-it-dos/"
SRC_URI=""
LICENSE="GPL-3"
SLOT="0"
#KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND=""
RDEPEND="${DEPEND}"
ESVN_REPO_URI="http://post-it-dos.googlecode.com/svn/trunk/"
ESVN_PROJECT="postit"
src_prepare() {
sed -i 's#./ualist.txt#/usr/share/${PN}/ualist.txt#' postit.py
}
src_install() {
python_convert_shebangs 2 postit.py
newbin postit.py postit
dosym /usr/bin/postit /usr/bin/postit.py
insinto /usr/share/${PN}
doins ualist.txt
}

View file

@ -1,12 +1,12 @@
# Copyright 1999-2010 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="2"
EAPI="6"
DESCRIPTION="OpenBroadcom Firmware"
HOMEPAGE="http://www.ing.unibs.it/openfwwf/"
SRC_URI="http://www.ing.unibs.it/openfwwf/firmware/openfwwf-${PV}.tar.gz"
SRC_URI="http://netweb.ing.unibs.it/~openfwwf/firmware/openfwwf-${PV}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
@ -17,5 +17,5 @@ DEPEND="net-wireless/b43-tools[assembler]"
S="${WORKDIR}/openfwwf-${PV}"
src_install() {
emake PREFIX="${D}"/lib/firmware/b43-open install || die "emake failed"
emake PREFIX="${ED}"/lib/firmware/b43-open install
}

View file

@ -4,20 +4,19 @@
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit git-r3 python-r1
inherit git-r3
DESCRIPTION="Tools for developers working on broadcom drivers/firmware"
HOMEPAGE="http://bu3sch.de/gitweb?p=b43-tools.git;a=summary"
HOMEPAGE="http://bues.ch/cms/hacking/misc.html#linux_b43_driver_firmware_tools"
SRC_URI=""
EGIT_REPO_URI="git://git.bues.ch/b43-tools.git"
EGIT_REPO_URI="https://github.com/mbuesch/b43-tools.git"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+assembler debug disassembler fwcutter +ssb_sprom"
KEYWORDS=""
IUSE="+assembler debug disassembler +ssb_sprom"
RDEPEND="fwcutter? ( net-wireless/b43-fwcutter )"
RDEPEND="net-wireless/b43-fwcutter"
DEPEND="${RDEPEND}
sys-devel/flex"
@ -25,23 +24,17 @@ src_compile() {
if use assembler; then
cd "${S}"/assembler
emake || die "emake assembler failed"
emake
fi
if use disassembler; then
cd "${S}"/disassembler
emake || die "emake disassembler failed"
fi
if use fwcutter; then
einfo "Firmware cutter from b43-tools will NOT be installed. Use net-wireless/b43-fwcutter instead."
# cd "${S}"/fwcutter
# emake || die "emake fwcutter failed"
emake
fi
if use ssb_sprom; then
cd "${S}"/ssb_sprom
emake || die "emake ssb_sprom failed"
emake
fi
}
@ -55,7 +48,7 @@ src_install() {
## install debug, I'm guessing this needs a few deps, and what not
if use debug; then
cd "${S}"/debug
insinto /usr/lib/python$(python_get_version)/
insinto /usr/lib/python2.7/
doins libb43.py
dobin b43-beautifier b43-fwdump patcher-template
fi

View file

@ -1 +1 @@
DIST wifitap-0.4.0.tgz 110612 SHA256 5029b4b80e66844e6109ee9840e70a90e453bd4e5169d9e903eaef599d15162e
DIST wifitap-0.4.1.tar.gz 13696 SHA256 81c2d1223152a27897544b2e6a26429d720eecade51e0e203a47a020ccad4154 SHA512 7092116ca2823295b93ad6757f6c8cdf1c9a3614c2f00037ed7ab2516211580da748f766800e7460957251a464473640f1df128048e3951977486b15b744fec5 WHIRLPOOL b189a95a8e91ca55b251fe9d5229c501caa7a6908cc523110675491de888cd54e5b6b967d8f5d76b740eb53c607feb24aa8bbc7dd9e52a6c091ce972266f5e30

View file

@ -1,24 +1,27 @@
# Copyright 1999-2010 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /root/portage/net-wireless/wifitap/wifitap-0.3.7.ebuild,v 1.1.1.1 2006/03/29 19:41:59 grimmlin Exp $
# $Header: $
#FIXME: migrate to new python eclass
#inherit python
EAPI=6
PYTHON_COMPAT=( python2_7 )
inherit python-r1 multilib
DESCRIPTION="A wireless tool to do direct connection to client without passing through an AP"
HOMEPAGE="http://sid.rstack.org/index.php/Wifitap_EN"
SRC_URI="http://sid.rstack.org/code/${PN}/${P}.tgz"
SHA="2b160883628456e64ee6663fa9d06da3715691fd"
SRC_URI="https://github.com/GDSSecurity/wifitap/archive/${SHA}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
#KEYWORDS="~amd64 ~x86"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND="<net-analyzer/scapy-2.0
S="${WORKDIR}"/"${PN}-${SHA}"
DEPEND="net-analyzer/scapy
dev-python/gnuplot-py
dev-python/pyx"
S=${WORKDIR}/${PN}
src_install() {
exeinto /usr/bin
@ -27,17 +30,9 @@ src_install() {
newexe wifiping.py wifiping
# also install scapy as a importable python module
insinto /usr/$(get_libdir)/python$(python_get_version)/site-packages
insinto /usr/$(get_libdir)/python2.7/site-packages
rm scapy.py
doins *.py
dodoc AUTHORS README Changelog BUGS TODO
}
pkg_postinst() {
python_mod_optimize
}
pkg_postrm() {
python_mod_cleanup
}

View file

@ -1 +0,0 @@
DIST edk2-bin-9999-r11337.tar.gz 750518 SHA256 053bdb2f0b43a4b9e010f0bbf148889d7440394633e5642f4814bc3f0750c11a SHA512 53734411459ebaf0615ca3a2460d288eb823aaec42159e524dd76bc52903d1d92d5e6d8003f5c6e13cd01f57da831d01224d6b4ce6553d57c5a9b9b3a60c9254 WHIRLPOOL f753baade39d5e5b91cd7baee6a30ed46e3f4a75b96b1c37fe7b45235a10f180b7c8a3c09bee161b999c74ef84250a3907ff6d108d2cf5afab1da519422f84eb

View file

@ -1,53 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
DESCRIPTION="Binaries for the EDK2 plattform (UEFI tools)"
HOMEPAGE="http://sourceforge.net/apps/mediawiki/tianocore"
SRC_URI="http://pentoo-uefi.googlecode.com/files/${PF}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="hello-world qemu shell"
REQUIRED_USE="|| ( hello-world qemu shell )"
DEPEND=""
RDEPEND="qemu? ( >=app-emulation/qemu-0.9.1 )"
# S="$(dirname ${S})"
S="${WORKDIR}/${PF}"
src_install(){
if use hello-world; then
insinto "/usr/share/${PN}/hello-world"
doins "HelloWorld.efi"
doins "startup.nsh"
fi
if use qemu; then
insinto "/usr/share/${PN}/qemu"
newins OVMF.fd uefibios.bin
newins CirrusLogic5446.rom vgabios-cirrus.bin
dosym "../${PN}/qemu/uefibios.bin" /usr/share/qemu/uefibios-bin.bin
fi
if use shell; then
insinto "/usr/share/${PN}/shell"
newins Shell.efi Shellx64.efi
fi
}
pkg_postinst() {
use qemu && einfo "To use uefi with qemu, start it with '-bios uefibios.bin'"
if use hello-world; then
einfo "A sample HelloWorld.efi was installed in /usr/share/${PN}/hello-world."
if use qemu; then
einfo "To test the uefi support in qemu, simply run:"
einfo " qemu-kvm -hda fat:/usr/share/${PN}/hello-world -bios uefibios-bin.bin"
einfo "and await the message 'UEFI Hello World!' before the shell prompt appears."
fi
fi
}

View file

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer>
<email>maintainer-wanted@gentoo.org</email>
</maintainer>
<longdescription lang="en">
These are sample binaries - use at own risk!
EDK II is a modern, feature-rich, cross-platform firmware development
environment for the UEFI and PI specifications.
</longdescription>
<use>
<flag name="hello-world">Creates a HelloWorld.efi, ready to use with
<pkg>app-emulation/qemu</pkg>.</flag>
<flag name="qemu">Creates the uefi-bios for <pkg>app-emulation/qemu</pkg>.</flag>
<flag name="shell">Creates the uefi-shell.</flag>
</use>
</pkgmetadata>

View file

@ -1,26 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
inherit subversion
DESCRIPTION="EFI-Shell - provides native UDK implemenations of a UEFI Shell 2.0."
HOMEPAGE="http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell"
SRC_URI=""
# ESVN_REPO_URI="http://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg"
ESVN_REPO_URI="http://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64"
LICENSE="intel-ucode"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
DEPEND=""
RDEPEND="${DEPEND}"
src_install() {
insinto "/usr/share/${PN}/shell"
newins Shell.efi Shellx64.efi
}

View file

@ -1,193 +0,0 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=6
#PYTHON_DEPEND="2"
#PYTHON_USE_WITH="sqlite"
#FIXME: migrate to new python eclass
#inherit python subversion toolchain-funcs flag-o-matic
inherit subversion toolchain-funcs flag-o-matic
DESCRIPTION="A modern, feature-rich, cross-platform firmware development env. for the UEFI and PI specifications"
HOMEPAGE="http://sourceforge.net/apps/mediawiki/tianocore"
SRC_URI=""
REPO_REV="@11337"
# REPO_REV="@13452"
# REPO_REV="@13692"
ESVN_REPO_URI="http://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2"
LICENSE="BSD"
SLOT="0"
#KEYWORDS="~amd64"
IUSE="hello-world qemu shell"
REQUIRED_USE="|| ( hello-world qemu shell )"
DEPEND="
app-arch/unzip
sys-devel/binutils
sys-libs/glibc
>=dev-vcs/subversion-1.5
qemu? (
>=app-emulation/qemu-0.9.1
sys-power/iasl
)"
RDEPEND="qemu? ( >=app-emulation/qemu-0.9.1 )"
S="$(dirname ${S})"
TAGNAME="GCC$(gcc-major-version)$(gcc-minor-version)"
# TODO:
# fix this:
# In function void* memset(void*, int, size_t),
# inlined from SVfrVarStorageNode::SVfrVarStorageNode(EFI_GUID*, CHAR8*, EFI_VARSTORE_ID, EFI_STRING_ID, UINT32, BOOLEAN) at VfrUtilityLib.cpp:1309:41:
# /usr/include/bits/string3.h:85:70: warning: call to void* __builtin___memset_chk(void*, int, long unsigned int, long unsigned int) will always overflow destination buffer
# In function void* memset(void*, int, size_t),
# inlined from SVfrVarStorageNode::SVfrVarStorageNode(EFI_GUID*, CHAR8*, EFI_VARSTORE_ID, SVfrDataType*, BOOLEAN) at VfrUtilityLib.cpp:1336:41:
# /usr/include/bits/string3.h:85:70: warning: call to void* __builtin___memset_chk(void*, int, long unsigned int, long unsigned int) will always overflow destination buffer
pkg_setup() {
python_set_active_version 2
}
src_unpack(){
local repo_pkg="
MdePkg
MdeModulePkg
"
use qemu && repo_pkg+="
OvmfPkg
OptionRomPkg
UefiCpuPkg
IntelFrameworkModulePkg
PcAtChipsetPkg
FatBinPkg
EdkShellBinPkg
IntelFrameworkPkg
"
( use qemu || use shell ) && repo_pkg+="
ShellPkg
"
einfo "### Be patient! ###"
einfo "Downloading individual folders is slow, but really decreases total download size."
einfo "### Be patient! ###"
mkdir Conf || die "Failed to 'mkdir Conf'"
ESVN_OPTIONS="--depth files" subversion_fetch "${ESVN_REPO_URI}${REPO_REV}"
# avoid downloading useless Bin (47MB) folder
ESVN_OPTIONS="--depth immediates" subversion_fetch "${ESVN_REPO_URI}/BaseTools${REPO_REV}" BaseTools
local dir
for dir in `find BaseTools -mindepth 1 -maxdepth 1 -type d | grep -v 'Bin$'`; do
subversion_fetch "${ESVN_REPO_URI}/${dir}${REPO_REV}" "${dir}"
done
for dir in ${repo_pkg}; do
subversion_fetch "${ESVN_REPO_URI}/${dir}${REPO_REV}" "${dir}"
done
}
src_prepare(){
# errors occur with -O -O1 -O2 but not with -O3
filter-flags -O*
# TODO AS=gcc ...why I don't know
# patch compiler flags
sed -i -r \
-e "s/^(CC = ).*$/\1`tc-getCC`/" \
-e "s/^(CXX = ).*$/\1`tc-getCXX`/" \
-e "s/^(AS = ).*$/\1`tc-getAS`/" \
-e "s/^(AR = ).*$/\1`tc-getAR`/" \
-e "s/^(LD = ).*$/\1`tc-getLD`/" \
-e "s/ -Werror//" \
-e "s/^(CFLAGS = )/\1`echo "${CFLAGS}"` /" \
-e "s/^(LFLAGS = )/\1`echo "${LFLAGS}"` /" \
BaseTools/Source/C/Makefiles/header.makefile || die "Failed to patch compiler flags"
for file in dlg/makefile antlr/makefile support/genmk/makefile; do
sed -i -r \
-e "s/^(CC *= *).*$/\1`tc-getCC`/" \
-e "s/^(CXX *= *).*$/\1`echo "${CFLAGS}"`/" \
"BaseTools/Source/C/VfrCompile/Pccts/${file}" || die "Failed to patch compiler flags in ${file}"
done
# filter our -march, building for qemu guest!
filter-flags -march*
sed -i -r \
-e "s/gcc[[:space:]]*$/`tc-getCC`/" \
-e "s/as[[:space:]]*$/`tc-getAS`/" \
-e "s/ar[[:space:]]*$/`tc-getAR`/" \
-e "s/ld[[:space:]]*$/`tc-getLD`/" \
-e "s/^(DEFINE GCC44_ALL_CC_FLAGS *=)(.*) -Werror /\1 `echo "${CFLAGS}"` \2 /" \
BaseTools/Conf/tools_def.template || die "Failed to patch compiler flags"
}
src_compile(){
# $ARCH is used, preserve old value
# Gentoo uses 'amd64', the package needs 'X64'
local oldARCH="${ARCH}"
ARCH='X64'
# build the BaseTools
MAKEOPTS+="-j1" emake -C BaseTools
export EDK_TOOLS_PATH="${S}"/BaseTools
# this mainly appends to $PATH
. edksetup.sh BaseTools
# build using the generated cross-compiler
# for a list of options, run 'build --help' or look at BaseTools/Source/Python/build/build.py MyOptionParser()
# TODO: -n X should be number of CPU+1. See no effect of it so far
if use hello-world; then
build --arch "${ARCH}" --platform MdeModulePkg/MdeModulePkg.dsc --tagname "${TAGNAME}" \
--module MdeModulePkg/Application/HelloWorld/HelloWorld.inf \
--buildtarget RELEASE || die "Failed to build HelloWorld"
# create startup.nsh for qemu testing
echo "fs0:\HelloWorld.efi" > Build/MdeModule/RELEASE_GCC45/X64/startup.nsh || die "Failed to
create startup.nsh"
fi
if use qemu; then
build --arch "${ARCH}" --platform OvmfPkg/OvmfPkgX64.dsc --tagname "${TAGNAME}" \
--buildtarget RELEASE || die "Failed to build UEFI-shell"
fi
if use shell; then
build --arch "${ARCH}" --platform ShellPkg/ShellPkg.dsc --tagname "${TAGNAME}" \
--module ShellPkg/Application/Shell/Shell.inf \
--buildtarget RELEASE || die "Failed to build UEFI-shell"
fi
# reset $ARCH
ARCH="${oldARCH}"
}
src_install(){
if use hello-world; then
insinto "/usr/share/${PN}/hello-world"
doins "Build/MdeModule/RELEASE_${TAGNAME}/X64/HelloWorld.efi"
doins "Build/MdeModule/RELEASE_${TAGNAME}/X64/startup.nsh"
fi
if use qemu; then
insinto "/usr/share/${PN}/qemu"
newins Build/OvmfX64/RELEASE_GCC45/FV/OVMF.fd uefibios.bin
newins Build/OvmfX64/RELEASE_GCC45/FV/CirrusLogic5446.rom vgabios-cirrus.bin
dosym "../${PN}/qemu/uefibios.bin" /usr/share/qemu/uefibios.bin
fi
if use shell; then
insinto "/usr/share/${PN}/shell"
newins Build/Shell/RELEASE_GCC45/X64/Shell.efi Shellx64.efi
fi
}
pkg_postinst() {
use qemu && einfo "To use uefi with qemu, start it with '-bios uefibios.bin'"
if use hello-world; then
einfo "A sample HelloWorld.efi was installed in /usr/share/${PN}/hello-world."
if use qemu; then
einfo "To test the uefi support in qemu, simply run:"
einfo " qemu-kvm -hda fat:/usr/share/${PN}/hello-world -bios uefibios.bin"
einfo "and await the message 'UEFI Hello World!' before the shell prompt appears."
fi
fi
}