提交 117111ce 编写于 作者: S Simon Fels

Extend snap packaging with further details

上级 1c9ebae8
#!/bin/bash
# Make sure our setup path for the container rootfs
# is present as lxc is statically configured for
# this path.
mkdir -p $SNAP_COMMON/lxc
exec $SNAP/bin/anbox container-manager
#!/bin/bash
$SNAP/bin/lxc-attach \
--lxcpath=$SNAP_COMMON/var/lib/anbox/containers \
--name default \
--clear-env \
--set-var PATH=/system/bin:/system/sbin:/system/xbin \
--set-var ANDROID_DATA=/data \
-- \
/system/bin/sh
#!/bin/bash
# We need to put the rootfs somewhere where we can modify some
# parts of the content on first boot (namely file permissions).
# Other than that nothing should ever modify the content of the
# rootfs.
ROOTFS_PATH=$SNAP_COMMON/var/lib/anbox/rootfs
if [ -d $ROOTFS_PATH ] ; then
rm -rf $ROOTFS_PATH
fi
echo "Copying rootfs into $ROOTFS_PATH .."
mkdir -p $ROOTFS_PATH
tar xf $SNAP/anbox-android-rootfs.tar -C $ROOTFS_PATH/ --strip-components=1
#!/bin/bash
exec /bin/bash $@
#!/bin/bash
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
elif [ "$SNAP_ARCH" == "armhf" ]; then
ARCH="arm-linux-gnueabihf"
else
ARCH="$SNAP_ARCH-linux-gnu"
fi
export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH:$LD_LIBRARY_PATH
# Mesa Libs
export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH/mesa:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH/mesa-egl:$LD_LIBRARY_PATH
# XDG Config
export XDG_CONFIG_DIRS=$SNAP/etc/xdg:$XDG_CONFIG_DIRS
export XDG_CONFIG_DIRS=$SNAP/usr/xdg:$XDG_CONFIG_DIRS
# Note: this doesn't seem to work, QML's LocalStorage either ignores
# or fails to use $SNAP_USER_DATA if defined here
export XDG_DATA_DIRS=$SNAP_USER_DATA:$XDG_DATA_DIRS
export XDG_DATA_DIRS=$SNAP/usr/share:$XDG_DATA_DIRS
# Not good, needed for fontconfig
export XDG_DATA_HOME=$SNAP/usr/share
# Tell libGL where to find the drivers
export LIBGL_DRIVERS_PATH=$SNAP/usr/lib/$ARCH/dri
# ensure the snappy gl libs win
export LD_LIBRARY_PATH="$SNAP_LIBRARY_PATH:$LD_LIBRARY_PATH"
cd $SNAP
if [ "$(id -u)" == "0" ] ; then
# Make sure our setup path for the container rootfs
# is present as lxc is statically configured for
# this path.
mkdir -p $SNAP_COMMON/lxc
fi
exec $SNAP/usr/bin/anbox $@
#!/bin/bash
exec $SNAP/bin/lxc-start -P $SNAP_COMMON/var/lib/anbox/containers -n default -F
......@@ -8,48 +8,117 @@ description: |
confinement: devmode
apps:
anbox:
command: usr/bin/anbox
anbox:
command: bin/anbox-wrapper.sh
container-manager:
command: bin/anbox-wrapper.sh container-manager
# daemon: simple
setup-rootfs:
command: bin/setup-rootfs.sh
shell:
command: bin/container-shell.sh
sh:
command: bin/shell.sh
start-container:
command: bin/start-container.sh
parts:
anbox:
plugin: cmake
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
# FIXME: When building in release mode we get a lot of error which cause
# the build to fail.
- -DCMAKE_BUILD_TYPE=debug
build-packages:
- build-essential
- cmake
- cmake-data
- debhelper
- dbus
- google-mock
- libboost-dev
- libboost-filesystem-dev
- libboost-log-dev
- libboost-iostreams-dev
- libboost-program-options-dev
- libboost-system-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
- pkg-config
- protobuf-compiler
stage-packages:
- lxc1
snap:
- usr/bin/anbox
- usr/bin/anbox-container
- usr/bin/lxc-usernsexec
- usr/lib/*-linux-*/
android-rootfs:
plugin: dump
source: .
snap:
- anbox-android-rootfs.tar
anbox-common:
plugin: dump
source: .
organize:
scripts/snap-wrapper.sh: bin/anbox-wrapper.sh
scripts/setup-rootfs.sh: bin/setup-rootfs.sh
scripts/container-shell.sh: bin/container-shell.sh
scripts/shell.sh: bin/shell.sh
scripts/start-container.sh: bin/start-container.sh
snap:
- bin/anbox-wrapper.sh
- bin/setup-rootfs.sh
- bin/container-shell.sh
- bin/shell.sh
- bin/start-container.sh
lxc:
source: git://github.com/morphis/lxc
source-branch: snappy-support
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
# FIXME: Enable again once stacked AppArmor support landed
- --disable-apparmor
- --disable-seccomp
- --enable-capabilities
- --with-rootfs-path=/var/snap/anbox/common/lxc/
snap:
- bin/lxc-attach
- bin/lxc-ls
- bin/lxc-start
- bin/lxc-stop
- lib/liblxc.so.1
- lib/liblxc.so.1.2.0
- libexec/lxc/lxc-monitord
anbox:
plugin: cmake
after:
- lxc
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
# FIXME: When building in release mode we get a lot of error which cause
# the build to fail.
- -DCMAKE_BUILD_TYPE=debug
build-packages:
- build-essential
- cmake
- cmake-data
- debhelper
- dbus
- google-mock
- libboost-dev
- libboost-filesystem-dev
- libboost-log-dev
- libboost-iostreams-dev
- libboost-program-options-dev
- libboost-system-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
- libsdl2-dev
- pkg-config
- protobuf-compiler
stage-packages:
- libegl1-mesa
- libgles2-mesa
- libgl1-mesa-glx
- libsdl2-2.0-0
- libsdl2-gfx-1.0-0
snap:
- usr/bin/anbox
- usr/lib/*-linux-*/
......@@ -34,9 +34,11 @@ anbox::cmds::StartContainer::StartContainer()
});
auto rt = Runtime::create();
auto container = std::make_shared<container::LxcContainer>();
container::Configuration config;
rt->start();
container->start(config);
trap->run();
rt->stop();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册