gnu: Make "guix-devel" a public variable in package-management.scm

Message ID
State New

Commit Message

Chris Marusich Oct. 2, 2016, 9:42 p.m. UTC

Here's a patch to address the following issue ('guix environment guix
doesn't provide guix dependencies'):

I signed the commit with my GPG key, but it seems that 'git
format-patch' doesn't include the signature.  If you know how to make it
include the signature, please let me know!

I verified that the new package builds.  Notably, it did not build on my
GuixSD machine until I shortened the version string.


From 3fa2bc4f0d11fc695bfab9b85981228c1a88e007 Mon Sep 17 00:00:00 2001
From: Chris Marusich <>
Date: Sun, 2 Oct 2016 13:00:34 -0700
Subject: [PATCH] gnu: Make "guix-devel" a public variable in

This provides an obvious and easy way to use Guix to set up an environment for
building Guix from a Git checkout.

* gnu/packages/package-management.scm (guix-devel): Make it public and give it
  an appropriate name, synopsis, and description.  Change the generated
  version string to be even shorter so that the tests can actually run.
  Update all documentation to refer to "guix" when talking about the release
  version, and "guix-devel" when talking about the development version.
 README                              |  3 ++-
 doc/contributing.texi               |  4 ++--
 doc/guix.texi                       |  2 +-
 gnu/packages/package-management.scm | 16 +++++++++++++---
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/README b/README
index f05a4b5..d4484e8 100644
--- a/README
+++ b/README
@@ -54,7 +54,8 @@  For information on installation from a Git checkout, please see the section
 You can re-build and re-install Guix using a system that already runs Guix.
 To do so:
-  - Start a shell with the development environment for Guix:
+  - Start a shell with an environment containing the dependencies required to
+    build the release version of Guix:
       guix environment guix
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 18d891d..50657de 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -50,14 +50,14 @@  all the dependencies and appropriate environment variables are set up to
 hack on Guix:
-guix environment guix
+guix environment guix-devel
 @end example
 @xref{Invoking guix environment}, for more information on that command.
 Extra dependencies can be added with @option{--ad-hoc}:
-guix environment guix --ad-hoc help2man git strace
+guix environment guix-devel --ad-hoc git strace
 @end example
 Run @command{./bootstrap} to generate the build system infrastructure
diff --git a/doc/guix.texi b/doc/guix.texi
index f5bbb92..e03b4a4 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -5609,7 +5609,7 @@  the following command creates a Guix development environment that
 additionally includes Git and strace:
-guix environment guix --ad-hoc git strace
+guix environment guix-devel --ad-hoc git strace
 @end example
 Sometimes it is desirable to isolate the environment as much as
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 4cc5b89..c1f1095 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -207,14 +207,15 @@  the Nix package manager.")
     (license gpl3+)
     (properties '((ftp-server . "")))))
-(define guix-devel
+(define-public guix-devel
   ;; Development version of Guix.
   ;; Note: use a very short commit id; with a longer one, the limit on
   ;; hash-bang lines would be exceeded while running the tests.
   (let ((commit "4420940f20a2f36f29519f686bca7b85be6be5c9"))
     (package (inherit guix-0.11.0)
-      (version (string-append "0.11.0-1." (string-take commit 4)))
+      (name "guix-devel")
+      (version (string-take commit 8))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -251,7 +252,16 @@  the Nix package manager.")
          ("texinfo" ,texinfo)
          ("graphviz" ,graphviz)
          ("help2man" ,help2man)
-         ,@(package-native-inputs guix-0.11.0))))))
+         ,@(package-native-inputs guix-0.11.0)))
+      (synopsis "Development version of GNU Guix")
+      (description "GNU Guix is a functional package manager for the GNU
+system, and is also a distribution thereof.  It includes a virtual machine
+image.  Besides the usual package management features, it also supports
+transactional upgrades and roll-backs, per-user profiles, and much more.  It
+is based on the Nix package manager.  This is a development version which is
+built from a recent commit in the project's Git repository.  It provides
+additional dependencies that are not normally required for building the
+release version, such as GNU Autoconf."))))
 (define-public guix guix-devel)