guix-commits
[Top][All Lists]
Advanced

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

01/01: website: Import news entries from Savannah as Haunt posts.


From: Ludovic Courtčs
Subject: 01/01: website: Import news entries from Savannah as Haunt posts.
Date: Thu, 27 Oct 2016 23:15:40 +0000 (UTC)

civodul pushed a commit to branch master
in repository guix-artwork.

commit 0735cb03a91d6fe1e644b0409ecc790eefe8f543
Author: Ludovic Courtès <address@hidden>
Date:   Fri Oct 28 01:05:37 2016 +0200

    website: Import news entries from Savannah as Haunt posts.
    
    * website/post: New directory, with 54 .sxml files.
---
 .../back-from-the-european-lisp-symposium.sxml     |   20 +++
 .../posts/back-from-the-gnu-hackers-meeting.sxml   |   21 +++
 website/posts/boot-to-guile.sxml                   |   23 +++
 ...talks-about-guix-in-chicago-september-30th.sxml |   41 +++++
 .../posts/container-provisioning-with-guix.sxml    |   55 +++++++
 ...-the-linux-based-gnu-system-ported-to-mips.sxml |   30 ++++
 ...emacs-as-a-general-purpose-package-manager.sxml |   36 ++++
 website/posts/gnome-in-guixsd.sxml                 |  126 ++++++++++++++
 website/posts/gnu-dmd-0.1-released.sxml            |   16 ++
 website/posts/gnu-dmd-0.2-released.sxml            |   19 +++
 .../posts/gnu-guix--guixsd-0.10.0-released.sxml    |   93 +++++++++++
 website/posts/gnu-guix-0.1-released.sxml           |   26 +++
 website/posts/gnu-guix-0.2-released.sxml           |   32 ++++
 website/posts/gnu-guix-0.3-released.sxml           |   31 ++++
 .../gnu-guix-0.4-released;-happy-birthday-gnu.sxml |   35 ++++
 website/posts/gnu-guix-0.5-released.sxml           |   40 +++++
 website/posts/gnu-guix-0.6-released.sxml           |   41 +++++
 website/posts/gnu-guix-0.7-released.sxml           |   37 +++++
 website/posts/gnu-guix-0.8-released.sxml           |   64 ++++++++
 website/posts/gnu-guix-0.8.1-released.sxml         |   65 ++++++++
 website/posts/gnu-guix-0.8.2-released.sxml         |   78 +++++++++
 website/posts/gnu-guix-0.8.3-released.sxml         |   72 ++++++++
 website/posts/gnu-guix-0.9.0-released.sxml         |   84 ++++++++++
 .../posts/gnu-guix-and-guixsd-0.11.0-released.sxml |   84 ++++++++++
 website/posts/gnu-guix-at-fosdem.sxml              |   15 ++
 .../posts/gnu-guix-looks-for-gsoc-students.sxml    |   32 ++++
 ...-to-arm-and-other-niceties-of-the-new-year.sxml |   50 ++++++
 website/posts/gnu-guix-recruits-for-gsoc.sxml      |   52 ++++++
 ...uix-talk-at-opentechsummit-berlin-may-14th.sxml |   34 ++++
 ...ix-talk-in-boston-ma-(usa)-on-january-20th.sxml |   43 +++++
 ...nu-guix-talk-in-rennes-france-november-9th.sxml |   47 ++++++
 .../gnu-guix-welcomes-four-students-for-gsoc.sxml  |   62 +++++++
 .../gnu-guix-welcomes-three-students-for-gsoc.sxml |   45 +++++
 website/posts/gsoc-update.sxml                     |   53 ++++++
 website/posts/guix--gsoc.sxml                      |   29 ++++
 website/posts/guix-at-libreplanet-2016.sxml        |   40 +++++
 website/posts/guix-at-openbio-codefest-2014.sxml   |   17 ++
 .../guix-at-the-2014-gnu-hackers-meeting.sxml      |   29 ++++
 .../posts/guix-at-the-european-lisp-symposium.sxml |   15 ++
 .../posts/guix-gets-cross-compilation-support.sxml |   21 +++
 ...raising-campaign-with-support-from-the-fsf.sxml |   58 +++++++
 .../guix-tox-talk-at-pyconfr-october-17th.sxml     |   41 +++++
 website/posts/guixsd-system-tests.sxml             |  172 ++++++++++++++++++++
 ...-guix-a-package-manager-and-distro-for-gnu.sxml |   22 +++
 website/posts/join-gnu-guix-for-gsoc.sxml          |   56 +++++++
 ...uix-for-an-on-line-hackathon-on-sep.-28-29.sxml |   28 ++++
 ...join-us-for-a-guix-hackathon-on-sep.-27-28.sxml |   35 ++++
 website/posts/meet-guix-at-fosdem.sxml             |   66 ++++++++
 website/posts/one-week-to-fosdem.sxml              |   17 ++
 website/posts/porting-guix-and-guixsd.sxml         |   56 +++++++
 ...led-software-environments-in-hpc-with-guix.sxml |   41 +++++
 .../reproducible-builds-a-means-to-an-end.sxml     |  115 +++++++++++++
 website/posts/service-composition-in-guixsd.sxml   |  149 +++++++++++++++++
 .../posts/timely-delivery-of-security-updates.sxml |  116 +++++++++++++
 54 files changed, 2725 insertions(+)

diff --git a/website/posts/back-from-the-european-lisp-symposium.sxml 
b/website/posts/back-from-the-european-lisp-symposium.sxml
new file mode 100644
index 0000000..648e122
--- /dev/null
+++ b/website/posts/back-from-the-european-lisp-symposium.sxml
@@ -0,0 +1,20 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Back from the European Lisp Symposium")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 5 6 2013 7200))
+    (content
+      div
+      (p "The "
+         (a (@ (href 
"http://www-sop.inria.fr/members/Manuel.Serrano/conferences/els13.html";))
+            "European Lisp Symposium")
+         " (ELS) is over now, and it\x92s been pleasant experience: thoughtful 
discussions, beautiful city, and parentheses all around.  Thanks to all the 
Lispers and Schemers who made it to ELS for the friendly atmosphere!"
+         (br))
+      (p "The slides of the talk I gave on the design and implementation of 
Guix are "
+         (a (@ (href "http://www.gnu.org/software/guix/guix-els-20130603.pdf";))
+            "available on-line")
+         ".  Nick Levine also published "
+         (a (@ (href "http://www.nicklevine.org/els2013/";))
+            "audio recordings")
+         " of most of the talks (thanks!)."
+         (br)))))
diff --git a/website/posts/back-from-the-gnu-hackers-meeting.sxml 
b/website/posts/back-from-the-gnu-hackers-meeting.sxml
new file mode 100644
index 0000000..c18d9bf
--- /dev/null
+++ b/website/posts/back-from-the-gnu-hackers-meeting.sxml
@@ -0,0 +1,21 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Back from the GNU Hackers Meeting")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 2 9 2013 7200))
+    (content
+      div
+      (p "The "
+         (a (@ (href "http://www.gnu.org/ghm/2013/paris";))
+            "GNU Hackers Meeting")
+         " took place last week in Paris.  As usual, it was a nice place to 
meet fellow hackers, grow new ideas, and to learn about what other projects are 
up to.  Thanks to "
+         (a (@ (href "http://www.irill.org";)) "IRILL")
+         " for hosting the event, and a big thanks to "
+         (a (@ (href "http://ageinghacker.net/";)) "Luca")
+         " for the very professional organization!"
+         (br))
+      (p "Several Guix hackers were present, with no less than "
+         (a (@ (href "http://www.gnu.org/software/guix/#talks";))
+            "two talks advertising Guix")
+         ".  The first talk demoed the package manager, both from a user's and 
from a hacker's perspective, and with a look forward.  The second talk 
delivered a \"packaging how-to\" that should be helpful to anyone willing to 
contribute to the GNU system distribution."
+         (br)))))
diff --git a/website/posts/boot-to-guile.sxml b/website/posts/boot-to-guile.sxml
new file mode 100644
index 0000000..815c160
--- /dev/null
+++ b/website/posts/boot-to-guile.sxml
@@ -0,0 +1,23 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Boot-to-Guile!")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 16 2 2013 3600))
+    (content
+      div
+      (p "As a contribution to "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guile-user/2013-01/msg00007.html";))
+            "Guile's birthday potluck")
+         ", Guix has been extended with the infrastructure to build "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guile-user/2013-02/msg00131.html";))
+            "a Boot-to-Guile QEMU disk image")
+         "."
+         (br))
+      (p "The image has GRUB to boot Linux-Libre, which in turn runs directly 
Guile and an init script in Scheme from its initrd.  To put it differently, it 
boots Guile and its device driver environment known as Linux-Libre.  :-)"
+         (br))
+      (p "In addition to being fun, it actually has a practical impact.  
First, Guix now has infrastructure to create bootable GNU/Linux-Libre QEMU 
images."
+         (br))
+      (p "Second, using Guile in the initrd proves to be very convenient: all 
the expressivity and power of Guile and Scheme, without the complexity and code 
duplication associated with specific tool suites like klibc, Ash, and BusyBox."
+         (br))
+      (p "Happy birthday Guile 2.0, and happy hacking!"
+         (br)))))
diff --git 
a/website/posts/chris-webber-talks-about-guix-in-chicago-september-30th.sxml 
b/website/posts/chris-webber-talks-about-guix-in-chicago-september-30th.sxml
new file mode 100644
index 0000000..cbabfde
--- /dev/null
+++ b/website/posts/chris-webber-talks-about-guix-in-chicago-september-30th.sxml
@@ -0,0 +1,41 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Chris Webber talks about Guix in Chicago, September 30th")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 18 9 2015 7200))
+    (content
+      div
+      (p (a (@ (href "http://dustycloud.org/";))
+            "Chris Webber")
+         " of "
+         (a (@ (href "http://mediagoblin.org/";))
+            "MediaGoblin")
+         " fame "
+         (a (@ (href "https://chicagolug.org/meetings/2015-09-30.html";))
+            "will be giving two talks")
+         " for the Chicago GNU/Linux User Group meeting on September 30th.  
The first talk will discuss the state of federation on the Web, while the 
second one is entitled "
+         (em "Functional Package Management and Deployment with Guix")
+         ":"
+         (br))
+      (p (em "Tired of being stuck after an upgrade? Wish your operating 
system could roll forward and backwards in time, more like Git? Want a way to 
get really reproducible software? Or just want a better alternative to 
$YOUR_LANGUAGE's stressful packaging ecosystem you can run on an existing 
distro? And why on earth would you want something called a \"symlink forest\" 
anyway? Discover all this and more in this exciting talk about the GNU Guix 
project!")
+         (br))
+      (p "If you're in the Chicago area, do not miss Chris!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/container-provisioning-with-guix.sxml 
b/website/posts/container-provisioning-with-guix.sxml
new file mode 100644
index 0000000..5328ccb
--- /dev/null
+++ b/website/posts/container-provisioning-with-guix.sxml
@@ -0,0 +1,55 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Container provisioning with Guix")
+    (author . "David Thompson")
+    (date unquote
+          (make-date 0 0 0 0 27 10 2015 3600))
+    (content
+      div
+      (p "The upcoming release of GNU Guix will feature an implementation of 
Linux containers named, following Scheme conventions, "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/build/linux-container.scm#n215";))
+            "call-with-container")
+         ".  Containers are a lightweight virtualization technique used to 
isolate processes sharing the same host machine.  A container has its own 
separate global kernel resources such as mount points, networking interfaces, 
users, hostname, and processes."
+         (br))
+      (p "Containers are a hot topic, and there are many implementations 
available, but Guix containers are built differently.  Compared to other 
container implementations such as Docker, the most notable difference is that 
disk images and layered file systems are not used. Instead, the necessary 
software packages are inserted into containers via simple bind mounts.  A 
pleasant consequence of this structure is that software is deduplicated 
system-wide.  A package used in any number of co [...]
+         (br))
+      (p "One of the programs that uses call-with-container is "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-environment.html";))
+            "'guix environment'")
+         ", the generic virtual development environment creation tool.  A 
--container flag has been introduced that will, as the name suggests, spawn the 
environment inside of a container.  The container only has file system access 
to the directory from which 'guix environment' was invoked and the read-only 
store directories of the dependencies.  Additional directories and files may be 
shared from the host using the --expose and --share flags.  For example, a 
\"containerized\" developmen [...]
+         (br))
+      (div (@ (class "example"))
+           (pre "guix environment --container guix "))
+      (p "Likewise, the "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html";))
+            "'guix system'")
+         " tool has been extended with a 'container' action for creating 
scripts that launch full-blown GuixSD containers:"
+         (br))
+      (div (@ (class "example"))
+           (pre "guix system container my-system.scm "))
+      (p "Please note, however, that GuixSD containers may only be created by 
the root user at this time."
+         (br))
+      (p "In order to use call-with-container, a kernel with support for user 
namespaces is required.  User namespaces were introduced in Linux 3.8, but 
several distributions disable them by default."
+         (br))
+      (p "There is still much work to be done in order to make 
call-with-container a robust container platform.  For example, control groups 
could be used to arbitrarily limit the resources a container can consume, and 
virtual network interfaces could be used to give containers access to the net 
without sharing the host system's network interfaces.  If you would like to 
help improve call-with-container, or any other part of the Guix codebase, 
please "
+         (a (@ (href "http://www.gnu.org/software/guix/contribute/";))
+            "join the fun")
+         "!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git 
a/website/posts/distro-of-the-linux-based-gnu-system-ported-to-mips.sxml 
b/website/posts/distro-of-the-linux-based-gnu-system-ported-to-mips.sxml
new file mode 100644
index 0000000..e2fc86a
--- /dev/null
+++ b/website/posts/distro-of-the-linux-based-gnu-system-ported-to-mips.sxml
@@ -0,0 +1,30 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Distro of the Linux-based GNU system ported to MIPS")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 28 10 2013 3600))
+    (content
+      div
+      (p "The Guix-based distro "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2013-10/msg00174.html";))
+            "has been ported to MIPS64")
+         ", specifically to the "
+         (a (@ (href "http://en.wikipedia.org/wiki/Loongson";))
+            "Loongson")
+         " processors notably found in the free-software-friendly "
+         (a (@ (href "http://en.wikipedia.org/wiki/Lemote#Netbook_computers";))
+            "Yeeloong laptops")
+         "."
+         (br))
+      (p "Technically, "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#Porting";))
+            "\"porting\"")
+         " here means that the \"bootstrap binaries\" were cross-compiled to 
+mips64el-linux-gnu+, and then used as an input to the "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#Bootstrapping";))
+            "distro's bootstrapping process")
+         "---a purely functional, and trackable, process."
+         (br))
+      (p "Thanks to Mark and Nikita for their tireless work to make this 
happen!"
+         (br)))))
diff --git a/website/posts/emacs-as-a-general-purpose-package-manager.sxml 
b/website/posts/emacs-as-a-general-purpose-package-manager.sxml
new file mode 100644
index 0000000..e2ea5c3
--- /dev/null
+++ b/website/posts/emacs-as-a-general-purpose-package-manager.sxml
@@ -0,0 +1,36 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Emacs as a general-purpose package manager")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 4 9 2014 7200))
+    (content
+      div
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         ", the package manager written for the GNU system, now has a neat 
Emacs user interface!  It offers a visual, user-friendly alternative to the 
guix package "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-package.html";))
+            "command-line interface")
+         "."
+         (br))
+      (p "For those familiar with "
+         (a (@ (href 
"http://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html";))
+            "package.el")
+         ", the main user interface is quite similar: commands like 
guix-newest-available-packages, guix-search-by-regexp, and 
guix-installed-packages present a browsable list of packages.  Individual 
packages can be selected, which displays additional details and presents a 
button to install or delete them.  It is also possible to mark a set of 
packages for installation, upgrade, or deletion, and execute the set of 
operations in a single transaction."
+         (br))
+      (p "The interface has been developed by Alex Kost and was merged in Guix 
a day ago.  It uses "
+         (a (@ (href "http://nongnu.org/geiser/";))
+            "Geiser")
+         ", the beloved Guile/Emacs interface and development environment, to 
communicate with the underlying Guile process.  That Guile process, in turn, 
simply uses Guix and "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Package-Modules.html";))
+            "the whole distribution")
+         " as libraries\x97the goodness of embedding the "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Defining-Packages.html";))
+            "packaging DSL")
+         " in a general-purpose language."
+         (br))
+      (p "Try it out and "
+         (a (@ (href "http://www.gnu.org/software/guix/#contact";))
+            "let us know")
+         " what you think!"
+         (br)))))
diff --git a/website/posts/gnome-in-guixsd.sxml 
b/website/posts/gnome-in-guixsd.sxml
new file mode 100644
index 0000000..1a3c3d6
--- /dev/null
+++ b/website/posts/gnome-in-guixsd.sxml
@@ -0,0 +1,126 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNOME in GuixSD")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 23 3 2016 3600))
+    (content
+      div
+      (p "It\x92s a feature that many users were waiting for: proper "
+         (a (@ (href "https://www.gnome.org/";)) "GNOME")
+         " support in GuixSD.  Good news: the forthcoming Guix and GuixSD 
release will give you exactly that!  Don\x92t miss the obligatory "
+         (a (@ (href 
"https://www.gnu.org/software/guix/screenshots/0.9.1/gnome-totem-epiphany.png";))
+            "screenshot")
+         "!"
+         (br))
+      (p "You would think adding GNOME is routine distro work involving a lot 
of packaging and bits of plumbing that\x92s already been done a hundred times, 
which is probably true!  Yet, adding GNOME support turned out to be interesting 
in many ways: it\x92s a good test for GuixSD\x92s declarative operating system 
configuration framework, it\x92s a way to formalize how this whole software 
stack fits together, and it\x92s been an insightful journey into GNU/Linux 
desktop plumbing!"
+         (br))
+      (p "Of course, a lot of software needs to be packaged to begin with.  
This had been on-going for some time, culminating with the addition of a "
+         (a (@ (href "https://www.gnu.org/software/guix/packages/#gnome";))
+            "gnome meta-package")
+         " thanks to the hard work of ??? (Sou Bunnbu) and other hackers.  On 
the way, we added "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-12/msg00173.html";))
+            "an auto-updater for GNOME packages")
+         ", because all these package recipes need love."
+         (br))
+      (p "The more interesting parts were system integration.  Modern 
GNOME/Freedesktop environments rely on a number of daemons, most of which talk 
over "
+         (a (@ (href "https://www.freedesktop.org/wiki/Software/dbus/";))
+            "D-Bus")
+         ", and extending each other\x92s functionality: udev, udisks, upower, 
colord, geoclue, and polkit, to name a few.  Being able to "
+         (em "compose")
+         " all these system services was one of the driving use cases behind "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8412";))
+            "the design of GuixSD\x92s new service composition framework")
+         ".  With this design, we knew we were able to have fine control over 
the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Service-Composition.html";))
+            "service composition graph")
+         ".  Challenge #1 overcome!"
+         (br))
+      (p "Since GuixSD uses the "
+         (a (@ (href "https://www.gnu.org/software/shepherd/";))
+            "GNU Shepherd")
+         " and not systemd as its init system, we needed a way to provide the "
+         (a (@ (href "https://freedesktop.org/wiki/Software/systemd/logind/";))
+            "\x93logind\x94")
+         " functionality that systemd implements, and which allows GNOME to 
know about "
+         (a (@ (href 
"https://www.freedesktop.org/wiki/Software/systemd/multiseat/";))
+            "users, sessions, and seats")
+         "."
+         (br))
+      (p "So Andy Wingo courageously started by "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-04/msg00352.html";))
+            "extracting")
+         " logind from systemd, leading to "
+         (a (@ (href "https://github.com/wingo/elogind";))
+            "\x93elogind\x94")
+         ".  At this point, we had this daemon that could keep track of 
logged-in users and active sessions, and which GNOME could talk to over 
D-Bus\x85 provided all the relevant "
+         (a (@ (href "http://www.linux-pam.org/";))
+            "PAM services")
+         " would use the pam_elogind module so that elogind knows when a user 
logs in and out, as Andy "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00439.html";))
+            "nicely explained it")
+         "."
+         (br))
+      (p "This pam_elogind thing is a typical example of a cross-cutting 
concern: "
+         (em "if")
+         " you use elogind, "
+         (em "then")
+         " you want all the relevant login-related PAM services (mingetty, the 
X login manager, commands such as su, the SSH daemon, etc.) to use pam_elogind. 
 To achieve that, we "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/commit/?id=12c00bca92e3eef2b86565924bbefc39397b5497";))
