Hello! Rutger Helling 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 > 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 > 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.