GNU bug report logs - #51737
Add Waydroid

Previous Next

Package: guix-patches;

Reported by: phodina <phodina <at> protonmail.com>

Date: Wed, 10 Nov 2021 01:34:01 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 51737 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Wed, 10 Nov 2021 01:34:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to phodina <phodina <at> protonmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 10 Nov 2021 01:34:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: Guix Patches <guix-patches <at> gnu.org>
Subject: Add Waydroid
Date: Wed, 10 Nov 2021 01:33:29 +0000
[Message part 1 (text/plain, inline)]
Hi,

in the following patches there's added support for Waydroid [1]- allowing you to run Android applications in LXC containers.

However, there is still issue that the following kernel options need to be enabled.

CONFIG_ASHMEM=m
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=m
CONFIG_ANDROID_BINDERFS=n
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"

I'd like to ask how to proceed. Probably add these as configuration in the gnu/packages/linux.scm and then create a new kernel with these enabled, right?

Should I then add dependency of waydroid package on this kernel?

Petr

[1] https://waydro.id/
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Wed, 10 Nov 2021 01:38:02 GMT) Full text and rfc822 format available.

Message #8 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: [PATCH 1/4] gnu: Add libglibutil.
Date: Wed, 10 Nov 2021 01:37:39 +0000
* gnu/packages/glib.scm (libglibutil): New variable.

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 8ed1e3a944..6d8a6801da 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo <at> nixo.xyz>
 ;;; Copyright © 2020 Arthur Margerit <ruhtra.mar <at> gmail.com>
+;;; Copyright © 2021 Petr Hodina <phodina <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,6 +69,7 @@ (define-module (gnu packages glib)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -749,6 +751,49 @@ (define-public glibmm-2.64
       `(("libsigc++" ,libsigc++)
         ("glib" ,glib)))))

+(define-public libglibutil
+  (package
+    (name "libglibutil")
+    (version "1.0.55")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sailfishos.org/mer-core/libglibutil")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0zrxccpyfz4jf14zr6fj9b88p340s66lw5cnqkapfa72kl1rnp4q"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "DESTDIR=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'remove-usr-prefix
+           (lambda* _
+             (substitute* "libglibutil.pc.in"
+               (("/usr/include") (string-append %output "/include")))
+             (substitute* "Makefile"
+               (("usr/") ""))))
+         (add-after 'install 'install-dev
+           (lambda* _
+             (invoke "make" "install-dev" (string-append "DESTDIR=" %output))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (chdir "test")
+               (invoke "make" (string-append "CC=" ,(cc-for-target)))
+               (chdir "..") #t))))))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("glib" ,glib)))
+    (home-page "https://git.sailfishos.org/mer-core/libglibutil")
+    (synopsis "GLib utilites")
+    (description "This package provides library of glib utilities.")
+    (license license:bsd-3)))
+
 (define-public python2-pygobject-2
   (package
     (name "python2-pygobject")
--
2.33.1




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Wed, 10 Nov 2021 01:39:02 GMT) Full text and rfc822 format available.

Message #11 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: [PATCH 2/4] gnu: Add libgbinder.
Date: Wed, 10 Nov 2021 01:38:14 +0000
* gnu/packages/glib.scm (libgbinder): New variable.

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 6d8a6801da..4f3e026d1b 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -751,6 +751,59 @@ (define-public glibmm-2.64
       `(("libsigc++" ,libsigc++)
         ("glib" ,glib)))))

+(define-public libgbinder
+  (package
+    (name "libgbinder")
+    (version "1.1.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mer-hybris/libgbinder")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "054kghsyyxk7lbsgwis1fczbgjlh0g0x6smwvcczd8dqacfclvpy"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
+                          (string-append "DESTDIR=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'fix-pkg-config-in
+           (lambda* _
+             (substitute* "Makefile"
+               (("usr/") ""))
+             (substitute* "libgbinder.pc.in"
+               (("@libdir@") (string-append (assoc-ref %outputs "out") "/lib"))
+               (("/usr/include") (string-append %output "/include")))))
+         (add-after 'install 'install-dev
+           (lambda* _
+             (invoke "make" "install-dev" (string-append "DESTDIR=" %output))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (chdir "test")
+               (invoke "make" (string-append "CC=" ,(cc-for-target)))
+               (chdir "..") #t))))))
+    (native-inputs `(("bison" ,bison)
+                     ("flex" ,flex)
+                     ("pkg-config" ,pkg-config)))
+    (inputs `(("glib" ,glib)
+              ("libglibutil" ,libglibutil)))
+    (home-page "https://github.com/mer-hybris/libgbinder")
+    (synopsis "GLib-style interface to binder")
+    (description "This package provides GLib-style interface to binder:
+@enumerate
+@item Integration with GLib event loop
+@item Detection of 32 vs 64 bit kernel at runtime
+@item Asynchronous transactions that don't block the event thread
+@item Stable service manager and low-level transation APIs
+@end enumerate")
+    (license license:bsd-3)))
+
 (define-public libglibutil
   (package
     (name "libglibutil")
--
2.33.1




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Wed, 10 Nov 2021 01:39:02 GMT) Full text and rfc822 format available.

Message #14 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: [PATCH 3/4] gnu: Add python-gbinder.
Date: Wed, 10 Nov 2021 01:38:34 +0000
* gnu/packages/glib.scm (python-gbinder): New variable.

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 4f3e026d1b..d9e50a69c8 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -847,6 +847,37 @@ (define-public libglibutil
     (description "This package provides library of glib utilities.")
     (license license:bsd-3)))

+(define-public python-gbinder
+  (package
+    (name "python-gbinder")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/erfanoabdi/gbinder-python")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0jgblzakjgsy0cj93bmh5gr7qnl2xgsrm0wzc6xjvzry9lrbs360"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* _
+             (invoke "python" "setup.py" "build_ext" "--inplace" "--cython"))))))
+    (native-inputs `(("python-cython" ,python-cython)
+                     ("pkg-config" ,pkg-config)))
+    (inputs `(("glib" ,glib)
+              ("libgbinder" ,libgbinder)
+              ("libglibutil" ,libglibutil)))
+    (home-page "https://github.com/erfanoabdi/gbinder-python")
+    (synopsis "Python bindings for libgbinder")
+    (description "This package provides Python bindings for libgbinder.")
+    (license license:gpl3+)))
+
 (define-public python2-pygobject-2
   (package
     (name "python2-pygobject")
--
2.33.1




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Wed, 10 Nov 2021 01:40:02 GMT) Full text and rfc822 format available.

Message #17 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: [PATCH 4/4] gnu: Add waydroid.
Date: Wed, 10 Nov 2021 01:39:04 +0000
* gnu/packages/virtualization.scm (waydroid): New variable.

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 1817f6dc22..d47d8402f6 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2005,6 +2005,72 @@ (define-public bochs
 DOS or Microsoft Windows.")
     (license license:lgpl2.0+)))