+            "updated")
+         " our PAM service such that it could be "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00163.html";))
+            "extended")
+         " with such "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/commit/?id=e7ad0d586251383a4c8b00222e8dec61d491f03b";))
+            "cross-cutting modules")
+         ".  At last, we had proper logind support! "
+         (br))
+      (p "At this point, the brave could start using GNOME on GuixSD but would 
soon realize that, for example, the \x93power off\x94 button wouldn\x92t have 
the desired effect, or that changing a laptop\x92s backlight wouldn\x92t work 
because "
+         (a (@ (href "https://www.freedesktop.org/wiki/Software/polkit/";))
+            "polkit")
+         ", the daemon that allows unprivileged users to perform privileged 
operations like that one, was "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01000.html";))
+            "missing essential policy files")
+         "."
+         (br))
+      (p "You would think you can finally change the brightness of your 
screen, but no!  Turns out that polkit would "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01170.html";))
+            "refuse to run gnome-setting-daemon\x92s backlight helper program")
+         " because "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00247.html";))
+            "elogind happened to fail to map PIDs to sessions")
+         ".  Whatever."
+         (br))
+      (p "Of course there were still a bunch of embarrassing glitches such as "
+         (a (@ (href "http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22666";))
+            "GNOME suspending right after it wakes up from suspend")
+         ", failure to start in QEMU, or "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00690.html";))
+            "the lack of GNOME\x92s favorite font")
+         ".  Well, it seems that all these are gone now!"
+         (br))
+      (p "GuixSD users can now enable GNOME by adding "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00639.html";))
+            "one line")
+         " in their "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html";))
+            "operating system configuration")
+         ".  Overall, this has been a nice experience involving a variety of 
areas."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-dmd-0.1-released.sxml 
b/website/posts/gnu-dmd-0.1-released.sxml
new file mode 100644
index 0000000..e054e1f
--- /dev/null
+++ b/website/posts/gnu-dmd-0.1-released.sxml
@@ -0,0 +1,16 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU dmd 0.1 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 2 12 2013 3600))
+    (content
+      div
+      (p (a (@ (href "http://www.gnu.org/software/dmd";))
+            "GNU dmd")
+         " 0.1 has been "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00014.html";))
+            "released")
+         ", providing many improvements and bug fixes."
+         (br))
+      (p "GNU dmd is a dependency-based service manager meant to be used as 
the init system in GNU.  It is written in Guile Scheme."
+         (br)))))
diff --git a/website/posts/gnu-dmd-0.2-released.sxml 
b/website/posts/gnu-dmd-0.2-released.sxml
new file mode 100644
index 0000000..348d503
--- /dev/null
+++ b/website/posts/gnu-dmd-0.2-released.sxml
@@ -0,0 +1,19 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU dmd 0.2 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 8 7 2014 7200))
+    (content
+      div
+      (p (a (@ (href "http://www.gnu.org/software/dmd";))
+            "GNU dmd")
+         " 0.2 has been "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2014-07/msg00039.html";))
+            "released")
+         ".  It provides new features such as the ability to load new 
definitions for existing services, as well as bug fixes and an improved "
+         (a (@ (href "http://www.gnu.org/software/dmd/manual";))
+            "manual")
+         "."
+         (br))
+      (p "GNU dmd is a dependency-based service manager meant to be used as 
the init system in GNU. It is written in Guile Scheme."
+         (br)))))
diff --git a/website/posts/gnu-guix--guixsd-0.10.0-released.sxml 
b/website/posts/gnu-guix--guixsd-0.10.0-released.sxml
new file mode 100644
index 0000000..a79b26b
--- /dev/null
+++ b/website/posts/gnu-guix--guixsd-0.10.0-released.sxml
@@ -0,0 +1,93 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix & GuixSD 0.10.0 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 29 3 2016 7200))
+    (content
+      div
+      (p "We are pleased to announce the new beta release of GNU\xa0Guix and 
GuixSD, version 0.10.0!"
+         (br))
+      (p "The release comes with USB installation images to install the 
standalone "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "GuixSD")
+         ", and with tarballs to install the package manager on top of a 
running GNU/Linux system, either "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Requirements.html";))
+            "from source")
+         " or "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html";))
+            "from binaries")
+         "."
+         (br))
+      (p "It\x92s been almost 5 months since the previous release, and many 
things happened!  The highlights include:"
+         (br))
+      (ul (li "Our \x93grafting\x94 mechanism for "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Security-Updates.html";))
+                 "security updates")
+              " has been fixed to be generally applicable.  Read "
+              (a (@ (href 
"https://savannah.gnu.org/forum/forum.php?forum_id=8470";))
+                 "this post")
+              " for more information on the challenges behind this.\n")
+          (li (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Substitutes.html";))
+                 "Substitutes")
+              " are now fetched by default over HTTPS and from a faster 
mirror.\n")
+          (li "A number of packages have been made "
+              (a (@ (href 
"https://savannah.gnu.org/forum/forum.php?forum_id=8407";))
+                 "bit-for-bit reproducible")
+              ", including glibc, Perl, Emacs packages, and Python packages.  
This work was simplified by "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-challenge.html";))
+                 "guix challenge")
+              " and by the new "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Additional-Build-Options.html#Additional-Build-Options";))
+                 "--check")
+              " and "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Common-Build-Options.html#Common-Build-Options";))
+                 "--rounds")
+              " build options, and also by the insight gathered from "
+              (a (@ (href "https://reproducible-builds.org/";))
+                 "other reproducible builds efforts")
+              ".\n")
+          (li "GNOME is "
+              (a (@ (href 
"https://savannah.gnu.org/forum/forum.php?forum_id=8491";))
+                 "now available")
+              ", via the "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Desktop-Services.html";))
+                 "gnome-desktop-service procedure")
+              ".\n")
+          (li (a (@ (href "https://www.gnu.org/software/guix/packages/";))
+                 "639 new packages")
+              ", about as many package updates, greatly simplified by the 
addition of new "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-import.html";))
+                 "importers")
+              " and "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-refresh.html";))
+                 "auto-updaters")
+              ".\n")
+          (li "A wealth of "
+              (a (@ (href 
"https://debbugs.gnu.org/cgi/pkgreport.cgi?pkg=guix#_4_2_5";))
+                 "bug fixes")
+              ", documentation improvements, "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Emacs-Interface.html";))
+                 "Emacs niceties")
+              ", and more!\n"))
+      (p "See "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-03/msg01241.html";))
+            
"https://lists.gnu.org/archive/html/guix-devel/2016-03/msg01241.html";)
+         " for details."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.1-released.sxml 
b/website/posts/gnu-guix-0.1-released.sxml
new file mode 100644
index 0000000..e72ef7a
--- /dev/null
+++ b/website/posts/gnu-guix-0.1-released.sxml
@@ -0,0 +1,26 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.1 released!")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 18 1 2013 3600))
+    (content
+      div
+      (p "Version 0.1 of the GNU Guix functional package manager and its baby 
distribution of user-land software has been released.  See "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00191.html";))
+            "http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00191.html";)
+         " for the original announcement."
+         (br))
+      (p "In addition to standard package management features, Guix supports"
+         (br)
+         "\ntransactional upgrades and roll-backs, unprivileged package 
management, per-user profiles, and garbage collection (more details "
+         (a (@ (href "http://www.gnu.org/software/guix/manual";))
+            "in the manual")
+         ".)"
+         (br))
+      (p "The distro is not a bootable distro yet, but rather one to be 
installed on top of a running GNU/Linux system.  It includes GNU libc 2.17, GCC 
4.7.2, GNU Emacs 24.2, GNU Guile 2.0.7, and more."
+         (br))
+      (p "Building the distribution is a cooperative effort, and you are 
invited to "
+         (a (@ (href "http://www.gnu.org/software/guix/#contribute";))
+            "join")
+         "!"
+         (br)))))
diff --git a/website/posts/gnu-guix-0.2-released.sxml 
b/website/posts/gnu-guix-0.2-released.sxml
new file mode 100644
index 0000000..5ddaae0
--- /dev/null
+++ b/website/posts/gnu-guix-0.2-released.sxml
@@ -0,0 +1,32 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.2 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 12 5 2013 7200))
+    (content
+      div
+      (p "The second alpha release of "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is available.  It comes with a number of new features, notably:"
+         (br))
+      (ul (li "The "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-package.html";))
+                 "\"guix package\"")
+              " command supports upgrades of user profiles and full-text 
package searches.\n")
+          (li "Binary packages are "
+              (a (@ (href "http://hydra.gnu.org:3000/jobset/gnu/master";))
+                 "continuously built")
+              " and may be transparently downloaded as \"substitutes\" to the 
result of a local build.\n")
+          (li "The new "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-pull.html";))
+                 "\"guix pull\"")
+              " command updates the user's copy of Guix and its distro from 
Git.\n")
+          (li "New Scheme interfaces are available to facilitate package 
management in various ways.\n"))
+      (p "The distribution has grown to more than 400 packages; noteworthy 
additions include Xorg and TeXLive."
+         (br))
+      (p "See the "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/bug-guix/2013-05/msg00034.html";))
+            "original announcement")
+         " for more information."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.3-released.sxml 
b/website/posts/gnu-guix-0.3-released.sxml
new file mode 100644
index 0000000..2a59b10
--- /dev/null
+++ b/website/posts/gnu-guix-0.3-released.sxml
@@ -0,0 +1,31 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.3 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 17 7 2013 7200))
+    (content
+      div
+      (p "The third alpha release of "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is available.  The highlights are:"
+         (br))
+      (ul (li "Binary packages are now "
+              (a (@ (href "http://hydra.gnu.org/jobset/gnu/master";))
+                 "continuously built")
+              " for both x86_64 and i686.\n")
+          (li (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#index-cross_002dcompilation-1";))
+                 "Cross-")
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#index-cross_002dcompilation";))
+                 "compilation")
+              " support has been added.\n")
+          (li "33 packages were added to the distro, notably GTK+ and related 
libraries, and 25 were upgraded.\n")
+          (li "Many bug fixes and "
+              (a (@ (href "http://www.gnu.org/software/guix/manual/";))
+                 "improvements to the manual")
+              ".\n"))
+      (p "See "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2013-07/msg00046.html";))
+            "the original announcement")
+         " for details."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.4-released;-happy-birthday-gnu.sxml 
b/website/posts/gnu-guix-0.4-released;-happy-birthday-gnu.sxml
new file mode 100644
index 0000000..5d3d890
--- /dev/null
+++ b/website/posts/gnu-guix-0.4-released;-happy-birthday-gnu.sxml
@@ -0,0 +1,35 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU Guix 0.4 released; happy birthday, GNU!")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 27 9 2013 7200))
+    (content
+      div
+      (p "We are pleased to celebrate "
+         (a (@ (href "http://www.gnu.org/gnu30";))
+            "GNU's 30th anniversary")
+         " with the fourth alpha release of "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         "."
+         (br))
+      (p "The highlights are:" (br))
+      (ul (li "New APIs for the instantiation of the global system 
environment, and for the creation of QEMU images of the system.\n")
+          (li "New --list-generations and --delete-generations command-line 
options.\n")
+          (li "60 packages were added to the distro, and 27 were upgraded, 
notably glibc.\n"))
+      (p "In addition, we provide a virtual machine image showing preliminary 
work toward getting a stand-alone GNU system.  It features "
+         (a (@ (href "http://www.gnu.org/software/dmd";))
+            "GNU dmd")
+         ", a dependency-based init system written in Guile Scheme, and of 
course it comes with Guix installed.  The image is self-reproducible in that 
the recipe to build it is part of Guix."
+         (br))
+      (p "See the "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2013-09/msg00235.html";))
+            "original announcement")
+         " for details."
+         (br))
+      (p "Join us on-line in the next couple of days for a "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=7720";))
+            "hackathon")
+         " to celebrate GNU's birthday!"
+         (br)))))
diff --git a/website/posts/gnu-guix-0.5-released.sxml 
b/website/posts/gnu-guix-0.5-released.sxml
new file mode 100644
index 0000000..4f92e7f
--- /dev/null
+++ b/website/posts/gnu-guix-0.5-released.sxml
@@ -0,0 +1,40 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.5 released")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 11 12 2013 3600))
+    (content
+      div
+      (p "We are pleased to announce the fifth alpha release of "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         "."
+         (br))
+      (p "The highlights are:" (br))
+      (ul (li "Port to the Loongson MIPS64 processors, using the n32 ABI.\n")
+          (li "New "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#The-Store-Monad";))
+                 "monad interface")
+              " to handle operations on the store.\n")
+          (li "New "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#System-Configuration";))
+                 "whole-system configuration API")
+              ", allowing users to declare and instantiate a machine's 
settings.\n")
+          (li "110 new packages, including \"big ones\" such as "
+              (a (@ (href "http://www.gnu.org/software/gnuzilla/";))
+                 "GNU IceCat")
+              " and hacker's favorites such as "
+              (a (@ (href "http://www.markwitmer.com/guile-xcb/guile-wm.html";))
+                 "Guile-WM")
+              ".  ;-)\n"))
+      (p "An updated QEMU virtual machine is provided, featuring Guix 0.5 and "
+         (a (@ (href "http://www.gnu.org/software/dmd";))
+            "dmd")
+         " 0.1."
+         (br))
+      (p "See "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00061.html";))
+            "the original announcement")
+         " for details."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.6-released.sxml 
b/website/posts/gnu-guix-0.6-released.sxml
new file mode 100644
index 0000000..004fbe4
--- /dev/null
+++ b/website/posts/gnu-guix-0.6-released.sxml
@@ -0,0 +1,41 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.6 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 9 4 2014 7200))
+    (content
+      div
+      (p "We are pleased to announce the sixth alpha release of "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         "."
+         (br))
+      (p "This release provides a bunch of new features, among other things:"
+         (br))
+      (ul (li (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#Substitutes";))
+                 "\"Substitutes\"")
+              " (pre-built binaries) must now be signed and authorized to be 
installed;\n")
+          (li "Builds can be "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#Daemon-Offload-Setup";))
+                 "offloaded")
+              " to other build machines over SSH; we use this facility for our 
"
+              (a (@ (href "http://hydra.gnu.org";))
+                 "build farm")
+              ".\n")
+          (li "The +guix build+ command has a "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#Invoking-guix-build";))
+                 "new --with-source option")
+              " that allows a package to be built from a tarball other than 
that specified in the source.  This is notably useful for maintainers who want 
to test pre-releases of their package.\n")
+          (li (a (@ (href 
"http://www.gnu.org/software/guix/package-list.html";))
+                 "91 new packages")
+              ", including GNU Octave, and many upgrades, notably GNU libc 
2.19.\n"))
+      (p "An updated QEMU x86_64 image is provided, featuring Guix 0.6 and "
+         (a (@ (href "http://www.gnu.org/software/dmd";))
+            "dmd")
+         " 0.1.  It starts an X server with WindowMaker."
+         (br))
+      (p "See the "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00160.html";))
+            "original announcement")
+         " for details."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.7-released.sxml 
b/website/posts/gnu-guix-0.7-released.sxml
new file mode 100644
index 0000000..ab53dce
--- /dev/null
+++ b/website/posts/gnu-guix-0.7-released.sxml
@@ -0,0 +1,37 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.7 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 25 7 2014 7200))
+    (content
+      div
+      (p "We are pleased to announce the next alpha release of GNU Guix, 
version 0.7."
+         (br))
+      (p "This release is an important milestone for the project since it is 
the first to provide an image to install the GNU system from a USB stick."
+         (br))
+      (p "Noteworthy features for the release are:"
+         (br))
+      (ul (li "The GNU operating system can now be "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+                 "installed")
+              ".  Try it out!\n")
+          (li "To make it possible the "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system";))
+                 "guix system")
+              " command has been augmented with new options, and support for 
'operating-system' "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html";))
+                 "declarations")
+              " has been vastly improved.\n")
+          (li "Programming has been simplified with the introduction of "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/G_002dExpressions.html";))
+                 "\"G-expressions\"")
+              ", which capture dependencies used by build-side expressions.\n")
+          (li "More than 130 "
+              (a (@ (href 
"http://www.gnu.org/software/guix/package-list.html";))
+                 "packages")
+              " have been added, including \"big ones\" like the GIMP and 
Maxima.\n"))
+      (p "See the "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2014-07/msg00292.html";))
+            "original announcement")
+         " for details."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.8-released.sxml 
b/website/posts/gnu-guix-0.8-released.sxml
new file mode 100644
index 0000000..ec5a100
--- /dev/null
+++ b/website/posts/gnu-guix-0.8-released.sxml
@@ -0,0 +1,64 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.8 released")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 18 11 2014 3600))
+    (content
+      div
+      (p "We are pleased to announce the next alpha release of GNU Guix, 
version 0.8."
+         (br))
+      (p "The release comes both with a source tarball, which allows you to 
install it "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Installation.html";))
+            "on top a running GNU/Linux system")
+         ", and a USB installation image to install the "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "standalone operating system")
+         "."
+         (br))
+      (p "The highlights for this release include:"
+         (br))
+      (ul (li "A new "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-environment.html";))
+                 "guix environment")
+              " command for the bookkeeping and reproduction of development 
environments.\n")
+          (li "An "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Emacs-Interface.html";))
+                 "Emacs user interface")
+              " as an alternative to the "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-package.html";))
+                 "command-line interface")
+              " for package management.\n")
+          (li "An "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Security-Updates.html";))
+                 "experimental mechanism")
+              " for faster deployment of  security updates.\n")
+          (li "operating-system declarations can now "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/operating_002dsystem-Reference.html";))
+                 "specify")
+              " swap devices, "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Mapped-Devices.html";))
+                 "mapped devices")
+              ", firmware, and more.\n")
+          (li "More developer tools, notably "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-lint.html";))
+                 "guix lint")
+              " and "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-import.html";))
+                 "guix import")
+              ".\n")
+          (li "162 packages have been added, with more than 100 package 
updates.\n"))
+      (p "See the "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2014-11/msg00379.html";))
+            "original announcement")
+         " for details."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is the functional package manager for the GNU system, and a 
distribution thereof."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, with Guile Scheme programming 
interfaces."
+         (br))
+      (p "At this stage the distribution can be used on an i686 or x86_64 
machine.  It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.8.1-released.sxml 
b/website/posts/gnu-guix-0.8.1-released.sxml
new file mode 100644
index 0000000..8d68ac3
--- /dev/null
+++ b/website/posts/gnu-guix-0.8.1-released.sxml
@@ -0,0 +1,65 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.8.1 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 29 1 2015 3600))
+    (content
+      div
+      (p "We are pleased to announce the next alpha release of GNU Guix, 
version 0.8.1."
+         (br))
+      (p "The release comes both with a source tarball, which allows you to 
install it "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Installation.html";))
+            "on top of a running GNU/Linux system")
+         ", and a USB installation image to install the standalone "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "Guix System Distribution")
+         "."
+         (br))
+      (p "The highlights for this release include:"
+         (br))
+      (ul (li "A new "
+              (a (@ (href 
"https://savannah.gnu.org/forum/forum.php?forum_id=8175";))
+                 "port to ARMv7")
+              ".\n")
+          (li "New "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html";))
+                 "guix system vm")
+              " options to share file systems with the host.\n")
+          (li "New configuration interfaces for "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Locales.html";))
+                 "locale definitions")
+              " and for "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Base-Services.html";))
+                 "nscd")
+              ".\n")
+          (li "The addition of a CPAN importer to "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-import.html";))
+                 "guix import")
+              ", and more checkers for "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-lint.html";))
+                 "guix lint")
+              ".\n")
+          (li "164 new packages and 222 package updates.\n")
+          (li "Many "
+              (a (@ (href "http://bugs.gnu.org/guix";))
+                 "bug fixes")
+              " and usability improvements.\n"))
+      (p "See the "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-01/msg00443.html";))
+            "original announcement")
+         " for details."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution is an advanced distribution of the GNU system."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, except that packages are defined as 
native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language."
+         (br))
+      (p "At this stage the Guix System Distribution can be used on an i686 or 
x86_64 machine. It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.8.2-released.sxml 
b/website/posts/gnu-guix-0.8.2-released.sxml
new file mode 100644
index 0000000..48b7fea
--- /dev/null
+++ b/website/posts/gnu-guix-0.8.2-released.sxml
@@ -0,0 +1,78 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.8.2 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 14 5 2015 7200))
+    (content
+      div
+      (p "We are pleased to announce the next alpha release of GNU Guix, 
version 0.8.2."
+         (br))
+      (p "The release comes both with tarballs, which allow you to install it 
on top of a running GNU/Linux system, either "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Requirements.html";))
+            "from source")
+         " or "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html";))
+            "from a binaries")
+         ", and a USB installation image to install the standalone "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "Guix System Distribution")
+         " (GuixSD)."
+         (br))
+      (p "The highlights for this release include:"
+         (br))
+      (ul (li "The "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html";))
+                 "new method")
+              " to install Guix on a running system from binaries, which can 
greatly simplify installation.\n")
+          (li "GuixSD has new configuration interfaces for things like the "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Name-Service-Switch.html";))
+                 "name service switch")
+              ", new "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Services.html";))
+                 "service definitions")
+              ", easier "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html";))
+                 "desktop-style configuration")
+              ", and many tweaks and fixes.\n")
+          (li "A new "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-publish.html";))
+                 "guix publish command")
+              " allowing everyone to publish their own binaries.\n")
+          (li "718 new "
+              (a (@ (href 
"http://www.gnu.org/software/guix/package-list.html";))
+                 "packages")
+              " (including \"big ones\" like GnuCash, IcedTea, and GHC) and 
189 package updates\n")
+          (li "Countless "
+              (a (@ (href "http://bugs.gnu.org/guix";))
+                 "bug fixes")
+              " and usability improvements.\n"))
+      (p "See "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-05/msg00195.html";))
+            
"http://lists.gnu.org/archive/html/guix-devel/2015-05/msg00195.html";)
+         " for details."
+         (br))
+      (p "Special thanks go to "
+         (a (@ (href "http://sirgazil.bitbucket.org/";))
+            "Luis Felipe LĂłpez Acevedo")
+         ", the incredible designer of the "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "new web site")
+         " and GuixSD logo!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.8.3-released.sxml 
b/website/posts/gnu-guix-0.8.3-released.sxml
new file mode 100644
index 0000000..734d521
--- /dev/null
+++ b/website/posts/gnu-guix-0.8.3-released.sxml
@@ -0,0 +1,72 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.8.3 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 22 7 2015 7200))
+    (content
+      div
+      (p "We are pleased to announce the next alpha release of GNU Guix, 
version 0.8.3."
+         (br))
+      (p "The release comes with USB installation images to install the 
standalone "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "Guix System Distribution")
+         " (GuixSD), and with tarballs to install the package manager on top 
of a running GNU/Linux system, either "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Requirements.html";))
+            "from source")
+         " or "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html";))
+            "from binaries")
+         "."
+         (br))
+      (p "The highlights for this release include:"
+         (br))
+      (ul (li "The ability to "
+              (em "declare")
+              " the packages that must be present in your profile, and to pass 
that to "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-package.html#profile_002dmanifest";))
+                 "guix package's new --manifest option")
+              ".\n")
+          (li (a (@ (href 
"http://www.gnu.org/software/guix//manual/html_node/Invoking-guix-environment.html";))
+                 "guix environment")
+              " has a new --ad-hoc option to quickly spawn "
+              (em "ad hoc")
+              " development environments.\n")
+          (li "New tools: "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-edit.html";))
+                 "guix edit")
+              " to open a package recipe, "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-size.html";))
+                 "guix size")
+              " to profile the disk usage of a package and its dependencies, "
+              (a (@ (href 
"http://www.gnu.org/software/guix//manual/html_node/Invoking-guix-gc.html";))
+                 "guix gc --verify")
+              " to check the integrity of the store.\n")
+          (li (a (@ (href "http://www.gnu.org/software/guix/packages/";))
+                 "179 new packages")
+              ", notably LibreOffice, Coq, and a Guile-Emacs snapshot.\n")
+          (li "Many "
+              (a (@ (href "http://bugs.gnu.org/guix";))
+                 "bug fixes")
+              " and assorted improvements!\n"))
+      (p "See "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-07/msg00585.html";))
+            
"http://lists.gnu.org/archive/html/guix-devel/2015-07/msg00585.html";)
+         " for details."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-0.9.0-released.sxml 
b/website/posts/gnu-guix-0.9.0-released.sxml
new file mode 100644
index 0000000..8df1cb8
--- /dev/null
+++ b/website/posts/gnu-guix-0.9.0-released.sxml
@@ -0,0 +1,84 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix 0.9.0 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 5 11 2015 3600))
+    (content
+      div
+      (p "We are pleased to announce the next alpha release of GNU Guix, 
version 0.9.0."
+         (br))
+      (p "The release comes with USB installation images to install the 
standalone "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "GuixSD")
+         ", and with tarballs to install the package manager on top of a 
running GNU/Linux system, either "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Requirements.html";))
+            "from source")
+         " or "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html";))
+            "from binaries")
+         "."
+         (br))
+      (p "The highlights for this release include:"
+         (br))
+      (ul (li "Support for "
+              (a (@ (href 
"http://savannah.gnu.org/forum/forum.php?forum_id=8386";))
+                 "automatic container provisioning")
+              " in "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-environment.html";))
+                 "guix environment")
+              ", for development environments, and in "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html";))
+                 "guix system")
+              ", for full GuixSD deployments.\n")
+          (li "A brand new "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Service-Composition.html";))
+                 "service composition framework")
+              " for GuixSD.  It significantly improves extensibility and 
modularity, while providing a framework that makes it easy to reason about how 
system services relate to each other.  This was one of the main design issues 
that needed to be addressed on the road to 1.0.\n")
+          (li "The new "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-graph.html";))
+                 "guix graph")
+              " command can draw package dependency graphs with different 
levels of details.  Likewise, "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html";))
+                 "guix system")
+              " has a new extension-graph command to draw the system's service 
composition graph, and a dmd-graph command to draw the service dependency graph 
as seen by "
+              (a (@ (href "http://www.gnu.org/software/dmd/";))
+                 "GNU dmd")
+              ".\n")
+          (li "The new "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-challenge.html";))
+                 "guix challenge")
+              " command allows users to challenge the authenticity of "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Substitutes.html";))
+                 "substitutes")
+              " provided by a server.  More on that in a future post!\n")
+          (li (a (@ (href "http://www.gnu.org/software/guix/packages/";))
+                 "543 new packages")
+              ", notably Idris and many "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-import.html";))
+                 "imported")
+              " Haskell, Python, and R packages.\n")
+          (li (a (@ (href "http://debbugs.gnu.org/rrd/guix.html";))
+                 "Bug fixes")
+              ", documentation, and other niceties!\n"))
+      (p "See "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00131.html";))
+            
"https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00131.html";)
+         " for details."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-and-guixsd-0.11.0-released.sxml 
b/website/posts/gnu-guix-and-guixsd-0.11.0-released.sxml
new file mode 100644
index 0000000..83eea8b
--- /dev/null
+++ b/website/posts/gnu-guix-and-guixsd-0.11.0-released.sxml
@@ -0,0 +1,84 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU\xa0Guix and GuixSD\xa00.11.0 released")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 3 8 2016 7200))
+    (content
+      div
+      (p "It is a pleasure to announce the new beta release of GNU\xa0Guix and 
GuixSD, version 0.11.0!"
+         (br))
+      (p "The release comes with USB installation images to install the 
standalone "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "GuixSD")
+         ", and with tarballs to install the package manager on top of your 
GNU/Linux distro, either "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Requirements.html";))
+            "from source")
+         " or "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html";))
+            "from binaries")
+         ". "
+         (br))
+      (p "It\x92s been 4 months since the previous release, during which 70 
people contributed code and packages.  The highlights include:"
+         (br))
+      (ul (li "New GuixSD system services, including an "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Scheduled-Job-Execution.html";))
+                 "mcron service")
+              ", a "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Networking-Services.html";))
+                 "Dropbear SSH service")
+              ", and a "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Various-Services.html#Dictionary-Services";))
+                 "Dico dictionary service")
+              ".\n")
+          (li "Infrastructure for "
+              (a (@ (href 
"http://savannah.gnu.org/forum/forum.php?forum_id=8605";))
+                 "whole-system tests")
+              ".\n")
+          (li "Compression support for "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-publish.html";))
+                 "guix publish")
+              ".\n")
+          (li "An Emacs mode to "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Emacs-Package-Locations.html";))
+                 "browse package definition locations")
+              ".\n")
+          (li "GuixSD support for "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Mapped-Devices.html";))
+                 "RAID devices")
+              ".\n")
+          (li (a (@ (href "https://www.gnu.org/software/guix/packages/";))
+                 "484 new packages")
+              ", 678 package updates notably glibc\xa02.23 and 
linux-libre\xa04.7, as well as several "
+              (a (@ (href "https://reproducible-builds.org";))
+                 "bit-reproducibility")
+              " issues fixed\n")
+          (li "Assorted improvements to all the "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Utilities.html";))
+                 "tool set")
+              ", many "
+              (a (@ (href 
"https://debbugs.gnu.org/cgi/pkgreport.cgi?pkg=guix#_4_2_5";))
+                 "bug fixes")
+              " and improvements to the manual!\n"))
+      (p "See "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-08/msg00219.html";))
+            
"https://lists.gnu.org/archive/html/guix-devel/2016-08/msg00219.html";)
+         " for details."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a transactional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-at-fosdem.sxml 
b/website/posts/gnu-guix-at-fosdem.sxml
new file mode 100644
index 0000000..1cca11b
--- /dev/null
+++ b/website/posts/gnu-guix-at-fosdem.sxml
@@ -0,0 +1,15 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix at FOSDEM")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 27 1 2015 3600))
+    (content
+      div
+      (p "Guix will be present at FOSDEM in Brussels, Belgium, with a talk 
entitled "
+         (a (@ (href 
"https://fosdem.org/2015/schedule/event/the_emacs_of_distros/";))
+            "\"The Emacs of Distros\"")
+         " this Saturday, at 3PM, in room H.1302."
+         (br))
+      (p "The talk will give an update on developments in Guix and the Guix 
System Distribution since last year, and will explain and demo the overall 
philosophy behind its design---how Guix seeks to empower users."
+         (br))
+      (p "Hope to see you there!" (br)))))
diff --git a/website/posts/gnu-guix-looks-for-gsoc-students.sxml 
b/website/posts/gnu-guix-looks-for-gsoc-students.sxml
new file mode 100644
index 0000000..6e05753
--- /dev/null
+++ b/website/posts/gnu-guix-looks-for-gsoc-students.sxml
@@ -0,0 +1,32 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix looks for GSoC students")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 27 2 2014 3600))
+    (content
+      div
+      (p "This year again "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "Guix")
+         " participates in the Google Summer of Code under the umbrella of the 
GNU Project."
+         (br))
+      (p "If you are an "
+         (a (@ (href 
"https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2014/help_page#2._Whos_eligible_to_participate_as_a";))
+            "eligible student")
+         ", your contributions to GNU's package manager and to the GNU system 
are welcome!"
+         (br))
+      (p "We have collected "
+         (a (@ (href 
"http://www.gnu.org/software/soc-projects/ideas-2014.html#guix";))
+            "project ideas")
+         " touching a variety of topics.  If you are a free software hacker 
passionate about GNU/Linux packaging, Scheme, functional programming, Emacs, or 
peer-to-peer networking, check out the proposed projects.  The list is far from 
exhaustive, so feel free to bring your own!"
+         (br))
+      (p "Get in touch with us on "
+         (a (@ (href "http://www.gnu.org/software/guix/#mail";))
+            "the mailing list")
+         " and on the #guix IRC channel."
+         (br))
+      (p "Make sure to send your application to Google "
+         (a (@ (href 
"https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2014/help_page#8._When_can_I_apply_for_Google_Summer_of";))
+            "by March 24th")
+         "."
+         (br)))))
diff --git 
a/website/posts/gnu-guix-ported-to-arm-and-other-niceties-of-the-new-year.sxml 
b/website/posts/gnu-guix-ported-to-arm-and-other-niceties-of-the-new-year.sxml
new file mode 100644
index 0000000..7ec301d
--- /dev/null
+++ 
b/website/posts/gnu-guix-ported-to-arm-and-other-niceties-of-the-new-year.sxml
@@ -0,0 +1,50 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU Guix ported to ARM and other niceties of the new year")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 9 1 2015 3600))
+    (content
+      div
+      (p "A new port of GNU Guix to ARM using the \"hard float\" ABI "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/commit/?h=core-updates&id=aa1e19477b2d78884fc500fef497cd6677604d9b";))
+            "has just landed")
+         ", thanks to the hard work of Mark H Weaver and John Darrington.  
This makes it the fourth supported architecture after x86_64, i686, and 
mips64el.  We are looking for ARM hardware donations that would allow us to add 
this architecture to our "
+         (a (@ (href "http://hydra.gnu.org";))
+            "continuous integration build farm")
+         "; your help is welcome!"
+         (br))
+      (p "In other news, there has been work to "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2014-11/msg00670.html";))
+            "improve Linux module handling")
+         ", the addition of "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2014-12/msg00300.html";))
+            "session support")
+         " in the login manager, "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2014-12/msg00413.html";))
+            "more tooling")
+         " in 'guix lint', an "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2014-12/msg00278.html";))
+            "nscd configuration interface")
+         ", many new "
+         (a (@ (href "https://www.gnu.org/software/guix/package-list.html";))
+            "packages")
+         " (Xfce, NumPy, SciPy, and Clang, to name a few), and "
+         (a (@ (href 
"http://debbugs.gnu.org/cgi/pkgreport.cgi?archive=both;package=guix";))
+            "many bug fixes")
+         ".  Getting closer to a new release!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is the functional package manager for the GNU system, and a 
distribution thereof."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, except that packages are defined as 
native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language."
+         (br))
+      (p "At this stage the distribution can be used on an i686 or x86_64 
machine. It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el and armhf."
+         (br)))))
diff --git a/website/posts/gnu-guix-recruits-for-gsoc.sxml 
b/website/posts/gnu-guix-recruits-for-gsoc.sxml
new file mode 100644
index 0000000..6041e9c
--- /dev/null
+++ b/website/posts/gnu-guix-recruits-for-gsoc.sxml
@@ -0,0 +1,52 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GNU Guix recruits for GSoC")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 13 3 2015 3600))
+    (content
+      div
+      (p "This year again "
+         (a (@ (href "http://www.gnu.org/software/guix";))
+            "Guix")
+         " participates in the Google Summer of Code under the umbrella of "
+         (a (@ (href "http://www.gnu.org";))
+            "the GNU Project")
+         "."
+         (br))
+      (p "If you are an "
+         (a (@ (href 
"https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page#2._Whos_eligible_to_participate_as_a";))
+            "eligible student")
+         ", your contributions to GNU's package manager and to the Guix System 
Distribution are welcome!"
+         (br))
+      (p "We have collected "
+         (a (@ (href 
"http://www.gnu.org/software/soc-projects/ideas-2015.html#guix";))
+            "project ideas")
+         " (see also "
+         (a (@ (href 
"http://www.gnu.org/software/soc-projects/ideas-2015.html#dmd";))
+            "related ideas for GNU dmd")
+         ") touching a variety of topics. If you are a free software hacker 
passionate about GNU/Linux packaging, Scheme, functional programming, operating 
system development, or peer-to-peer networking, check out the proposed 
projects. The list is far from exhaustive, so feel free to bring your own!"
+         (br))
+      (p "Get in touch with us on the "
+         (a (@ (href "http://www.gnu.org/software/guix/#mail";))
+            "mailing list")
+         " and on the #guix IRC channel."
+         (br))
+      (p "Make sure to send your application to Google by "
+         (a (@ (href 
"https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page#8._When_can_I_apply_for_Google_Summer_of";))
+            "March 27th")
+         "."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution (GuixSD) is an advanced distribution of the GNU system that 
relies on GNU Guix."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, except that packages are defined as 
native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language."
+         (br))
+      (p "At this stage the Guix System Distribution can be used on an i686 or 
x86_64 machine. It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-talk-at-opentechsummit-berlin-may-14th.sxml 
b/website/posts/gnu-guix-talk-at-opentechsummit-berlin-may-14th.sxml
new file mode 100644
index 0000000..dbee521
--- /dev/null
+++ b/website/posts/gnu-guix-talk-at-opentechsummit-berlin-may-14th.sxml
@@ -0,0 +1,34 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU Guix talk at OpenTechSummit, Berlin, May 14th")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 12 5 2015 7200))
+    (content
+      div
+      (p (a (@ (href "http://elephly.net/";))
+            "Ricardo Wurmus")
+         " will be giving a talk about GNU Guix and GuixSD at the "
+         (a (@ (href "http://opentechsummit.net/";))
+            "OpenTechSummit")
+         " in Berlin, Germany, on May 14th.  The talk will take place at "
+         (a (@ (href "http://opentechsummit.net/Programm.pdf";))
+            "3:15pm in track 2")
+         " and covers topics such as the fundamentals of functional package 
management, software management features with GNU Guix, and system description 
in GuixSD."
+         (br))
+      (p "Ricardo has been making major contributions to Guix over the last 
year and is a long-time free software contributor.  If you are in Berlin area, 
do not miss the talk!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution (GuixSD) is an advanced distribution of the GNU system that 
relies on GNU Guix."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, except that packages are defined as 
native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language."
+         (br))
+      (p "At this stage the Guix System Distribution can be used on an i686 or 
x86_64 machine. It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el and armv7."
+         (br)))))
diff --git 
a/website/posts/gnu-guix-talk-in-boston-ma-(usa)-on-january-20th.sxml 
b/website/posts/gnu-guix-talk-in-boston-ma-(usa)-on-january-20th.sxml
new file mode 100644
index 0000000..c97fc13
--- /dev/null
+++ b/website/posts/gnu-guix-talk-in-boston-ma-(usa)-on-january-20th.sxml
@@ -0,0 +1,43 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU Guix talk in Boston, MA (USA) on January 20th")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 11 1 2016 3600))
+    (content
+      div
+      (p (a (@ (href "https://dthompson.us/";))
+            "David Thompson")
+         " will be giving a "
+         (a (@ (href "http://blu.org/cgi-bin/calendar/2016-jan";))
+            "talk about Guix on January 20th")
+         " at the BLU gathering at MIT in Boston, Massachusetts (USA)."
+         (br))
+      (p (em "David gives an overview of what functional package management is 
all about and how it differs from traditional imperative package management.")
+         (br))
+      (p (em "He also demonstrates some interesting features of Guix such as 
transactional package management, unprivileged package management, 
bit-reproducible builds, and full system configuration management.")
+         (br))
+      (p "The talk will take place in MIT building E-51, room 325."
+         (br))
+      (p "David is a GNU hacker who contributes to Guix and Guile; he 
implemented "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8386";))
+            "container support")
+         " in Guix.  If you are in the Boston area, do not miss him!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-talk-in-rennes-france-november-9th.sxml 
b/website/posts/gnu-guix-talk-in-rennes-france-november-9th.sxml
new file mode 100644
index 0000000..43ee035
--- /dev/null
+++ b/website/posts/gnu-guix-talk-in-rennes-france-november-9th.sxml
@@ -0,0 +1,47 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU Guix talk in Rennes, France, November 9th")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 2 11 2015 3600))
+    (content
+      div
+      (p "Ludovic Courtès will be giving a talk about GNU Guix and GuixSD "
+         (a (@ (href "http://www.agendadulibre.org/events/10182";))
+            "in Rennes, France, on November 9th")
+         ".  The event is organized by the three local free software and 
hacker organizations:"
+         (br))
+      (p (em " \x93It used to work perfectly, then I upgraded something, and 
somehow\x85\x94 Sounds like a déjà vu?  Sometimes feel like software deployment 
is unpredictable?  Dissatisfied with Dockerfiles, Vagrantfiles, and co?  Ever 
wondered if you can trust your compiler or the integrity of those binary 
packages you have downloaded?")
+         (br))
+      (p (em "This talk introduces GNU Guix, a package manager that implements 
the functional package management paradigm pioneered by "
+             (a (@ (href "http://nixos.org/nix";)) "Nix")
+             " to address these issues.  Guix supports transactional upgrades 
and rollbacks, as well as support for multiple software profiles.  In this 
talk, I will introduce functional package management and demonstrate Guix on 
practical use cases.  I will discuss the implications on (bit-)reproducible 
packages and environments, and how this can lead to verifiable binaries.  
Lastly, we will see how this extends to whole-system deployments with GuixSD, 
the Guix System Distribution.")
+         (br))
+      (p "Earlier on that day, a similar talk with a focus on security and 
reproducibility issues will be given at "
+         (a (@ (href "http://www.inria.fr/en/centre/rennes";))
+            "Inria")
+         ", thanks to the support of "
+         (a (@ (href "http://grothoff.org/christian/";))
+            "Christian Grothoff")
+         " and the "
+         (a (@ (href "http://sed.bordeaux.inria.fr/";))
+            "software development department")
+         " in Bordeaux."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-welcomes-four-students-for-gsoc.sxml 
b/website/posts/gnu-guix-welcomes-four-students-for-gsoc.sxml
new file mode 100644
index 0000000..5a82038
--- /dev/null
+++ b/website/posts/gnu-guix-welcomes-four-students-for-gsoc.sxml
@@ -0,0 +1,62 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU\xa0Guix welcomes four students for GSoC")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 24 4 2016 7200))
+    (content
+      div
+      (p "We are glad to announce that four students will join GNU\xa0Guix for 
the 2016 Google Summer of Code (GSoC):"
+         (br))
+      (ul (li "Efraim will hack a "
+              (a (@ (href 
"https://libreplanet.org/wiki/Group:Guix/GSoC-2016#Write_a_Bourne-shell_compiler_front-end_for_Guile";))
+                 "Bourne-shell compiler front-end for Guile")
+              ".  While this may sound a bit crazy (and rather fun :-)), the 
motivation behind this is to help reduce "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Bootstrapping.html";))
+                 "the set of binaries GNU\xa0Guix relies on for bootstrapping")
+              ".\n")
+          (li "Jelle will work on an npm "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-import.html";))
+                 "importer")
+              " and "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Build-Systems.html";))
+                 "build system")
+              " for "
+              (a (@ (href 
"https://libreplanet.org/wiki/Group:Guix/GSoC-2016#NPM_package_importer_and_builder";))
+                 "npm")
+              ".  This will allow users to deploy JavaScript programming 
environments "
+              (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-environment.html";))
+                 "in a controlled fashion")
+              ", integrated with the rest of the system.\n")
+          (li "Manolis, who contributed a GNU/Hurd port of Guix "
+              (a (@ (href 
"https://savannah.gnu.org/forum/forum.php?forum_id=8318";))
+                 "last year")
+              ", will work on "
+              (a (@ (href 
"https://libreplanet.org/wiki/Group:Guix/GSoC-2016#Port_GuixSD_to_GNU.2FHurd";))
+                 "porting GuixSD to GNU/Hurd")
+              ".\n")
+          (li "Mathieu "
+              (a (@ (href 
"https://libreplanet.org/wiki/Group:Guix/GSoC-2016#Rewrite_Hydra_to_be_more_integrated_with_Guix";))
+                 "will write")
+              " a continuous integration tool Ă  la "
+              (a (@ (href "https://nixos.org/hydra/";)) "Hydra")
+              ".  This will improve integration with Guix and will power 
continuous builds of our packages.\n"))
+      (p "All four projects sound exciting to us and we are happy to see 
progress on these fronts.  Happy hacking!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a transactional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gnu-guix-welcomes-three-students-for-gsoc.sxml 
b/website/posts/gnu-guix-welcomes-three-students-for-gsoc.sxml
new file mode 100644
index 0000000..f397939
--- /dev/null
+++ b/website/posts/gnu-guix-welcomes-three-students-for-gsoc.sxml
@@ -0,0 +1,45 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "GNU Guix welcomes three students for GSoC")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 2 5 2015 7200))
+    (content
+      div
+      (p "GNU Guix got 3 slots for the Google Summer of Code (GSoC), as part 
of GNU, which participates as an organization.  So we are pleased to welcome 
three students this summer:"
+         (br))
+      (ul (li "Rohan "
+              (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-04/msg00559.html";))
+                 "will work on a DHCP client")
+              " written in Guile Scheme, with the goal of making it easy to 
integrate it with "
+              (a (@ (href "http://www.gnu.org/software/dmd/";))
+                 "GNU dmd")
+              ";\n")
+          (li "Manolis will be able to "
+              (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-04/msg00560.html";))
+                 "keep working on porting Guix to GNU/Hurd")
+              ", with the eventual goal of being able to run GuixSD on "
+              (a (@ (href "http://hurd.gnu.org";)) "GNU/Hurd")
+              ";\n")
+          (li "RĂ©mi "
+              (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-04/msg00562.html";))
+                 "will work on peer-to-peer software distribution")
+              " over "
+              (a (@ (href "http://gnunet.org/";)) "GNUnet")
+              ".\n"))
+      (p "All three projects have very exciting prospects and we are thrilled 
to get them started!  We are also glad that this allows us to strengthen ties 
with several other GNU packages."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution (GuixSD) is an advanced distribution of the GNU system that 
relies on GNU Guix."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, except that packages are defined as 
native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language."
+         (br))
+      (p "At this stage the Guix System Distribution can be used on an i686 or 
x86_64 machine. It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/gsoc-update.sxml b/website/posts/gsoc-update.sxml
new file mode 100644
index 0000000..30a7cd5
--- /dev/null
+++ b/website/posts/gsoc-update.sxml
@@ -0,0 +1,53 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GSoC update")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 19 7 2015 7200))
+    (content
+      div
+      (p "This year Guix was lucky to have "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8264";))
+            "3 GSoC projects")
+         ", and they have made rather good progress so far:"
+         (br))
+      (ul (li "Manolis successfully completed the recipes to get a "
+              (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-hurd";))
+                 "cross-compilation toolchain to GNU/Hurd")
+              ", with part of the work already in the main branch.  This 
allowed him to produce statically-linked bootstrap binaries (stumbling upon 
nasty ld.so issues on the way.)  Manolis is now "
+              (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-07/msg00029.html";))
+                 "running Guix and building packages natively")
+              " on GNU/Hurd, which will constitute a large part of the 
remainder of his project.\n")
+          (li "RĂ©mi has written "
+              (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix/gnunet.git/tree/";))
+                 "Guile bindings")
+              " to crucial parts of the "
+              (a (@ (href "https://gnunet.org";)) "GNUnet")
+              " API, including the file sharing API.  This will allow him to 
move to the next step: Writing "
+              (a (@ (href 
"http://lists.gnu.org/archive/html/guix-devel/2015-07/msg00033.html";))
+                 "tools to publish and retrieve")
+              " Guix "
+              (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Substitutes.html";))
+                 "substitutes")
+              " (pre-built binaries.)\n")
+          (li "Rohan laid the foundations of the "
+              (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix/dhcp.git/tree/";))
+                 "DHCP client")
+              ".  The current code can send packets on all the configured 
network interfaces.  Rohan hopes to have working code to establish leases in 
the following weeks.\n"))
+      (p "Happy hacking!" (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/guix--gsoc.sxml b/website/posts/guix--gsoc.sxml
new file mode 100644
index 0000000..079bf9a
--- /dev/null
+++ b/website/posts/guix--gsoc.sxml
@@ -0,0 +1,29 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Guix & GSoC")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 12 4 2013 7200))
+    (content
+      div
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "Guix")
+         " participates in the Google Summer of Code under GNU's umbrella.  If 
you are "
+         (a (@ (href 
"https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page";))
+            "an eligible student")
+         ", your contributions to GNU's package manager and distribution are 
welcome!"
+         (br))
+      (p "We have collected "
+         (a (@ (href 
"http://www.gnu.org/software/soc-projects/ideas-2013.html#guix";))
+            "project ideas")
+         ", some connected with other projects such as GNUnet and Emacs.  Come 
and discuss them on "
+         (a (@ (href "http://www.gnu.org/software/guix/#mail";))
+            "the mailing list")
+         " and on the #guix channel of the Freenode IRC network."
+         (br))
+      (p "The project list if far from exhaustive, so feel free to bring your 
own!"
+         (br))
+      (p "Make sure to "
+         (a (@ (href 
"https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page#8._When_can_I_apply_for_Google_Summer_of";))
+            "send your application to Google by May 3rd")
+         "."
+         (br)))))
diff --git a/website/posts/guix-at-libreplanet-2016.sxml 
b/website/posts/guix-at-libreplanet-2016.sxml
new file mode 100644
index 0000000..62d41fa
--- /dev/null
+++ b/website/posts/guix-at-libreplanet-2016.sxml
@@ -0,0 +1,40 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Guix at LibrePlanet 2016")
+    (author . "David Thompson")
+    (date unquote (make-date 0 0 0 0 15 3 2016 3600))
+    (content
+      div
+      (p "GNU hackers Christopher Allan Webber (whom you may know from the "
+         (a (@ (href "http://mediagoblin.org";))
+            "GNU MediaGoblin project")
+         ") and David Thompson will be co-presenting "
+         (a (@ (href 
"https://libreplanet.org/2016/program/#day-1-timeslot-4-session-2";))
+            "\"Solving the Deployment Crisis with Guix\"")
+         " at "
+         (a (@ (href "https://libreplanet.org/2016";))
+            "LibrePlanet 2016")
+         " this Saturday, March 19th.  Chris and David will be focusing on the 
hardships and obstacles that users face when trying to exercise their software 
freedom by self-hosting web applications, offering Guix as a solution.  The 
presentation will be held from 10:55 AM to 11:40 AM in room 32-141 of the MIT 
Stata Center in Cambridge, Massachusetts."
+         (br))
+      (h4 "About LibrePlanet")
+      (p (a (@ (href "https://libreplanet.org";))
+            "LibrePlanet")
+         " is an annual conference run by the FSF and MIT's Student 
Information Processing Board for free software users, developers, and activists 
to gather and share ideas.  Admission is gratis for FSF associate members."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/guix-at-openbio-codefest-2014.sxml 
b/website/posts/guix-at-openbio-codefest-2014.sxml
new file mode 100644
index 0000000..1d320d3
--- /dev/null
+++ b/website/posts/guix-at-openbio-codefest-2014.sxml
@@ -0,0 +1,17 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Guix at OpenBio Codefest 2014")
+    (author . "David Thompson")
+    (date unquote (make-date 0 0 0 0 13 7 2014 7200))
+    (content
+      div
+      (p "On Wednesday, July 9th, David Thompson gave a brief introduction to 
GNU Guix at the "
+         (a (@ (href "http://www.open-bio.org/wiki/Codefest_2014";))
+            "Open Bioinformatics Codefest 2014 hackathon")
+         ".  The objective of the Codefest is to give developers of 
bioinformatics software a chance to be fully focused on their projects for a 
few days and work in person.  These developers are concerned with the 
reliability and reproducibility of their operating systems, and the limitations 
of their package management utilities."
+         (br))
+      (p "See the "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix/maintenance.git/plain/talks/codefest-2014/guix-codefest-2014.pdf";))
+            "slides on-line")
+         "."
+         (br)))))
diff --git a/website/posts/guix-at-the-2014-gnu-hackers-meeting.sxml 
b/website/posts/guix-at-the-2014-gnu-hackers-meeting.sxml
new file mode 100644
index 0000000..f30f06c
--- /dev/null
+++ b/website/posts/guix-at-the-2014-gnu-hackers-meeting.sxml
@@ -0,0 +1,29 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Guix at the 2014 GNU Hackers Meeting")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 11 10 2014 7200))
+    (content
+      div
+      (p "The Guix talk of this summer's GNU Hackers Meeting is now "
+         (a (@ (href "http://www.gnu.org/software/guix/#talks";))
+            "available on-line")
+         "."
+         (br))
+      (p "It gives an introduction to Guix from a user's viewpoint, and covers 
topics such as features for GNU maintainers, programming interfaces, 
declarative operating system configuration, status of the GNU/Hurd port, and 
the new Emacs and Web interfaces---with a bunch of demos."
+         (br))
+      (p "Do not miss "
+         (a (@ (href "http://audio-video.gnu.org/video/ghm2014/";))
+            "other fine talks from the GHM")
+         ".  Many thanks to everyone who took care of the video recordings."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is the functional package manager for the GNU system, and a 
distribution thereof."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, with Guile Scheme programming 
interfaces."
+         (br))
+      (p "At this stage the distribution can be used on an i686 or x86_64 
machine.  It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el."
+         (br)))))
diff --git a/website/posts/guix-at-the-european-lisp-symposium.sxml 
b/website/posts/guix-at-the-european-lisp-symposium.sxml
new file mode 100644
index 0000000..a3f8b74
--- /dev/null
+++ b/website/posts/guix-at-the-european-lisp-symposium.sxml
@@ -0,0 +1,15 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Guix at the European Lisp Symposium")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 21 5 2013 7200))
+    (content
+      div
+      (p "A "
+         (a (@ (href "http://arxiv.org/abs/1305.4584";))
+            "paper")
+         " presenting the design of Guix's Scheme API and packaging language 
has been accepted for the "
+         (a (@ (href 
"http://www-sop.inria.fr/members/Manuel.Serrano/conferences/els13.html";))
+            "2013 European Lisp Symposium (ELS)")
+         ".  ELS will take place in Madrid on June 3-4."
+         (br)))))
diff --git a/website/posts/guix-gets-cross-compilation-support.sxml 
b/website/posts/guix-gets-cross-compilation-support.sxml
new file mode 100644
index 0000000..a2b1325
--- /dev/null
+++ b/website/posts/guix-gets-cross-compilation-support.sxml
@@ -0,0 +1,21 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Guix gets cross-compilation support")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 26 6 2013 7200))
+    (content
+      div
+      (p (a (@ (href 
"http://lists.gnu.org/archive/html/bug-guix/2013-05/msg00114.html";))
+            "Recently")
+         ", "
+         (a (@ (href "http://www.gnu.org/software/guix/";))
+            "Guix")
+         " gained cross-compilation support.  What this means is that existing 
package definitions can be reused to cross compile packages.  So for instance 
one can cross-compile Guile and its dependencies for MIPS with:"
+         (br))
+      (div (@ (class "example"))
+           (pre "guix build --target=mips64el-linux-gnu guile "))
+      (p "This may sound like an unexpected feature for a \"package manager\". 
 In fact, it is particularly useful when porting the GNU system distribution to 
new platforms.  The distribution being self-contained, it is bootstrapped from 
a small set of pre-built binaries.  With cross-compilation support, porting to 
a new platform boils down to "
+         (a (@ (href 
"http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00147.html";))
+            "cross-compiling the bootstrap binaries")
+         " for that platform."
+         (br)))))
diff --git 
a/website/posts/guix-starts-fundraising-campaign-with-support-from-the-fsf.sxml 
b/website/posts/guix-starts-fundraising-campaign-with-support-from-the-fsf.sxml
new file mode 100644
index 0000000..7958a8d
--- /dev/null
+++ 
b/website/posts/guix-starts-fundraising-campaign-with-support-from-the-fsf.sxml
@@ -0,0 +1,58 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Guix starts fundraising campaign with support from the FSF")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 16 12 2015 3600))
+    (content
+      div
+      (p "The GNU\xa0Guix project is glad to announce its first fundraising 
campaign, supported by the Free Software Foundation (FSF).  As the FSF "
+         (a (@ (href 
"https://www.fsf.org/blogs/community/fsf-announces-support-for-gnu-guix";))
+            "announced today")
+         ", the campaign\x92s primary goal is to help increase the capacity of 
the project\x92s build farm.  We believe Guix offers a great tool set to 
increase the freedom and autonomy of computer users, and we are excited that 
the FSF supports the project!"
+         (br))
+      (p "Until now, the build farm behind hydra.gnu.org had been working on 
hardware and hosting "
+         (a (@ (href "https://www.gnu.org/software/guix/donate/";))
+            "generously provided")
+         " by several organizations and individuals\x97thank you!  To cope 
with the growing number of "
+         (a (@ (href "https://www.gnu.org/software/guix/packages/";))
+            "packages")
+         " and users, we felt that the time has come to call to the community 
to strengthen the project\x92s infrastructure.  Our first action will be to 
change the build farm\x92s front-end, which orchestrates builds and "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Substitutes.html";))
+            "distributes binaries")
+         ".  Next we want to add more build machines, with two goals in mind: 
being able to quickly test changes that trigger lots of rebuilds, and being 
able to identify "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8407";))
+            "non-verifiable builds")
+         "."
+         (br))
+      (p "Donations can be made on the "
+         (a (@ (href 
"https://my.fsf.org/civicrm/contribute/transact?reset=1&id=50";))
+            "FSF-hosted page for the campaign")
+         ".  10% of your contribution will also go to help the FSF "
+         (a (@ (href "https://fsf.org/appeal";))
+            "meet its current fundraising goal")
+         "."
+         (br))
+      (p "GNU\xa0Guix also welcomes contributions, both technical and 
non-technical: testing, adding new packages, writing code, translating messages 
and package descriptions to your native language, helping with Web design, and 
more.  Check out "
+         (a (@ (href "http://www.gnu.org/software/guix/contribute/";))
+            "the contribution page")
+         "!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/guix-tox-talk-at-pyconfr-october-17th.sxml 
b/website/posts/guix-tox-talk-at-pyconfr-october-17th.sxml
new file mode 100644
index 0000000..a439ebf
--- /dev/null
+++ b/website/posts/guix-tox-talk-at-pyconfr-october-17th.sxml
@@ -0,0 +1,41 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Guix-Tox talk at PyConFR, October 17th")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 9 10 2015 7200))
+    (content
+      div
+      (p "Bonjour ! Cyril Roelandt of Red Hat who works on OpenStack will be "
+         (a (@ (href "http://www.pycon.fr/2015/schedule/presentation/47/";))
+            "giving a talk")
+         " about Guix-Tox at PyConFR in Pau, France, on October 17th."
+         (br))
+      (p (a (@ (href "https://git.framasoft.org/Steap/guix-tox";))
+            "Guix-Tox")
+         " is a young variant of the "
+         (a (@ (href "http://tox.testrun.org/";)) "Tox")
+         " \"virtualenv\" management tool for Python that uses "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-environment.html";))
+            "guix environment")
+         " as its back-end.  In essence, while Tox restricts itself to 
building pure Python environments, Guix-Tox takes advantages of Guix to build 
complete environments, including dependencies that are outside Tox's control, 
thereby improving environment reproducibility.  Cyril will demonstrate 
practical use cases with OpenStack."
+         (br))
+      (p "If you're around, do not miss the talk.  If you're a Pythonista, you 
can help by providing feedback on Guix-Tox!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/guixsd-system-tests.sxml 
b/website/posts/guixsd-system-tests.sxml
new file mode 100644
index 0000000..15146b6
--- /dev/null
+++ b/website/posts/guixsd-system-tests.sxml
@@ -0,0 +1,172 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "GuixSD system tests")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 28 6 2016 7200))
+    (content
+      div
+      (p "From its inception, Guix has had a thorough test suite\x97something 
that\x92s not only reassuring, but also the thing that allows for fearless 
evolution of the code.  That we didn\x92t have this safety net when hacking on 
the whole operating system, GuixSD, made it uncomfortable and more risky.  We 
are now addressing the problem with the introduction of "
+         (em "system tests")
+         ", closing one of the major roadblocks towards 1.0."
+         (br))
+      (p "Before going into details, let me recap the sorts of testing that 
already occurred in Guix land."
+         (br))
+      (h4 "Unit tests")
+      (p "Guix\x92s "
+         (a (@ (href "http://git.savannah.gnu.org/cgit/guix.git/tree/tests";))
+            "test suite")
+         " currently contains almost 600 "
+         (em "unit tests")
+         ".  Each one of these stresses one particular function or subset of 
the functionality of Guix.  This covers core package management functionality 
such as package builds, utility modules such as monads or the public key 
infrastructure (PKI) used for authenticating binaries, maintenance tools such 
as "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-lint.html";))
+            "lint")
+         " and the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-import.html";))
+            "importers")
+         ", as well as the command-line interface."
+         (br))
+      (p "Since Guix provides Scheme modules for use "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/G_002dExpressions.html";))
+            "both in the package management front-end and on the \x93build 
side\x94")
+         ", the latter is also tested.  This includes part of the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Build-Systems.html";))
+            "build systems")
+         ", and helpers like our "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/gremlin.scm#n264";))
+            "ELF validation module")
+         "."
+         (br))
+      (h4 "Package tests")
+      (p "Then come the software packages that Guix ships.  All of the 
packages in the distro are under "
+         (a (@ (href "https://hydra.gnu.org/jobset/gnu/master";))
+            "continuous integration")
+         " on the 4 supported architectures (32-bit and 64-bit Intel 
compatible, as well as MIPS64 and ARMv7.)  Our build farm serves the resulting 
binaries, which users can choose to download as "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Substitutes.html";))
+            "substitutes for local builds")
+         ".  Our build server, which currently runs an instance of "
+         (a (@ (href "https://nixos.org/hydra/";)) "Hydra")
+         ", always shows the number of succeeding/failing builds on its 
dashboard.  That way, breakage introduced by changes in the package collection 
is always rapidly detected.  This is a direct benefit of the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Introduction.html";))
+            "functional packaging model")
+         "."
+         (br))
+      (p "Additionally, our policy is to always run each package\x92s test 
suite (typically \x93make check\x94) as part of its build process, unless there 
is a serious technical obstacle to doing that.  That way, we can, and do catch 
integration issues, incompatibilities, and plain bugs before they hit users."
+         (br))
+      (h4 "System tests")
+      (p "So far, so good.  Now, what about GuixSD itself?  GuixSD did not 
have an automated test suite until now.  What it did have, though, is the 
ability to instantiate an operating system in a virtual machine (VM) or in a 
container.  You would write your "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html";))
+            "operating system declaration")
+         " in a file, then run, say:"
+         (br))
+      (div (@ (class "example"))
+           (pre "guix system vm my-config.scm "))
+      (p "This "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html#Invoking-guix-system";))
+            "gives you a script to launch a VM")
+         " running an instance of the OS declared in \x91my-config.scm\x92.  
Already pretty convenient!  And indeed, even more so back in the days when we 
were eating a fair amount of dog food.  In fact, that\x92s how we ate our "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=7506";))
+            "first")
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=7737";))
+            "dog food dishes")
+         ", and the VM infrastructure was the fork and knife that made it more 
tolerable."
+         (br))
+      (p "So what could we test exactly?  Roughly, we want to test that the 
instantiated system behaves according to the source \x91operating-system\x92 
declaration: that user accounts are all there, that system services are running 
as expected, that all of the configuration is taken into account."
+         (br))
+      (p "To do that, we need to run the system under test in a VM, but we 
also need to instrument it.  We use "
+         (a (@ (href "http://qemu.org";)) "QEMU")
+         " to run our VMs, and QEMU along with the Linux virtio-serial module 
nicely supports communication between the guest operating system and the host, 
a strategy also used by "
+         (a (@ (href 
"https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/test-driver/Machine.pm";))
+            "NixOS\x92 test driver")
+         ".  Concretely, we define a "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/build/marionette.scm";))
+            "\x93marionette\x94")
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/tests.scm#n129";))
+            "service")
+         ", which hooks a Guile "
+         (a (@ (href 
"https://www.gnu.org/software/guile/manual/html_node/The-REPL.html";))
+            "read-eval-print loop")
+         " (REPL) inside the guest.  This allows the host to evaluate 
arbitrary code in the guest VM."
+         (br))
+      (p "Now we can write build processes ("
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Derivations.html";))
+            "aka. \x93derivations\x94")
+         ") that will:"
+         (br))
+      (ol (li "instantiate an instrumented variant of the operating system 
configuration we want to test in a VM image;\n")
+          (li "spawn the VM, run a series of tests on the guest OS, and return 
the test results.\n"))
+      (p "Thus, a system test to make sure the "
+         (a (@ (href 
"https://www.gnu.org/software/guile/manual/html_node/System-Identification.html#index-scm_005funame";))
+            "\x91uname\x92")
+         " system call returns something that matches the OS declaration looks 
like this:"
+         (br))
+      (div (@ (class "example"))
+           (pre "(define (run-test)\n  (define os\n    ;; The declaration of 
the OS we want to instantiate and test.\n    ;; Calling 
'marionette-operating-system' instruments it.\n    
(marionette-operating-system\n     (operating-system\n       (host-name 
\"komputilo\")\n       (timezone \"Europe/Berlin\")\n       (locale 
\"en_US.UTF-8\")\n\n       (bootloader (grub-configuration (device 
\"/dev/sdX\")))\n       (file-systems %base-file-systems))))\n\n  ;; Compute 
the script to run OS in  [...]
+      (p "There are interesting things going on here.  First, while this is 
all Scheme code, there are in fact three tiers or strata of code at play here: 
the code that produces the OS declaration and the derivation, the build code of 
that derivation\x97the test\x97embodied in a "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/G_002dExpressions.html";))
+            "g-expression")
+         ", and code sent from the host to the guest VM via 
\x91marionette-eval\x92."
+         (br))
+      (p "Using Scheme all the way means we can share code, use the right 
tools such as the "
+         (a (@ (href "http://srfi.schemers.org/srfi-64/srfi-64.html";))
+            "SRFI-64 test framework")
+         " here, pass values from one tier to another, and so on.  And of 
course, being a full-blown language rather than shell scripts or similar means 
we have a rich and semantically-clear interface at our fingertips: we can 
directly access the data structures that matter rather than grepping the output 
of high-level commands.  As an example, we can directly query the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Shepherd-Services.html";))
+            "system service manager")
+         " right "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/herd.scm";))
+            "from Scheme")
+         ", which is often useful in system tests."
+         (br))
+      (h4 "Status")
+      (p "Guix now includes the test infrastructure described above; running 
\x93make check-system\x94 runs all the currently defined tests.  Currently we 
have "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/tests/base.scm";))
+            "tests for basic functionality")
+         ".  This includes making sure that all the system services declared 
are available and running.  We have tests for specific system services such as 
the "
+         (a (@ (href "https://www.gnu.org/software/mcron/";))
+            "mcron")
+         " job scheduling daemon\x97inspired by your parents\x92 cron, but 
with a powerful Scheme interface\x97and "
+         (a (@ (href "http://avahi.org/";)) "Avahi")
+         " and its "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Name-Service-Switch.html";))
+            "name service switch")
+         " (NSS) integration."
+         (br))
+      (p "Last but not least, we have "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/tests/install.scm";))
+            "tests")
+         " of the full "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/System-Installation.html";))
+            "GuixSD installation procedure")
+         ", which turned out to be "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00815.html";))
+            "more involved")
+         " than the other tests.  This works by running the GuixSD 
installation image in a VM, using another VM image as the target installation 
media, and finally booting the newly-installed system."
+         (br))
+      (p "All the tests are automatically run on our build farm (see "
+         (a (@ (href 
"https://hydra.gnu.org/job/gnu/master/test.basic.x86_64-linux";))
+            "here")
+         ", "
+         (a (@ (href 
"https://hydra.gnu.org/job/gnu/master/test.installed-os.x86_64-linux";))
+            "here")
+         ", or "
+         (a (@ (href 
"https://hydra.gnu.org/job/gnu/master/test.mcron.i686-linux";))
+            "there")
+         "), which provides quick feedback.  One step closer to 1.0!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a transactional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git 
a/website/posts/introducing-guix-a-package-manager-and-distro-for-gnu.sxml 
b/website/posts/introducing-guix-a-package-manager-and-distro-for-gnu.sxml
new file mode 100644
index 0000000..b85d770
--- /dev/null
+++ b/website/posts/introducing-guix-a-package-manager-and-distro-for-gnu.sxml
@@ -0,0 +1,22 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Introducing Guix, a package manager and distro for GNU")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 22 11 2012 3600))
+    (content
+      div
+      (p (a (@ (href "http://www.gnu.org/software/guix/";))
+            "GNU Guix")
+         " is an on-going project to build a purely functional package manager 
and free software distribution of the GNU system."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection."
+         (br))
+      (p "Guix is approaching its first alpha release.  It comes with a small 
and growing, self-contained user-land software distribution."
+         (br))
+      (p "The "
+         (a (@ (href "http://git.savannah.gnu.org/cgit/guix.git/tree/ROADMAP";))
+            "road map")
+         " details the current plan.  Let us know what you think, and join the 
fun!"
+         (br)))))
diff --git a/website/posts/join-gnu-guix-for-gsoc.sxml 
b/website/posts/join-gnu-guix-for-gsoc.sxml
new file mode 100644
index 0000000..7c8ae9b
--- /dev/null
+++ b/website/posts/join-gnu-guix-for-gsoc.sxml
@@ -0,0 +1,56 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Join GNU\xa0Guix for GSoC")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 8 3 2016 3600))
+    (content
+      div
+      (p "This year again the "
+         (a (@ (href "https://www.gnu.org/";))
+            "GNU Project")
+         " is a mentoring organization for the "
+         (a (@ (href "https://summerofcode.withgoogle.com/";))
+            "Google Summer of Code")
+         " (GSoC), and "
+         (a (@ (href "https://www.gnu.org/software/guix";))
+            "Guix")
+         " is participating under GNU\x92s umbrella."
+         (br))
+      (p "We have collected project ideas for "
+         (a (@ (href "https://libreplanet.org/wiki/Group:Guix/GSoC-2016";))
+            "Guix, GuixSD")
+         ", and "
+         (a (@ (href 
"https://libreplanet.org/wiki/Group:Guix/GSoC-2016#Project_ideas_for_the_GNU_Shepherd";))
+            "the GNU Shepherd")
+         " covering a wide range of topics.  If you are passionate about 
computing freedom, Scheme, functional programming, or operating system 
development, check out the proposed projects.  The list is far from exhaustive, 
so feel free to bring your own!"
+         (br))
+      (p "Get in touch with us on the "
+         (a (@ (href "https://www.gnu.org/software/guix/about/#contact";))
+            "mailing lists")
+         " or #guix on the Freenode IRC network."
+         (br))
+      (p "If you are an "
+         (a (@ (href 
"https://developers.google.com/open-source/gsoc/faq#can_i_participate_in_gsoc_as_both_a_mentor_and_a_student";))
+            "eligible student")
+         ", make sure to apply "
+         (a (@ (href 
"https://developers.google.com/open-source/gsoc/timeline";))
+            "by March 25th")
+         "."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "https://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"https://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "https://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git 
a/website/posts/join-guix-for-an-on-line-hackathon-on-sep.-28-29.sxml 
b/website/posts/join-guix-for-an-on-line-hackathon-on-sep.-28-29.sxml
new file mode 100644
index 0000000..3f9c498
--- /dev/null
+++ b/website/posts/join-guix-for-an-on-line-hackathon-on-sep.-28-29.sxml
@@ -0,0 +1,28 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Join Guix for an on-line hackathon on Sep. 28-29!")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 18 9 2013 7200))
+    (content
+      div
+      (p "GNU Guix "
+         (a (@ (href "http://www.gnu.org/gnu30/celebration";))
+            "joins other projects")
+         " in celebrating "
+         (a (@ (href "http://www.gnu.org/gnu30/";))
+            "GNU's 30th anniversary")
+         "."
+         (br))
+      (p "Join the #guix channel of the Freenode IRC network for a Guix 
hackathon on Sep. 28-29!"
+         (br))
+      (p "Tasks will include "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/guix.html#Defining-Packages";))
+            "packaging")
+         " your favorite software, hunting "
+         (a (@ (href "http://bugs.gnu.org/guix";)) "bugs")
+         ", and improving stand-alone builds of the Guix-based GNU system.  
This is accessible to anyone with experience with GNU/Linux packages; people 
with experience in "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " may find additional things to work on."
+         (br))
+      (p "Happy hacking!" (br)))))
diff --git a/website/posts/join-us-for-a-guix-hackathon-on-sep.-27-28.sxml 
b/website/posts/join-us-for-a-guix-hackathon-on-sep.-27-28.sxml
new file mode 100644
index 0000000..47c4e7c
--- /dev/null
+++ b/website/posts/join-us-for-a-guix-hackathon-on-sep.-27-28.sxml
@@ -0,0 +1,35 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Join us for a Guix hackathon on Sep. 27-28!")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 16 9 2014 7200))
+    (content
+      div
+      (p "The GNU Guix project is organizing a hackathon on September 27th and 
28th, 2014.  The hackathon will take place primarily on-line, on the #guix IRC 
channel on Freenode.  We have started collecting a "
+         (a (@ (href 
"http://libreplanet.org/wiki/Group:Guix/Hackathon-09-2014";))
+            "list of hacking ideas")
+         ".  Feel free to "
+         (a (@ (href "http://www.gnu.org/software/guix/#contact";))
+            "stop by")
+         " and make more suggestions!"
+         (br))
+      (p "The hackathon is accessible to anyone with experience in GNU/Linux 
packaging or systems hacking.  Scheme programmers will find additional things 
to work on in the tool set.  Finally, we will also be welcoming newcomers and 
helping them get started."
+         (br))
+      (p "This is a followup to "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=7720";))
+            "last year's hackathon")
+         ", organized for "
+         (a (@ (href "http://www.gnu.org/gnu/initial-announcement.html";))
+            "GNU's 30th anniversary")
+         "."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is the functional package manager for the GNU system, and a 
distribution thereof."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  It also offers a declarative 
approach to operating system configuration management.  Guix uses low-level 
mechanisms from the Nix package manager, with Guile Scheme programming 
interfaces."
+         (br))
+      (p "At this stage the distribution can be used on an i686 or x86_64 
machine.  It is also possible to use Guix on top of an already installed 
GNU/Linux system, including on mips64el."
+         (br)))))
diff --git a/website/posts/meet-guix-at-fosdem.sxml 
b/website/posts/meet-guix-at-fosdem.sxml
new file mode 100644
index 0000000..446e05f
--- /dev/null
+++ b/website/posts/meet-guix-at-fosdem.sxml
@@ -0,0 +1,66 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Meet Guix at FOSDEM!")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 22 1 2016 3600))
+    (content
+      div
+      (p "One week to "
+         (a (@ (href "https://fosdem.org/2016";)) "FOSDEM")
+         "!  This year, there will be no less than six Guix-related talks.  
This and the fact that we are addressing different communities is exciting."
+         (br))
+      (p "First, on Saturday morning, in the "
+         (a (@ (href "https://fosdem.org/2016/schedule/track/gnu_guile/";))
+            "GNU Guile track")
+         " (room K.3.201):"
+         (br))
+      (ul (li (a (@ (href "https://fosdem.org/2016/schedule/event/guixhurd/";))
+                 "Adding GNU/Hurd support to GNU Guix")
+              " (Manolis Ragkousis)\n")
+          (li (a (@ (href "https://fosdem.org/2016/schedule/event/guix/";))
+                 "A gentle introduction to functional package management with 
GNU Guix")
+              " (Ricardo Wurmus)\n")
+          (li (a (@ (href 
"https://fosdem.org/2016/schedule/event/guixdistro/";))
+                 "Your distro is a Scheme library")
+              " (Ludovic Courtès)\n")
+          (li (a (@ (href 
"https://fosdem.org/2016/schedule/event/guixmodules/";))
+                 "Foreign packages in GNU Guix")
+              " (Pjotr Prins)\n"))
+      (p "On Saturday afternoon:" (br))
+      (ul (li (a (@ (href 
"https://fosdem.org/2016/schedule/event/deployments_with_gnu_guix/";))
+                 "Reproducible and Customizable Deployments with GNU Guix")
+              " (Ludovic Courtès, "
+              (a (@ (href 
"https://fosdem.org/2016/schedule/track/distributions/";))
+                 "distributions track")
+              ", room K.4.201)\n")
+          (li (a (@ (href "https://fosdem.org/2016/schedule/event/guix_tox/";))
+                 "Guix-tox, a functional version of tox")
+              " (Cyril Roelandt, "
+              (a (@ (href "https://fosdem.org/2016/schedule/track/python/";))
+                 "Python track")
+              ", room UD2.218A)\n"))
+      (p "On Sunday noon:" (br))
+      (ul (li (a (@ (href 
"https://fosdem.org/2016/schedule/event/hpc_bigdata_gnu_guix/";))
+                 "Reproducible and User-Controlled Package Management in HPC 
with GNU Guix")
+              " (Ricardo Wurmus, "
+              (a (@ (href 
"https://fosdem.org/2016/schedule/track/hpc,_big_data_and_data_science/";))
+                 "HPC track")
+              ", room AW1.126)\n"))
+      (p "See you there!" (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/one-week-to-fosdem.sxml 
b/website/posts/one-week-to-fosdem.sxml
new file mode 100644
index 0000000..18b61e0
--- /dev/null
+++ b/website/posts/one-week-to-fosdem.sxml
@@ -0,0 +1,17 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "One week to FOSDEM!")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 25 1 2014 3600))
+    (content
+      div
+      (p (a (@ (href "https://fosdem.org/2014/";))
+            "FOSDEM")
+         " takes place next week.  We'll be giving a "
+         (a (@ (href "https://fosdem.org/2014/schedule/event/gnuguix/";))
+            "talk")
+         " about Guix and the GNU system on Sunday at noon, in the "
+         (a (@ (href "https://fosdem.org/2014/schedule/track/distributions/";))
+            "distributions devroom")
+         ".  Interested parties, freedom supporters, GNU hackers, and Schemers 
all alike are welcome to join in!"
+         (br)))))
diff --git a/website/posts/porting-guix-and-guixsd.sxml 
b/website/posts/porting-guix-and-guixsd.sxml
new file mode 100644
index 0000000..0768c28
--- /dev/null
+++ b/website/posts/porting-guix-and-guixsd.sxml
@@ -0,0 +1,56 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Porting Guix and GuixSD")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 7 9 2015 7200))
+    (content
+      div
+      (p "Quite a lot has happened lately when it comes to porting Guix and 
GuixSD to other systems."
+         (br))
+      (p "A few weeks ago, Manolis Ragkousis "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00379.html";))
+            "announced")
+         " the completion of the GSoC project whose purpose was to port Guix 
to the Hurd.  The system distribution, GuixSD, cannot run GNU/Hurd yet, but the 
package manager itself can both cross-compile from GNU/Linux to GNU/Hurd and 
build natively on GNU/Hurd.  The work of Manolis is being gradually merged in 
the main branch."
+         (br))
+      (p "More recently, Mark H Weaver "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00500.html";))
+            "posted")
+         " a series of patches porting GuixSD to MIPS (Lemote Yeeloong), 
making it the first GuixSD port to non-Intel-compatible hardware (the package 
manager itself has supported mips64el "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=7766";))
+            "for two years")
+         " already.)  By removing several platform-specific assumptions, this 
work paves the way for future ports."
+         (br))
+      (p "Lastly, we are glad to report the "
+         (a (@ (href "http://www.gnu.org/software/guix/donate/";))
+            "donation")
+         " of "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-09/msg00134.html";))
+            "two ARM machines")
+         " for our build farm.  They will allow us to continuously test the 
ARM port, which was completed "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8175";))
+            "earlier this year")
+         ", and to publish pre-built binaries on our "
+         (a (@ (href "http://hydra.gnu.org/jobset/gnu/master";))
+            "build farm")
+         ".  We are grateful to the donors whose contribution makes a big 
difference for the development of Guix on ARM.  If you would like to help out 
with hardware and/or hosting, "
+         (a (@ (href "http://www.gnu.org/software/guix/donate/";))
+            "please get in touch")
+         "!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git 
a/website/posts/reproducible-and-user-controlled-software-environments-in-hpc-with-guix.sxml
 
