guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Rutger Helling
Subject: [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) v2
Date: Wed, 25 Apr 2018 15:26:42 +0200

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.

On Wed, 25 Apr 2018 13:19:13 +0200
Marius Bakke <address@hidden> wrote:

> Hello!
> 
> Rutger Helling <address@hidden> 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 <address@hidden>
> > 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 address@hidden
> > * gnu/packages/virtualization.scm (qemu-minimal)[native-inputs]:
> > Remove python from inherited packages and use address@hidden 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 "address@hidden" 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 <address@hidden>
> > 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: 0001-gnu-qemu-Build-with-Python-3-and-SDL2-support.patch
Description: Text Data

Attachment: 0002-gnu-qemu-Enable-GTK3-frontend.patch
Description: Text Data

Attachment: pgpt5kea4op3K.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]