unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Marius Bakke <mbakke@fastmail.com>
To: Rutger Helling <rhelling@mykolab.com>, 31254@debbugs.gnu.org
Subject: [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend)
Date: Wed, 25 Apr 2018 13:19:13 +0200	[thread overview]
Message-ID: <87lgdb8rf2.fsf@fastmail.com> (raw)
In-Reply-To: <20180425083346.29a434e9@mykolab.com>

[-- Attachment #1: Type: text/plain, Size: 4775 bytes --]

Hello!

Rutger Helling <rhelling@mykolab.com> writes:

> Hey Guix,
>
> I saw QEMU was just updated to 2.12. I noticed a few things in the
> release notes, namely:
> * QEMU can now be built with Python 3.
> * Support for SDL 1.2 is considered deprecated and will be removed
>   entirely in a future release.
>
> As a result, the first patch builds QEMU with Python 3 and SDL 2.

Thanks for looking after this.  I didn't realize it was using SDL1!

> The second patch is optional and adds the GTK 3 frontend, which IMO
> is a nice alternative to the SDL frontend.
> This does increase the size of QEMU a bit. OTOH it seems unlikely that
> most people who use QEMU don't already have GTK 3 installed in some
> form.

Using `guix size`, stock qemu is ~916MiB, and adding gtk+ brings it to
~1131MiB.  I'm not familiar with the GTK+ frontend, would it make sense
to add it in a separate output?

Alternatively, could we replace the SDL frontend with it?

> From 2f1626d4526fee5e7a2836d811c96cc2c823ce71 Mon Sep 17 00:00:00 2001
> From: Rutger Helling <rhelling@mykolab.com>
> Date: Wed, 25 Apr 2018 08:13:44 +0200
> Subject: [PATCH 1/2] gnu: qemu: Build with Python 3 and SDL 2.
>
> * gnu/packages/virtualization.scm (qemu)[arguments]: Add configure-flag to build
> with Python 3.
> [inputs]: Use sdl2 instead of sdl.
> [native-inputs]: Use python instead of python@2.
> * gnu/packages/virtualization.scm (qemu-minimal)[native-inputs]: Remove python
> from inherited packages and use python@2 instead.
> [inputs]: Remove sdl2 instead of sdl from inherited packages.

[...]

> @@ -101,6 +101,11 @@
>         ;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
>         #:parallel-tests? #f
>         #:configure-flags (list "--enable-usb-redir" "--enable-opengl"
> +                               ;; Remove below once Python 3 becomes the default
> +                               ;; 'python' binary.
> +                               (string-append "--python="
> +                                              (assoc-ref %build-inputs "python")
> +                                              "/bin/python3")

Note: You can use the 'python-wrapper' package, which has python3 as
"/bin/python".  Then this won't be necessary.

>                                 (string-append "--smbd="
>                                                (assoc-ref %outputs "out")
>                                                "/libexec/samba-wrapper")
> @@ -187,7 +192,7 @@ exec smbd $@")))
>         ;; ("pciutils" ,pciutils)
>         ("pixman" ,pixman)
>         ("pulseaudio" ,pulseaudio)
> -       ("sdl" ,sdl)
> +       ("sdl2" ,sdl2)
>         ("spice" ,spice)
>         ("usbredir" ,usbredir)
>         ("util-linux" ,util-linux)
> @@ -197,7 +202,7 @@ 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)
>                       ("texinfo" ,texinfo)))
>      (home-page "https://www.qemu.org")
>      (synopsis "Machine emulator and virtualizer")
> @@ -231,9 +236,13 @@ server and embedded PowerPC, and S390 guests.")
>          ;; Restrict to the targets supported by Guix.
>          ''("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu,aarch64-softmmu"))))
>  
> +    ;; qemu-minimal-2.10 needs Python 2. Remove below once no longer necessary.
> +    (native-inputs `(("python-2" ,python-2)
> +                     ,@(fold alist-delete (package-native-inputs qemu)
> +                             '("python"))))

It's better to do this in the actual Qemu 2.10 package instead of
arbitrarily using a different Python version in "qemu-minimal" IMO.

Perhaps we should move "qemu@2.10" from (gnu packages bootloaders) into
here and make this change in that package.  WDYT?  Ideally as a public
"hidden-package" so it's not visible to end users.

Can you try it?

[...]

> From a0cc0f8f5632374567ee760d629d80703ec0f41e Mon Sep 17 00:00:00 2001
> From: Rutger Helling <rhelling@mykolab.com>
> Date: Wed, 25 Apr 2018 08:14:33 +0200
> Subject: [PATCH 2/2] gnu: qemu: Enable GTK 3 frontend.
>
> * gnu/packages/virtualization.scm (qemu)[inputs]: Add "gettext", "gtk+" to
> inputs.
> * gnu/packages/virtualization.scm (qemu-minimal)[inputs]: Remove "gettext",
> "gtk+" from inherited inputs.

'gettext' should probably be a native-input.  That said I wonder if the
GTK frontend should be a separate output due to the ~21% size increase,
but no strong opinion.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

  reply	other threads:[~2018-04-25 11:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-25  6:33 [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) Rutger Helling
2018-04-25 11:19 ` Marius Bakke [this message]
2018-04-25 13:26   ` [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) v2 Rutger Helling
2018-04-25 13:40     ` Marius Bakke
2018-04-26  6:30       ` [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) v3 Rutger Helling
2018-04-26 10:22         ` Marius Bakke
2018-04-26 10:54           ` bug#31254: " Rutger Helling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lgdb8rf2.fsf@fastmail.com \
    --to=mbakke@fastmail.com \
    --cc=31254@debbugs.gnu.org \
    --cc=rhelling@mykolab.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).