From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34289) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBaQr-0007pB-Uv for guix-patches@gnu.org; Thu, 26 Apr 2018 02:31:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBaQo-0003wt-A3 for guix-patches@gnu.org; Thu, 26 Apr 2018 02:31:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:60202) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fBaQo-0003w5-17 for guix-patches@gnu.org; Thu, 26 Apr 2018 02:31:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fBaQn-0006Vw-MN for guix-patches@gnu.org; Thu, 26 Apr 2018 02:31:01 -0400 Subject: [bug#31254] gnu: qemu: Build with Python 3 and SDL 2. (+ GTK 3 frontend) v3 Resent-Message-ID: Date: Thu, 26 Apr 2018 08:30:06 +0200 From: Rutger Helling Message-ID: <20180426083006.6a942577@mykolab.com> In-Reply-To: <87in8f8kvh.fsf@fastmail.com> References: <20180425083346.29a434e9@mykolab.com> <87lgdb8rf2.fsf@fastmail.com> <20180425152642.2a361ae5@mykolab.com> <87in8f8kvh.fsf@fastmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/ad55_AMF5txwTi+TEDtzyk7"; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Marius Bakke Cc: 31254@debbugs.gnu.org --Sig_/ad55_AMF5txwTi+TEDtzyk7 Content-Type: multipart/mixed; boundary="MP_/XMScmxfhsmbQPdz5/27s=nQ" --MP_/XMScmxfhsmbQPdz5/27s=nQ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline 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 wrote: > Rutger Helling writes: >=20 > > Hello Marius,=20 > > > > 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. =20 >=20 > OK! >=20 > [...] >=20 > > From e1b40133c8aedf84090fbd4292af2b53eb22d669 Mon Sep 17 00:00:00 > > 2001 From: Rutger Helling > > 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(-) =20 >=20 > 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. >=20 > [...] >=20 > > @@ -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) =20 >=20 > The first "python" can be removed (only python-wrapper is necessary). >=20 > > ("texinfo" ,texinfo))) > > (home-page "https://www.qemu.org") > > (synopsis "Machine emulator and virtualizer") > > @@ -233,9 +234,30 @@ server and embedded PowerPC, and S390 guests.") > > =20 > > ;; 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")))))=20 > > +;; The GRUB test suite fails with later versions of Qemu, so we > > +;; keep it at 2.10 for now. See > > +;; > > . > > +;; TODO: When grub no longer needs this version, move to > > gnu/packages/debug.scm. =20 >=20 > 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. >=20 > [...] >=20 > > From edea64c09dc1e0f391e860478dcf99f4d0d1a6d2 Mon Sep 17 00:00:00 > > 2001 From: Rutger Helling > > 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. =20 >=20 > LGTM! --MP_/XMScmxfhsmbQPdz5/27s=nQ Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-qemu-Build-with-Python-3-and-SDL2-support.patch =46rom 27b224a217e3896488eb5210d466e08452541a18 Mon Sep 17 00:00:00 2001 From: Rutger Helling 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 inste= ad 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 pyth= on@2 instead. * gnu/packages/debug.scm (american-fuzzy-lop): Inherit from moved hidden-pa= ckage 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")))) =20 -;; The GRUB test suite fails with later versions of Qemu, so we -;; keep it at 2.10 for now. See -;; . -;; TODO: When grub no longer needs this version, move to gnu/packages/debu= g.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 =C2=A9 2014, 2015, 2016, 2017 Eric Bavier ;;; Copyright =C2=A9 2016, 2017, 2018 Efraim Flashner ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice +;;; Copyright =C2=A9 2018 Rutger Helling ;;; ;;; 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 appli= ed. - ,(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 =C2=A9 2016, 2017 Ricardo Wurmus ;;; Copyright =C2=A9 2017 Alex Vong ;;; Copyright =C2=A9 2017 Andy Patterson -;;; Copyright =C2=A9 2017 Rutger Helling +;;; Copyright =C2=A9 2017, 2018 Rutger Helling ;;; Copyright =C2=A9 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2018 Danny Milosavljevic ;;; Copyright =C2=A9 2018 Sou Bunnbu @@ -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 acc= ording 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.") =20 ;; 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"))))) =20 +;; The GRUB test suite fails with later versions of Qemu, so we +;; keep it at 2.10 for now. See +;; . +;; 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 neces= sary. + (native-inputs `(("python-2" ,python-2) + ,@(fold alist-delete (package-native-inputs qemu) + '("python-wrapper"))))))) + (define-public libosinfo (package (name "libosinfo") --=20 2.17.0 --MP_/XMScmxfhsmbQPdz5/27s=nQ Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-gnu-qemu-Enable-GTK3-frontend.patch =46rom cd8d059b51e78f942789ef1642c00500a4d6c86d Mon Sep 17 00:00:00 2001 From: Rutger Helling 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 n= ative-inputs. [inputs]: Add "gtk+" to inputs. * gnu/packages/virtualization.scm (qemu-minimal)[native-inputs]: Remove "ge= ttext" 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 & lib= attr @@ -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=3Di386-softmmu,x86_64-softmmu,mips64el-softmmu,a= rm-softmmu,aarch64-softmmu")))) =20 ;; 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"))))) =20 ;; The GRUB test suite fails with later versions of Qemu, so we --=20 2.17.0 --MP_/XMScmxfhsmbQPdz5/27s=nQ-- --Sig_/ad55_AMF5txwTi+TEDtzyk7 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEAVThuRzJ2e93ZI3n86cn20T8yjYFAlrhce4ACgkQ86cn20T8 yjbBawf8Cu4OyC6CdJM1sbz0xpFc87TYuxDoCWuXXMjXOZh5w2WbIobJFy6eaajs Lsne/lCs7pR02eh6d8k+hp1l3xVBEFLICXDcLQc5kT0Uq2T2GdH4PRdWEEA8gmc+ UbIAYVCH4GyIx+7hTbJ0J+l25BDVPEDkP4lCrKzee5mC2x2iObN0u5c1qYv8Yy56 9v/xq+Hq3Iy5Z5GOwmQ7kDl/BN0eR4rd1YiH9u4/w+sdX+XxU0FhqaalmU+6soIx TZJzQjhGmHWpGtQVTBd4TumxCVZrIV/So2mmdbNAwrhSrIIkIjxrU7sKRbt0bjyh THg1ev87LY6qoU84NR449pB5hCl6VQ== =6I4B -----END PGP SIGNATURE----- --Sig_/ad55_AMF5txwTi+TEDtzyk7--