diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 111 |
1 files changed, 68 insertions, 43 deletions
@@ -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" } |