Re: When can we expect a version 1.0 of the GNU Operating System?

2014-11-20 Thread Dave Crossland
On 20 November 2014 23:12, Omar Radwan  wrote:

> I think it would just be called GNU because HURD is part of GNU.


People already say "Debian GNU/Hurd"


[PATCH 10/13] gnu: Add python-pycairo.

2014-11-20 Thread Eric Bavier
* gnu/packages/python.scm (python-pycairo, python2-py2cairo): New variables.
---
 gnu/packages/python.scm |   60 ++-
 1 file changed, 59 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a967c74..5698481 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -24,7 +24,7 @@
 (define-module (gnu packages python)
   #:use-module ((guix licenses)
 #:select (asl2.0 bsd-3 bsd-2 bsd-style cc0 expat x11 x11-style
-  gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1+ lgpl3+
+  gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+
   psfl public-domain))
   #:use-module ((guix licenses) #:select (zlib) #:prefix license:)
   #:use-module (gnu packages)
@@ -2027,3 +2027,61 @@ a general image processing tool.")
 
 (define-public python2-pillow
   (package-with-python2 python-pillow))
+
+(define-public python-pycairo
+  (package
+(name "python-pycairo")
+(version "1.10.0")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "http://cairographics.org/releases/pycairo-";
+  version ".tar.bz2"))
+  (sha256
+   (base32
+"1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s"
+(build-system python-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(propagated-inputs  ;pycairo.pc references cairo
+ `(("cairo" ,(@ (gnu packages gtk) cairo ;prevent circular references
+(arguments
+ `(#:tests? #f
+   #:phases (alist-cons-before
+ 'build 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+   (zero? (system* "./waf" "configure"
+   (string-append "--prefix="
+  (assoc-ref outputs "out")
+ (alist-replace
+  'build
+  (lambda _
+(zero? (system* "./waf" "build")))
+  (alist-replace
+   'install
+   (lambda _
+ (zero? (system* "./waf" "install")))
+   %standard-phases)
+(home-page "http://cairographics.org/pycairo/";)
+(synopsis "Python bindings for cairo")
+(description
+ "Pycairo is a set of Python bindings for the cairo graphics library.")
+(license lgpl3+)))
+
+(define-public python2-py2cairo
+  (package (inherit python-pycairo)
+(name "python2-py2cairo")
+(version "1.10.0")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "http://cairographics.org/releases/py2cairo-";
+  version ".tar.bz2"))
+  (sha256
+   (base32
+"0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k"
+(arguments
+ `(#:python ,python-2
+   ,@(package-arguments python-pycairo)))
+;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
+(license '(lgpl2.1 mpl1.1
-- 
1.7.9.5




[PATCH 01/13] gnu: subversion: Propagate env variables to hooks.

2014-11-20 Thread Eric Bavier
* gnu/packages/patches/subversion-propagate-env-to-hooks.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/version-control.scm (subversion): Use it.
---
 gnu-system.am  |1 +
 .../subversion-propagate-env-to-hooks.patch|   14 ++
 gnu/packages/version-control.scm   |8 +---
 3 files changed, 20 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/subversion-propagate-env-to-hooks.patch

diff --git a/gnu-system.am b/gnu-system.am
index d39d869..5fd18e8 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -418,6 +418,7 @@ dist_patch_DATA =   
\
   gnu/packages/patches/soprano-find-clucene.patch  \
   gnu/packages/patches/source-highlight-regexrange-test.patch  \
   gnu/packages/patches/sqlite-large-page-size-fix.patch\
+  gnu/packages/patches/subversion-propagate-env-to-hooks.patch \
   gnu/packages/patches/superlu-dist-scotchmetis.patch  \
   gnu/packages/patches/tcsh-fix-autotest.patch \
   gnu/packages/patches/teckit-cstdio.patch \
diff --git a/gnu/packages/patches/subversion-propagate-env-to-hooks.patch 
b/gnu/packages/patches/subversion-propagate-env-to-hooks.patch
new file mode 100644
index 000..55cecab
--- /dev/null
+++ b/gnu/packages/patches/subversion-propagate-env-to-hooks.patch
@@ -0,0 +1,14 @@
+* Hooks need to inherit environment variables such as PATH, otherwise simple
+  things like `ls` might fail in a hook.
+
+--- subversion-1.7.18/subversion/libsvn_repos/hooks.c  2011-07-26 
11:48:50.0 -0500
 subversion-1.7.18/subversion/libsvn_repos/hooks.c  2014-09-27 
11:53:37.444830624 -0500
+@@ -196,7 +196,7 @@
+ (apr_err, _("Can't create null stdout for hook '%s'"), cmd);
+ }
+ 
+-  err = svn_io_start_cmd2(&cmd_proc, ".", cmd, args, FALSE,
++  err = svn_io_start_cmd2(&cmd_proc, ".", cmd, args, TRUE,
+   FALSE, stdin_handle, result != NULL, null_handle,
+   TRUE, NULL, pool);
+ 
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 0b52f0c..5d2eb58 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -297,11 +297,13 @@ property manipulation.")
 (version "1.7.18")
 (source (origin
  (method url-fetch)
- (uri (string-append 
"http://archive.apache.org/dist/subversion/subversion-";
- version ".tar.bz2"))
+ (uri (string-append "http://archive.apache.org/dist/subversion/";
+ "subversion-" version ".tar.bz2"))
  (sha256
   (base32
-   "06nrqnn3qq1hhskkcdbm0ilk2xv6ay2gyf2c7qvxp6xncb782wzn"
+   "06nrqnn3qq1hhskkcdbm0ilk2xv6ay2gyf2c7qvxp6xncb782wzn"))
+ (patches
+  (list (search-patch 
"subversion-propagate-env-to-hooks.patch")
 (build-system gnu-build-system)
 (arguments
  '(#:phases (alist-cons-after
-- 
1.7.9.5




[PATCH 08/13] gnu: Add python-elib.intl.

2014-11-20 Thread Eric Bavier
* gnu/packages/python.scm (python-elib.intl, python2-elib.intl): New
  variables.
---
 gnu/packages/python.scm |   38 +-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index aab3d35..a967c74 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -24,7 +24,7 @@
 (define-module (gnu packages python)
   #:use-module ((guix licenses)
 #:select (asl2.0 bsd-3 bsd-2 bsd-style cc0 expat x11 x11-style
-  gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1+
+  gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1+ lgpl3+
   psfl public-domain))
   #:use-module ((guix licenses) #:select (zlib) #:prefix license:)
   #:use-module (gnu packages)
@@ -43,6 +43,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
@@ -1942,6 +1943,41 @@ scrollkeeper-based documentation into Python's 
distutils.")
 
 (define-public python2-distutils-extra
   (package-with-python2 python-distutils-extra))
+
+(define-public python2-elib.intl
+  (package
+(name "python2-elib.intl")
+(version "0.0.3")
+(source
+ (origin
+   ;; This project doesn't tag releases or publish tarballs, so we take
+   ;; source from a (semi-arbitrary, i.e. latest as of now) git commit.
+   (method git-fetch)
+   (uri (git-reference
+ (url "https://github.com/dieterv/elib.intl.git";)
+ (commit "d09997cfef")))
+   (sha256
+(base32
+ "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"
+(build-system python-build-system)
+(native-inputs
+ `(("python2-setuptools" ,python2-setuptools)))
+(arguments
+ ;; incompatible with Python 3 (exception syntax)
+ `(#:python ,python-2
+   #:tests? #f
+   ;; With standard flags, the install phase attempts to create a zip'd
+   ;; egg file, and fails with an error: 'ZIP does not support timestamps
+   ;; before 1980'
+   #:configure-flags '("--single-version-externally-managed"
+   "--record=elib.txt")))
+(home-page "https://github.com/dieterv/elib.intl";)
+(synopsis "Enhanced internationalization for Python")
+(description
+ "The elib.intl module provides enhanced internationalization (I18N)
+services for your Python modules and applications.")
+(license lgpl3+)))
+
 (define-public python-pillow
   (package
 (name "python-pillow")
-- 
1.7.9.5




[PATCH 09/13] guix: Add MPL1.1 license.

2014-11-20 Thread Eric Bavier
* guix/licenses.scm (mpl1.1): New variable.
---
 guix/licenses.scm |7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/guix/licenses.scm b/guix/licenses.scm
index 8b7ea53..9ed4929 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -39,7 +39,7 @@
 ibmpl1.0
 imlib2
 lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+
-mpl2.0
+mpl1.1 mpl2.0
 openldap2.8 openssl
 psfl public-domain
 qpl
@@ -231,6 +231,11 @@ which may be a file:// URI pointing the package's tree."
"https://www.gnu.org/licenses/lgpl.html";
"https://www.gnu.org/licenses/license-list#LGPLv3";))
 
+(define mpl1.1
+  (license "MPL 1.1"
+   "http://directory.fsf.org/wiki/License:MPLv1.1";
+   "https://www.gnu.org/licenses/license-list#MPL";))
+
 (define mpl2.0
   (license "MPL 2.0"
"http://directory.fsf.org/wiki/License:MPLv2.0";
-- 
1.7.9.5




[PATCH 13/13] gnu: Add gourmet.

2014-11-20 Thread Eric Bavier
* gnu/packages/nutrition.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am  |1 +
 gnu/packages/nutrition.scm |   68 
 2 files changed, 69 insertions(+)
 create mode 100644 gnu/packages/nutrition.scm

diff --git a/gnu-system.am b/gnu-system.am
index 41af6d1..83e2d70 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -187,6 +187,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/node.scm\
   gnu/packages/noweb.scm   \
   gnu/packages/ntp.scm \
+  gnu/packages/nutrition.scm   \
   gnu/packages/nvi.scm \
   gnu/packages/ocaml.scm   \
   gnu/packages/ocrad.scm   \
diff --git a/gnu/packages/nutrition.scm b/gnu/packages/nutrition.scm
new file mode 100644
index 000..48184e3
--- /dev/null
+++ b/gnu/packages/nutrition.scm
@@ -0,0 +1,68 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier 
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see .
+
+(define-module (gnu packages nutrition)
+  #:use-module (guix packages)
+  #:use-module (guix licenses)
+  #:use-module (guix download)
+  #:use-module (guix build-system python)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages python))
+
+(define-public gourmet
+  (package
+(name "gourmet")
+(version "0.17.4")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "https://github.com/thinkle/gourmet/archive/";
+  version ".tar.gz"))
+  (sha256
+   (base32
+"1qvz175arzqm10lpfx8ffadrgirs3240zzqcp0h7sl53qfwx7v8k"
+(build-system python-build-system)
+(native-inputs
+ `(("distutils-extra"   ,python2-distutils-extra)
+   ("intltool"  ,intltool)
+   ("python-pygtk"  ,python2-pygtk))) ;for tests
+;; TODO: Add python-reportlab and/or python-poppler for printing/pdf
+;; export, and python-beautifulsoup for web import plugin.
+(inputs 
+ `(("pygtk" ,python2-pygtk)
+   ("sqlalchemy",python2-sqlalchemy)
+   ("python-pillow" ,python2-pillow)
+   ("elib.intl" ,python2-elib.intl)
+   ;; XXX: This really isn't an input for gourmet but of pillow.  Making
+   ;; it a propagated input in pillow doesn't seem to get its site path
+   ;; into gourmet's wrapper's PYTHONPATH however...
+   ("python-setuptools" ,python2-setuptools)))
+(arguments
+ `(#:python ,python-2   ;exception and print syntax
+   #:tests? #f));tests look bitrotted
+(home-page "http://thinkle.github.io/gourmet/";)
+(synopsis "Recipe organizer")
+(description
+ "Gourmet Recipe Manager is a recipe-organizer that allows you to collect,
+search, organize, and browse your recipes.  Gourmet can also generate shopping
+lists and calculate nutritional information.  It imports Mealmaster,
+MasterCook and KRecipe files and exports PDFs, webpages, and other formats.")
+(license gpl2+)))
-- 
1.7.9.5




[PATCH 02/13] gnu: python: Add sqlite input.

2014-11-20 Thread Eric Bavier
* gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch,
  gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch: New patches.
* gnu-system.am (dist_patch_DATA): Add them.
* gnu/packages/python.scm (python-2)[source]: Add patch.
  [inputs]: Add sqlite.
  (python)[source]: Add patch.
---
 gnu-system.am  |2 ++
 .../patches/python-sqlite-3.8.4-test-fix.patch |   15 +++
 .../patches/python2-sqlite-3.8.4-test-fix.patch|   15 +++
 gnu/packages/python.scm|8 +++-
 4 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch
 create mode 100644 gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch

diff --git a/gnu-system.am b/gnu-system.am
index 5fd18e8..6bdd6f0 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -406,6 +406,8 @@ dist_patch_DATA =   
\
   gnu/packages/patches/pybugz-stty.patch   \
   gnu/packages/patches/python-fix-tests.patch  \
   gnu/packages/patches/python-libffi-mips-n32-fix.patch\
+  gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch  \
+  gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \
   gnu/packages/patches/qt4-tests.patch \
   gnu/packages/patches/ratpoison-shell.patch   \
   gnu/packages/patches/readline-link-ncurses.patch \
diff --git a/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch 
b/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch
new file mode 100644
index 000..2f8b159
--- /dev/null
+++ b/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch
@@ -0,0 +1,15 @@
+From resolution of upstream python issue #20901: 
http://bugs.python.org/issue20901
+
+diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py
+--- Lib/sqlite3/test/hooks.py
 Lib/sqlite3/test/hooks.py
+@@ -162,7 +162,7 @@ class ProgressTests(unittest.TestCase):
+ create table bar (a, b)
+ """)
+ second_count = len(progress_calls)
+-self.assertGreater(first_count, second_count)
++self.assertGreaterEqual(first_count, second_count)
+ 
+ def CheckCancelOperation(self):
+ """
+
diff --git a/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch 
b/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch
new file mode 100644
index 000..f121e88
--- /dev/null
+++ b/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch
@@ -0,0 +1,15 @@
+From resolution of upstream python issue #20901: 
http://bugs.python.org/issue20901
+
+diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py
+--- Lib/sqlite3/test/hooks.py
 Lib/sqlite3/test/hooks.py
+@@ -162,7 +162,7 @@ class ProgressTests(unittest.TestCase):
+ create table bar (a, b)
+ """)
+ second_count = len(progress_calls)
+-self.assertTrue(first_count > second_count)
++self.assertGreaterEqual(first_count, second_count)
+ 
+ def CheckCancelOperation(self):
+ """
+
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 3786604..229e140 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -55,7 +55,8 @@
   (method url-fetch)
   (uri (string-append "https://www.python.org/ftp/python/";
   version "/Python-" version ".tar.xz"))
-  (patches (list (search-patch "python-libffi-mips-n32-fix.patch")))
+  (patches (list (search-patch "python-libffi-mips-n32-fix.patch")
+ (search-patch "python2-sqlite-3.8.4-test-fix.patch")))
   (patch-flags '("-p0"))
   (sha256
(base32
@@ -109,6 +110,7 @@
 (let ((bz2 (assoc-ref %build-inputs "bzip2"))
   (gdbm (assoc-ref %build-inputs "gdbm"))
   (libffi (assoc-ref %build-inputs "libffi"))
+  (sqlite (assoc-ref %build-inputs "sqlite"))
   (openssl (assoc-ref %build-inputs "openssl"))
   (readline (assoc-ref %build-inputs "readline"))
   (zlib (assoc-ref %build-inputs "zlib")))
@@ -117,6 +119,7 @@
(string-append "CPPFLAGS="
 "-I" bz2 "/include "
 "-I" gdbm "/include "
+"-I" sqlite "/include "
 "-I" openssl "/include "
 "-I" readline "/include "
 "-I" zlib "/include")
@@ -124,6 +127,7 @@
 "-L" bz2 "/lib "
 "-L" gdbm "/lib "
 "-L" libffi "/lib "
+"-L" sqlite "/lib "
 "-L" openssl "/lib "
 "-L" readline "/lib "
 "-L" zlib "/lib")))
@@ -167,6 +171,7 @@
  `(("bzip2" ,bzip2)
("gdbm" ,gdbm)
("libffi" ,libffi) ; for ctypes
+   ("sqlite" ,(@ (gnu packages databases) sqlite)) ; prevent circular refs
("openssl

[PATCH 06/13] gnu: Add python-pillow.

2014-11-20 Thread Eric Bavier
* gnu/packages/python.scm (python-pillow, python2-pillow): New variables.
---
 gnu/packages/python.scm |   52 +++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6238e4f..9e6d3c9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gdbm)
   #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages openssl)
@@ -38,6 +39,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages zip)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages multiprecision)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -1914,3 +1916,53 @@ simple and Pythonic domain language.")
 
 (define-public python2-sqlalchemy
   (package-with-python2 python-sqlalchemy))
+
+(define-public python-pillow
+  (package
+(name "python-pillow")
+(version "2.6.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://pypi.python.org/packages/source/P/";
+   "Pillow/Pillow-" version ".tar.gz"))
+   (sha256
+(base32
+ "0iw36c73wkhz88wa78v6l43llsb080ihw8yq7adhfqxdib7l4hzr"
+(build-system python-build-system)
+(native-inputs
+ `(("python-setuptools" ,python-setuptools)
+   ("python-nose"   ,python-nose)))
+(inputs
+ `(("lcms" ,lcms)
+   ("zlib" ,zlib)
+   ("libjpeg"  ,libjpeg)
+   ("openjpeg" ,openjpeg)
+   ("libtiff"  ,libtiff)))
+(propagated-inputs
+ `(;; Used at runtime for pkg_resources
+   ("python-setuptools" ,python-setuptools)))
+(arguments
+ `(#:phases (alist-cons-after
+ 'install 'check-installed
+ (lambda _
+   (begin
+ (setenv "HOME" (getcwd))
+ (and (zero? (system* "python" "selftest.py" 
"--installed"))
+  (zero? (system* "python" "test-installed.py")
+ (alist-delete 'check %standard-phases
+(home-page "https://pypi.python.org/pypi/Pillow";)
+(synopsis "Fork of the Python Imaging Library")
+(description
+ "The Python Imaging Library adds image processing capabilities to your
+Python interpreter.  This library provides extensive file format support, an
+efficient internal representation, and fairly powerful image processing
+capabilities.  The core image library is designed for fast access to data
+stored in a few basic pixel formats.  It should provide a solid foundation for
+a general image processing tool.")
+(license (x11-style
+  "http://www.pythonware.com/products/pil/license.htm";
+  "The PIL Software License"
+
+(define-public python2-pillow
+  (package-with-python2 python-pillow))
-- 
1.7.9.5




[PATCH 03/13] gnu: Add python-sqlalchemy.

2014-11-20 Thread Eric Bavier
* gnu/packages/python.scm (python-sqlalchemy, python2-sqlalchemy): New
  variables.
---
 gnu/packages/python.scm |   35 +++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 229e140..6238e4f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1879,3 +1879,38 @@ writing C extensions for Python as easy as Python 
itself.")
 (name "python2-cython")
 (inputs
  `(("python-2" ,python-2) ; this is not automatically changed
+
+(define-public python-sqlalchemy
+  (package
+(name "python-sqlalchemy")
+(version "0.9.7")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "https://pypi.python.org/packages/source/S/";
+  "SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
+  (sha256
+   (base32
+"059ayifj5l08v6vv56anhyibyllscn10dlzr2fcw68gz1hfjdzsz"
+(build-system python-build-system)
+(native-inputs
+ `(("python-cython" ,python-cython) ;for c extensions
+   ("python-pytest" ,python-pytest)
+   ("python-mock"   ,python-mock))) ;for tests
+(arguments
+ `(#:phases (alist-replace
+ 'check
+ (lambda _ (zero? (system* "py.test")))
+ %standard-phases)))
+(home-page "http://www.sqlalchemy.org";)
+(synopsis "Database Abstraction Library")
+(description
+ "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
+gives application developers the full power and flexibility of SQL.  It
+provides a full suite of well known enterprise-level persistence patterns,
+designed for efficient and high-performing database access, adapted into a
+simple and Pythonic domain language.")
+(license x11)))
+
+(define-public python2-sqlalchemy
+  (package-with-python2 python-sqlalchemy))
-- 
1.7.9.5




[PATCH 07/13] gnu: Add python-distutils-extra.

2014-11-20 Thread Eric Bavier
* gnu/packages/python.scm (python-distutils-extra, python2-distutils-extra):
  New variables.
---
 gnu/packages/python.scm |   25 +
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9e6d3c9..aab3d35 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1917,6 +1917,31 @@ simple and Pythonic domain language.")
 (define-public python2-sqlalchemy
   (package-with-python2 python-sqlalchemy))
 
+(define-public python-distutils-extra
+  (package
+(name "python-distutils-extra")
+(version "2.38")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "https://launchpad.net/python-distutils-extra/trunk/";
+  version "/+download/python-distutils-extra-"
+  version ".tar.gz"))
+  (sha256
+   (base32
+"0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x"
+(build-system python-build-system)
+(native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+(home-page "https://launchpad.net/python-distutils-extra/";)
+(synopsis "Enhancements to Python's distutils")
+(description
+ "Enables you to easily integrate gettext support, themed icons, and
+scrollkeeper-based documentation into Python's distutils.")
+(license gpl2)))
+
+(define-public python2-distutils-extra
+  (package-with-python2 python-distutils-extra))
 (define-public python-pillow
   (package
 (name "python-pillow")
-- 
1.7.9.5




[PATCH 11/13] gnu: Add python-pygobject.

2014-11-20 Thread Eric Bavier
* gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch:
  New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/glib.scm (python-pygobject, python2-pygobject-2): New
  variables.
---
 gnu-system.am  |1 +
 gnu/packages/glib.scm  |   84 
 ...on2-pygobject-2-gi-info-type-error-domain.patch |   39 +
 3 files changed, 124 insertions(+)
 create mode 100644 
gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch

diff --git a/gnu-system.am b/gnu-system.am
index 6bdd6f0..41af6d1 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -408,6 +408,7 @@ dist_patch_DATA =   
\
   gnu/packages/patches/python-libffi-mips-n32-fix.patch\
   gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch  \
   gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \
+  gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
   gnu/packages/patches/qt4-tests.patch \
   gnu/packages/patches/ratpoison-shell.patch   \
   gnu/packages/patches/readline-link-ncurses.patch \
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 9076643..494d3f9 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -22,6 +22,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
@@ -37,6 +38,7 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages file)
+  #:use-module (gnu packages which)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages m4)
 
@@ -408,3 +410,85 @@ has an ease of use unmatched by other C++ callback 
libraries.")
  "Glibmm provides a C++ programming interface to the part of GLib that are
 useful for C++.")
 (license license:lgpl2.1+)))
+
+(define-public python2-pygobject-2
+  (package
+(name "python2-pygobject")
+;; This was the last version to declare the 2.0 platform number, i.e. its
+;; pkg-config files were named pygobject-2.0.pc
+(version "2.28.6")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "mirror://gnome/sources/pygobject/"
+   (version-major+minor version)
+   "/pygobject-" version ".tar.xz"))
+   (sha256
+(base32
+ "1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv"))
+   (patches
+(list (search-patch
+   "python2-pygobject-2-gi-info-type-error-domain.patch")
+(build-system gnu-build-system)
+(native-inputs
+ `(("which" ,which)
+   ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas
+   ("pkg-config" ,pkg-config)
+   ("dbus" ,dbus))) ;for tests
+(inputs
+ `(("python" ,python-2)
+   ("glib"   ,glib)
+   ("python2-py2cairo" ,python2-py2cairo)
+   ("gobject-introspection" ,gobject-introspection)))
+(propagated-inputs
+ `(("libffi" ,libffi))) ;mentioned in pygobject-2.0.pc
+(arguments
+ `(#:tests? #f  ;segfaults during tests
+   #:configure-flags '("LIBS=-lcairo-gobject")))
+(home-page "https://pypi.python.org/pypi/PyGObject";)
+(synopsis "Python bindings for GObject")
+(description
+ "Python bindings for GLib, GObject, and GIO.")
+(license license:lgpl2.1+)))
+
+(define-public python-pygobject
+  (package
+(name "python-pygobject")
+(version "3.12.2")  ;last version that works with
+;gobject-introspection 1.38
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "mirror://gnome/sources/pygobject/"
+   (version-major+minor version)
+   "/pygobject-" version ".tar.xz"))
+   (sha256
+(base32
+ "08m5yad1hjdax4g39w6lgjk4124mcwpa8fc5iyvb8nygk8s3syky"
+;; 3.14.0: 0m1d75iwxa6k1xbkn6c6yq5r10pxnf7i5c2a5yvwsnab7ylzz7kp
+(build-system gnu-build-system)
+(native-inputs
+ `(("which" ,which)
+   ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("python" ,python)
+   ("glib"   ,glib)
+   ("python-pycairo" ,python-pycairo)
+   ("gobject-introspection" ,gobject-introspection)
+   ("libffi" ,libffi)))
+(arguments
+ ;; TODO: failing tests: test_native_calls_async
+ ;; test_native_calls_async_errors test_native_calls_sync
+ ;; test_native_calls_sync_errors test_python_calls_async
+ ;; test_python_calls_async_error test_python_calls_async_error_result
+ ;; test_python_calls_sync test_python_calls_sync_

[PATCH 04/13] gnu: Export symbols in (gnu packages image) upfront.

2014-11-20 Thread Eric Bavier
* gnu/packages/image.scm [module]: Export symbols in module definition.
---
 gnu/packages/image.scm |   38 ++
 1 file changed, 26 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 7a22bf4..2cb64c2 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -33,9 +33,23 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
-  #:use-module (srfi srfi-1))
+  #:use-module (srfi srfi-1)
 
-(define-public libpng
+  ;; Export variables up-front to allow circular dependency with the
+  ;; 'ghostscript' module.
+  #:export (libpng
+libjpeg
+libjpeg-8
+libtiff
+libwmf
+jbig2dec
+openjpeg
+giflib
+imlib2
+giblib
+freeimage))
+
+(define libpng
   (package
(name "libpng")
(version "1.5.17")
@@ -62,7 +76,7 @@ library.  It supports almost all PNG features and is 
extensible.")
(license license:zlib)
(home-page "http://www.libpng.org/pub/png/libpng.html";)))
 
-(define-public libjpeg
+(define libjpeg
   (package
(name "libjpeg")
(version "9a")
@@ -83,7 +97,7 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file 
formats.")
(license license:ijg)
(home-page "http://www.ijg.org/";)))
 
-(define-public libjpeg-8
+(define libjpeg-8
   (package (inherit libjpeg)
(version "8d")
(source (origin
@@ -93,7 +107,7 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file 
formats.")
 (sha256 (base32
  
"1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0"))
 
-(define-public libtiff
+(define libtiff
   (package
(name "libtiff")
(version "4.0.3")
@@ -122,7 +136,7 @@ collection of tools for doing simple manipulations of TIFF 
images.")
"See COPYRIGHT in the distribution."))
(home-page "http://www.libtiff.org/";)))
 
-(define-public libwmf
+(define libwmf
   (package
 (name "libwmf")
 (version "0.2.8.4")
@@ -155,7 +169,7 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.")
 ;; 'COPYING' is the GPLv2, but file headers say LGPLv2.0+.
 (license license:lgpl2.0+)))
 
-(define-public jbig2dec
+(define jbig2dec
   (package
 (name "jbig2dec")
 (version "0.11")
@@ -184,7 +198,7 @@ work.")
 (home-page "http://jbig2dec.sourceforge.net/";)
 (license license:gpl2+)))
 
-(define-public openjpeg
+(define openjpeg
   (package
 (name "openjpeg")
 (version "2.0.0")
@@ -220,7 +234,7 @@ error-resilience, a Java-viewer for j2k-images, ...")
 (home-page "http://jbig2dec.sourceforge.net/";)
 (license license:bsd-2)))
 
-(define-public giflib
+(define giflib
   (package
 (name "giflib")
 (version "4.2.3")
@@ -268,7 +282,7 @@ compose, and analyze GIF images.")
 (home-page "http://giflib.sourceforge.net/";)
 (license license:x11)))
 
-(define-public imlib2
+(define imlib2
   (package
 (name "imlib2")
 (version "1.4.6")
@@ -316,7 +330,7 @@ This is a complete rewrite over the Imlib 1.x series.  The 
architecture is
 more modular, simple, and flexible.")
 (license license:imlib2)))
 
-(define-public giblib
+(define giblib
   (package
 (name "giblib")
 (version "1.2.4")
@@ -343,7 +357,7 @@ supplies a generic doubly-linked list and some string 
functions.")
 (license (license:x11-style "file://COPYING"
 "See 'COPYING' in the distribution."
 
-(define-public freeimage
+(define freeimage
   (package
(name "freeimage")
(version "3.16.0")
-- 
1.7.9.5




[PATCH 12/13] gnu: Add python2-pygtk.

2014-11-20 Thread Eric Bavier
* gnu/packages/gtk.scm (python2-pygtk): New variable.
---
 gnu/packages/gtk.scm |   49 -
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index d8c8a29..a4b336b 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -25,6 +25,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages ghostscript)
@@ -38,7 +39,8 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module ((srfi srfi-1) #:select (take)))
 
 (define-public atk
   (package
@@ -630,3 +632,48 @@ extensive documentation, including API reference and a 
tutorial.")
("atkmm" ,atkmm)
("gtk+" ,gtk+-2)
("glibmm" ,glibmm)
+
+(define-public python2-pygtk
+  (package
+(name "python2-pygtk")
+(version "2.24.0")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "http://ftp.gnome.org/pub/GNOME/sources";
+  "/pygtk/" (version-major+minor version)
+  "/pygtk-" version ".tar.bz2"))
+  (sha256
+   (base32
+"04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(inputs
+ `(("python" ,python-2)
+   ("glib"   ,glib)))
+(propagated-inputs
+ `(("python-pycairo"   ,python2-py2cairo);loaded at runtime
+   ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
+   ("gtk+" ,gtk+-2)))
+(arguments
+ `(#:tests? #f
+   #:phases (alist-cons-after
+ 'install 'install-pth
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+   (let* ((out(assoc-ref outputs "out"))
+  (site   (string-append out "/lib/python"
+ ,(version-major+minor
+   (package-version python-2))
+ "/site-packages")))
+ (call-with-output-file (string-append site "/pygtk.pth")
+   (lambda (port)
+ (format port "gtk-2.0~%")
+ %standard-phases)))
+(home-page "http://www.pygtk.org/";)
+(synopsis "Python bindings for GTK")
+(description
+ "PyGTK allows you to write full featured GTK programs in Python.  It is
+targetted at GTK 2.x, and can be used in conjunction with gnome-python to
+write Gnome applications.")
+(license license:lgpl2.1+)))
-- 
1.7.9.5




[PATCH 05/13] gnu: Export ghostscript module symbols up-front.

2014-11-20 Thread Eric Bavier
* gnu/packages/ghostscript.scm [module]: Export symbols up-front.
---
 gnu/packages/ghostscript.scm |   23 ---
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index f21eead..f519d1b 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -28,9 +28,18 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
 
-(define-public lcms
+  ;; Export variables up-front to allow circular dependency with the 'python'
+  ;; module.
+  #:export (lcms
+libpaper
+psutils
+ghostscript
+gs-fonts
+libspectre))
+
+(define lcms
   (package
(name "lcms")
(version "2.4")
@@ -53,7 +62,7 @@ Consortium standard (ICC), approved as ISO 15076-1.")
(license license:x11)
(home-page "http://www.littlecms.com/";)))
 
-(define-public libpaper
+(define libpaper
   (package
(name "libpaper")
(version "1.1.24")
@@ -73,7 +82,7 @@ paper size.")
(license license:gpl2)
(home-page "http://packages.qa.debian.org/libp/libpaper.html";)))
 
-(define-public psutils
+(define psutils
   (package
(name "psutils")
(version "17")
@@ -115,7 +124,7 @@ printing, and psresize, for adjusting page sizes.")
 "See LICENSE in the distribution."))
(home-page "http://knackered.org/angus/psutils/";)))
 
-(define-public ghostscript
+(define ghostscript
   (package
(name "ghostscript")
(version "9.06.0")
@@ -163,7 +172,7 @@ output file formats and printers.")
(license license:gpl3+)
(home-page "http://www.gnu.org/software/ghostscript/";)))
 
-(define-public gs-fonts
+(define gs-fonts
   (package
(name "gs-fonts")
(version "8.11")
@@ -205,7 +214,7 @@ Ghostscript.  It currently includes the 35 standard 
PostScript fonts.")
(license license:gpl2)
(home-page "http://sourceforge.net/projects/gs-fonts/";)))
 
-(define-public libspectre
+(define libspectre
   (package
(name "libspectre")
(version "0.2.7")
-- 
1.7.9.5




[PATCH 00/13] Add gourmet (and dependent python packages)

2014-11-20 Thread Eric Bavier
I've squatted on these patches for too long (since the hackathon :/), so I
finally sat down to "polish" them out.  A few may be non-controversial, but
some may be of interest to others.

The addition of sqlite to python will require a fair number of package
rebuilds.  I think I dealt with the introduced module circular dependencies in
an acceptable manner.

Eric Bavier (13):
  gnu: subversion: Propagate env variables to hooks.
  gnu: python: Add sqlite input.
  gnu: Add python-sqlalchemy.
  gnu: Export symbols in (gnu packages image) upfront.
  gnu: Export ghostscript module symbols up-front.
  gnu: Add python-pillow.
  gnu: Add python-distutils-extra.
  gnu: Add python-elib.intl.
  guix: Add MPL1.1 license.
  gnu: Add python-pycairo.
  gnu: Add python-pygobject.
  gnu: Add python2-pygtk.
  gnu: Add gourmet.

 gnu-system.am  |5 +
 gnu/packages/ghostscript.scm   |   23 ++-
 gnu/packages/glib.scm  |   84 
 gnu/packages/gtk.scm   |   49 -
 gnu/packages/image.scm |   38 ++--
 gnu/packages/nutrition.scm |   68 ++
 .../patches/python-sqlite-3.8.4-test-fix.patch |   15 ++
 ...on2-pygobject-2-gi-info-type-error-domain.patch |   39 
 .../patches/python2-sqlite-3.8.4-test-fix.patch|   15 ++
 .../subversion-propagate-env-to-hooks.patch|   14 ++
 gnu/packages/python.scm|  216 +++-
 gnu/packages/version-control.scm   |8 +-
 guix/licenses.scm  |7 +-
 13 files changed, 555 insertions(+), 26 deletions(-)
 create mode 100644 gnu/packages/nutrition.scm
 create mode 100644 gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch
 create mode 100644 
gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch
 create mode 100644 gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch
 create mode 100644 gnu/packages/patches/subversion-propagate-env-to-hooks.patch

-- 
1.7.9.5




Re: Containers on Guix

2014-11-20 Thread David Thompson
Ludovic Courtès  writes:

>> A container is programs or full os running in an isolated environment.
>> For a full container with rootfs, we can:
>>   build the rootfs:
>> of Guix:by using a form of `guix system init'
>
> I think it’s enough and cheaper to build the system (as per ‘guix system
> build’) and to bind-mount its closure in the container’s file system.

I'm having trouble with this approach.  pflask tries to create a /proc
directory but can't because that would be writing to the store.  Do I
need to bind-mount each sub-directory within the /gnu/store/...-system
directory so that the root of the container directory is still writable?

-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate



Re: When can we expect a version 1.0 of the GNU Operating System?

2014-11-20 Thread Bruno Félix Rezende Ribeiro
Em Thu, 20 Nov 2014 15:12:44 -0800
Omar Radwan  escreveu:

> Guix is a distribution of GNU, so far the only distribution than is
> officially under the umbrella of the GNU project.

Guix is *not* a distribution of GNU; rather, it's the package manager
of GNU.  There is, however, a GNU project's distribution of the GNU
system which the Guix team is working on.  The Guix team folks are the
first ones to work on such distribution because packaging and
distributing are normally intrinsically related tasks.

> Technically, its not GNU, it's GNU/Linux, GNU is running on top of
> Linux. But if GNU was running on HURD, I think it would just be
> called GNU because HURD is part of GNU.

GNU running on top of GNU Linux-libre is technically GNU, if that is a
GNU project's distribution.  That's our view.


-- 
 ,= ,-_-. =.  Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
((_/)o o(\_)) There is no system but GNU;
 `-'(. .)`-'  GNU Linux-Libre is one of its official kernels;
 \_/  All software must be free as in freedom;



Re: Sharing host file systems with a VM

2014-11-20 Thread David Thompson
Ludovic Courtès  writes:

> ‘guix system vm’ can now be told to share more file systems with the
> host, in addition to /gnu/store:

Awesome!

> Thanks David for giving me an incentive to work on this.  ;-)

Thanks for doing the work!  I will figure out how to take advantage of
this in 'guix environment' soon.

-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate



[PATCH] gnu: Add pflask.

2014-11-20 Thread David Thompson
>From c09e60e4d51259a75202199b89b30ccddef3 Mon Sep 17 00:00:00 2001
From: David Thompson 
Date: Thu, 20 Nov 2014 22:31:56 -0500
Subject: [PATCH] gnu: Add pflask.

* gnu/packages/linux.scm (pflask): New variable.
---
 gnu/packages/linux.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 069aae6..0d30aee 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1659,3 +1659,26 @@ counters, tracepoints, kprobes, and uprobes (dynamic tracing).  It is capable
 of lightweight profiling.  This package contains the user-land tools and in
 particular the 'perf' command.")
 (license (package-license linux-libre
+
+(define-public pflask
+  (package
+(name "pflask")
+(version "0.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://github.com/ghedo/pflask/archive/v";
+  version ".tar.gz"))
+  (sha256
+   (base32
+"1g8fjj67dfkc2s0852l9vqi1pm61gp4rxbpzbzg780f5s5hd1fys"
+(build-system cmake-build-system)
+(arguments
+ '(#:tests? #f)) ; no tests
+(home-page "http://ghedo.github.io/pflask/";)
+(synopsis "Simple tool for creating Linux namespace containers")
+(description "pflask is a simple tool for creating Linux namespace
+containers.  It can be used for running a command or even booting an OS inside
+an isolated container, created with the help of Linux namespaces.  It is
+similar in functionality to chroot, although pflask provides better isolation
+thanks to the use of namespaces.")
+(license bsd-2)))
-- 
2.1.1


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate


PXE boot.

2014-11-20 Thread Omar Radwan
I want to try out Guix 0.8 on one of my devices. The problem is that it's
very old and doesn't support booting from USB's. So I was wondering if I
could PXE boot. Is that possible with Guix? Or is there any other way?


Re: When can we expect a version 1.0 of the GNU Operating System?

2014-11-20 Thread Omar Radwan
>I came across GNU Guix [1] last year. At that time, they had plans to
>build a standalone distribution of the GNU Operating System. I watched
>GNU Guix developers work during this year and they did build a
>standalone distribution. [2] But the name of this distribution is GNU
>Guix (the same name of the package manager). If Guix is the GNU package
>manager and integrates the components of GNU, why can't the resulting
>distribution be called The GNU Operating System (or GNU, for short)? [3]

Guix is a distribution of GNU, so far the only distribution than is
officially under the umbrella of the GNU project.


>Because this will incentivise people to say that that "Acme Linux",
referring to GNU+Linux, "is not GNU, because GNU is only available >from
gnu.org" which would be misleading.
>"Acme GNU" or "GNU Acme" or "Acme GNU+Linux" are all the GNU operating
system.

Technically, its not GNU, it's GNU/Linux, GNU is running on top of Linux.
But if GNU was running on HURD, I think it would just be called GNU because
HURD is part of GNU.


On Thu, Nov 20, 2014 at 2:32 PM, Dave Crossland  wrote:

> Hi
>
> Personal opinion only
>
> On 20 November 2014 15:42, Felipe López 
> wrote:
>
>>
>> I'd like to know what is
>> holding the GNU developers back from releasing the first version of the
>> GNU Operating System.
>>
>
> It was released in the early 90s, with the Linux kernel substituted for
> HURD.
>
>
>> why can't the resulting
>> distribution be called The GNU Operating System (or GNU, for short)?
>>
>
> Because this will incentivise people to say that that "Acme Linux",
> referring to GNU+Linux, "is not GNU, because GNU is only available from
> gnu.org" which would be misleading.
>
> "Acme GNU" or "GNU Acme" or "Acme GNU+Linux" are all the GNU operating
> system.
>
> --
> Cheers
> Dave
>


Sharing host file systems with a VM

2014-11-20 Thread Ludovic Courtès
‘guix system vm’ can now be told to share more file systems with the
host, in addition to /gnu/store:

 Additional file systems can be shared between the host and the VM
 using the ‘--share’ and ‘--expose’ command-line options: the former
 specifies a directory to be shared with write access, while the
 latter provides read-only access to the shared directory.

 The example below creates a VM in which the user’s home directory
 is accessible read-only, and where the ‘/exchange’ directory is a
 read-write mapping of the host’s ‘$HOME/tmp’:

  guix system vm my-config.scm \
 --expose=$HOME --share=$HOME/tmp=/exchange

Thanks David for giving me an incentive to work on this.  ;-)

Ludo’.



Re: wip-libreoffice

2014-11-20 Thread Andreas Enge
There is an evaluation error:

In gnu/packages/libreoffice.scm:
 645: 1 [arguments]
In unknown file:
   ?: 0 [scm-error misc-error #f "~A" ("Unknown architecture for nss") #f]

ERROR: In procedure scm-error:
ERROR: Unknown architecture for nss

Probably one needs to enable only s86_64-linux as a supported architecture
for nss?

Andreas




Advice needed on gcc error

2014-11-20 Thread Saul Hazledine

Hello,
  I installed guix 0.8 into a virtual machine and I hit a problem which 
might be user error or a bug. I thought this would be the right mailing 
list to get help - apologies if it isn't.


I have a running installation of guix/gnu os and wanted to install vim:
  guix package -i vim

I am not using hydra and so the package manager went ahead and tried to 
download and compile the internet (which is what I wanted because I am 
experimenting with the OS). I hit what could be a compilation error in 
gcc 4.8.3:

   Makefile:3584: recipe for target 's-attrtab' failed

This led me to the reason I am contacting the list. A newly installed 
guix machine is pretty basic and does not seem to have any way I report 
a bug from the build other than typing it myself - am I missing a more 
convenient method.


Thanks in advance for any help with the gcc error or the "how to report 
a problem" error.


Saul Hazledine



Re: Containers on Guix

2014-11-20 Thread Thompson, David
On Thu, Nov 20, 2014 at 3:49 PM, Ludovic Courtès  wrote:
> 宋文武  skribis:
>
>> I think what we need is pflask: https://github.com/ghedo/pflask
>
> Indeed, that seems like a good fit!

The concern I have is something the author brings up in the README:

"Compared to LXC, pflask is easier to use since it doesn't require any
pre-configuration (all the options can be passed via the
command-line). pflask is mostly intended for testing, building and
experimenting, whereas LXC is a more complete solution, better suited
for production environments."

I want something that can handle production environments.  But it's a
good starting point anyway.  Using an improved version of the
guix-daemon to do this might still be the best long term solution.

>> A container is programs or full os running in an isolated environment.
>> For a full container with rootfs, we can:
>>   build the rootfs:
>> of Guix:by using a form of `guix system init'
>
> I think it’s enough and cheaper to build the system (as per ‘guix system
> build’) and to bind-mount its closure in the container’s file system.

Didn't know about the 'build' subcommand.  I will try that out.

Thanks!

- Dave



Re: Containers on Guix

2014-11-20 Thread Ludovic Courtès
宋文武  skribis:

> I think what we need is pflask: https://github.com/ghedo/pflask

Indeed, that seems like a good fit!

> A container is programs or full os running in an isolated environment.
> For a full container with rootfs, we can:
>   build the rootfs:
> of Guix:by using a form of `guix system init'

I think it’s enough and cheaper to build the system (as per ‘guix system
build’) and to bind-mount its closure in the container’s file system.

Thanks,
Ludo’.



Gegl build failures

2014-11-20 Thread Andreas Enge
gegl, an input for gimp, fails its tests:
   http://hydra.gnu.org/build/159641/nixlog/1/tail-reload

We already have the following comments in the package:
  ;; This test program seems to crash on exit. Specifically, whilst
  ;; g_object_unreffing bufferA and bufferB - This seems to be a bug
  ;; in the destructor.  This is just a test program so will not have
  ;; any wider effect, although might be hiding another problem.
  ;; According to advice received on irc.gimp.org#gegl although 0.2.0
  ;; is the latest released version, any bug reports against it will
  ;; be ignored.  So we are on our own.
before a line that removes one test. I would suggest to disable all tests.

Andreas




Re: Containers on Guix

2014-11-20 Thread Ludovic Courtès
Hello!

Disclaimer: I’ve never used systemd-nspawn, and I’m not knowledgeable in
this area.  :-)


AIUI, “containers” are basically what the daemon creates: an execution
environment that uses a separate file system name space, network name
space, etc. (see ‘DerivationGoal::startBuilder’ in libstore/build.cc.)

For what you have in mind, one may want to be able to select which parts
should be separate (apparently systemd-nspawn allows that), rather than
the completely-isolated policy of guix-daemon.

So, in terms of functionality, I think we want that subset of the
daemon, in a more modular fashion (that subset would also be useful for
Plash-like sandboxed execution, something I’d like to have eventually.)

It doesn’t have to be part of the init system IMO, because it doesn’t
have much to do with it.  However, there has to be a mediating process
with root privileges that can create these containers on behalf on
unprivileged users–much like guix-daemon.

In terms of code, I can think of several approaches.

  1. Fork guix-daemon, and modularize it to do what we want.  Perhaps it
 would be enough to add RPCs to create and configure a container
 (see worker-protocol.hh and (guix store).)

 Alternately, create a C library that provides just the
 container-handling logic (possibly with Guile bindings), and use it
 to write a separate daemon responsible for container handling.

  2. Translate/rewrite the container-handling logic in Scheme.  Use it
 to write a separate daemon, with the eventual goal of having a new
 build daemon that uses the same code base (all in Scheme.)

  3. Use LXC to implement containers (?).  liblxc seems to be perhaps
 too high-level from the examples on the web page; does anyone know?

#2 is forward-looking, but quite a lot of work.

#1 and #3 are more pragmatic.

I hope that makes some sense.

Ludo’.



Re: Containers on Guix

2014-11-20 Thread Thompson, David
On Thu, Nov 20, 2014 at 8:30 AM, 宋文武  wrote:
> David Thompson  writes:
>
>> I did some reading about how Docker creates containers and discovered
>> that it uses systemd-nspawn[0] to do it.  Since Guix uses dmd, using
>> systemd-nspawn isn't an option.  Does anyone have thoughts on how we
>> might have similar functionality in the Guix distro?
> I think what we need is pflask: https://github.com/ghedo/pflask
>
> A container is programs or full os running in an isolated environment.
> For a full container with rootfs, we can:
>   build the rootfs:
> of Guix:by using a form of `guix system init'
> of Debian:  by using debootstrap
>
>   get it running:
> # pflask --chroot=rootfs /sbin/init
>
> For a lightweight container without rootfs, we can:
>   build the activate script by `guix build'
>   get it running:
> $ pflask --user=$USER activate
> (could run by normal user by using User namespace)

Wow, thanks!  I think pflask is exactly what I'm looking for.  I'll
write a guix package and do some experiments with it soon.

>> Would an nspawn equivalent be appropriate for dmd?  Or a completely
>> separate program?
> Isolation is archieved by using Linux namespaces, IMO dmd will work
> well.

It seems that with pflask, there's no need to add anything to dmd.  We
could extend guix system to use it to generate containers.

This is a really great starting point.  Thank you very much for
pointing me in the right direction.

- Dave



Re: Containers on Guix

2014-11-20 Thread 宋文武
David Thompson  writes:

> Hello all,
>
> As some of you know, I wrote 'guix environment' as the first step on my
> journey to use Guix to improve my (and hopefully others) software
> development workflow.  Now that the basics are working, I'm interested
> in taking things further.  In particular, I want to extend 'guix
> environment' to support spawning VMs and then, hopefully, containers
> (those things that the Docker folks have been talking about so much
> lately).
>
> I did some reading about how Docker creates containers and discovered
> that it uses systemd-nspawn[0] to do it.  Since Guix uses dmd, using
> systemd-nspawn isn't an option.  Does anyone have thoughts on how we
> might have similar functionality in the Guix distro?
I think what we need is pflask: https://github.com/ghedo/pflask

A container is programs or full os running in an isolated environment.
For a full container with rootfs, we can:
  build the rootfs:
of Guix:by using a form of `guix system init'
of Debian:  by using debootstrap

  get it running:
# pflask --chroot=rootfs /sbin/init
  
For a lightweight container without rootfs, we can:
  build the activate script by `guix build'
  get it running:
$ pflask --user=$USER activate
(could run by normal user by using User namespace)
>
> Would an nspawn equivalent be appropriate for dmd?  Or a completely
> separate program?  This seems to be a Linux only feature, so if we
> added
Isolation is archieved by using Linux namespaces, IMO dmd will work
well.
> a container creation program, would it make it harder to support the
> Hurd?
>
> I'm lost and confused!  Send help! :)
>
> -- 
> David Thompson
> Web Developer - Free Software Foundation - http://fsf.org
> GPG Key: 0FF1D807
> Support the FSF: https://fsf.org/donate