commit:     267c2bbeac133599ef3b6b95aff522d5bf1c3e0b
Author:     Richard-Rogalski <rrogalski <AT> tutanota <DOT> com>
AuthorDate: Mon Sep  2 17:14:43 2024 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Mon Sep  2 17:18:32 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=267c2bbe

app-emulation/box86: Added versions 0.3.6 and 9999, QA checks

Signed-off-by: Richard Rogalski <rrogalski <AT> tutanota.com>

 app-emulation/box86/Manifest           |  1 +
 app-emulation/box86/box86-0.3.0.ebuild | 28 ++++++++++++---
 app-emulation/box86/box86-0.3.6.ebuild | 57 +++++++++++++++++++++++++++++++
 app-emulation/box86/box86-9999.ebuild  | 62 ++++++++++++++++++++++++++++++++++
 4 files changed, 144 insertions(+), 4 deletions(-)

diff --git a/app-emulation/box86/Manifest b/app-emulation/box86/Manifest
index 608cb619f..8231c3893 100644
--- a/app-emulation/box86/Manifest
+++ b/app-emulation/box86/Manifest
@@ -1 +1,2 @@
 DIST box86-0.3.0.tar.gz 3175056 BLAKE2B 
4fdef0301a53278da82eb18f235c38694d3d5b59c1386e4be14f6efd676499c5082c061f56fe9222f5994f7f043a0aa82019c42bf9b867ab8215c11ed3782f82
 SHA512 
133957b5b3194a034f383dd2cba503797468b973127b10b3a4bac458e1dce43b4f61efd4ff9ad0cabf7935f9b34a5287cbf3b9fee8c40c9b4bfbe206b0566957
+DIST box86-0.3.6.tar.gz 3511551 BLAKE2B 
2f9211a1a472c972d2327d76f27a4f06dd2a6da78b764302659a73c0e10d7f96baf2e659e5dc0b88868fb08034346385c7b9f6b4c32abefec0d44b16dc59cbf6
 SHA512 
12dd71c46cf7dbb2038b543d36a0c81cd28f3f6266c096836ce2566eb3fb338b9ebb0ff25fd7b8a249d936799ddaf2579ee1f82f09e71310009998c2167fbb12

diff --git a/app-emulation/box86/box86-0.3.0.ebuild 
b/app-emulation/box86/box86-0.3.0.ebuild
index b37b661ec..ec6db7e10 100644
--- a/app-emulation/box86/box86-0.3.0.ebuild
+++ b/app-emulation/box86/box86-0.3.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2023 Gentoo Authors
+# Copyright 2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
 
-inherit cmake optfeature flag-o-matic
+inherit cmake optfeature toolchain-funcs flag-o-matic
 
 DESCRIPTION="Linux Userspace x86 Emulator with a twist"
 HOMEPAGE="https://box86.org";
@@ -11,11 +11,31 @@ 
SRC_URI="https://github.com/ptitSeb/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P
 
 LICENSE="MIT"
 SLOT="0"
-KEYWORDS="~arm ~arm64"
+KEYWORDS="~arm"
 IUSE="aot"
 REQUIRED_USE="aot? ( || ( arm arm64 ) )" #depends on NEON, VFPv3, and 
non-thumb ABI, I see no good way to check
 
