app-emulation/anbox: revamp live ebuild, add 20211020
Changes include: - remove excessive asterisk's around variables - assume specific use flags are enabled if not available on boost and mesa - update systemd dependency removal patch - change ebuild version scheme from 0_preYYYYMMDD to just YYYYMMDD - improve anbox init script - general improvements to readability Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Alfred Wingate <parona@protonmail.com>
This commit is contained in:
parent
75860f3c97
commit
bd146eccfa
@ -1,3 +1,3 @@
|
||||
DIST anbox-0_pre20201129.tar.gz 1024707 BLAKE2B 38153bdc3c011b726bbffefeb9ca439398988945a6f19265d2c6ebd424308a37fa321ab0685660cc67bedf7edbc8793c7cb0c179a5b31dd7aa640cc5286442eb SHA512 c4878745b62719c6cbecde047386858bd2ec7a5dbd37462967cab60fd118f31b89c157b4a00412b51bf130c7b46a83a3c3ab5162ee13baa0e789f773649e8745
|
||||
DIST anbox-0_pre20210320.tar.gz 1024515 BLAKE2B 7e25e15ee598dafc5fd3918e59bdd7808ca32f0a7546316529b145fe8cf985cf77ecf3a95a735b2885676aa759ba4bd4801322e69cbf32590119ea62ecf7cf73 SHA512 89d31043047c1e25b2789638dddd5ea49d9fd754e0baa573c073c3c454e3a6e6f1e3bea6e4a632d6c3942d3a206741bc62f7db6e435c8be34856915dc4b27464
|
||||
DIST anbox-20211020.tar.gz 1025857 BLAKE2B e5c7d9d17751ecd5d52ef6db1f48c0a3a3b0398dd3e0cfce974e5743bcd58c1dc4e72a6eac719fc4a56f297917da56340bf45cda247c31f45c0001420e0188c1 SHA512 9092a212b6662b84becf86c96a001090187763003a3c16d4fd4d7b4d31cc6bb92be240cbba1593b89e39637cb43da19f8f91567a578c7626709addb96be16809
|
||||
DIST cpu_features-b9593c8b395318bb2bc42683a94f962564cc4664.tar.gz 55211 BLAKE2B b49714863cbebfde09e6ab99f31d9aaace367d84df9ecb12989fffc1326c9c60cfa14d917e490332c2a0b2a3fe267b6327b719652afba9bfa1654fc2564408b8 SHA512 8c12b50741e2979a32b69c788934bee0d00811b7662006c8b493e98d5efeada67ed59460be40c234b2d3bafd85671cb1a1d7c1a6ee535a7fc1cc6ac56a754576
|
||||
|
@ -1,26 +1,25 @@
|
||||
# Copyright 2020-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
EAPI=8
|
||||
|
||||
inherit linux-info systemd cmake
|
||||
|
||||
DESCRIPTION="Container-based approach to boot a full Android system"
|
||||
HOMEPAGE="https://anbox.io/"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
if [[ "${PV}" == "99999999" ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/anbox/anbox.git"
|
||||
EGIT_SUBMODULES=( 'external/cpu_features' )
|
||||
EGIT_COMMIT_DATE="${PV}"
|
||||
else
|
||||
COMMIT="9de4e87cdd05135e1c71e6eadb68bf82719cebdf" # 20.03.2021
|
||||
COMMIT="84f0268012cbe322ad858d76613f4182074510ac" # 20.10.2021
|
||||
EXTCOMMIT="b9593c8b395318bb2bc42683a94f962564cc4664"
|
||||
SRC_URI="
|
||||
https://github.com/anbox/anbox/archive/"${COMMIT}".tar.gz -> "${P}".tar.gz
|
||||
https://github.com/google/cpu_features/archive/"${EXTCOMMIT}".tar.gz -> cpu_features-"${EXTCOMMIT}".tar.gz
|
||||
https://github.com/anbox/anbox/archive/${COMMIT}.tar.gz -> ${P}.tar.gz
|
||||
https://github.com/google/cpu_features/archive/${EXTCOMMIT}.tar.gz -> cpu_features-${EXTCOMMIT}.tar.gz
|
||||
"
|
||||
S=""${WORKDIR}"/"${PN}"-"${COMMIT}""
|
||||
S="${WORKDIR}/${PN}-${COMMIT}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
@ -33,17 +32,20 @@ DEPEND="
|
||||
dev-cpp/properties-cpp
|
||||
dev-cpp/sdbus-cpp
|
||||
dev-cpp/gtest
|
||||
dev-libs/boost[threads]
|
||||
dev-libs/boost[threads(+)]
|
||||
dev-libs/expat
|
||||
dev-libs/protobuf
|
||||
media-libs/libsdl2
|
||||
media-libs/glm
|
||||
media-libs/mesa[egl,gles2]
|
||||
media-libs/mesa[egl(+),gles2]
|
||||
media-libs/sdl2-image
|
||||
sys-apps/dbus
|
||||
sys-fs/fuse:3
|
||||
sys-libs/libcap
|
||||
|| ( sys-apps/systemd sys-auth/elogind )
|
||||
|| (
|
||||
sys-apps/systemd
|
||||
sys-auth/elogind
|
||||
)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
@ -60,7 +62,10 @@ CONFIG_CHECK="
|
||||
~TMPFS_XATTR
|
||||
"
|
||||
|
||||
PATCHES=( ""${FILESDIR}"/no_bundled_sdbus-r1.patch" ""${FILESDIR}"/lxc.patch" )
|
||||
PATCHES=(
|
||||
"${FILESDIR}/lxc.patch"
|
||||
"${FILESDIR}/no_bundled_sdbus-r1.patch"
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if use !systemd; then
|
||||
@ -72,13 +77,22 @@ pkg_pretend() {
|
||||
check_extra_config
|
||||
fi
|
||||
# Check if ANDROID_BINDER_DEVICES has binder string specicied in it
|
||||
linux_config_exists && grep -qE '(CONFIG_ANDROID_BINDER_DEVICES=*[^h][^w]binder)' "${KERNEL_DIR}"/.config || eerror " CONFIG_ANDROID_BINDER_DEVICES does not contain string 'binder'"
|
||||
if ! linux_config_exists && grep -qE '(CONFIG_ANDROID_BINDER_DEVICES=*[^h][^w]binder)' "${KERNEL_DIR}"/.config; then
|
||||
eerror " CONFIG_ANDROID_BINDER_DEVICES does not contain string 'binder'"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cp "${FILESDIR}"/FindGMock.cmake "${S}"/cmake
|
||||
[[ "${PV}" == "9999" ]] || mv "${WORKDIR}"/cpu_features-"${EXTCOMMIT}"/* "${S}"/external/cpu_features || die
|
||||
use !systemd && eapply "${FILESDIR}"/remove_systemd_dependency.patch
|
||||
cp "${FILESDIR}/FindGMock.cmake" "${S}/cmake" || die
|
||||
|
||||
if [[ "${PV}" != "99999999" ]]; then
|
||||
mv "${WORKDIR}"/cpu_features-"${EXTCOMMIT}"/* "${S}"/external/cpu_features || die
|
||||
fi
|
||||
|
||||
if use !systemd; then
|
||||
eapply "${FILESDIR}"/remove_systemd_dependency-r1.patch
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
@ -89,21 +103,26 @@ src_configure() {
|
||||
-DENABLE_WAYLAND=$(usex wayland)
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
[[ "${PV}" == "9999" ]] || mycmakeargs+=(-DANBOX_VERSION="${PV}")
|
||||
if [[ "${PV}" != "99999999" ]]; then
|
||||
mycmakeargs+=(-DANBOX_VERSION="${PV} (${COMMIT})")
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
newbin "${FILESDIR}"/anbox-launch.sh anbox-launch
|
||||
|
||||
if use systemd; then
|
||||
systemd_dounit "${FILESDIR}"/anbox-{container-manager.service,bridge.net{dev,work}}
|
||||
systemd_douserunit "${FILESDIR}"/anbox-session-manager.service
|
||||
else
|
||||
exeinto /usr/share/anbox
|
||||
doexe "scripts/anbox-bridge.sh"
|
||||
newinitd "${FILESDIR}"/anbox-container-manager.initd anbox-container-manager
|
||||
newconfd "${FILESDIR}"/anbox.confd anbox
|
||||
doexe scripts/anbox-bridge.sh
|
||||
newinitd "${FILESDIR}"/anbox-container-manager-r1.initd anbox-container-manager
|
||||
newconfd "${FILESDIR}"/anbox-container-manager.confd anbox-container-manager
|
||||
fi
|
||||
}
|
||||
|
@ -1,26 +1,25 @@
|
||||
# Copyright 2020-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
EAPI=8
|
||||
|
||||
inherit linux-info systemd cmake
|
||||
|
||||
DESCRIPTION="Container-based approach to boot a full Android system"
|
||||
HOMEPAGE="https://anbox.io/"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
if [[ "${PV}" == "99999999" ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/anbox/anbox.git"
|
||||
EGIT_SUBMODULES=( 'external/cpu_features' )
|
||||
EGIT_COMMIT_DATE="${PV}"
|
||||
else
|
||||
COMMIT="6c10125a7f13908d2cbe56d2d9ab09872755f265" # 29.11.2020
|
||||
COMMIT="84f0268012cbe322ad858d76613f4182074510ac" # 20.10.2021
|
||||
EXTCOMMIT="b9593c8b395318bb2bc42683a94f962564cc4664"
|
||||
SRC_URI="
|
||||
https://github.com/anbox/anbox/archive/"${COMMIT}".tar.gz -> "${P}".tar.gz
|
||||
https://github.com/google/cpu_features/archive/"${EXTCOMMIT}".tar.gz -> cpu_features-"${EXTCOMMIT}".tar.gz
|
||||
https://github.com/anbox/anbox/archive/${COMMIT}.tar.gz -> ${P}.tar.gz
|
||||
https://github.com/google/cpu_features/archive/${EXTCOMMIT}.tar.gz -> cpu_features-${EXTCOMMIT}.tar.gz
|
||||
"
|
||||
S=""${WORKDIR}"/"${PN}"-"${COMMIT}""
|
||||
S="${WORKDIR}/${PN}-${COMMIT}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
@ -33,17 +32,20 @@ DEPEND="
|
||||
dev-cpp/properties-cpp
|
||||
dev-cpp/sdbus-cpp
|
||||
dev-cpp/gtest
|
||||
dev-libs/boost[threads]
|
||||
dev-libs/boost[threads(+)]
|
||||
dev-libs/expat
|
||||
dev-libs/protobuf
|
||||
media-libs/libsdl2
|
||||
media-libs/glm
|
||||
media-libs/mesa[egl,gles2]
|
||||
media-libs/mesa[egl(+),gles2]
|
||||
media-libs/sdl2-image
|
||||
sys-apps/dbus
|
||||
sys-fs/fuse:3
|
||||
sys-libs/libcap
|
||||
|| ( sys-apps/systemd sys-auth/elogind )
|
||||
|| (
|
||||
sys-apps/systemd
|
||||
sys-auth/elogind
|
||||
)
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
@ -60,7 +62,10 @@ CONFIG_CHECK="
|
||||
~TMPFS_XATTR
|
||||
"
|
||||
|
||||
PATCHES=( ""${FILESDIR}"/no_bundled_sdbus.patch" ""${FILESDIR}"/lxc.patch" )
|
||||
PATCHES=(
|
||||
"${FILESDIR}/lxc.patch"
|
||||
"${FILESDIR}/no_bundled_sdbus-r1.patch"
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if use !systemd; then
|
||||
@ -72,12 +77,22 @@ pkg_pretend() {
|
||||
check_extra_config
|
||||
fi
|
||||
# Check if ANDROID_BINDER_DEVICES has binder string specicied in it
|
||||
linux_config_exists && grep -qE '(CONFIG_ANDROID_BINDER_DEVICES=*[^h][^w]binder)' "${KERNEL_DIR}"/.config || eerror " CONFIG_ANDROID_BINDER_DEVICES does not contain string 'binder'"
|
||||
if ! linux_config_exists && grep -qE '(CONFIG_ANDROID_BINDER_DEVICES=*[^h][^w]binder)' "${KERNEL_DIR}"/.config; then
|
||||
eerror " CONFIG_ANDROID_BINDER_DEVICES does not contain string 'binder'"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
[[ "${PV}" == "9999" ]] || mv "${WORKDIR}"/cpu_features-"${EXTCOMMIT}"/* "${S}"/external/cpu_features || die
|
||||
use !systemd && eapply "${FILESDIR}"/remove_systemd_dependency.patch
|
||||
cp "${FILESDIR}/FindGMock.cmake" "${S}/cmake" || die
|
||||
|
||||
if [[ "${PV}" != "99999999" ]]; then
|
||||
mv "${WORKDIR}"/cpu_features-"${EXTCOMMIT}"/* "${S}"/external/cpu_features || die
|
||||
fi
|
||||
|
||||
if use !systemd; then
|
||||
eapply "${FILESDIR}"/remove_systemd_dependency-r1.patch
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
@ -86,22 +101,28 @@ src_configure() {
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DENABLE_X11=$(usex X)
|
||||
-DENABLE_WAYLAND=$(usex wayland)
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
[[ "${PV}" == "9999" ]] || mycmakeargs+=(-DANBOX_VERSION="${PV}")
|
||||
if [[ "${PV}" != "99999999" ]]; then
|
||||
mycmakeargs+=(-DANBOX_VERSION="${PV} (${COMMIT})")
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
newbin "${FILESDIR}"/anbox-launch.sh anbox-launch
|
||||
|
||||
if use systemd; then
|
||||
systemd_dounit "${FILESDIR}"/anbox-{container-manager.service,bridge.net{dev,work}}
|
||||
systemd_douserunit "${FILESDIR}"/anbox-session-manager.service
|
||||
else
|
||||
exeinto /usr/share/anbox
|
||||
doexe "scripts/anbox-bridge.sh"
|
||||
newinitd "${FILESDIR}"/anbox-container-manager.initd anbox-container-manager
|
||||
newconfd "${FILESDIR}"/anbox.confd anbox
|
||||
doexe scripts/anbox-bridge.sh
|
||||
newinitd "${FILESDIR}"/anbox-container-manager-r1.initd anbox-container-manager
|
||||
newconfd "${FILESDIR}"/anbox-container-manager.confd anbox-container-manager
|
||||
fi
|
||||
}
|
||||
|
46
app-emulation/anbox/files/anbox-container-manager-r1.initd
Normal file
46
app-emulation/anbox/files/anbox-container-manager-r1.initd
Normal file
@ -0,0 +1,46 @@
|
||||
#!/sbin/openrc-run
|
||||
|
||||
supervisor=supervise-daemon
|
||||
|
||||
name="Anbox container manager"
|
||||
ANDROID_IMAGE="${ANDROID_IMAGE:-"/usr/share/andbox/android.img"}"
|
||||
DATA_PATH="${DATA_PATH:-"/var/lib/anbox"}"
|
||||
command=/usr/bin/anbox
|
||||
command_args="container-manager --daemon --privileged --data-path=${DATA_PATH} --android-image=${ANDROID_IMAGE}"
|
||||
|
||||
depend() {
|
||||
need localmount sysfs cgroups fuse
|
||||
use net
|
||||
after firewall
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
# that's all you need to avoid the lxc dependency
|
||||
checkpath --directory /usr/lib/lxc
|
||||
checkpath --directory /usr/lib/lxc/rootfs
|
||||
|
||||
modprobe loop
|
||||
modprobe tun
|
||||
modprobe binder_linux
|
||||
|
||||
if ! [[ -d /dev/binderfs ]] && grep -vq "binder on /dev/binderfs"; then
|
||||
mkdir /dev/binderfs
|
||||
mount -t binder binder /dev/binderfs
|
||||
fi
|
||||
|
||||
if ip link show anbox0 >/dev/null 2>&1; then
|
||||
ewarn "anbox0 network interface already exists"
|
||||
else
|
||||
ebegin "Creating anbox0 network interface"
|
||||
/usr/share/anbox/anbox-bridge.sh start
|
||||
eend $?
|
||||
fi
|
||||
}
|
||||
|
||||
stop_post() {
|
||||
if ip link show anbox0 >/dev/null 2>&1; then
|
||||
ebegin "Removing anbox0 network interface"
|
||||
/usr/share/anbox/anbox-bridge.sh stop
|
||||
eend $?
|
||||
fi
|
||||
}
|
4
app-emulation/anbox/files/anbox-container-manager.confd
Normal file
4
app-emulation/anbox/files/anbox-container-manager.confd
Normal file
@ -0,0 +1,4 @@
|
||||
# /etc/conf.d/anbox-container-manager: config file for /etc/init.d/anbox-container-manager
|
||||
|
||||
DATA_PATH="/var/lib/anbox"
|
||||
ANDROID_IMAGE="/usr/share/anbox/android.img"
|
38
app-emulation/anbox/files/remove_systemd_dependency-r1.patch
Normal file
38
app-emulation/anbox/files/remove_systemd_dependency-r1.patch
Normal file
@ -0,0 +1,38 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 713df49..8ef4633 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -68,7 +68,6 @@ pkg_check_modules(SDL2_IMAGE SDL2_image REQUIRED)
|
||||
pkg_check_modules(DBUS dbus-1 REQUIRED)
|
||||
pkg_check_modules(LXC lxc REQUIRED)
|
||||
pkg_check_modules(PROPERTIES_CPP properties-cpp REQUIRED)
|
||||
-pkg_check_modules(LIBSYSTEMD libsystemd REQUIRED)
|
||||
pkg_check_modules(LIBCAP libcap REQUIRED)
|
||||
|
||||
message(STATUS "LXC version: ${LXC_VERSION}")
|
||||
diff --git a/src/anbox/cmds/launch.h b/src/anbox/cmds/launch.h
|
||||
index 5238982..2d388f5 100644
|
||||
--- a/src/anbox/cmds/launch.h
|
||||
+++ b/src/anbox/cmds/launch.h
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
-#include <systemd/sd-bus.h>
|
||||
+#include <elogind/systemd/sd-bus.h>
|
||||
|
||||
#include "anbox/android/intent.h"
|
||||
#include "anbox/wm/stack.h"
|
||||
diff --git a/src/anbox/dbus/bus.h b/src/anbox/dbus/bus.h
|
||||
index 40b3d94..e798b4b 100644
|
||||
--- a/src/anbox/dbus/bus.h
|
||||
+++ b/src/anbox/dbus/bus.h
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
|
||||
-#include <systemd/sd-bus.h>
|
||||
+#include <elogind/systemd/sd-bus.h>
|
||||
|
||||
namespace anbox::dbus {
|
||||
class Bus : public DoNotCopyOrMove {
|
Loading…
Reference in New Issue
Block a user