+(define-public waydroid
+  (package
+    (name "waydroid")
+    (version "1.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/waydroid/waydroid")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "03d87sh443kn0j2mpih1g909khkx3wgb04h605f9jhd0znskkbmw"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'build)                ; no setup.py
+         (delete 'check)                ; no test suite
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib/waydroid"))
+                    (tools (string-append lib "/tools"))
+                    (data (string-append lib "/data"))
+                    (apps (string-append out "/share/applications"))
+                    (bin (string-append out "/bin"))
+                    (site (string-append out "/lib/python"
+                                         ,(version-major+minor
+                                           (package-version python))
+                                         "/site-packages"))
+                    (path (getenv "PYTHONPATH")))
+               (mkdir-p tools)
+               (mkdir-p data)
+               (mkdir-p apps)
+               (mkdir-p bin)
+               (copy-recursively "tools" tools)
+               (copy-recursively "data" data)
+               (install-file (string-append data "/Waydroid.desktop")
+                             (string-append apps))
+               (substitute* (string-append apps "/Waydroid.desktop")
+                 (("/usr") lib))
+               (install-file "waydroid.py" lib)
+               (symlink (string-append lib "/waydroid.py") (string-append bin
+                                                                          "/waydroid.py"))
+               (wrap-program (string-append bin "/waydroid.py")
+                 `("PYTHONPATH" ":" prefix (,site ,path)))))))))
+    (inputs `(("bash-minimal" ,bash-minimal)
+              ("dnsmasq" ,dnsmasq)
+              ("libgbinder" ,libgbinder)
+              ("lxc" ,lxc)
+              ("nftables" ,nftables)
+              ("python" ,python)
+              ("python-gbinder" ,python-gbinder)
+              ("python-pygobject" ,python-pygobject)))
+    (home-page "https://waydro.id")
+    (synopsis "Container-based approach to boot a full Android system")
+    (description "Waydroid uses Linux namespaces @code{(user, pid, uts, net,
+mount, ipc)} to run a full Android system in a container and provide Android
+applications.  The Android inside the container has direct access to needed
+underlying hardware.  The Android runtime environment ships with a minimal
+customized Android system image based on LineageOS.  The used image is
+currently based on Android 10.")
+    (license license:gpl3)))
+
 (define-public xen
   (package
     (name "xen")
--
2.33.1




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Mon, 15 Nov 2021 20:04:02 GMT) Full text and rfc822 format available.

Message #20 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: phodina <phodina <at> protonmail.com>, "51737 <at> debbugs.gnu.org"
 <51737 <at> debbugs.gnu.org>
Subject: Re: [PATCH 4/4] gnu: Add waydroid.
Date: Mon, 15 Nov 2021 21:03:30 +0100
Hi,

Am Mittwoch, den 10.11.2021, 01:39 +0000 schrieb phodina:
> [...]
> +    (description "Waydroid uses Linux namespaces @code{(user, pid,
> uts, net,
> +mount, ipc)} to run a full Android system in a container and provide
> Android
> +applications.  The Android inside the container has direct access to
> needed
> +underlying hardware.  The Android runtime environment ships with a
> minimal
> +customized Android system image based on LineageOS.  The used image
> is
> +currently based on Android 10.")
How exactly/when is this RTE built?  Is it just included as a blob?






Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Mon, 15 Nov 2021 22:31:01 GMT) Full text and rfc822 format available.

Message #23 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 Julien Lepiller <julien <at> lepiller.eu>
Cc: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: Re: [PATCH 4/4] gnu: Add waydroid.
Date: Mon, 15 Nov 2021 22:30:12 +0000
Hi Liliana,

On Monday, November 15th, 2021 at 9:03 PM, Liliana Marie Prikler <liliana.prikler <at> gmail.com> wrote:

> Hi,
>
> Am Mittwoch, den 10.11.2021, 01:39 +0000 schrieb phodina:
>
> > [...]
> >
> > -   (description "Waydroid uses Linux namespaces @code{(user, pid,
> >
> >     uts, net,
> >
> >     +mount, ipc)} to run a full Android system in a container and provide
> >
> >     Android
> >
> >     +applications. The Android inside the container has direct access to
> >
> >     needed
> >
> >     +underlying hardware. The Android runtime environment ships with a
> >
> >     minimal
> >
> >     +customized Android system image based on LineageOS. The used image
> >
> >     is
> >
> >     +currently based on Android 10.")
>
> How exactly/when is this RTE built? Is it just included as a blob?

Nope, it's downloaded as part of the =waydroid init= command.

You can see the RTE here:
$ ls /var/lib/waydroid/images/
system.img  vendor.img

On waydroid website [1] they provide instructions on how to create this runtime environment - basically "+-" Android rootfs.

I cameacross a channel [2] with Android support but haven't had the chance to test it yet. Then again I'm not sure if that's the right way as there are phones that run close to vanilla Linux [3]. Though this technological solution enables Android apps to run on those phones.

But it also has drawback as it requires custom kernel.

Though these patches require support in the kernel [3] and LXD service running [4] at least.

Currently I'm able to run the waydroid container and get shell over adb.

However, for some unknown reason I can't launch the UI.

That might be due to the fact I run Sway VM. I'll test this with GDM as this is recommended in the issues on github and report back.

Petr

[1]: https://docs.waydro.id/development/compile-waydroid-lineage-os-based-images
[2]: https://framagit.org/tyreunom/guix-android
[3]: https://postmarketos.org/
[4]: https://issues.guix.gnu.org/51771
[5]: https://issues.guix.gnu.org/50133





Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Fri, 03 Dec 2021 15:02:01 GMT) Full text and rfc822 format available.

Message #26 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: Re: [PATCH 4/4] gnu: Add waydroid.
Date: Fri, 03 Dec 2021 15:00:55 +0000
ping




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Sat, 25 Jun 2022 13:10:02 GMT) Full text and rfc822 format available.

Message #29 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH v2 1/7] gnu: Add linux-libre-waydroid.
Date: Sat, 25 Jun 2022 13:08:48 +0000
[Message part 1 (text/plain, inline)]
Hi Ludo',

here's updated patch set.

Indeede it's adding another linux-libre kernel since this opens the attack surface for anybody not using the binder and ashmem interface. However, it bring the support for Android apps on Linux which might be necessary on mobile platforms such as PinePhone.

Any thoughts about upstreaming this?

FIY There are also open source implementation of Andorid apps that can be downloaded from F-Droid [1]

[1] https://f-droid.org/

Kind regards,
Petr
[Message part 2 (text/html, inline)]
[v2-0001-gnu-Add-linux-libre-waydroid.patch (text/x-patch, attachment)]
[v2-0003-gnu-Add-libglibutil.patch (text/x-patch, attachment)]
[v2-0007-services-Add-lxd-service-type.patch (text/x-patch, attachment)]
[v2-0004-gnu-Add-libgbinder.patch (text/x-patch, attachment)]
[v2-0005-gnu-Add-python-gbinder.patch (text/x-patch, attachment)]
[v2-0006-gnu-Add-waydroid.patch (text/x-patch, attachment)]
[v2-0002-gnu-Add-linux-libre-arm64-waydroid.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Sat, 25 Jun 2022 16:47:01 GMT) Full text and rfc822 format available.

