From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: Planning for the next release Date: Sun, 14 May 2017 15:14:07 -0400 Message-ID: <20170514191407.GA4673@jasmine> References: <87wpb7ym78.fsf@gnu.org> <87fugbvkdb.fsf@gnu.org> <20170512180456.GA6551@jasmine> <87mvag3lj7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="qlTNgmc+xy1dBmNv" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38125) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9yy6-0006wD-KP for guix-devel@gnu.org; Sun, 14 May 2017 15:14:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9yy3-00081g-By for guix-devel@gnu.org; Sun, 14 May 2017 15:14:14 -0400 Content-Disposition: inline In-Reply-To: <87mvag3lj7.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ludovic =?iso-8859-1?Q?Court=E8s?= Cc: guix-devel --qlTNgmc+xy1dBmNv Content-Type: multipart/mixed; boundary="0F1p//8PRICkK4MW" Content-Disposition: inline --0F1p//8PRICkK4MW Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, May 13, 2017 at 03:59:24PM +0200, Ludovic Court=C3=A8s wrote: > Leo Famulari skribis: > > If possible, I would appreciate if the release included a QEMU image > > that we could offer to VPS hosters like serveraptor.com, as discussed in > > this thread: > > > > If the maintainers want to try for this, I'm happy to help prepare a > > system declaration and test it. I'll work on the system declaration shortly. I think it should take some parts from installation-os from (gnu system install), but the file-systems can be simplified, and the packages reduced. > The main =E2=80=9Cdifficulty=E2=80=9D would be to adjust the =E2=80=9CDow= nload=E2=80=9D page on the web > site, the instructions in the manual, =E2=80=9Cmake release=E2=80=9D, and= to come up > with a clear file name for the new image. I think the name should be "guixsd-vm-image-VERSION", since this follows the convention established with `guix system vm-image`. I've attached some rough patches for guix.git and guix-artwork.git. I'm confused about `make release`. The for-loop that builds the disk images doesn't seem to set up offloading or actually build the images for the different values of $SUPPORTED_SYSTEMS [0]. Am I missing this somewhere? For the web-site, I'm struggling to set up a development environment where I can run (export-web-site) and test my changes. [0] https://git.savannah.gnu.org/cgit/guix.git/tree/Makefile.am?id=3De0b2e93005= 188ab4d6c7413a27832ba2fb7388e8#n608 --0F1p//8PRICkK4MW Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-doc-Mention-the-pre-built-VM-image.patch" Content-Transfer-Encoding: quoted-printable =46rom 6ae03aa362b3542590e12c0ab2b65af127bdb00d Mon Sep 17 00:00:00 2001 =46rom: Leo Famulari Date: Sat, 13 May 2017 20:44:36 -0400 Subject: [PATCH 1/2] doc: Mention the pre-built VM image. * doc/guix.texi (Running GuixSD in a VM): Mention the pre-built VM image. --- doc/guix.texi | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 844f0d74f..7b8a4fea0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15649,17 +15649,21 @@ example graph. @subsection Running GuixSD in a Virtual Machine =20 @cindex virtual machine -One way to run GuixSD in a virtual machine (VM) is to build a GuixSD -virtual machine image using @command{guix system vm-image} -(@pxref{Invoking guix system}). The returned image is in qcow2 format, -which the @uref{http://qemu.org/, QEMU emulator} can efficiently use. +To run GuixSD in a virtual machine (VM), one can either use the +pre-built GuixSD VM image distributed at +@indicateurl{ftp://alpha.gnu.org/guix/guixsd-vm-image-@value{VERSION}.@var= {system}.tar.xz} +, or build their own virtual machine image using @command{guix system +vm-image} (@pxref{Invoking guix system}). The returned image is in +qcow2 format, which the @uref{http://qemu.org/, QEMU emulator} can +efficiently use. =20 @cindex QEMU -To run the image in QEMU, copy it out of the store (@pxref{The Store}) -and give yourself permission to write to the copy. When invoking QEMU, -you must choose a system emulator that is suitable for your hardware -platform. Here is a minimal QEMU invocation that will boot the result -of @command{guix system vm-image} on x86_64 hardware: +If you built your image image, you must copy it out of the store +(@pxref{The Store}) and give yourself permission to write to the copy +before you can use it. When invoking QEMU, you must choose a system +emulator that is suitable for your hardware platform. Here is a minimal +QEMU invocation that will boot the result of @command{guix system +vm-image} on x86_64 hardware: =20 @example $ qemu-system-x86_64 \ --=20 2.13.0 --0F1p//8PRICkK4MW Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0002-maint-The-release-target-builds-a-VM-image.patch" Content-Transfer-Encoding: quoted-printable =46rom 30effa15369a1707755d134e37e63e2df135422e Mon Sep 17 00:00:00 2001 =46rom: Leo Famulari Date: Sat, 13 May 2017 18:07:01 -0400 Subject: [PATCH 2/2] maint: The 'release' target builds a VM image. * Makefile.am (GUIXSD_VM_SYSTEMS, GUIXSD_VM_IMAGE_BASE, GUIXSD_VM_IMAGE_SIZE): New variables. (release): Add logic to build a VM image. --- Makefile.am | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Makefile.am b/Makefile.am index 4b5a29a72..8663de3ba 100644 --- a/Makefile.am +++ b/Makefile.am @@ -571,12 +571,21 @@ BINARY_TARBALLS =3D \ # Systems supported by GuixSD. GUIXSD_SUPPORTED_SYSTEMS ?=3D x86_64-linux i686-linux =20 +# Systems for which we build GuixSD VMs. +GUIXSD_VM_SYSTEMS ?=3D x86_64-linux + # Prefix of the GuixSD installation image file name. GUIXSD_IMAGE_BASE =3D guixsd-usb-install-$(PACKAGE_VERSION) =20 +# Prefix of the GuixSD VM image file name. +GUIXSD_VM_IMAGE_BASE =3D guixsd-vm-image-$(PACKAGE_VERSION) + # Size of the installation image (for x86_64 typically). GUIXSD_INSTALLATION_IMAGE_SIZE ?=3D 950MiB =20 +# Size of the VM image (for x86_64 typically). +GUIXSD_VM_IMAGE_SIZE ?=3D 2GiB + # The release process works in several phases: # # 0. We assume the developer created a 'vX.Y' tag. @@ -627,6 +636,19 @@ release: distcheck mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" \ "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz" ; \ done + for system in $(GUIXSD_VM_SYSTEMS) ; do \ + image=3D`$(top_builddir)/pre-inst-env \ + guix system vm-image \ + --image-size=3D$(GUIXSD_VM_IMAGE_SIZE) \ + gnu/system/install.scm` ; \ + if [ ! -f "$$image" ] ; then \ + echo "failed to produced GuixSD VM image for $$system" >&2 ; \ + exit 1 ; \ + fi ; \ + xz < "$$image" > "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp= " ; \ + mv "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" \ + "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz" ; \ + done @echo @echo "Congratulations! All the release files are now in $(releasedir)." @echo --=20 2.13.0 --0F1p//8PRICkK4MW Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-website-downloads-Mention-the-VM-image.patch" Content-Transfer-Encoding: quoted-printable =46rom 584a9dfb224de28dc40692d2957d2301952378c2 Mon Sep 17 00:00:00 2001 =46rom: Leo Famulari Date: Sun, 14 May 2017 15:03:57 -0400 Subject: [PATCH] website: downloads: Mention the VM image. * website/www/download.scm (%vm-image-description, %vm-image-manual, %vm-image-image): New variables. (guixsd-vm-image-files): New procedure. (download-page): Use guixsd-vm-image-files. --- website/www/download.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/website/www/download.scm b/website/www/download.scm index 887c6db..98f03ee 100644 --- a/website/www/download.scm +++ b/website/www/download.scm @@ -62,6 +62,15 @@ dependencies.") (define %guix-src-image "src-package.png") =20 +(define %vm-image-description + "Virtual machine (QEMU) image of GuixSD.") + +(define %vm-image-manual + "manual/html_node/Running-GuixSD-in-a-VM.html") + +(define %vm-image-image + "GuixSD-package.png") + (define (ftp-url file) (string-append "ftp://alpha.gnu.org/gnu/guix/" file)) =20 @@ -75,6 +84,12 @@ dependencies.") "-linux.xz")))) archs)) =20 +(define (guixsd-vm-image-files archs) + (map (lambda (arch) + (cons arch (https-url (string-append "guixsd-vm-image-" + (latest-guix-version) "." ar= ch + "-linux.xz")))))) + (define (guix-files archs) (map (lambda (arch) (cons arch (https-url (string-append "guix-binary-" (latest-guix-= version) @@ -150,7 +165,12 @@ Linux-based system.") #:files (guix-source-files '("tarball")) #:description %source-tarball-description #:manual %source-tarball-manual - #:image %guix-src-image)) + #:image %guix-src-image) + ,(download-box (string-append "GuixSD " (latest-guix-version)) + #:files (guixsd-vm-image-files '("x86_64")) + #:description %vm-image-description + #:manual %vm-image-manual + #:image %guixsd-vm-image)) =20 (p "Source code for the Guix System Distribution USB installation images as well as GNU Guix can be found on the GNU ftp server= for " --=20 2.13.0 --0F1p//8PRICkK4MW-- --qlTNgmc+xy1dBmNv Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlkYrHwACgkQJkb6MLrK fwj1JxAAtUi7f9vzMycWM4UT3is3OrgCgPeeAY87r8k3gbPWJjheBU5BdOslwPHg pUBs+NFDju4FJH/p/O02BhKqSdgdpbFVb4C2PTNakm3UhFDEMS55J4DsqswzNJHg Ce0YMI41RRNFQqfND6mVRPPQL4JFXOPGJjDvbKVioWuyHpfJ7/hHLswagBOpJgog 1zoD5YWOYnUWK/d1Im40UWi6ZuEXh+xc0CRR62HKHulKUNmvfNN7Z3KC7QaqNZL4 CFCkejAubosPf0n8ZIl19S2uMPIohIzOIqXpC44fTK6qsroEfqKUHPR4Aj7//JKq GhNFQbSbBeUTdAzN4XJtQPFqb1kYY96w6kVSFc9m+DzRXAWvaDW/RdLGlPBgVYw4 lnszNrwWIvl324gf161xIYqjWf12MWFzLd2EhdM5aRX/PoCTdtNUxaaoXirHbUov R4i56FVWMVXvMY1r1uvO9Ugn3JL+gQ9PqdTuwLYuEI7jhCpOXCpjOybPou5kvhg5 akoydTXXlo3LoW69AZsKTGrRUY/CoG0Ymrd40K3iPEBaSDFa/7FqK6i89yz9S3YJ AEgj4dFEXAmJ1w34AoozoTUUAsG10BeDENfeoUMOYmq3YUCl30MUJjy7dQSRG7ia Zyx1JbnmeOYfd+D9T8GInfKJ2EXfnjyy2dcapzVZsM/p74tErfE= =J6EQ -----END PGP SIGNATURE----- --qlTNgmc+xy1dBmNv--