Subject: Re: [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) v2

From: Marius Bakke <[email-masked]>
Date: Wed, 25 Apr 2018 15:40:34 +0200

Rutger Helling <[email-masked]> writes:

> Hello Marius, 
>
> Thanks for the review! I've taken your suggestions into account and
> updated the patches.
>
> I don't think it's possible to seperate the GTK3 frontend, since it's
> just a parameter you pass to the qemu* binaries (-display gtk instead
> of -display sdl).
>
> From my understanding if you have both GTK3 and SDL2 enabled it
> defaults to GTK3. We can remove the SDL2 frontend if there are no
> objections (and probably sdl from the --audio-drv-list). I just figured
> it'd be nicer to enable both to give users maximum flexibility.

OK!

[...]

> From e1b40133c8aedf84090fbd4292af2b53eb22d669 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <[email-masked]>
> Date: Wed, 25 Apr 2018 14:59:11 +0200
> Subject: [PATCH 1/2] gnu: qemu: Build with Python 3 and SDL2 support.
>
> * gnu/packages/bootloaders.scm (qemu-minimal-2.10): Remove variable.
> * gnu/packages/virtualization.scm (qemu)[inputs]: Use sdl2 instead of sdl.
> [native-inputs]: Use python instead of python@2. Add python-wrapper.
> * gnu/packages/virtualization.scm (qemu-minimal)[inputs]: Remove sdl2 instead of
> sdl from inherited packages.
> * gnu/packages/virtualization.scm (qemu-minimal-2.10): Add variable.
> [native-inputs]: Remove python from inherited packages and use python@2 instead.
> ---
>  gnu/packages/bootloaders.scm    | 16 ----------------
>  gnu/packages/virtualization.scm | 30 ++++++++++++++++++++++++++----
>  2 files changed, 26 insertions(+), 20 deletions(-)

Can you adjust 'american-fuzzy-lop' to use the moved qemu-minimal-2.10
package too?  Please also drop the '@@ (gnu packages bootloaders)' stuff
and just use '(inherit qemu-minimal-2.10 ...)' now that it's public.

[...]

> @@ -187,7 +187,7 @@ exec smbd $@")))
>         ;; ("pciutils" ,pciutils)
>         ("pixman" ,pixman)
>         ("pulseaudio" ,pulseaudio)
> -       ("sdl" ,sdl)
> +       ("sdl2" ,sdl2)
>         ("spice" ,spice)
>         ("usbredir" ,usbredir)
>         ("util-linux" ,util-linux)
> @@ -197,7 +197,8 @@ exec smbd $@")))
>      (native-inputs `(("glib:bin" ,glib "bin") ; gtester, etc.
>                       ("perl" ,perl)
>                       ("pkg-config" ,pkg-config)
> -                     ("python" ,python-2) ; incompatible with Python 3 according to error message
> +                     ("python" ,python)
> +                     ("python-wrapper" ,python-wrapper)

The first "python" can be removed (only python-wrapper is necessary).

>                       ("texinfo" ,texinfo)))
>      (home-page "https://www.qemu.org")
>      (synopsis "Machine emulator and virtualizer")
> @@ -233,9 +234,30 @@ server and embedded PowerPC, and S390 guests.")
>  
>      ;; Remove dependencies on optional libraries, notably GUI libraries.
>      (inputs (fold alist-delete (package-inputs qemu)
> -                  '("libusb" "mesa" "sdl" "spice" "virglrenderer"
> +                  '("libusb" "mesa" "sdl2" "spice" "virglrenderer"
>                      "usbredir" "libdrm" "libepoxy" "pulseaudio")))))
>  
> +;; The GRUB test suite fails with later versions of Qemu, so we
> +;; keep it at 2.10 for now.  See
> +;; <https://lists.gnu.org/archive/html/bug-grub/2018-02/msg00004.html>.
> +;; TODO: When grub no longer needs this version, move to gnu/packages/debug.scm.

The TODO line can be removed too.  And maybe add a comment such as "Keep
it hidden since we don't backport security patches" or something along
those lines.

[...]

> From edea64c09dc1e0f391e860478dcf99f4d0d1a6d2 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <[email-masked]>
> Date: Wed, 25 Apr 2018 15:03:29 +0200
> Subject: [PATCH 2/2] gnu: qemu: Enable GTK3 frontend.
>
> * gnu/packages/virtualization.scm (qemu)[native-inputs]: Add "gettext" to native-inputs.
> [inputs]: Add "gtk+" to inputs.
> * gnu/packages/virtualization.scm (qemu-minimal)[native-inputs]: Remove "gettext"
> from inherited inputs.
> [inputs]: Remove "gtk+" from inherited inputs.

LGTM!