Message #32 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: phodina <phodina <at> protonmail.com>, "51737 <at> debbugs.gnu.org"
 <51737 <at> debbugs.gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: Re: [bug#51737] [PATCH v2 1/7] gnu: Add linux-libre-waydroid.
Date: Sat, 25 Jun 2022 18:46:27 +0200
[Message part 1 (text/plain, inline)]
phodina via Guix-patches via schreef op za 25-06-2022 om 13:08 [+0000]:
> +                                (string-append "DESTDIR="
> +                                               #$output))

DESTDIR is for staged installation, which Guix doesn't do, so set
DESTDIR=/ or don't set it at all (maybe PREFIX or prefix is what you
need to set instead?).  Likewise for other packages.

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Mon, 27 Jun 2022 07:09:01 GMT) Full text and rfc822 format available.

Message #35 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: Re: [bug#51737] [PATCH v2 1/7] gnu: Add linux-libre-waydroid.
Date: Mon, 27 Jun 2022 07:07:46 +0000
[Message part 1 (text/plain, inline)]
Hi Maxime,
>
> > +                                (string-append "DESTDIR="
> > +                                               #$output))
>
>
> DESTDIR is for staged installation, which Guix doesn't do, so set
> DESTDIR=/ or don't set it at all (maybe PREFIX or prefix is what you
> need to set instead?). Likewise for other packages.
>
> Greetings,
> Maxime.

I packaged it this way as at that time was the simples solution. Now I switched to substitution in Makefile itself.

Also there's fix for waydroid package as I mistakenly send old patch.

Should I also create a service for waydroid + test to check it's running?

----
Petr
[v3-0004-gnu-Add-libgbinder.patch (text/x-patch, attachment)]
[v3-0002-gnu-Add-linux-libre-arm64-waydroid.patch (text/x-patch, attachment)]
[v3-0001-gnu-Add-linux-libre-waydroid.patch (text/x-patch, attachment)]
[v3-0005-gnu-Add-python-gbinder.patch (text/x-patch, attachment)]
[v3-0006-gnu-Add-waydroid.patch (text/x-patch, attachment)]
[v3-0003-gnu-Add-libglibutil.patch (text/x-patch, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 19 Jul 2022 14:57:02 GMT) Full text and rfc822 format available.

Message #38 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: phodina <phodina <at> protonmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: Re: [bug#51737] [PATCH v2 1/7] gnu: Add linux-libre-waydroid.
Date: Tue, 19 Jul 2022 16:56:37 +0200
phodina schreef op ma 27-06-2022 om 07:07 [+0000]:
> Should I also create a service for waydroid + test to check it's
> running?

That would be nice but Waydroid seems useful by itself even without a
service so not required I think.

Greetings,
Maxime.




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 19 Jul 2022 14:58:01 GMT) Full text and rfc822 format available.

Message #41 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: phodina <phodina <at> protonmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: Re: [bug#51737] [PATCH v2 1/7] gnu: Add linux-libre-waydroid.
Date: Tue, 19 Jul 2022 16:57:54 +0200
phodina schreef op ma 27-06-2022 om 07:07 [+0000]:
> "Waydroid uses Linux namespace

In that case, sounds like you can restrict the 'supported-systems'
field to Linux systems, as it is pointless to try to install it on the
Hurd.

Greetings,
Maxime.




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 18 Oct 2022 15:09:02 GMT) Full text and rfc822 format available.

Message #44 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: dan <i <at> dan.games>
To: 51737 <at> debbugs.gnu.org
Subject: Add Waydroid
Date: Tue, 18 Oct 2022 17:32:30 +0800
[Message part 1 (text/plain, inline)]
hi,

just found this useful tool and would like to have it on guix.  what is 
currently blocking us from merging the patch series?

-- 
dan
[OpenPGP_0xB17E7CFADED8D81E.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Sat, 29 Oct 2022 19:30:02 GMT) Full text and rfc822 format available.

Message #47 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Maxime Devos <maximedevos <at> telenet.be>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Sat, 29 Oct 2022 19:28:50 +0000
[Message part 1 (text/plain, inline)]
Hello,

here're are updated patches.

The waydroid package now has field supported systems.

Also there is template for OS which adds important file in /etc/gbinder.d/anbox.conf.

The biggest concern is the hardcoded string for the Android LineageOS image (currently v17). It's possible to specifyt throught command line the URI for the images.

```
$ waydroid init --help
usage: waydroid init [-h] [-i IMAGES_PATH] [-f]
                     [-c SYSTEM_CHANNEL] [-v VENDOR_CHANNEL]
                     [-r ROM_TYPE] [-s SYSTEM_TYPE]

optional arguments:
  -h, --help            show this help message and exit
  -i IMAGES_PATH, --images_path IMAGES_PATH
                        custom path to waydroid images (default
                        in /var/lib/waydroid/images)
  -f, --force           re-initialize configs and images
  -c SYSTEM_CHANNEL, --system_channel SYSTEM_CHANNEL
                        custom system channel (options: OTA
                        channel URL; default is Official OTA
                        server)
  -v VENDOR_CHANNEL, --vendor_channel VENDOR_CHANNEL
                        custom vendor channel (options: OTA
                        channel URL; default is Official OTA
                        server)
  -r ROM_TYPE, --rom_type ROM_TYPE
                        rom type (options: "lineage", "bliss" or
                        OTA channel URL; default is LineageOS)
  -s SYSTEM_TYPE, --system_type SYSTEM_TYPE
                        system type (options: VANILLA, FOSS or
                        GAPPS; default is VANILLA)
```

The definition of the hardcoded URI can be found here [1]. If needed this can be patched out. User will specify the source themselves. There is section on how to build the Lineage OS image with waydroid patches. [2]

Also the image and other files are stored under the  `/var/lib/waydroid`. Maybe the image can be stored in the store (once we can build the Android images).

Since some of the operations such as `waydroid init` and `waydroid container start` require elevated priviledges it might be good to create a service as well.

The lxc is not directly input for the waydroid package but has to be in the profile. Do you think it might be better to put it as direct dependency?

Since Linux 5.18 the support for ASHMEM has been dropped [3] and you'll see some warning messages in the console. But the Waydroid project already works on MEMFD which is enabled in the kernel.

```
# waydroid container start
[18:15:51] Failed to load ashmem driver
[18:15:51] modprobe: FATAL: Module ashmem_linux not found in directory /run/booted-system/kernel/lib/modules/5.19.11
[18:15:51] Failed to load Ashmem driver
[18:15:51] Found session config on state: RUNNING, restart session
[gbinder] Service manager /dev/binder has appeared
```

Here you can see the screenshot  

1 https://github.com/waydroid/waydroid/blob/main/tools/config/__init__.py#L77
2 https://docs.waydro.id/development/compile-waydroid-lineage-os-based-images
3 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=721412ed3d819e767cac2b06646bf03aa158aaec

