unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Leo Famulari <leo@famulari.name>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: Planning for the next release
Date: Sun, 14 May 2017 15:14:07 -0400	[thread overview]
Message-ID: <20170514191407.GA4673@jasmine> (raw)
In-Reply-To: <87mvag3lj7.fsf@gnu.org>


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

On Sat, May 13, 2017 at 03:59:24PM +0200, Ludovic Courtès wrote:
> Leo Famulari <leo@famulari.name> 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 “difficulty” would be to adjust the “Download” page on the web
> site, the instructions in the manual, “make release”, 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=e0b2e93005188ab4d6c7413a27832ba2fb7388e8#n608

[-- Attachment #1.2: 0001-doc-Mention-the-pre-built-VM-image.patch --]
[-- Type: text/plain, Size: 2145 bytes --]

From 6ae03aa362b3542590e12c0ab2b65af127bdb00d Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
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
 
 @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.
 
 @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:
 
 @example
 $ qemu-system-x86_64 \
-- 
2.13.0


[-- Attachment #1.3: 0002-maint-The-release-target-builds-a-VM-image.patch --]
[-- Type: text/plain, Size: 2198 bytes --]

From 30effa15369a1707755d134e37e63e2df135422e Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
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 =							\
 # Systems supported by GuixSD.
 GUIXSD_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux
 
+# Systems for which we build GuixSD VMs.
+GUIXSD_VM_SYSTEMS ?= x86_64-linux
+
 # Prefix of the GuixSD installation image file name.
 GUIXSD_IMAGE_BASE = guixsd-usb-install-$(PACKAGE_VERSION)
 
+# Prefix of the GuixSD VM image file name.
+GUIXSD_VM_IMAGE_BASE = guixsd-vm-image-$(PACKAGE_VERSION)
+
 # Size of the installation image (for x86_64 typically).
 GUIXSD_INSTALLATION_IMAGE_SIZE ?= 950MiB
 
+# Size of the VM image (for x86_64 typically).
+GUIXSD_VM_IMAGE_SIZE ?= 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=`$(top_builddir)/pre-inst-env						\
+	    guix system vm-image							\
+	    --image-size=$(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
-- 
2.13.0


[-- Attachment #1.4: 0001-website-downloads-Mention-the-VM-image.patch --]
[-- Type: text/plain, Size: 2453 bytes --]

From 584a9dfb224de28dc40692d2957d2301952378c2 Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
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")
 
+(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))
 
@@ -75,6 +84,12 @@ dependencies.")
                                             "-linux.xz"))))
        archs))
 
+(define (guixsd-vm-image-files archs)
+  (map (lambda (arch)
+         (cons arch (https-url (string-append "guixsd-vm-image-"
+                                              (latest-guix-version) "." arch
+                                              "-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))
 
 		(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 "
-- 
2.13.0


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2017-05-14 19:14 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-30 12:37 Planning for the next release Ludovic Courtès
2017-03-31 13:57 ` ng0
2017-03-31 16:25   ` Ludovic Courtès
2017-03-31 16:33     ` ng0
2017-03-31 23:07       ` Leo Famulari
2017-04-01  7:24         ` ng0
2017-04-04 10:39           ` Ricardo Wurmus
2017-05-20  8:40             ` Ludovic Courtès
2017-05-20 10:51               ` Ricardo Wurmus
2017-05-20 12:15                 ` Ludovic Courtès
2017-05-20 21:45                   ` Ricardo Wurmus
2017-05-20 22:29                     ` Ludovic Courtès
2017-05-20 15:14               ` Ludovic Courtès
2017-05-20 19:40                 ` Marius Bakke
2017-05-20 21:40                   ` Marius Bakke
2017-05-20 22:32                   ` Ludovic Courtès
2017-05-20 23:18                     ` Ludovic Courtès
2017-05-20 21:42               ` Ricardo Wurmus
2017-04-02 22:13 ` Marius Bakke
2017-04-03  8:23   ` Ludovic Courtès
2017-04-17 20:41     ` UEFI support in boot image Marius Bakke
2017-04-19 20:26       ` Ludovic Courtès
2017-04-19 21:43         ` Marius Bakke
2017-05-05 20:54           ` Ludovic Courtès
2017-05-06 14:49             ` Marius Bakke
2017-05-07 14:42               ` Marius Bakke
2017-04-03  0:28 ` Planning for the next release Leo Famulari
2017-04-03  8:26   ` Ludovic Courtès
2017-04-03 17:52     ` Leo Famulari
2017-04-04 11:56       ` Ludovic Courtès
2017-04-21 22:27 ` Ludovic Courtès
2017-04-21 22:33   ` Leo Famulari
2017-04-27 12:40     ` Ricardo Wurmus
2017-05-11  9:00 ` Ludovic Courtès
2017-05-12  5:45   ` Ricardo Wurmus
2017-05-12 12:13     ` Hartmut Goebel
2017-05-12 15:25     ` Ludovic Courtès
2017-05-12 18:50       ` Ricardo Wurmus
     [not found]     ` <CAFtzXzMOGmQ6PKxarkmAKENR0EkWsfVoN7qdUjsnvZ6fgrAdTA@mail.gmail.com>
     [not found]       ` <CAFtzXzO7+7nO0XF0xDWktoApobNwVyHSg_1q6Z2hmeLc6czf4w@mail.gmail.com>
     [not found]         ` <CAFtzXzMBqiHBhusVx651nm1xH+XvacLKeuDDZ-iaMzx7FawyhA@mail.gmail.com>
2017-05-12 18:18           ` Fwd: " Manolis Ragkousis
2017-05-13  7:06             ` Ricardo Wurmus
2017-05-12 18:04   ` Leo Famulari
2017-05-12 21:04     ` ng0
2017-05-13 13:59     ` Ludovic Courtès
2017-05-13 14:20       ` Vincent Legoll
2017-05-14 19:14       ` Leo Famulari [this message]
2017-05-14 20:19         ` Leo Famulari
2017-05-15  1:52         ` Leo Famulari
2017-05-15 12:44         ` Ludovic Courtès
2017-05-16 14:41           ` sirgazil
2017-05-16 18:17             ` Leo Famulari
2017-05-16 18:19             ` Leo Famulari
2017-05-17  0:51               ` sirgazil
2017-05-17  3:02                 ` Leo Famulari
2017-05-17  8:29                   ` Ludovic Courtès
2017-05-16 17:12           ` Alex Kost
2017-05-16 23:03           ` Leo Famulari
2017-05-17 12:38             ` Ludovic Courtès
2017-05-17 18:20               ` Leo Famulari
2017-05-22 11:49                 ` Building the web site Ludovic Courtès
2017-05-21 13:04       ` Planning for the next release Ricardo Wurmus

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=20170514191407.GA4673@jasmine \
    --to=leo@famulari.name \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /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).