summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO57
-rw-r--r--.gitignore15
-rw-r--r--PKGBUILD111
-rw-r--r--anbox-container-manager.service3
-rw-r--r--cpu_features.patch42
-rw-r--r--desktop-dir.patch23
-rw-r--r--dev-binderfs.mount13
-rw-r--r--org.anbox.service4
8 files changed, 203 insertions, 65 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 7915d185f329..5eee64993382 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,6 @@
pkgbase = anbox-git
- pkgver = r1096.ea2b7a3
+ pkgdesc = Running Android in a container
+ pkgver = r1366.ddf4c57
pkgrel = 1
epoch = 1
url = http://anbox.io/
@@ -8,43 +9,57 @@ pkgbase = anbox-git
makedepends = cmake
makedepends = git
makedepends = glm
- makedepends = lxc
- makedepends = sdl2_image
- makedepends = protobuf
makedepends = boost
makedepends = properties-cpp
makedepends = gtest
+ makedepends = python
+ makedepends = systemd
+ makedepends = dbus
+ depends = lxc
+ depends = sdl2_image
+ depends = protobuf
+ depends = anbox-image
+ depends = libsystemd
+ depends = libcpufeatures
+ depends = boost-libs
+ depends = sdbus-cpp
+ conflicts = anbox-launchers
+ replaces = anbox-launchers
source = git+https://github.com/anbox/anbox.git
- source = git+https://github.com/anbox/anbox-modules.git
+ source = lxc4.patch::https://gitlab.alpinelinux.org/alpine/aports/-/raw/fc60972afd4ff0c096498e28557b9a16e801aa7f/community/anbox/lxc4.patch
+ source = sdbus.patch::https://gitlab.alpinelinux.org/alpine/aports/-/raw/fc60972afd4ff0c096498e28557b9a16e801aa7f/community/anbox/no-bundled-sdbus.patch
+ source = delayed-start.patch::https://gitlab.alpinelinux.org/alpine/aports/-/raw/70a1a8afb7b6ac37291d382e6e5cc7561fc88626/community/anbox/give-more-time-to-start.patch
+ source = egl.patch::https://github.com/anbox/anbox/pull/1877.patch
+ source = ByteSizeLong.patch::https://github.com/anbox/anbox/pull/1480.patch
+ source = lxc4010.patch::https://github.com/anbox/anbox/pull/1938.patch
+ source = cpu_features.patch
+ source = desktop-dir.patch
source = anbox-container-manager.service
source = anbox-session-manager.service
source = 99-anbox.rules
source = anbox.conf
source = anbox.desktop
+ source = org.anbox.service
+ source = dev-binderfs.mount
source = anbox-bridge.network
source = anbox-bridge.netdev
sha256sums = SKIP
- sha256sums = SKIP
- sha256sums = 5be94b63dc30d141f15ca7d1be6e3e81f26ef33f844614975537562f5d08236c
+ sha256sums = c1071203defdeaee56122913a6d7e67ac496c889a0c59cb889d94a58bc655bfa
+ sha256sums = 7c0626afaf1ce004ac2c57cd89db393f9a6ba21f1087001d15278a7bd79c8219
+ sha256sums = 253c211455ff0cfaa058a0b80eb41d58f84ee646c0c67dbcbcc888b5833009a7
+ sha256sums = c684ff93824137d79a384a134e644849ef33c986f2d9e192636fc8d80ef9baba
+ sha256sums = c922afe6a2cd4fe7296a0921e47e09abedf0104dc23d0037010d1df4cc42308b
+ sha256sums = b01699c635efcff48fc11f8d20e7f88e6497aba912496df2e379be46e584a6f4
+ sha256sums = eeeb4dd40d30d0e8c0f0001d44ca7876c1c564dfc31b24ecfb871fd133037825
+ sha256sums = d1e2e3fa1299b423f1d98cbd3c591d853f1ce8646f508ef838fe714f986fc5b2
+ sha256sums = f76cf723e3436333176bcb778b2c32988d9789f14d339ee1cb8c13ef35e2fdd6
sha256sums = 1f22dbb5a3ca6925bbf62899cd0f0bbaa0b77c879adcdd12ff9d43adfa61b1d8
sha256sums = 210eb93342228168f7bb632c8b93d9bfda6f53f62459a6b74987fa1e17530475
sha256sums = 3e07dc524a827c1651857cce28a06c1565bc5188101c140ed213bbafedc5abff
sha256sums = 7332d09865be553a259a53819cebddd21f661c7a251d78c2f46acd75c66676b6
+ sha256sums = 74e2208e0c03e5f21be3ff54b58160a172e3768a80c41726c06b4ab8cc9288dd
+ sha256sums = c7e9958a9cff1191dca0d50b0ea8392d7728490e56ffb38a475ba516a09a2109
sha256sums = 44899328725667041e6e84912da81c1d0147b708006eb2c2bb6503f271629ff0
sha256sums = 559190df4d6d595480b30d8b13b862081fc4aac52790e33eb24cf7fbcb8003b8
pkgname = anbox-git
- pkgdesc = Running Android in a container
- depends = lxc
- depends = sdl2_image
- depends = protobuf
- depends = anbox-image
- depends = libsystemd
- depends = boost-libs
- optdepends = anbox-modules-dkms-git: Required Android kernel modules
-
-pkgname = anbox-modules-dkms-git
- pkgdesc = Required kernel module sources for Android
- arch = any
- depends = dkms
-
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..443341067c62
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+*
+!99-anbox.rules
+!anbox-bridge.netdev
+!anbox-bridge.network
+!anbox.conf
+!anbox-container-manager.service
+!anbox.desktop
+!anbox-session-manager.service
+!desktop-dir.patch
+!cpu_features.patch
+!dev-binderfs.mount
+!.gitignore
+!org.anbox.service
+!PKGBUILD
+!.SRCINFO
diff --git a/PKGBUILD b/PKGBUILD
index 098a2b0d1109..5cb7ccf9b895 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,35 +1,59 @@
-# Maintainer: Iwan Timmer <irtimmer@gmail.com>
+# Maintainer: Christoph Schmidpeter <john.doe@example.com>
+# Co-Maintainer: Mubashshir <ahmubashshir@gmail.com>
+# Contributor: Iwan Timmer <irtimmer@gmail.com>
+# from: git
-pkgname=('anbox-git' 'anbox-modules-dkms-git')
-_pkgname=anbox
-pkgver=r1096.ea2b7a3
+pkgname=anbox-git
+pkgver=r1366.ddf4c57
pkgrel=1
epoch=1
arch=('x86_64')
url="http://anbox.io/"
license=('GPL3')
-makedepends=('cmake' 'git' 'glm' 'lxc' 'sdl2_image' 'protobuf' 'boost' 'properties-cpp' 'gtest')
+pkgdesc="Running Android in a container"
+depends=('lxc' 'sdl2_image' 'protobuf' 'anbox-image' 'libsystemd' 'libcpufeatures' 'boost-libs' 'sdbus-cpp')
+replaces=('anbox-launchers')
+conflicts=('anbox-launchers')
+makedepends=('cmake' 'git' 'glm' 'boost' 'properties-cpp' 'gtest' 'python' 'systemd' 'dbus')
source=("git+https://github.com/anbox/anbox.git"
- "git+https://github.com/anbox/anbox-modules.git"
+ 'lxc4.patch::https://gitlab.alpinelinux.org/alpine/aports/-/raw/fc60972afd4ff0c096498e28557b9a16e801aa7f/community/anbox/lxc4.patch'
+ 'sdbus.patch::https://gitlab.alpinelinux.org/alpine/aports/-/raw/fc60972afd4ff0c096498e28557b9a16e801aa7f/community/anbox/no-bundled-sdbus.patch'
+ 'delayed-start.patch::https://gitlab.alpinelinux.org/alpine/aports/-/raw/70a1a8afb7b6ac37291d382e6e5cc7561fc88626/community/anbox/give-more-time-to-start.patch'
+ 'egl.patch::https://github.com/anbox/anbox/pull/1877.patch'
+ 'ByteSizeLong.patch::https://github.com/anbox/anbox/pull/1480.patch'
+ 'lxc4010.patch::https://github.com/anbox/anbox/pull/1938.patch'
+ 'cpu_features.patch'
+ 'desktop-dir.patch'
'anbox-container-manager.service'
'anbox-session-manager.service'
'99-anbox.rules'
'anbox.conf'
'anbox.desktop'
+ 'org.anbox.service'
+ 'dev-binderfs.mount'
'anbox-bridge.network'
'anbox-bridge.netdev')
sha256sums=('SKIP'
- 'SKIP'
- '5be94b63dc30d141f15ca7d1be6e3e81f26ef33f844614975537562f5d08236c'
+ 'c1071203defdeaee56122913a6d7e67ac496c889a0c59cb889d94a58bc655bfa'
+ '7c0626afaf1ce004ac2c57cd89db393f9a6ba21f1087001d15278a7bd79c8219'
+ '253c211455ff0cfaa058a0b80eb41d58f84ee646c0c67dbcbcc888b5833009a7'
+ 'c684ff93824137d79a384a134e644849ef33c986f2d9e192636fc8d80ef9baba'
+ 'c922afe6a2cd4fe7296a0921e47e09abedf0104dc23d0037010d1df4cc42308b'
+ 'b01699c635efcff48fc11f8d20e7f88e6497aba912496df2e379be46e584a6f4'
+ 'eeeb4dd40d30d0e8c0f0001d44ca7876c1c564dfc31b24ecfb871fd133037825'
+ 'd1e2e3fa1299b423f1d98cbd3c591d853f1ce8646f508ef838fe714f986fc5b2'
+ 'f76cf723e3436333176bcb778b2c32988d9789f14d339ee1cb8c13ef35e2fdd6'
'1f22dbb5a3ca6925bbf62899cd0f0bbaa0b77c879adcdd12ff9d43adfa61b1d8'
'210eb93342228168f7bb632c8b93d9bfda6f53f62459a6b74987fa1e17530475'
'3e07dc524a827c1651857cce28a06c1565bc5188101c140ed213bbafedc5abff'
'7332d09865be553a259a53819cebddd21f661c7a251d78c2f46acd75c66676b6'
+ '74e2208e0c03e5f21be3ff54b58160a172e3768a80c41726c06b4ab8cc9288dd'
+ 'c7e9958a9cff1191dca0d50b0ea8392d7728490e56ffb38a475ba516a09a2109'
'44899328725667041e6e84912da81c1d0147b708006eb2c2bb6503f271629ff0'
'559190df4d6d595480b30d8b13b862081fc4aac52790e33eb24cf7fbcb8003b8')
pkgver() {
- cd "$srcdir/$_pkgname"
+ cd "${pkgname%*-git}"
( set -o pipefail
git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
@@ -37,49 +61,50 @@ pkgver() {
}
prepare() {
- cd "$srcdir/${_pkgname}"
+ cd "${pkgname%*-git}"
# Don't build tests
truncate -s 0 cmake/FindGMock.cmake
truncate -s 0 tests/CMakeLists.txt
+
+ # Thanks to @bartus <arch-user-repo@bartus.33mail.com> for suggesting the patch
+ # checking before applying it.
+ # Original patch: http://ix.io/3Clr
+ printf '%s\n' "${source[@]%%::*}" \
+ | awk -F . '/\.patch/{print $1}' \
+ | while read -r patch;do
+ if patch --dry-run -Np1 -Rsf < "$srcdir/$patch.patch" &> /dev/null; then
+ warning "Patch already applied, please remove $patch.patch from source[]!"
+ read -t5 -p 'press enter to continue...' || true
+ else
+ msg "Applying patch: $patch"
+ patch -Np1 < "$srcdir/$patch.patch"
+ fi
+ done
}
build() {
- mkdir -p "$srcdir/${_pkgname}/build"
- cd "$srcdir/${_pkgname}/build"
-
- cmake .. -DCMAKE_INSTALL_LIBDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-Wno-error=implicit-fallthrough -Wno-error=missing-field-initializers" -DCMAKE_BUILD_TYPE=Release
- make
+ cmake -B build -S "${pkgname%*-git}" \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_SKIP_INSTALL_RPATH=YES \
+ -DCMAKE_SKIP_RPATH=YES \
+ -Wno-dev
+ make -C build
}
-package_anbox-git() {
- depends=('lxc' 'sdl2_image' 'protobuf' 'anbox-image' 'libsystemd' 'boost-libs')
- optdepends=('anbox-modules-dkms-git: Required Android kernel modules')
- pkgdesc="Running Android in a container"
-
- cd "$srcdir/${_pkgname}"
+package() {
make -C build DESTDIR="$pkgdir" install
- install -Dm 644 -t $pkgdir/usr/lib/systemd/system $srcdir/anbox-container-manager.service
- install -Dm 644 -t $pkgdir/usr/lib/systemd/user $srcdir/anbox-session-manager.service
- install -Dm 644 $srcdir/anbox-bridge.network $pkgdir/usr/lib/systemd/network/80-anbox-bridge.network
- install -Dm 644 $srcdir/anbox-bridge.netdev $pkgdir/usr/lib/systemd/network/80-anbox-bridge.netdev
- install -Dm 644 -t $pkgdir/usr/lib/udev/rules.d $srcdir/99-anbox.rules
- install -Dm 644 -t $pkgdir/usr/share/applications $srcdir/anbox.desktop
- install -Dm 644 snap/gui/icon.png $pkgdir/usr/share/pixmaps/anbox.png
-}
-
-package_anbox-modules-dkms-git() {
- pkgdesc="Required kernel module sources for Android"
- depends=('dkms')
- arch=('any')
-
- cd "$srcdir/anbox-modules"
- modules=(ashmem binder)
- for mod in "${modules[@]}"; do
- install -dm 755 $pkgdir/usr/src
- cp -a $mod $pkgdir/usr/src/anbox-modules-$mod-$pkgver
- done;
-
- install -Dm 644 -t $pkgdir/usr/lib/modules-load.d $srcdir/anbox.conf
+ install -Dm 644 -t "$pkgdir/usr/lib/systemd/system" anbox-container-manager.service dev-binderfs.mount
+ install -Dm 644 -t "$pkgdir/usr/lib/systemd/user" anbox-session-manager.service
+ install -Dm 644 "$srcdir/anbox-bridge.network" "$pkgdir/usr/lib/systemd/network/80-anbox-bridge.network"
+ install -Dm 644 "$srcdir/anbox-bridge.netdev" "$pkgdir/usr/lib/systemd/network/80-anbox-bridge.netdev"
+ install -Dm 644 -t "$pkgdir/usr/lib/udev/rules.d" 99-anbox.rules
+ install -Dm 644 -t "$pkgdir/usr/share/applications" anbox.desktop
+ install -Dm 644 -t "$pkgdir/usr/share/dbus-1/services" org.anbox.service
+ install -Dm 644 "${pkgname%*-git}/snap/gui/icon.png" "$pkgdir/usr/share/pixmaps/anbox.png"
+ install -Dm 644 -t "$pkgdir/usr/share/desktop-directories" "${pkgname%*-git}/data/desktop/anbox-android.directory"
+ install -Dm 644 -t "$pkgdir/etc/xdg/menus/applications-merged" "${pkgname%*-git}/data/desktop/anbox-android.menu"
}
diff --git a/anbox-container-manager.service b/anbox-container-manager.service
index 8be699138c94..81d01250adbc 100644
--- a/anbox-container-manager.service
+++ b/anbox-container-manager.service
@@ -2,7 +2,8 @@
Description=Anbox Container Manager
[Service]
-ExecStart=/usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox
+ExecStart=/usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --container-network-gateway=192.168.250.1 --container-network-address=192.168.250.2
[Install]
WantedBy=multi-user.target
+Also=dev-binderfs.mount
diff --git a/cpu_features.patch b/cpu_features.patch
new file mode 100644
index 000000000000..1e8c82498237
--- /dev/null
+++ b/cpu_features.patch
@@ -0,0 +1,42 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fc3d9bd..55e1182 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -60,6 +60,7 @@ find_package(Boost COMPONENTS filesystem log serialization system thread program
+ find_package(PkgConfig)
+ find_package(Threads)
+ find_package(SDBus-C++ REQUIRED)
++find_package(CpuFeatures REQUIRED)
+ find_package(EGL REQUIRED)
+ find_package(GLESv2 REQUIRED)
+ find_package(Protobuf REQUIRED)
+diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
+index 332ca9e..b711e88 100644
+--- a/external/CMakeLists.txt
++++ b/external/CMakeLists.txt
+@@ -5,4 +5,3 @@ add_subdirectory(backward-cpp)
+
+ set(BUILD_TESTING OFF)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error")
+-add_subdirectory(cpu_features EXCLUDE_FROM_ALL)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9b7a508..64ca80d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -25,7 +25,6 @@ include_directories(
+ ${CMAKE_BINARY_DIR}/external/android-emugl/host/libs/GLESv2_dec
+ ${CMAKE_SOURCE_DIR}/external/android-emugl/host/libs/renderControl_dec
+ ${CMAKE_BINARY_DIR}/external/android-emugl/host/libs/renderControl_dec
+- ${CMAKE_SOURCE_DIR}/external/cpu_features/include
+ )
+
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBINDERFS_PATH=\"\\\"${BINDERFS_PATH}\\\"\"")
+@@ -399,7 +398,7 @@ target_link_libraries(anbox-core
+ ${MIRCLIENT_LIBRARIES}
+ ${LIBSYSTEMD_LDFLAGS}
+ ${LIBSYSTEMD_LIBRARIES}
+- cpu_features
++ CpuFeatures::cpu_features
+ pthread
+ process-cpp
+ emugl_common
diff --git a/desktop-dir.patch b/desktop-dir.patch
new file mode 100644
index 000000000000..7df9eb6fdcaa
--- /dev/null
+++ b/desktop-dir.patch
@@ -0,0 +1,23 @@
+diff --git a/data/desktop/anbox-android.directory b/data/desktop/anbox-android.directory
+index 8af4627..614cde8 100644
+--- a/data/desktop/anbox-android.directory
++++ b/data/desktop/anbox-android.directory
+@@ -2,4 +2,4 @@
+ Type=Directory
+ Name=Anbox
+ GenericName=Anbox
+-Icon=${SNAP}/meta/gui/icon.png
++Icon=anbox
+diff --git a/data/desktop/anbox-android.menu b/data/desktop/anbox-android.menu
+index ad0af8b..492c78f 100644
+--- a/data/desktop/anbox-android.menu
++++ b/data/desktop/anbox-android.menu
+@@ -9,7 +9,7 @@
+ <Include>
+ <Or>
+ <Category>Anbox</Category>
+- <Filename>appmgr.desktop</Filename>
++ <Filename>anbox.desktop</Filename>
+ </Or>
+ </Include>
+ </Menu>
diff --git a/dev-binderfs.mount b/dev-binderfs.mount
new file mode 100644
index 000000000000..b112a9dc140b
--- /dev/null
+++ b/dev-binderfs.mount
@@ -0,0 +1,13 @@
+[Unit]
+Description=Android Binder File System
+ConditionPathExists=!/dev/binder
+Before=anbox-container-manager.service
+
+[Mount]
+Where=/dev/binderfs
+What=binder
+Type=binder
+Options=nofail
+
+[Install]
+WantedBy=anbox-container-manager.service
diff --git a/org.anbox.service b/org.anbox.service
new file mode 100644
index 000000000000..a344f98944f7
--- /dev/null
+++ b/org.anbox.service
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=org.anbox
+Exec=/usr/bin/anbox session-manager
+SystemdService=anbox-session-manager.service