----
Petr
[v3-0002-gnu-Add-linux-libre-arm64-waydroid.patch (text/x-patch, attachment)]
[v3-0005-gnu-Add-python-gbinder.patch (text/x-patch, attachment)]
[v3-0006-gnu-Add-python-pyclip.patch (text/x-patch, attachment)]
[v3-0003-gnu-Add-libglibutil.patch (text/x-patch, attachment)]
[v3-0008-gnu-Add-waydroid-template.patch (text/x-patch, attachment)]
[v3-0004-gnu-Add-libgbinder.patch (text/x-patch, attachment)]
[v3-0007-gnu-Add-waydroid.patch (text/x-patch, attachment)]
[v3-0001-gnu-Add-linux-libre-waydroid.patch (text/x-patch, attachment)]
[waydroid.png (image/png, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Mon, 31 Oct 2022 19:31:01 GMT) Full text and rfc822 format available.

Message #50 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Cc: Julien Lepiller <julien <at> lepiller.eu>,
 Ludovic Courtès <ludo <at> gnu.org>,
 Maxime Devos <maximedevos <at> telenet.be>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 "GNUtoo <at> cyberdimension.org" <GNUtoo <at> cyberdimension.org>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Mon, 31 Oct 2022 19:30:35 +0000
Regarding the Waydroid (Android) image.

We are currently unable to build the whole image due to the issues summarized by Julien Lepiller on the 10 Years of Guix. Thanks for the presentation! [1]

However, there is project in Nix that allows to build the image. [2]

Would it be possible to use that instead of the one hardcoded in Waydroid?

It's not the perfect solution but definitely better than a random Andorid image pulled from the network. 
 

1 https://10years.guix.gnu.org/video/towards-building-modern-android-as-a-guix-package/
2 https://github.com/danielfullmer/robotnix

--
Petr




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 01 Nov 2022 06:52:01 GMT) Full text and rfc822 format available.

Message #53 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: phodina <phodina <at> protonmail.com>, "51737 <at> debbugs.gnu.org"
 <51737 <at> debbugs.gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Maxime Devos <maximedevos <at> telenet.be>, Julien Lepiller <julien <at> lepiller.eu>,
 "GNUtoo <at> cyberdimension.org" <GNUtoo <at> cyberdimension.org>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Tue, 01 Nov 2022 07:51:17 +0100
Am Montag, dem 31.10.2022 um 19:30 +0000 schrieb phodina:
> Regarding the Waydroid (Android) image.
> 
> We are currently unable to build the whole image due to the issues
> summarized by Julien Lepiller on the 10 Years of Guix. Thanks for the
> presentation! [1]
> 
> However, there is project in Nix that allows to build the image. [2]
> 
> Would it be possible to use that instead of the one hardcoded in
> Waydroid?
IIUC you would have to translate the nix packages there into guix
packages, assuming there's a 1:1 translation (which might not be the
case since everything's just a derivation in Nix).  You also have to
take into account different quality guidelines between Guix and Nix –
Guix tends to be more stringent.

Since it's possible to specify the URLs via command line, how about
simply removing the defaults and making the respective command line
options required for the time being?

Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 01 Nov 2022 07:05:02 GMT) Full text and rfc822 format available.

Message #56 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 phodina <phodina <at> protonmail.com>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Maxime Devos <maximedevos <at> telenet.be>,
 "GNUtoo <at> cyberdimension.org" <GNUtoo <at> cyberdimension.org>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Tue, 01 Nov 2022 08:04:03 +0100
[Message part 1 (text/plain, inline)]
That sounds good to me. We could have a default, though we must at least make sure we don't advertise for a non-free image.

Concerning my own work, I'm currently trying to build some base system libraries. I managed to get a working cross-compiler for x86_64-linux-android, and I managed to cross-build a couple libraries. I'm hopeful I'll be able to build bionic (android's libc) by the end of the week, then a complete cross toolchain that will help build the rest of the system.

Le 1 novembre 2022 07:51:17 GMT+01:00, Liliana Marie Prikler <liliana.prikler <at> gmail.com> a écrit :
>Am Montag, dem 31.10.2022 um 19:30 +0000 schrieb phodina:
>> Regarding the Waydroid (Android) image.
>> 
>> We are currently unable to build the whole image due to the issues
>> summarized by Julien Lepiller on the 10 Years of Guix. Thanks for the
>> presentation! [1]
>> 
>> However, there is project in Nix that allows to build the image. [2]
>> 
>> Would it be possible to use that instead of the one hardcoded in
>> Waydroid?
>IIUC you would have to translate the nix packages there into guix
>packages, assuming there's a 1:1 translation (which might not be the
>case since everything's just a derivation in Nix).  You also have to
>take into account different quality guidelines between Guix and Nix –
>Guix tends to be more stringent.
>
>Since it's possible to specify the URLs via command line, how about
>simply removing the defaults and making the respective command line
>options required for the time being?
>
>Cheers
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Fri, 04 Nov 2022 03:04:01 GMT) Full text and rfc822 format available.

Message #59 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 phodina <phodina <at> protonmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Fri, 4 Nov 2022 04:03:08 +0100
[Message part 1 (text/plain, inline)]
On Tue, 01 Nov 2022 08:04:03 +0100
Julien Lepiller <julien <at> lepiller.eu> wrote:

> That sounds good to me. We could have a default, though we must at
> least make sure we don't advertise for a non-free image.
> 
> Concerning my own work, I'm currently trying to build some base
> system libraries. I managed to get a working cross-compiler for
> x86_64-linux-android, and I managed to cross-build a couple
> libraries. I'm hopeful I'll be able to build bionic (android's libc)
> by the end of the week, then a complete cross toolchain that will
> help build the rest of the system.

Sorry for catching up late, I was really busy before.

Note that I'm not familiar with Waydroid. Reviewing the Android part
and the overall architecture it was on my TODO list[5] but I've not yet
got the time to do that[1].

I'm also not a Guix maintainer and I don't know if the project already
took decisions or not with what I'm about to discuss.

What I wonder is that if Waydroid gets added as-is, it might be useful
to at least be able to test its functionalities with some FSDG
compliant image.

For instance if users report that audio is broken, it would probably be
a good idea to be able to run test ourselves. And if there is a bug in
binder, we could also do security testing ourselves for instance.

If I compare with another similar Guix functionality: we can
produce software for Microsoft Windows with "guix build -t
x86_64-w64-mingw32 hello" but we at least have Wine for testing.

As I see it, there might be several approaches to solve this testing
issue.

(1) Use GNU/Linux and Guix to make that FSDG compliant image. 

   For instance we could have:
   +-----------------------------------------------+
   | Guix host                                     |
   |                                               |
   | Waydroid (the host/container tools)           |
   |   ^                                           |
   |   |                                           |
   |   v                                           |
   | The communication protocols (like Pulseaudio) |
   |   ^                                           |
   |   |                                           |
   +---+-------------------------------------------+
       |
   +---+------------------------------------------------------+
   |   |  Guix guest                                          |
   |   v                                                      |
   | Android HAL like hardware/waydroid/audio                 |
   |   ^                                                      |
   |   |                                                      |
   |   v                                                      |
   | Libhybris or compatibility software that can run Android |
   | libraries on GNU/Linux.                                  |
   |   ^                                                      |
   |   |                                                      |
   |   v                                                      |
   | GNU/Linux audio stack or software that can use the       |
   | Android audio API somehow.                               |
   +----------------------------------------------------------+

   I'm unsure how much work that would be, and I've also not looked if
   some GNU/Linux distributions are already using libhybris with Android
   10 HAL. I'm also unsure if we need to use glibc or bionic (guix can
   build Android components with glibc and libhybris probably expects
   bionic).

   The advantage of this approach that it might be possible to do
   automatic testing within Guix as Guix would be used everywhere.

