unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Rutger Helling <rhelling@mykolab.com>
To: Marius Bakke <mbakke@fastmail.com>
Cc: 31254@debbugs.gnu.org
Subject: [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) v3
Date: Thu, 26 Apr 2018 08:30:06 +0200	[thread overview]
Message-ID: <20180426083006.6a942577@mykolab.com> (raw)
In-Reply-To: <87in8f8kvh.fsf@fastmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 4536 bytes --]

Thanks again! I've made the changes, so here's another set of patches.
Note that the second patch is unchanged, just rebased.

On Wed, 25 Apr 2018 15:40:34 +0200
Marius Bakke <mbakke@fastmail.com> wrote:

> Rutger Helling <rhelling@mykolab.com> 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 <rhelling@mykolab.com>
> > 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 <rhelling@mykolab.com>
> > 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!


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-qemu-Build-with-Python-3-and-SDL2-support.patch --]
[-- Type: text/x-patch, Size: 5858 bytes --]

From 27b224a217e3896488eb5210d466e08452541a18 Mon Sep 17 00:00:00 2001
From: Rutger Helling <rhelling@mykolab.com>
Date: Thu, 26 Apr 2018 08:14:50 +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-wrapper instead of python@2.
* 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-wrapper from inherited packages and use python@2
instead.
* gnu/packages/debug.scm (american-fuzzy-lop): Inherit from moved hidden-package
qemu-minimal-2.10.
---
 gnu/packages/bootloaders.scm    | 16 ----------------
 gnu/packages/debug.scm          |  3 ++-
 gnu/packages/virtualization.scm | 29 +++++++++++++++++++++++++----
 3 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 281bb98fa..4350ff3a5 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -72,22 +72,6 @@
      (base32
       "0p2vhnc18cnbmb39vq4m7hzv4mhnm2l0a2s7gx3ar277fwng3hys"))))
 
-;; 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.
-(define qemu-minimal-2.10
-  (package
-    (inherit qemu-minimal)
-    (version "2.10.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://download.qemu.org/qemu-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw"))))))
-
 (define-public grub
   (package
     (name "grub")
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 112c656ff..c12baf4e2 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -169,7 +170,7 @@ tools that process C/C++ code.")
       (inputs
        `(("custom-qemu"
           ;; The afl-qemu tool builds qemu 2.10.0 with a few patches applied.
-          ,(package (inherit (@@ (gnu packages bootloaders) qemu-minimal-2.10))
+          ,(package (inherit qemu-minimal-2.10)
              (name "afl-qemu")
              (inputs
               `(("afl-src" ,source)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 86f4d7136..74144b9db 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
@@ -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,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-wrapper" ,python-wrapper)
                      ("texinfo" ,texinfo)))
     (home-page "https://www.qemu.org")
     (synopsis "Machine emulator and virtualizer")
@@ -233,9 +233,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>.
+;; This package is hidden since we do not backport updates to it.
+(define-public qemu-minimal-2.10
+  (hidden-package
+   (package
+    (inherit qemu-minimal)
+    (version "2.10.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://download.qemu.org/qemu-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "17w21spvaxaidi2am5lpsln8yjpyp2zi3s3gc6nsxj5arlgamzgw"))))
+    ;; 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-wrapper")))))))
+
 (define-public libosinfo
   (package
     (name "libosinfo")
-- 
2.17.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-gnu-qemu-Enable-GTK3-frontend.patch --]
[-- Type: text/x-patch, Size: 2536 bytes --]

From cd8d059b51e78f942789ef1642c00500a4d6c86d Mon Sep 17 00:00:00 2001
From: Rutger Helling <rhelling@mykolab.com>
Date: Thu, 26 Apr 2018 08:17:05 +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.
---
 gnu/packages/virtualization.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 74144b9db..465439f01 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -39,6 +39,7 @@
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -173,6 +174,7 @@ exec smbd $@")))
      `(("alsa-lib" ,alsa-lib)
        ("attr" ,attr)
        ("glib" ,glib)
+       ("gtk+" ,gtk+)
        ("libaio" ,libaio)
        ("libattr" ,attr)
        ("libcap" ,libcap)           ; virtfs support requires libcap & libattr
@@ -194,7 +196,8 @@ exec smbd $@")))
        ;; ("vde2" ,vde2)
        ("virglrenderer" ,virglrenderer)
        ("zlib" ,zlib)))
-    (native-inputs `(("glib:bin" ,glib "bin") ; gtester, etc.
+    (native-inputs `(("gettext" ,gettext-minimal)
+                     ("glib:bin" ,glib "bin") ; gtester, etc.
                      ("perl" ,perl)
                      ("pkg-config" ,pkg-config)
                      ("python-wrapper" ,python-wrapper)
@@ -232,8 +235,10 @@ server and embedded PowerPC, and S390 guests.")
         ''("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu,aarch64-softmmu"))))
 
     ;; Remove dependencies on optional libraries, notably GUI libraries.
+    (native-inputs (fold alist-delete (package-native-inputs qemu)
+                  '("gettext")))
     (inputs (fold alist-delete (package-inputs qemu)
-                  '("libusb" "mesa" "sdl2" "spice" "virglrenderer"
+                  '("libusb" "mesa" "sdl2" "spice" "virglrenderer" "gtk+"
                     "usbredir" "libdrm" "libepoxy" "pulseaudio")))))
 
 ;; The GRUB test suite fails with later versions of Qemu, so we
-- 
2.17.0


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2018-04-26  6:31 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
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       ` Rutger Helling [this message]
2018-04-26 10:22         ` [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) v3 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=20180426083006.6a942577@mykolab.com \
    --to=rhelling@mykolab.com \
    --cc=31254@debbugs.gnu.org \
    --cc=mbakke@fastmail.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).