-RDEPEND="${DEPEND}"
+pkg_setup() {
+       if [[ ${CHOST} == *64* ]]; then
+               ewarn ""
+               ewarn "box86 relies on a toolchain capable of emitting 32-bit 
code, and a 32 bit libc."
+               ewarn "If you're on a non multilib 64-bit profile, you will 
need to add multilib capabilities to it, see:"
+               ewarn 
"https://wiki.gentoo.org/wiki/User:Aslantis/Multilib_on_targets_without_official_multilib_profiles";
+               ewarn "Alternatively, box64 may work on your system, and can be 
used in tandem with wine's WOW64 for windows programs."
+               ewarn "box86 also doesn't support being built for the thumb 
ABI, if you have a thumb system you'll need -marm in your *FLAGS"
+               ewarn ""
+       fi
+
+       if [[ $(tc-endian) == big ]]; then
+               eerror "box86/box64 sadly does not support big endian systems."
+               die "big endian not supported!"
+       fi
+
+       if [[ ${CHOST} != *gnu* || ${CHOST} != *linux* ]]; then
+               eerror "box86/64 requires a glibc and a linux system. Musl 
support is possible, upstream welcomes PRs!"
+               die "Not a GNU+Linux system"
+       fi
+}
 
 src_configure() {
        local -a mycmakeargs=(

diff --git a/app-emulation/box86/box86-0.3.6.ebuild 
b/app-emulation/box86/box86-0.3.6.ebuild
new file mode 100644
index 000000000..e921d4b7b
--- /dev/null
+++ b/app-emulation/box86/box86-0.3.6.ebuild
@@ -0,0 +1,57 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake optfeature toolchain-funcs flag-o-matic
+
+DESCRIPTION="Linux Userspace x86 Emulator with a twist"
+HOMEPAGE="https://box86.org";
+SRC_URI="https://github.com/ptitSeb/${PN}/archive/refs/tags/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~arm"
+IUSE="aot"
+REQUIRED_USE="aot? ( || ( arm arm64 ) )" #depends on NEON, VFPv3, and 
non-thumb ABI, I see no good way to check
+
+pkg_setup() {
+       if [[ ${CHOST} == *64* ]]; then
+               ewarn ""
+               ewarn "box86 relies on a toolchain capable of emitting 32-bit 
code, and a 32 bit libc."
+               ewarn "If you're on a non multilib 64-bit profile, you will 
need to add multilib capabilities to it, see:"
+               ewarn 
"https://wiki.gentoo.org/wiki/User:Aslantis/Multilib_on_targets_without_official_multilib_profiles";
+               ewarn "Alternatively, box64 may work on your system, and can be 
used in tandem with wine's WOW64 for windows programs."
+               ewarn "box86 also doesn't support being built for the thumb 
ABI, if you have a thumb system you'll need -marm in your *FLAGS"
+               ewarn ""
+       fi
+
+       if [[ $(tc-endian) == big ]]; then
+               eerror "box86/box64 sadly does not support big endian systems."
+               die "big endian not supported!"
+       fi
+
+       if [[ ${CHOST} != *gnu* || ${CHOST} != *linux* ]]; then
+               eerror "box86/64 requires a glibc and a linux system. Musl 
support is possible, upstream welcomes PRs!"
+               die "Not a GNU+Linux system"
+       fi
+}
+
+src_configure() {
+       local -a mycmakeargs=(
+               -DNOGIT=1
+               -DARM_DYNAREC=0
+       )
+
+       (use amd64 || use x86) && mycmakeargs+=( -DLD80BITS=1 -DNOALIGN=1 )
+       (use arm64 || use arm) && mycmakeargs+=( -DARM_DYNAREC=$(usex aot) )
+
+       append-flags "-m32"
+
+       cmake_src_configure
+}
+
+pkg_postinst() {
+       optfeature "OpenGL for GLES devices" \
+               "media-libs/gl4es"
+}

diff --git a/app-emulation/box86/box86-9999.ebuild 
b/app-emulation/box86/box86-9999.ebuild
new file mode 100644
index 000000000..fc426c76a
--- /dev/null
+++ b/app-emulation/box86/box86-9999.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake optfeature toolchain-funcs flag-o-matic git-r3
+
+DESCRIPTION="Linux Userspace x86 Emulator with a twist"
+HOMEPAGE="https://box86.org";
+EGIT_REPO_URI="https://github.com/ptitSeb/${PN}";
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="aot"
+REQUIRED_USE="aot? ( || ( arm arm64 ) )" #depends on NEON, VFPv3, and 
non-thumb ABI, I see no good way to check
+
+pkg_setup() {
+       if [[ ${CHOST} == *64* ]]; then
+               ewarn ""
+               ewarn "box86 relies on a toolchain capable of emitting 32-bit 
code, and a 32 bit libc."
+               ewarn "If you're on a non multilib 64-bit profile, you will 
need to add multilib capabilities to it, see:"
+               ewarn 
"https://wiki.gentoo.org/wiki/User:Aslantis/Multilib_on_targets_without_official_multilib_profiles";
+               ewarn "Alternatively, box64 may work on your system, and can be 
used in tandem with wine's WOW64 for windows programs."
+               ewarn "box86 also doesn't support being built for the thumb 
ABI, if you have a thumb system you'll need -marm in your *FLAGS"
+               ewarn ""
+       fi
+
+       if [[ $(tc-endian) == big ]]; then
+               eerror "box86/box64 sadly does not support big endian systems."
+               die "big endian not supported!"
+       fi
+
+       if [[ ${CHOST} != *linux* ]]; then
+               eerror "box86/64 requires a linux system."
+               die "Not a GNU+Linux system"
+       fi
+
+       if [[ ${CHOST} != *gnu* ]]; then #in case musl support is added in 
master branch
+               ewarn ""
+               ewarn "box86/64 will likely not build or run on a non-glibc 
system."
+               ewarn ""
+       fi
+}
+
+src_configure() {
+       local -a mycmakeargs=(
+               -DNOGIT=0
+               -DARM_DYNAREC=0
+       )
+
+       (use amd64 || use x86) && mycmakeargs+=( -DLD80BITS=1 -DNOALIGN=1 )
+       (use arm64 || use arm) && mycmakeargs+=( -DARM_DYNAREC=$(usex aot) )
+
+       append-flags "-m32"
+
+       cmake_src_configure
+}
+
+pkg_postinst() {
+       optfeature "OpenGL for GLES devices" \
+               "media-libs/gl4es"
+}

Reply via email to