(2) Another approach would be to look more closely at lineage-17.1 and
    make a stripped down version that is hopefuly FSDG compliant. It
    should normally build fine on top of Trisquel.

    In Replicant we moved to AOSP for our work on Android 11, so we
    didn't do extensive research on what needs to be removed in
    LineageOS 17.1.

    However there is at least low hanging fruits that could be removed
    easily like:
    - The Linux kernel
    - The unused hardware support code, like vendor specific libraries
      in hardware/ or device repositories in device/.

    The waydroid additions probably need to be reviewed too.

    The downside here is probably maintenance: users need a way to
    report FSDG compliance issue, and there needs to be a way to fix
    that.

(3) Porting the Waydroid modifications[2][3] on top of Replicant 11 (and
    reviewing these modifications too).

    While Replicant 11 is not really usable yet on real devices yet
    (telephony support for the GT-I9300 (Galaxy SIII) isn't complete for
    instance, sound support is very basic, etc), Replicant 11 status
    shouldn't affect the ability to add Waydroid support.

    The advantage of Replicant here is that there is already a community
    and infrastructure and Replicant is already listed in the FSDG
    compliant distributions.

    An issue with Replicant would probably be with boringdroid[4]:
    It ships a binary apk (though it's released under the Apache 2.0).
    Building it from source within the Replicant source code would fix
    that, and the boringdroid seems to be doing something like that
    already. However we also need to deactivate it for real devices, so
    that seems to require more code integration work as boringdroid
    seems to patch core android components like
    platform/frameworks/base[4].

By the way, does someone knows where to find information about the
architecture of Waydroid. For instance is there some document that
explains how it works (like that it uses a HAL that use alsa that
then somehow talks to the host pulseaudio?, what modifications it did
for graphics, etc).

References:
-----------
[1]In Replicant 11, we now use a kernel based on upstream Linux (more
   precisely a Debian kernel with our patches on top). So we need to
   understand which projects we can share (maintenance) work with.
[2]https://raw.githubusercontent.com/waydroid/android_vendor_waydroid/lineage-17.1/manifest_scripts/generate-manifest.sh
[3]https://raw.githubusercontent.com/waydroid/android_vendor_waydroid/lineage-17.1/manifest_scripts/manifests/02-waydroid.xml
[4]https://github.com/boringdroid/platform_frameworks_base
[5]https://redmine.replicant.us/issues/2290

Denis.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Fri, 04 Nov 2022 11:40:02 GMT) Full text and rfc822 format available.

Message #62 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 phodina <phodina <at> protonmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Fri, 4 Nov 2022 12:38:57 +0100
[Message part 1 (text/plain, inline)]
On Fri, 4 Nov 2022 04:03:08 +0100
Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org> wrote:
> (1) Use GNU/Linux and Guix to make that FSDG compliant image. 

I've looked into more details for audio and it uses the alsa
interface exported by pulseaudio[1][2]:
> ret = snd_pcm_open(&out->pcm, "pulse", SND_PCM_STREAM_PLAYBACK, 0);

I'm not sure if "pulse" is the host name for the interface or not
though[3][4].

So here using plain GNU/Linux and "mplayer -ao alsa <file>" could
probably work for testing.

I'll try to look into some other interfaces later on.

References:
-----------
[1]https://github.com/waydroid/android_hardware_waydroid/blob/lineage-18.1/audio/audio_hw.c
[2]https://github.com/waydroid/android_hardware_waydroid/blob/lineage-18.1/audio/audio_policy_configuration.xml
[3]https://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#ga8340c7dc0ac37f37afe5e7c21d6c528b
[4]They use a modified version of the real alsa library[5], so the
   API documentation should be the same.
[5]https://github.com/WayDroid/android_external_alsa-lib

Denis.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Fri, 04 Nov 2022 11:53:01 GMT) Full text and rfc822 format available.

Message #65 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 phodina <phodina <at> protonmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Fri, 4 Nov 2022 12:51:31 +0100
[Message part 1 (text/plain, inline)]
On Fri, 4 Nov 2022 04:03:08 +0100
Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org> wrote:
> (1) Use GNU/Linux and Guix to make that FSDG compliant image. 

For graphics GNU/Linux probably works out of the box too[1]:
>     make_entry(tools.helpers.gpu.getDriNode(args),
> "dev/dri/renderD128")
> 
>     for n in glob.glob("/dev/fb*"):
>         make_entry(n)
>     for n in glob.glob("/dev/graphics/fb*"):
>         make_entry(n)
>     for n in glob.glob("/dev/video*"):
>         make_entry(n)

References:
-----------
[1]https://github.com/waydroid/waydroid/blob/main/tools/helpers/lxc.py

Denis.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Fri, 04 Nov 2022 12:28:01 GMT) Full text and rfc822 format available.

Message #68 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 phodina <phodina <at> protonmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Fri, 4 Nov 2022 13:26:52 +0100
[Message part 1 (text/plain, inline)]
On Fri, 4 Nov 2022 04:03:08 +0100
Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org> wrote:
> (1) Use GNU/Linux and Guix to make that FSDG compliant image.

I found projects that have test code for binder under GNU/Linux[1][2],
however it seems to require selinux.

For getting a shell, it uses lxc directly[3]:
> def shell(args):
>     if status(args) != "RUNNING":
>         logging.error("WayDroid container is {}".format(status(args)))
>         return
>     command = ["lxc-attach", "-P", tools.config.defaults["lxc"],
>                "-n", "waydroid", "--"]
>     if args.COMMAND:
>         command.append(args.COMMAND)
>     else:
>         command.append("/system/bin/sh")
>     subprocess.run(command, env={"PATH": os.environ['PATH'] +
> ":/system/bin:/vendor/bin"})

Though it uses Android specific paths. If we add a symlink from /bin/sh
to /system/bin/sh, it might work.

So it's probably not that hard to somehow generate an image where the
non-android specific functions could at least work for testing.

It might also be possible to use that as a starting point to later on
switch to Android images built with Guix.

As for building applications, beside the technical part that Julien is
working on as far as I understand, there is also the practical issue of
finding applications that are easy to review (without tons of
dependencies and so on) and that could work in Waydroid (Silence
requires a telephony stack to be useful, and Waydroid doesn't seem to
have one).

We started doing code review long time ago in Replicant[4] but I didn't
manage to complete a single review yet due to the lack of time.

References:
-----------
[1]https://github.com/hiking90/binder-linux
[2]https://github.com/hungys/binder-for-linux
[3]https://github.com/waydroid/waydroid/blob/main/tools/helpers/lxc.py
[4]https://redmine.replicant.us/projects/replicant/wiki/F-DroidAndApplications

Denis.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Sat, 12 Nov 2022 15:55:01 GMT) Full text and rfc822 format available.