b/website/posts/reproducible-and-user-controlled-software-environments-in-hpc-with-guix.sxml
new file mode 100644
index 0000000..66777d0
--- /dev/null
+++ 
b/website/posts/reproducible-and-user-controlled-software-environments-in-hpc-with-guix.sxml
@@ -0,0 +1,41 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Reproducible and User-Controlled Software Environments in HPC with 
Guix")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 1 7 2015 7200))
+    (content
+      div
+      (p "Our paper entitled "
+         (a (@ (href "https://hal.inria.fr/hal-01161771/en";))
+            "Reproducible and User-Controlled Software Environments in HPC 
with Guix")
+         " was accepted for "
+         (a (@ (href "http://reppar.org/";)) "RepPar")
+         ", a workshop on reproducibility in parallel computing:"
+         (br))
+      (p "  Support teams of high-performance computing (HPC) systems often 
find themselves between a rock and a hard place: on one hand, they 
understandably administrate these large systems in a conservative way, but on 
the other hand, they try to satisfy their users by deploying up-to-date tool 
chains as well as libraries and scientific software. HPC system users often 
have no guarantee that they will be able to reproduce results at a later point 
in time, even on the same system\x97sof [...]
+         (br))
+      (p "The paper can be thought of as a followup to the recent "
+         (a (@ (href "http://elephly.net/posts/2015-04-17-gnu-guix.html";))
+            "experience report")
+         " by Ricardo Wurmus."
+         (br))
+      (p "We believe package management and reproducibility are key topics for 
HPC research.  We are glad to have this opportunity to discuss the subject with 
researchers of the field."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/reproducible-builds-a-means-to-an-end.sxml 
b/website/posts/reproducible-builds-a-means-to-an-end.sxml
new file mode 100644
index 0000000..98abb97
--- /dev/null
+++ b/website/posts/reproducible-builds-a-means-to-an-end.sxml
@@ -0,0 +1,115 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title .
+           "Reproducible builds: a means to an end")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 11 11 2015 3600))
+    (content
+      div
+      (h4 "What we stand for")
+      (p "GNU Guix is committed to improving the freedom and autonomy of 
computer users.  This obviously manifests in the fact that GuixSD is a "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "fully free distro")
+         ", and this is what GNU stands for.  All the packages in Guix are 
built from source, including things like firmware where there is an unfortunate 
tendency to use pre-built binaries; that way, users can know what software they 
run.  On the technical side, Guix also tries hard to empower users by making 
the whole system as hackable as possible, in a uniform way\x97making "
+         (a (@ (href "https://www.gnu.org/philosophy/free-sw.html";))
+            "Freedom #1")
+         " practical, Ă  la Emacs."
+         (br))
+      (p "Guix provides pre-compiled binaries of software packages as a 
service to its users\x97these are "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Substitutes.html";))
+            "substitutes")
+         " for local builds.  This is a convenient way to save time, but it 
could become a threat to users if they cannot establish that those substitutes 
are authentic\x97that their "
+         (a (@ (href "http://www.gnu.org/licenses/gpl.html#section1";))
+            "Corresponding Source")
+         " really is what it claims to be."
+         (br))
+      (h4 "Reproducible builds")
+      (p "We view \x93reproducible builds\x94 as a technical means to an end: 
that of guaranteeing user autonomy and safety.  What matters here is that, if 
package build processes are reproducible, then users actually have a chance to "
+         (em "verify")
+         " that the substitutes (pre-compiled binaries) they download 
correspond to the source code that supposedly produced them."
+         (br))
+      (p "Guix builds packages in a "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Features.html";))
+            "fully isolated environment")
+         " to maximize reproducibility\x97a crucial feature inherited from "
+         (a (@ (href "http://nixos.org/nix/";)) "Nix")
+         ".  Thus, by construction, very few variations are possible between 
separate instances of a build environment; the set of files accessible in the 
environment, the host name, environment variables, locale, and so on are fully 
under control and cannot change.  This eliminates a "
+         (a (@ (href "https://reproducible-builds.org/docs/test-bench/";))
+            "whole class of possible discrepancies")
+         " between independent builds."
+         (br))
+      (p "The only things that may vary are the kernel, and the hardware.  The 
most prominent example of how \x91hardware\x92 details can leak into a build 
process are timestamps: it\x92s unfortunately quite common for build processes 
to query the system clock and record it in build outputs. Eelco Dolstra, Andres 
Löh, and Nicolas Pierron described sources of non-determinism in their "
+         (a (@ (href "https://nixos.org/~eelco/pubs/nixos-jfp-final.pdf";))
+            "2010 JFP paper about NixOS")
+         ", along with a study on how this affects packages of the 
distribution in practice.  The "
+         (a (@ (href "https://wiki.debian.org/ReproducibleBuilds";))
+            "Reproducible Debian")
+         " project has since made a similar evaluation but at a larger scale, 
and with a larger number of independent builds, thereby providing more insight."
+         (br))
+      (p "Reproducible Debian has demonstrated one thing: contrary to what one 
might expect, sources of non-determinism are common in build processes. To 
eliminate the sources of non-determinism that remain in spite of the isolation 
techniques used in Nix and Guix, the most viable approach appears to be to fix 
upstream projects that suffer from these problems\x97one by one."
+         (br))
+      (p "The "
+         (a (@ (href "http://reproducible-builds.org";))
+            "reproducible-builds.org")
+         " project is a great effort to try and address that collectively.  We 
are glad Guix hackers were invited to participate in the first "
+         (a (@ (href "https://reproducible-builds.org/events/athens2015/";))
+            "Reproducible Build Summit")
+         " organized by the project, which will take place in December."
+         (br))
+      (h4 "Going further")
+      (p "How can we take advantage of the fact that builds are reproducible, 
when they are, to actually empower users?  There are several things we can do."
+         (br))
+      (p "First, users must be able to build software locally in the same way 
distribution developers would do it.  This possibility is an integral part of 
the transparent source/binary deployment model provided by functional package 
management; Guix users can use the --no-substitutes command-line option to 
force a local build."
+         (br))
+      (p "Second, we must make it easy for users to use the binary provider of 
their choice, and possibly to use several of them, something that Guix allows."
+         (br))
+      (p "Third, it must be equally simple for any user to publish their 
locally-built binaries as a way to improve diversity and avoid any single point 
of failure or trust.  The "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-publish.html";))
+            "guix publish")
+         " command is a simple way to serve signed binaries over HTTP.  A 
fully peer-to-peer approach based on GNUnet was tackled as part of "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8318";))
+            "GSoC 2015")
+         "; the code needs more work before it can be integrated into Guix, 
but the approach is promising."
+         (br))
+      (p "Last but not least, users must be able to challenge binary providers 
"
+         (em "by themselves")
+         ".  The ability to verify binaries should not be the privilege of 
power developers.  To address that, the "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8398";))
+            "just-released")
+         " 0.9.0 version of GNU Guix provides a new command called "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-challenge.html";))
+            "guix challenge")
+         ".  The command allows users to automatically compare the build 
results of their local builds against those served by one or more binary 
providers.  It allows both to find out about non-reproducible builds\x97and 
indeed, has already "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2015-10/msg00728.html";))
+            "proved")
+         " to be "
+         (a (@ (href "http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21803";))
+            "fruitful")
+         ", and possibly to find out about compromised servers."
+         (br))
+      (p "This and other matters were discussed in a "
+         (a (@ (href "https://gnunet.org/guix2015video";))
+            "Guix talk earlier this week")
+         " ("
+         (a (@ (href 
"https://www.gnu.org/software/guix/guix-rennes-20151109.pdf";))
+            "slides")
+         "). We strongly believe in a future where the ability to authenticate 
distribution-provided binaries will be commonplace.  Let\x92s build it!"
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/service-composition-in-guixsd.sxml 
b/website/posts/service-composition-in-guixsd.sxml
new file mode 100644
index 0000000..0f5a4d4
--- /dev/null
+++ b/website/posts/service-composition-in-guixsd.sxml
@@ -0,0 +1,149 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Service composition in GuixSD")
+    (author . "Ludovic Courtès")
+    (date unquote
+          (make-date 0 0 0 0 19 11 2015 3600))
+    (content
+      div
+      (p "GuixSD provides a declarative, stateless approach to operating 
system configuration management.  In this context, the mechanism offered to 
select and compose system services is a crucial one.  This post presents the 
new service framework introduced in the "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8398";))
+            "0.9.0 version")
+         " of GNU\xa0Guix."
+         (br))
+      (h4 "Declarative Configuration Management")
+      (p "GuixSD is not like your parents\x92 distro.  Instead of fiddling 
with configuration files all around, or running commands that do so as a side 
effect, the system administrator "
+         (em "declares")
+         " what the system will be like.  This takes the form of an "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html";))
+            "operating-system declaration")
+         ", which specifies all the details: file systems, user accounts, 
locale, timezone, system services, etc."
+         (br))
+      (p "If you\x92re familiar with it, this may remind you of what 
deployment tools like Ansible and Puppet provide.  There is an important 
difference though: GuixSD takes a stateless\x97or \x93purely 
functional\x94\x97approach.  This means that instantiating the system with "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html";))
+            "guix system")
+         " always produces the same result, without modifying the current 
system state.  This is what makes it possible to test new system 
configurations, roll-back to previous ones, and so on.  The "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html";))
+            "guix system")
+         " command allows system configurations to be instantiated on the bare 
metal, in virtual machines, or in "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8386";))
+            "containers")
+         ", which makes it easy to test them."
+         (br))
+      (p "In GuixSD, operating-system declarations are first-class objects in 
the "
+         (a (@ (href "https://www.gnu.org/software/guile/";))
+            "host language")
+         ".  They can be inspected at the REPL:"
+         (br))
+      (div (@ (class "example"))
+           (pre "scheme@(guile-user)> ,use (gnu)\nscheme@(guile-user)> (define 
os (load \"os-config.scm\"))\nscheme@(guile-user)> (operating-system-kernel 
os)\n$1 = #<package linux-libre-4.2.6 gnu/packages/linux.scm:279 
2ea90c0>\nscheme@(guile-user)> (length (operating-system-user-services os))\n$2 
= 30\nscheme@(guile-user)> (map user-account-name (operating-system-users 
os))\n$3 = (\"alice\" \"nobody\" \"root\")\n"))
+      (p "It is also possible to write functions that take or return OS 
configurations.  For instance, the "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/vm.scm#n382";))
+            "virtualized-operating-system function")
+         " returns a variant of the given OS where the set of file systems and 
the initrd are changed so that the resulting OS can be used in a lightweight 
virtual machine environment. Likewise for "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/linux-container.scm#n50";))
+            "containerized-operating-system")
+         "."
+         (br))
+      (h4 "Services Beyond Daemons")
+      (p "System services are specified in the services field of 
operating-system declarations, which is a list of service objects.  As a user, 
we want to be able to ideally add one line specifying the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Services.html";))
+            "system service")
+         " we want to add, possibly with several instances of a service, and 
have GuixSD do the right thing."
+         (br))
+      (p "Before 0.9.0, GuixSD had a narrow definition of what a \x93system 
service\x94 is.  Each service in the operating-system configuration had to map 
to exactly one dmd service\x97"
+         (a (@ (href "https://www.gnu.org/software/dmd";))
+            "GNU dmd")
+         " is the init system of GuixSD.  This would work well in many cases: 
an SSH server or a log-in daemon is indeed a service that dmd has to take care 
of, even a file system mount is an operation that can be usefully inserted into 
dmd\x92s service dependency graph."
+         (br))
+      (p "However, this simple mapping failed to capture more complex service 
composition patterns.  A striking example is \x93super-daemons\x94\x97daemons 
that can spawn other daemons, such as dbus-daemon or inetd.  From the user 
viewpoint, it does not matter whether a daemon is started by dmd, or by 
dbus-daemon, or by inetd; this should be transparent.  If it\x92s a D-Bus 
service, then dbus-daemon\x92s configuration file should be told about the 
service; if it\x92s an inetd service, th [...]
+         (br))
+      (p "Worse, this approach did not capture the more general pattern of "
+         (em "service extension")
+         ".  In the examples above, the super-daemons are effectively "
+         (em "extended")
+         " by other services that rely on them.  But there are many cases 
where services are similarly extended: "
+         (a (@ (href "https://wiki.gentoo.org/wiki/Project:Eudev";))
+            "eudev")
+         " can be passed new device rules, "
+         (a (@ (href "http://www.freedesktop.org/wiki/Software/polkit/";))
+            "polkit")
+         " can be extended with new rules and actions, the "
+         (a (@ (href "http://www.linux-pam.org/";))
+            "Pluggable authentication module system (PAM)")
+         " can be extended with new services, and so on.  At that point it was 
clear that GuixSD\x92s naive approach wouldn\x92t scale."
+         (br))
+      (h4 "Composing System Services")
+      (p "The lesson learned from these observations is that system services "
+         (em "extend")
+         " each other in various way.  The new "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Service-Composition.html";))
+            "service composition framework")
+         " is built around this model: \x93system services\x94, broadly 
defined, can extend each other, and services and their \x93extends\x94 
relationships form a graph.  The root of the graph is the operating system 
itself."
+         (br))
+      (p "We can see that this pattern applies to services that are not 
daemons. PAM is one such example.  Accounts are another example: GuixSD 
provides an \x93account service\x94 that can be extended with new user accounts 
or groups; for example, the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Networking-Services.html#index-ntp_002dservice";))
+            "Network time protocol (NTP) daemon")
+         " needs to run under the unprivileged \x93ntp\x94 user, so the NTP 
service extends the account service with an \x93ntp\x94 user account.  
Likewise, the \x93/etc\x94 service can be extended with new files to be added 
to /etc; the \x93setuid\x94 service can be extended with new programs to be 
made setuid-root. "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Service-Reference.html";))
+            "See the manual")
+         " for more examples."
+         (br))
+      (p "The nice thing is that composition of services is made "
+         (em "explicit")
+         ": extensions can only happen where explicit extension relationships 
have been "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Service-Types-and-Services.html";))
+            "declared")
+         ".  By looking at the extension graph, users can see how services fit 
together.  The "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html#system_002dextension_002dgraph";))
+            "guix system extension-graph")
+         " command, for instance, takes an operating-system declaration and 
renders the extension graph in the Graphviz format, making it easy to inspect 
the OS configuration structure."
+         (br))
+      (p "The API makes it easy to see how services contributed to a specific 
service\x92s configuration.  For instance, the following expression shows the 
PAM service as extended by other declared services:"
+         (br))
+      (div (@ (class "example"))
+           (pre "(fold-services (operating-system-services os) \n              
 #:target-type pam-root-service-type)\n"))
+      (p "The result is a service object whose value is a list of pam-service 
objects.  Likewise, the following expression returns the /etc service, whose 
value is a list of entries to be added to /etc:"
+         (br))
+      (div (@ (class "example"))
+           (pre "(fold-services (operating-system-services os) \n              
 #:target-type etc-service-type)\n"))
+      (p "This contrasts with the approach taken by "
+         (a (@ (href "http://nixos.org/";)) "NixOS")
+         ", GuixSD\x92s cousin, and described in this "
+         (a (@ (href "https://nixos.org/~eelco/pubs/nixos-jfp-final.pdf";))
+            "2010 paper")
+         ".  In NixOS, the whole system configuration is described in an 
\x93attribute set\x94\x97a list of key/value associations, similar to 
JavaScript objects or Python dictionaries.  Each NixOS service is passed the 
whole system configuration, allowing it to inspect and change any part of it."
+         (br))
+      (p "This form of "
+         (a (@ (href "https://en.wikipedia.org/wiki/Ambient_authority";))
+            "ambient authority")
+         " gives a lot of flexibility, but it makes it harder to reason about 
service composition\x97all a service implementation does is inspect, add, or 
modify attributes of the global configuration, which may or may not affect 
other services.  The use of a loose key/value dictionary also prevents good 
error reporting; for instance, a typo in a service name may go undetected.  
Lastly, NixOS services are enabled by writing service.enable\xa0=\xa0true 
stanzas, which leads to complication [...]
+         (br))
+      (h4 "Wrapping Up")
+      (p "The new "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Service-Composition.html";))
+            "service composition framework")
+         " in GuixSD 0.9.0 addresses shortcomings found in previous versions 
of GuixSD.  It simplifies operating-system declarations for users, and provides 
a highly extensible framework that clearly exposes the way services are 
composed."
+         (br))
+      (p "This new framework has already allowed us to integrate "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Desktop-Services.html";))
+            "Freedesktop and GNOME services")
+         " in a convenient way.  We hope it will prove fruitful as we address 
other types of services, such as Web services."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))
diff --git a/website/posts/timely-delivery-of-security-updates.sxml 
b/website/posts/timely-delivery-of-security-updates.sxml
new file mode 100644
index 0000000..e5e5aec
--- /dev/null
+++ b/website/posts/timely-delivery-of-security-updates.sxml
@@ -0,0 +1,116 @@
+(begin
+  (use-modules (srfi srfi-19))
+  `((title . "Timely delivery of security updates")
+    (author . "Ludovic Courtès")
+    (date unquote (make-date 0 0 0 0 2 3 2016 3600))
+    (content
+      div
+      (p "Yesterday, a "
+         (a (@ (href "http://openssl.org/news/secadv/20160301.txt";))
+            "new version of OpenSSL was released")
+         ", addressing several serious vulnerabilities, some of which are "
+         (a (@ (href "https://drownattack.com/";))
+            "nicknamed \"DROWN\"")
+         ".  Like all free software distributions, we were waiting to deploy 
the fixes as soon as possible.  This time though, we are happy to report that 
we were able to "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/commit/?id=caeadfddb01d2cda19d2f761ba9906ef8f162173";))
+            "deploy it")
+         " to users faster than before: an hour or so after disclosure. This 
was made possible by fixing our fast update deployment mechanism, which is 
based on "
+         (em "grafts")
+         "."
+         (br))
+      (h4 "Updates in a functional package management framework")
+      (p "GNU\xa0Guix implements the "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Introduction.html";))
+            "functional package management discipline")
+         ".  What this means is that the the package graph in Guix is an 
immutable, "
+         (a (@ (href 
"https://en.wikipedia.org/wiki/Persistent_data_structure";))
+            "persistent data structure")
+         "\x97similar to a singly-linked list in a functional programming 
language, or to the "
+         (a (@ (href 
"http://eagain.net/articles/git-for-computer-scientists/";))
+            "object graph in the Git version control system")
+         "."
+         (br))
+      (p "A common difficulty with persistent data structures is the 
algorithmic complexity of updates\x97the computational cost of updating an 
arbitrary element of the data structure.  For instance, to update the nth 
element of a singly-linked list, you first need to traverse and copy the 
n\xa0?\xa01 elements at the head of the list, then insert the new element and 
make it point to the tail of the list."
+         (br))
+      (p "With the functional package management paradigm, the cost of 
updating a package is simple to understand: you need to rebuild the package 
itself, "
+         (em "and all the packages that depend on it")
+         ".  This is nice in many ways: all packages "
+         (em "must")
+         " build from source, there is no way we can be using binaries that 
cannot be "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8407";))
+            "rebuilt from their Corresponding Source")
+         ", breakage due to incompatible application binary interfaces (ABIs) 
is foreign to our users, we have a precise trail of the tools that produced 
binaries\x97that is, builds are "
+         (a (@ (href "https://en.wikipedia.org/wiki/Referential_transparency";))
+            "\x93referentially transparent\x94")
+         ", and as a bonus, we get "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Features.html";))
+            "features")
+         " such as transactional upgrades and rollbacks, peaceful coexistence 
of different variants of the same package, and more."
+         (br))
+      (p "But obviously, this update cost is very high when all you want is to 
deliver an important security update in a core package.  Regarding 
yesterday\x92s update, "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-refresh.html";))
+            "guix refresh -l openssl")
+         " shows that 2,115 packages depend on OpenSSL. On top of that, Guix 
supports 4 architectures, so needless to say, rebuilding everything that 
depends on OpenSSL would take time.  Sure, users do not have to wait for "
+         (a (@ (href 
"http://www.gnu.org/software/guix/manual/html_node/Substitutes.html";))
+            "pre-built binaries")
+         " and can instead build just what they need locally; in practice, 
they\x92d better have a powerful machine, though."
+         (br))
+      (h4 "Grafting important updates")
+      (p "A solution to this problem has been floating around for some time: 
the idea is to "
+         (em "graft")
+         " important package updates onto packages that depend on it.  That 
way, we would rebuild OpenSSL, but all we need to do for packages that depend 
on OpenSSL is to substitute the reference to the \x93broken\x94 OpenSSL with a 
reference to the security update, with the understanding that this substitution 
process is orders of magnitude cheaper than rebuilding packages, and faster 
than redownloading rebuilt packages."
+         (br))
+      (p "Shea Levy had implemented a form of grafting "
+         (a (@ (href 
"https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/replace-dependency.nix";))
+            "in Nixpkgs")
+         " in 2013, and Guix itself has provided "
+         (a (@ (href 
"https://www.gnu.org/software/guix/manual/html_node/Security-Updates.html";))
+            "the infrastructure for grafted updates")
+         " since "
+         (a (@ (href "https://savannah.gnu.org/forum/forum.php?forum_id=8147";))
+            "version 0.8")
+         " in 2014.  With Guix, package developers simply have to "
+         (a (@ (href 
"http://git.savannah.gnu.org/cgit/guix.git/commit/?id=caeadfddb01d2cda19d2f761ba9906ef8f162173";))
+            "define a replacement")
+         " in the object representing the package that needs an update and the 
tools automatically pick the replacement and graft it onto packages as needed."
+         (br))
+      (p "The problem is that these implementations had a severe limitation, 
described in "
+         (a (@ (href "http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22139";))
+            "this bug report")
+         ": grafting was not "
+         (em "recursive")
+         ".  When we provided a patched OpenSSL to be grafted, any package 
that directly depended on OpenSSL, would be appropriately grafted to refer to 
the new OpenSSL.  However, if a package depended on libfoo, which in turn 
depended on OpenSSL, then that package would keep referring to the old libfoo, 
which refered to the old OpenSSL.  That made grafts useless in most situations."
+         (br))
+      (h4 "Good news!")
+      (p "This bug was finally addressed, "
+         (a (@ (href 
"https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00009.html";))
+            "just in time for yesterday\x92s OpenSSL update")
+         ".  We have identified things to improve, but overall, it has worked 
pretty well.  It has worked so well that we even experienced "
+         (a (@ (href "http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22876#8";))
+            "our first ABI break")
+         " like all "
+         (a (@ (href "https://bugzilla.redhat.com/show_bug.cgi?id=1313509";))
+            "real")
+         (a (@ (href "https://bugs.gentoo.org/show_bug.cgi?id=576128";))
+            "distros")
+         "!"
+         (br))
+      (p "From now on, we have confidence that we can deliver important 
updates quickly using grafts, and happily rebuild the world in the background, 
whenever is convenient.  This is an important improvement for functional 
package management to keep our users happy and safe."
+         (br))
+      (h4 "About GNU Guix")
+      (p (a (@ (href "http://www.gnu.org/software/guix";))
+            "GNU Guix")
+         " is a functional package manager for the GNU system.  The Guix 
System Distribution or GuixSD is an advanced distribution of the GNU system 
that relies on GNU Guix and "
+         (a (@ (href 
"http://www.gnu.org/distros/free-system-distribution-guidelines.html";))
+            "respects the user's freedom")
+         "."
+         (br))
+      (p "In addition to standard package management features, Guix supports 
transactional upgrades and roll-backs, unprivileged package management, 
per-user profiles, and garbage collection.  Guix uses low-level mechanisms from 
the Nix package manager, except that packages are defined as native "
+         (a (@ (href "http://www.gnu.org/software/guile";))
+            "Guile")
+         " modules, using extensions to the "
+         (a (@ (href "http://schemers.org";)) "Scheme")
+         " language.  GuixSD offers a declarative approach to operating system 
configuration management, and is highly customizable and hackable."
+         (br))
+      (p "GuixSD can be used on an i686 or x86_64 machine.  It is also 
possible to use Guix on top of an already installed GNU/Linux system, including 
on mips64el and armv7."
+         (br)))))



reply via email to

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