mirror of
https://abf.rosa.ru/djam/anbox.git
synced 2025-02-23 07:32:49 +00:00
Init (thanks to Debian package)
This commit is contained in:
commit
3f7fab69ff
12 changed files with 564 additions and 0 deletions
2
.abf.yml
Normal file
2
.abf.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
sources:
|
||||
anbox-6c10125a7f13908d2cbe56d2d9ab09872755f265.tar.gz: 6ea0aed70943a590a3de66cadeb687b7c1c9d252
|
61
0001-fix-spelling-errors-in-external-libraries.patch
Normal file
61
0001-fix-spelling-errors-in-external-libraries.patch
Normal file
|
@ -0,0 +1,61 @@
|
|||
From ffb2be18277c85fac6e7450458884e6a1a3ace9c Mon Sep 17 00:00:00 2001
|
||||
From: Shengjing Zhu <i@zhsj.me>
|
||||
Date: Fri, 8 Jun 2018 15:10:44 +0800
|
||||
Subject: [PATCH 1/3] fix spelling errors in external libraries
|
||||
|
||||
Signed-off-by: Shengjing Zhu <i@zhsj.me>
|
||||
---
|
||||
external/process-cpp-minimal/src/core/posix/fork.cpp | 8 ++++----
|
||||
external/xdg/xdg.cpp | 2 +-
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/external/process-cpp-minimal/src/core/posix/fork.cpp b/external/process-cpp-minimal/src/core/posix/fork.cpp
|
||||
index 82a225c..aa405ad 100644
|
||||
--- a/external/process-cpp-minimal/src/core/posix/fork.cpp
|
||||
+++ b/external/process-cpp-minimal/src/core/posix/fork.cpp
|
||||
@@ -97,12 +97,12 @@ ChildProcess fork(const std::function<posix::exit::Status()>& main,
|
||||
result = main();
|
||||
} catch(const std::exception& e)
|
||||
{
|
||||
- std::cerr << "core::posix::fork(): An unhandled std::exception occured in the child process:" << std::endl
|
||||
+ std::cerr << "core::posix::fork(): An unhandled std::exception occurred in the child process:" << std::endl
|
||||
<< " what(): " << e.what() << std::endl;
|
||||
print_backtrace(std::cerr, " ");
|
||||
} catch(...)
|
||||
{
|
||||
- std::cerr << "core::posix::fork(): An unhandled exception occured in the child process." << std::endl;
|
||||
+ std::cerr << "core::posix::fork(): An unhandled exception occurred in the child process." << std::endl;
|
||||
print_backtrace(std::cerr, " ");
|
||||
}
|
||||
|
||||
@@ -154,12 +154,12 @@ ChildProcess vfork(const std::function<posix::exit::Status()>& main,
|
||||
result = main();
|
||||
} catch(const std::exception& e)
|
||||
{
|
||||
- std::cerr << "core::posix::fork(): An unhandled std::exception occured in the child process:" << std::endl
|
||||
+ std::cerr << "core::posix::fork(): An unhandled std::exception occurred in the child process:" << std::endl
|
||||
<< " what(): " << e.what() << std::endl;
|
||||
print_backtrace(std::cerr, " ");
|
||||
} catch(...)
|
||||
{
|
||||
- std::cerr << "core::posix::fork(): An unhandled exception occured in the child process." << std::endl;
|
||||
+ std::cerr << "core::posix::fork(): An unhandled exception occurred in the child process." << std::endl;
|
||||
print_backtrace(std::cerr, " ");
|
||||
}
|
||||
|
||||
diff --git a/external/xdg/xdg.cpp b/external/xdg/xdg.cpp
|
||||
index d54fdfe..19a69e9 100644
|
||||
--- a/external/xdg/xdg.cpp
|
||||
+++ b/external/xdg/xdg.cpp
|
||||
@@ -30,7 +30,7 @@ fs::path throw_if_not_absolute(const fs::path& p)
|
||||
if (p.has_root_directory())
|
||||
return p;
|
||||
|
||||
- throw std::runtime_error{"Directores MUST be absolute."};
|
||||
+ throw std::runtime_error{"Directories MUST be absolute."};
|
||||
}
|
||||
|
||||
namespace env
|
||||
--
|
||||
2.30.0
|
||||
|
37
0002-exclude-external-from-all-target.patch
Normal file
37
0002-exclude-external-from-all-target.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
From 6deb16b7166b76c6f8a81455705693b82175b84f Mon Sep 17 00:00:00 2001
|
||||
From: Shengjing Zhu <i@zhsj.me>
|
||||
Date: Sun, 8 Jul 2018 18:07:15 +0800
|
||||
Subject: [PATCH 2/3] exclude external from all target
|
||||
|
||||
Signed-off-by: Shengjing Zhu <i@zhsj.me>
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
external/xdg/CMakeLists.txt | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 713df49..6c44854 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -136,7 +136,7 @@ set(ANBOX_STATEDIR_FULL "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/anbox")
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/anbox/build/config.h.in
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/anbox/build/config.h)
|
||||
|
||||
-add_subdirectory(external)
|
||||
+add_subdirectory(external EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(tests)
|
||||
add_subdirectory(android)
|
||||
diff --git a/external/xdg/CMakeLists.txt b/external/xdg/CMakeLists.txt
|
||||
index 249da48..8ad4f1d 100644
|
||||
--- a/external/xdg/CMakeLists.txt
|
||||
+++ b/external/xdg/CMakeLists.txt
|
||||
@@ -21,4 +21,4 @@ add_executable(xdg_test xdg_test.cpp)
|
||||
set_property(TARGET xdg_test PROPERTY CXX_STANDARD 11)
|
||||
target_link_libraries(xdg_test xdg ${Boost_LIBRARIES})
|
||||
|
||||
-add_test(xdg_test xdg_test)
|
||||
+#add_test(xdg_test xdg_test)
|
||||
--
|
||||
2.30.0
|
||||
|
27
0003-pass-dpkg-buildflags-to-external-android-emugl.patch
Normal file
27
0003-pass-dpkg-buildflags-to-external-android-emugl.patch
Normal file
|
@ -0,0 +1,27 @@
|
|||
From 1603781c312934d31a090954eebc92a972d84dd3 Mon Sep 17 00:00:00 2001
|
||||
From: Shengjing Zhu <i@zhsj.me>
|
||||
Date: Wed, 11 Jul 2018 00:30:37 +0800
|
||||
Subject: [PATCH 3/3] pass dpkg buildflags to external android-emugl
|
||||
|
||||
Signed-off-by: Shengjing Zhu <i@zhsj.me>
|
||||
---
|
||||
external/android-emugl/CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/external/android-emugl/CMakeLists.txt b/external/android-emugl/CMakeLists.txt
|
||||
index 23173b3..f2e1c43 100644
|
||||
--- a/external/android-emugl/CMakeLists.txt
|
||||
+++ b/external/android-emugl/CMakeLists.txt
|
||||
@@ -1,7 +1,7 @@
|
||||
# Don't treat any warnings as error as we take the source directly from
|
||||
# upstream and just compile it.
|
||||
-set(CMAKE_C_FLAGS "-Wall")
|
||||
-set(CMAKE_CXX_FLAGS "-std=c++11 -Wall")
|
||||
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
|
||||
|
||||
# Ensure -fPIC
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
--
|
||||
2.30.0
|
||||
|
83
0004-Use-system-cpu_features-and-sdbus-cpp.patch
Normal file
83
0004-Use-system-cpu_features-and-sdbus-cpp.patch
Normal file
|
@ -0,0 +1,83 @@
|
|||
From 916ad080828ab9a1939dea0d417eae05c93da849 Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
|
||||
Date: Sat, 2 Jan 2021 03:01:09 +0300
|
||||
Subject: [PATCH] Use system cpu_features and sdbus-cpp
|
||||
|
||||
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
|
||||
index f677aa0..9341a50 100644
|
||||
--- a/external/CMakeLists.txt
|
||||
+++ b/external/CMakeLists.txt
|
||||
@@ -5,13 +5,4 @@ add_subdirectory(backward-cpp)
|
||||
|
||||
set(BUILD_TESTING OFF)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error")
|
||||
-add_subdirectory(cpu_features)
|
||||
-include(ExternalProject)
|
||||
-ExternalProject_Add(sdbus-cpp
|
||||
- PREFIX sdbus-cpp
|
||||
- SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/sdbus-cpp"
|
||||
- INSTALL_COMMAND ""
|
||||
- CMAKE_CACHE_ARGS
|
||||
- -DBUILD_CODE_GEN:BOOL=ON
|
||||
- -DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-)
|
||||
+
|
||||
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 796b881..6c59f48 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -59,7 +59,7 @@ add_library(anbox-protobuf
|
||||
target_link_libraries(anbox-protobuf
|
||||
${PROTOBUF_LITE_LIBRARIES})
|
||||
|
||||
-set(XML2CPP ${CMAKE_BINARY_DIR}/external/sdbus-cpp/src/sdbus-cpp-build/tools/sdbus-c++-xml2cpp)
|
||||
+set(XML2CPP /usr/bin/sdbus-c++-xml2cpp)
|
||||
|
||||
macro(DBusServer BaseName)
|
||||
add_custom_command(
|
||||
diff --git a/src/anbox/cmds/check_features.cpp b/src/anbox/cmds/check_features.cpp
|
||||
index 1e5c745..8abbe9e 100644
|
||||
--- a/src/anbox/cmds/check_features.cpp
|
||||
+++ b/src/anbox/cmds/check_features.cpp
|
||||
@@ -18,9 +18,9 @@
|
||||
#include "anbox/cmds/check_features.h"
|
||||
#include "anbox/utils.h"
|
||||
|
||||
-#include "cpu_features_macros.h"
|
||||
+#include <cpu_features/cpu_features_macros.h>
|
||||
#if defined(CPU_FEATURES_ARCH_X86)
|
||||
-#include "cpuinfo_x86.h"
|
||||
+#include <cpu_features/cpuinfo_x86.h>
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
diff --git a/src/anbox/cmds/system_info.cpp b/src/anbox/cmds/system_info.cpp
|
||||
index b999417..691f7aa 100644
|
||||
--- a/src/anbox/cmds/system_info.cpp
|
||||
+++ b/src/anbox/cmds/system_info.cpp
|
||||
@@ -30,9 +30,9 @@
|
||||
|
||||
#include "OpenGLESDispatch/EGLDispatch.h"
|
||||
|
||||
-#include "cpu_features_macros.h"
|
||||
+#include <cpu_features/cpu_features_macros.h>
|
||||
#if defined(CPU_FEATURES_ARCH_X86)
|
||||
-#include "cpuinfo_x86.h"
|
||||
+#include <cpu_features/cpuinfo_x86.h>
|
||||
#endif
|
||||
|
||||
namespace fs = boost::filesystem;
|
||||
diff --git a/src/anbox/dbus/sensors_server.cpp b/src/anbox/dbus/sensors_server.cpp
|
||||
index 036022b..103c2aa 100644
|
||||
--- a/src/anbox/dbus/sensors_server.cpp
|
||||
+++ b/src/anbox/dbus/sensors_server.cpp
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "anbox/android/intent.h"
|
||||
#include "anbox/application/sensor_type.h"
|
||||
#include "anbox/logger.h"
|
||||
-#include "sdbus-c++/Error.h"
|
||||
+#include <sdbus-c++/Error.h>
|
||||
|
||||
sdbus::Struct<double, double, double> SensorsServer::Acceleration() {
|
||||
if (impl_->disabled_sensors & anbox::application::SensorType::AccelerationSensor)
|
30
0005-Off-Werror.patch
Normal file
30
0005-Off-Werror.patch
Normal file
|
@ -0,0 +1,30 @@
|
|||
From 417ae38718424effe2e807533f6a224ba5a08404 Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
|
||||
Date: Sat, 2 Jan 2021 03:08:30 +0300
|
||||
Subject: [PATCH] Off -Werror
|
||||
|
||||
There is a lot of old, copy-pastred, not well maintained code here which fails to build.
|
||||
---
|
||||
CMakeLists.txt | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6c44854..9452edc 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -38,11 +38,7 @@ endif()
|
||||
|
||||
string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower)
|
||||
|
||||
-if ("${cmake_build_type_lower}" STREQUAL "release" OR "${cmake_build_type_lower}" STREQUAL "relwithdebinfo")
|
||||
- option(Werror "Treat warnings as errors" ON)
|
||||
-else()
|
||||
- option(Werror "Treat warnings as errors" OFF)
|
||||
-endif()
|
||||
+option(Werror "Treat warnings as errors" OFF)
|
||||
|
||||
if (${Werror})
|
||||
message(STATUS "Treat warnings as errors")
|
||||
--
|
||||
2.30.0
|
||||
|
83
README.ROSA
Normal file
83
README.ROSA
Normal file
|
@ -0,0 +1,83 @@
|
|||
Anbox for Debian
|
||||
----------------
|
||||
|
||||
* Setup
|
||||
|
||||
In order to run Android system inside container, you need two kernel
|
||||
modules: ashmem_linux and binder_linux.
|
||||
|
||||
On ROSA, install dkms-anbox-modules or binary kernel modules for your kernel,
|
||||
e.g. kernel-modules-anbox-generic-5.10-latest, if they are available.
|
||||
|
||||
Run following commands to check if you have the kernel modules:
|
||||
|
||||
modinfo binder_linux
|
||||
modinfo ashmem_linux
|
||||
|
||||
You also need to download the Android image to /var/lib/anbox/android.img.
|
||||
The path is important, since the systemd service metioned below will check it.
|
||||
The pre-build image can be found at <https://build.anbox.io/android-images>.
|
||||
|
||||
Then start the anbox-container-manager.service and the
|
||||
anbox-session-manager.service, anbox-session-manager.service is a systemd
|
||||
user service.
|
||||
|
||||
Add lxc to autostart and start it right now:
|
||||
|
||||
sudo systemctl enable --now lxc
|
||||
|
||||
You can run following commands to manually start and enbale (add to autostart) the services:
|
||||
|
||||
sudo systemctl enable --now anbox-container-manager.service
|
||||
systemctl --user enable --now anbox-session-manager.service
|
||||
|
||||
If the above commands all succeed, you can start the Android application from
|
||||
desktop menu now. Or you launch application from command line:
|
||||
|
||||
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
|
||||
|
||||
* Debug
|
||||
|
||||
You can launch the anbox process manually with ANBOX_LOG_LEVEL=debug
|
||||
environment.
|
||||
|
||||
For example,
|
||||
|
||||
env ANBOX_LOG_LEVEL=debug anbox session-manager
|
||||
env ANBOX_LOG_LEVEL=debug anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
|
||||
|
||||
/var/lib/anbox/logs/container.log contains the LXC log.
|
||||
/var/lib/anbox/logs/console.log contains the console log of Android system,
|
||||
|
||||
Android root shell can be gained by running:
|
||||
|
||||
sudo anbox-shell
|
||||
|
||||
Then you can run `logcat` inside to see the Android logs.
|
||||
|
||||
* Applications
|
||||
|
||||
The upstream Android image doesn't bring any App Store, but you can use adb to
|
||||
install applications from the command line:
|
||||
|
||||
wget https://f-droid.org/FDroid.apk
|
||||
adb install FDroid.apk
|
||||
|
||||
As shown in the above example, you can download F-Droid apk from its website
|
||||
and install it with adb.
|
||||
|
||||
abd utility is in the package android-tools in ROSA.
|
||||
|
||||
* Misc
|
||||
|
||||
1. Anbox may not work with Nvidia graphic drivers. If your meet segmentation
|
||||
fault, please try to uninstall the drivers first.
|
||||
2. If you see segfault or other errors from Android, you can try to update
|
||||
Android rootfs image, as it may be fixed by upstream.
|
||||
3. Some system may lack features to run Anbox, this can be checked with
|
||||
command: `anbox check-features`.
|
||||
|
||||
More documents can be found at <https://docs.anbox.io/>.
|
||||
|
||||
-- Shengjing Zhu <zhsj@debian.org> Sun, 27 Oct 2019 23:08:28 +0800
|
||||
-- Mikhail Novosyolov <m.novosyolov@rosalinux.ru> Sat, 01 Jan 2021 00:31:00 +0300
|
17
anbox-container-manager.service
Normal file
17
anbox-container-manager.service
Normal file
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=Anbox Container Manager
|
||||
Documentation=man:anbox(1)
|
||||
# TODO: add dependency from lxc
|
||||
After=network.target
|
||||
Wants=network.target
|
||||
ConditionPathExists=/var/lib/anbox/android.img
|
||||
|
||||
[Service]
|
||||
ExecStartPre=/sbin/modprobe ashmem_linux
|
||||
ExecStartPre=/sbin/modprobe binder_linux
|
||||
ExecStartPre=/usr/share/anbox/anbox-bridge.sh start
|
||||
ExecStart=/usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox
|
||||
ExecStopPost=/usr/share/anbox/anbox-bridge.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
9
anbox-session-manager.service
Normal file
9
anbox-session-manager.service
Normal file
|
@ -0,0 +1,9 @@
|
|||
[Unit]
|
||||
Description=Anbox Session Manager
|
||||
Documentation=man:anbox(1)
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/anbox session-manager
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
52
anbox.1
Normal file
52
anbox.1
Normal file
|
@ -0,0 +1,52 @@
|
|||
.TH anbox 1 "Jan 2021"
|
||||
|
||||
.SH NAME
|
||||
anbox - run Android in a box
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B anbox [command options] [arguments...]
|
||||
|
||||
.SH COMMANDS
|
||||
.TP
|
||||
system-info
|
||||
Print various information about the system we're running on
|
||||
.TP
|
||||
check-features
|
||||
Check that the host system supports all necessary features
|
||||
.TP
|
||||
session-manager
|
||||
Run the the anbox session manager
|
||||
.TP
|
||||
container-manager
|
||||
Start the container manager service
|
||||
.TP
|
||||
launch
|
||||
Launch an Activity by sending an intent
|
||||
.TP
|
||||
help
|
||||
prints a short help message
|
||||
.TP
|
||||
version
|
||||
print the version of the daemon
|
||||
.TP
|
||||
wait-ready
|
||||
Wait until the Android system has successfully booted
|
||||
|
||||
.SH DESCRIPTION
|
||||
Anbox is a container-based approach to boot a full Android system on a regular GNU/Linux system
|
||||
like ROSA. In other words: Anbox will let you run Android on your Linux system without the
|
||||
slowness of virtualization.
|
||||
|
||||
.SH EXAMPLES
|
||||
|
||||
To launch an Android application from command line:
|
||||
|
||||
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
|
||||
|
||||
.SH SEE ALSO
|
||||
.B /usr/share/doc/anbox/README.ROSA
|
||||
|
||||
.SH AUTHOR
|
||||
This manual page was written by Shengjing Zhu <zhsj@debian.org>,
|
||||
for the Debian GNU/Linux system (but may be used by others)
|
||||
and was adapted for ROSA by mikhailnov <m.novosyolov@rosalinux.ru>.
|
13
anbox.desktop
Normal file
13
anbox.desktop
Normal file
|
@ -0,0 +1,13 @@
|
|||
[Desktop Entry]
|
||||
Name=Anbox
|
||||
GenericName=Anbox Application Manager
|
||||
GenericName[ru]=Менеджер приложений Anbox
|
||||
Comment=Android in a box
|
||||
Comment[ru]=Запуск Android-приложений
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Icon=anbox
|
||||
Exec=anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
|
||||
Terminal=false
|
||||
Keywords=android;container;
|
||||
Categories=Utility;
|
150
anbox.spec
Normal file
150
anbox.spec
Normal file
|
@ -0,0 +1,150 @@
|
|||
%define commit 6c10125a7f13908d2cbe56d2d9ab09872755f265
|
||||
%define commit_short %(echo %{commit} | head -c 6)
|
||||
|
||||
Summary: Android in a box
|
||||
Name: anbox
|
||||
Version: 0.0
|
||||
Release: 0.git%{commit_short}.1
|
||||
License: GPLv3
|
||||
Group: Emulators
|
||||
Url: https://anbox.io
|
||||
Source0: https://github.com/anbox/anbox/archive/%{commit}.tar.gz?/%{name}-%{commit}.tar.gz
|
||||
|
||||
# Additional stuff from Debian
|
||||
Source10: anbox-container-manager.service
|
||||
Source11: anbox-session-manager.service
|
||||
Source12: anbox.desktop
|
||||
Source13: anbox.1
|
||||
Source14: README.ROSA
|
||||
|
||||
# Patches from Debian
|
||||
Patch0001: 0001-fix-spelling-errors-in-external-libraries.patch
|
||||
Patch0002: 0002-exclude-external-from-all-target.patch
|
||||
Patch0003: 0003-pass-dpkg-buildflags-to-external-android-emugl.patch
|
||||
# ROSA patches
|
||||
Patch0004: 0004-Use-system-cpu_features-and-sdbus-cpp.patch
|
||||
Patch0005: 0005-Off-Werror.patch
|
||||
|
||||
BuildRequires: boost-devel
|
||||
BuildRequires: cmake
|
||||
BuildRequires: egl-devel
|
||||
BuildRequires: glm-devel
|
||||
BuildRequires: git-core
|
||||
BuildRequires: protobuf-compiler
|
||||
BuildRequires: python3
|
||||
BuildRequires: systemd-units
|
||||
BuildRequires: /usr/bin/sdbus-c++-xml2cpp
|
||||
BuildRequires: cmake(CpuFeatures)
|
||||
BuildRequires: pkgconfig(dri)
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: pkgconfig(libcap)
|
||||
# TODO: lxc v2 is very old, update it to v4
|
||||
BuildRequires: pkgconfig(lxc)
|
||||
# build of tests is disabled in %%prep, but headers are needed
|
||||
BuildRequires: pkgconfig(gmock)
|
||||
BuildRequires: pkgconfig(properties-cpp)
|
||||
BuildRequires: pkgconfig(protobuf)
|
||||
BuildRequires: pkgconfig(sdl2)
|
||||
BuildRequires: pkgconfig(SDL2_image)
|
||||
BuildRequires: pkgconfig(sdbus-c++)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
|
||||
# In Debian it is like this...
|
||||
#ExclusiveArch: %{x86_64} %{armx} %{arm}
|
||||
|
||||
Requires: lxc
|
||||
Requires: iptables
|
||||
# adb to install android apps
|
||||
Recommends: android-tools
|
||||
|
||||
# Description is from Debian package by Shengjing Zhu <zhsj@debian.org>
|
||||
# https://salsa.debian.org/zhsj/anbox
|
||||
|
||||
%description
|
||||
Anbox is a container-based approach to boot a full Android system on a
|
||||
regular GNU/Linux system.
|
||||
In other words: Anbox will let you run Android on your Linux system
|
||||
without the slowness of virtualization.
|
||||
Anbox uses Linux namespaces (user, pid, uts, net, mount, ipc) to run a
|
||||
full Android system in a container and provide Android applications on any
|
||||
GNU/Linux-based platform.
|
||||
The Android inside the container has no direct access to any hardware. All
|
||||
hardware access is going through the anbox daemon on the host. It reuses
|
||||
what Android implemented within the QEMU-based emulator for OpenGL ES
|
||||
accelerated rendering. The Android system inside the container uses
|
||||
different pipes to communicate with the host system and sends all hardware
|
||||
access commands through these.
|
||||
This package needs Android kernel modules and rootfs image,
|
||||
download it from https://build.anbox.io/android-images
|
||||
and put to /var/lib/anbox/android.img.
|
||||
See %{_docdir}/anbox/README.ROSA for more information.
|
||||
|
||||
%files
|
||||
%doc README.ROSA
|
||||
%{_bindir}/anbox
|
||||
%{_bindir}/anbox-shell
|
||||
%{_bindir}/anbox-bridge
|
||||
%{_bindir}/anbox-bridge
|
||||
%{_datadir}/anbox
|
||||
%{_datadir}/dbus-1/interfaces/org.anbox.ApplicationManager.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.anbox.Gps.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.anbox.Sensors.xml
|
||||
%{_datadir}/pixmaps/anbox.png
|
||||
%{_datadir}/applications/anbox.desktop
|
||||
%{_mandir}/man1/anbox.1*
|
||||
%{_userunitdir}/anbox-session-manager.service
|
||||
%{_unitdir}/anbox-container-manager.service
|
||||
%dir /var/lib/anbox
|
||||
|
||||
%post
|
||||
%systemd_post anbox-container-manager.service
|
||||
|
||||
%preun
|
||||
%systemd_preun anbox-container-manager.service
|
||||
|
||||
#------------------------------------------------------------------
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -S git_am -n %{name}-%{commit}
|
||||
|
||||
# (From AUR) Don't build tests
|
||||
#truncate -s 0 cmake/FindGMock.cmake
|
||||
truncate -s 0 tests/CMakeLists.txt
|
||||
|
||||
# Use system libraries
|
||||
rm -fvr external/sdbus-cpp
|
||||
rm -fvr external/cpu_features
|
||||
|
||||
cp %{SOURCE14} README.ROSA
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-DENABLE_TOUCH_INPUT=ON \
|
||||
-DENABLE_WAYLAND=OFF \
|
||||
-DCMAKE_INSTALL_LIBDIR=%{_libdir} \
|
||||
-DANBOX_VERSION=%{version}-%{release} \
|
||||
-DANBOX_VERSION_SUFFIX=%{vendor} \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
%make
|
||||
|
||||
%install
|
||||
%makeinstall_std -C build
|
||||
|
||||
install -m0644 -D snap/gui/icon.png %{buildroot}%{_datadir}/pixmaps/anbox.png
|
||||
install -m0644 -D %{SOURCE10} %{buildroot}%{_unitdir}/anbox-container-manager.service
|
||||
install -m0644 -D %{SOURCE11} %{buildroot}%{_userunitdir}/anbox-session-manager.service
|
||||
install -m0644 -D %{SOURCE12} %{buildroot}%{_datadir}/applications/anbox.desktop
|
||||
install -m0644 -D %{SOURCE13} %{buildroot}%{_mandir}/man1/anbox.1
|
||||
install -m0755 -D scripts/anbox-bridge.sh %{buildroot}%{_datadir}/anbox/anbox-bridge.sh
|
||||
install -m0755 -D scripts/anbox-shell.sh %{buildroot}%{_datadir}/anbox/anbox-shell.sh
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
( cd %{buildroot}%{_bindir}
|
||||
ln -s %{_datadir}/anbox/anbox-shell.sh anbox-shell
|
||||
ln -s %{_datadir}/anbox/anbox-bridge.sh anbox-bridge
|
||||
)
|
||||
mkdir -p %{buildroot}/var/lib/anbox
|
||||
# XXX Is it needed? Added by commit 4b033022eb318, but is not installed.
|
||||
install -m0644 -D src/anbox/dbus/gps.xml %{buildroot}%{_datadir}/dbus-1/interfaces/org.anbox.Gps.xml
|
||||
# The same, do they have to be installed?
|
||||
install -m0644 -D src/anbox/dbus/application_manager.xml %{buildroot}%{_datadir}/dbus-1/interfaces/org.anbox.ApplicationManager.xml
|
||||
install -m0644 -D src/anbox/dbus/sensors.xml %{buildroot}%{_datadir}/dbus-1/interfaces/org.anbox.Sensors.xml
|
Loading…
Add table
Reference in a new issue