Message #71 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 phodina <phodina <at> protonmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Sat, 12 Nov 2022 16:54:14 +0100
[Message part 1 (text/plain, inline)]
On Fri, 4 Nov 2022 04:03:08 +0100
Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org> wrote:
> (3) Porting the Waydroid modifications[2][3] on top of Replicant 11
> (and reviewing these modifications too).
> 
>     While Replicant 11 is not really usable yet on real devices yet
>     (telephony support for the GT-I9300 (Galaxy SIII) isn't complete
> for instance, sound support is very basic, etc), Replicant 11 status
>     shouldn't affect the ability to add Waydroid support.
I've tried a very quick approach to evaluate how complicated that would
be: 
- The device repositories and HAL related code can be imported pretty
  easily. Some minor changes are needed as there is no lineageOS
  distribution.
- The repositories that are replaced (like mesa, minigbm, etc) seem to
  be needed somehow. If I use the Replicant ones I've get some errors
  about missing headers. I'm unsure what is the best approach here
  between making a stripped down version of these repositories just for
  the header or figuring out another way to integrate the changes
  somehow.
- There is still the boringdroid apk that I didn't look into. While
  it's a separate APK, it looks complicated to build in the sources.

Denis.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 13 Dec 2022 16:50:02 GMT) Full text and rfc822 format available.

Message #74 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Julien Lepiller <julien <at> lepiller.eu>,
 "GNUtoo <at> cyberdimension.org" <GNUtoo <at> cyberdimension.org>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Tue, 13 Dec 2022 16:49:00 +0000




Sent with Proton Mail secure email.

------- Original Message -------
On Tuesday, November 1st, 2022 at 7:51 AM, Liliana Marie Prikler <liliana.prikler <at> gmail.com> wrote:


> Am Montag, dem 31.10.2022 um 19:30 +0000 schrieb phodina:
> 
> > Regarding the Waydroid (Android) image.
> > 
> > We are currently unable to build the whole image due to the issues
> > summarized by Julien Lepiller on the 10 Years of Guix. Thanks for the
> > presentation! [1]
> > 
> > However, there is project in Nix that allows to build the image. [2]
> > 
> > Would it be possible to use that instead of the one hardcoded in
> > Waydroid?
> 
> IIUC you would have to translate the nix packages there into guix
> packages, assuming there's a 1:1 translation (which might not be the
> case since everything's just a derivation in Nix). You also have to
> take into account different quality guidelines between Guix and Nix –
> Guix tends to be more stringent.
> 
> Since it's possible to specify the URLs via command line, how about
> simply removing the defaults and making the respective command line
> options required for the time being?

I agree with you to submit a patch which will remove the default image and require the user to pass the image as argument.

In order to build the image and not just blindly download and run some off the internet I suggest to use Robotnix project, which is a way how to build the whole Android image.

Once we have all the necessary components in Guix we can build the image ourselves.

----
Petr




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 13 Dec 2022 17:11:02 GMT) Full text and rfc822 format available.

Message #77 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 "GNUtoo <at> cyberdimension.org" <GNUtoo <at> cyberdimension.org>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Tue, 13 Dec 2022 17:10:38 +0000
[Message part 1 (text/plain, inline)]
Hi Julien,

agreed, though rather than being non-free the issue is more of being opaque as we shouldn't trust what's inside.

There's documentation on how to build one based on Lineage OS. [1]

Do you think if LineageOS would build the Waydroid image as another device it would be acceptable for Guix to download the artifact directly? [2]

Also how's the bionic library going?

[1] https://docs.waydro.id/development/compile-waydroid-lineage-os-based-images[2] https://wiki.lineageos.org/devices/

----
Petr
------- Original Message -------
On Tuesday, November 1st, 2022 at 8:04 AM, Julien Lepiller <julien <at> lepiller.eu> wrote:

> That sounds good to me. We could have a default, though we must at least make sure we don't advertise for a non-free image.
>
> Concerning my own work, I'm currently trying to build some base system libraries. I managed to get a working cross-compiler for x86_64-linux-android, and I managed to cross-build a couple libraries. I'm hopeful I'll be able to build bionic (android's libc) by the end of the week, then a complete cross toolchain that will help build the rest of the system.
>
> Le 1 novembre 2022 07:51:17 GMT+01:00, Liliana Marie Prikler <liliana.prikler <at> gmail.com> a écrit :
>
>> Am Montag, dem 31.10.2022 um 19:30 +0000 schrieb phodina:
>>
>>> Regarding the Waydroid (Android) image.
>>>
>>> We are currently unable to build the whole image due to the issues
>>>
>>> summarized by Julien Lepiller on the 10 Years of Guix. Thanks for the
>>>
>>> presentation! [1]
>>>
>>> However, there is project in Nix that allows to build the image. [2]
>>>
>>> Would it be possible to use that instead of the one hardcoded in
>>>
>>> Waydroid?
>>
>> IIUC you would have to translate the nix packages there into guix
>>
>> packages, assuming there's a 1:1 translation (which might not be the
>>
>> case since everything's just a derivation in Nix).  You also have to
>>
>> take into account different quality guidelines between Guix and Nix –
>>
>> Guix tends to be more stringent.
>>
>> Since it's possible to specify the URLs via command line, how about
>>
>> simply removing the defaults and making the respective command line
>>
>> options required for the time being?
>>
>> Cheers
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 13 Dec 2022 17:49:01 GMT) Full text and rfc822 format available.

Message #80 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: phodina <phodina <at> protonmail.com>
To: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Maxime Devos <maximedevos <at> telenet.be>, Julien Lepiller <julien <at> lepiller.eu>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Tue, 13 Dec 2022 17:48:28 +0000
Hi Denis,

> What I wonder is that if Waydroid gets added as-is, it might be useful
> to at least be able to test its functionalities with some FSDG
> compliant image.

Agreed, the question is what to add as the Waydroid runs the Android Userspace in a container
 - therefore the HW specific part can be removed, Guix (or foreign kernel) will be used.

I haven't done research into the FSDG compliant Android images. I'm familiar with Graphene OS
 on my phone, previously LineageOS and before Cyanogenmod.

I'm aware of Replicant but haven't had the chance to look into it unfortunately yet.


>
> For instance if users report that audio is broken, it would probably be
> a good idea to be able to run test ourselves. And if there is a bug in
> binder, we could also do security testing ourselves for instance.

Nice idea. There could be file e.g. 'guix/gnu/tests/waydroid.scm' with tests which would run
each time the image or the waydroid would be changed.

>
> If I compare with another similar Guix functionality: we can
> produce software for Microsoft Windows with "guix build -t
> x86_64-w64-mingw32 hello" but we at least have Wine for testing.

You can think of waydroid of a "Wine" also. You launch the container and then you can
develop using normal tools such as ADB to get shell etc.

Waydroid can show the whole UI screen or just the application.

The only issue is that the apps are more designed for touch than mouse since most laptops
and PCs don't have a touchscreen.

