02/08: system: Remove uses of the 'title' field of .

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 9ceeca0880248eee8c2796f5e6ebc172b95277f7
Author: Ludovic Courtès 
Date:   Fri May 18 15:04:36 2018 +0200

system: Remove uses of the 'title' field of .

* gnu/system/install.scm (installation-os): Remove uses of the 'title'
field of 'file-system'; use 'file-system-label' as appropriate.
* gnu/system/vm.scm (system-disk-image, system-qemu-image): Likewise.
* gnu/tests.scm (%simple-os): Likewise.
* gnu/tests/install.scm (%minimal-os, %minimal-extlinux-os)
(%minimal-os-on-vda, %separate-home-os, %separate-store-os)
(%raid-root-os, %encrypted-root-os, %btrfs-root-os): Likewise.
* gnu/build/shepherd.scm (default-mounts)[tmpfs]: Likewise.
* tests/guix-system.sh: Likewise.
* tests/system.scm (%root-fs): Likewise.
("operating-system-boot-mapped-devices, implicit dependency"): Likewise.
---
 gnu/build/shepherd.scm |  3 +--
 gnu/system/install.scm |  4 +---
 gnu/system/vm.scm  |  2 --
 gnu/tests.scm  |  3 +--
 gnu/tests/install.scm  | 26 --
 tests/guix-system.sh   |  9 +++--
 tests/system.scm   |  6 ++
 7 files changed, 16 insertions(+), 37 deletions(-)

diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm
index c955e3c..f383259 100644
--- a/gnu/build/shepherd.scm
+++ b/gnu/build/shepherd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Ludovic Courtès 
+;;; Copyright © 2017, 2018 Ludovic Courtès 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -55,7 +55,6 @@
   (define (tmpfs directory)
 (file-system
   (device "none")
-  (title 'device)
   (mount-point directory)
   (type "tmpfs")
   (check? #f)))
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 3efff91..acc9f15 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -328,8 +328,7 @@ You have been warned.  Thanks for being so brave.\x1b[0m
  ;; the appropriate one.
  (cons* (file-system
   (mount-point "/")
-  (device "GuixSD_image")
-  (title 'label)
+  (device (file-system-label "GuixSD_image"))
   (type "ext4"))
 
 ;; Make /tmp a tmpfs instead of keeping the overlayfs.  This
@@ -341,7 +340,6 @@ You have been warned.  Thanks for being so brave.\x1b[0m
 (file-system
   (mount-point "/tmp")
   (device "none")
-  (title 'device)
   (type "tmpfs")
   (check? #f))
 
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 7f80147..4cffc71 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -571,7 +571,6 @@ to USB sticks meant to be read-only."
   (file-systems (cons (file-system
 (mount-point "/")
 (device root-uuid)
-(title 'uuid)
 (type file-system-type))
   file-systems-to-keep)
 
@@ -636,7 +635,6 @@ of the GNU system as described by OS."
   (file-systems (cons (file-system
 (mount-point "/")
 (device root-uuid)
-(title 'uuid)
 (type file-system-type))
   file-systems-to-keep)
 (mlet* %store-monad
diff --git a/gnu/tests.scm b/gnu/tests.scm
index 2aef370..5d4a4f8 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.scm
@@ -208,8 +208,7 @@ the system under test."
  (bootloader grub-bootloader)
  (target "/dev/sdX")))
 (file-systems (cons (file-system
-  (device "my-root")
-  (title 'label)
+  (device (file-system-label "my-root"))
   (mount-point "/")
   (type "ext4"))
 %base-file-systems))
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index e3bb1b4..4764fff 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -66,8 +66,7 @@
  (target "/dev/vdb")))
 (kernel-arguments '("console=ttyS0"))
 (file-systems (cons (file-system
-  (device "my-root")
-  (title 'label)
+  (device (file-system-label "my-root"))
   (mount-point "/")
   (type "ext4"))
 %base-file-systems))
@@ -105,8 +104,7 @@
  (target "/dev/vdb")))
 (kernel-arguments '("console=ttyS0"))
 (file-systems (cons (file-system
-  (device "my-root")
-  (title 'label)
+  (device (file-system-label "my-root"))
   

05/08: gnu: Add fifo-map.

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 385357c0d7ebdb7102133095de1667f43ad00116
Author: Fis Trivial 
Date:   Mon May 28 08:10:26 2018 +

gnu: Add fifo-map.

* gnu/packages/cpp.scm (fifo-map): New variable.
* gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch: New file.
* gnu/packages/patches/fifo-map-remove-catch.hpp.patch: New file.
* gnu/local.mk: Add new patch files.

Signed-off-by: Ludovic Courtès 
---
 gnu/local.mk   |  2 +
 gnu/packages/cpp.scm   | 44 ++
 .../patches/fifo-map-fix-flags-for-gcc.patch   | 39 +++
 .../patches/fifo-map-remove-catch.hpp.patch| 30 +++
 4 files changed, 115 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 4d9edc3..7734586f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -661,6 +661,8 @@ dist_patch_DATA =   
\
   %D%/packages/patches/fasthenry-spFactor.patch\
   %D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch\
   %D%/packages/patches/fcgi-2.4.0-poll.patch   \
+  %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch\
+  %D%/packages/patches/fifo-map-remove-catch.hpp.patch \
   %D%/packages/patches/file-CVE-2017-1000249.patch \
   %D%/packages/patches/findutils-localstatedir.patch   \
   %D%/packages/patches/findutils-test-xargs.patch  \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 80ffc1e..2caf6af 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -151,3 +151,47 @@ the same arithmetic operators as for single values.  It 
also provides
 accelerated implementation of common mathematical functions operating on
 batches.")
 (license license:bsd-3)))
+
+(define-public fifo-map
+  (let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9")
+ (revision "0")
+ (version (git-version "1.1.1" revision commit)))
+(package
+  (name "fifo-map")
+  (version version)
+  (home-page "https://github.com/nlohmann/fifo_map;)
+  (source (origin
+(method git-fetch)
+(uri (git-reference
+  (url home-page)
+  (commit commit)))
+(sha256
+ (base32
+  "0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196"))
+(patches (search-patches "fifo-map-remove-catch.hpp.patch"
+ "fifo-map-fix-flags-for-gcc.patch"))
+(file-name (git-file-name name version))
+(modules '((guix build utils)))
+(snippet '(delete-file-recursively "./test/thirdparty"
+  (native-inputs
+   `(("catch2" ,catch-framework2)))
+  (build-system cmake-build-system)
+  (arguments
+   `(#:phases
+ (modify-phases %standard-phases
+   (replace 'check
+ (lambda _
+   (invoke "./unit")))
+   (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+   (let* ((out (assoc-ref outputs "out"))
+  (inc (string-append out "/include/fifo_map")))
+ (with-directory-excursion
+ (string-append "../" ,name "-" ,version "-checkout")
+   (install-file "src/fifo_map.hpp" inc)
+   #t)))
+  (synopsis "FIFO-ordered associative container for C++")
+  (description "Fifo_map is a C++ header only library for associative
+container which uses the order in which keys were inserted to the container
+as ordering relation.")
+  (license license:expat
diff --git a/gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch 
b/gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch
new file mode 100644
index 000..59b7105
--- /dev/null
+++ b/gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch
@@ -0,0 +1,39 @@
+From 0871db30bd73d112a434f54572d34cca28de61c5 Mon Sep 17 00:00:00 2001
+From: fis 
+Date: Sat, 26 May 2018 22:58:37 +0800
+Subject: [PATCH 2/2] * CMakeLists.txt: Fix flags for gcc.
+
+---
+ CMakeLists.txt | 18 ++
+ 1 file changed, 2 insertions(+), 16 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index eba147b..d60dcef 100644
+--- a/CMakeLists.txt
 b/CMakeLists.txt
+@@ -6,20 +6,6 @@ add_executable(unit src/fifo_map.hpp test/unit.cpp)
+ 
+ target_include_directories(unit PRIVATE "test" "src")
+ 
+-if(MSVC)
+-set(CMAKE_CXX_FLAGS
+-"/EHsc"
+-)
++set(CMAKE_CXX_FLAGS "-std=c++11 -fpermissive")
+ 
+-STRING(REPLACE "/O2" "/Od" CMAKE_CXX_FLAGS_RELEASE 
${CMAKE_CXX_FLAGS_RELEASE})
+-
+-add_definitions(-D_SCL_SECURE_NO_WARNINGS)
+-else(MSVC)
+-set(CMAKE_CXX_FLAGS
+-"-std=c++11 -stdlib=libc++"
+-)

01/08: file-systems: Remove 'title' field and add .

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit a5acc17a3c10a3779b5b8b1a2565ef130be77e51
Author: Ludovic Courtès 
Date:   Fri May 18 13:43:07 2018 +0200

file-systems: Remove 'title' field and add .

The 'title' field was easily overlooked and was an endless source of
confusion.  Now, the value of the 'device' field is self-contained.

* gnu/system/file-systems.scm (): Change constructor name
to '%file-system'.
[title]: Remove.
(): New record type with printer.
(report-deprecation, device-expression)
(process-file-system-declaration, file-system): New macros.
(file-system-title): New procedure.
(file-system->spec, spec->file-system): Adjust to handle
.
* gnu/system.scm (bootable-kernel-arguments): Add case for
'file-system-label?'.
(read-boot-parameters): Likewise.
(mapped-device-user): Avoid 'file-system-title'.
(fs->boot-device): Remove.
(operating-system-boot-parameters): Use 'file-system-device' instead of
'fs->boot-device'.
(device->sexp): Add case for 'file-system-label?'.
* gnu/bootloader/grub.scm (grub-root-search): Add case for
'file-system-label?'.
* gnu/system/examples/bare-bones.tmpl,
gnu/system/examples/beaglebone-black.tmpl,
gnu/system/examples/lightweight-desktop.tmpl,
gnu/system/examples/vm-image.tmpl: Remove uses of 'title'.
* gnu/system/vm.scm (virtualized-operating-system): Remove uses of
'file-system-title'.
* guix/scripts/system.scm (check-file-system-availability): Likewise,
and adjust fix-it hint.
(check-initrd-modules)[file-system-/dev]: Likewise.
* gnu/build/file-systems.scm (canonicalize-device-spec): Remove 'title'
parameter.
[canonical-title]: Remove.
Match on SPEC's type rather than on CANONICAL-TITLE.
(mount-file-system): Adjust caller.
* gnu/build/linux-boot.scm (boot-system): Interpret ROOT here.
* gnu/services/base.scm (file-system->fstab-entry): Remove use of
'file-system-title'.
* doc/guix.texi (File Systems): Remove documentation of the 'title'
field.  Rewrite documentation of 'device' and document
'file-system-label'.
---
 doc/guix.texi|  48 ++--
 gnu/bootloader/grub.scm  |  10 ++-
 gnu/build/file-systems.scm   |  54 --
 gnu/build/linux-boot.scm |  12 ++-
 gnu/services/base.scm|  17 ++---
 gnu/system.scm   |  38 +-
 gnu/system/examples/bare-bones.tmpl  |   3 +-
 gnu/system/examples/beaglebone-black.tmpl|   3 +-
 gnu/system/examples/lightweight-desktop.tmpl |   4 +-
 gnu/system/examples/vm-image.tmpl|   3 +-
 gnu/system/file-systems.scm  | 108 ---
 gnu/system/vm.scm|   5 +-
 guix/scripts/system.scm  |  31 
 13 files changed, 202 insertions(+), 134 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 5129b99..5eee40f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -9210,20 +9210,31 @@ This is a string specifying the type of the file 
system---e.g.,
 This designates the place where the file system is to be mounted.
 
 @item @code{device}
-This names the ``source'' of the file system.  By default it is the name
-of a node under @file{/dev}, but its meaning depends on the @code{title}
-field described below.
+This names the ``source'' of the file system.  It can be one of three
+things: a file system label, a file system UUID, or the name of a
+@file{/dev} node.  Labels and UUIDs offer a way to refer to file
+systems without having to hard-code their actual device
+name@footnote{Note that, while it is tempting to use
+@file{/dev/disk/by-uuid} and similar device names to achieve the same
+result, this is not recommended: These special device nodes are created
+by the udev daemon and may be unavailable at the time the device is
+mounted.}.
 
-@item @code{title} (default: @code{'device})
-This is a symbol that specifies how the @code{device} field is to be
-interpreted.
+@findex file-system-label
+File system labels are created using the @code{file-system-label}
+procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are
+plain strings.  Here's an example of a file system referred to by its
+label, as shown by the @command{e2label} command:
 
-When it is the symbol @code{device}, then the @code{device} field is
-interpreted as a file name; when it is @code{label}, then @code{device}
-is interpreted as a file system label name; when it is @code{uuid},
-@code{device} is interpreted as a file system unique identifier (UUID).
+@example
+(file-system
+  (mount-point "/home")
+  (type "ext4")
+  (device (file-system-label "my-home")))
+@end example
 
-UUIDs may be converted from their string representation (as shown by the
+@findex uuid
+UUIDs are converted from their 

07/08: gnu: Add xtl.

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 6f3c850618ff67d508addd1394a41401aa3be564
Author: Fis Trivial 
Date:   Mon May 28 08:12:05 2018 +

gnu: Add xtl.

* gnu/packages/cpp.scm (xtl): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/cpp.scm | 33 +
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 4831ab0..cc53750 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -238,3 +238,36 @@ as ordering relation.")
 (description "JSON for Modern C++ is a C++ JSON library that provides
 intutive syntax and trivial integration.")
 (license license:expat)))
+
+(define-public xtl
+  (package
+(name "xtl")
+(version "0.4.8")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/QuantStack/xtl/archive/;
+version ".tar.gz"))
+  (sha256
+   (base32
+"05bcz9y590b77bxcip0k31rgsapmkwqi1smvsvc84zz7m87d4jvy"))
+  (file-name (string-append name "-" version ".tar.gz"
+(native-inputs
+ `(("googletest" ,googletest)
+   ("json-modern-cxx" ,json-modern-cxx)))
+(arguments
+ `(#:configure-flags
+   '("-DBUILD_TESTS=ON")
+   #:phases
+   (modify-phases %standard-phases
+ (replace 'check
+   (lambda* _
+ (with-directory-excursion "test"
+   (invoke "./test_xtl")
+   #t))
+(home-page "https://github.com/QuantStack/xtl;)
+(build-system cmake-build-system)
+(synopsis "C++ template library providing some basic tools")
+(description "xtl is a C++ header-only template library providing basic
+tools (containers, algorithms) used by other QuantStack packages.")
+(license license:bsd-3)))



08/08: gnu: Add xtensor.

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 70770b9381638b136b92970f67023f6b77fc4460
Author: Fis Trivial 
Date:   Mon May 28 08:12:42 2018 +

gnu: Add xtensor.

* gnu/packages/algebra.scm (xtensor): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/algebra.scm | 36 
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 210b734..bf62144 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -27,7 +27,9 @@
 (define-module (gnu packages algebra)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages ed)
   #:use-module (gnu packages flex)
@@ -774,3 +776,37 @@ features, and more.")
 ;; Most of the code is MPLv2, with a few files under LGPLv2.1+ or BSD-3.
 ;; See 'COPYING.README' for details.
 (license license:mpl2.0)))
+
+(define-public xtensor
+  (package
+(name "xtensor")
+(version "0.15.9")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/QuantStack/xtensor/archive/;
+version ".tar.gz"))
+  (sha256
+   (base32
+"0mlsw4p1w5mh7pscddfdamz27zq3wml5qla3vbzgvif34vsqc8ra"))
+  (file-name (string-append name "-" version ".tar.gz"
+(build-system cmake-build-system)
+(native-inputs
+ `(("googletest" ,googletest)
+   ("xtl" ,xtl)))
+(arguments
+ `(#:configure-flags
+   '("-DBUILD_TESTS=ON")
+   #:test-target "xtest"))
+(home-page "http://quantstack.net/xtensor;)
+(synopsis "C++ tensors with broadcasting and lazy computing")
+(description "xtensor is a C++ library meant for numerical analysis with
+multi-dimensional array expressions.
+
+xtensor provides:
+@itemize
+@item an extensible expression system enabling lazy broadcasting.
+@item an API following the idioms of the C++ standard library.
+@item tools to manipulate array expressions and build upon xtensor.
+@end itemize")
+(license license:bsd-3)))



04/08: gnu: Add amalgamate.

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit ad8a4d6dc8de0576640ff78b4f3e4307ec9fa25c
Author: Fis Trivial 
Date:   Mon May 28 08:09:35 2018 +

gnu: Add amalgamate.

This commit also re-orders some module statements.

* gnu/packages/code.scm (amalgamate): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/code.scm | 58 ++-
 1 file changed, 53 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index fc1c000..4f132b9 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -30,12 +30,16 @@
 (define-module (gnu packages code)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autogen)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages databases)
@@ -43,15 +47,13 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages pcre)
-  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages autogen)
   #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages autotools)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages lua)
-  #:use-module (gnu packages bash))
+  #:use-module (gnu packages lua))
 
 ;;; Tools to deal with source code: metrics, cross-references, etc.
 
@@ -645,3 +647,49 @@ deal with incomplete or malformed syntax.  GNU indent 
offers several
 extensions over the standard utility.")
(license license:gpl3+)
(home-page "https://www.gnu.org/software/indent/;)))
+
+(define-public amalgamate
+  (let* ((commit "c91f07eea1133aa184f652b8f1398eaf03586208")
+ (revision "0")
+ (version (git-version "1.1.1" revision commit)))
+(package
+  (name "amalgamate")
+  (version version)
+  (home-page "https://github.com/edlund/amalgamate;)
+  (source
+   (origin
+ (method git-fetch)
+ (uri (git-reference
+   (url home-page)
+   (commit commit)))
+ (sha256
+  (base32
+   "0cllaraw8mxs8q2nr28nhgzkb417gj2wcklqg59w84f4lc78k3yb"))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+  '(substitute* "test.sh"
+ (("test_command \"cc -Wall -Wextra -o source.out source.c\"" all)
+  "test_command \"gcc -Wall -Wextra -o source.out source.c\"")
+  (build-system gnu-build-system)
+  (inputs
+   `(("python" ,python-wrapper)))
+  (arguments
+   `(#:phases
+ (modify-phases %standard-phases
+   (delete 'configure)
+   (delete 'build)
+   (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+   (let* ((out (assoc-ref outputs "out"))
+  (bin (string-append out "/bin")))
+ (install-file "amalgamate.py" bin
+   (replace 'check
+ (lambda _
+   (invoke "./test.sh"))
+  (synopsis "Tool for amalgamating C source and header files")
+  ;; The package is indeed a script file, and the term "amalgamate.py" is
+  ;; used by upstream.
+  (description "amalgamate.py aims to make it easy to use SQLite-style C
+source and header amalgamation in projects.")
+  (license license:bsd-3



branch master updated (25816c4 -> 70770b9)

2018-05-28 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  25816c4   gnu: icecat: Add more fixes from upstream mozilla-esr52.
   new  a5acc17   file-systems: Remove 'title' field and add 
.
   new  9ceeca0   system: Remove uses of the 'title' field of .
   new  56e72c0   gnu: Add catch-framework2.
   new  ad8a4d6   gnu: Add amalgamate.
   new  385357c   gnu: Add fifo-map.
   new  e3c0676   gnu: Add json-modern-cxx.
   new  6f3c850   gnu: Add xtl.
   new  70770b9   gnu: Add xtensor.

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/guix.texi  |  48 +
 gnu/bootloader/grub.scm|  10 +-
 gnu/build/file-systems.scm |  54 +++---
 gnu/build/linux-boot.scm   |  12 ++-
 gnu/build/shepherd.scm |   3 +-
 gnu/local.mk   |   2 +
 gnu/packages/algebra.scm   |  36 +++
 gnu/packages/check.scm |  20 
 gnu/packages/code.scm  |  58 +-
 gnu/packages/cpp.scm   | 120 +
 .../patches/fifo-map-fix-flags-for-gcc.patch   |  39 +++
 .../patches/fifo-map-remove-catch.hpp.patch|  30 ++
 gnu/services/base.scm  |  17 ++-
 gnu/system.scm |  38 ---
 gnu/system/examples/bare-bones.tmpl|   3 +-
 gnu/system/examples/beaglebone-black.tmpl  |   3 +-
 gnu/system/examples/lightweight-desktop.tmpl   |   4 +-
 gnu/system/examples/vm-image.tmpl  |   3 +-
 gnu/system/file-systems.scm| 108 ---
 gnu/system/install.scm |   4 +-
 gnu/system/vm.scm  |   7 +-
 gnu/tests.scm  |   3 +-
 gnu/tests/install.scm  |  26 ++---
 guix/scripts/system.scm|  31 +++---
 tests/guix-system.sh   |   9 +-
 tests/system.scm   |   6 +-
 26 files changed, 518 insertions(+), 176 deletions(-)
 create mode 100644 gnu/packages/patches/fifo-map-fix-flags-for-gcc.patch
 create mode 100644 gnu/packages/patches/fifo-map-remove-catch.hpp.patch



03/08: gnu: Add catch-framework2.

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 56e72c0084f14c854502df4cbe69406a3a214416
Author: Fis Trivial 
Date:   Mon May 28 08:08:33 2018 +

gnu: Add catch-framework2.

* gnu/packages/check.scm (catch-framework2): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/check.scm | 20 
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 712e470..b9c10e5 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -161,6 +161,8 @@ supervised tests.")
(base32
 "1027cyfx5gsjkdkaf6c2wnjh68882grw8n672018cj3vs9lrhmix"))
 
+;; When dependent packages upgraded to use newer version of catch, this one 
should
+;; be removed.
 (define-public catch-framework
   (package
 (name "catch")
@@ -199,6 +201,24 @@ supervised tests.")
 multi-paradigm automated test framework for C++ and Objective-C.")
 (license license:boost1.0)))
 
+(define-public catch-framework2
+  (package
+(name "catch2")
+(version "1.12.2")
+(home-page "https://github.com/catchorg/Catch2;)
+(source (origin
+  (method url-fetch)
+  (uri (string-append home-page "/archive/v" version ".tar.gz"))
+  (sha256
+   (base32
+"0g2ysxc6adqca5wh7nsicnxb9wkxg75cd5izjsl39rcj0v903gr7"))
+  (file-name (string-append name "-" version ".tar.gz"
+(build-system cmake-build-system)
+(synopsis "Automated test framework for C++ and Objective-C")
+(description "Catch2 stands for C++ Automated Test Cases in Headers and is
+a multi-paradigm automated test framework for C++ and Objective-C.")
+(license license:boost1.0)))
+
 (define-public cmdtest
   (package
 (name "cmdtest")



06/08: gnu: Add json-modern-cxx.

2018-05-28 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit e3c0676adfb954f58b9237629d82ad2030159f40
Author: Fis Trivial 
Date:   Mon May 28 08:11:23 2018 +

gnu: Add json-modern-cxx.

* gnu/packages/cpp.scm (json-modern-cxx): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/cpp.scm | 43 +++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 2caf6af..4831ab0 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -29,7 +29,9 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls))
 
@@ -195,3 +197,44 @@ batches.")
 container which uses the order in which keys were inserted to the container
 as ordering relation.")
   (license license:expat
+
+(define-public json-modern-cxx
+  (package
+(name "json-modern-cxx")
+(version "3.1.2")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "https://github.com/nlohmann/json/archive/v; version ".tar.gz"))
+   (sha256
+(base32
+ "0m5fhdpx2qll933db2nsi30nns3cifavzvijzz6mxhdkpmngmzz8"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (modules '((guix build utils)))
+   (snippet
+'(begin
+   (delete-file-recursively "./third_party")
+   (delete-file-recursively "./test/thirdparty")
+   (delete-file-recursively "./benchmarks/thirdparty")
+   ;; Splits catch and fifo_map
+   (with-directory-excursion "test/src"
+ (let ((files (find-files "." ".*\\.cpp")))
+   (substitute* files
+ (("#include ?\"(catch.hpp)\"" all catch-hpp)
+  (string-append "#include ")))
+   (substitute* files
+ (("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
+  (string-append
+   "#include ")
+(native-inputs
+ `(("amalgamate" ,amalgamate)))
+(inputs
+ `(("catch2" ,catch-framework2)
+   ("fifo-map" ,fifo-map)))
+(home-page "https://github.com/nlohmann/json;)
+(build-system cmake-build-system)
+(synopsis "JSON parser and printer library for C++")
+(description "JSON for Modern C++ is a C++ JSON library that provides
+intutive syntax and trivial integration.")
+(license license:expat)))



01/01: website: ssh-agent: Fix some minor typos.

2018-05-27 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix-artwork.

commit 4300a9e88b2387ded7e7298a143bc1ce5923759d
Author: Chris Marusich 
Date:   Sat May 26 12:05:01 2018 -0700

website: ssh-agent: Fix some minor typos.

* website/posts/use-stock-ssh-agent-everywhere.md: Fix some minor
typos.

Signed-off-by: Ludovic Courtès 
---
 website/posts/use-stock-ssh-agent-everywhere.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/website/posts/use-stock-ssh-agent-everywhere.md 
b/website/posts/use-stock-ssh-agent-everywhere.md
index b6cdf72..436ea64 100644
--- a/website/posts/use-stock-ssh-agent-everywhere.md
+++ b/website/posts/use-stock-ssh-agent-everywhere.md
@@ -136,7 +136,7 @@ feature of GNOME Keyring will override the environment 
variables set
 by OpenSSH's `ssh-agent`, so commands like `ssh-add` will wind up
 communicating with the GNOME Keyring instead of the `ssh-agent` you
 launched in your `~/.xsession`.  This is bad because, as previously
-mentioned, GNOME Keyring version 3.27 and earlier don't support as
+mentioned, GNOME Keyring version 3.27 or earlier doesn't support as
 many uses cases as OpenSSH's `ssh-agent`.
 
 How can we work around this problem?
@@ -253,7 +253,7 @@ refer to the [the Guile
 
manual](https://www.gnu.org/software/guile/manual/html_node/List-Constructors.html#index-cons_002a).
 
 Now the question is: what should `my-gnome-desktop-configuration` be?
-Well, if we examine [the docstring for this record type in the Guix
+Well, if we examine [the definition of this record type in the Guix
 
source](https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/desktop.scm?id=263c9941a1e523b360ca9f42d1ed6b11e6e6e285#n799),
 we see the following:
 



branch master updated (f0cd736 -> 4300a9e)

2018-05-27 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix-artwork.

  from  f0cd736   website: ssh-agent: Adjust tags and date, add footer.
   new  4300a9e   website: ssh-agent: Fix some minor typos.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 website/posts/use-stock-ssh-agent-everywhere.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)



01/05: gnu: xapers: Fix recommended packages

2018-05-26 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit e0f415b2b56ed9319fda7f182a91692a36368c40
Author: Adam Massmann 
Date:   Sun May 20 18:50:03 2018 -0400

gnu: xapers: Fix recommended packages

* gnu/packages/search.scm (xapers): [inputs]: remove python, poppler
[propagated-inputs]: add poppler, xclip, xdg-utils.
[arguments]: modify-phases to disable x-terminal options.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/search.scm | 39 +--
 1 file changed, 33 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 02deb5c..5c8539d 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -32,12 +32,14 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml))
 
 (define-public xapian
@@ -326,27 +328,52 @@ search the generated indexes.")
  "0ykz6hn3qj46w3c99d6q0pi5ncq2894simcl7vapv047zm3cylmd"
 (build-system python-build-system)
 (propagated-inputs
- `(("python-urwid" ,python-urwid)))
-(inputs
  `(("poppler" ,poppler)
-   ("python" ,python)
-   ("python-latexcodec" ,python-latexcodec)
+   ("python-urwid" ,python-urwid)
+   ("xclip" ,xclip)
+   ("xdg-utils" ,xdg-utils)))
+(inputs
+ `(("python-latexcodec" ,python-latexcodec)
("python-pybtex" ,python-pybtex)
("python-pycurl" ,python-pycurl)
("python-pyyaml" ,python-pyyaml)
("python-six" ,python-six)
("python-xapian-bindings" ,python-xapian-bindings)))
 (arguments
- `(#:phases
+ `(#:modules ((ice-9 rdelim)
+  (guix build python-build-system)
+  (guix build utils))
+   #:phases
(modify-phases %standard-phases
  (add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys)
+ (define (purge-term-support input output)
+   (let loop ((line (read-line input)))
+ (if (string-prefix? "if [[ \"$term\"" line)
+ (begin (display "eval \"$cmd\"\n" output)
+#t)
+ (begin (display (string-append line "\n") output)
+(loop (read-line input))
  (let* ((out (assoc-ref outputs "out"))
 (bin (string-append out "/bin"))
+(adder-out (string-append bin "/xapers-adder"))
 (man1 (string-append out "/share/man/man1")))
(install-file "man/man1/xapers.1"  man1)
(install-file "man/man1/xapers-adder.1" man1)
-   (install-file "bin/xapers-adder" bin)))
+   ;; below is equivalent to setting --no-term option
+   ;; permanently on; this is desirable to avoid imposing
+   ;; an x-terminal installation on the user but breaks
+   ;; some potential xapers-adder uses like auto browser
+   ;; pdf handler, but user could instead still use
+   ;; e.g. "xterm -e xapers-adder %F" for same use.
+   ;; alternatively we could propagate xterm as an input
+   ;; and replace 'x-terminal-emulator' with 'xterm'
+   (call-with-input-file "bin/xapers-adder"
+ (lambda (input)
+   (call-with-output-file adder-out
+ (lambda (output)
+   (purge-term-support input output)
+   (chmod adder-out #o555)))
 (home-page "https://finestructure.net/xapers/;)
 (synopsis "Personal document indexing system")
 (description



04/05: gnu: gifsicle: New variable.

2018-05-26 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 0d529a7c6a4ee47ce6ed2153697219318ab16703
Author: Pierre Neidhardt 
Date:   Sun May 20 14:09:13 2018 +0200

gnu: gifsicle: New variable.

* gnu/packages/image.scm (gifsicle): New variable.

Co-authored-by: Ludovic Courtès 
---
 gnu/packages/image.scm | 48 
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index b88f6cf..d6c39e5 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2017 Julien Lepiller 
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal 
 ;;; Copyright © 2018 Fis Trivial 
+;;; Copyright © 2018 Pierre Neidhardt 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1400,3 +1401,50 @@ Features:
 images stored in the JPEG format with R.  It can read and write both files and
 in-memory raw vectors.")
(license license:gpl2+)))
+
+(define-public gifsicle
+  (package
+   (name "gifsicle")
+   (version "1.91")
+   (source
+ (origin
+   (method url-fetch)
+   (uri (string-append "http://www.lcdf.org/gifsicle/gifsicle-;
+   version ".tar.gz"))
+   (sha256
+(base32
+ "00586z1yz86qcblgmf16yly39n4lkjrscl52hvfxqk14m81fckha"
+   (build-system gnu-build-system)
+   (arguments
+'(#:phases
+  (modify-phases %standard-phases
+(add-before 'check 'patch-tests
+  (lambda _
+(substitute* "test/testie"
+  (("/usr/bin/perl")
+   (which "perl"))
+  (("/bin/sh")
+   (which "sh"))
+  (("/bin/rm")
+   (which "rm")))
+#t)
+   (native-inputs `(("perl" ,perl))) ; Only for tests.
+   (inputs `(("libx11" ,libx11)))
+   (home-page "http://www.lcdf.org/gifsicle/;)
+   (synopsis "Edit GIF images and animations")
+   (description "Gifsicle is a command-line GIF image manipulation tool that:
+
+@itemize
+@item Provides a batch mode for changing GIFs in place.
+@item Prints detailed information about GIFs, including comments.
+@item Control over interlacing, comments, looping, transparency, etc.
+@item Creates well-behaved GIFs: removes redundant colors, only uses local 
color
+tables, etc.
+@item Shrinks colormaps and change images to use the Web-safe palette.
+@item Optimizes GIF animations, or unoptimizes them for easier editing.
+@end itemize
+
+Two other programs are included with Gifsicle: @command{gifview} is a
+lightweight animated-GIF viewer, and @command{gifdiff} compares two GIFs for
+identical visual appearance.")
+   (license license:gpl2+)))



03/05: gnu: Add upx.

2018-05-26 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 5735256d0b5161ae99ad6e531748fce2d1bfa1b0
Author: Pierre Neidhardt 
Date:   Sat May 26 22:10:57 2018 +0200

gnu: Add upx.

* gnu/packages/compression.scm (upx): New variable.
---
 gnu/packages/compression.scm | 50 
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 4ce481a..29518b1 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2174,3 +2174,53 @@ Decompression requires no additional memory.
 Compared to LZO, the UCL algorithms achieve a better compression ratio but
 decompression is a little bit slower.")
 (license license:gpl2+)))
+
+(define-public upx
+  (package
+(name "upx")
+(version "3.94")
+(source (origin
+ (method url-fetch)
+ (uri (string-append 
"https://github.com/upx/upx/releases/download/v;
+ version "/" name "-" version "-src.tar.xz"))
+ (sha256
+  (base32
+   "08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"
+(build-system gnu-build-system)
+(native-inputs `(("perl" ,perl)
+ ("ucl" ,ucl)))
+(inputs `(("zlib" ,zlib)))
+(arguments
+ `(#:make-flags
+   (list "all"
+ ;; CHECK_WHITESPACE does not seem to work.
+ ;; See 
https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/upx.
+ "CHECK_WHITESPACE=true")
+   #:phases
+   (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (delete 'install)
+ (add-before 'build 'patch-exec-bin-sh
+   (lambda _
+ (substitute* (find-files "Makefile")
+   (("/bin/sh") (which "sh")))
+ (substitute* "src/Makefile"
+   (("/bin/sh") (which "sh")))
+ #t))
+ (add-after 'build 'install-upx
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+   (bin (string-append out "/bin")))
+   (mkdir-p bin)
+   (copy-file "src/upx.out" (string-append bin "/upx")))
+ #t))
+ )))
+(home-page "https://upx.github.io/;)
+(synopsis "Compression tool for executables")
+(description
+ "The Ultimate Packer for eXecutables (UPX) is an executable file
+compressor.  UPX typically reduces the file size of programs and shared
+libraries by around 50%--70%, thus reducing disk space, network load times,
+download times, and other distribution and storage costs.")
+(license license:gpl2+)))



02/05: gnu: Add ucl.

2018-05-26 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 719871771d4fd6482878d1fedc3505c5d54c6622
Author: Pierre Neidhardt 
Date:   Fri May 18 00:51:09 2018 +0200

gnu: Add ucl.

* gnu/packages/compression.scm (ucl): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/compression.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 1cb0d20..4ce481a 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2017 Julien Lepiller 
 ;;; Copyright © 2018 Rutger Helling 
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal 
+;;; Copyright © 2018 Pierre Neidhardt 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2151,3 +2152,25 @@ with @code{deflate} but offers more dense compression.
 
 The specification of the Brotli Compressed Data Format is defined in RFC 
7932.")
 (license license:expat)))
+
+(define-public ucl
+  (package
+(name "ucl")
+(version "1.03")
+(source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.oberhumer.com/opensource/;
+ name "/download/" name "-" version ".tar.gz"))
+ (sha256
+  (base32
+   "0j036lkwsxvm15gr29n8wn07cqq79dswjs9k54939ms5zngjjrdq"
+(build-system gnu-build-system)
+(home-page "http://www.oberhumer.com/opensource/ucl/;)
+(synopsis "Portable lossless data compression library")
+(description "UCL implements a number of compression algorithms that
+achieve an excellent compression ratio while allowing fast decompression.
+Decompression requires no additional memory.
+
+Compared to LZO, the UCL algorithms achieve a better compression ratio but
+decompression is a little bit slower.")
+(license license:gpl2+)))



05/05: gnu: Add pybind11.

2018-05-26 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit e8f4d53e037df2b88d8cadd9f933c03f27e8d0ab
Author: Fis Trivial 
Date:   Sat May 12 14:53:56 2018 +

gnu: Add pybind11.

* gnu/packages/python.scm (pybind11): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/python.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4cda719..39a367a 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -13440,3 +13440,32 @@ MacFUSE.  The binding is created using the standard 
@code{ctypes} library.")
 (description "@code{gdrivefs} provides a FUSE wrapper for Google Drive
 under Python 2.7.")
 (license license:gpl2)))
+
+(define-public pybind11
+  (package
+(name "pybind11")
+(version "2.2.3")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/pybind/pybind11/archive/v;
+version ".tar.gz"))
+  (sha256
+   (base32
+"1sj0x4fwsbnwdai5sxpw1l1vh8m5hpbkfk3zanxcbcgs39jpnfrs"))
+  (file-name (string-append name "-" version ".tar.gz"
+(build-system cmake-build-system)
+(native-inputs
+ `(("python" ,python)
+   ("python-pytest" ,python-pytest)))
+(arguments
+ `(#:test-target "check"))
+(home-page "https://github.com/pybind/pybind11/;)
+(synopsis "Seamless operability between C++11 and Python")
+(description "pybind11 is a lightweight header-only library that exposes
+C++ types in Python and vice versa, mainly to create Python bindings of
+existing C++ code.  Its goals and syntax are similar to the excellent
+Boost.Python library by David Abrahams: to minimize boilerplate code in
+traditional extension modules by inferring type information using compile-time
+introspection.")
+(license license:expat)))



branch master updated (dc70ff2 -> e8f4d53)

2018-05-26 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  dc70ff2   gnu: Add xonotic.
   new  e0f415b   gnu: xapers: Fix recommended packages
   new  7198717   gnu: Add ucl.
   new  5735256   gnu: Add upx.
   new  0d529a7   gnu: gifsicle: New variable.
   new  e8f4d53   gnu: Add pybind11.

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/compression.scm | 73 
 gnu/packages/image.scm   | 48 +
 gnu/packages/python.scm  | 29 ++
 gnu/packages/search.scm  | 39 +++
 4 files changed, 183 insertions(+), 6 deletions(-)



01/01: website: ssh-agent: Adjust tags and date, add footer.

2018-05-26 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix-artwork.

commit f0cd736dd694f0942f51f14d2d0d4e1b4ad9514d
Author: Ludovic Courtès 
Date:   Sat May 26 16:45:09 2018 +0200

website: ssh-agent: Adjust tags and date, add footer.

* website/posts/use-stock-ssh-agent-everywhere.md: Adjust tags and
date.
---
 website/posts/use-stock-ssh-agent-everywhere.md | 25 +++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/website/posts/use-stock-ssh-agent-everywhere.md 
b/website/posts/use-stock-ssh-agent-everywhere.md
index 80c3c98..b6cdf72 100644
--- a/website/posts/use-stock-ssh-agent-everywhere.md
+++ b/website/posts/use-stock-ssh-agent-everywhere.md
@@ -1,7 +1,7 @@
 title: Customize GuixSD: Use Stock SSH Agent Everywhere!
-date: 2018-05-25 23:46
+date: 2018-05-26 17:00
 author: Chris Marusich
-tags: desktop-environments, functional-package-management, 
programming-interfaces, scheme-api, system-services, transactional-upgrades, 
tutorial, ssh
+tags: Desktop environments, Functional package management, Programming 
interfaces, Scheme API, System services
 ---
 
 I frequently use SSH.  Since I don't like typing my password all the
@@ -408,3 +408,24 @@ published from: United States.
 The views expressed in this article are those of Chris Marusich and do
 not necessarily reflect the views of his past, present, or future
 employers.
+
+ About GNU Guix
+
+[GNU Guix](https://www.gnu.org/software/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
+[respects the user's
+freedom](https://www.gnu.org/distros/free-system-distribution-guidelines.html).
+
+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 [Guile](https://www.gnu.org/software/guile) modules,
+using extensions to the [Scheme](http://schemers.org) language.  GuixSD
+offers a declarative approach to operating system configuration
+management, and is highly customizable and hackable.
+
+GuixSD can be used on an i686, x86_64 and armv7 machines.  It is also
+possible to use Guix on top of an already installed GNU/Linux system,
+including on mips64el and aarch64.



branch master updated (f4060b9 -> f0cd736)

2018-05-26 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix-artwork.

  from  f4060b9   website: Add a post explaining how to use stock SSH agent.
   new  f0cd736   website: ssh-agent: Adjust tags and date, add footer.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 website/posts/use-stock-ssh-agent-everywhere.md | 25 +++--
 1 file changed, 23 insertions(+), 2 deletions(-)



01/05: vm: Pass "panic=1" to Linux.

2018-05-25 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 98e0b1288f387165f5a2240cb98f2ae1f8d2fc8a
Author: Ludovic Courtès 
Date:   Fri May 25 12:04:22 2018 +0200

vm: Pass "panic=1" to Linux.

* gnu/build/vm.scm (load-in-linux-vm): Always pass "panic=1" after 
'-append'.
---
 gnu/build/vm.scm | 13 +
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 989b74f..fa3ce77 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -106,11 +106,16 @@ the #:references-graphs parameter of 'derivation'."
  (not target-arm32?))
 '("-enable-kvm")
 '())
+
+  ;; Pass "panic=1" so that the guest dies upon error.
   "-append"
-  ;; The serial port name differs between emulated architectures/machines.
-  ,@(if target-arm32?
-`(,(string-append "console=ttyAMA0 --load=" builder))
-`(,(string-append "console=ttyS0 --load=" builder)))
+  ,(string-append "panic=1 --load=" builder
+
+  ;; The serial port name differs between emulated
+  ;; architectures/machines.
+  " console="
+  (if target-arm32? "ttyAMA0" "ttyS0"))
+
   ;; NIC is not supported on ARM "virt" machine, so use a user mode
   ;; network stack instead.
   ,@(if target-arm32?



02/05: gnu: superlu-dist: Update to 5.3.0.

2018-05-25 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 0921eff2a8b1f370379aa0cdd40be6de01f9d744
Author: Ludovic Courtès 
Date:   Sat May 12 17:52:42 2018 +0200

gnu: superlu-dist: Update to 5.3.0.

* gnu/packages/maths.scm (superlu-dist): Update to 5.3.0.
[source](snippet): Adapt file name and function names to new version.
Remove 'delete-file' call.
---
 gnu/packages/maths.scm | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index c1ef67f..73c79c3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2109,35 +2109,34 @@ also provides threshold-based ILU factorization 
preconditioners.")
 (define-public superlu-dist
   (package
 (name "superlu-dist")
-(version "3.3")
+(version "5.3.0")
 (source
  (origin
(method url-fetch)
(uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/;
"superlu_dist_" version ".tar.gz"))
(sha256
-(base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj"))
-  (modules '((guix build utils)))
+(base32 "0ja5ihqivkda1wd58y4lmzvmwssm9g91f70c5q0fzwhng6580h6y"))
+   (modules '((guix build utils)))
(snippet
 ;; Replace the non-free implementation of MC64 with a stub
 '(begin
(use-modules (ice-9 regex)
 (ice-9 rdelim))
-   (call-with-output-file "SRC/mc64ad.c"
+   (call-with-output-file "SRC/mc64ad_dist.c"
  (lambda (port)
(display "
 #include 
 #include 
-void mc64id_(int *a) {
+void mc64id_dist(int *a) {
   fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available.  
Aborting.\\n\");
   abort ();
 }
-void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
+void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
   int *h, int *i, int *j, int *k, double *l, int *m, int *n) {
   fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available.  
Aborting.\\n\");
   abort ();
 }\n" port)))
-   (delete-file "SRC/mc64ad.f.bak")
(substitute* "SRC/util.c";adjust default algorithm
  (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag")
   "RowPerm = NOROWPERM"



04/05: gnu: openmpi: Reintroduce PSM (Intel TrueScale) support.

2018-05-25 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit a560641a604c4766acfa2ff015a10c9465a721eb
Author: Ludovic Courtès 
Date:   Fri May 25 12:11:41 2018 +0200

gnu: openmpi: Reintroduce PSM (Intel TrueScale) support.

Fixes a regression introduced in
9129804230a3a4272731609f6418b876ba450575 whereby PSM would never be
added as an input.

* gnu/packages/mpi.scm (openmpi)[inputs]: Re-add PSM on supported
systems.
---
 gnu/packages/mpi.scm | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 5496ea9..e8d28d6 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -168,10 +168,10 @@ bind processes, and much more.")
  `(("hwloc" ,hwloc "lib")
("gfortran" ,gfortran)
("libfabric" ,libfabric)
-   ,@(match (%current-system)
-((member (package-supported-systems psm))
- `(("psm" ,psm)))
-(_ `()))
+   ,@(if (and (not (%current-target-system))
+  (member (%current-system) (package-supported-systems psm)))
+ `(("psm" ,psm))
+ '())
("rdma-core" ,rdma-core)
("valgrind" ,valgrind)))
 (native-inputs



03/05: gnu: openmpi: Update to 3.0.1.

2018-05-25 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 6df2a50ac4172b7109e4b86656ffd989e98184d7
Author: Ludovic Courtès 
Date:   Sat May 12 17:53:54 2018 +0200

gnu: openmpi: Update to 3.0.1.

* gnu/packages/mpi.scm (openmpi): Update to 3.0.1.
[arguments]: In 'remove-absolute' phase, adjust romio file name.
* gnu/packages/maths.scm (scalapack)[arguments]: Add
'set-test-environment' phase.
(slepc-openmpi)[arguments]: Likewise.
(mumps-openmpi)[arguments]: Likewise.
(superlu-dist)[arguments]: In 'check' phase, set
'OMPI_MCA_plm_rsh_agent'.
(scotch)[arguments]: In 'build-esmumps', likewise.
(p4est)[arguments]: Add 'set-test-environment' phase.
(hypre-openmpi)[arguments]: Likewise.
---
 gnu/packages/maths.scm | 74 --
 gnu/packages/mpi.scm   |  8 +++---
 2 files changed, 70 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 73c79c3..a36d233 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -554,7 +554,16 @@ problems in numerical linear algebra.")
("fortran" ,gfortran)
("lapack" ,lapack))) ;for testing only
 (arguments
- `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")))
+ `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")
+   #:phases (modify-phases %standard-phases
+  (add-before 'check 'set-test-environment
+(lambda _
+  ;; By default, running the test suite would fail because
+  ;; 'ssh' could not be found in $PATH.  Define this
+  ;; variable to placate Open MPI without adding a
+  ;; dependency on OpenSSH (the agent isn't used anyway.)
+  (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+  #t)
 (home-page "http://www.netlib.org/scalapack/;)
 (synopsis "Library for scalable numerical linear algebra")
 (description
@@ -1786,6 +1795,18 @@ arising after the discretization of partial differential 
equations.")
 (define-public slepc-openmpi
   (package (inherit slepc)
 (name "slepc-openmpi")
+(arguments
+ (substitute-keyword-arguments (package-arguments slepc)
+   ((#:phases phases '%standard-phases)
+`(modify-phases ,phases
+   (add-before 'check 'set-test-environment
+ (lambda _
+   ;; By default, running the test suite would fail because 'ssh'
+   ;; could not be found in $PATH.  Define this variable to
+   ;; placate Open MPI without adding a dependency on OpenSSH (the
+   ;; agent isn't used anyway.)
+   (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+   #t))
 (inputs
  `(("mpi" ,openmpi)
("arpack" ,arpack-ng-openmpi)
@@ -1955,11 +1976,18 @@ sparse system of linear equations A x = b using 
Guassian elimination.")
  (substitute-keyword-arguments (package-arguments mumps)
((#:phases phases)
 `(modify-phases ,phases
-   (replace
-'check
-(lambda _
-  ((assoc-ref ,phases 'check)
-   #:exec-prefix '("mpirun" "-n" "2"
+   (add-before 'check 'set-test-environment
+ (lambda _
+   ;; By default, running the test suite would fail because 'ssh'
+   ;; could not be found in $PATH.  Define this variable to
+   ;; placate Open MPI without adding a dependency on OpenSSH (the
+   ;; agent isn't used anyway.)
+   (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+   #t))
+   (replace 'check
+ (lambda _
+   ((assoc-ref ,phases 'check)
+#:exec-prefix '("mpirun" "-n" "2"
 (synopsis "Multifrontal sparse direct solver (with MPI)")))
 
 (define-public mumps-metis-openmpi
@@ -2201,6 +2229,11 @@ CDEFS   = -DAdd_"
  #t))
  (replace 'check
(lambda _
+ ;; By default, running the test suite would fail because 'ssh'
+ ;; could not be found in $PATH.  Define this variable to placate
+ ;; Open MPI without adding a dependency on OpenSSH (the agent
+ ;; isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
  (with-directory-excursion "EXAMPLE"
(and
 (zero? (system* "mpirun" "-n" "2"
@@ -2295,6 +2328,12 @@ YACC = bison -pscotchyy -y -b y
  (add-after
   'build 'build-esmumps
   (lambda _
+;; By default, running the test suite would fail because 'ssh'
+;; could not be found in $PATH.  Define this variable to placate
+;; Open MPI without adding a dependency on OpenSSH (the agent
+;; isn't used anyway.)
+(setenv 

05/05: gnu: openmpi: Add PSM2 (Intel OmniPath) support.

2018-05-25 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit fbe1b85b63a77d3a239b511b82021a48496360b9
Author: Ludovic Courtès 
Date:   Fri May 25 13:41:59 2018 +0200

gnu: openmpi: Add PSM2 (Intel OmniPath) support.

* gnu/packages/mpi.scm (openmpi)[inputs]: Add PSM2 on supported systems.
---
 gnu/packages/mpi.scm | 4 
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index e8d28d6..f34b08e 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -172,6 +172,10 @@ bind processes, and much more.")
   (member (%current-system) (package-supported-systems psm)))
  `(("psm" ,psm))
  '())
+   ,@(if (and (not (%current-target-system))
+  (member (%current-system) (package-supported-systems psm2)))
+ `(("psm2" ,psm2))
+ '())
("rdma-core" ,rdma-core)
("valgrind" ,valgrind)))
 (native-inputs



branch master updated (4806d39 -> fbe1b85)

2018-05-25 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  4806d39   gnu: Add python2-gdrivefs.
   new  98e0b12   vm: Pass "panic=1" to Linux.
   new  0921eff   gnu: superlu-dist: Update to 5.3.0.
   new  6df2a50   gnu: openmpi: Update to 3.0.1.
   new  a560641   gnu: openmpi: Reintroduce PSM (Intel TrueScale) support.
   new  fbe1b85   gnu: openmpi: Add PSM2 (Intel OmniPath) support.

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/build/vm.scm   | 13 +---
 gnu/packages/maths.scm | 87 +-
 gnu/packages/mpi.scm   | 20 +++-
 3 files changed, 93 insertions(+), 27 deletions(-)



branch master updated (109f022 -> 655ca71)

2018-05-24 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  109f022   gnu: gdal: Fix configure flags.
   new  9142052   gnu: ntfs-3g: Link 'mount.ntfs' to 'mount.ntfs-3g'.
   new  655ca71   gnu: Add xsimd.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/cpp.scm   | 27 +++
 gnu/packages/linux.scm | 14 +-
 2 files changed, 40 insertions(+), 1 deletion(-)



02/02: gnu: Add xsimd.

2018-05-24 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 655ca71329ebdc44d78c3ee1f7b68d29ff6b273b
Author: Fis Trivial 
Date:   Sat May 12 15:28:35 2018 +

gnu: Add xsimd.

* gnu/packages/cpp.scm (xsimd): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/cpp.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 3e9c39d..80ffc1e 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -124,3 +124,30 @@ unified access to TCP/UDP sockets, serial ports, console, 
and files streams.
 It also allows a server application to wait for any activity on any
 combination of these streams.")
 (license license:bsd-3)))
+
+(define-public xsimd
+  (package
+(name "xsimd")
+(version "4.1.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/QuantStack/xsimd/archive/;
+version ".tar.gz"))
+  (sha256
+   (base32
+"0x05l4xpqr9b66sm6lkf48n6x7999ks921x6k2hzkkg6mh3gqd46"))
+  (file-name (string-append name "-" version ".tar.gz"
+(home-page "https://github.com/QuantStack/xsimd;)
+(build-system cmake-build-system)
+(arguments
+ `(#:test-target "xtest"))
+(native-inputs
+ `(("googletest" ,googletest)))
+(synopsis "C++ wrappers for SIMD intrinsics and math implementations")
+(description "xsimd provides a unified means for using SIMD features for
+library authors.  Namely, it enables manipulation of batches of numbers with
+the same arithmetic operators as for single values.  It also provides
+accelerated implementation of common mathematical functions operating on
+batches.")
+(license license:bsd-3)))



01/02: gnu: ntfs-3g: Link 'mount.ntfs' to 'mount.ntfs-3g'.

2018-05-24 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 914205214cd906044411e6438be69c700e355b0d
Author: Pierre Neidhardt 
Date:   Wed May 23 14:42:36 2018 +0200

gnu: ntfs-3g: Link 'mount.ntfs' to 'mount.ntfs-3g'.

* gnu/packages/linux.scm (ntfs-3g)[arguments]: Add #:phases.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/linux.scm | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 7ec6285..70e6129 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -3432,7 +3432,19 @@ from userspace.")
"--with-fuse=external" ;use our own FUSE
"--enable-mount-helper"
"--enable-posix-acls"
-   "--enable-xattr-mappings")))
+   "--enable-xattr-mappings")
+   #:phases
+   (modify-phases %standard-phases
+ ;; If users install ntfs-3g, they probably want to make it the
+ ;; default driver as well, so we opt for sensible defaults and link
+ ;; mount.ntfs to mount.ntfs-3g.  (libmount tries to run mount.ntfs to
+ ;; mount NTFS filesystems.)
+ (add-after 'install 'install-link
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(sbin (string-append out "/sbin")))
+   (symlink "mount.ntfs-3g"
+(string-append sbin "/mount.ntfs"
 (home-page "https://www.tuxera.com/community/open-source-ntfs-3g/;)
 (synopsis "Read-write access to NTFS file systems")
 (description



branch master updated (2b47ebe -> 21290c3)

2018-05-23 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  2b47ebe   gnu: Add r-learnr.
   new  fb50664   gnu: Add go-github-com-burntsushi-toml.
   new  8c5a69a   gnu: Add go-github-com-getsentry-raven-go.
   new  0972411   gnu: Add go-github-com-hashicorp-go-version.
   new  c4230cd   gnu: Add go-github-com-jpillora-backoff.
   new  28380e0   gnu: Add go-github-com-stretchr-testify.
   new  21290c3   gnu: Add go-github-com-tevino-abool.

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/golang.scm | 171 
 1 file changed, 171 insertions(+)



05/06: gnu: Add go-github-com-stretchr-testify.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 28380e0e2854f2a78e4b2677d1cf57fe42468f4d
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 15:25:29 2018 +0200

gnu: Add go-github-com-stretchr-testify.

* gnu/packages/golang.scm (go-github-com-stretchr-testify): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/golang.scm | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e4caf82..e1ed996 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1411,3 +1411,37 @@ increment versions.")
   (description "This package is a simple exponential backoff counter in
 Go.")
   (license license:expat
+
+(define-public go-github-com-stretchr-testify
+  (let ((commit
+  "b1f989447a57594c728884458a39abf3a73447f7")
+(revision "0"))
+(package
+  (name "go-github-com-stretchr-testify")
+  (version (git-version "1.1.4" revision commit))
+  (source
+(origin
+  (method git-fetch)
+  (uri (git-reference
+ (url "https://github.com/stretchr/testify.git;)
+ (commit commit)))
+  (file-name (git-file-name name version))
+  (sha256
+(base32
+  "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"
+  (build-system go-build-system)
+  (arguments
+'(#:import-path "github.com/stretchr/testify"))
+  (home-page "https://github.com/stretchr/testify;)
+  (synopsis "Go helper library for tests and invariant checking")
+  (description "This package provide many tools for testifying that your
+code will behave as you intend.
+
+Features include:
+@itemize
+@item Easy assertions
+@item Mocking
+@item HTTP response trapping
+@item Testing suite interfaces and functions.
+@end itemize")
+  (license license:expat



03/06: gnu: Add go-github-com-hashicorp-go-version.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 0972411a5712e7d2b40f6a5fcca0c99a3d9534cb
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 15:24:08 2018 +0200

gnu: Add go-github-com-hashicorp-go-version.

* gnu/packages/golang.scm (go-github-com-hashicorp-go-version): New 
variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/golang.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 8acd528..01e5998 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1355,3 +1355,33 @@ package.")
   (description "This package is Go client API for the Sentry event/error
 logging system.")
   (license license:bsd-3
+
+(define-public go-github-com-hashicorp-go-version
+  (let ((commit
+ "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
+(revision "0"))
+(package
+  (name "go-github-com-hashicorp-go-version")
+  (version (git-version "0.0.0" revision commit))
+  (source
+   (origin
+ (method git-fetch)
+ (uri (git-reference
+   (url "https://github.com/hashicorp/go-version.git;)
+   (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+  (base32
+   "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"
+  (build-system go-build-system)
+  (arguments
+   '(#:import-path "github.com/hashicorp/go-version"))
+  (home-page
+   "https://github.com/hashicorp/go-version;)
+  (synopsis "Go library for parsing and verifying versions and version
+constraints")
+  (description "This package is a library for parsing versions and version
+constraints, and verifying versions against a set of constraints.  It can sort
+a collection of versions properly, handles prerelease/beta versions, can
+increment versions.")
+  (license license:mpl2.0



04/06: gnu: Add go-github-com-jpillora-backoff.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit c4230cda090b8a4d96c195173f968c7a603d6d36
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 15:24:42 2018 +0200

gnu: Add go-github-com-jpillora-backoff.

* gnu/packages/golang.scm (go-github-com-jpillora-backoff): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/golang.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 01e5998..e4caf82 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1385,3 +1385,29 @@ constraints, and verifying versions against a set of 
constraints.  It can sort
 a collection of versions properly, handles prerelease/beta versions, can
 increment versions.")
   (license license:mpl2.0
+
+(define-public go-github-com-jpillora-backoff
+  (let ((commit
+ "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
+(revision "0"))
+(package
+  (name "go-github-com-jpillora-backoff")
+  (version (git-version "0.0.0" revision commit))
+  (source
+   (origin
+ (method git-fetch)
+ (uri (git-reference
+   (url "https://github.com/jpillora/backoff.git;)
+   (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+  (base32
+   "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"
+  (build-system go-build-system)
+  (arguments
+   '(#:import-path "github.com/jpillora/backoff"))
+  (home-page "https://github.com/jpillora/backoff;)
+  (synopsis "Simple exponential backoff counter in Go")
+  (description "This package is a simple exponential backoff counter in
+Go.")
+  (license license:expat



06/06: gnu: Add go-github-com-tevino-abool.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 21290c35b1edd41a23a144cab5cf85bc99853511
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 15:25:42 2018 +0200

gnu: Add go-github-com-tevino-abool.

* gnu/packages/golang.scm (go-github-com-tevino-abool): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/golang.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e1ed996..7b09f56 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1445,3 +1445,29 @@ Features include:
 @item Testing suite interfaces and functions.
 @end itemize")
   (license license:expat
+
+(define-public go-github-com-tevino-abool
+  (let ((commit
+  "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
+(revision "0"))
+(package
+  (name "go-github-com-tevino-abool")
+  (version (git-version "0.0.0" revision commit))
+  (source
+(origin
+  (method git-fetch)
+  (uri (git-reference
+ (url "https://github.com/tevino/abool.git;)
+ (commit commit)))
+  (file-name (git-file-name name version))
+  (sha256
+(base32
+  "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"
+  (build-system go-build-system)
+  (arguments
+'(#:import-path "github.com/tevino/abool"))
+  (home-page "https://github.com/tevino/abool;)
+  (synopsis "Atomic boolean library for Go code")
+  (description "This package is atomic boolean library for Go code,
+optimized for performance yet simple to use.")
+  (license license:expat



01/06: gnu: Add go-github-com-burntsushi-toml.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit fb50664f6b0178446836786580e005960a1c2325
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 15:09:20 2018 +0200

gnu: Add go-github-com-burntsushi-toml.

* gnu/packages/golang.scm (go-github-com-burntsushi-toml): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/golang.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index fe6dfbe..3b65d58 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice 
 ;;; Copyright © 2018 Christopher Baines 
 ;;; Copyright © 2018 Tomáš Čech 
+;;; Copyright © 2018 Pierre-Antoine Rouby 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1300,3 +1301,30 @@ support functions for dealing with terminals, as 
commonly found on UNIX
 systems.")
   (home-page "https://go.googlesource.com/crypto/;)
   (license license:bsd-3
+
+(define-public go-github-com-burntsushi-toml
+  (let ((commit
+ "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
+(revision "0"))
+(package
+  (name "go-github-com-burntsushi-toml")
+  (version (git-version "0.0.0" revision commit))
+  (source
+   (origin
+ (method git-fetch)
+ (uri (git-reference
+   (url "https://github.com/BurntSushi/toml.git;)
+   (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+  (base32
+   "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"
+  (build-system go-build-system)
+  (arguments
+   '(#:import-path "github.com/BurntSushi/toml"))
+  (home-page "https://github.com/BurntSushi/toml;)
+  (synopsis "Toml parser and encoder for Go")
+  (description "This package is toml parser and encoder for Go.  The
+interface is similar to Go's standard library @code{json} and @code{xml}
+package.")
+  (license license:expat



02/06: gnu: Add go-github-com-getsentry-raven-go.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 8c5a69aa0095bd444dc8727683e4796b8f5e0af2
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 15:23:29 2018 +0200

gnu: Add go-github-com-getsentry-raven-go.

* gnu/packages/golang.scm (go-github-com-getsentry-raven-go): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/golang.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 3b65d58..8acd528 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1328,3 +1328,30 @@ systems.")
 interface is similar to Go's standard library @code{json} and @code{xml}
 package.")
   (license license:expat
+
+(define-public go-github-com-getsentry-raven-go
+  (let ((commit
+ "dffeb57df75d6a911f00232155194e43d79d38d7")
+(revision "0"))
+(package
+  (name "go-github-com-getsentry-raven-go")
+  (version (git-version "0.0.0" revision commit))
+  (source
+   (origin
+ (method git-fetch)
+ (uri (git-reference
+   (url "https://github.com/getsentry/raven-go.git;)
+   (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+  (base32
+   "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"
+  (build-system go-build-system)
+  (arguments
+   '(#:import-path "github.com/getsentry/raven-go"))
+  (home-page
+   "https://github.com/getsentry/raven-go;)
+  (synopsis "Sentry client in Go")
+  (description "This package is Go client API for the Sentry event/error
+logging system.")
+  (license license:bsd-3



02/03: gnu: Move 'astyle' to code.scm.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit c1e5109b6843d5670bf81678f2697babc9b770c9
Author: Ludovic Courtès 
Date:   Wed May 23 12:11:40 2018 +0200

gnu: Move 'astyle' to code.scm.

Suggested by Pierre Neidhardt .

* gnu/packages/pretty-print.scm (astyle): Move to...
* gnu/packages/code.scm (astyle): ... here.  New variable.
---
 gnu/packages/code.scm | 42 ++
 gnu/packages/pretty-print.scm | 43 ---
 2 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 24398fa..6dbdf8a 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Andy Wingo 
 ;;; Copyright © 2018 Fis Trivial 
 ;;; Copyright © 2018 Pierre Neidhardt 
+;;; Copyright © 2014 Eric Bavier 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -570,3 +571,44 @@ Objective@tie{}C, D, Java, Pawn, and Vala).  Features:
 @item Highly configurable - More than 600 configurable options.
 @end itemize\n")
 (license license:gpl2+)))
+
+(define-public astyle
+  (package
+(name "astyle")
+(version "2.05")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20"
+   version "/astyle_"  version "_linux.tar.gz"))
+   (sha256
+(base32
+ "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s"
+(build-system gnu-build-system)
+(arguments
+ `(#:tests? #f  ;no tests
+   #:make-flags (list (string-append "prefix=" %output)
+  "INSTALL=install"
+  "all")
+   #:phases
+   (modify-phases %standard-phases
+ (replace 'configure
+   (lambda _ (chdir "build/gcc") #t))
+ (add-after 'install 'install-libs
+   (lambda* (#:key outputs #:allow-other-keys)
+ ;; Libraries are not installed by default
+ (let* ((output (assoc-ref outputs "out"))
+(libdir (string-append output "/lib")))
+   (begin
+ (mkdir-p libdir)
+ (for-each (lambda (l)
+ (copy-file
+  l (string-append libdir "/" (basename l
+   (find-files "bin" "lib*"
+ #t)
+(home-page "http://astyle.sourceforge.net/;)
+(synopsis "Source code indenter, formatter, and beautifier")
+(description
+ "Artistic Style is a source code indenter, formatter, and beautifier for
+the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.")
+(license license:lgpl3+)))
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 29b0039..cc3431b 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -1,5 +1,4 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Eric Bavier 
 ;;; Copyright © 2016 Efraim Flashner 
 ;;; Copyright © 2016 Ricardo Wurmus 
 ;;; Copyright © 2017 Marius Bakke 
@@ -281,45 +280,3 @@ seen in a terminal.")
 TeX, SVG, BBCode and terminal escape sequences with colored syntax
 highlighting.  Language definitions and color themes are customizable.")
 (license gpl3+)))
-
-(define-public astyle
-  (package
-(name "astyle")
-(version "2.05")
-(source
- (origin
-   (method url-fetch)
-   (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20"
-   version "/astyle_"  version "_linux.tar.gz"))
-   (sha256
-(base32
- "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s"
-(build-system gnu-build-system)
-(arguments
- `(#:tests? #f  ;no tests
-   #:make-flags (list (string-append "prefix=" %output)
-  "INSTALL=install"
-  "all")
-   #:phases
-   (modify-phases %standard-phases
- (replace 'configure
-   (lambda _ (chdir "build/gcc") #t))
- (add-after 'install 'install-libs
-   (lambda* (#:key outputs #:allow-other-keys)
- ;; Libraries are not installed by default
- (let* ((output (assoc-ref outputs "out"))
-(libdir (string-append output "/lib")))
-   (begin
- (mkdir-p libdir)
- (for-each (lambda (l)
- (copy-file
-  l (string-append libdir "/" (basename l
-   (find-files "bin" "lib*"
- #t)
-(home-page "http://astyle.sourceforge.net/;)
-(synopsis "Source code 

01/03: gnu: Add uncrustify.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 9c4dcfaf66d37faeb165e9284f6a57871e96e1ac
Author: Pierre Neidhardt 
Date:   Sun May 20 14:31:55 2018 +0200

gnu: Add uncrustify.

* gnu/packages/code.scm (uncrustify): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/code.scm | 43 +++
 gnu/packages/pretty-print.scm |  1 +
 2 files changed, 44 insertions(+)

diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 15fdf9d..24398fa 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017, 2018 Clément Lassieur 
 ;;; Copyright © 2017 Andy Wingo 
 ;;; Copyright © 2018 Fis Trivial 
+;;; Copyright © 2018 Pierre Neidhardt 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -527,3 +528,45 @@ produce colored output.")
 output is a graphviz-dot file, a Gexf-XML file or a list of the deepest
 independent targets.")
 (license license:expat)))
+
+(define-public uncrustify
+  (package
+(name "uncrustify")
+(version "0.67")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/uncrustify/uncrustify/archive/;
+"uncrustify-" version ".zip"))
+  (sha256
+   (base32
+"0n13kq0nsm35fxhdp0f275n4x0w88hdv3bdjy0hgvv42x0dx5zyp"
+(build-system cmake-build-system)
+(native-inputs
+ `(("unzip" ,unzip)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-etc
+   (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Configuration samples are not installed by default.
+ (let* ((output (assoc-ref outputs "out"))
+(etcdir (string-append output "/etc")))
+   (for-each (lambda (l)
+   (install-file l etcdir))
+ (find-files "etc" "\\.cfg$")))
+ #t)
+(home-page "http://uncrustify.sourceforge.net/;)
+(synopsis "Code formatter for C and other related languages")
+(description
+ "Beautify source code in many languages of the C family (C, C++, C#,
+Objective@tie{}C, D, Java, Pawn, and Vala).  Features:
+@itemize
+@item Indent and align code.
+@item Reformat comments (a little bit).
+@item Fix inter-character spacing.
+@item Add or remove parens / braces.
+@item Supports embedded SQL @code{EXEC SQL} stuff.
+@item Highly configurable - More than 600 configurable options.
+@end itemize\n")
+(license license:gpl2+)))
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 6edfba9..29b0039 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -322,3 +322,4 @@ highlighting.  Language definitions and color themes are 
customizable.")
  "Artistic Style is a source code indenter, formatter, and beautifier for
 the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.")
 (license lgpl3+)))
+



03/03: gnu: Move 'indent' to code.scm.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit e470abf8b789e61ae918a80f141e3c06afd44832
Author: Ludovic Courtès 
Date:   Wed May 23 12:13:16 2018 +0200

gnu: Move 'indent' to code.scm.

Suggested by Pierre Neidhardt .

* gnu/packages/indent.scm: Remove.  Move 'indent' to...
* gnu/packages/code.scm (indent):  ... here.  New variable.
* gnu/local.mk (GNU_SYSTEM_MODULES): Remove indent.scm.
---
 gnu/local.mk|  1 -
 gnu/packages/code.scm   | 33 +
 gnu/packages/indent.scm | 56 -
 3 files changed, 33 insertions(+), 57 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 469e73f..4cdbaec 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -226,7 +226,6 @@ GNU_SYSTEM_MODULES =\
   %D%/packages/image-processing.scm\
   %D%/packages/image-viewers.scm   \
   %D%/packages/imagemagick.scm \
-  %D%/packages/indent.scm  \
   %D%/packages/inklingreader.scm   \
   %D%/packages/inkscape.scm\
   %D%/packages/irc.scm \
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 6dbdf8a..fc1c000 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -9,6 +9,8 @@
 ;;; Copyright © 2018 Fis Trivial 
 ;;; Copyright © 2018 Pierre Neidhardt 
 ;;; Copyright © 2014 Eric Bavier 
+;;; Copyright © 2013 Andreas Enge 
+;;; Copyright © 2014 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -612,3 +614,34 @@ Objective@tie{}C, D, Java, Pawn, and Vala).  Features:
  "Artistic Style is a source code indenter, formatter, and beautifier for
 the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.")
 (license license:lgpl3+)))
+
+(define-public indent
+  (package
+   (name "indent")
+   (version "2.2.10")
+   (source (origin
+(method url-fetch)
+(uri (string-append "mirror://gnu/indent/indent-" version
+".tar.gz"))
+(sha256 (base32
+ "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa"
+   (build-system gnu-build-system)
+   (arguments
+`(#:phases (alist-cons-after
+'unpack 'fix-docdir
+(lambda _
+  ;; Although indent uses a modern autoconf in which docdir
+  ;; defaults to PREFIX/share/doc, the doc/Makefile.am
+  ;; overrides this to be in PREFIX/doc.  Fix this.
+  (substitute* "doc/Makefile.in"
+(("^docdir = .*$") "docdir = @docdir@\n")))
+%standard-phases)))
+   (synopsis "Code reformatter")
+   (description
+"Indent is a program that makes source code easier to read by
+reformatting it in a consistent style.  It can change the style to one of
+several different styles such as GNU, BSD or K  It has some flexibility to
+deal with incomplete or malformed syntax.  GNU indent offers several
+extensions over the standard utility.")
+   (license license:gpl3+)
+   (home-page "https://www.gnu.org/software/indent/;)))
diff --git a/gnu/packages/indent.scm b/gnu/packages/indent.scm
deleted file mode 100644
index 4950a26..000
--- a/gnu/packages/indent.scm
+++ /dev/null
@@ -1,56 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge 
-;;; Copyright © 2014 Mark H Weaver 
-;;;
-;;; 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 indent)
-  #:use-module (gnu packages)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu))
-
-(define-public indent
-  (package
-   (name "indent")
-   (version "2.2.10")
-   (source (origin
-(method url-fetch)
-(uri (string-append "mirror://gnu/indent/indent-" version
-".tar.gz"))
-(sha256 (base32
- "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa"
-   (build-system gnu-build-system)
-   (arguments
-

branch master updated (7874bbb -> e470abf)

2018-05-23 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  7874bbb   records: Insert record type ABI checks in constructors.
   new  9c4dcfa   gnu: Add uncrustify.
   new  c1e5109   gnu: Move 'astyle' to code.scm.
   new  e470abf   gnu: Move 'indent' to code.scm.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/local.mk  |   1 -
 gnu/packages/code.scm | 118 ++
 gnu/packages/indent.scm   |  56 
 gnu/packages/pretty-print.scm |  42 ---
 4 files changed, 118 insertions(+), 99 deletions(-)
 delete mode 100644 gnu/packages/indent.scm



02/04: vm: Print the label and UUID of partitions.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 353df40102b209a06376044af946a28c2594377b
Author: Ludovic Courtès 
Date:   Wed May 23 10:14:20 2018 +0200

vm: Print the label and UUID of partitions.

* gnu/build/vm.scm (create-ext-file-system): Print the label and UUID.
---
 gnu/build/vm.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 527b4c4..989b74f 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -265,7 +265,8 @@ actual /dev name based on DEVICE."
  #:key label uuid)
   "Create an ext-family file system of TYPE on PARTITION.  If LABEL is true,
 use that as the volume name.  If UUID is true, use it as the partition UUID."
-  (format #t "creating ~a partition...\n" type)
+  (format #t "creating ~a partition... ~@[label: ~s~] ~@[uuid: ~s~]\n"
+  type label (and uuid (uuid->string uuid)))
   (apply invoke (string-append "mkfs." type)
  "-F" partition
  `(,@(if label



branch master updated (b208677 -> 7874bbb)

2018-05-23 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  b208677   gnu: gimp-fourier: Fix build.
   new  d282388   linux-initrd: Enable "virtio-rng".
   new  353df40   vm: Print the label and UUID of partitions.
   new  56f9d44   vm: Use a deterministic file system UUID in shared-store 
VMs.
   new  7874bbb   records: Insert record type ABI checks in constructors.

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/build/vm.scm|  3 ++-
 gnu/system/linux-initrd.scm |  2 +-
 gnu/system/vm.scm   |  5 +
 guix/records.scm| 54 ++---
 tests/records.scm   | 30 -
 5 files changed, 88 insertions(+), 6 deletions(-)



03/04: vm: Use a deterministic file system UUID in shared-store VMs.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 56f9d442e0b5624130042f69f33ea5bd7e970798
Author: Ludovic Courtès 
Date:   Tue May 22 17:36:35 2018 +0200

vm: Use a deterministic file system UUID in shared-store VMs.

* gnu/system/vm.scm (system-qemu-image/shared-store): Pass
 #:file-system-uuid to 'qemu-image'.
---
 gnu/system/vm.scm | 5 +
 1 file changed, 5 insertions(+)

diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 09a11af..eb73b5c 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -752,6 +752,10 @@ with the host.
 When FULL-BOOT? is true, return an image that does a complete boot sequence,
 bootloaded included; thus, make a disk image that contains everything the
 bootloader refers to: OS kernel, initrd, bootloader data, etc."
+  (define root-uuid
+;; Use a fixed UUID to improve determinism.
+(operating-system-uuid os 'dce))
+
   (mlet* %store-monad ((os-drv   (operating-system-derivation os))
(bootcfg  (operating-system-bootcfg os)))
 ;; XXX: When FULL-BOOT? is true, we end up creating an image that contains
@@ -763,6 +767,7 @@ bootloader refers to: OS kernel, initrd, bootloader data, 
etc."
 #:bootloader (bootloader-configuration-bootloader
   (operating-system-bootloader os))
 #:disk-image-size disk-image-size
+#:file-system-uuid root-uuid
 #:inputs (if full-boot?
  `(("bootcfg" ,bootcfg))
  '())



04/04: records: Insert record type ABI checks in constructors.

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 78749f09cc14ea3e179fd0fa10da5f90cfc7
Author: Ludovic Courtès 
Date:   Wed May 16 10:05:24 2018 +0200

records: Insert record type ABI checks in constructors.

* guix/records.scm (print-record-abi-mismatch-error): New procedure.
: Add 'set-exception-printer!' call.
(current-abi-identifier, abi-check): New procedures.
(make-syntactic-constructor): Add #:abi-cookie parameter.  Insert calls
to 'abi-check'.
(define-record-type*)[compute-abi-cookie]: New procedure.
Use it and emit a definition of the 'current-abi-identifier' for TYPE.
* tests/records.scm ("ABI checks"): New test.
---
 guix/records.scm  | 54 +++---
 tests/records.scm | 30 +-
 2 files changed, 80 insertions(+), 4 deletions(-)

diff --git a/guix/records.scm b/guix/records.scm
index c02395f..c71cfcf 100644
--- a/guix/records.scm
+++ b/guix/records.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès 

+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès 

 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,13 +52,45 @@
   ((weird _ ...)  ;weird!
(syntax-violation name "invalid field specifier" #'weird)
 
+(define (print-record-abi-mismatch-error port key args
+ default-printer)
+  (match args
+((rtd . _)
+ ;; The source file where this exception is thrown must be recompiled.
+ (format port "ERROR: ~a: record ABI mismatch; recompilation needed"
+ rtd
+
+(set-exception-printer! 'record-abi-mismatch-error
+print-record-abi-mismatch-error)
+
+(define (current-abi-identifier type)
+  "Return an identifier unhygienically derived from TYPE for use as its
+\"current ABI\" variable."
+  (let ((type-name (syntax->datum type)))
+(datum->syntax
+ type
+ (string->symbol
+  (string-append "% " (symbol->string type-name)
+ " abi-cookie")
+
+(define (abi-check type cookie)
+  "Return syntax that checks that the current \"application binary
+interface\" (ABI) for TYPE is equal to COOKIE."
+  (with-syntax ((current-abi (current-abi-identifier type)))
+#`(unless (eq? current-abi #,cookie)
+(throw 'record-abi-mismatch-error #,type
+
 (define-syntax make-syntactic-constructor
   (syntax-rules ()
 "Make the syntactic constructor NAME for TYPE, that calls CTOR, and
 expects all of EXPECTED fields to be initialized.  DEFAULTS is the list of
 FIELD/DEFAULT-VALUE tuples, THUNKED is the list of identifiers of thunked
-fields, and DELAYED is the list of identifiers of delayed fields."
+fields, and DELAYED is the list of identifiers of delayed fields.
+
+ABI-COOKIE is the cookie (an integer) against which to check the run-time ABI
+of TYPE matches the expansion-time ABI."
 ((_ type name ctor (expected ...)
+#:abi-cookie abi-cookie
 #:thunked thunked
 #:delayed delayed
 #:innate innate
@@ -130,6 +162,7 @@ fields, and DELAYED is the list of identifiers of delayed 
fields."
  (syntax-case s (inherit expected ...)
((_ (inherit orig-record) (field value) (... ...))
 #`(let* #,(field-bindings #'((field value) (... ...)))
+#,(abi-check #'type abi-cookie)
 #,(record-inheritance #'orig-record
   #'((field value) (... ...)
((_ (field value) (... ...))
@@ -144,6 +177,7 @@ fields, and DELAYED is the list of identifiers of delayed 
fields."
 (cond ((lset= eq? fields '(expected ...))
#`(let* #,(field-bindings
   #'((field value) (... ...)))
+   #,(abi-check #'type abi-cookie)
(ctor #,@(map field-value '(expected ...)
   ((pair? (lset-difference eq? fields
'(expected ...)))
@@ -270,6 +304,16 @@ inherited."
;; The real value of that field is a promise, so force it.
(force (real-get x)))
 
+(define (compute-abi-cookie field-specs)
+  ;; Compute an "ABI cookie" for the given FIELD-SPECS.  We use
+  ;; 'string-hash' because that's a better hash function that 'hash' on a
+  ;; list of symbols.
+  (syntax-case field-specs ()
+(((field get properties ...) ...)
+ (string-hash (object->string
+   (syntax->datum #'((field properties ...) ...)))
+  most-positive-fixnum
+
 (syntax-case s ()
   ((_ type syntactic-ctor ctor pred
   (field get properties ...) ...)
@@ -278,7 +322,8 @@ inherited."
   

01/04: linux-initrd: Enable "virtio-rng".

2018-05-23 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit d282388789a21ae031035e9fd8e94a72463d0c96
Author: Ludovic Courtès 
Date:   Wed May 23 10:13:19 2018 +0200

linux-initrd: Enable "virtio-rng".

Fixes .

* gnu/system/linux-initrd.scm (default-initrd-modules)[virtio-modules]:
Add "virtio-rng".
---
 gnu/system/linux-initrd.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index e0cb59c..d73ebfd 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -283,7 +283,7 @@ FILE-SYSTEMS."
   (define virtio-modules
 ;; Modules for Linux para-virtualized devices, for use in QEMU guests.
 '("virtio_pci" "virtio_balloon" "virtio_blk" "virtio_net"
-  "virtio_console"))
+  "virtio_console" "virtio-rng"))
 
   `("ahci"  ;for SATA controllers
 "usb-storage" "uas" ;for the installation image etc.



04/06: gnu: Add vigra-c.

2018-05-20 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 62813c10a926df99085b49fa8b753e09e45b33fd
Author: Fis Trivial 
Date:   Sat May 12 10:11:29 2018 +

gnu: Add vigra-c.

* gnu/packages/image.scm (vigra-c): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/image.scm | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index bbfd621..b88f6cf 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2017 Hartmut Goebel 
 ;;; Copyright © 2017 Julien Lepiller 
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal 
+;;; Copyright © 2018 Fis Trivial 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -843,6 +844,39 @@ multi-dimensional image processing.")
(license license:expat)
(home-page "https://ukoethe.github.io/vigra/;)))
 
+(define-public vigra-c
+  (let* ((commit "a2ff675f42079e2623318d8ff8b4288dbe7a7f06")
+ (revision "0")
+ (version (git-version "0.0.0" revision commit)))
+(package
+  (name "vigra-c")
+  (version version)
+  (home-page "https://github.com/BSeppke/vigra_c;)
+  (source (origin
+(method git-fetch)
+(uri (git-reference
+  (url home-page)
+  (commit commit)))
+(sha256
+ (base32
+  "1f1phmfbbz3dsq9330rd6bjmdg29hxskxi9l17cyx1f4mdqpgdgl"))
+(file-name (git-file-name name version
+  (build-system cmake-build-system)
+  (arguments
+   `(#:tests? #f))  ; No test target.
+  (native-inputs
+   `(("doxygen" ,doxygen)))
+  (inputs
+   `(("fftw" ,fftw)
+ ("fftwf" ,fftwf)
+ ("vigra" ,vigra)))
+  (synopsis "C interface to the VIGRA computer vision library")
+  (description
+   "This package provides a C interface to the VIGRA C++ computer vision
+library.  It is designed primarily to ease the implementation of higher-level
+language bindings to VIGRA.")
+  (license license:expat
+
 (define-public libwebp
   (package
 (name "libwebp")



02/06: gnu: Add ghc-bytes.

2018-05-20 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit dea5c0b8d0d82bcd27f2b25953739fb2e0a442cc
Author: Tonton 
Date:   Thu May 17 21:34:37 2018 +0200

gnu: Add ghc-bytes.

* gnu/packages/haskell.scm (ghc-bytes): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/haskell.scm | 33 +
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 874a920..c8fade0 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -9483,4 +9483,37 @@ address string against RFC 5322.")
 (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
   ,@(package-inputs ghc-semigroupoids)
 
+(define-public ghc-bytes
+  (package
+   (name "ghc-bytes")
+   (version "0.15.4")
+   (source
+(origin
+ (method url-fetch)
+ (uri
+  (string-append "https://hackage.haskell.org/package/bytes-;
+ version "/bytes-"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+  (base32
+   "121x3iqlm8pghw8cd9g30cnqbl7jrdpfjxdanmqdqllajw6xivrm"
+   (build-system haskell-build-system)
+   (inputs `(("ghc-cereal" ,ghc-cereal)
+ ("cabal-doctest" ,cabal-doctest)
+ ("ghc-doctest" ,ghc-doctest-0.13)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-text" ,ghc-text)
+ ("ghc-transformers-compat" ,ghc-transformers-compat)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-void" ,ghc-void)
+ ("ghc-vector" ,ghc-vector)))
+   (synopsis "Serialization between @code{binary} and @code{cereal}")
+   (description "This package provides a simple compatibility shim that lets
+you work with both @code{binary} and @code{cereal} with one chunk of
+serialization code.")
+   (home-page "https://hackage.haskell.org/package/bytes;)
+   (license license:bsd-3)))
+
 ;;; haskell.scm ends here



branch master updated (d8ac798 -> 5a9dc4a)

2018-05-20 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  d8ac798   services: connman: Add polkit hooks for connman.
   new  6c4ae17   gnu: Add ghc-semigroupoids-5.2.2.
   new  dea5c0b   gnu: Add ghc-bytes.
   new  1900fa7   gnu: Add python-glob2.
   new  62813c1   gnu: Add vigra-c.
   new  a8e3fd5   gnu: linux-libre: Use "make dtbs_install" to install 
device tree files.
   new  5a9dc4a   gnu: linux-libre: Enable build for aarch64-linux.

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Makefile.am|1 +
 .../linux-libre/{4.16-arm.conf => 4.16-arm64.conf} | 2826 +---
 gnu/packages/haskell.scm   |   50 +
 gnu/packages/image.scm |   34 +
 gnu/packages/linux.scm |   10 +-
 gnu/packages/python.scm|   36 +
 6 files changed, 1360 insertions(+), 1597 deletions(-)
 copy gnu/packages/aux-files/linux-libre/{4.16-arm.conf => 4.16-arm64.conf} 
(80%)



05/06: gnu: linux-libre: Use "make dtbs_install" to install device tree files.

2018-05-20 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit a8e3fd5f9d1abd903edc9a413325194ed44557bd
Author: Vagrant Cascadian 
Date:   Sat May 19 21:08:41 2018 +

gnu: linux-libre: Use "make dtbs_install" to install device tree files.

* gnu/packages/linux.scm (make-linux-libre):
  Use "make dtbs_install" to install device tree files.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/linux.scm | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 0c58b90..9dd9b7e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -366,8 +366,10 @@ for ARCH and optionally VARIANT, or #f if there is no such 
configuration."
(for-each (lambda (file) (install-file file out))
  (find-files "." 
"^(\\.config|bzImage|zImage|Image|vmlinuz|System\\.map)$"))
;; Install device tree files
-   (for-each (lambda (file) (install-file file dtbdir))
- (find-files "." "\\.dtb$"))
+   (unless (null? (find-files "." "\\.dtb$"))
+ (mkdir-p dtbdir)
+ (invoke "make" (string-append "INSTALL_DTBS_PATH=" dtbdir)
+ "dtbs_install"))
;; Install kernel modules
(mkdir-p moddir)
(invoke "make"



01/06: gnu: Add ghc-semigroupoids-5.2.2.

2018-05-20 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 6c4ae1733430f976d6b5b95c5b18919944f949f3
Author: Tonton 
Date:   Thu May 17 21:37:55 2018 +0200

gnu: Add ghc-semigroupoids-5.2.2.

* gnu/packages/haskell.scm (ghc-semigroupoids-5.2.2): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/haskell.scm | 17 +
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9b26ff5..874a920 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2017, 2018 Alex Vong 
 ;;; Copyright © 2017 rsiddharth 
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice 
+;;; Copyright © 2018 Tonton 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -9466,4 +9467,20 @@ system dependencies.")
 address string against RFC 5322.")
 (license license:bsd-3)))
 
+(define-public ghc-semigroupoids-5.2.2
+  (package
+(inherit ghc-semigroupoids)
+(name "ghc-semigroupoids")
+(version "5.2.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://hackage.haskell.org/package/;
+  "semigroupoids-" version "/semigroupoids-"
+   version ".tar.gz"))
+  (sha256
+   (base32
+"17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"
+(inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
+  ,@(package-inputs ghc-semigroupoids)
+
 ;;; haskell.scm ends here



03/06: gnu: Add python-glob2.

2018-05-20 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 1900fa792f1fa64f7a17a87a4414efd424d41d53
Author: Fis Trivial 
Date:   Sat May 12 10:44:54 2018 +

gnu: Add python-glob2.

* gnu/packages/python.scm (python-glob2, python2-glob2): New variables.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/python.scm | 36 
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5e2625e..31310ce 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -13303,3 +13303,39 @@ generators and Python 3.7's context managers into 
Python 3.5.")
 manager compatible with @code{asyncio}.")
 (license license:asl2.0)))
 
+(define-public python-glob2
+  (package
+(name "python-glob2")
+(version "0.6")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/miracle2k/python-glob2/archive/;
+version
+".tar.gz"))
+  (sha256
+   (base32
+"0ja168f0dz4kbz4m06dm0rd3acaypk6hjx2km541pw22y9s40mag"))
+  (file-name (string-append name "-" version ".tar.gz"
+(build-system python-build-system)
+(home-page "https://github.com/miracle2k/python-glob2/;)
+(synopsis "Extended Version of the python buildin glob module")
+(description "This is an extended version of the Python
+@url{http://docs.python.org/library/glob.html, built-in glob module} which
+adds:
+
+@itemize
+@item The ability to capture the text matched by glob patterns, and return
+those matches alongside the file names.
+@item A recursive @code{**} globbing syntax, akin for example to the
+@code{globstar} option of Bash.
+@item The ability to replace the file system functions used, in order to glob
+on virtual file systems.
+@item Compatible with Python 2 and Python 3 (tested with 3.3).
+@end itemize
+
+Glob2 currently based on the glob code from Python 3.3.1.")
+(license license:bsd-2)))
+
+(define-public python2-glob2
+  (package-with-python2 python-glob2))



02/03: gnu: xss-lock: New variable.

2018-05-19 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 428adbc2c498252b1120da27944edc6558c04d06
Author: Pierre Neidhardt 
Date:   Fri May 18 15:15:28 2018 +0200

gnu: xss-lock: New variable.

* gnu/packages/xdisorg.scm (xss-lock): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/xdisorg.scm | 37 +
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 0432411..f42691b 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2017 Marek Benc 
 ;;; Copyright © 2017 Mike Gerwitz 
 ;;; Copyright © 2018 Thomas Sigurdsen 
+;;; Copyright © 2018 Pierre Neidhardt 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1438,3 +1439,39 @@ with black color on a white background (colors are 
configurable on the
 commandline).")
 (home-page "https://www.joachim-breitner.de/projects#screen-message;)
 (license license:gpl2+)))
+
+(define-public xss-lock
+  ;; xss-lock does not seem to be maintained any longer, but the last commits
+  ;; fix important issues so we package them.
+  (let ((version "0.3.0")
+(revision "1")
+(commit "1e158fb20108058dbd62bd51d8e8c003c0a48717"))
+(package
+  (name "xss-lock")
+  (version (git-version version revision commit))
+  (source (origin
+(method git-fetch)
+(uri (git-reference
+  (url "https://bitbucket.org/raymonad/xss-lock.git;)
+  (commit commit)))
+(file-name (git-file-name name version))
+(sha256
+ (base32
+  "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"
+  (build-system cmake-build-system)
+  (inputs `(("glib" ,glib)
+("xcb-util" ,xcb-util)))
+  (native-inputs
+   `(("python-docutils" ,python-docutils)
+ ("pkg-config" ,pkg-config)))
+  (arguments
+   `(#:tests? #f))
+  (synopsis "Use external screen locker on events")
+  (description "@code{xss-lock} listens to X signals to fire up a
+user-defined screensaver.  In effect this allows to automatically lock the
+screen when closing a laptop lid or after a period of user inactivity (as set
+with @code{xset s TIMEOUT}).  The notifier command, if specified, is executed
+first.  Additionally, xss-lock uses the inhibition logic to lock the screen
+before the system goes to sleep.")
+  (home-page "https://bitbucket.org/raymonad/xss-lock;)
+  (license license:expat



branch master updated (05ca7a9 -> 593fe73)

2018-05-19 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  05ca7a9   gnu: libsignal-protocol-c: Update to 2.3.2.
   new  d282fee   gnu: Add zyre.
   new  428adbc   gnu: xss-lock: New variable.
   new  593fe73   guix-install.sh: Fix chk_require exiting without warning.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 etc/guix-install.sh |  4 +---
 gnu/packages/networking.scm | 34 ++
 gnu/packages/xdisorg.scm| 37 +
 3 files changed, 72 insertions(+), 3 deletions(-)



01/03: gnu: Add zyre.

2018-05-19 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit d282fee549c2bad9f413bada5f398aa220f84429
Author: Tonton 
Date:   Thu May 17 17:50:33 2018 +0200

gnu: Add zyre.

* gnu/packages/networking.scm (zyre): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/networking.scm | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index eda2984..7e69a48 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2017 Thomas Danckaert 
 ;;; Copyright © 2018 Adam Van Ymeren 
 ;;; Copyright © 2018 Fis Trivial 
+;;; Copyright © 2018 Tonton 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1768,3 +1769,36 @@ allowing you to run a client with no graphical 
interface, and a Web GUI for
 remote access.  The @command{amulecmd} command allows you to control aMule
 remotely.")
 (license license:gpl2+)))
+
+(define-public zyre
+  (package
+(name "zyre")
+(version "2.0.0")
+(source (origin
+  (method url-fetch)
+  (uri
+   (string-append 
"https://github.com/zeromq/zyre/releases/download/v;
+  version "/" name "-" version ".tar.gz"))
+  (sha256
+   (base32
+"0qz2730bng1gs9xbqxhkw88qbsmszgmmrl2g9k6xrg6r3bqvsdc7"
+(build-system gnu-build-system)
+(inputs `(("zeromq" ,zeromq)
+  ("czmq" ,czmq)
+  ("libsodium" ,libsodium)))
+(synopsis "Framework for proximity-based peer-to-peer applications")
+(description "Zyre provides reliable group messaging over local area
+networks using zeromq.  It has these key characteristics:
+
+@itemize
+@item Zyre needs no administration or configuration.
+@item Peers may join and leave the network at any time.
+@item Peers talk to each other without any central brokers or servers.
+@item Peers can talk directly to each other.
+@item Peers can join groups, and then talk to groups.
+@item Zyre is reliable, and loses no messages even when the network is heavily 
loaded.
+@item Zyre is fast and has low latency, requiring no consensus protocols.
+@item Zyre is designed for WiFi networks, yet also works well on Ethernet 
networks.
+@end itemize")
+(home-page "https://github.com/zeromq/zyre;)
+(license license:mpl2.0)))



01/04: tests: Adjust to new "unbound variable" messages.

2018-05-18 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 7acdecec9992b81485814f153effdcb097c1e7c4
Author: Ludovic Courtès 
Date:   Fri May 18 15:23:57 2018 +0200

tests: Adjust to new "unbound variable" messages.

This is a followup to 2d2f98efb36db3f003d950a004806234962b4f4d.

* tests/guix-system.sh: Adjust regexps to match "error:".
---
 tests/guix-system.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/guix-system.sh b/tests/guix-system.sh
index ff9114a..2b94bc0 100644
--- a/tests/guix-system.sh
+++ b/tests/guix-system.sh
@@ -125,9 +125,9 @@ else
 then
# FIXME: With Guile 2.2.0 the error is reported on line 4.
# See .
-   grep "$tmpfile:[49]:[0-9]\+: GRUB-config.*[Uu]nbound variable" 
"$errorfile"
+   grep "$tmpfile:[49]:[0-9]\+:.*GRUB-config.*[Uu]nbound variable" 
"$errorfile"
 else
-   grep "$tmpfile:9:[0-9]\+: GRUB-config.*[Uu]nbound variable" "$errorfile"
+   grep "$tmpfile:9:[0-9]\+:.*GRUB-config.*[Uu]nbound variable" 
"$errorfile"
 fi
 fi
 



04/04: uuid: 'uuid' returns #f when 'string->uuid' returns #f.

2018-05-18 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 263c9941a1e523b360ca9f42d1ed6b11e6e6e285
Author: Ludovic Courtès 
Date:   Fri May 18 22:20:33 2018 +0200

uuid: 'uuid' returns #f when 'string->uuid' returns #f.

* gnu/system/uuid.scm (uuid): When STR is not a literal, return #f when
'string->uuid' returns #f.
* tests/uuid.scm ("uuid, dynamic value"): New test.
---
 gnu/system/uuid.scm | 11 +++
 tests/uuid.scm  |  9 -
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm
index 73695dd..f13960c 100644
--- a/gnu/system/uuid.scm
+++ b/gnu/system/uuid.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ludovic Courtès 
+;;; Copyright © 2016, 2017, 2018 Ludovic Courtès 
 ;;; Copyright © 2017 Danny Milosavljevic 
 ;;;
 ;;; This file is part of GNU Guix.
@@ -251,7 +251,8 @@ corresponding bytevector; otherwise return #f."
 
 (define-syntax uuid
   (lambda (s)
-"Return the UUID object corresponding to the given UUID representation."
+"Return the UUID object corresponding to the given UUID representation or
+#f if the string could not be parsed."
 (syntax-case s (quote)
   ((_ str (quote type))
(and (string? (syntax->datum #'str))
@@ -266,9 +267,11 @@ corresponding bytevector; otherwise return #f."
(string? (syntax->datum #'str))
#'(uuid str 'dce))
   ((_ str)
-   #'(make-uuid 'dce (string->uuid str 'dce)))
+   #'(let ((bv (string->uuid str 'dce)))
+   (and bv (make-uuid 'dce bv
   ((_ str type)
-   #'(make-uuid type (string->uuid str type))
+   #'(let ((bv (string->uuid str type)))
+   (and bv (make-uuid type bv)))
 
 (define uuid->string
   ;; Convert the given bytevector or UUID object, to the corresponding UUID
diff --git a/tests/uuid.scm b/tests/uuid.scm
index 91a3482..260614f 100644
--- a/tests/uuid.scm
+++ b/tests/uuid.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017 Ludovic Courtès 
+;;; Copyright © 2015, 2017, 2018 Ludovic Courtès 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +57,13 @@
   "1234-ABCD"
   (uuid->string (uuid "1234-abcd" 'fat32)))
 
+(test-assert "uuid, dynamic value"
+  (let* ((good "4dab5feb-d176-45de-b287-9b0a6e4c01cb")
+ (bad  (string-drop good 3)))
+(and (uuid? (uuid good))
+ (string=? good (uuid->string (uuid good)))
+ (not (uuid bad)
+
 (test-assert "uuid=?"
   (and (uuid=? (uuid-bytevector (uuid "1234-abcd" 'fat32))
(uuid "1234-abcd" 'fat32))



03/04: file-systems: Do not export .

2018-05-18 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit a48d34504181e2f14cef3a5514d2319e60453a79
Author: Ludovic Courtès 
Date:   Fri May 18 10:11:17 2018 +0200

file-systems: Do not export .

* gnu/system/file-systems.scm (): Do not export.
* gnu/system.scm (operating-system-root-file-system): Use an accessor
instead of 'match'.
---
 gnu/system.scm  | 5 ++---
 gnu/system/file-systems.scm | 3 +--
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/gnu/system.scm b/gnu/system.scm
index 1cf00aa..1052e93 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -842,9 +842,8 @@ hardware-related operations as necessary when booting a 
Linux container."
 
 (define (operating-system-root-file-system os)
   "Return the root file system of OS."
-  (find (match-lambda
- (($  device title "/") #t)
- (x #f))
+  (find (lambda (fs)
+  (string=? "/" (file-system-mount-point fs)))
 (operating-system-file-systems os)))
 
 (define (operating-system-initrd-file os)
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index d2acd70..93289db 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -25,8 +25,7 @@
   #:re-export (uuid   ;backward compatibility
string->uuid
uuid->string)
-  #:export (
-file-system
+  #:export (file-system
 file-system?
 file-system-device
 file-system-title



branch master updated (9f7d666 -> 263c994)

2018-05-18 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  9f7d666   system: Add u-boot-pine64-plus installer.
   new  7acdece   tests: Adjust to new "unbound variable" messages.
   new  ce9e684   tests: Skip 'tests/guix-pack.sh' when networking is 
missing.
   new  a48d345   file-systems: Do not export .
   new  263c994   uuid: 'uuid' returns #f when 'string->uuid' returns #f.

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/system.scm  |  5 ++---
 gnu/system/file-systems.scm |  3 +--
 gnu/system/uuid.scm | 11 +++
 tests/guix-pack.sh  |  6 +++---
 tests/guix-system.sh|  4 ++--
 tests/uuid.scm  |  9 -
 6 files changed, 23 insertions(+), 15 deletions(-)



02/04: tests: Skip 'tests/guix-pack.sh' when networking is missing.

2018-05-18 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit ce9e684b8395fdd0c8217a2e4a1d2776f8ff5ea4
Author: Ludovic Courtès 
Date:   Fri May 18 17:18:33 2018 +0200

tests: Skip 'tests/guix-pack.sh' when networking is missing.

The test could fail because "static-binaries.tar.xz" is missing, for
instance.

* tests/guix-pack.sh: Require a network connection to be on the safe
side.  This reverts part of 47a60325ca650e8fc1a291c8655b4297f4de8deb.
---
 tests/guix-pack.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh
index 130389a..917d524 100644
--- a/tests/guix-pack.sh
+++ b/tests/guix-pack.sh
@@ -20,9 +20,9 @@
 # Test the `guix pack' command-line utility.
 #
 
-# The bootstrap binaries are needed to run these tests, which usually requires
-# a network connection.
-if ! guix build -q guile-bootstrap; then
+# A network connection is required to build %bootstrap-coreutils,
+# which is required to run these tests with the --bootstrap option.
+if ! guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null; 
then
 exit 77
 fi
 



01/01: Revert "gnu: Add ghc-array." and "gnu: Add ghc-containers."

2018-05-17 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 17aca5c4d273c1f514f8623e555660b99ed90fee
Author: Ludovic Courtès 
Date:   Thu May 17 16:14:49 2018 +0200

Revert "gnu: Add ghc-array." and "gnu: Add ghc-containers."

This reverts commits e5d92c1ce197ec6da891f69565fe550f502f8e7c
and 7d4e377ff5dfb0b708255e30741f2d26407f1677.

These two packages are part of GHC proper.  See the discussion at
.
---
 gnu/packages/haskell.scm | 55 
 1 file changed, 55 deletions(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 39c0c0a..9b26ff5 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -13,7 +13,6 @@
 ;;; Copyright © 2017, 2018 Alex Vong 
 ;;; Copyright © 2017 rsiddharth 
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice 
-;;; Copyright © 2018 Tonton 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -9467,58 +9466,4 @@ system dependencies.")
 address string against RFC 5322.")
 (license license:bsd-3)))
 
-(define-public ghc-array
-  (package
-   (name "ghc-array")
-   (version "0.5.2.0")
-   (source
-(origin
- (method url-fetch)
- (uri
-  (string-append "https://hackage.haskell.org/package/array-0.5.2.0/array-;
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
-  (base32
-   "12v83s2imxb3p2crnlzrpjh0nk6lpysw9bdk9yahs6f37csa5jaj"
-   (build-system haskell-build-system)
-   (synopsis "Haskell @code{Data.Array} module")
-   (description "In addition to providing the @code{Data.Array} module as
-specified in the Haskell 2010 Language Report, this package defines the
-classes @code{IArray} of immutable arrays and @code{MArray} of arrays mutable
-within appropriate monads, as well as some instances of these classes.")
-   (home-page "https://hackage.haskell.org/package/array;)
-   (license license:bsd-3)))
-
-(define-public ghc-containers
-  (package
-   (name "ghc-containers")
-   (version "0.5.11.0")
-   (source
-(origin
- (method url-fetch)
- (uri
-  (string-append 
"https://hackage.haskell.org/package/containers-0.5.11.0/containers-;
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
-  (base32
-   "0j29w09kvcn1c0yi4clmrdbgs2gqmpxs2m7q80ib2ix1smm25kaq"
-   (build-system haskell-build-system)
-   (inputs `(("ghc-array" ,ghc-array)
- ("ghc-deepseq" ,ghc-deepseq-generics)
- ("ghc-hunit" ,ghc-hunit)
- ("ghc-chasingbottoms" ,ghc-chasingbottoms)
- ("ghc-test-framework" ,ghc-test-framework)
- ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
- ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
- ("ghc-quickcheck" ,ghc-quickcheck)
- ("ghc-ghc-prim" ,ghc-primitive)))
-   (synopsis "Haskell containers: Assorted concrete container types")
-   (description "This Haskell module provides efficient general-purpose
-implementations of various immutable container types including sets, maps,
-sequences, trees, and graphs.")
-   (home-page "https://hackage.haskell.org/package/containers;)
-   (license license:bsd-3)))
-
 ;;; haskell.scm ends here



branch master updated (17b59aa -> 17aca5c)

2018-05-17 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  17b59aa   gnu: jupyter: Add search path.
   new  17aca5c   Revert "gnu: Add ghc-array." and "gnu: Add 
ghc-containers."

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/haskell.scm | 55 
 1 file changed, 55 deletions(-)



01/02: website: pigx: Add the "Reproducible builds" tag.

2018-05-17 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix-artwork.

commit 1d56c88c4fb4428d4d90c6b78b606c7490bd5258
Author: Ludovic Courtès 
Date:   Wed May 16 14:59:25 2018 +0200

website: pigx: Add the "Reproducible builds" tag.

* website/posts/pigx.md: Add the "Reproducible builds" tag.
---
 website/posts/pigx.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/website/posts/pigx.md b/website/posts/pigx.md
index a7807b7..76bcdae 100644
--- a/website/posts/pigx.md
+++ b/website/posts/pigx.md
@@ -1,7 +1,7 @@
 title: Paper on reproducible bioinformatics pipelines with Guix
 date: 2018-05-09 12:00
 author: Ricardo Wurmus
-tags: High-performance computing, Research, Reproducibility, Bioinformatics
+tags: High-performance computing, Research, Reproducibility, Bioinformatics, 
Reproducible builds
 ---
 I’m happy to announce that the bioinformatics group at the [Max
 Delbrück Center](https://www.mdc-berlin.de/) that I’m working with has



02/02: website: contribute: Add paragraph on code of conduct.

2018-05-17 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix-artwork.

commit 4dbe780543a960c4b7b881b4788750093953adac
Author: Tonton 
Date:   Thu May 17 01:41:21 2018 +0200

website: contribute: Add paragraph on code of conduct.

 * website/apps/base/templates/contribute.scm: Add paragraph on
   code of conduct.

Co-authored-by: Ludovic Courtès 
---
 website/apps/base/templates/contribute.scm | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/website/apps/base/templates/contribute.scm 
b/website/apps/base/templates/contribute.scm
index 274938a..2cf9e8b 100644
--- a/website/apps/base/templates/contribute.scm
+++ b/website/apps/base/templates/contribute.scm
@@ -44,6 +44,16 @@
" in IRC Freenode. Tell us how would you like to help, and we
will do our best to guide you. ")
 
+  (p
+   "We want to provide a warm, friendly, and harassment-free environment,
+   so that anyone can contribute to the best of their abilities.  To this
+   end our project uses a “Contributor Covenant”, which was adapted from "
+   (a (@ (href "https://contributor-covenant.org/;))
+  "https://contributor-covenant.org/;)
+   ".  You can find the full pledge in the "
+   (a (@ (href 
"//git.savannah.gnu.org/cgit/guix.git/tree/CODE-OF-CONDUCT"))
+  (tt "CODE-OF-CONDUCT")) " file.")
+
   (div
(@ (class "centered-text"))
 



branch master updated (fe3bca0 -> 4dbe780)

2018-05-17 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix-artwork.

  from  fe3bca0   website: Add post about 'guix pack -R'.
   new  1d56c88   website: pigx: Add the "Reproducible builds" tag.
   new  4dbe780   website: contribute: Add paragraph on code of conduct.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 website/apps/base/templates/contribute.scm | 10 ++
 website/posts/pigx.md  |  2 +-
 2 files changed, 11 insertions(+), 1 deletion(-)



branch master updated (7376ba4 -> 17b59aa)

2018-05-17 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  7376ba4   gnu: libreoffice: Update to 5.4.7.2.
   new  827c565   union: Do not warn about harmless collisions.
   new  fa6a3bb   gnu: Add jupyter-guile-kernel.
   new  17b59aa   gnu: jupyter: Add search path.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/guile.scm  | 129 
 gnu/packages/python.scm |   6 +++
 guix/build/union.scm|  17 +--
 3 files changed, 148 insertions(+), 4 deletions(-)



01/03: union: Do not warn about harmless collisions.

2018-05-17 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 827c56515e06d21aaa23d60ed05b0c45d1d49901
Author: Ludovic Courtès 
Date:   Tue May 15 09:40:23 2018 +0200

union: Do not warn about harmless collisions.

Until now we'd get pointless messages like:

  warning: collision encountered:
/gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache
/gnu/store/…-inkscape-0.92.3/share/icons/hicolor/icon-theme.cache
  warning: choosing 
/gnu/store/…-gtk-icon-themes/share/icons/hicolor/icon-theme.cache

* guix/build/union.scm (%harmless-collisions): New variable.
(warn-about-collision): Honor it.
---
 guix/build/union.scm | 17 +
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/guix/build/union.scm b/guix/build/union.scm
index 24b366a..fff795c 100644
--- a/guix/build/union.scm
+++ b/guix/build/union.scm
@@ -81,14 +81,23 @@ identical, #f otherwise."
(or (eof-object? n1)
(loop))
 
+(define %harmless-collisions
+  ;; This is a list of files that are known to collide, but for which emitting
+  ;; a warning doesn't make sense.  For example, "icon-theme.cache" is
+  ;; regenerated by a profile hook which shadows the file provided by
+  ;; individual packages, and "gschemas.compiled" is made available to
+  ;; applications via 'glib-or-gtk-build-system'.
+  '("icon-theme.cache" "gschemas.compiled"))
+
 (define (warn-about-collision files)
   "Handle the collision among FILES by emitting a warning and choosing the
 first one of THEM."
-  (format (current-error-port)
-  "~%warning: collision encountered:~%~{  ~a~%~}"
-  files)
   (let ((file (first files)))
-(format (current-error-port) "warning: choosing ~a~%" file)
+(unless (member (basename file) %harmless-collisions)
+  (format (current-error-port)
+  "~%warning: collision encountered:~%~{  ~a~%~}"
+  files)
+  (format (current-error-port) "warning: choosing ~a~%" file))
 file))
 
 (define* (union-build output inputs



02/03: gnu: Add jupyter-guile-kernel.

2018-05-17 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit fa6a3bb74f8f273358034606d8decc35fb401950
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 13:33:15 2018 +0200

gnu: Add jupyter-guile-kernel.

* gnu/package/guile.scm (jupyter-guile-kernel): New variable.

Co-authored-by: Ludovic Courtès 
---
 gnu/packages/guile.scm | 129 +
 1 file changed, 129 insertions(+)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 9e24e90..84f46d1 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -61,6 +61,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages maths)
@@ -2207,4 +2208,132 @@ It has a nice, simple s-expression based syntax.")
 messaging library.")
   (license license:gpl3+
 
+(define-public jupyter-guile-kernel
+  (let ((commit "a5c5f3ea3215b65e770bcb62f71117b0ec4575ed")
+(revision "0"))
+(package
+  (name "jupyter-guile-kernel")
+  (version (git-version "0.0.0" revision commit))
+  (source
+   (origin
+ (method git-fetch)
+ (uri (git-reference
+   (url "https://github.com/jerry40/guile-kernel;)
+   (commit commit)))
+ (sha256
+  (base32
+   "0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9"
+  (build-system trivial-build-system)
+  (arguments
+   `(#:modules ((guix build utils))
+ #:builder
+ (begin
+   (use-modules (guix build utils)
+(srfi srfi-26)
+(ice-9 match)
+(ice-9 popen)
+(ice-9 rdelim))
+
+   (let* ((out (assoc-ref %outputs "out"))
+  (guile (assoc-ref %build-inputs "guile"))
+  (effective (read-line
+  (open-pipe* OPEN_READ
+  (string-append guile "/bin/guile")
+  "-c" "(display 
(effective-version))")))
+  (module-dir (string-append out "/share/guile/site/"
+ effective))
+  (kernel-dir (string-append out 
"/share/jupyter/kernels/guile"))
+  (go-dir (string-append out "/lib/guile/"
+ effective
+ "/site-ccache"))
+  (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+  (scm-files '("hmac.scm"
+   "tools.scm"
+   "guile-jupyter-kernel.scm"))
+  (kernel-file "kernel.json")
+  (guild  (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild"))
+  (g-szmq (assoc-ref %build-inputs "guile-simple-zmq"))
+  (json   (assoc-ref %build-inputs "guile-json"))
+  (deps   (list g-szmq json))
+  (path   (string-join
+   (map (cut string-append <>
+ "/share/guile/site/"
+ effective)
+deps)
+   ":"))
+  (gopath (string-join
+   (map (cut string-append <>
+ "/lib/guile/" effective
+ "/site-ccache/")
+deps)
+   ":")))
+
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p kernel-dir)
+ (mkdir-p go-dir)
+
+ ;; Make a writable copy of SOURCE.
+ (copy-recursively source ".")
+
+ ;; Record the absolute file name of the 'openssl' command.
+ (substitute* "hmac.scm"
+   (("openssl")
+(string-append (assoc-ref %build-inputs "openssl")
+   "/bin/openssl")))
+
+ ;; Compile .scm files and install.
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (setenv "GUILE_LOAD_PATH" path)
+ (setenv "GUILE_LOAD_COMPILED_PATH" gopath)
+
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+  file))
+(go-file (match (string-split file #\.)
+   ((base _)
+(string-append go-dir "/"
+

03/03: gnu: jupyter: Add search path.

2018-05-17 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 17b59aa0195f156bb65d0ce0ae62551e91a72c77
Author: Rouby Pierre-Antoine 
Date:   Mon May 14 11:10:50 2018 +0200

gnu: jupyter: Add search path.

* gnu/package/python.scm (jupyter)[native-search-paths]: Add it.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/python.scm | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d8d615e..5e2625e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -6881,6 +6881,12 @@ Jupyter kernels such as IJulia and IRKernel.")
("python-jupyter-console" ,python-jupyter-console)
("python-nbconvert" ,python-nbconvert)
("python-notebook" ,python-notebook)))
+
+(native-search-paths
+ (list (search-path-specification
+(variable "JUPYTER_PATH")
+(files '("share/jupyter")
+
 (home-page "http://jupyter.org;)
 (synopsis "Web application for interactive documents")
 (description



01/01: website: Add post about 'guix pack -R'.

2018-05-16 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix-artwork.

commit fe3bca07e5901fcd69ad5fbd45a30af45de99ff8
Author: Ludovic Courtès 
Date:   Wed May 16 10:59:45 2018 +0200

website: Add post about 'guix pack -R'.

* website/posts/guix-pack-relocatable.md: New file.
---
 website/posts/guix-pack-relocatable.md | 177 +
 1 file changed, 177 insertions(+)

diff --git a/website/posts/guix-pack-relocatable.md 
b/website/posts/guix-pack-relocatable.md
new file mode 100644
index 000..a0b1c0d
--- /dev/null
+++ b/website/posts/guix-pack-relocatable.md
@@ -0,0 +1,177 @@
+title: Tarballs, the ultimate container image format
+date: 2018-05-16 11:00
+author: Ludovic Courtès
+tags: Containers, Software development
+---
+
+A year ago [we introduced `guix
+pack`](https://www.gnu.org/software/guix/blog/2017/creating-bundles-with-guix-pack/),
+a tool that allows you to create “application bundles” from a set of Guix
+package definitions.  On your Guix machine, you run:
+
+```sh
+guix pack -S /opt/gnu/bin=bin guile gnutls guile-json
+```
+
+and you get a tarball containing your favorite programming language
+implementation and a couple of libraries, where `/opt/gnu/bin` is a
+symlink to the `bin` directory containing, in this case, the `guile`
+command.  Add `-f docker` and, instead of a tarball, you get an image in
+the Docker format that you can pass to `docker load` on any machine
+where Docker is installed.  Overall that’s a relatively easy way to
+share software stacks with machines that do not run Guix.
+
+The tarball format is plain and simple, it’s the one we know and love,
+and it’s been there “forever” [as its name
+suggests](https://www.gnu.org/software/tar/manual/html_node/Introduction.html).
+The tarball that `guix pack` produces can be readily extracted on
+another machine, one that doesn’t run Guix, and you’re done.  The
+problem though, is that you’ll need to either unpack the tarball in the
+root file system or to play tricks with the `unshare` command, as we saw
+[in the previous
+post](https://www.gnu.org/software/guix/blog/2017/creating-bundles-with-guix-pack/).
+Why can’t we just extract such a tarball in our home directory and
+directly run `./opt/gnu/bin/guile` for instance?
+
+# Relocatable packages
+
+The main issue is that, except in the uncommon case where developers
+went to great lengths to make it possible (as with
+[GUB](http://lilypond.org/gub/), see the [`*-reloc*.patch`
+files](https://github.com/gperciva/gub/tree/master/patches)), packages
+built for GNU/Linux are not relocatable.  ELF files embed things like
+the absolute file name of the dynamic linker, directories where
+libraries are to be search for (they can be relative file names with
+`$ORIGIN` but usually aren’t), and so on; furthermore, it’s very common
+to embed things like the name of the directory that contains locale data
+or other application-specific data.  For Guix-built software, all these
+are absolute file names under `/gnu/store` so Guix-built binaries won’t
+run unless those `/gnu/store` files exist.
+
+On machines where support for [“user
+namespaces”](http://man7.org/linux/man-pages/man7/user_namespaces.7.html)
+is enabled, we can easily “map” the directory where users unpacked the
+tarball that `guix pack` produced to `/gnu/store`, as shown in the
+previous post:
+
+```sh
+$ tar xf /path/to/pack.tar.gz
+$ unshare -mrf chroot . /opt/gnu/bin/guile --version
+guile (GNU Guile) 2.2.0
+```
+
+It does the job but remains quite tedious.  Can’t we automate that?
+
+# `guix pack --relocatable`
+
+The `--relocatable` (or `-R`) option of `guix pack`, which landed [a few
+days ago](https://bugs.gnu.org/31360), produces tarballs with
+automatically relocatable binaries.  Back to our earlier example, let’s
+say you produce a tarball with this new option:
+
+```sh
+guix pack --relocatable -S /bin=bin -S /etc=etc guile gnutls guile-json
+```
+
+You can send the resulting tarball to any machine that runs the kernel
+Linux (it [doesn’t even have to be
+GNU/Linux](https://www.gnu.org/software/guix/blog/2018/guix-on-android/))
+with user namespace support—which, unfortunately, is disabled by default
+on some distros.  There, as a regular user, you can run:
+
+```sh
+$ tar xf /path/to/pack.tar.gz
+$ source ./etc/profile# define ’GUILE_LOAD_PATH’, etc.
+$ ./bin/guile
+guile: warning: failed to install locale
+GNU Guile 2.2.3
+Copyright (C) 1995-2017 Free Software Foundation, Inc.
+
+Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
+This program is free software, and you are welcome to redistribute it
+under certain conditions; type `,show c' for details.
+
+Enter `,help' for help.
+scheme@(guile-user)> ,use(json)
+scheme@(guile-user)> ,use(gnutls)
+```
+
+We were able to run Guile and to use our Guile libraries since sourcing
+`./etc/profile` augmented the `GUILE_LOAD_PATH` environment variable
+that tells Guile where to look for libraries.  

branch master updated (c243076 -> fe3bca0)

2018-05-16 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix-artwork.

  from  c243076   website: Add post about reproducibility paper.
   new  fe3bca0   website: Add post about 'guix pack -R'.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 website/posts/guix-pack-relocatable.md | 177 +
 1 file changed, 177 insertions(+)
 create mode 100644 website/posts/guix-pack-relocatable.md



01/01: gnu: emacs-orgalist: Fix texinfo markup in description.

2018-05-16 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 40dc6df4fb9ddd89d3e74168033b0e234b341a15
Author: Gábor Boskovits 
Date:   Tue May 15 22:03:15 2018 +0200

gnu: emacs-orgalist: Fix texinfo markup in description.

* gnu/packages/emacs.scm (emacs-orgalist)[description]: Modify.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/emacs.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 71e9690..f3d08e8 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4743,7 +4743,7 @@ specifically, Orgalist supports the syntax of Org mode 
for numbered,
 unnumbered, description items, checkboxes, and counter cookies.
 
 The library also implements radio lists, i.e., lists written in Org
-syntax later translated into the host format, e.g., @LaTeX{} or HTML.")
+syntax later translated into the host format, e.g., LaTeX or HTML.")
 (license license:gpl3+)))
 
 (define-public emacs-writegood-mode



branch master updated (63dbdf8 -> 40dc6df)

2018-05-16 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  63dbdf8   doc: Update 'guix size' example.
   new  40dc6df   gnu: emacs-orgalist: Fix texinfo markup in description.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/emacs.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



02/02: doc: Update 'guix size' example.

2018-05-16 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 63dbdf80a327c6f1bf049118731877cd36b8e4df
Author: Ludovic Courtès 
Date:   Tue May 15 22:31:24 2018 +0200

doc: Update 'guix size' example.

* doc/guix.texi (Invoking guix size): Update example.
---
 doc/guix.texi | 22 +-
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 2234d95..a12210d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6913,12 +6913,15 @@ example:
 @example
 $ guix size coreutils
 store item   totalself
-/gnu/store/@dots{}-coreutils-8.23  70.013.9  19.8%
-/gnu/store/@dots{}-gmp-6.0.0a  55.3 2.5   3.6%
-/gnu/store/@dots{}-acl-2.2.52  53.7 0.5   0.7%
-/gnu/store/@dots{}-attr-2.4.46 53.2 0.3   0.5%
-/gnu/store/@dots{}-gcc-4.8.4-lib   52.915.7  22.4%
-/gnu/store/@dots{}-glibc-2.21  37.237.2  53.1%
+/gnu/store/@dots{}-gcc-5.5.0-lib   60.430.1  38.1%
+/gnu/store/@dots{}-glibc-2.27  30.328.8  36.6%
+/gnu/store/@dots{}-coreutils-8.28  78.915.0  19.0%
+/gnu/store/@dots{}-gmp-6.1.2   63.1 2.7   3.4%
+/gnu/store/@dots{}-bash-static-4.4.12   1.5 1.5   1.9%
+/gnu/store/@dots{}-acl-2.2.52  61.1 0.4   0.5%
+/gnu/store/@dots{}-attr-2.4.47 60.6 0.2   0.3%
+/gnu/store/@dots{}-libcap-2.25 60.5 0.2   0.2%
+total: 78.9 MiB
 @end example
 
 @cindex closure
@@ -6938,9 +6941,10 @@ item itself.  The last column shows the ratio of the 
size of the item
 itself to the space occupied by all the items listed here.
 
 In this example, we see that the closure of Coreutils weighs in at
-70@tie{}MiB, half of which is taken by libc.  (That libc represents a
-large fraction of the closure is not a problem @i{per se} because it is
-always available on the system anyway.)
+79@tie{}MiB, most of which is taken by libc and GCC's run-time support
+libraries.  (That libc and GCC's libraries represent a large fraction of
+the closure is not a problem @i{per se} because they are always available
+on the system anyway.)
 
 When the package(s) passed to @command{guix size} are available in the
 store@footnote{More precisely, @command{guix size} looks for the



01/02: doc: Improve 'guix size' documentation.

2018-05-16 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 2fd345cdfdd45dd48c9392a26793e442d680968b
Author: Ludovic Courtès 
Date:   Tue May 15 22:26:05 2018 +0200

doc: Improve 'guix size' documentation.

Suggested by Martin Castillo .
Fixes .

* doc/guix.texi (Invoking guix size): Clarify that 'guix size' looks for
ungrafted packages.  Clarify that it can be passed several package
specifications.
---
 doc/guix.texi | 12 
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a771ab7..2234d95 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6905,7 +6905,8 @@ single output for a package that could easily be split 
(@pxref{Packages
 with Multiple Outputs}).  Such are the typical issues that
 @command{guix size} can highlight.
 
-The command can be passed a package specification such as @code{gcc@@4.8}
+The command can be passed one or more package specifications
+such as @code{gcc@@4.8}
 or @code{guile:debug}, or a file name in the store.  Consider this
 example:
 
@@ -6941,13 +6942,16 @@ In this example, we see that the closure of Coreutils 
weighs in at
 large fraction of the closure is not a problem @i{per se} because it is
 always available on the system anyway.)
 
-When the package passed to @command{guix size} is available in the
-store, @command{guix size} queries the daemon to determine its
+When the package(s) passed to @command{guix size} are available in the
+store@footnote{More precisely, @command{guix size} looks for the
+@emph{ungrafted} variant of the given package(s), as returned by
+@code{guix build @var{package} --no-grafts}.  @xref{Security Updates},
+for information on grafts.}, @command{guix size} queries the daemon to 
determine its
 dependencies, and measures its size in the store, similar to @command{du
 -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU
 Coreutils}).
 
-When the given package is @emph{not} in the store, @command{guix size}
+When the given packages are @emph{not} in the store, @command{guix size}
 reports information based on the available substitutes
 (@pxref{Substitutes}).  This makes it possible it to profile disk usage of
 store items that are not even on disk, only available remotely.



branch master updated (5f93600 -> 63dbdf8)

2018-05-16 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  5f93600   gnu: nano: Update to 2.9.7.
   new  2fd345c   doc: Improve 'guix size' documentation.
   new  63dbdf8   doc: Update 'guix size' example.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/guix.texi | 36 ++--
 1 file changed, 22 insertions(+), 14 deletions(-)



02/02: gnu: Add guile-simple-zmq.

2018-05-15 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit f858e58f192a888273610e87baf34e68b7285e66
Author: Rouby Pierre-Antoine 
Date:   Tue May 15 11:22:04 2018 +0200

gnu: Add guile-simple-zmq.

* gnu/package/guile.scm (guile-simple-zmq): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/guile.scm | 91 ++
 1 file changed, 91 insertions(+)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index d5ca295..9e24e90 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2017 Tobias Geerinckx-Rice 
 ;;; Copyright © 2018 Maxim Cournoyer 
 ;;; Copyright © 2018 Arun Isaac 
+;;; Copyright © 2018 Pierre-Antoine Rouby 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,6 +68,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages networking)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -2116,4 +2118,93 @@ It has a nice, simple s-expression based syntax.")
  "Guile-colorized provides you with a colorized REPL for GNU Guile.")
 (license license:gpl3+)))
 
+(define-public guile-simple-zmq
+  (let ((commit "d76657aeb1cd10ef8136edc06bb9014c7c3c")
+(revision "0"))
+(package
+  (name "guile-simple-zmq")
+  (version (git-version "0.0.0" revision commit))
+  (source
+   (origin
+ (method git-fetch)
+ (uri (git-reference
+   (url "https://github.com/jerry40/guile-simple-zmq;)
+   (commit commit)))
+ (sha256
+  (base32
+   "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z"))
+ (file-name (git-file-name name version
+  (build-system trivial-build-system)
+  (arguments
+   `(#:modules ((guix build utils))
+ #:builder
+ (begin
+   (use-modules (guix build utils)
+(srfi srfi-26)
+(ice-9 match)
+(ice-9 popen)
+(ice-9 rdelim))
+
+   (let* ((out (assoc-ref %outputs "out"))
+  (guile (assoc-ref %build-inputs "guile"))
+  (effective (read-line
+  (open-pipe* OPEN_READ
+  (string-append guile "/bin/guile")
+  "-c" "(display 
(effective-version))")))
+  (module-dir (string-append out "/share/guile/site/"
+ effective))
+  (go-dir (string-append out "/lib/guile/"
+ effective "/site-ccache/"))
+  (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+  (scm-file "simple-zmq.scm")
+  (guild (string-append (assoc-ref %build-inputs "guile")
+"/bin/guild"))
+  (zmq  (assoc-ref %build-inputs "zeromq"))
+  (deps (list zmq))
+  (path (string-join
+ (map (cut string-append <>
+   "/lib/")
+  deps)
+ ":")))
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p go-dir)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+  file))
+(go-file (match (string-split file #\.)
+   ((base _)
+(string-append go-dir "/"
+   base ".go")
+   ;; Install source module.
+   (copy-file file dest-file)
+   (substitute* dest-file
+ (("\\(dynamic-link \"libzmq\"\\)")
+  (format #f "(dynamic-link \"~a/lib/libzmq.so\")"
+  (assoc-ref %build-inputs "zeromq"
+
+   ;; Install and compile module.
+   (unless (zero? (system* guild "compile"
+   "-L" source
+   "-o" go-file
+   dest-file))
+ 

branch master updated (91e5885 -> f858e58)

2018-05-15 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  91e5885   pack: Link top-level entries of wrapped packages.
   new  30d722c   gexp: Disable deprecation warnings for 'imported-modules'.
   new  f858e58   gnu: Add guile-simple-zmq.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/guile.scm | 91 ++
 guix/gexp.scm  | 37 
 2 files changed, 122 insertions(+), 6 deletions(-)



01/02: gexp: Disable deprecation warnings for 'imported-modules'.

2018-05-15 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 30d722c392960373bb45c3248d318ef6e248fb67
Author: Ludovic Courtès 
Date:   Tue May 15 10:34:45 2018 +0200

gexp: Disable deprecation warnings for 'imported-modules'.

Fixes .
Reported by Martin Castillo .

* guix/gexp.scm (gexp->derivation): Pass #:deprecation-warnings to
'imported-modules'.
(imported-files): Add #:deprecation-warnings and pass #:env-vars to
'gexp->derivation'.
(imported-modules): Add #:deprecation-warnings and pass it to
'imported-files'.
---
 guix/gexp.scm | 37 +++--
 1 file changed, 31 insertions(+), 6 deletions(-)

diff --git a/guix/gexp.scm b/guix/gexp.scm
index d26fad7..dd5eb81 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -664,7 +664,9 @@ The other arguments are as for 'derivation'."
  (imported-modules %modules
#:system system
#:module-path 
module-path
-   #:guile guile-for-build)
+   #:guile guile-for-build
+   #:deprecation-warnings
+   deprecation-warnings)
  (return #f)))
(compiled (if (pair? %modules)
  (compiled-modules %modules
@@ -974,7 +976,15 @@ environment."
 (define* (imported-files files
  #:key (name "file-import")
  (system (%current-system))
- (guile (%guile-for-build)))
+ (guile (%guile-for-build))
+
+ ;; XXX: The only reason we have
+ ;; #:deprecation-warnings is because (guix build
+ ;; utils), which we use here, relies on _IO*, which
+ ;; is deprecated in 2.2.  On the next full-rebuild
+ ;; cycle, we should disable such warnings
+ ;; unconditionally.
+ (deprecation-warnings #f))
   "Return a derivation that imports FILES into STORE.  FILES must be a list
 of (FINAL-PATH . FILE) pairs.  Each FILE is mapped to FINAL-PATH in the
 resulting store path.  FILE can be either a file name, or a file-like object,
@@ -1010,13 +1020,25 @@ as returned by 'local-file' for example."
 (gexp->derivation name build
   #:system system
   #:guile-for-build guile
-  #:local-build? #t)))
+  #:local-build? #t
+
+  ;; TODO: On the next rebuild cycle, set to "no"
+  ;; unconditionally.
+  #:env-vars
+  (case deprecation-warnings
+((#f)
+ '(("GUILE_WARN_DEPRECATED" . "no")))
+((detailed)
+ '(("GUILE_WARN_DEPRECATED" . "detailed")))
+(else
+ '())
 
 (define* (imported-modules modules
#:key (name "module-import")
(system (%current-system))
(guile (%guile-for-build))
-   (module-path %load-path))
+   (module-path %load-path)
+   (deprecation-warnings #f))
   "Return a derivation that contains the source files of MODULES, a list of
 module names such as `(ice-9 q)'.  All of MODULES must be either names of
 modules to be found in the MODULE-PATH search path, or a module name followed
@@ -1041,7 +1063,8 @@ last one is created from the given  object."
(cons f (search-path* module-path f))
  modules)))
 (imported-files files #:name name #:system system
-#:guile guile)))
+#:guile guile
+#:deprecation-warnings deprecation-warnings)))
 
 (define* (compiled-modules modules
#:key (name "module-import-compiled")
@@ -1056,7 +1079,9 @@ they can refer to each other."
  #:system system
  #:guile guile
  #:module-path
- module-path)))
+ module-path
+ #:deprecation-warnings
+ deprecation-warnings)))
 (define build
   (gexp
(begin



03/03: pack: Link top-level entries of wrapped packages.

2018-05-14 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 91e588554919f23b3f2b7307e246303499180bcd
Author: Ludovic Courtès 
Date:   Mon May 14 22:59:14 2018 +0200

pack: Link top-level entries of wrapped packages.

Previously things like:

  guix pack -R guile guile-json

would lead to a profile without Guile-JSON, and to an 'etc/profile' that
does not define 'GUILE_LOAD_PATH'.

* guix/scripts/pack.scm (wrapped-package)[build]: Link top-level entries
of PACKAGE into OUTPUT.
---
 guix/scripts/pack.scm | 17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 6d648d1..1e84459 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -378,9 +378,13 @@ please email '~a'~%")
 (local-file (search-auxiliary-file "run-in-namespace.c")))
 
   (define build
-(with-imported-modules '((guix build utils))
+(with-imported-modules (source-module-closure
+'((guix build utils)
+  (guix build union)))
   #~(begin
   (use-modules (guix build utils)
+   ((guix build union) #:select (relative-file-name))
+   (ice-9 ftw)
(ice-9 match))
 
   (define (strip-store-prefix file)
@@ -411,6 +415,17 @@ please email '~a'~%")
   (setvbuf (current-output-port)
(cond-expand (guile-2.2 'line)
 (else  _IOLBF)))
+
+  ;; Link the top-level files of PACKAGE so that search paths are
+  ;; properly defined in PROFILE/etc/profile.
+  (mkdir #$output)
+  (for-each (lambda (file)
+  (unless (member file '("." ".." "bin" "sbin" "libexec"))
+(let ((file* (string-append #$package "/" file)))
+  (symlink (relative-file-name #$output file*)
+   (string-append #$output "/" file)
+(scandir #$package))
+
   (for-each build-wrapper
 (append (find-files #$(file-append package "/bin"))
 (find-files #$(file-append package "/sbin"))



01/03: doc: Update documentation of guix lint

2018-05-14 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 5ac7bf56d0b20d505b747425c5d17f2cc33d9302
Author: Björn Höfling 
Date:   Sun May 13 01:40:00 2018 +0200

doc: Update documentation of guix lint

* doc/guix.texi (Invoking guix lint): Add cpe-version to example.
(Invoking guix lint): Add example for lint-hidden-cve.

Co-authored-by: Ludovic Courtès 
---
 doc/guix.texi | 24 +---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 637c9c3f..a771ab7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6835,15 +6835,33 @@ where @code{CVE--ABCD} is the CVE identifier---e.g.,
 
 Package developers can specify in package recipes the
 @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)}
-name and version of the package when they differ from the name that Guix
-uses, as in this example:
+name and version of the package when they differ from the name or version
+that Guix uses, as in this example:
 
 @example
 (package
   (name "grub")
   ;; @dots{}
   ;; CPE calls this package "grub2".
-  (properties '((cpe-name . "grub2"
+  (properties '((cpe-name . "grub2")
+(cpe-version . "2.3")))
+@end example
+
+@c See .
+Some entries in the CVE database do not specify which version of a
+package they apply to, and would thus ``stick around'' forever.  Package
+developers who found CVE alerts and verified they can be ignored can
+declare them as in this example:
+
+@example
+(package
+  (name "t1lib")
+  ;; @dots{}
+  ;; These CVEs no longer apply and can be safely ignored.
+  (properties `((lint-hidden-cve . ("CVE-2011-0433"
+"CVE-2011-1553"
+"CVE-2011-1554"
+"CVE-2011-5244")
 @end example
 
 @item formatting



branch master updated (3203440 -> 91e5885)

2018-05-14 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  3203440   gnu: Add emacs-orgalist.
   new  5ac7bf5   doc: Update documentation of guix lint
   new  5834e4b   gnu: opencv: Ignore CVEs.
   new  91e5885   pack: Link top-level entries of wrapped packages.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/guix.texi | 24 +---
 gnu/packages/image-processing.scm |  5 +
 guix/scripts/pack.scm | 17 -
 3 files changed, 42 insertions(+), 4 deletions(-)



02/03: gnu: opencv: Ignore CVEs.

2018-05-14 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 5834e4b70aef727d591c271ce3141ed23753377e
Author: Björn Höfling 
Date:   Sun May 13 01:40:30 2018 +0200

gnu: opencv: Ignore CVEs.

* gnu/packages/image-processing.scm (opencv)[properties]:  Add a
lint-hidden-cve property and add three CVEs to be ignored.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/image-processing.scm | 5 +
 1 file changed, 5 insertions(+)

diff --git a/gnu/packages/image-processing.scm 
b/gnu/packages/image-processing.scm
index ef303e1..c69629e 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -372,6 +372,11 @@ integrates with various databases on GUI toolkits such as 
Qt and Tk.")
   ("protobuf" ,protobuf)
   ("vtk" ,vtk)
   ("python" ,python)))
+;; These three CVEs are not a problem of OpenCV, see:
+;; https://github.com/opencv/opencv/issues/10998
+(properties '((lint-hidden-cve . ("CVE-2018-7712"
+  "CVE-2018-7713"
+  "CVE-2018-7714"
 (synopsis "Computer vision library")
 (description "OpenCV is a library aimed at
 real-time computer vision, including several hundred computer



branch master updated (b316205 -> 28bd207)

2018-05-14 Thread Ludovic Courts
civodul pushed a change to branch master
in repository maintenance.

  from  b316205   hydra: status: Remove "Failed Builds" comment.
   new  28bd207   talks: Add talk by Gábor.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../images/GuixSD-horizontal-print.pdf |   1 +
 .../images/GuixSD.pdf  |   1 +
 talks/szabad-szoftver-konferencia-hu-2018/talk.pdf | Bin 0 -> 7 bytes
 .../szabad-szoftver-konferencia-hu-2018/talk.pdfpc |  87 +
 talks/szabad-szoftver-konferencia-hu-2018/talk.tex | 393 +
 5 files changed, 482 insertions(+)
 create mode 12 
talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD-horizontal-print.pdf
 create mode 12 talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD.pdf
 create mode 100644 talks/szabad-szoftver-konferencia-hu-2018/talk.pdf
 create mode 100644 talks/szabad-szoftver-konferencia-hu-2018/talk.pdfpc
 create mode 100644 talks/szabad-szoftver-konferencia-hu-2018/talk.tex



01/01: talks: Add talk by Gábor.

2018-05-14 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository maintenance.

commit 28bd2073aef75dc070799384ca0c9b93453f7127
Author: Ludovic Courtès 
Date:   Mon May 14 10:43:32 2018 +0200

talks: Add talk by Gábor.
---
 .../images/GuixSD-horizontal-print.pdf |   1 +
 .../images/GuixSD.pdf  |   1 +
 talks/szabad-szoftver-konferencia-hu-2018/talk.pdf | Bin 0 -> 7 bytes
 .../szabad-szoftver-konferencia-hu-2018/talk.pdfpc |  87 +
 talks/szabad-szoftver-konferencia-hu-2018/talk.tex | 393 +
 5 files changed, 482 insertions(+)

diff --git 
a/talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD-horizontal-print.pdf 
b/talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD-horizontal-print.pdf
new file mode 12
index 000..7e536b6
--- /dev/null
+++ 
b/talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD-horizontal-print.pdf
@@ -0,0 +1 @@
+../../fsf-hu-talk-2018/images/GuixSD-horizontal-print.pdf
\ No newline at end of file
diff --git a/talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD.pdf 
b/talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD.pdf
new file mode 12
index 000..1f2477d
--- /dev/null
+++ b/talks/szabad-szoftver-konferencia-hu-2018/images/GuixSD.pdf
@@ -0,0 +1 @@
+../../fsf-hu-talk-2018/images/GuixSD.pdf
\ No newline at end of file
diff --git a/talks/szabad-szoftver-konferencia-hu-2018/talk.pdf 
b/talks/szabad-szoftver-konferencia-hu-2018/talk.pdf
new file mode 100644
index 000..506e768
Binary files /dev/null and b/talks/szabad-szoftver-konferencia-hu-2018/talk.pdf 
differ
diff --git a/talks/szabad-szoftver-konferencia-hu-2018/talk.pdfpc 
b/talks/szabad-szoftver-konferencia-hu-2018/talk.pdfpc
new file mode 100644
index 000..2105b3d
--- /dev/null
+++ b/talks/szabad-szoftver-konferencia-hu-2018/talk.pdfpc
@@ -0,0 +1,87 @@
+[duration]
+21
+[notes_position]
+RIGHT
+[last_minutes]
+3
+[end_user_slide]
+14
+[notes]
+### 1
+
+### 2
+Itt az első követelmény lazítható, úgy, hogy ekvivalens bemenetetek esetén 
ekvivalens kimeneteket várunk el.
+
+A második követelmény valójában annyi, hogy perzisztens adatszerkezetben 
tároljuk az eredményeket.
+
+A gyakorlati megvalósításokban irányított aciklikus gráfot használunk.
+
+A cél az, hogy ha szükséges, akkor egy tetszőleges verziót újra elő lehessen 
állítani. Az adatszerkezetben csak konzisztens állapotoknak megfelelő 
konfigurációt tárolunk.
+
+Ez egy node esetén nem okoz problémát, de nagyobb deployment esetén ezt így 
nem lehet csinálni.
+
+Olyan módszerek is kellenek, amik ellenőzik, hogy az állapot valóban 
összeegyeztethető a tárolt gráffal.
+### 3
+Például frissítés közben megszűnik az áramellátás, vagy egyszerűen valamelyik 
csomag frissítésekor hiba lép fel. A régi csomag függőségek már eltávolításra 
kerültek, esetleg maga a régi csomag is, az új csomagot pedig nem sikerült 
feltelepíteni. Ez azt jelenti, hogy az adott csomag funkcionalitása nem 
elérhető. A legsúlyosabb esetekben ez akár bootolhatatlan rendszert is 
eredményezhet.
+
+Ugyanez az időablak a nix és guix esetében egy symlink atomikus átváltására 
szűkül. Ha ez nem sikerül, akkor egyszerűen annyi történik, hogy a régi 
rendszeren maradunk.
+
+A nix és guix semmi olyan szoftvert nem töröl, ami valaha a rendszeren 
telepítve volt, erre kifejezetten kérni kell. Ilyen esetben a csomagkezelő 
azokat a szoftvereket törli, amelyekről bizonyítani tudja, hogy azt más 
szoftver a rendszeren nem használja. Lehetőség van bizonyos szoftvereket 
megjelölni, hogy használatban vannak, így lehet kezelni a nem guix-el 
telepített szoftverek függőségeit, amiről a guix nem tudhat. Jobb módszer, ha 
lehetséges guix csomagot készíteni, mert így rendszer [...]
+
+A nixos és guixsd konfiguráció központosítja a konfigurációkezelést, és a 
GuixSD esetében lehetővé teszi a konfigurációs függőségek megvilágítását is 
(Shepherd service extension).
+
+Fontos alap feltételezés, hogy a központi csomagkezelés csak akkor működik, ha 
mindent nix-el/guix-el csomagolunk.
+### 4
+A bitről bitre reprodukálhatóságnak rengeteg előnye van. Az egyik 
legfontosabb, hogy helyi újrafordítással az eredményt összehasonlítva 
meggyőződehetünk róla, hogy a csomagot ugyanúgy állították elő, mint ahogy mi 
tennénk.
+
+Ezen felül lehetőséget biztosít a helyettesítőcsomagok hash alapján történő 
azonosítására.
+
+Szintén lehetőséget ad arra, hogy a központi tároló tartalomcímezhető legyen. 
Ebben az esetben kialakítható zero trust architektúra, hiszen bárhonnan 
letöltve a helyetttesítőcsomagot, biztosak lehetünk benne, hogy tényleg 
ugyanazt a szoftvert futtatjuk, nem vagyunk ráutalva arra, hogy megbízzunk a 
helyettesítőket biztosító szerverben.
+### 5
+Ez egy nix kifejezés. Ez a nix csomagdefiníciós nyelve.
+
+Alapvetően egy haskell típusú nyelv, némi bash szkripttel vegyítve.
+
+Ez egy külső DSL, saját ad-hoc szintaxisa van, és külön értelmező kell hozzá.
+
+Ezeket a kifejezéseket host side kódnak hívják.
+
+A build side kód 

02/05: gnu: robocut: Remove unnecessary dependency on qttools.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 68fdb38f542d66d329778582c28bf7fad24324a9
Author: Ludovic Courtès 
Date:   Sun May 13 22:40:33 2018 +0200

gnu: robocut: Remove unnecessary dependency on qttools.

Reported by Efraim Flashner.

* gnu/packages/printers.scm (robocut)[native-inputs]: Replace QTTOOLS
with QTBASE, which is where 'qmake' lives.
---
 gnu/packages/printers.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 2e58018..f8890cb 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -60,7 +60,7 @@
("qtsvg" ,qtsvg)))
 (native-inputs
  `(("pkg-config" ,pkg-config)
-   ("qmake" ,qttools)))
+   ("qmake" ,qtbase)))
 (synopsis "Graphical program to drive plotting cutters")
 (description
  "Robocut is a simple graphical program that allows you to cut graphics



04/05: gnu: Add ghc-array.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit e5d92c1ce197ec6da891f69565fe550f502f8e7c
Author: Tonton 
Date:   Fri May 11 22:34:04 2018 +0200

gnu: Add ghc-array.

* gnu/packages/haskell.scm (ghc-array): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/haskell.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9b26ff5..c65df28 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2017, 2018 Alex Vong 
 ;;; Copyright © 2017 rsiddharth 
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice 
+;;; Copyright © 2018 Tonton 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -9466,4 +9467,27 @@ system dependencies.")
 address string against RFC 5322.")
 (license license:bsd-3)))
 
+(define-public ghc-array
+  (package
+   (name "ghc-array")
+   (version "0.5.2.0")
+   (source
+(origin
+ (method url-fetch)
+ (uri
+  (string-append "https://hackage.haskell.org/package/array-0.5.2.0/array-;
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+  (base32
+   "12v83s2imxb3p2crnlzrpjh0nk6lpysw9bdk9yahs6f37csa5jaj"
+   (build-system haskell-build-system)
+   (synopsis "Haskell @code{Data.Array} module")
+   (description "In addition to providing the @code{Data.Array} module as
+specified in the Haskell 2010 Language Report, this package defines the
+classes @code{IArray} of immutable arrays and @code{MArray} of arrays mutable
+within appropriate monads, as well as some instances of these classes.")
+   (home-page "https://hackage.haskell.org/package/array;)
+   (license license:bsd-3)))
+
 ;;; haskell.scm ends here



03/05: gnu: Add ghc-quickcheck-2.9.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 44cea5784128353f0449899ae4ca7fdb5259c024
Author: Tonton 
Date:   Fri May 11 22:29:32 2018 +0200

gnu: Add ghc-quickcheck-2.9.

* gnu/packages/haskell-check.scm (ghc-quickcheck-2.9): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/haskell-check.scm | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 6b1d769..7453f9f 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Danny Milosavljevic 
 ;;; Copyright © 2017 rsiddharth 
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice 
+;;; Copyright © 2018 Tonton 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -451,6 +452,19 @@ hold in a large number of randomly generated cases.  
Specifications are
 expressed in Haskell, using combinators defined in the QuickCheck library.")
 (license license:bsd-3)))
 
+(define-public ghc-quickcheck-2.9
+  (package
+(inherit ghc-quickcheck)
+(name "ghc-quickcheck")
+(version "2.9.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append 
"https://hackage.haskell.org/package/QuickCheck-2.9.2/QuickCheck-;
+  version ".tar.gz"))
+  (sha256
+   (base32
+"119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m"))
+
 (define-public ghc-quickcheck-latest
   (package (inherit ghc-quickcheck)
 (version "2.11.3")



branch master updated (fb8aff7 -> 7d4e377)

2018-05-13 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  fb8aff7   gnu: speedtest-cli: Update to 2.0.0.
   new  9e7b87d   build: 'test-env' does not 'guix download' non-existent 
files.
   new  68fdb38   gnu: robocut: Remove unnecessary dependency on qttools.
   new  44cea57   gnu: Add ghc-quickcheck-2.9.
   new  e5d92c1   gnu: Add ghc-array.
   new  7d4e377   gnu: Add ghc-containers.

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 build-aux/test-env.in  |  1 +
 gnu/packages/haskell-check.scm | 14 +++
 gnu/packages/haskell.scm   | 55 ++
 gnu/packages/printers.scm  |  2 +-
 4 files changed, 71 insertions(+), 1 deletion(-)



01/05: build: 'test-env' does not 'guix download' non-existent files.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 9e7b87ddc51c640c529d445e350c3d6ef43e301d
Author: Ludovic Courtès 
Date:   Sun May 13 16:07:12 2018 +0200

build: 'test-env' does not 'guix download' non-existent files.

Reported by uniq10.

* build-aux/test-env.in: Check whether FILE exists before invoking 'guix
download'.
---
 build-aux/test-env.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/build-aux/test-env.in b/build-aux/test-env.in
index 52082c6..aaadcf2 100644
--- a/build-aux/test-env.in
+++ b/build-aux/test-env.in
@@ -132,6 +132,7 @@ then
 
for file in "$bootstrap_directory"/guile-*
do
+   [ -f "$file" ] &&   \
"@abs_top_builddir@/pre-inst-env"   \
guix download "file://$file" > /dev/null
done



05/05: gnu: Add ghc-containers.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 7d4e377ff5dfb0b708255e30741f2d26407f1677
Author: Tonton 
Date:   Fri May 11 22:34:05 2018 +0200

gnu: Add ghc-containers.

* gnu/packages/haskell.scm (ghc-containers): New variable.

Signed-off-by: Ludovic Courtès 
---
 gnu/packages/haskell.scm | 31 +++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c65df28..39c0c0a 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -9490,4 +9490,35 @@ within appropriate monads, as well as some instances of 
these classes.")
(home-page "https://hackage.haskell.org/package/array;)
(license license:bsd-3)))
 
+(define-public ghc-containers
+  (package
+   (name "ghc-containers")
+   (version "0.5.11.0")
+   (source
+(origin
+ (method url-fetch)
+ (uri
+  (string-append 
"https://hackage.haskell.org/package/containers-0.5.11.0/containers-;
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+  (base32
+   "0j29w09kvcn1c0yi4clmrdbgs2gqmpxs2m7q80ib2ix1smm25kaq"
+   (build-system haskell-build-system)
+   (inputs `(("ghc-array" ,ghc-array)
+ ("ghc-deepseq" ,ghc-deepseq-generics)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-chasingbottoms" ,ghc-chasingbottoms)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-ghc-prim" ,ghc-primitive)))
+   (synopsis "Haskell containers: Assorted concrete container types")
+   (description "This Haskell module provides efficient general-purpose
+implementations of various immutable container types including sets, maps,
+sequences, trees, and graphs.")
+   (home-page "https://hackage.haskell.org/package/containers;)
+   (license license:bsd-3)))
+
 ;;; haskell.scm ends here



01/04: gnu: hypre: Add missing dependency on Perl.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit e18e7cb9f4c08efb3b7233dd1042553924594743
Author: Ludovic Courtès 
Date:   Sat May 12 16:32:52 2018 +0200

gnu: hypre: Add missing dependency on Perl.

Previously the test suite would fail to run 'ppmquant', though it would
silently ignore it.

* gnu/packages/maths.scm (hypre)[native-inputs]: Add PERL.
---
 gnu/packages/maths.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 6387f71..2e6f79a 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3454,6 +3454,7 @@ set.")
 (native-inputs
  `(("doc++" ,doc++)
("netpbm" ,netpbm)
+   ("perl" ,perl)   ;needed to run 'ppmquant' during tests
("texlive" ,texlive) ;full package required for fonts
("ghostscript" ,ghostscript)))
 (inputs



04/04: gnu: Add Robocut.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit d801cd0509c9c9523300c41582ec3d8e59e15539
Author: Ludovic Courtès 
Date:   Sun May 13 13:28:55 2018 +0200

gnu: Add Robocut.

* gnu/packages/printers.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk  |  1 +
 gnu/packages/printers.scm | 69 +++
 2 files changed, 70 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 3ca7d45..cce950b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -344,6 +344,7 @@ GNU_SYSTEM_MODULES =\
   %D%/packages/plotutils.scm   \
   %D%/packages/polkit.scm  \
   %D%/packages/popt.scm\
+  %D%/packages/printers.scm\
   %D%/packages/profiling.scm   \
   %D%/packages/pth.scm \
   %D%/packages/pulseaudio.scm  \
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
new file mode 100644
index 000..2e58018
--- /dev/null
+++ b/gnu/packages/printers.scm
@@ -0,0 +1,69 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Ludovic Courtès 
+;;;
+;;; 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 printers)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages qt))
+
+;; This is a module for packages related to printer-like devices, but not
+;; related to CUPS.
+
+(define-public robocut
+  (package
+(name "robocut")
+(version "1.0.11")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/Ti/robocut/archive/v;
+version ".tar.gz"))
+  (sha256
+   (base32
+"0nmr1plq1f6sarxwqwy4vzbxkljlx8y4xalm7r05vx4lrdai5pad"))
+  (file-name (string-append name "-" version ".tar.gz"
+(build-system gnu-build-system)
+(arguments
+ '(#:phases (modify-phases %standard-phases
+  (replace 'configure
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out")))
+(substitute* "Robocut.pro"
+  (("/usr/")
+   (string-append out "/")))
+
+(invoke "qmake"
+(string-append "PREFIX=" out))
+#t))
+(inputs
+ `(("libusb" ,libusb)
+   ("qt" ,qtbase)
+   ("qtsvg" ,qtsvg)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("qmake" ,qttools)))
+(synopsis "Graphical program to drive plotting cutters")
+(description
+ "Robocut is a simple graphical program that allows you to cut graphics
+with Graphtec and Sihouette plotting cutters using an SVG file as its input.")
+(home-page "http://robocut.org;)
+(license license:gpl3+)))



branch master updated (fb6357c -> d801cd0)

2018-05-13 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  fb6357c   gnu: Go 1.10: Update to 1.10.2.
   new  e18e7cb   gnu: hypre: Add missing dependency on Perl.
   new  437f62f   utils: Add 'version-prefix?'.
   new  348987d   packages: 'find-packages-by-name' properly honors version 
prefixes.
   new  d801cd0   gnu: Add Robocut.

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/local.mk  |  1 +
 gnu/packages.scm  |  2 +-
 gnu/packages/maths.scm|  1 +
 gnu/packages/printers.scm | 69 +++
 guix/utils.scm| 24 -
 tests/utils.scm   |  6 +
 6 files changed, 101 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/printers.scm



02/04: utils: Add 'version-prefix?'.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 437f62f02a1b8c89b8ab39ecd53926489fac42db
Author: Ludovic Courtès 
Date:   Sun May 13 12:16:08 2018 +0200

utils: Add 'version-prefix?'.

* guix/utils.scm (version-prefix?): New procedure.
* tests/utils.scm ("version-prefix?"): New test.
---
 guix/utils.scm  | 24 +++-
 tests/utils.scm |  6 ++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/guix/utils.scm b/guix/utils.scm
index 92e45de..e9efea5 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès 

+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès 

 ;;; Copyright © 2013, 2014, 2015 Mark H Weaver 
 ;;; Copyright © 2014 Eric Bavier 
 ;;; Copyright © 2014 Ian Denhardt 
@@ -84,6 +84,7 @@
 version-major+minor
 version-major
 guile-version>?
+version-prefix?
 string-replace-substring
 arguments-from-environment-variable
 file-extension
@@ -521,6 +522,27 @@ minor version numbers from version-string."
 (micro-version))
  str))
 
+(define version-prefix?
+  (let ((not-dot (char-set-complement (char-set #\.
+(lambda (v1 v2)
+  "Return true if V1 is a version prefix of V2:
+
+  (version-prefix? \"4.1\" \"4.16.2\") => #f
+  (version-prefix? \"4.1\" \"4.1.2\") => #t
+"
+  (define (list-prefix? lst1 lst2)
+(match lst1
+  (() #t)
+  ((head1 tail1 ...)
+   (match lst2
+ (() #f)
+ ((head2 tail2 ...)
+  (and (equal? head1 head2)
+   (list-prefix? tail1 tail2)))
+
+  (list-prefix? (string-tokenize v1 not-dot)
+(string-tokenize v2 not-dot)
+
 (define (file-extension file)
   "Return the extension of FILE or #f if there is none."
   (let ((dot (string-rindex file #\.)))
diff --git a/tests/utils.scm b/tests/utils.scm
index 197182a..3015b21 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -72,6 +72,12 @@
 (test-assert "guile-version>? 10.5"
   (not (guile-version>? "10.5")))
 
+(test-assert "version-prefix?"
+  (and (version-prefix? "4.1" "4.1.2")
+   (version-prefix? "4.1" "4.1")
+   (not (version-prefix? "4.1" "4.16.2"))
+   (not (version-prefix? "4.1" "4"
+
 (test-equal "string-tokenize*"
   '(("foo")
 ("foo" "bar" "baz")



03/04: packages: 'find-packages-by-name' properly honors version prefixes.

2018-05-13 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 348987d3d12ebaf11fdbcc3dbd56585e7d69a1f5
Author: Ludovic Courtès 
Date:   Sun May 13 12:16:34 2018 +0200

packages: 'find-packages-by-name' properly honors version prefixes.

Fixes .
Reported by Mark H Weaver .

* gnu/packages.scm (find-packages-by-name): Use 'version-prefix?'
instead of 'string-prefix?'.
---
 gnu/packages.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages.scm b/gnu/packages.scm
index 1a37a17..7b95476 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -188,7 +188,7 @@ decreasing version order."
 version>?)))
 (if version
 (filter (lambda (package)
-  (string-prefix? version (package-version package)))
+  (version-prefix? version (package-version package)))
 matching)
 matching)
 



01/01: hydra: Switch back to "-" instead of "@" in package job names.

2018-05-12 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit d6680dccb0cbff97946094b967b0b897fe88311a
Author: Ludovic Courtès 
Date:   Sat May 12 15:57:46 2018 +0200

hydra: Switch back to "-" instead of "@" in package job names.

Fixes a regression introduced in ede121de426f9c56820852888a0b370f0ccbce49.
Reported by Mark H Weaver .

* build-aux/hydra/gnu-system.scm (job-name): Pass "-" as the second
argument to 'package-full-name'.
---
 build-aux/hydra/gnu-system.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index 62eb957..654f3ec 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -264,7 +264,8 @@ all its dependencies, and ready to be installed on 
non-GuixSD distributions.")
 
 (define job-name
   ;; Return the name of a package's job.
-  (compose string->symbol package-full-name))
+  (compose string->symbol
+   (cut package-full-name <> "-")))
 
 (define package->job
   (let ((base-packages



branch master updated (78ad8db -> d6680dc)

2018-05-12 Thread Ludovic Courts
civodul pushed a change to branch master
in repository guix.

  from  78ad8db   gnu: u-boot-versatilepb: Remove package.
   new  d6680dc   hydra: Switch back to "-" instead of "@" in package job 
names.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 build-aux/hydra/gnu-system.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



03/05: gnu: arpack-ng-openmpi: Fix build.

2018-05-11 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 4f38754180bc880f6986b333b8e15e63709fb550
Author: Ludovic Courtès 
Date:   Fri May 11 17:16:12 2018 +0200

gnu: arpack-ng-openmpi: Fix build.

* gnu/packages/maths.scm (arpack-ng-openmpi)[arguments]: Inherit
arguments from ARPACK-NG.  Previously the 'configure' phase would fail
due to the lack of a 'configure' script.
---
 gnu/packages/maths.scm | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index edbbdff..6387f71 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -479,7 +479,10 @@ large scale eigenvalue problems.")
 (inputs
  `(("mpi" ,openmpi)
,@(package-inputs arpack-ng)))
-(arguments `(#:configure-flags '("--enable-mpi")))
+(arguments
+ (substitute-keyword-arguments (package-arguments arpack-ng)
+   ((#:configure-flags _ '())
+''("--enable-mpi"
 (synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
 
 (define-public lapack



02/05: pack: 'guix pack -S xxx' no longer adds entries twice to the tarball.

2018-05-11 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 26b8cadf88aeb1dfbc8625f02bbc20ecc0c718de
Author: Ludovic Courtès 
Date:   Fri May 11 16:56:19 2018 +0200

pack: 'guix pack -S xxx' no longer adds entries twice to the tarball.

* guix/scripts/pack.scm 
(self-contained-tarball)[build](symlink->directives):
Do not add a 'directory' directive for "/".  Previously, as soon as we
were using '-S /bin=bin' or similar, we would add every entry a second
time in the tarball; this would translate as hard links in the tarball,
which tar < 1.30 sometimes fails to extract.
Pass symlinks defined in DIRECTIVES to 'tar'.
---
 guix/scripts/pack.scm | 23 +--
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index db56092..6d648d1 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -122,10 +122,17 @@ added to the pack."
 ;; parent directories.
 (match-lambda
   ((source '-> target)
-   (let ((target (string-append #$profile "/" target)))
- `((directory ,(dirname source))
+   (let ((target (string-append #$profile "/" target))
+ (parent (dirname source)))
+ ;; Never add a 'directory' directive for "/" so as to
+ ;; preserve its ownnership when extracting the archive (see
+ ;; below), and also because this would lead to adding the
+ ;; same entries twice in the tarball.
+ `(,@(if (string=? parent "/")
+ '()
+ `((directory ,parent)))
(,source
--> ,(relative-file-name (dirname source) target)))
+-> ,(relative-file-name parent target)))
 
   (define directives
 ;; Fully-qualified symlinks.
@@ -146,9 +153,11 @@ added to the pack."
"")
  #$tar "/bin"))
 
-  ;; Note: there is not much to gain here with deduplication and
-  ;; there is the overhead of the '.links' directory, so turn it
-  ;; off.
+  ;; Note: there is not much to gain here with deduplication and there
+  ;; is the overhead of the '.links' directory, so turn it off.
+  ;; Furthermore GNU tar < 1.30 sometimes fails to extract tarballs
+  ;; with hard links:
+  ;; .
   (populate-single-profile-directory %root
  #:profile #$profile
  #:closure "profile"
@@ -195,6 +204,8 @@ added to the pack."
 (filter-map (match-lambda
   (('directory directory)
(string-append "." directory))
+  ((source '-> _)
+   (string-append "." source))
   (_ #f))
 directives)
 



01/05: pack: Relocatable wrapper now properly maps the current UID/GID.

2018-05-11 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit 30da3173d5ee69777d0e1de4f9c977dea72e8a77
Author: Ludovic Courtès 
Date:   Fri May 11 16:41:35 2018 +0200

pack: Relocatable wrapper now properly maps the current UID/GID.

* gnu/packages/aux-files/run-in-namespace.c (write_id_map)
(disallow_setgroups): New functions.
(main): Use 'clone' via 'syscall' instead of 'fork' followed by
'unshare'.  Add calls to 'disallow_setgroups' and 'write_id_map' in the
parent process.
---
 gnu/packages/aux-files/run-in-namespace.c | 87 ---
 1 file changed, 68 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/aux-files/run-in-namespace.c 
b/gnu/packages/aux-files/run-in-namespace.c
index d0ab05c..f0cff88 100644
--- a/gnu/packages/aux-files/run-in-namespace.c
+++ b/gnu/packages/aux-files/run-in-namespace.c
@@ -40,6 +40,7 @@
 #include 
 #include 
 #include 
+#include 
 
 /* Concatenate DIRECTORY, a slash, and FILE.  Return the result, which the
caller must eventually free.  */
@@ -168,6 +169,48 @@ bind_mount (const char *source, const char *target)
   closedir (stream);
 }
 
+/* Write the user/group ID map for PID to FILE, mapping ID to itself.  See
+   user_namespaces(7).  */
+static void
+write_id_map (pid_t pid, const char *file, int id)
+{
+  char id_map_file[100];
+  snprintf (id_map_file, sizeof id_map_file, "/proc/%d/%s", pid, file);
+
+  char id_map[100];
+
+  /* Map root and the current user.  */
+  int len = snprintf (id_map, sizeof id_map, "%d %d 1\n", id, id);
+  int fd = open (id_map_file, O_WRONLY);
+  if (fd < 0)
+assert_perror (errno);
+
+  int n = write (fd, id_map, len);
+  if (n < 0)
+assert_perror (errno);
+
+  close (fd);
+}
+
+/* Disallow setgroups(2) for PID.  */
+static void
+disallow_setgroups (pid_t pid)
+{
+  char file[100];
+
+  snprintf (file, sizeof file, "/proc/%d/setgroups", pid);
+
+  int fd = open (file, O_WRONLY);
+  if (fd < 0)
+assert_perror (errno);
+
+  int err = write (fd, "deny", 5);
+  if (err < 0)
+assert_perror (errno);
+
+  close (fd);
+}
+
 
 int
 main (int argc, char *argv[])
@@ -201,26 +244,16 @@ main (int argc, char *argv[])
   char *new_store = concat (new_root, "@STORE_DIRECTORY@");
   char *cwd = get_current_dir_name ();
 
-  pid_t child = fork ();
+  /* Create a child with separate namespaces and set up bind-mounts from
+there.  That way, bind-mounts automatically disappear when the child
+exits, which simplifies cleanup for the parent.  Note: clone is more
+convenient than fork + unshare since the parent can directly write
+the child uid_map/gid_map files.  */
+  pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER,
+NULL, NULL, NULL);
   switch (child)
{
case 0:
- /* Unshare namespaces in the child and set up bind-mounts from
-there.  That way, bind-mounts automatically disappear when the
-child exits, which simplifies cleanup for the parent.  */
- err = unshare (CLONE_NEWNS | CLONE_NEWUSER);
- if (err < 0)
-   {
- fprintf (stderr, "%s: error: 'unshare' failed: %m\n", argv[0]);
- fprintf (stderr, "\
-This may be because \"user namespaces\" are not supported on this system.\n\
-Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\
-unless you move it to the '@STORE_DIRECTORY@' directory.\n\
-\n\
-Please refer to the 'guix pack' documentation for more information.\n");
- return EXIT_FAILURE;
-   }
-
  /* Note: Due to 
 we cannot make NEW_ROOT a tmpfs (which would have saved the need
 for 'rm_rf'.)  */
@@ -239,11 +272,27 @@ Please refer to the 'guix pack' documentation for more 
information.\n");
  /* Change back to where we were before chroot'ing.  */
  chdir (cwd);
  break;
+
case -1:
- assert_perror (errno);
- break;
+ fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]);
+ fprintf (stderr, "\
+This may be because \"user namespaces\" are not supported on this system.\n\
+Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\
+unless you move it to the '@STORE_DIRECTORY@' directory.\n\
+\n\
+Please refer to the 'guix pack' documentation for more information.\n");
+ return EXIT_FAILURE;
+
default:
  {
+   /* Map the current user/group ID in the child's namespace (the
+  default is to get the "overflow UID", i.e., the UID of
+  "nobody").  We must first disallow 'setgroups' for that
+  process.  */
+   disallow_setgroups (child);
+   write_id_map (child, "uid_map", getuid ());
+   write_id_map (child, "gid_map", getgid ());
+
int status;
waitpid (child, , 0);

05/05: gnu: diffoscope: Update to 94.

2018-05-11 Thread Ludovic Courts
civodul pushed a commit to branch master
in repository guix.

commit cbcdb777900618f0858e26c91415c603e2a44fb8
Author: Ludovic Courtès 
Date:   Fri May 11 18:42:25 2018 +0200

gnu: diffoscope: Update to 94.

* gnu/packages/package-management.scm (diffoscope): Update to 94.
---
 gnu/packages/package-management.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/package-management.scm 
b/gnu/packages/package-management.scm
index fe53e67..1356480 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -544,13 +544,13 @@ transactions from C or Python.")
 (define-public diffoscope
   (package
 (name "diffoscope")
-(version "93")
+(version "94")
 (source (origin
   (method url-fetch)
   (uri (pypi-uri name version))
   (sha256
(base32
-"0g90nf7817jk03hzk36l3hymky4xqs50iynfld3r0in7hffly5nj"
+"07pcc4r9kz8zfr4pfkzk3ipgyv7m5h9vwicrzdgjpa87nbbdgjx6"
 (build-system python-build-system)
 (arguments
  `(#:phases (modify-phases %standard-phases



  1   2   3   4   5   6   7   8   9   10   >