diff options
Diffstat (limited to 'pkgs/os-specific/linux/anbox/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/anbox/default.nix | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix index 7329dc7df2ce..7368079510d6 100644 --- a/pkgs/os-specific/linux/anbox/default.nix +++ b/pkgs/os-specific/linux/anbox/default.nix @@ -1,4 +1,6 @@ { lib, stdenv, fetchFromGitHub, fetchurl +, callPackage +, fetchpatch , cmake, pkg-config, dbus, makeWrapper , boost , elfutils # for libdw @@ -22,7 +24,8 @@ , SDL2_image , systemd , writeText -, writeScript +, writeShellScript +, nixosTests }: let @@ -33,28 +36,20 @@ let Exec=@out@/libexec/anbox-session-manager ''; - anbox-application-manager = writeScript "anbox-application-manager" '' - #!${runtimeShell} - - ${systemd}/bin/busctl --user call \ - org.freedesktop.DBus \ - /org/freedesktop/DBus \ - org.freedesktop.DBus \ - StartServiceByName "su" org.anbox 0 - - @out@/bin/anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity + anbox-application-manager = writeShellScript "anbox-application-manager" '' + exec @out@/bin/anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity ''; in stdenv.mkDerivation rec { pname = "anbox"; - version = "unstable-2021-10-20"; + version = "unstable-2023-02-03"; src = fetchFromGitHub { owner = pname; repo = pname; - rev = "84f0268012cbe322ad858d76613f4182074510ac"; + rev = "ddf4c57ebbe3a2e46099087570898ab5c1e1f279"; sha256 = "sha256-QXWhatewiUDQ93cH1UZsYgbjUxpgB1ajtGFYZnKmabc="; fetchSubmodules = true; }; @@ -90,7 +85,7 @@ stdenv.mkDerivation rec { "-Wno-error=mismatched-new-delete" ]); - patchPhase = '' + prePatch = '' patchShebangs scripts cat >cmake/FindGMock.cmake <<'EOF' @@ -118,8 +113,30 @@ stdenv.mkDerivation rec { EOF ''; + patches = [ + # Fixes compatibility with lxc 4 + (fetchpatch { + url = "https://git.alpinelinux.org/aports/plain/community/anbox/lxc4.patch?id=64243590a16aee8d4e72061886fc1b15256492c3"; + sha256 = "1da5xyzyjza1g2q9nbxb4p3njj2sf3q71vkpvmmdphia5qnb0gk5"; + }) + # Wait 10× more time when starting + # Not *strictly* needed, but helps a lot on slower hardware + (fetchpatch { + url = "https://git.alpinelinux.org/aports/plain/community/anbox/give-more-time-to-start.patch?id=058b56d4b332ef3379551b343bf31e0f2004321a"; + sha256 = "0iiz3c7fgfgl0dvx8sf5hv7a961xqnihwpz6j8r0ib9v8piwxh9a"; + }) + # Ensures generated desktop files work on store path change + ./0001-NixOS-Use-anbox-from-PATH-in-desktop-files.patch + # Provide window icons + (fetchpatch { + url = "https://github.com/samueldr/anbox/commit/2387f4fcffc0e19e52e58fb6f8264fbe87aafe4d.patch"; + sha256 = "12lmr0kxw1n68g3abh1ak5awmpczfh75c26f53jc8qpvdvv1ywha"; + }) + ]; + postInstall = '' wrapProgram $out/bin/anbox \ + --set SDL_VIDEO_X11_WMCLASS "anbox" \ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [libGL libglvnd]} \ --prefix PATH : ${git}/bin @@ -133,25 +150,13 @@ stdenv.mkDerivation rec { substitute ${anbox-application-manager} $out/bin/anbox-application-manager \ --subst-var out + chmod +x $out/bin/anbox-application-manager ''; - passthru.image = let - imgroot = "https://build.anbox.io/android-images"; - in - { - armv7l-linux = fetchurl { - url = imgroot + "/2017/06/12/android_1_armhf.img"; - sha256 = "1za4q6vnj8wgphcqpvyq1r8jg6khz7v6b7h6ws1qkd5ljangf1w5"; - }; - aarch64-linux = fetchurl { - url = imgroot + "/2017/08/04/android_1_arm64.img"; - sha256 = "02yvgpx7n0w0ya64y5c7bdxilaiqj9z3s682l5s54vzfnm5a2bg5"; - }; - x86_64-linux = fetchurl { - url = imgroot + "/2018/07/19/android_amd64.img"; - sha256 = "1jlcda4q20w30cm9ikm6bjq01p547nigik1dz7m4v0aps4rws13b"; - }; - }.${stdenv.system} or null; + passthru.tests = { inherit (nixosTests) anbox; }; + + passthru.image = callPackage ./postmarketos-image.nix { }; + passthru.postmarketos-image = callPackage ./anbox-image.nix { }; meta = with lib; { homepage = "https://anbox.io"; |