>
> As I see it, there might be several approaches to solve this testing
> issue.
>
> (1) Use GNU/Linux and Guix to make that FSDG compliant image.
>
> For instance we could have:
> +-----------------------------------------------+
> | Guix host |
> | |
> | Waydroid (the host/container tools) |
> | ^ |
> | | |
> | v |
> | The communication protocols (like Pulseaudio) |
> | ^ |
> | | |
> +---+-------------------------------------------+
> |
> +---+------------------------------------------------------+
> | | Guix guest |
> | v |
> | Android HAL like hardware/waydroid/audio |
> | ^ |
> | | |
> | v |
> | Libhybris or compatibility software that can run Android |
> | libraries on GNU/Linux. |
> | ^ |
> | | |
> | v |
> | GNU/Linux audio stack or software that can use the |
> | Android audio API somehow. |
> +----------------------------------------------------------+
>
> I'm unsure how much work that would be, and I've also not looked if
> some GNU/Linux distributions are already using libhybris with Android
> 10 HAL. I'm also unsure if we need to use glibc or bionic (guix can
> build Android components with glibc and libhybris probably expects
> bionic).
>
> The advantage of this approach that it might be possible to do
> automatic testing within Guix as Guix would be used everywhere.

This is perphaps the solution in the long run. It tould offer a lot of integration
into Guix and nice way to build, test and interact with the image.

> (2) Another approach would be to look more closely at lineage-17.1 and
> make a stripped down version that is hopefuly FSDG compliant. It
> should normally build fine on top of Trisquel.

This is probably the best approach atm. What's missing is the host - Trisquel, Robotnix
and the base image (AOSP, LineageOS, Replicant ...).


> The waydroid additions probably need to be reviewed too.

Agreed. As users want to pack other proprietary stuff inside e.g. GApps and others.


> (3) Porting the Waydroid modifications[2][3] on top of Replicant 11 (and
> reviewing these modifications too).

Well IMHO I'd rather focus in another direction - PostmarketOS[1].

It's GNU/Linux on Phones and works quite good. The downside are the Apps. As most
corporations and developers won't port their apps the Waydroid fills in quite nicely
with the ability to launch the Android app.

However, if you are interested somebody already asked about different base images [2]

> By the way, does someone knows where to find information about the
> architecture of Waydroid. For instance is there some document that
> explains how it works (like that it uses a HAL that use alsa that
> then somehow talks to the host pulseaudio?, what modifications it did
> for graphics, etc).

Haven't found any architecture wiki or document that would describe in greater detail
how it exactly works. Just issue on github which is already closed :-( [3]


[1] https://postmarketos.org/
[2] https://github.com/waydroid/waydroid/discussions/597
[3] https://github.com/waydroid/waydroid/issues/287

----
Petr




Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Tue, 13 Dec 2022 18:24:02 GMT) Full text and rfc822 format available.

Message #83 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: phodina <phodina <at> protonmail.com>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 "GNUtoo <at> cyberdimension.org" <GNUtoo <at> cyberdimension.org>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Tue, 13 Dec 2022 19:23:06 +0100
[Message part 1 (text/plain, inline)]
I managed to build bionic in the time frame I envisionned, but I have some issues with recursive module imports when trying to define the base inputs for the gnu-build-system (and ultimately the blueprint-build-system).

One concern I have is that Lineage OS includes some non free components, though I'm not sure what exactly (at least non-free firmware in the kernel, probably drivers too).

Le 13 décembre 2022 18:10:38 GMT+01:00, phodina <phodina <at> protonmail.com> a écrit :
>Hi Julien,
>
>agreed, though rather than being non-free the issue is more of being opaque as we shouldn't trust what's inside.
>
>There's documentation on how to build one based on Lineage OS. [1]
>
>Do you think if LineageOS would build the Waydroid image as another device it would be acceptable for Guix to download the artifact directly? [2]
>
>Also how's the bionic library going?
>
>[1] https://docs.waydro.id/development/compile-waydroid-lineage-os-based-images[2] https://wiki.lineageos.org/devices/
>
>----
>Petr
>------- Original Message -------
>On Tuesday, November 1st, 2022 at 8:04 AM, Julien Lepiller <julien <at> lepiller.eu> wrote:
>
>> That sounds good to me. We could have a default, though we must at least make sure we don't advertise for a non-free image.
>>
>> Concerning my own work, I'm currently trying to build some base system libraries. I managed to get a working cross-compiler for x86_64-linux-android, and I managed to cross-build a couple libraries. I'm hopeful I'll be able to build bionic (android's libc) by the end of the week, then a complete cross toolchain that will help build the rest of the system.
>>
>> Le 1 novembre 2022 07:51:17 GMT+01:00, Liliana Marie Prikler <liliana.prikler <at> gmail.com> a écrit :
>>
>>> Am Montag, dem 31.10.2022 um 19:30 +0000 schrieb phodina:
>>>
>>>> Regarding the Waydroid (Android) image.
>>>>
>>>> We are currently unable to build the whole image due to the issues
>>>>
>>>> summarized by Julien Lepiller on the 10 Years of Guix. Thanks for the
>>>>
>>>> presentation! [1]
>>>>
>>>> However, there is project in Nix that allows to build the image. [2]
>>>>
>>>> Would it be possible to use that instead of the one hardcoded in
>>>>
>>>> Waydroid?
>>>
>>> IIUC you would have to translate the nix packages there into guix
>>>
>>> packages, assuming there's a 1:1 translation (which might not be the
>>>
>>> case since everything's just a derivation in Nix).  You also have to
>>>
>>> take into account different quality guidelines between Guix and Nix –
>>>
>>> Guix tends to be more stringent.
>>>
>>> Since it's possible to specify the URLs via command line, how about
>>>
>>> simply removing the defaults and making the respective command line
>>>
>>> options required for the time being?
>>>
>>> Cheers
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Thu, 15 Dec 2022 16:40:01 GMT) Full text and rfc822 format available.

Message #86 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 phodina <phodina <at> protonmail.com>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Thu, 15 Dec 2022 17:38:36 +0100
[Message part 1 (text/plain, inline)]
On Tue, 13 Dec 2022 19:23:06 +0100
Julien Lepiller <julien <at> lepiller.eu> wrote:

> I managed to build bionic in the time frame I envisionned, but I have
> some issues with recursive module imports when trying to define the
> base inputs for the gnu-build-system (and ultimately the
> blueprint-build-system).
> 
> One concern I have is that Lineage OS includes some non free
> components, though I'm not sure what exactly (at least non-free
> firmware in the kernel, probably drivers too).
Part of the work of making an FSDG compliant LineageOS derivative can
be really easy:
- The kernel can be removed as it's not needed here. I'm not sure where
  the kernel headers are but they are most likely separate.
- Most of the device repositories (in device/<vendor>/<product>) contain
  scripts whose only goal is to download (from the device) the required
  nonfree software.
- All hardware related HAL that depends on these nonfree software can
  be removed.

Here in practice it means forking the LineageOS manifest and removing
the offending repositories.

The hard part is with the rest of the code: With Android, knowing the
license of the repositories is not easy because you don't have package
definitions and you probably don't have very strict copyright
requirements (like in Debian). 

There are empty files like LICENSE_APACHE2 in some repositories, and 
that is used to indicate the license (it's the closest we have to a
license field in a package definition), but I've no idea how precise
they are. These are used by code that generate the list of licenses
displayed in the phone settings, but I didn't look yet how it works.

So if we want to do it right we'd probably need to review at least the
usual suspect ourselves (like libraries with fat code, AAC related
code, try to look if there are nonfree binaries left, etc).

