summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-power/iasl/Manifest2
-rw-r--r--sys-power/iasl/iasl-20200717.ebuild126
2 files changed, 128 insertions, 0 deletions
diff --git a/sys-power/iasl/Manifest b/sys-power/iasl/Manifest
index daac327fa72b..111d98ac5cee 100644
--- a/sys-power/iasl/Manifest
+++ b/sys-power/iasl/Manifest
@@ -1,2 +1,4 @@
DIST acpica-unix-20200326.tar.gz 1850373 BLAKE2B 4b0c8548ff4b99fb774eb4301687368da2149bfaf68e02c638eecf890fc89974dadd75acc844233ecde8cfac2b98d75df79df2bb1bd6993dc8d502b3156c1012 SHA512 253ea7fc2bb540dd0cfa55552648c33562f39efb9a9b8cbab751ad7f4fea9bd3800eb241afb30313140e2008889b62b82b4427624e087a275353d81555403e76
+DIST acpica-unix-20200717.tar.gz 1847795 BLAKE2B 84af34884bbea39aed9ea7ec86f20a27f3dd10fa68456b5f12de2bdecf9f205c43b4b4e5dcfb55325571a5682794cdc2e0c5a83c646036a15cc90f81223aefff SHA512 16de55b97a3b478dd2dd44fcbe51b871c7cc6174d337939b873bcbc871bee10487a796aa86abaa7b54ff6b75279cdbf9ec48e19f6baaea4290daf1ad56bdbc46
DIST acpitests-unix-20200326.tar.gz 2212897 BLAKE2B d88d3d900ac06d165c4a50cddd65495b75db345009b10e76d9f38197ba42efe3ea396ec9828bef62da1fd96ac331d95623c03194e08b00037ff1234321fcf0d3 SHA512 332b4ed016cee48662a5f4572e6d170461f02ee1386109a3970fbe8d104f2a2b14c19235ea43ae9b26e8faf9ef9597cb3d2148e498741361aca62978d0b62189
+DIST acpitests-unix-20200717.tar.gz 2212717 BLAKE2B 939e8022c5ecb7c5e862767f89c0b0de6146e23014dc0100d7dee0f3502e7adcbba72a468c828f804317e75d3a80ba5864c5497a7695f70be0bc1e3dcc69b4e6 SHA512 02c6674cbb2d98f783f25c71b1f391713de6fb3b56e5b57de9a7ccba0927453be4db8aea513e6e7ad491fcf3a0b2c14fefe8a2b82877a2ae01ea1d7832d36844
diff --git a/sys-power/iasl/iasl-20200717.ebuild b/sys-power/iasl/iasl-20200717.ebuild
new file mode 100644
index 000000000000..5ef5112d8e5e
--- /dev/null
+++ b/sys-power/iasl/iasl-20200717.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils toolchain-funcs
+
+MY_PN=acpica-unix
+MY_P="${MY_PN}-${PV}"
+MY_TESTS_P="${MY_PN/ca/tests}-${PV}"
+
+DESCRIPTION="Intel ACPI Source Language (ASL) compiler"
+HOMEPAGE="https://www.acpica.org/downloads/"
+SRC_URI="
+ http://www.acpica.org/sites/acpica/files/${MY_P}.tar.gz
+ test? ( http://www.acpica.org/sites/acpica/files/${MY_TESTS_P}.tar.gz )"
+
+LICENSE="iASL"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=( "${FILESDIR}"/${PN}-20200326-Makefile.patch )
+
+pkg_setup() {
+ if use test && has test ${FEATURES}; then
+ ewarn 'You have selected USE="test". This will install the test results'
+ ewarn "into /usr/share/${PF}/, compressed as a tarball."
+ ewarn 'The tests themselves will only rarely die, but the test results'
+ ewarn 'are interesting for arch testing. The tests may take quite some'
+ ewarn 'time to complete.'
+ fi
+}
+
+src_prepare() {
+ default
+
+ find "${S}" -type f -name 'Makefile*' -print0 | \
+ xargs -0 -I '{}' \
+ sed -r -e 's:-\<Werror\>::g' -e "s:/usr:${EPREFIX}/usr:g" \
+ -i '{}' \
+ || die
+}
+
+src_configure() {
+ tc-export CC
+
+ # BITS is tied to ARCH - please set appropriately if you add new keywords
+ if [[ $ARCH == @(amd64|amd64-fbsd) ]] ; then
+ export BITS=64
+ else
+ export BITS=32
+ fi
+}
+
+src_compile() {
+ emake -C generate/unix BITS="${BITS}"
+}
+
+src_test() {
+ aslts_test
+ #The aapits test currently fails, missing include probably.
+ #aapits_test
+}
+
+src_install() {
+ cd generate/unix || die
+ emake install DESTDIR="${D}" BITS=${BITS}
+ default
+ #local bin
+ #for bin in $(<"${T}"/binlist) ; do
+ # dobin "${T}"/${bin}
+ #done
+ dodoc "${S}"/changes.txt
+ newdoc "${S}"/source/compiler/readme.txt compiler-readme.txt
+ newdoc "${S}"/generate/unix/readme.txt unix-readme.txt
+ newdoc "${S}"/generate/lint/readme.txt lint-readme.txt
+ newdoc "${S}"/source/compiler/new_table.txt compiler-new_table.txt
+
+ if use test && has test ${FEATURES}; then
+ tb="${T}"/testresults.tar.bz2
+ export ASLTSDIR="$(<"${T}"/asltdir)"
+ ebegin "Creating Test Tarball"
+ tar -cjf "${tb}" -C "${ASLTSDIR}"/tmp/RESULTS . || die "tar failed"
+ eend $?
+ insinto /usr/share/${PF}
+ doins ${tb}
+ fi
+}
+
+aslts_test() {
+ export ASL="${S}"/generate/unix/bin/iasl \
+ acpibin="${S}"/generate/unix/bin/acpibin \
+ acpiexec="${S}"/generate/unix/bin/acpiexec \
+ ASLTSDIR="${WORKDIR}/${MY_TESTS_P}"/tests/aslts
+ export PATH="${PATH}:${ASLTSDIR}/bin"
+ echo "$ASLTSDIR" >"${T}"/asltdir
+ cd "${ASLTSDIR}" || die
+ edos2unix $(find . -type 'f')
+ make install || die "make install aslts test failed"
+ chmod +x $(find bin/ ! -regex 'ERROR_OPCODES|HOW_TO_USE|README' ) || die "chmod bin +x failed"
+
+ #The below Do commands runs the tests twice and then dies if the results aren't
+ #Identical.
+ Do 1 || die "failed Do 1"
+ Do 2 || die "failed Do 2"
+}
+
+aapits_test() {
+ mv "${WORKDIR}/${MY_TESTS_P}/tests/aapits" "${S}/tools/" || die "mv failed"
+ cd "${S}/tools/aapits" || die "cannot find ${S}/tools/aapits"
+ edos2unix $(find . -type 'f')
+ chmod +x $(find bin/ | sed -r -e '/\/[A-Z_]+$/d') || die "chmod bin +x failed"
+ make || die "make in aapits failed"
+ cd asl || die "cd asl failed"
+ make || die "make in asl failed"
+ cd ../bin || die
+ ./aapitsrun || die "aapitsrun failed"
+}