diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix index f192a028464..fe9afb5d00f 100644 --- a/pkgs/os-specific/linux/anbox/default.nix +++ b/pkgs/os-specific/linux/anbox/default.nix @@ -16,11 +16,36 @@ , protobufc , python , lxc +, writeText +, writeScript +, runtimeShell }: +let + + dbus-service = writeText "org.anbox.service" '' + [D-BUS Service] + Name=org.anbox + 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 + ''; + +in + stdenv.mkDerivation rec { pname = "anbox"; - version = "2019-03-07"; + version = "unstable-2019-03-07"; src = fetchFromGitHub { owner = pname; @@ -29,10 +54,14 @@ stdenv.mkDerivation rec { sha256 = "1wfx4bsyxvrjl16dq5pqgial8rnnsnxzbak2ap0waddz847czxwz"; }; + nativeBuildInputs = [ + makeWrapper + ]; + buildInputs = [ cmake pkgconfig dbus boost libcap gtest systemd mesa glib SDL2 SDL2_image protobuf protobufc properties-cpp lxc python - makeWrapper libGL + libGL ]; patchPhase = '' @@ -68,31 +97,16 @@ stdenv.mkDerivation rec { --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [libGL libglvnd]} \ --prefix PATH : ${git}/bin - mkdir -p $out/share/dbus-1/services/ - cat < $out/share/dbus-1/services/org.anbox.service - [D-BUS Service] - Name=org.anbox - Exec=$out/libexec/anbox-session-manager - END + mkdir -p $out/share/dbus-1/services + substitute ${dbus-service} $out/share/dbus-1/services/org.anbox.service \ + --subst-var out mkdir $out/libexec - cat > $out/libexec/anbox-session-manager < $out/bin/anbox-application-manager <