If people want to use LineageOS as a base, they need to check the
DivestOS project as they have a script that can partially deblob more
recent versions of LineageOS (they also informed Replicant of some of
the blobs Replicant missed). They don't remove all the blobs though, so
it might be a good idea to check with them what blobs still need to be
removed.

Replicant 6.0 is based on LineageOS 13.0 which is based on Android
6.0.1, and over time we found and/or were notified of freedom and
privacy issues (that both conflicted with the FSDG). And none of these
issues were present in AOSP. At least some of these issues came from
CyanogenMod, so maybe they are not present anymore.

Another option is to use AOSP instead of LineageOS. This could make
FSDG compliance easier as there won't be any potential issues with
LineageOS additions.

It will also enable to share more work because several Android
distributions using AOSP and kernels based on upstream Linux started to
create a community[1] to share work. So for instance the vibrator HAL
of Waydroid could be replaced by the "Force Feedback haptic hal" that
is generic. Replicant has applied for funding through NLnet to improve
the sharing of work through that community. So for the long term
maintenance of such a project, using AOSP might be a better bet,
especially if distributions like Guix start packaging more and more
AOSP components (this way we'd share more and more work on reviewing
licensing information).

As for linux-libre-waydroid itself, if the only change is to enable
Android drivers, maybe the kernel could be renamed to something more
generic like linux-libre-android.

And if for instance we package for instance userspace tools to test the
binder driver, and with that we might already have a use case and be
able to test this kernel anyway. And I've not reviewed the patch but
the maintenance here could be completely automatized (so when somebody
updates linux-libre, linux-libre-android gets updated automatically).

PS: To all readers: I'm not a Guix maintainer, so I can't decide if
    patches get in or not.

References:
-----------
[1]https://aosp-developers-community.github.io

Denis.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Thu, 15 Dec 2022 16:45:01 GMT) Full text and rfc822 format available.

Message #89 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: phodina <phodina <at> protonmail.com>
Cc: Maxime Devos <maximedevos <at> telenet.be>,
 Ludovic Courtès <ludo <at> gnu.org>,
 Julien Lepiller <julien <at> lepiller.eu>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Thu, 15 Dec 2022 17:44:18 +0100
[Message part 1 (text/plain, inline)]
On Tue, 13 Dec 2022 16:49:00 +0000
phodina <phodina <at> protonmail.com> wrote:
> 
> I agree with you to submit a patch which will remove the default
> image and require the user to pass the image as argument.
> 
> In order to build the image and not just blindly download and run
> some off the internet I suggest to use Robotnix project, which is a
> way how to build the whole Android image.
I've looked at it some time ago and as far as I understand it depends on
NixOS which is not FSDG compliant, but at least it might give us better
information than the AOSP source code as there are package definitions
in Robotnix.

Does someone knows how accurate the licensing information is in
Robotnix? 

In any case there are already FSDG distributions like Parabola that
rely on upstream packages that are less strict with license compliance,
so maybe we could use that as a base to find potential issues way
faster than by going through the AOSP code, and maybe a quick look
would be good enough.

PS: Note that I'm not a guix maintainer.

Denis.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Thu, 15 Dec 2022 17:04:02 GMT) Full text and rfc822 format available.

Message #92 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: phodina <phodina <at> protonmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Maxime Devos <maximedevos <at> telenet.be>, Julien Lepiller <julien <at> lepiller.eu>,
 "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>,
 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: [bug#51737] [PATCH v3 1/8] gnu: Add linux-libre-waydroid.
Date: Thu, 15 Dec 2022 18:02:51 +0100
[Message part 1 (text/plain, inline)]
On Tue, 13 Dec 2022 17:48:28 +0000
phodina <phodina <at> protonmail.com> wrote:

> Hi Denis,
Hi,

> Waydroid can show the whole UI screen or just the application.
> 
> The only issue is that the apps are more designed for touch than
> mouse since most laptops and PCs don't have a touchscreen.
I think there are more limitations. For instance the "silence"
application will probably not work as it requires a modem stack that
would somehow be able to interact with GNU/Linux modem stack.

But applications like Replica Island will probably work.

> > (2) Another approach would be to look more closely at lineage-17.1
> > and make a stripped down version that is hopefuly FSDG compliant. It
> > should normally build fine on top of Trisquel.
> 
> This is probably the best approach atm. What's missing is the host -
> Trisquel, Robotnix and the base image (AOSP, LineageOS, Replicant
> ...).
> 
> 
> > The waydroid additions probably need to be reviewed too.
> 
> Agreed. As users want to pack other proprietary stuff inside e.g.
> GApps and others.
I was more thinking about (1) the code that they added, like their
HAL etc. That code is probably fine and fast to review.  And (2)
the apk they bundle in to get their windowing system working. That
might be harder to review but it has more probability to be
problematic.

> > (3) Porting the Waydroid modifications[2][3] on top of Replicant 11
> > (and reviewing these modifications too).
> 
> Well IMHO I'd rather focus in another direction - PostmarketOS[1].
I wasn't implying to use Replicant as the operating system controlling
the computer, but rather to reuse Replicant 11 to make a base image to
be used with Waydroid. The advantage here is to share the maintenance
of the FSDG compliance. The downside is that it requires porting the
Waydroid changes in ways that don't confilict with the current Replicant
source code.
 
> It's GNU/Linux on Phones and works quite good. The downside are the
> Apps. As most corporations and developers won't port their apps the
> Waydroid fills in quite nicely with the ability to launch the Android
> app.
The nice thing about PostmarketOS is that they also work to upstream
their work, so for instance Guix could also package what they use to
make the Pinephone work for instance. 

In Replicant we also collaborate with PostmarketOS to try to support the
devices supported by Replicant 6.0 with upstream kernels, so you can
even collaborate with them if you're using a completely different
userspace (and without having to run postmarketOS).

> However, if you are interested somebody already asked about different
> base images [2]
> 
> > By the way, does someone knows where to find information about the
> > architecture of Waydroid. For instance is there some document that
> > explains how it works (like that it uses a HAL that use alsa that
> > then somehow talks to the host pulseaudio?, what modifications it
> > did for graphics, etc).
> 
> Haven't found any architecture wiki or document that would describe
> in greater detail how it exactly works. Just issue on github which is
> already closed :-( [3]
Thanks, I'll look into it.

Denis.
[Message part 2 (application/pgp-signature, inline)]

Added tag(s) patch. Request was from Bruno Victal <mirai <at> makinata.eu> to control <at> debbugs.gnu.org. (Tue, 04 Apr 2023 13:32:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#51737; Package guix-patches. (Wed, 20 Mar 2024 14:21:02 GMT) Full text and rfc822 format available.

Message #97 received at 51737 <at> debbugs.gnu.org (full text, mbox):

From: outlook user <RACP <at> outlook.fr>
To: "51737 <at> debbugs.gnu.org" <51737 <at> debbugs.gnu.org>
Subject: Add Waydroid
Date: Wed, 20 Mar 2024 13:56:55 +0000
[Message part 1 (text/plain, inline)]
On which branch all that was pushed? Where is it available? How to apply all those patches at once?
[Message part 2 (text/html, inline)]

This bug report was last modified 1 year and 84 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.