snap: cleanup and small refactoring
We're using the desktop helpers now to setup all necessary environment variables for GL drivers etc. and only keep a small set of extra changes on top for things the desktop-helpers don't support yet.
This commit is contained in:
parent
3c303bf7ae
commit
7dde2d9fdf
3 changed files with 39 additions and 45 deletions
206
snap/snapcraft.yaml
Normal file
206
snap/snapcraft.yaml
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
name: anbox
|
||||
version: 3
|
||||
version-script: |
|
||||
if [ "$SNAPCRAFT_GRADE" = "stable" ]; then
|
||||
echo $SNAPCRAFT_PROJECT_VERSION
|
||||
else
|
||||
echo $SNAPCRAFT_PROJECT_VERSION-$(git rev-parse --short HEAD)
|
||||
fi
|
||||
summary: Android in a Box
|
||||
description: |
|
||||
Runtime for Android applications which runs a full Android system
|
||||
in a container using Linux namespaces (user, ipc, net, mount) to
|
||||
separate the Android system fully from the host.
|
||||
confinement: devmode
|
||||
grade: devel
|
||||
|
||||
slots:
|
||||
# Depending on in which environment we're running we either need
|
||||
# to use the system or session DBus so we also need to have one
|
||||
# slot for each.
|
||||
dbus-session:
|
||||
interface: dbus
|
||||
bus: system
|
||||
name: org.anbox
|
||||
dbus-system:
|
||||
interface: dbus
|
||||
bus: system
|
||||
name: org.anbox
|
||||
|
||||
apps:
|
||||
anbox:
|
||||
command: desktop-launch $SNAP/bin/anbox-wrapper.sh
|
||||
container-manager:
|
||||
command: bin/container-manager.sh start
|
||||
stop-command: bin/container-manager.sh stop
|
||||
daemon: simple
|
||||
collect-bug-info:
|
||||
command: bin/collect-bug-info.sh
|
||||
|
||||
parts:
|
||||
android:
|
||||
plugin: dump
|
||||
# This needs to be any directory but not the root one as if we use
|
||||
# it we get superious permissions errors with the copied .git tree
|
||||
source: data
|
||||
build-packages:
|
||||
- wget
|
||||
override-build: |
|
||||
LOCAL_IMAGE=$SNAPCRAFT_PART_INSTALL/../../../android-images/android.img
|
||||
|
||||
if [ -f $LOCAL_IMAGE ]; then
|
||||
|
||||
echo "Using local image $LOCAL_IMAGE"
|
||||
cp $LOCAL_IMAGE $SNAPCRAFT_PART_INSTALL/android.img
|
||||
|
||||
else
|
||||
|
||||
IMAGE_PATH=
|
||||
IMAGE_NAME=
|
||||
ARCH=$(uname -m)
|
||||
|
||||
case "$ARCH" in
|
||||
x86_64)
|
||||
IMAGE_PATH="2017/07/13"
|
||||
IMAGE_NAME="android_3_amd64.img"
|
||||
;;
|
||||
arm*)
|
||||
IMAGE_PATH="2017/06/12"
|
||||
IMAGE_NAME="android_1_armhf.img"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: Unknown architecture $ARCH"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# FIXME: downloading with a source: field doesn't work as snapcraft
|
||||
# expects the downloaded file to be an archive it can extract.
|
||||
echo "Downloading image..."
|
||||
wget http://build.anbox.io/android-images/$IMAGE_PATH/$IMAGE_NAME
|
||||
mv $IMAGE_NAME $SNAPCRAFT_PART_INSTALL/android.img
|
||||
|
||||
fi
|
||||
prime:
|
||||
- android.img
|
||||
|
||||
apparmor:
|
||||
plugin: nil
|
||||
stage-packages:
|
||||
- apparmor
|
||||
|
||||
lxc:
|
||||
source: https://github.com/lxc/lxc
|
||||
source-type: git
|
||||
source-tag: lxc-2.0.7
|
||||
build-packages:
|
||||
- libapparmor-dev
|
||||
- libcap-dev
|
||||
- libgnutls28-dev
|
||||
- libseccomp-dev
|
||||
- pkg-config
|
||||
plugin: autotools
|
||||
configflags:
|
||||
- --disable-selinux
|
||||
- --disable-python
|
||||
- --disable-lua
|
||||
- --disable-tests
|
||||
- --disable-examples
|
||||
- --disable-doc
|
||||
- --disable-api-docs
|
||||
- --disable-bash
|
||||
- --disable-cgmanager
|
||||
- --disable-apparmor
|
||||
- --disable-seccomp
|
||||
- --enable-capabilities
|
||||
- --with-rootfs-path=/var/snap/anbox/common/lxc/
|
||||
- --libexecdir=/snap/anbox/current/libexec/
|
||||
organize:
|
||||
snap/anbox/current/libexec: libexec
|
||||
prime:
|
||||
- lib/liblxc.so.1
|
||||
- lib/liblxc.so.1.2.0
|
||||
- libexec/lxc/lxc-monitord
|
||||
- bin/lxc-start
|
||||
- bin/lxc-stop
|
||||
- bin/lxc-info
|
||||
- bin/lxc-attach
|
||||
- bin/lxc-ls
|
||||
- bin/lxc-top
|
||||
|
||||
anbox-scripts:
|
||||
plugin: dump
|
||||
source: scripts
|
||||
organize:
|
||||
snap-wrapper.sh: bin/anbox-wrapper.sh
|
||||
container-manager.sh: bin/container-manager.sh
|
||||
anbox-bridge.sh: bin/anbox-bridge.sh
|
||||
collect-bug-info.sh: bin/collect-bug-info.sh
|
||||
prime:
|
||||
- bin/anbox-bridge.sh
|
||||
- bin/anbox-wrapper.sh
|
||||
- bin/container-manager.sh
|
||||
- bin/collect-bug-info.sh
|
||||
|
||||
anbox-data:
|
||||
plugin: dump
|
||||
source: data
|
||||
prime:
|
||||
- glvnd
|
||||
|
||||
anbox:
|
||||
plugin: cmake
|
||||
after:
|
||||
- lxc
|
||||
- desktop-glib-only
|
||||
source: .
|
||||
configflags:
|
||||
# FIXME: Anbox currently has some paths with hard coded prefixes. Once
|
||||
# that is fixed we can avoid using a prefix here.
|
||||
- -DCMAKE_INSTALL_PREFIX:PATH=/usr
|
||||
- -DANBOX_VERSION=$SNAPCRAFT_PROJECT_VERSION
|
||||
build-packages:
|
||||
- build-essential
|
||||
- cmake
|
||||
- cmake-data
|
||||
- cmake-extras
|
||||
- debhelper
|
||||
- dbus
|
||||
- google-mock
|
||||
- libboost-dev
|
||||
- libboost-filesystem-dev
|
||||
- libboost-log-dev
|
||||
- libboost-iostreams-dev
|
||||
- libboost-program-options-dev
|
||||
- libboost-system-dev
|
||||
- libboost-test-dev
|
||||
- libboost-thread-dev
|
||||
- libcap-dev
|
||||
- libdbus-1-dev
|
||||
- libdbus-cpp-dev
|
||||
- libegl1-mesa-dev
|
||||
- libgles2-mesa-dev
|
||||
- libglib2.0-dev
|
||||
- libgtest-dev
|
||||
- libprotobuf-dev
|
||||
- libproperties-cpp-dev
|
||||
- libsdl2-dev
|
||||
- libsdl2-image-dev
|
||||
- pkg-config
|
||||
- protobuf-compiler
|
||||
stage-packages:
|
||||
- libboost-log1.58.0
|
||||
- libboost-program-options1.58.0
|
||||
- libboost-thread1.58.0
|
||||
- libdb5.3
|
||||
- libdbus-cpp5
|
||||
- libegl1-mesa
|
||||
- libgles2-mesa
|
||||
- libgl1-mesa-glx
|
||||
- libsdl2-2.0-0
|
||||
- libsdl2-gfx-1.0-0
|
||||
- libsdl2-image-2.0-0
|
||||
prime:
|
||||
- usr/bin/anbox
|
||||
- usr/share/anbox
|
||||
- usr/lib/*-linux-*/
|
||||
Loading…
Add table
Add a link
Reference in a new issue