Re: [PATCH] gnu: Add nickle.

2016-09-21 Thread Leo Famulari
On Mon, Sep 19, 2016 at 06:15:13PM +, ng0 wrote:
> * gnu/local.mk: Include gnu/packages/nickle.scm .
> * gnu/packages/nickle.scm: Add new file.
> * gnu packages/nickle.scm (nickle): New variable.

> +(native-inputs
> + `(("automake" ,automake)
> +   ("autoconf" ,autoconf)
> +   ("bison" ,bison)
> +   ("flex" ,flex)
> +   ("readline" ,readline)))

It builds when automake, autoconf, bison, and flex are removed from
native-inputs. Does nickle need those programs?


signature.asc
Description: PGP signature


Re: [PATCH] perl-io-socket-ssl-2.038

2016-09-21 Thread Leo Famulari
On Mon, Sep 19, 2016 at 06:32:01PM +, ng0 wrote:
> From b0c42ee26e17f4ce1d113006caeadf69e43c0fed Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Mon, 19 Sep 2016 18:30:34 +
> Subject: [PATCH] gnu: perl-io-socket-ssl: Update to 2.038.
> 
> * gnu/packages/web.scm (perl-io-socket-ssl): Update to 2.038.

Pushed, thanks!



[PATCH v2 1/2] gnu: Add sqlcipher.

2016-09-21 Thread Andy Patterson
* gnu/packages/database.scm (sqlcipher): New variable.
---
 gnu/packages/databases.scm | 53 ++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 4f345e2..3e25d47 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2016 Roel Janssen 
 ;;; Copyright © 2016 David Craven 
 ;;; Copyright © 2016 Jan Nieuwenhuizen 
+;;; Copyright © 2016 Andy Patterson 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,11 +35,13 @@
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages language)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages ncurses)
@@ -1150,3 +1153,53 @@ can autogenerate peewee models using @code{pwiz}, a 
model generator.")
 
 (define-public python2-peewee
   (package-with-python2 python-peewee))
+
+(define-public sqlcipher
+  (package
+(name "sqlcipher")
+(version "3.3.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/sqlcipher/; name
+   "/archive/v" version ".tar.gz"))
+   (sha256
+(base32 "1gv58dlbpzrmznly52yqbxgvii0ib88zr3aszla1bsypwjr6flff"))
+   (file-name (string-append name "-" version ".tar.gz"
+(build-system gnu-build-system)
+(inputs
+ `(("libcrypto" ,openssl)
+   ("libtcl8.6" ,tcl))) ; required for running the tests
+(native-inputs
+ `(("tcl" ,tcl)))
+(arguments
+ '(#:configure-flags
+   '("--enable-tempstore=yes"
+ "CFLAGS=-DSQLITE_HAS_CODEC -DSQLITE_ENABLE_FTS3"
+ "LDFLAGS=-lcrypto -ltcl8.6"
+ "--disable-tcl")
+   ;; tests cannot be run from the Makefile
+   ;; see: 
+   #:test-target "testfixture"
+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'check 'build-test-runner
+   (assoc-ref %standard-phases 'check))
+ (replace 'check
+   (lambda _
+ (zero?
+  (system* "./testfixture" "test/crypto.test")))
+(home-page "https://www.zetetic.net/sqlcipher/;)
+(synopsis
+ "Library providing transparent encryption of SQLite database files")
+(description "SQLCipher is an implementation of SQLite, extended to
+provide transparent 256-bit AES encryption of database files.  Pages are
+encrypted before being written to disk and are decrypted when read back.  It’s
+well suited for protecting embedded application databases and for mobile
+development.")
+;; The source files
+;; src/{crypto.c,crypto_impl.c,crypto.h,crypto_cc.c,crypto_libtomcrypt.c},
+;; src/{crypto_openssl.c,sqlcipher.h}, tool/crypto-speedtest.tcl,
+;; test/crypto.test are licensed under a 3-clause BSD license. All other
+;; source files are in the public domain.
+(license (list license:public-domain license:bsd-3
-- 
2.10.0




[PATCH v2 2/2] gnu: Add qtox.

2016-09-21 Thread Andy Patterson
* gnu/packages/messaging.scm (qtox): New variable.
---
 gnu/packages/messaging.scm | 54 ++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 2b0ffee..9bdcfef 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2015, 2016 Ricardo Wurmus 
 ;;; Copyright © 2015 Efraim Flashner 
 ;;; Copyright © 2016 ng0 
+;;; Copyright © 2016 Andy Patterson 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages check)
@@ -662,6 +664,58 @@ instant messenger with audio and video chat capabilities.")
(home-page "http://utox.org/;)
(license license:gpl3)))
 
+(define-public qtox
+  (package
+(name "qtox")
+(version "1.5.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/qTox/qTox/archive/v;
+   version ".tar.gz"))
+   (sha256
+(base32 "0y15mc39x54k1kz36cw9412kl1p1p6nzlx97gagv4gg3vybfhbjv"))
+   (file-name (string-append name "-" version ".tar.gz"
+(inputs
+ `(("ffmpeg" ,ffmpeg)
+   ("glib" ,glib)
+   ("gtk+" ,gtk+-2)
+   ("libsodium" ,libsodium)
+   ("libtoxcore" ,libtoxcore)
+   ("libvpx" ,libvpx)
+   ("libxscrnsaver" ,libxscrnsaver)
+   ("libx11" ,libx11)
+   ("openal" ,openal)
+   ("qrencode" ,qrencode)
+   ("qt" ,qt)
+   ("sqlcipher" ,sqlcipher)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("qmake" ,qt)))
+(build-system gnu-build-system)
+(arguments
+ '(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'fix-reproducibility-issues
+   (lambda _
+ (substitute* "src/main.cpp"
+   (("__DATE__") "\"\"")
+   (("__TIME__") "\"\"")
+   (("TIMESTAMP") "\"\""))
+ #t))
+ (replace 'configure
+   (lambda* (#:key outputs #:allow-other-keys)
+ (zero?
+  (system* "qmake"
+   (string-append "PREFIX="
+  (assoc-ref outputs "out")
+(home-page "https://qtox.github.io/;)
+(synopsis "Tox chat client using Qt")
+(description "qTox is a Tox client that follows the Tox design
+guidelines.  It provides an easy to use application that allows you to
+connect with friends and family without anyone else listening in.")
+(license license:gpl3+)))
+
 (define-public pybitmessage
   (package
 (name "pybitmessage")
-- 
2.10.0




[PATCH v2 0/2] Add qtox.

2016-09-21 Thread Andy Patterson
Here's the updated patch set, which improves the license and description
fields for sqlcipher. While I was at it I discovered that there were tests
made specifically for that package, so I enabled them. They haven't been
updated for the current release however, so I downgraded to the previous one.

I also swapped the order of qtox's custom phases for legibility and rebased on
to master.

--
Andy





Re: [Patch 1/10] Add pjproject.

2016-09-21 Thread Ricardo Wurmus

Hi Lukas,

Thanks for sending an updated patch!

>>> +(define-public pjproject-sfl
>>> +  (let ((sfl-patches
>>> + (let ((commit "3dbedf53e9cceebb1eed155b5143026f6d253cb8"))
>>> +   (origin
>>> + (method git-fetch)
>>> + (uri
>>> +  (git-reference
>>> +   (url
>>> +"https://gerrit-ring.savoirfairelinux.com/ring-daemon.git;)
>>> +   (commit commit)))
>>> + (file-name (string-append "sfl-patches" "-" "0.0.0-1."
>>> +   (string-take commit 7)  
>>> "-checkout"))
>>> + (modules '((guix build utils)
>>> +(ice-9 ftw)))
>>> + (snippet
>>> +  '(let ((files (scandir "." (lambda (file)
>>> +   (if (or (string=? file ".")
>>> +   (string=? file ".."))
>>> +   #f
>>> +   #t)
>>> + (mkdir-p "sfl-patches")
>>> + (copy-recursively "contrib/src/pjproject/" "sfl-patches")
>>> + (for-each delete-file-recursively files)))
>>
>> Why is this needed?
>
> My idea here is the following:  The source tree downloaded here contains
> the complete source for libring, which includes the patches to
> pjproject.  In this snippet I try to get rid of all the other libring
> files that are not needed and only keep the patches to pjproject.  Then
> I try to make the directory tree that contains these patches as shallow
> as possible.  I remember I had some problems with copying them to "."
> but trying again now it works.  I attached an updated patch that does
> this.

Is there no release that includes these patches?  Why do we have to
apply them ourselves?  In Guix we try to avoid patching upstream sources
with functional patches (as opposed to patches that fix problems with
building the software on Guix), as this is really upstream’s work.

Is this really pjproject version 2.4 when we apply a massive patch set
like that?

~~ Ricardo




Re: Writing recipe for Crypto++, and getting build errors

2016-09-21 Thread Ben Woodcroft



On 09/22/2016 11:18 AM, Ben Woodcroft wrote:

Welcome Adoney,


Also, I forgot to say, make sure to remove the "-mtune=native" flag from 
the gcc calls, and there is no need to set 'gcc' as an input if you are 
using the gnu-build-system.


ben



Re: Writing recipe for Crypto++, and getting build errors

2016-09-21 Thread Ben Woodcroft

Welcome Adoney,


On 09/22/2016 01:24 AM, Adonay Felipe Nogueira wrote:

[..]
Doing:

$ guix build --fallback "cryptopp"

... outputs:

# Begin of output
starting phase `build'
make: *** No rule to make target 'dynamic'.  Stop.
phase `build' failed after 0.2 seconds
builder for
`/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' failed
with exit code 1
@
build-failed /gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv - 1 
builder for `/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' 
failed with exit code 1
guix build: error: build failed: build of
`/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' failed
# End of output


The problem is that you've been tarbombed, as it were - the zip file 
contains the source code files in its base directory, and then after 
unzipping in the builder a test directory is entered. You can see this 
by inspecting the 'environment-variables' file in the build directory. 
Our usual fix for this is to use 'url-fetch/tarbomb' rather than 
'url-fetch', but it seems that 'url-fetch/tarbomb' does not correctly 
handle zip files.


We should fix 'url-fetch/tarbomb', but in the meantime I suggest 
replacing the unpack phase like so:


   (replace 'unpack
 (lambda* (#:key source #:allow-other-keys)
   (and (zero? (system* "unzip" source "-d" "source"))
(begin (chdir "source") #t



## Additional subject: Absence of `ldconfig`

Seeing the GNUmakefile, it seems to expect some commands to be available
in the environment, so I tried finding those and seeing if the
environment sees them from the profile.

[..]

This indicates that `ldconfig` is absent. Someone in #guix told me that
it was supposed to be provided by


It seems that this line hard-codes the path to ldconfig, so it will need 
to be modified.


LDCONF ?= /sbin/ldconfig -n



Additionally, `which` was included in the output (comes from the
"debianutils" package on .deb-based distributions) and is also absent,
and the GNUmakefile seems to expect `which` at some point (although I'm
not sure if the build process reached that), so the absence of `which`
might be good to discuss on other bug report.


'which' is provided by the 'which' package.

Good luck,
ben



Re: [PATCH 2/3] gnu: Add python-pyxb.

2016-09-21 Thread Ben Woodcroft

On 22/09/16 07:14, Marius Bakke wrote:

[..]
Hi Ben,

Thanks for the review. Updated patches attached.


Hi,


Subject: [PATCH 1/3] gnu: python-pysam: Update to 0.9.1.4.
I'm not sure whether this is a product of the upgrade or not, but I 
notice this in the build log. I think it is harmless though, WDYT?


starting phase `validate-runpath'
validating RUNPATH of 10 binaries in 
"/gnu/store/bpiq3lm6b1kpf54i1vj2dl09ff293wic-python-pysam-0.9.1.4/lib"...
/gnu/store/bpiq3lm6b1kpf54i1vj2dl09ff293wic-python-pysam-0.9.1.4/lib/python3.4/site-packages/pysam-0.9.1.4-py3.4-linux-x86_64.egg/pysam/libchtslib.cpython-34m.so: 
warning: RUNPATH contains bogus entries: ("pysam" "." 
"build/lib.linux-x86_64-3.4/pysam")


Also, I notice that pysam bundles htslib, bcftools and samtools C code. 
Hopefully it should be straightforward enough to remove htslib as there 
are install instructions, I'm not sure about the other two. This 
shouldn't block the patch here, but would you mind taking a look?

http://pysam.readthedocs.io/en/latest/installation.html#installation

The other two patches LGTM.
ben



Re: [PATCH 2/3] gnu: Add python-pyxb.

2016-09-21 Thread Marius Bakke
Ben Woodcroft  writes:

> Hi again,
>
>
> On 20/09/16 16:34, Ben Woodcroft wrote:
>> Oops, forgot to cc the list.
>>
>>
>> On 20/09/16 16:02, Ben Woodcroft wrote:
>>> Hi Marius,
>>>
>>> Thanks for the patches.
>>>
>>> On 17/09/16 20:10, Marius Bakke wrote:
 [..]
 + (add-after 'unpack 'fix-tests
 +   (lambda _
 + ;; See https://github.com/pabigot/pyxb/issues/26 ...
 + (delete-file "tests/trac/test-trac-0091.py")
>>>
>>> The fix for that test failing seems straightforward enough, might be 
>>> better to include as a patch so those tests are run.
>>> https://github.com/pabigot/pyxb/commit/d4bdd5a1c712cd70f96264ae13b55d015cbf3335
>>>  
>>>
> Actually, 1.2.5 just got released which has both of these fixes. Can you 
> send an updated patch please?

Hi Ben,

Thanks for the review. Updated patches attached.

>From 0a6220a664ecf3aa967211db5bf9e9b9e539220d Mon Sep 17 00:00:00 2001
From: Marius Bakke 
Date: Fri, 16 Sep 2016 18:05:15 +0100
Subject: [PATCH 1/3] gnu: python-pysam: Update to 0.9.1.4.

* gnu/packages/bioinformatics.scm (python-pysam, python2-pysam): Update
to 0.9.1.4.
---
 gnu/packages/bioinformatics.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 7a27e0b..47b884e 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1290,13 +1290,13 @@ multiple sequence alignments.")
 (define-public python-pysam
   (package
 (name "python-pysam")
-(version "0.8.4")
+(version "0.9.1.4")
 (source (origin
   (method url-fetch)
   (uri (pypi-uri "pysam" version))
   (sha256
(base32
-"1slx5mb94mzm5qzk52q270sab0sar95j67w1g1k452nz3s9j7krh"
+"1i1djacqbr88y7w18b4aa78zxnsyr4sz7yqdq2spi7gs0y6pzvjn"
 (build-system python-build-system)
 (arguments
  `(#:tests? #f ; tests are excluded in the manifest
-- 
2.10.0

>From 6a8ddd17d7f11e0687217c8649a452a1a56c596c Mon Sep 17 00:00:00 2001
From: Marius Bakke 
Date: Sat, 17 Sep 2016 10:33:28 +0100
Subject: [PATCH 2/3] gnu: Add python-pyxb.

* gnu/packages/xml.scm (python-pyxb, python2-pyxb): New variables.
---
 gnu/packages/xml.scm | 25 +
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 7befad5..cd3426b 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2016 Jan Nieuwenhuizen 
 ;;; Copyright © 2016 ng0 
 ;;; Copyright © 2016 Tobias Geerinckx-Rice 
+;;; Copyright © 2016 Marius Bakke 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -729,6 +730,30 @@ different Unicode encodings which happen automatically during
 parsing/saving.")
 (license license:expat)))
 
+(define-public python-pyxb
+  (package
+(name "python-pyxb")
+(version "1.2.5")
+(source (origin
+  (method url-fetch)
+  (uri (pypi-uri "PyXB" version))
+  (sha256
+   (base32
+"0rzzwibfqa28gxgcxx4cybx1qcg0g6fand06ykj3gz7z5kp653sf"
+(build-system python-build-system)
+(home-page "http://pyxb.sourceforge.net/;)
+(synopsis "Python XML Schema Bindings")
+(description
+ "PyXB (\"pixbee\") is a pure Python package that generates Python source
+code for classes that correspond to data structures defined by XMLSchema.")
+(license (list license:asl2.0; Most files.
+   license:expat ; pyxb/utils/six.py
+   license:gpl2  ; bundled jquery in doc is dual MIT/GPL2
+   license:psfl  ; pyxb/utils/activestate.py
+
+(define-public python2-pyxb
+  (package-with-python2 python-pyxb))
+
 (define-public xmlto
   (package
 (name "xmlto")
-- 
2.10.0

>From 396cbcbfda24ce5cd1caecedf01407bf6a1f70a1 Mon Sep 17 00:00:00 2001
From: Marius Bakke 
Date: Sat, 17 Sep 2016 10:42:56 +0100
Subject: [PATCH 3/3] gnu: python2-pbcore: Update to 1.2.10.

* gnu/packages/bioinformatics.scm (python2-pbcore): Update to 1.2.10.
[propagated-inputs]: New field. Add python2-pyxb.
---
 gnu/packages/bioinformatics.scm | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 47b884e..a598351 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3376,13 +3376,13 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
 (define-public python2-pbcore
   (package
 (name "python2-pbcore")
-(version "1.2.8")
+(version "1.2.10")
 (source (origin
   (method url-fetch)
   (uri (pypi-uri "pbcore" version))
   (sha256
(base32
-

Re: Building Guix with Guile 2.1

2016-09-21 Thread Taylan Ulrich Bayırlı/Kammer
l...@gnu.org (Ludovic Courtès) writes:

> Hello!
>
> Nalaginrut reported that Guix fails to build with Guile 2.2, which was a
> bit of a shame, hence commits e465d9e19087ab150f7e31f21c09e4a147b93b36
> and 9d126aa2b504bb9fad536eac186805ff623e96be.

With the attached quick-and-dirty patch, 'make' runs to completion.

I think we can keep the (compile 'dummy) hack.  That leaves two issues
which may be solved in a cleaner manner than in this patch:

- The (define foo (@@ (bar) foo)) parts.
- Making %tty-gid public.  (The above didn't work for this one...)

Both fixes may become unnecessary if Guile 2.2 goes back to allowing
#:select to import private bindings.  Otherwise, recommendations for
cleaner solutions welcome.

Of course, the actual parallelization hack is still fragile, though not
more so than in 2.0.  We still want to fix it eventually, if Guile 2.2
doesn't make module autoloading thread safe yet.  (More precisely,
referencing and thus instantiating modules previously "registered" via
the autoload mechanism, if I understand correctly.)

By the way, compile time seems to increase greatly with 2.2, to the
point I wondered if it's really compiling in parallel, but it does seem
to as evidenced by top(1).  Maybe package modules could be compiled with
certain optims turned off, since they mostly just consist of package
object definitions and not procedures whose performance would matter.

>From 819f07476e8f67acb86b90eab2ea03b7a3d17e33 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 
Date: Wed, 21 Sep 2016 22:30:39 +0200
Subject: [PATCH] Fix compilation on Guile 2.2.

---
 build-aux/compile-all.scm   | 1 +
 gnu/system/file-systems.scm | 2 +-
 gnu/system/shadow.scm   | 3 +--
 guix/build-system/waf.scm   | 5 +++--
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm
index 7c937a0..577e6bc 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -80,6 +80,7 @@
   ((_ . files)
(let ((files (filter file-needs-compilation? files)))
  (for-each load-module-file files)
+ (compile 'dummy);make sure compilation related modules are loaded
  (let ((mutex (make-mutex)))
(par-for-each (lambda (file)
(compile-file* file mutex))
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 0dc472e..2e59e48 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -158,7 +158,7 @@ TARGET in the other system."
 (type "binfmt_misc")
 (check? #f)))
 
-(define %tty-gid
+(define-public %tty-gid
   ;; ID of the 'tty' group.  Allocate it statically to make it easy to refer
   ;; to it from here and from the 'tty' group definitions.
   996)
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index cfdcf5e..b873021 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -24,8 +24,7 @@
   #:use-module (guix sets)
   #:use-module (guix ui)
   #:use-module (gnu services)
-  #:use-module ((gnu system file-systems)
-#:select (%tty-gid))
+  #:use-module (gnu system file-systems)
   #:use-module ((gnu packages admin)
 #:select (shadow))
   #:use-module (gnu packages bash)
diff --git a/guix/build-system/waf.scm b/guix/build-system/waf.scm
index 044d2a0..ccdf05c 100644
--- a/guix/build-system/waf.scm
+++ b/guix/build-system/waf.scm
@@ -24,14 +24,15 @@
   #:use-module (guix search-paths)
   #:use-module (guix build-system)
   #:use-module (guix build-system gnu)
-  #:use-module ((guix build-system python)
-#:select (default-python default-python2))
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-26)
   #:export (%waf-build-system-modules
 waf-build
 waf-build-system))
 
+(define default-python (@@ (guix build-system python) default-python))
+(define default-python2 (@@ (guix build-system python) default-python2))
+
 ;; Commentary:
 ;;
 ;; Standard build procedure for applications using 'waf'.  This is very
-- 
2.10.0



[PATCH 22/25] gnu: Add r-shortread.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-shortread): New variable.
---
 gnu/packages/bioinformatics.scm | 42 +
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 1294964..9915247 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5301,6 +5301,48 @@ microarray data.  A variety of basic manipulation tools 
for graphs, hypothesis
 testing and other simple calculations.")
 (license license:artistic2.0)))
 
+(define-public r-shortread
+  (package
+(name "r-shortread")
+(version "1.30.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "ShortRead" version))
+   (sha256
+(base32
+ "0qlxns4bhwfpafx3km2lnivgl2qyp7n4g1ardm6vrinpq8paxbjg"
+(properties `((upstream-name . "ShortRead")))
+(build-system r-build-system)
+(inputs
+ `(("zlib" ,zlib)))
+(propagated-inputs
+ `(("r-biobase" ,r-biobase)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-biocparallel" ,r-biocparallel)
+   ("r-biostrings" ,r-biostrings)
+   ("r-genomeinfodb" ,r-genomeinfodb)
+   ("r-genomicalignments" ,r-genomicalignments)
+   ("r-genomicranges" ,r-genomicranges)
+   ("r-hwriter" ,r-hwriter)
+   ("r-iranges" ,r-iranges)
+   ("r-lattice" ,r-lattice)
+   ("r-latticeextra" ,r-latticeextra)
+   ("r-rsamtools" ,r-rsamtools)
+   ("r-s4vectors" ,r-s4vectors)
+   ("r-xvector" ,r-xvector)
+   ("r-zlibbioc" ,r-zlibbioc)))
+(home-page "http://bioconductor.org/packages/ShortRead;)
+(synopsis "FASTQ input and manipulation tools")
+(description
+ "This package implements sampling, iteration, and input of FASTQ files.
+It includes functions for filtering and trimming reads, and for generating a
+quality assessment report.  Data are represented as
+@code{DNAStringSet}-derived objects, and easily manipulated for a diversity of
+purposes.  The package also contains legacy support for early single-end,
+ungapped alignment formats.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 24/25] gnu: Add r-grohmm.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-grohmm): New variable.
---
 gnu/packages/bioinformatics.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f3843dd..07a5ff6 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5389,6 +5389,32 @@ experimental designs is facilitated by a consistently 
implemented sample
 annotation infrastructure.")
 (license license:artistic2.0)))
 
+(define-public r-grohmm
+  (package
+(name "r-grohmm")
+(version "1.6.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "groHMM" version))
+   (sha256
+(base32
+ "1l9mcyzyc548114ysb9r0q7hgzw3yy7gpiahrzkzj6hblc4f1jyp"
+(properties `((upstream-name . "groHMM")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-genomeinfodb" ,r-genomeinfodb)
+   ("r-genomicalignments" ,r-genomicalignments)
+   ("r-genomicranges" ,r-genomicranges)
+   ("r-iranges" ,r-iranges)
+   ("r-rtracklayer" ,r-rtracklayer)
+   ("r-s4vectors" ,r-s4vectors)))
+(home-page "https://github.com/Kraus-Lab/groHMM;)
+(synopsis "GRO-seq analysis pipeline")
+(description
+ "This package provides a pipeline for the analysis of GRO-seq data.")
+(license license:gpl3+)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 25/25] gnu: Add r-txdb-hsapiens-ucsc-hg19-knowngene.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-txdb-hsapiens-ucsc-hg19-knowngene):
  New variable.
---
 gnu/packages/bioinformatics.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 07a5ff6..346d7a8 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5415,6 +5415,38 @@ annotation infrastructure.")
  "This package provides a pipeline for the analysis of GRO-seq data.")
 (license license:gpl3+)))
 
+(define-public r-txdb-hsapiens-ucsc-hg19-knowngene
+  (package
+(name "r-txdb-hsapiens-ucsc-hg19-knowngene")
+(version "3.2.2")
+(source (origin
+  (method url-fetch)
+  ;; We cannot use bioconductor-uri here because this tarball is
+  ;; located under "data/annotation/" instead of "bioc/".
+  (uri (string-append "http://bioconductor.org/packages/;
+  "release/data/annotation/src/contrib"
+  "/TxDb.Hsapiens.UCSC.hg19.knownGene_"
+  version ".tar.gz"))
+  (sha256
+   (base32
+"1sajhcqqwazgz2lqbik7rd935i7kpnh08zxbp2ra10j72yqy4g86"
+(properties
+ `((upstream-name . "TxDb.Hsapiens.UCSC.hg19.knownGene")))
+(build-system r-build-system)
+;; As this package provides little more than a very large data file it
+;; doesn't make sense to build substitutes.
+(arguments `(#:substitutable? #f))
+(propagated-inputs
+ `(("r-genomicfeatures" ,r-genomicfeatures)))
+(home-page
+ "http://bioconductor.org/packages/TxDb.Hsapiens.UCSC.hg19.knownGene/;)
+(synopsis "Annotation package for human genome in TxDb format")
+(description
+ "This package provides an annotation database of Homo sapiens genome
+data.  It is derived from the UCSC hg19 genome and based on the \"knownGene\"
+track.  The database is exposed as a @code{TxDb} object.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 21/25] gnu: Add r-gostats.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-gostats): New variable.
---
 gnu/packages/bioinformatics.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index d99869e..1294964 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5271,6 +5271,36 @@ Enrichment Analysis} (GSEA).")
 analysis.")
 (license license:artistic2.0)))
 
+(define-public r-gostats
+  (package
+(name "r-gostats")
+(version "2.38.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "GOstats" version))
+   (sha256
+(base32
+ "1hhw6vqr8f3g4jzq0v8f2za0r1h117j5s6av87zxs41cv7dq1wb3"
+(properties `((upstream-name . "GOstats")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-annotate" ,r-annotate)
+   ("r-annotationdbi" ,r-annotationdbi)
+   ("r-annotationforge" ,r-annotationforge)
+   ("r-biobase" ,r-biobase)
+   ("r-category" ,r-category)
+   ("r-go-db" ,r-go-db)
+   ("r-graph" ,r-graph)
+   ("r-rbgl" ,r-rbgl)))
+(home-page "http://bioconductor.org/packages/GOstats;)
+(synopsis "Tools for manipulating GO and microarrays")
+(description
+ "This package provides a set of tools for interacting with GO and
+microarray data.  A variety of basic manipulation tools for graphs, hypothesis
+testing and other simple calculations.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 19/25] gnu: Add r-gseabase.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-gseabase): New variable.
---
 gnu/packages/bioinformatics.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index d9acb00..52fa17c 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5213,6 +5213,33 @@ databases.  Packages produced are intended to be used 
with AnnotationDbi.")
 the graph algorithms contained in the Boost library.")
 (license license:artistic2.0)))
 
+(define-public r-gseabase
+  (package
+(name "r-gseabase")
+(version "1.34.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "GSEABase" version))
+   (sha256
+(base32
+ "0l3y7hq3vabildr6djsn50x0kfgihpbqxwvh7rw6k18pv5k4j72c"
+(properties `((upstream-name . "GSEABase")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-annotate" ,r-annotate)
+   ("r-annotationdbi" ,r-annotationdbi)
+   ("r-biobase" ,r-biobase)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-graph" ,r-graph)
+   ("r-xml" ,r-xml)))
+(home-page "http://bioconductor.org/packages/GSEABase;)
+(synopsis "Gene set enrichment data structures and methods")
+(description
+ "This package provides classes and methods to support @dfn{Gene Set
+Enrichment Analysis} (GSEA).")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 23/25] gnu: Add r-systempiper.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-systempiper): New variable.
---
 gnu/packages/bioinformatics.scm | 46 +
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 9915247..f3843dd 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5343,6 +5343,52 @@ purposes.  The package also contains legacy support for 
early single-end,
 ungapped alignment formats.")
 (license license:artistic2.0)))
 
+(define-public r-systempiper
+  (package
+(name "r-systempiper")
+(version "1.6.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "systemPipeR" version))
+   (sha256
+(base32
+ "0s2g46a5d5bvx45i3cgmib48wf8hrniyladhm0f7kgcbfx57248m"
+(properties `((upstream-name . "systemPipeR")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-annotate" ,r-annotate)
+   ("r-batchjobs" ,r-batchjobs)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-biostrings" ,r-biostrings)
+   ("r-deseq2" ,r-deseq2)
+   ("r-edger" ,r-edger)
+   ("r-genomicfeatures" ,r-genomicfeatures)
+   ("r-genomicranges" ,r-genomicranges)
+   ("r-ggplot2" ,r-ggplot2)
+   ("r-go-db" ,r-go-db)
+   ("r-gostats" ,r-gostats)
+   ("r-limma" ,r-limma)
+   ("r-pheatmap" ,r-pheatmap)
+   ("r-rjson" ,r-rjson)
+   ("r-rsamtools" ,r-rsamtools)
+   ("r-shortread" ,r-shortread)
+   ("r-summarizedexperiment" ,r-summarizedexperiment)
+   ("r-variantannotation" ,r-variantannotation)))
+(home-page "https://github.com/tgirke/systemPipeR;)
+(synopsis "Next generation sequencing workflow and reporting environment")
+(description
+ "This R package provides tools for building and running automated
+end-to-end analysis workflows for a wide range of @dfn{next generation
+sequence} (NGS) applications such as RNA-Seq, ChIP-Seq, VAR-Seq and Ribo-Seq.
+Important features include a uniform workflow interface across different NGS
+applications, automated report generation, and support for running both R and
+command-line software, such as NGS aligners or peak/variant callers, on local
+computers or compute clusters.  Efficient handling of complex sample sets and
+experimental designs is facilitated by a consistently implemented sample
+annotation infrastructure.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 17/25] gnu: Add r-annotationforge.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-annotationforge): New variable.
---
 gnu/packages/bioinformatics.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 2df63ee..a5aadd0 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5163,6 +5163,35 @@ differential expression based on a model using the 
negative binomial
 distribution.")
 (license license:lgpl3+)))
 
+(define-public r-annotationforge
+  (package
+(name "r-annotationforge")
+(version "1.14.2")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "AnnotationForge" version))
+   (sha256
+(base32
+ "1vkdd1qdv5g680ipw4vwjvn52xn66xpg6ngmwyknz77ckxnnpf4q"
+(properties
+ `((upstream-name . "AnnotationForge")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-annotationdbi" ,r-annotationdbi)
+   ("r-biobase" ,r-biobase)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-dbi" ,r-dbi)
+   ("r-rsqlite" ,r-rsqlite)
+   ("r-s4vectors" ,r-s4vectors)
+   ("r-xml" ,r-xml)))
+(home-page "http://bioconductor.org/packages/AnnotationForge;)
+(synopsis "Code for building annotation database packages")
+(description
+ "This package provides code for generating Annotation packages and their
+databases.  Packages produced are intended to be used with AnnotationDbi.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 20/25] gnu: Add r-category.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-category): New variable.
---
 gnu/packages/bioinformatics.scm | 31 +++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 52fa17c..d99869e 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5240,6 +5240,37 @@ the graph algorithms contained in the Boost library.")
 Enrichment Analysis} (GSEA).")
 (license license:artistic2.0)))
 
+(define-public r-category
+  (package
+(name "r-category")
+(version "2.38.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "Category" version))
+   (sha256
+(base32
+ "0c8px9ar589f3iqkbk9vfhwj30dpnxj81h8sfq20cl1cbmcx2a04"
+(properties `((upstream-name . "Category")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-annotate" ,r-annotate)
+   ("r-annotationdbi" ,r-annotationdbi)
+   ("r-biobase" ,r-biobase)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-genefilter" ,r-genefilter)
+   ("r-graph" ,r-graph)
+   ("r-gseabase" ,r-gseabase)
+   ("r-matrix" ,r-matrix)
+   ("r-rbgl" ,r-rbgl)
+   ("r-rsqlite" ,r-rsqlite)))
+(home-page "http://bioconductor.org/packages/Category;)
+(synopsis "Category analysis")
+(description
+ "This package provides a collection of tools for performing category
+analysis.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 18/25] gnu: Add r-rbgl.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-rbgl): New variable.
---
 gnu/packages/bioinformatics.scm | 21 +
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a5aadd0..d9acb00 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5192,6 +5192,27 @@ distribution.")
 databases.  Packages produced are intended to be used with AnnotationDbi.")
 (license license:artistic2.0)))
 
+(define-public r-rbgl
+  (package
+(name "r-rbgl")
+(version "1.48.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "RBGL" version))
+   (sha256
+(base32
+ "1k82zcbyfx3p9hc8r0hwq73krbhakjan8fgbfr6w8z2crfkv3zmz"
+(properties `((upstream-name . "RBGL")))
+(build-system r-build-system)
+(propagated-inputs `(("r-graph" ,r-graph)))
+(home-page "http://www.bioconductor.org/packages/RBGL;)
+(synopsis "Interface to the Boost graph library")
+(description
+ "This package provides a fairly extensive and comprehensive interface to
+the graph algorithms contained in the Boost library.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 13/25] gnu: Add r-checkmate.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-checkmate): New variable.
---
 gnu/packages/statistics.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c3dadbd..1e6f3fd 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1633,6 +1633,28 @@ can make use of the new functions without worrying about 
the minimum required
 R version.")
 (license license:gpl2+)))
 
+(define-public r-checkmate
+  (package
+(name "r-checkmate")
+(version "1.8.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "checkmate" version))
+   (sha256
+(base32
+ "1nqyi58jl33af82y8kw8iy9xbna2080y1khhy90kf6lim6q74024"
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-backports" ,r-backports)))
+(home-page "https://github.com/mllg/checkmate;)
+(synopsis "Fast and versatile argument checks")
+(description
+ "This package provides tests and assertions to perform frequent argument
+checks.  A substantial part of the package was written in C to minimize any
+worries about execution time overhead.")
+(license license:bsd-3)))
+
 (define-public r-brew
   (package
 (name "r-brew")
-- 
2.9.3




[PATCH 16/25] gnu: Add r-batchjobs.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-batchjobs): New variable.
---
 gnu/packages/statistics.scm | 31 +++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index afe3d7e..9cf79ef 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1699,6 +1699,37 @@ of R packages.")
 or source files in a key-value fashion.")
 (license license:bsd-3)))
 
+(define-public r-batchjobs
+  (package
+(name "r-batchjobs")
+(version "1.6")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "BatchJobs" version))
+   (sha256
+(base32
+ "1kb99024jih5bycc226bl4jyvbbl1sg72q3m2wnlshl7s8p6vva0"
+(properties `((upstream-name . "BatchJobs")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-bbmisc" ,r-bbmisc)
+   ("r-brew" ,r-brew)
+   ("r-checkmate" ,r-checkmate)
+   ("r-dbi" ,r-dbi)
+   ("r-digest" ,r-digest)
+   ("r-fail" ,r-fail)
+   ("r-rsqlite" ,r-rsqlite)
+   ("r-sendmailr" ,r-sendmailr)
+   ("r-stringr" ,r-stringr)))
+(home-page "https://github.com/tudo-r/BatchJobs;)
+(synopsis "Batch computing with R")
+(description
+ "This package provides @code{Map}, @code{Reduce} and @code{Filter}
+variants to generate jobs on batch computing systems like PBS/Torque, LSF,
+SLURM and Sun Grid Engine.  Multicore and SSH systems are also supported.")
+(license license:bsd-2)))
+
 (define-public r-brew
   (package
 (name "r-brew")
-- 
2.9.3




[PATCH 12/25] gnu: Add r-backports.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-backports): New variable.
---
 gnu/packages/statistics.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index d05dfce..c3dadbd 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1610,6 +1610,29 @@ previous R versions and their release dates.")
 limited to R.")
 (license license:gpl3+)))
 
+(define-public r-backports
+  (package
+(name "r-backports")
+(version "1.0.3")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "backports" version))
+   (sha256
+(base32
+ "0s04mbb7imqc00jl37i081y4yf7qdimk687dyrkvb20nixvjvjyh"
+(build-system r-build-system)
+(home-page "http://cran.r-project.org/web/packages/backports;)
+(synopsis "Reimplementations of functions introduced since R 3.0.0")
+(description
+ "Provides implementations of functions which have been introduced in R
+since version 3.0.0.  The backports are conditionally exported which results
+in R resolving the function names to the version shipped with R (if available)
+and uses the implemented backports as fallback.  This way package developers
+can make use of the new functions without worrying about the minimum required
+R version.")
+(license license:gpl2+)))
+
 (define-public r-brew
   (package
 (name "r-brew")
-- 
2.9.3




[PATCH 15/25] gnu: Add r-fail.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-fail): New variable.
---
 gnu/packages/statistics.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c8ad5a8..afe3d7e 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1677,6 +1677,28 @@ worries about execution time overhead.")
 of R packages.")
 (license license:bsd-3)))
 
+(define-public r-fail
+  (package
+(name "r-fail")
+(version "1.3")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "fail" version))
+   (sha256
+(base32
+ "0vfm6kmpmgsamda5p0sl771kbnsscan31l2chzssyw93kwmams7d"
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-bbmisc" ,r-bbmisc)
+   ("r-checkmate" ,r-checkmate)))
+(home-page "https://github.com/mllg/fail;)
+(synopsis "File abstraction interface layer (FAIL)")
+(description
+ "This package provides a more comfortable interface to work with R data
+or source files in a key-value fashion.")
+(license license:bsd-3)))
+
 (define-public r-brew
   (package
 (name "r-brew")
-- 
2.9.3




[PATCH 14/25] gnu: Add r-bbmisc.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-bbmisc): New variable.
---
 gnu/packages/statistics.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 1e6f3fd..c8ad5a8 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1655,6 +1655,28 @@ checks.  A substantial part of the package was written 
in C to minimize any
 worries about execution time overhead.")
 (license license:bsd-3)))
 
+(define-public r-bbmisc
+  (package
+(name "r-bbmisc")
+(version "1.10")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "BBmisc" version))
+   (sha256
+(base32
+ "0cw2mhw7qhdrx91zzd5iwyh7ch9fy4wxga8j63731q6sxr1airjl"
+(properties `((upstream-name . "BBmisc")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-checkmate" ,r-checkmate)))
+(home-page "https://github.com/berndbischl/BBmisc;)
+(synopsis "Miscellaneous functions for R package development")
+(description
+ "This package provides miscellaneous helper functions for the development
+of R packages.")
+(license license:bsd-3)))
+
 (define-public r-brew
   (package
 (name "r-brew")
-- 
2.9.3




[PATCH 08/25] gnu: Add r-deseq2.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-deseq2): New variable.
---
 gnu/packages/bioinformatics.scm | 45 +
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 18e688f..2df63ee 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5118,6 +5118,51 @@ microarrays.")
 high-throughput sequencing experiments.")
 (license license:artistic2.0)))
 
+(define-public r-deseq2
+  (package
+(name "r-deseq2")
+(version "1.12.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "DESeq2" version))
+   (sha256
+(base32
+ "12h77f0dpi5xaj7aqf50kkyn6lq9j7bcsly1r0ffmyfcszrp1sfx"
+(properties `((upstream-name . "DESeq2")))
+(build-system r-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'link-against-armadillo
+   (lambda _
+ (substitute* "src/Makevars"
+   (("PKG_LIBS =" prefix)
+(string-append prefix "-larmadillo"
+(propagated-inputs
+ `(("r-biobase" ,r-biobase)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-biocparallel" ,r-biocparallel)
+   ("r-genefilter" ,r-genefilter)
+   ("r-geneplotter" ,r-geneplotter)
+   ("r-genomicranges" ,r-genomicranges)
+   ("r-ggplot2" ,r-ggplot2)
+   ("r-hmisc" ,r-hmisc)
+   ("r-iranges" ,r-iranges)
+   ("r-locfit" ,r-locfit)
+   ("r-rcpp" ,r-rcpp)
+   ("r-rcpparmadillo" ,r-rcpparmadillo)
+   ("r-s4vectors" ,r-s4vectors)
+   ("r-summarizedexperiment" ,r-summarizedexperiment)))
+(home-page "http://bioconductor.org/packages/DESeq2;)
+(synopsis "Differential gene expression analysis")
+(description
+ "This package provides functions to estimate variance-mean dependence in
+count data from high-throughput nucleotide sequencing assays and test for
+differential expression based on a model using the negative binomial
+distribution.")
+(license license:lgpl3+)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 10/25] gnu: Add r-pheatmap.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-pheatmap): New variable.
---
 gnu/packages/statistics.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 495445a..728f0fd 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -299,6 +299,30 @@ non-estimable cases correctly.")
 \"tables\" of grobs.")
 (license license:gpl2+)))
 
+(define-public r-pheatmap
+  (package
+(name "r-pheatmap")
+(version "1.0.8")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "pheatmap" version))
+   (sha256
+(base32
+ "1ik0k69kb4n7xl3bkx4p09kw08ri93855zcsxq1c668171jqfiji"
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-gtable" ,r-gtable)
+   ("r-rcolorbrewer" ,r-rcolorbrewer)
+   ("r-scales" ,r-scales)))
+(home-page
+ "http://cran.r-project.org/web/packages/pheatmap;)
+(synopsis "Pretty heatmaps")
+(description
+ "This package provides an implementation of heatmaps that offers more
+control over dimensions and appearance.")
+(license license:gpl2+)))
+
 (define-public r-labeling
   (package
 (name "r-labeling")
-- 
2.9.3




[PATCH 09/25] gnu: Add r-matrix.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-matrix): New variable.
---
 gnu/packages/statistics.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 4a8c64b..495445a 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -381,6 +381,28 @@ and Francois (2011, JSS), and the book by Eddelbuettel 
(2013, Springer); see
 'citation(\"Rcpp\")' for details on these last two.")
 (license license:gpl2+)))
 
+(define-public r-matrix
+  (package
+(name "r-matrix")
+(version "1.2-7")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "Matrix" version))
+   (sha256
+(base32
+ "18x3mdq5cdhbk1lw5cj7vbr41lk8w9p4i5kzh8wslgq6p3d9ac3c"
+(properties `((upstream-name . "Matrix")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-lattice" ,r-lattice)))
+(home-page "http://Matrix.R-forge.R-project.org/;)
+(synopsis "Sparse and dense matrix classes and methods")
+(description
+ "This package provides classes and methods for dense and sparse matrices
+and operations on them using LAPACK and SuiteSparse.")
+(license license:gpl2+)))
+
 (define-public r-mgcv
   (package
(name "r-mgcv")
-- 
2.9.3




[PATCH 07/25] gnu: Add r-genefilter.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-genefilter): New variable.
---
 gnu/packages/bioinformatics.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 30f1f6a..18e688f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5092,6 +5092,32 @@ microarrays.")
  "This package provides functions for plotting genomic data.")
 (license license:artistic2.0)))
 
+(define-public r-genefilter
+  (package
+(name "r-genefilter")
+(version "1.54.2")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "genefilter" version))
+   (sha256
+(base32
+ "1hmz6as0njvrsrdbgmk72jyclnnqvfdvp6kqv456h43ldq2ajfv5"
+(build-system r-build-system)
+(native-inputs
+ `(("gfortran" ,gfortran)))
+(propagated-inputs
+ `(("r-annotate" ,r-annotate)
+   ("r-annotationdbi" ,r-annotationdbi)
+   ("r-biobase" ,r-biobase)
+   ("r-s4vectors" ,r-s4vectors)))
+(home-page "http://bioconductor.org/packages/genefilter;)
+(synopsis "Filter genes from high-throughput experiments")
+(description
+ "This package provides basic functions for filtering genes from
+high-throughput sequencing experiments.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 11/25] gnu: Add r-sendmailr.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-sendmailr): New variable.
---
 gnu/packages/statistics.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 728f0fd..d05dfce 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -530,6 +530,29 @@ designed by Cynthia Brewer as described at 
http://colorbrewer2.org;)
 ;; Includes code licensed under bsd-4
 (license license:asl2.0)))
 
+(define-public r-sendmailr
+  (package
+(name "r-sendmailr")
+(version "1.2-1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "sendmailR" version))
+   (sha256
+(base32
+ "0z7ipywnzgkhfvl4zb2fjwl1xq7b5wib296vn9c9qgbndj6b1zh4"
+(properties `((upstream-name . "sendmailR")))
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-base64enc" ,r-base64enc)))
+(home-page
+ "http://cran.r-project.org/web/packages/sendmailR;)
+(synopsis "Send email using R")
+(description
+ "This package contains a simple SMTP client which provides a portable
+solution for sending email, including attachments, from within R.")
+(license license:gpl2+)))
+
 (define-public r-stringi
   (package
 (name "r-stringi")
-- 
2.9.3




[PATCH 06/25] gnu: Add r-hmisc.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-hmisc): New variable.
---
 gnu/packages/statistics.scm | 39 +++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 806aacb..4a8c64b 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pcre)
@@ -2977,6 +2978,44 @@ distribution).")
 classification, regression and survival trees.")
 (license (list license:gpl2+ license:gpl3+
 
+(define-public r-hmisc
+  (package
+(name "r-hmisc")
+(version "3.17-4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "Hmisc" version))
+   (sha256
+(base32
+ "1hr2kycpm0h3li9gnlbx9pl6h13das7g2wqfk6cip1kx6lv00ypw"
+(properties `((upstream-name . "Hmisc")))
+(build-system r-build-system)
+(native-inputs
+ `(("gfortran" ,gfortran)))
+(propagated-inputs
+ `(("r-acepack" ,r-acepack)
+   ("r-cluster" ,r-cluster)
+   ("r-data-table" ,r-data-table)
+   ("r-foreign" ,r-foreign)
+   ("r-formula" ,r-formula)
+   ("r-ggplot2" ,r-ggplot2)
+   ("r-gridextra" ,r-gridextra)
+   ("r-gtable" ,r-gtable)
+   ("r-lattice" ,r-lattice)
+   ("r-latticeextra" ,r-latticeextra)
+   ("r-nnet" ,r-nnet)
+   ("r-rpart" ,r-rpart)))
+(home-page "http://biostat.mc.vanderbilt.edu/Hmisc;)
+(synopsis "Miscellaneous data analysis and graphics functions")
+(description
+ "This package contains many functions useful for data analysis,
+high-level graphics, utility operations, functions for computing sample size
+and power, importing and annotating datasets, imputing missing values,
+advanced table making, variable clustering, character string manipulation,
+conversion of R objects to LaTeX code, and recoding variables.")
+(license license:gpl2+)))
+
 (define-public r-runit
   (package
 (name "r-runit")
-- 
2.9.3




[PATCH 05/25] gnu: Add r-geneplotter.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-geneplotter): New variable.
---
 gnu/packages/bioinformatics.scm | 25 +
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 604d781..30f1f6a 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5067,6 +5067,31 @@ data types as well.")
 microarrays.")
 (license license:artistic2.0)))
 
+(define-public r-geneplotter
+  (package
+(name "r-geneplotter")
+(version "1.50.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "geneplotter" version))
+   (sha256
+(base32
+ "0lvrywl0251g4y0h0qlgkbg4l83ja5544c85z1wj30qxiy77iqc2"
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-annotate" ,r-annotate)
+   ("r-annotationdbi" ,r-annotationdbi)
+   ("r-biobase" ,r-biobase)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-lattice" ,r-lattice)
+   ("r-rcolorbrewer" ,r-rcolorbrewer)))
+(home-page "http://bioconductor.org/packages/geneplotter;)
+(synopsis "Graphics functions for genomic data")
+(description
+ "This package provides functions for plotting genomic data.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 04/25] gnu: Add r-annotate.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/bioinformatics.scm (r-annotate): New variable.
---
 gnu/packages/bioinformatics.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 7a27e0b..604d781 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5041,6 +5041,32 @@ dissimilarity analysis.  Most of its multivariate tools 
can be used for other
 data types as well.")
 (license license:gpl2+)))
 
+(define-public r-annotate
+  (package
+(name "r-annotate")
+(version "1.50.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (bioconductor-uri "annotate" version))
+   (sha256
+(base32
+ "00wnhbjp5i6a5vyvlq4f5hs8qngjxz7fm869kla1spmd0dp2ynsy"
+(build-system r-build-system)
+(propagated-inputs
+ `(("r-annotationdbi" ,r-annotationdbi)
+   ("r-biobase" ,r-biobase)
+   ("r-biocgenerics" ,r-biocgenerics)
+   ("r-dbi" ,r-dbi)
+   ("r-xml" ,r-xml)
+   ("r-xtable" ,r-xtable)))
+(home-page
+ "http://bioconductor.org/packages/annotate;)
+(synopsis "Annotation for microarrays")
+(description "This package provides R enviroments for the annotation of
+microarrays.")
+(license license:artistic2.0)))
+
 (define-public vsearch
   (package
 (name "vsearch")
-- 
2.9.3




[PATCH 02/25] gnu: Add r-rjson.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/web.scm (r-rjson): New variable.
---
 gnu/packages/web.scm | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3713b24..e588014 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3320,6 +3320,25 @@ callback or connection interfaces.")
 objects in HTML format.")
 (license l:lgpl2.1+)))
 
+(define-public r-rjson
+  (package
+(name "r-rjson")
+(version "0.2.15")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "rjson" version))
+   (sha256
+(base32
+ "1vzjyvf57k1fjizlk28rby65y5lsww5qnfvgnhln74qwda7hvl3p"
+(build-system r-build-system)
+(home-page "http://cran.r-project.org/web/packages/rjson;)
+(synopsis "JSON library for R")
+(description
+ "This package provides functions to convert R objects into JSON objects
+and vice-versa.")
+(license l:gpl2+)))
+
 (define-public gumbo-parser
   (package
 (name "gumbo-parser")
-- 
2.9.3




[PATCH 03/25] gnu: Add r-rpart.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/statistics.scm (r-rpart): New variable.
---
 gnu/packages/statistics.scm | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 2a9a31e..806aacb 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -2958,6 +2958,25 @@ noncentral hypergeometric distribution (also called 
extended hypergeometric
 distribution).")
(license license:gpl3+)))
 
+(define-public r-rpart
+  (package
+(name "r-rpart")
+(version "4.1-10")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "rpart" version))
+   (sha256
+(base32
+ "119dvh2cpab4vq9blvbkil5hgq6w018amiwlda3ii0fki39axpf5"
+(build-system r-build-system)
+(home-page "http://cran.r-project.org/web/packages/rpart;)
+(synopsis "Recursive partitioning and regression trees")
+(description
+ "This package provides recursive partitioning functions for
+classification, regression and survival trees.")
+(license (list license:gpl2+ license:gpl3+
+
 (define-public r-runit
   (package
 (name "r-runit")
-- 
2.9.3




[PATCH 01/25] gnu: Add r-hwriter.

2016-09-21 Thread Ricardo Wurmus
* gnu/packages/web.scm (r-hwriter): New variable.
---
 gnu/packages/web.scm | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 2c63e75..3713b24 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3301,6 +3301,25 @@ where data can be processed either in memory, on disk, 
or streaming via the
 callback or connection interfaces.")
 (license l:expat)))
 
+(define-public r-hwriter
+  (package
+(name "r-hwriter")
+(version "1.3.2")
+(source
+ (origin
+   (method url-fetch)
+   (uri (cran-uri "hwriter" version))
+   (sha256
+(base32
+ "0arjsz854rfkfqhgvpqbm9lfni97dcjs66isdsfvwfd2wz932dbb"
+(build-system r-build-system)
+(home-page "http://cran.r-project.org/web/packages/hwriter;)
+(synopsis "Output R objects in HTML format")
+(description
+ "This package provides easy-to-use and versatile functions to output R
+objects in HTML format.")
+(license l:lgpl2.1+)))
+
 (define-public gumbo-parser
   (package
 (name "gumbo-parser")
-- 
2.9.3




Re: [PATCH 0/7] Add Extempore.

2016-09-21 Thread Efraim Flashner
On Wed, Sep 21, 2016 at 09:44:02PM +0200, Ricardo Wurmus wrote:
> 
> I don’t know about hiding the packages and moving them to the same
> module.  In the past we’ve kept package variants always with the
> original package it was derived from,
> e.g. “armadillo-for-rcpparmadillo”, which is only used for
> “r-rcpparmadillo” in the “statistics” module, but which inherits from
> “armadillo” in the “maths” module.
> 
> Back then I also thought that moving them together would be better, but
> if I remember correctly I was asked to keep the variant with the
> parent package.
> 
> I’ll disable the extempore packages for non-x86_64, but I’d like to see
> some more opinions about whether to move the variants.
> 
> ~~ Ricardo
> 

Isn't this how we had the problem with nss and nss-certs, between
certs.scm and gnuzilla.scm? certs.scm imported gnuzilla.scm so nss-certs
could inherit from nss, so that meant we couldn't import certs into
gnuzilla without causing a stack overflow and a rift in the time-space
continuum.

If its just an older version I think it should stay in the original
module. If its an unbundled fork then we should think twice before
inheriting.

We do always have the (very verbose) option of
("armadillo" ,(@@ (gnu packages maths) armadillo-for-rcpparmadillo)) for
packages that have their own special tweaks that we want to keep
private, in a different module.

-- 
Efraim Flashner      אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


gnu: Add xonsh

2016-09-21 Thread Stefan Reichör
>From 966f98c8c83d69e71e6cf38c5521b6237990a81c Mon Sep 17 00:00:00 2001
From: Stefan Reichoer 
Date: Wed, 21 Sep 2016 21:58:52 +0200
Subject: [PATCH] gnu: Add xonsh.

* gnu/packages/python.scm (xonsh): New variable.
---
 gnu/packages/python.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a186557..3454f56 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -9428,6 +9428,28 @@ It uses LR parsing and does extensive error checking.")
   (strip-python2-variant python-ply)))
 (native-inputs `(("python2-setuptools" ,python2-setuptools)
 
+(define-public xonsh
+  (package
+(name "xonsh")
+(version "0.4.6")
+(source
+  (origin
+(method url-fetch)
+(uri (pypi-uri "xonsh" version))
+(sha256
+  (base32
+"0byxd9kjl99q2pyvjh9jy18l0di1i35wr0qqgnw4i6jh6ig3zcki"
+(build-system python-build-system)
+(home-page "http://xon.sh/;)
+(synopsis "Python-ish shell")
+(description
+ "Xonsh is a Python-ish, BASHwards-looking shell language and command
+prompt. The language is a superset of Python 3.4+ with additional shell
+primitives that you are used to from Bash and IPython. It works on all major
+systems including Linux, Mac OSX, and Windows. Xonsh is meant for the daily
+use of experts and novices alike.")
+(license license:bsd-3)))
+
 (define-public python-tabulate
   (package
 (name "python-tabulate")
-- 
2.7.4





Writing recipe for Crypto++, and getting build errors

2016-09-21 Thread Adonay Felipe Nogueira
Note: I'm not a programmer, the only thing I can understand is basic
Guile Scheme and basic Bash scripting. So, I'm not really fit to make
changes in the Crypto++'s source files by myself.

I'm writing a recipe for Crypto++ and other packages. I'm not a
programmer, but I decided to try to contribute to Guix by making the
first steps on porting Tahoe-LAFS and related dependencies.

In attachment is the set of recipes I'm writing. The examples given
assume $GUIX_PACKAGE_PATH referring to directories where the
user-supplied recipes can be found.

Doing:

$ guix build --fallback "cryptopp"

... outputs:

# Begin of output
starting phase `build'
make: *** No rule to make target 'dynamic'.  Stop.
phase `build' failed after 0.2 seconds
builder for
`/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' failed
with exit code 1
@
build-failed /gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv - 1 
builder for `/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' 
failed with exit code 1
guix build: error: build failed: build of
`/gnu/store/k863vf0ab6hkdhbm7zgmbfs1c3wdqpqs-cryptopp-5.6.4.drv' failed
# End of output

However, I did some tests by doing:

$ guix build --fallback --keep-failed "cryptopp"
$ cd "[Failed build path]"
$ sudo --user="[User owner of failed build path]" guix environment
--pure "cryptopp"
$ make "dynamic"

And it **does** start building. If instead of `make "dynamic"`, one does
`make -dnpw "dynamic"` (both in the recipe itself and in the series of
commands given earlier), one can see that:

* The build phase in `guix build` doesn't find the GNUmakefile.

* Attempting the series of commands given earlier, `make` **does** find
the GNUmakefile file.

Besides, someone at #guix suggested me to look at what the NixOS project
did with their Crypto++ package, and it seems they are using it
normally, without removing the dependency on `ldconfig`.

## Additional subject: Absence of `ldconfig`

Seeing the GNUmakefile, it seems to expect some commands to be available
in the environment, so I tried finding those and seeing if the
environment sees them from the profile.

If I remake the environment given before **without** the `--pure`
option, specially if one is using Guix on other distribution, doing:

$ which ar ranlib cp mv egrep chmod mkdir ln ldconfig uname gcc g++ cut
which

... outputs:

# Begin of output
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/ar
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/ranlib
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/cp
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/mv
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/egrep
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/chmod
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/mkdir
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/ln
/sbin/ldconfig
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/uname
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/gcc
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/g++
/gnu/store/4bs2xiv9mr0p8vfy046b4jaqn0958wk4-profile/bin/cut
/usr/bin/which
# End of output

This indicates that `ldconfig` is absent. Someone in #guix told me that
it was supposed to be provided by 

Additionally, `which` was included in the output (comes from the
"debianutils" package on .deb-based distributions) and is also absent,
and the GNUmakefile seems to expect `which` at some point (although I'm
not sure if the build process reached that), so the absence of `which`
might be good to discuss on other bug report.


Respectfully, Adonay.
-- 
# pt-BR: Brasileiro | en: Brazilian

* pt-BR: Palestra sobre liberdade de software (movimento filosófico 
político-social, não tecnológico).
  * en: Gives talks about software freedom (philosophical, political and social 
movement, not technological).
* pt-BR: Voluntário avaliador de liberdade de software (para software pagos ou 
gratuitos).
  * en: Volunteer evaluator of software freedom (for paid software, or gratis 
software).
* pt-BR: Presta suporte e consultoria básicos sobre software livre.
  * en: Gives basic support and consulting about free/libre software.

## pt-BR: Sobre mim e contato | en: About me and contact


;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès 
;;; Copyright © 2014 Andreas Enge 
;;; Copyright © 2012 Nikita Karetnikov 
;;; Copyright © 2014, 2015, 2016 Mark H Weaver 
;;; Copyright © 2014 Alex Kost 
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis 
;;; Copyright © 2016 Efraim Flashner 
;;; Copyright © 2016 Jan Nieuwenhuizen 
;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira  
;;;
;;; This file is 

Re: Building Guix with Guile 2.1

2016-09-21 Thread Taylan Ulrich Bayırlı/Kammer
By the way, for testing guix with guile 2.2 easily:

> $ cat ~/tmp/guix-with-guile-next.scm
> (use-modules
>  (guix packages)
>  (guix build utils)
>  (gnu packages guile)
>  (gnu packages package-management))
>
> (package
>   (inherit guix)
>   (inputs (alist-replace "guile"
>  (list guile-next)
>  (package-inputs guix
>
> $ guix environment --pure -l ~/tmp/guix-with-guile-next.scm
> $ autoreconf ...

Taylan



Re: [PATCH 0/7] Add Extempore.

2016-09-21 Thread Ricardo Wurmus

Andreas Enge  writes:

> extempore only compiles on x86_64; elsewhere it fails with the message
>CMake Error at CMakeLists.txt:82 (message):
>Extempore currently only runs on 64-bit platforms.
> (which is not the full truth...):
>http://hydra.gnu.org:3000/build/1473446
>
> Could you disable the other architectures?

Yes, will do.  Thanks for the note.

> Maybe this should also be done for the *-for-extempore packages, since
> there is no need to waste hydra cycles on otherwise unused packages.
> I would also hide them using "define" instead of "define-public", which
> would require to put them into the same module as extempore itself.
> What do you think?

I don’t know about hiding the packages and moving them to the same
module.  In the past we’ve kept package variants always with the
original package it was derived from,
e.g. “armadillo-for-rcpparmadillo”, which is only used for
“r-rcpparmadillo” in the “statistics” module, but which inherits from
“armadillo” in the “maths” module.

Back then I also thought that moving them together would be better, but
if I remember correctly I was asked to keep the variant with the
parent package.

I’ll disable the extempore packages for non-x86_64, but I’d like to see
some more opinions about whether to move the variants.

~~ Ricardo



Re: Building Guix with Guile 2.1

2016-09-21 Thread Taylan Ulrich Bayırlı/Kammer
Andy Wingo  writes:

> On Wed 21 Sep 2016 10:23, l...@gnu.org (Ludovic Courtès) writes:
>
>> Hello!
>>
>> Nalaginrut reported that Guix fails to build with Guile 2.2, which was a
>> bit of a shame, hence commits e465d9e19087ab150f7e31f21c09e4a147b93b36
>> and 9d126aa2b504bb9fad536eac186805ff623e96be.
>>
>> Now, the hack in build-aux/compile-all.scm doesn’t quite work with 2.2,
>> and it was already quite fragile.
>
> Which hack?  You mean loading modules before compiling?  I guess you
> should load the compiler modules too FWIW, perhaps that's an issue.
>
> If there is a nice change we can do to make module-loading thread-safe,
> let's think about that :)  It's probably the biggest thread-safety
> problem we have in Guile and now would be the right time to fix it.

It would be neat to make module loading thread-safe indeed!  Not sure if
this issue is related to that though...  Currently the .go compilation
phase of 'make' errors like:

> [... snip ...]
>   LOAD (guix build-system haskell)
>   LOAD (guix build-system perl)
>   LOAD (guix build-system python)
>   LOAD (guix build-system waf)
> Backtrace:
>   18 (primitive-load "/home/taylan/src/guix/./build-aux/comp?")
> In ice-9/eval.scm:
> 608:8 17 (_ #(#(#(#(#(# ?) ?) ?) ?) ?))
> In ice-9/boot-9.scm:
>262:13 16 (for-each1 ("guix/build-system/waf.scm" "guix/build-?" ?))
>   2788:17 15 (resolve-interface (guix build-system waf) #:select _ # ?)
>   2713:10 14 (_ (guix build-system waf) _ _ #:ensure _)
>   2989:16 13 (try-module-autoload _ _)
>2325:4 12 (save-module-excursion #)
>   3009:22 11 (_)
> In unknown file:
>   10 (primitive-load-path "guix/build-system/waf" #)
> In ice-9/eval.scm:
>710:20  9 (primitive-eval (define-module (guix build-system #) # ?))
> In ice-9/psyntax.scm:
>   1209:36  8 (expand-top-sequence ((define-module (guix # waf) # ?)) ?)
>   1156:24  7 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
>279:10  6 (parse _ (("placeholder" placeholder)) (()) _ c (eval) ?)
> In ice-9/eval.scm:
>293:34  5 (_ #)
> In ice-9/boot-9.scm:
>   2849:10  4 (define-module* _ #:filename _ #:pure _ #:version _ # _ ?)
>   2801:10  3 (resolve-interface (guix build-system python) #:select _ ?)
>262:13  2 (for-each1 (default-python default-python2))
>   2806:38  1 (_ _)
> In unknown file:
>0 (scm-error misc-error #f "~A" ("no binding `default-p?") ?)
>
> ERROR: In procedure scm-error:
> ERROR: no binding `default-python' in module (guix build-system python)

That's in the phase where the modules are all loaded by calling
'resolve-interface' on their names, which is *not* done in parallel.
To quote compile-all.scm:

> [... snip ...]
>
> ;;; To work around  (FIXME), we want to load all
> ;;; files to be compiled first.  We do this via resolve-interface so that the
> ;;; top-level of each file (module) is only executed once.
> (define (load-module-file file)
>   (let ((module (file->module file)))
> (format #t "  LOAD ~a~%" module)
> (resolve-interface module)))
>
> [... snip ...]
>
> (match (command-line)
>   ((_ . files)
>(let ((files (filter file-needs-compilation? files)))
>  (for-each load-module-file files)
>  (let ((mutex (make-mutex)))
>(par-for-each (lambda (file)
>(compile-file* file mutex))
>  files)

I ran guile via ./pre-inst-env and executed (resolve-interface '(guix
build-system waf)) manually and actually got a similar / the same error:

> [... snip ...]
> ;;; WARNING: compilation of /home/taylan/src/guix/guix/build-system/waf.scm 
> failed:
> ;;; ERROR: no binding `default-python' in module (guix build-system python)
> ERROR: In procedure scm-error:
> ERROR: no binding `default-python' in module (guix build-system python)

Looking into (guix build-system waf), it contains:

> ...
>   #:use-module ((guix build-system python)
> #:select (default-python default-python2))
> ...

but (guix build-system python) does not export default-python.

Apparently Guile 2.0 allows this (to select private bindings), but 2.2
does not.

Reading the documentation for #:select I can't really tell which
behavior is intended.

Taylan



Re: [PATCH 1/2] gnu: Add femtolisp.

2016-09-21 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> ng0  skribis:
[…]
>> Okay, I will fix it. In the meantime should the additional patch which
>> is unrelated to this change be applied.
>
> Sorry, I’ll let whoever reviewed reply.  :-)

That would be me :)

I pushed the patch to remove the custom build phase.  It’s in master as
f7fe5f7a3e26676657265e98073b9914baf615f1.

~~ Ricardo




Re: [PATCH] gnu: r-curl: Respect CURL_CA_BUNDLE variable.

2016-09-21 Thread Ricardo Wurmus

Leo Famulari  writes:

> On Tue, Sep 13, 2016 at 11:53:33PM +0200, Roel Janssen wrote:
>> This patch was essential to me being able to interact with HTTPS urls in
>> R.  As far as I understand, by default, R only looks for CURL_CA_BUNDLE
>> on Windows, but with this patch it looks for CURL_CA_BUNDLE on GNU/Linux
>> as well.  Is this correct?
>> 
>> I can confirm it works for me, so I'd like to see this patch pushed.
>
> It's good to hear that it works, but I still think we should run it by
> the upstream maintainers. We are activating C code that they
> specifically decided not to use on GNU / Linux. Why did they do that?

The comments in the code indicate that on Windows they try to load the
certs bundle that comes with R for Windows, i.e. in the R HOME’s “etc”
directory.  There is no such file on GNU, so no special handling is
needed.

On GNU this is taken care of by libcurl.  It comes with a default path
to the certs bundle, which can be overridden with configure flags
(“--with-ca-bundle” or “--with-ca-path”).  In our Guix package we don’t
do this (yet?), so by default SSL cert validation is broken.

libcurl does not respect CURL_CA_BUNDLE; it assumes that the application
will override the CA bundle path if it needs a special path, otherwise
it assumes that the default path is fine (using Guix this is not the
case).

The maintainers of the R curl package made the special case for Windows
because it is not needed on GNU systems following the FHS.  The best fix
here would be to patch libcurl such that it checks the CURL_CA_BUNDLE
environment variable invariably, just like the curl command line tool
does.  Until this is done I think we should path packages such as
r-curl to make them usable.  Once we have agreed on a fix to libcurl we
can remove all patches to individual packages using libcurl.

~~ Ricardo




Re: [PATCH 2/2] gnu: Add GSSD and Pipefs services (Usage of @var)

2016-09-21 Thread John Darrington
On Wed, Sep 14, 2016 at 04:42:11PM +0200, Ludovic Court??s wrote:
 John Darrington  skribis:
 
 > On Tue, Sep 13, 2016 at 01:45:19PM +0200, Ludovic Court??s wrote:
 >  John Darrington  skribis:
 >
 >  > +@item @code{nfs-utils} (default: @code{nfs-utils})
 >  ^
 >  Should be @var, because here we???re talking about the value of the
 >  ???nfs-utils??? global variable.
 >
 > I think you are mistaken here.  Quoting from the Texinfo manual:
 >
 > Use the @var command to indicate metasyntactic variables. A 
metasyntactic 
 >variable is something that stands for another piece of text. For 
example, you
 >should use a metasyntactic variable in the documentation of a 
function to 
 >describe the arguments that are passed to that function.
 >
 > Do not use @var for the names of normal variables in computer 
programs. These
 >are specific names, so @code is correct for them (@code).  For 
example, the 
 >Emacs Lisp variable texinfo-tex-command is not a metasyntactic 
variable; it 
 >is properly formatted using @code.
 >
 > Or have I got it wrong?
 
 Dunno, my interpretation is that ???nfs-utils??? here denotes the value of
 the ???nfs-utils??? variable, so it ???stands for another piece of text???,
 which is (package (name "nfs-utils") ???).


I don't understand what you are saying.  The text says:

  This type has the following parameters:
  @item @code{nfs-utils} (default: @code{nfs-utils})

(I think it's a little confusing that both the parameter and its default value 
are both called 
"nfs-utils" - but that is another issue).

The first instance of @code{nfs-utils} is the name of the parameter.  It does 
not stand for
something else.  That is what it is really called.  Similarly, the second 
instance
(default: @code{nfs-utils})  also does not stand for something else.  It is 
literally the default
value of the parameter.


 No big deal, but we should settle on a single convention and so far
 we???ve used @var in such cases.

Well looking at other sections I see that we have been far from consistent.  
Some have used @code
and others have used @var.


Now here is an example from the manual where we have correctly used @var:

   The following command-line options are supported:

   @item --build-users-group=@var{group}
   Take users from @var{group} to run build processes 

This is correct usage of @var, because here "group" is a metasyntactical 
variable.  That is to say we
don't intend the user to literally type "group" --- we mean him to substitute 
it with whatever
group name he has chosen for his builders.

However, here is a different example:

@example

(define-public hello
  (package
(name "hello")
(version "2.10")
(source (origin
  (method url-fetch)
  (uri (string-append "mirror://gnu/hello/hello-" version
  ".tar.gz"))
  (sha256
   (base32
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/hello/;)
(license gpl3+)))
@end example

In the example above, @var{hello} is defined in a module of its own,
@code{(gnu packages hello)}.  


This, as I understand it, is incorrect use of @var because "hello" does not 
stand
for something else.  It refers litererally to  the text "hello" and we should 
put it in @code
to indicate that it is a fragment of code.  It is a variable which is part of 
guix.

I think the passage from the Texinfo manual  which I quoted is quite clear.


But I agree that we need to be consistent.  We should be consistent both within 
Guix and
be consistent with other projects which use Texinfo.  If you like I can checkin 
a change
to fixup the current inconsistencies.

J'


-- 
Avoid eavesdropping.  Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.



signature.asc
Description: Digital signature


Re: [PATCH 1/2] gnu: Add perl-net-psyc.

2016-09-21 Thread ng0
Patch on top of this, containing psyclpc. The psyced package which
follows as the last one after all of this needs some minor adjustments
and then I need to write a service (and/or guile bindings. Hopefully a
service is enough.).

From 74a6c1e552a6ae8f438e91cbe318882401b440f8 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Wed, 21 Sep 2016 18:08:42 +
Subject: [PATCH 1/2] gnu: Add psyclpc.

* gnu/packages/psyc.scm (psyclpc): New variable.
---
 gnu/packages/psyc.scm | 72 +++
 1 file changed, 72 insertions(+)

diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
index 58ce3c6..5a6f1db 100644
--- a/gnu/packages/psyc.scm
+++ b/gnu/packages/psyc.scm
@@ -24,9 +24,16 @@
   #:use-module (guix build-system perl)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
 
 ;; The URL at sdf.org is a mirror, officially known. The host www.psyced.org
@@ -151,3 +158,68 @@ PSYC, useful for all kinds of clients and servers including psyced.")
 (license (list license:agpl3+
;; test/test.c is based on a public-domain test
license:public-domain
+
+(define-public psyclpc
+  (package
+(name "psyclpc")
+(version "20160821")
+(source (origin
+  (method url-fetch)
+  (uri (list (string-append "http://www.psyced.org/files/;
+name "-" version ".tar.xz")
+ (string-append "http://krosos.sdf.org/static/unix/;
+"perlpsyc-" version ".zip")))
+  (sha256
+   (base32
+"0c2afcj8b2yr2vmy9sy0528iqs9sw01j6q35lvxicm42gs7vnik2"
+(build-system gnu-build-system)
+(arguments
+ `(#:tests? #f ; There are no tests/checks.
+   #:configure-flags (list
+  "--enable-use-tls=yes"
+  "--enable-use-mccp"
+  (string-append "--with-openssl="
+ (assoc-ref %build-inputs "openssl"))
+  (string-append "--prefix="
+ (assoc-ref %outputs "out"))
+  (string-append "--libdir=" ; "-DMUD_LIB="
+ (assoc-ref %outputs "out")
+ "/opt/psyced/world")
+  (string-append "--bindir="
+ (assoc-ref %outputs "out")
+ "/opt/psyced/bin")
+  (string-append "--libexecdir=" ; "-DERQ_DIR="
+ (assoc-ref %outputs "out")
+ "/opt/psyced/run"))
+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'chdir-to-src
+   (lambda _
+ (chdir "src")
+ (setenv "CONFIG_SHELL" (which "sh"))
+ (setenv "SHELL" (which "sh"
+ (replace 'install
+   (lambda _
+ (zero? (system* "make" "install-all")))
+(inputs
+ `(("zlib" ,zlib)
+   ("openssl" ,openssl)))
+;; pcre is bundled to ensure the version is compatible. XXX: look into
+;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For
+;; functionality reasons we can not unbundle it now.
+;; ("pcre" ,pcre)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("bison" ,bison)
+   ("gnu-gettext" ,gnu-gettext)
+   ("help2man" ,help2man)
+   ("autoconf" ,autoconf)
+   ("automake" ,automake)))
+(home-page "http://lpc.psyc.eu/;)
+(synopsis "psycLPC is a multi-user network server programming language")
+(description
+ "LPC is a bytecode language, invented to specifically implement
+multi user virtual environments on the internet.  This technology is used for
+MUDs and also the psyced implementation of the Protocol for SYnchronous Conferencing (PSYC).  psycLPC is a fork of LDMud with some new features and
+many bug fixes.")
+(license license:gpl2)))
-- 
2.10.0



ng0  writes:

> [ Unknown signature status ]
>
>> I will resend this patch with the fail-safe mirror I just added on
>> sdf.org. This is okay with the others in group and very much welcomed.
>> The shasum file is signed by my rsa opengpg key which is also used by
>> some releases of Gnurl.
>
> Where the group means other developers hacking around psyced.org,
> secushare.org 

higan failures on arm and mips

2016-09-21 Thread Efraim Flashner
Looking at hydra, the two build failures for higan are on arm and mips.
Arm fails because:
./nall/stdint.hpp:50:1: error: static assertion failed: float80_t is not of the 
correct size
and mips because:
../libco/sjlj.c:26:3: error: unknown type name ‘sigjmp_buf’

Debian has two patches that I think would help. For arm it takes out the
float80_t check
https://sources.debian.net/src/higan/098-2/debian/patches/disable_long_double_size_check.patch/
and for mips it defines _XOPEN_SOURCE 700 in sjlj.c
https://sources.debian.net/src/higan/098-2/debian/patches/sjlj-declare-xopen-source.patch/

The first we can get with a substitute*, not sure about the second one.
Does anyone with access to arm or mips hardware want to try these
patches out?

-- 
Efraim Flashner      אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


[PATCH] gnu: Add reducelcs

2016-09-21 Thread ng0
Leo Famulari  writes:

> On Sun, Sep 18, 2016 at 06:20:47PM +, ng0 wrote:
>> Just because I found this in a search for something else I packaged
>> this. Is this desirable for master? It is very small.
>
> Sure, send it in!
>

From dae46ce28cd4c51ed8613ccbcc7ed4b018d083ee Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 18 Sep 2016 17:58:20 +
Subject: [PATCH] gnu: Add reducelcs.

* gnu/packages/lcs.scm (reducelcs): New variable.
---
 gnu/packages/lcs.scm | 65 
 1 file changed, 65 insertions(+)
 create mode 100644 gnu/packages/lcs.scm

diff --git a/gnu/packages/lcs.scm b/gnu/packages/lcs.scm
new file mode 100644
index 000..02f3827
--- /dev/null
+++ b/gnu/packages/lcs.scm
@@ -0,0 +1,65 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 
+;;;
+;;; 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 lcs)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages maths)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu))
+
+(define-public reducelcs
+  (let ((commit "474f88deb968061abe8cf11c959e02319b8ae5c0")
+(revision "1"))
+(package
+  (name "reducelcs")
+  (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+  (source (origin
+(method git-fetch)
+(uri (git-reference
+  (url "https://github.com/gdv/Reduce-Expand-for-LCS;)
+  (commit commit)))
+(file-name (string-append name "-" version "-checkout"))
+(sha256
+ (base32
+  "1rllzcfwc042c336mhq262a8ha90x6afq30kvk60r7i4761j4yjm"
+  (build-system gnu-build-system)
+  (inputs
+   `(("openlibm" ,openlibm)))
+  (arguments
+   `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+   (delete 'configure) ; no configure script
+   (replace 'install ; no install phase either
+ (lambda* (#:key outputs #:allow-other-keys)
+   (let* ((out (assoc-ref outputs "out"))
+  (bin (string-append out "/bin")))
+ (install-file "Approximation" bin)
+ (install-file "CollectResults" bin)
+ (install-file "GenerateInstances" bin)
+ #t))
+  (synopsis "Fast program to compute the approximate
+Longest Commons Subsequence of a set of strings")
+  (description
+   "@code{reduceLCS} is an implementation of the Reduce-Expand
+algorithm for LCS.  It is a fast program to compute the approximate
+Longest Commons Subsequence of a set of strings.")
+  (home-page "http://gianluca.dellavedova.org/software/;)
+  (license license:gpl2
-- 
2.10.0


-- 
  ng0


signature.asc
Description: PGP signature


Re: [PATCH] gnu: boost: Update to 1.61.0.

2016-09-21 Thread Andreas Enge
On Wed, Sep 21, 2016 at 06:11:31PM +0200, Andreas Enge wrote:
> boost has quite a few dependencies, as Ricardo already pointed out, and in my
> experience tends to be a bit fragile. So maybe the best option would be to
> create a boost-update branch and have it built on hydra to see whether there
> are problems. It not, one could then cherry-pick the commit to master.

I replied before reading all the messages in that thread. Of course if Eric
has tried the commit locally and tested that nothing breaks, this could be
pushed to master directly.

Andreas




Re: [PATCH] small patchseries to add the irc bot limnoria.

2016-09-21 Thread ng0
ng0  writes:

> Leo Famulari  writes:
>
>> [ Unknown signature status ]
>> On Sun, Sep 18, 2016 at 02:14:32PM +, ng0 wrote:
>>> This is a small patchseries to add the bot limnoria, based on supybot.
>>
>> Thanks!
>>
>>> * gnu/packages/python.scm (python-socksipy-branch): New variable.
>>
>>> +(home-page "http://code.google.com/p/socksipy-branch/;)
>
> Right, it is now https://code.google.com/archive/p/socksipy-branch/
> until Google will finally to decide to shut down yet another product
> people relied on.
>
>>
>> Error 404.
>>
>>> +(define-public python2-socksipy-branch
>>> +  (package-with-python2
>>> +   (strip-python2-variant python-socksipy-branch)))
>>
>> I don't think this needs strip-python2-variant. It should be enough to
>> use package-with-python2.
>
> I found this failed very often for me. I can try it again.

Oh, I meant something different. Just using package-with.. worked.

>>> Subject: [PATCH 2/4] license: Add freebsd-doc.
>>> 
>>> * guix/licenses.scm (freebsd-doc): New variable.
>>
>> LGTM
>>
>>> Subject: [PATCH 3/4] gnu: Add python-feedparser.
>>> 
>>> * gnu/packages/python.scm (python-feedparser): New variable.
>>
>> LGTM
>>
>>> Subject: [PATCH 4/4] gnu: Add limnoria.
>>> 
>>> * gnu/packages/irc.scm (limnoria): New variable.
>>
>> LGTM. It would be nice to figure out how to run the tests, if they are
>> meant to be run by distributions..

From 4372d38c20abc54070777c605e0946c1ef7cebf1 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 18 Sep 2016 13:16:23 +
Subject: [PATCH 1/4] gnu: Add python-socksipy-branch.

* gnu/packages/python.scm (python-socksipy-branch): New variable.
---
 gnu/packages/python.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a186557..896566c 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3731,6 +3731,34 @@ routines such as routines for numerical integration and optimization.")
 (define-public python2-scipy
   (package-with-python2 python-scipy))
 
+(define-public python-socksipy-branch
+  (package
+(name "python-socksipy-branch")
+(version "1.01")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "SocksiPy-branch" version))
+   (sha256
+(base32
+ "01l41v4g7fy9fzvinmjxy6zcbhgqaif8dhdqm4w90fwcw9h51a8p"
+(build-system python-build-system)
+(arguments
+ `(#:tests? #f)) ; There are no tests
+(home-page "https://code.google.com/archive/p/socksipy-branch/;)
+(synopsis "Python SOCKS module")
+(description
+ "SocksiPy - A Python SOCKS client module.  It provides a
+socket-like interface that supports connections to any TCP
+service through the use of a SOCKS4, SOCKS5 or HTTP proxy.
+The original version was developed by Dan Haim, this is a
+branch created by Mario Vilas to address some open issues,
+as the original project seems to have been abandoned circa 2007.")
+(license license:bsd-3)))
+
+(define-public python2-socksipy-branch
+  (package-with-python2 python-socksipy-branch))
+
 (define-public python-sqlalchemy
   (package
 (name "python-sqlalchemy")
-- 
2.10.0

From 478ea32c2e357f65aa8e89235f674291a17f3317 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 18 Sep 2016 13:57:33 +
Subject: [PATCH 2/4] license: Add freebsd-doc.

* guix/licenses.scm (freebsd-doc): New variable.
---
 guix/licenses.scm | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/guix/licenses.scm b/guix/licenses.scm
index 265f048..92c120e 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Leo Famulari 
 ;;; Copyright © 2016 Fabian Harfert 
 ;;; Copyright © 2016 Rene Saavedra 
+;;; Copyright © 2016 ng0 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +44,7 @@
 epl1.0
 expat
 freetype
+freebsd-doc
 giftware
 gpl1 gpl1+ gpl2 gpl2+ gpl3 gpl3+
 gfl1.0
@@ -276,6 +278,11 @@ at URI, which may be a file:// URI pointing the package's tree."
"https://www.gnu.org/licenses/fdl.html;
"https://www.gnu.org/licenses/license-list#FDL;))
 
+(define freebsd-doc
+  (license "FreeBSD Documentation License"
+   "https://www.freebsd.org/copyright/freebsd-doc-license.html;
+   "https://www.gnu.org/licenses/license-list.html#FreeBSDDL;))
+
 (define opl1.0+
   (license "Open Publication License 1.0 or later"
"http://opencontent.org/openpub/;
-- 
2.10.0

From 3a60d3e415e957ea2683cbbf762edc9d256a7dcc Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 18 Sep 2016 13:58:25 +
Subject: [PATCH 3/4] gnu: Add python-feedparser.

* gnu/packages/python.scm (python-feedparser): New variable.
---
 gnu/packages/web.scm | 29 

Re: Building Guix with Guile 2.1

2016-09-21 Thread Andy Wingo
On Wed 21 Sep 2016 10:23, l...@gnu.org (Ludovic Courtès) writes:

> Hello!
>
> Nalaginrut reported that Guix fails to build with Guile 2.2, which was a
> bit of a shame, hence commits e465d9e19087ab150f7e31f21c09e4a147b93b36
> and 9d126aa2b504bb9fad536eac186805ff623e96be.
>
> Now, the hack in build-aux/compile-all.scm doesn’t quite work with 2.2,
> and it was already quite fragile.

Which hack?  You mean loading modules before compiling?  I guess you
should load the compiler modules too FWIW, perhaps that's an issue.

If there is a nice change we can do to make module-loading thread-safe,
let's think about that :)  It's probably the biggest thread-safety
problem we have in Guile and now would be the right time to fix it.

Andy



Re: [PATCH] gnu: boost: Update to 1.61.0.

2016-09-21 Thread Andreas Enge
Hello,

On Mon, Sep 19, 2016 at 12:11:57PM +0200, Roel Janssen wrote:
> I don't know what the impact of the following upgrade is, but I think it
> would be good to update Boost to the latest stable version that was
> released on May 13th, 2016.

boost has quite a few dependencies, as Ricardo already pointed out, and in my
experience tends to be a bit fragile. So maybe the best option would be to
create a boost-update branch and have it built on hydra to see whether there
are problems. It not, one could then cherry-pick the commit to master.

Andreas




Re: Binutils build failure on MIPS

2016-09-21 Thread Ludovic Courtès
Hi!

Andreas Enge  skribis:

> On Tue, Sep 13, 2016 at 02:45:40PM +0200, Ludovic Courtès wrote:
>> You need a mips64el machine to run:
>>   ./pre-inst-env guix build -e '(@@ (gnu packages commencement) 
>> binutils-boot0)'
>
> I just did this (together with the paramater "-K"!), but the problem is
> that I have no idea what is happening inside...
>
> The configure phase actually passes, the problem appears inside the build
> phase, which itself launches a number of configure runs in subdirectories.
> The last lines of the log are:
> checking size of void *... 4
> /tmp/guix-build-binutils-cross-boot0-2.27.drv-0/binutils-2.27/ld/configure: 
> unhandled emulation
> make[1]: *** [Makefile:7125: configure-ld] Error 1
> make[1]: Leaving directory 
> '/tmp/guix-build-binutils-cross-boot0-2.27.drv-0/binutils-2.27'
> make: *** [Makefile:852: all] Error 2
> phase `build' failed after 1434.0 seconds
> note: keeping build directory 
> `/tmp/guix-build-binutils-cross-boot0-2.27.drv-1'
> builder for 
> `/gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv' 
> failed with exit code 1
> @ build-failed 
> /gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv - 1 
> builder for 
> `/gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv' 
> failed with exit code 1
> guix build: error: build failed: build of 
> `/gnu/store/yw6kb2vqqws3gnrmvlp44h60rlpw4ldr-binutils-cross-boot0-2.27.drv' 
> failed
>
> I launched a ./configure by hand inside the ld subdirectory, after sourcing
> the environment variables; it succeeds with
> checking size of void *... 4
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating po/Makefile.in
> config.status: creating config.h
> config.status: config.h is unchanged
> config.status: executing depfiles commands
> config.status: executing libtool commands
> config.status: executing default-1 commands
> config.status: creating po/POTFILES
> config.status: creating po/Makefile
>
> So even during the build, configure runs until the last test.
> However, it does not write ./config.status etc.
>
> The error message above contains
> make[1]: *** [Makefile:7125: configure-ld] Error 1
>
> Lines 7125 and following of the Makefile (one level up from the ld
> subdirectory) are
> configure-ld:
> @r=`${PWD_COMMAND}`; export r; \
> s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
> test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
> $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
> $(HOST_EXPORTS)  \
> echo Configuring in $(HOST_SUBDIR)/ld; \
> cd "$(HOST_SUBDIR)/ld" || exit 1; \
> case $(srcdir) in \
>   /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
>   *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
> sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
> esac; \
> module_srcdir=ld; \
> $(SHELL) \
>   $$s/$$module_srcdir/configure \
>   --srcdir=$${topdir}/$$module_srcdir \
>   $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
>   --target=${target_alias}  \
>   || exit 1
>
> So apparently the "exit 1" is triggered.
> The beginning of the configure log looks like this:
> Configuring in ./ld
> configure: creating cache ./config.cache
> checking build system type... mips64el-unknown-linux-gnu
> checking host system type... mips64el-unknown-linux-gnu
> checking target system type... mips64el-guix-linux-gnu
> So it looks as if build_alias, host_alias and target_alias are set
> correctly.
>
> Do you have any ideas of what to check?

Could you check the values of _alias in the top-level Makefile?

Alternately, could you edit ld/emulparams/elf32bmipn32-defs.sh and add
‘set’ just before the “unhandled emulation” line in order to see the
value of the variables?

I tried this on my x86_64 machine:

  ./configure -C --prefix=$HOME/soft --build=mips64el-unknown-linux-gnu 
--target=mips64el-guix-linux-gnu

to mimic the configure flags shown at
.  Unfortunately it
doesn’t exhibit the problem.

Thanks for looking into it!

Ludo’.



Re: CVE-2016-0634 code execution in Bash prompt when expanding hostname

2016-09-21 Thread Ludovic Courtès
John Darrington  skribis:

> On Tue, Sep 20, 2016 at 04:55:30PM -0400, Leo Famulari wrote:
>  Any advice on how we should handle CVE-2016-0634?
>  
>  http://seclists.org/oss-sec/2016/q3/534
>
> Like the comment there says, it is only a problem if the machine has
> already been owned,

… or if a privilege application like a DHCP client can be made to set
the host name to $(something bad), which was apparently possible at some
point.

> so I don't see what the issue is.  If there is an issue it is for the
> bash maintainers to patch.

Chet proposed a patch:

  http://seclists.org/oss-sec/2016/q3/att-538/prompt-string-comsub.patch

IIUC, the just-released 4.4 isn’t affected, right?

We should at least update it in core-updates, but core-updates won’t be
merged until we have fixed that Binutils/MIPS issue (which shouldn’t be
too hard, but we never know!).

I’m somewhat unavailable these days; could someone look into it?

Thanks for the heads-up Leo, as usual!

Ludo’.



Re: [PATCH] gnu: rottlog: rotate messages daily.

2016-09-21 Thread Ludovic Courtès
Hello!

Jan Nieuwenhuizen  skribis:

> Ludovic Courtès writes:

[...]

>>> +  (jobs rottlog-jobs ; list of 
>>> +(default
>>> +  (list #~(job
>>> +   '(next-hour '(0))
>>> +   (lambda ()
>>> + (system (string-append #$rottlog "/sbin/rottlog"
>>> +#~(job
>>> +   '(next-hour '(12))
>>> +   (lambda ()
>>> + (system (string-append #$rottlog 
>>> "/sbin/rottlog"
>>
>> Please move (list …) to a global variable, to avoid code duplication
>> when the macro is expanded.
>
> ...moved to a function now...but I don't see what macro you mean (#~ ?)
> and when it gets expanded and how that leads to duplication.

The ‘rottlog-configuration’ is actually a macro.  So at every call site
where a default value is used, the default value code is duplicated,
leading to code bloat if that default value is a big expression.

> I'm not sure if we should export the %default-rotations or if we should
> describe their contents in the manual.

Probably worth exporting and documenting, so people can ‘cons’ on it.

> From ee1be88f60d70de46009069da020c1bdc4993fd8 Mon Sep 17 00:00:00 2001
> From: Jan Nieuwenhuizen 
> Date: Thu, 8 Sep 2016 01:20:43 +0200
> Subject: [PATCH] gnu: services: add rottlog.
>
> * gnu/services/admin.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> * doc/guix.texi (Log Rotation): Document it.

[...]

> +(define (rotation-config file kill)
> +  (string-append file " {
> + sharedscripts
> + postrotate
> +" kill
> +"endscript
> + nocompress
> +}
> +"))
> +
> +(define (syslog-rotation-config file)
> +  (let ((coreutils 
> "/gnu/store/56x9fvx59i300wav3c193h84cp80bslr-coreutils-8.25")) ;; FIXME

Good point…

> +(rotation-config
> + file
> + (string-append
> +  "  "
> +  coreutils "/bin/kill -HUP $(cat /var/run/syslog.pid) 2> /dev/null
> +"
> +
> +(define (simple-rotation-config file)
> +  (rotation-config file ""))
> +
> +(define %default-rotations
> +  `(("weekly" ,(plain-file "rottlog.weekly"
> +   (string-append (string-join
> +   (map syslog-rotation-config
> +%rotated-files)
> +   "")
> +  (simple-rotation-config
> +   "/var/log/shepherd.log"))

I think we cannot use ‘plain-file’ here because of the computed ‘kill’
file name.  So instead, this would be something along the lines of
(moving ‘string-append’ from the host side to the build side):

  (define (syslog-rotation-config file)
#~(string-append #$file " {\n" …
 #$coreutils "/bin/kill -HUP …"
 "}\n"))

and:

  (define %default-rotations
`(("weekly" ,(computed-file "rottlog.weekly"
#~(call-with-output-file #$output
(lambda (port)
  (display #$(syslog-rotation-file …)
   port)))
HTH!

Thanks again for taking the time and coping with half-baked advice!
;-)

Ludo’.



Re: User-profile search paths should include system-profile directories

2016-09-21 Thread Ludovic Courtès
Hi,

csanchez...@gmail.com (Carlos Sánchez de La Lama) skribis:

> Alex Kost  writes:

[...]

>>> what about something like:
>>>
>>> - /etc/profile
>>>   # [...]
>>>   GUIX_PROFILES="/run/current-system/profile:$HOME/.guix-profile"
>>>   . /run/current-system/profile/etc/profile
>>>   # [...]
>>>   . "$HOME/.guix-profile/etc/profile"
>>>   # [...]
>>>
>>> - /run/current-system/profile/etc/profile
>>>   profiles="${GUIX_PROFILES:=/gnu/store/-profile}"
>>>   export PATH="${profiles//:/\/bin}/bin ${profiles//:/\/sbin}/sbin"
>>>   # [...]
>>>
>>>
>>> - $HOME/.guix-profile/etc/profile
>>>   profiles="${GUIX_PROFILES:=/gnu/store/-profile}"
>>>   export ACLOCAL_PATH="${profiles//:/\/share/aclocal}/share/aclocal"
>>>   # [...]
>>>
>>> That is, each profile adds all its search paths to all the profile roots
>>> passed in the colon separated variable GUIX_PROFILES. If GUIX_PROFILES
>>> is empty, it adds the search paths inside its own directory only (as
>>> until now).
>>
>> I think it was mentioned somewhere in the bug discussion: this will not
>> work for some things.  For example, if a user has 'guile' in a system
>> profile, and several guile packages (but not 'guile' itself) in
>> ~/.guix-profile, then GUILE_LOAD_PATH will include
>> "/share/guile/site/2.0" but not
>> "/share/guile/site/2.0".  That's why combining profiles
>> inside "guix package --search-paths" command looks like the only
>> solution.
>
> It will actually solve it, that is the case I was trying to fix in
> fact. The code I show will include /share/guile/site/2.0 prefixed
> by every root in the colon-separated list GUIX_PROFILES (note the
> difference with current code with has GUIX_PROFILE, singular). If
> GUIX_PROFILES is (as in the example):
>
> GUIX_PROFILES="/run/current-system/profile:$HOME/.guix-profile"
>
> And guile is in the system profile, the line
>
> export 
> GUILE_LOAD_PATH="${profiles//://share/guile/site/2.0:}/share/guile/site/2.0"
>
> will produce:
>
> export 
> GUILE_LOAD_PATH=/run/current-system/profile/share/guile/site/2.0:$HOME/.guix-profile/share/guile/site/2.0

Unless I’m mistaken, I don’t think this would work.

In the example Alex gave, none of the two profiles specifies
GUILE_LOAD_PATH if taken individually.  This example is also in the
manual to illustrate the use of multiple -p flags with --search-paths
(info "(guix) Invoking guix package").

Thoughts?

Ludo’.



Re: [PATCH 3/3] gnu: Add newlib-nano-arm-none-eabi.

2016-09-21 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> * gnu/packages/embedded.scm (newlib-nano-arm-none-eabi): New variable.

[...]

> +(define-public newlib-nano-arm-none-eabi
> +  (package (inherit newlib-arm-none-eabi)
> +(name "newlib-nano")

I think it should be “newlib-minimal”, no?  Or does “nano” have a
special meaning?

Also, make sure to add a synopsis that mentions its minimalness, and
maybe a comment stating what the intended use case is, or how the
feature set was chosen.

Otherwise LGTM, thanks!

Ludo’.



Re: [PATCH 2/3] gnu: Add newlib-arm-none-eabi.

2016-09-21 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> * gnu/packages/embedded.scm (newlib-arm-none-eabi): New variable.

[...]

> +   #:configure-flags '("--target=arm-none-eabi"
> +   "--enable-newlib-io-long-long"
> +   "--enable-newlib-register-fini"
> +   "--disable-newlib-supplied-syscalls"
> +   "--disable-nls")

Maybe a short comment to explain.  :-)

> +   #:phases
> +   (modify-phases %standard-phases
> + (add-after 'unpack 'fix-shell-shebangs
> +   (lambda _
> + (setenv "SHELL" (which "sh"))
> + (setenv "CONFIG_SHELL" (which "sh"))
> + (substitute* '("libgloss/arm/configure"
> +"libgloss/arm/cpu-init/Makefile.in"
> +"libgloss/arm/Makefile.in"
> +"libgloss/libnosys/Makefile.in"
> +"libgloss/Makefile.in")
> +   (("/bin/sh") (which "sh")))

Are they not taken care of by the ‘patch-shebangs’ phase?

Otherwise LGTM, thanks!

Ludo’.



Building Guix with Guile 2.1

2016-09-21 Thread Ludovic Courtès
Hello!

Nalaginrut reported that Guix fails to build with Guile 2.2, which was a
bit of a shame, hence commits e465d9e19087ab150f7e31f21c09e4a147b93b36
and 9d126aa2b504bb9fad536eac186805ff623e96be.

Now, the hack in build-aux/compile-all.scm doesn’t quite work with 2.2,
and it was already quite fragile.

So I think we need a different approach.  A more robust approach that
comes to mind would be to look at our module dependency graph (with help
from (guix modules)), run N Guile processes (instead of threads), and
have each of them build a subset of the graph.  It would essentially
require us to reimplement a subset of Make (or guix-daemon).

I’ve tried generating makefile rules from module dependencies.  That’s
pretty cool, but compilation of the package modules remains damn slow
(2nd patch attached).

What do people think?  Anyone has a better idea?

The attached patch allows us to build the modules sequentially but in
topologically-sorted order, which means we can avoid the ugly
load-modules-first workaround.  Still, it’s a bit too slow.

Ludo’.

diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm
index 7c937a0..3703187 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -21,6 +21,7 @@
  (system base message)
  (ice-9 match)
  (ice-9 threads)
+ (guix modules)
  (guix build utils))
 
 (define warnings
@@ -55,19 +56,15 @@
 (map string->symbol
  (string-split module-path #\/
 
-;;; To work around  (FIXME), we want to load all
-;;; files to be compiled first.  We do this via resolve-interface so that the
-;;; top-level of each file (module) is only executed once.
-(define (load-module-file file)
-  (let ((module (file->module file)))
-(format #t "  LOAD ~a~%" module)
-(resolve-interface module)))
+(define (module->file module)
+  (string-append srcdir "/"
+ (string-join (map symbol->string module) "/")
+ ".scm"))
 
-(define (compile-file* file output-mutex)
+(define (compile-file* file)
   (let ((go (scm->go file)))
-(with-mutex output-mutex
-  (format #t "  GUILEC   ~a~%" go)
-  (force-output))
+(format #t "  GUILEC   ~a~%" go)
+(force-output)
 (mkdir-p (dirname go))
 (with-fluids ((*current-warning-prefix* ""))
   (with-target host
@@ -78,12 +75,12 @@
 
 (match (command-line)
   ((_ . files)
-   (let ((files (filter file-needs-compilation? files)))
- (for-each load-module-file files)
- (let ((mutex (make-mutex)))
-   (par-for-each (lambda (file)
-   (compile-file* file mutex))
- files)
+   (for-each (lambda (module)
+   (let ((file (module->file module)))
+ (when (file-needs-compilation? file)
+   (compile-file* file
+ (source-module-closure
+  (map file->module files)
 
 ;;; Local Variables:
 ;;; eval: (put 'with-target 'scheme-indent-function 1)
diff --git a/guix/modules.scm b/guix/modules.scm
index 24f613f..837d150 100644
--- a/guix/modules.scm
+++ b/guix/modules.scm
@@ -118,14 +118,19 @@ module names.  Only modules that match SELECT? are considered."
  (visited  (set)))
 (match modules
   (()
-   (reverse result))
+   (values result visited))
   ((module rest ...)
(cond ((set-contains? visited module)
   (loop rest result visited))
  ((select? module)
-  (loop (append (dependencies module) rest)
-(cons module result)
-(set-insert module visited)))
+  (call-with-values
+  (lambda ()
+(loop rest result
+  (set-insert module visited)))
+(lambda (result visited)
+  (loop (dependencies module)
+(cons module result)
+visited
  (else
   (loop rest result visited)))
 
>From 9621aa00b4378036e906f58dc40e431748ba9790 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= 
Date: Wed, 21 Sep 2016 23:45:07 +0900
Subject: [PATCH] build: Generate makefile rules from .scm files.

* guix/modules.scm (source-module-dependencies): Export.
* build-aux/generate-make-rules.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
(AM_V_GUILEC, AM_V_GUILEC_, AM_V_GUILEC_0)
(GUILD_COMPILE_FLAGS): New variables.
(.scm.go): New rule.
(%.go, make-go): Remove.
(build-aux/module-rules.mk): New rule.  Add "-include" statement.
(CLEANFILES): Add this file.
---
 Makefile.am   | 45 +++--
 build-aux/generate-make-rules.scm | 71 +++
 guix/modules.scm  |  3 +-
 3 files changed, 108 insertions(+), 11 deletions(-)
 create mode 100644 build-aux/generate-make-rules.scm

diff --git a/Makefile.am 

Re: [PATCH 0/3] Add GCC cross compiler for arm-none-eabi.

2016-09-21 Thread Ludovic Courtès
Hi!

Ricardo Wurmus  skribis:

> here's a patch series I've been sitting on for about a year.  It's a compiler
> for bare-metal binaries targetting arm-none-eabi.  I'm using this successfully
> to compile ChibiOS for the Axoloti Core board.

Awesome, congrats!

> I've chosen to package the particular compiler version that is used for the
> Axoloti Core, so this is equivalent to what the GNU ARM Embedded Toolchain
> project provides with the "4.9-2015-q2-update" release (see
> https://launchpadlibrarian.net/209776344/release.txt).  I used SVN revisions
> because certain ARM patches are not part of the standard release tarball; they
> are only in SVN.
>
> I did update newlib to the very latest release, however, because it seems to
> work just fine.
>
> I don't know if it's okay to keep older versions of the cross compiler.  For
> version 4.9 the GNU ARM Embedded Toolchain project made another release
> "4.9-2015-q3-update".  It's probably better to at least use the upstream
> versions they used for that release instead of basing things on
> "4.9-2015-q2-update".

OK.  Too bad the released versions lack these bits.

> I have no idea if we can build our own version of 4.9 from a later revision,
> because I don't know exactly what patches I'd need to backport.  If somebody
> knows better I'd appreciate hints.

I don’t know, but I think it’s important to provide release tarballs
rather than intermediate revisions (except of course in the case of this
Axoloti cross-compiler).

Thanks!

Ludo’.



Re: [PATCH 1/3] gnu: Add arm-none-eabi cross compiler.

2016-09-21 Thread Ludovic Courtès
Hi!

Ricardo Wurmus  skribis:

> * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for "arm-eabi".
> * gnu/packages/embedded.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

[...]

> +;; Commit hashes and SVN revisions for xbinutils and xgcc are taken
> +;; from https://launchpadlibrarian.net/209776344/release.txt
> +
> +(define-public xbinutils-arm-none-eabi

[...]

> +  (arguments
> +   `(,@(substitute-keyword-arguments (package-arguments parent)
> + ((#:configure-flags flags)
> +  `(cons "--enable-multilib"
> + (delete "--disable-multilib" ,flags)

Why is multilib support needed?  Could you add a comment here?

Also, `,@lst is equivalent to lst.  :-)

> +   `(,@(substitute-keyword-arguments (package-arguments xgcc)
^^
Same here.

> + ((#:configure-flags flags)
> +  `(append (list "--enable-multilib"
> + "--with-newlib"
> + "--with-multilib-list=armv6-m,armv7-m,armv7e-m"
> + "--with-host-libstdcxx=-static-libgcc 
> -Wl,-Bstatic,-lstdc++,-Bdynamic -lm"
> + "--enable-plugins"
> + "--disable-decimal-float"
> + "--disable-libffi"
> + "--disable-libgomp"
> + "--disable-libmudflap"
> + "--disable-libquadmath"
> + "--disable-libssp"
> + "--disable-libstdcxx-pch"
> + "--disable-nls"
> + "--disable-shared"
> + "--disable-threads"
> + "--disable-tls"
> + "--with-gnu-as"
> + "--with-gnu-ld")
> +   (delete "--disable-multilib" ,flags)

Could you add comments explaining briefly where these flags come from?
Normally --with-gnu-* are not needed because ./configure should detect
that.

Thank you,
Ludo’.



Addition to tinycm patch-series (corrects patch 8)

2016-09-21 Thread ng0
From 5650d41f044b0261fc7b8e1e359fcb2100d79738 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Wed, 21 Sep 2016 11:42:20 +
Subject: [PATCH] gnu: Add tinycm.

* gnu/packages/web.scm (tinycm): New variable.
---
 gnu/packages/web.scm | 38 +-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 342262b..b91244f 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -13,7 +13,7 @@
 ;;; Copyright © 2016 Rene Saavedra 
 ;;; Copyright © 2016 Ben Woodcroft 
 ;;; Copyright © 2016 Clément Lassieur 
-;;; Copyright © 2016 ng0 
+;;; Copyright © 2016 ng0 
 ;;; Copyright © 2016 Arun Isaac 
 ;;;
 ;;; This file is part of GNU Guix.
@@ -45,6 +45,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system r)
   #:use-module (guix build-system trivial)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages documentation)
@@ -3287,6 +3288,41 @@ where data can be processed either in memory, on disk, or streaming via the
 callback or connection interfaces.")
 (license l:expat)))
 
+(define-public tinycm
+  (package
+(name "tinycm")
+(version "0.1.29")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "tinycm" version))
+   (sha256
+(base32
+ "0d8fsmhdv410bvz1plk32whdad5qq1ixi9a2wnnqx3dpv6cixi0y"
+(build-system python-build-system)
+(inputs
+ `(("python-boolexp" ,python-boolexp)
+   ("python-colorama" ,python-colorama)
+   ("python-colorlog" ,python-colorlog)
+   ("python-distro" ,python-distro)
+   ("python-networkx" ,python-networkx)
+   ("python-pyparsing" ,python-pyparsing)
+   ("python-requests" ,python-requests)
+   ("python-ruamel.yaml" ,python-ruamel.yaml)
+   ("python-tabulate" ,python-tabulate)
+   ("python-typing" ,python-typing)))
+(home-page "https://github.com/MartijnBraam/TinyCM;)
+(synopsis "Tiny Configuration Management tool")
+(description
+ "The Tiny Configuration Manager.  This is a very small
+configuration management tool for when you need Puppet but for a way
+smaller deployment.  This tool doesn't use a special DSL for defining
+your configuration, just plain YAML.  Configuration manifests are saved
+as a somename.cm.yml file and importable modules are somemodule.mod.yml.
+The configuration files cannot contain any executable code but mode
+complicated definitions can be created as python modules.")
+(license l:expat)))
+
 (define-public gumbo-parser
   (package
 (name "gumbo-parser")
-- 
2.10.0


-- 
  ng0


signature.asc
Description: PGP signature


[PATCH] Add tinycm.

2016-09-21 Thread ng0
This adds tinycm. But now that I am finished, I think this is not what I
wanted, I wanted http://tinycm.slitaz.org/ . I assumed without looking
at the source that this is just a fork.
Well, no damage in more packages I'd say.

From 8930f01a7953b7881fc505b8b4ed2084f37a86b0 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Tue, 20 Sep 2016 11:15:48 +
Subject: [PATCH 1/8] gnu: Add python-boolexp.

* gnu/packages/python.scm (python-boolexp): New variable.
---
 gnu/packages/python.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a186557..995332e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -499,6 +499,35 @@ John the Ripper).")
 (define-public python2-py-bcrypt
   (package-with-python2 python-py-bcrypt))
 
+(define-public python-boolexp
+  (package
+(name "python-boolexp")
+(version "0.1")
+(source (origin
+  (method url-fetch)
+  (uri (pypi-uri "boolexp" version))
+  (sha256
+   (base32
+"01rgzy6abpa4pscmcw4bmr5fl5ij4knff2y0ah73sg8lazhf1sdm"
+(build-system python-build-system)
+(arguments
+ `(#:tests? #f))
+(inputs
+ `(("python-pyparsing" ,python-pyparsing)))
+;; ("python2-pyandoc" ,python2-pyandoc) ; A pandoc wrapper, TODO: package it.
+(home-page "https://bitbucket.org/pfacka/boolexp;)
+(synopsis "Safe boolean expression evaluator")
+(description
+ "Boolexp provides \"safe\" evaluation of boolean expressions for use cases
+where eval might be dangerous.  Boolexp expressions are context-free and mimic
+Python sytax.  Only basic math opearations and data structures are provided.")
+(license license:expat)))
+
+(define-public python2-boolexp
+  (let ((boolexp (package-with-python2 python-boolexp)))
+(package (inherit boolexp)
+  (native-inputs
+   `(("python2-setuptools" ,python2-setuptools))
 
 (define-public python-paramiko
   (package
-- 
2.10.0

From 0f1c67cdd9043ea6a232816d6e217fd07f567a81 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Tue, 20 Sep 2016 13:44:20 +
Subject: [PATCH 2/8] gnu: Add python-colorlog.

* gnu/packages/python.scm (python-colorlog): New variable.
---
 gnu/packages/python.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 995332e..6561db7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -529,6 +529,33 @@ Python sytax.  Only basic math opearations and data structures are provided.")
   (native-inputs
`(("python2-setuptools" ,python2-setuptools))
 
+(define-public python-colorlog
+  (package
+(name "python-colorlog")
+(version "2.7.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "colorlog" version))
+   (sha256
+(base32
+ "0gpkja9zcplf29zmjcvix7pnic4xkbb1s0lkaab4k01r6np7s6cf"
+(build-system python-build-system)
+(inputs
+ `(("python-colorama" ,python-colorama)))
+(home-page "https://github.com/borntyping/python-colorlog;)
+(synopsis "Log formatting with colors")
+(description
+ "@code{colorlog.ColoredFormatter} is a formatter for use with
+the Python logging module that outputs records using terminal colors.")
+(license license:expat)))
+
+(define-public python2-colorlog
+  (let ((colorlog (package-with-python2 python-colorlog)))
+(package (inherit colorlog)
+  (native-inputs
+   `(("python2-setuptools" ,python2-setuptools))
+
 (define-public python-paramiko
   (package
 (name "python-paramiko")
-- 
2.10.0

From 4ab213cb4bdbfa8ebfde5027516411ddde6b5035 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Tue, 20 Sep 2016 14:25:41 +
Subject: [PATCH 3/8] gnu: Add python2-ruamel.ordereddict

* gnu/packages/python.scm (python2-ruamel.ordereddict): New variable.
---
 gnu/packages/python.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6561db7..faf2748 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -556,6 +556,34 @@ the Python logging module that outputs records using terminal colors.")
   (native-inputs
`(("python2-setuptools" ,python2-setuptools))
 
+(define-public python2-ruamel.ordereddict
+  (package
+(name "python2-ruamel.ordereddict")
+(version "0.4.9")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "ruamel.ordereddict" version))
+   (sha256
+(base32
+ "1xmkl8v9l9inm2pyxgc1fm5005yxm7fkd5gv74q7lj1iy5qc8n3h"
+(build-system python-build-system)
+;; XXX: https://bitbucket.org/ruamel/ordereddict/issues/2
+(arguments
+ `(#:python ,python-2))
+(inputs
+ `(("python2-setuptools" ,python2-setuptools)))
+(home-page 

Definite article in synopsis

2016-09-21 Thread John Darrington
I thought we had a policy that the synopsis field must not 
start with an article.  

However running 
grep 'synopsis  *"The'  *.scm

shows that we have many instances where this policy is
not followed.

Or have I   misunderstood something?

J'

-- 
Avoid eavesdropping.  Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.



signature.asc
Description: Digital signature


Re: [PATCH 1/2] gnu: Add femtolisp.

2016-09-21 Thread ng0
Ludovic Courtès  writes:

> Andreas Enge  skribis:
>
>> femtolisp fails on mips and arm:
>>http://hydra.gnu.org:3000/build/1472987/nixlog/2/tail-reload
>> with the message
>> In file included from llt/llt.h:6:0,
>>  from string.c:16:
>> llt/utils.h:27:4: error: #error "unknown architecture"
>>  #  error "unknown architecture"
>>
>> Should it be disabled there?
>
> Definitely.  It would be worth checking in that file the set of
> supported architectures, and putting them in ‘supported-platforms’.
>
> Ludo’.
>

Okay, I will fix it. In the meantime should the additional patch which
is unrelated to this change be applied.
-- 
  ng0



Re: [PATCH 1/2] gnu: Add perl-net-psyc.

2016-09-21 Thread ng0

> I will resend this patch with the fail-safe mirror I just added on
> sdf.org. This is okay with the others in group and very much welcomed.
> The shasum file is signed by my rsa opengpg key which is also used by
> some releases of Gnurl.

Where the group means other developers hacking around psyced.org,
secushare.org etc.
I also changed my email address, which will make its way into .mailmap
in a commit which happened in the "tinycm" patch series I am working
on.

From 33d8584709a74e20924743b2606158cacd5ed0c6 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Tue, 13 Sep 2016 10:20:31 +
Subject: [PATCH 1/2] gnu: Add perl-net-psyc.

* gnu/packages/psyc.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk  |   1 +
 gnu/packages/psyc.scm | 111 ++
 2 files changed, 112 insertions(+)
 create mode 100644 gnu/packages/psyc.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index e2cf40d..2957e16 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -293,6 +293,7 @@ GNU_SYSTEM_MODULES =\
   %D%/packages/pumpio.scm			\
   %D%/packages/pretty-print.scm			\
   %D%/packages/protobuf.scm			\
+  %D%/packages/psyc.scm \
   %D%/packages/pv.scm\
   %D%/packages/python.scm			\
   %D%/packages/qemu.scm\
diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
new file mode 100644
index 000..dd8a3eb
--- /dev/null
+++ b/gnu/packages/psyc.scm
@@ -0,0 +1,111 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 
+;;;
+;;; 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 psyc)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix build-system perl)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages web))
+
+;; The URL at sdf.org is a mirror, officially known. The host www.psyced.org
+;; is running on is sometimes (rarely) attacked and this ensure that the files
+;; are available.
+(define-public perl-net-psyc
+  (package
+(name "perl-net-psyc")
+(version "1.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (list
+ (string-append "http://perl.psyc.eu/;
+"perlpsyc-" version ".zip")
+ (string-append "http://krosos.sdf.org/static/unix/;
+"perlpsyc-" version ".zip")))
+   (file-name (string-append name "-" version ".zip"))
+   (sha256
+(base32
+ "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
+   ;; psycmp3 currently depends on MP3::List and rxaudio (shareware),
+   ;; we can add it back when this is no longer the case.
+   (snippet '(delete-file "contrib/psycmp3"
+(build-system perl-build-system)
+(inputs
+ `(("perl-curses" ,perl-curses)
+   ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (delete 'configure) ; No configure script
+ ;; There is a Makefile, but it does not install everything
+ ;; (leaves out psycion) and says
+ ;; "# Just to give you a rough idea". XXX: Fix it upstream.
+ (replace 'build
+   (lambda _
+ (zero? (system* "make" "manuals"
+ (replace 'install
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(doc (string-append out "/share/doc/perl-net-psyc"))
+(man1 (string-append out "/share/man/man1"))
+(man3 (string-append out "/share/man/man3"))
+(bin (string-append out "/bin"))
+(libpsyc (string-append out "/lib/psyc/ion"))
+(libperl (string-append out "/lib/perl5/site_perl/"
+,(package-version perl
+
+   (copy-recursively "lib/perl5" libperl)
+   (copy-recursively "lib/psycion" libpsyc)
+   (copy-recursively "bin" bin)
+   (install-file "cgi/psycpager" (string-append doc "/cgi"))
+   (copy-recursively 

Re: [PATCH] Update giac-xcas

2016-09-21 Thread Nicolas Goaziou
Hello,

Leo Famulari  writes:

> Unfortunately, the TLS certificate for
>  has expired, so I'm unable to
> verify the hash of the new source code.

It looks like they renewed their certificate.

Regards,

-- 
Nicolas Goaziou0x80A93738



[PATCH 1/2] gnu: wm: Add python-i3-py.

2016-09-21 Thread Ivan Vilata i Balaguer
Thanks to Brendan Tildesley, Leo Famulari, Hartmut Goebel and Alex Kost for
testing and advice.

* gnu/packages/wm.scm (python-i3-py, python2-i3-py): New variables.
---
 gnu/packages/wm.scm | 43 +++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 6275e6f..ea73d26 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -34,6 +34,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system haskell)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages haskell)
   #:use-module (gnu packages base)
   #:use-module (gnu packages pkg-config)
@@ -202,6 +203,48 @@ from scratch.  i3 is primarily targeted at advanced users 
and
 developers.")
 (license license:bsd-3)))
 
+(define-public python-i3-py
+  (package
+(name "python-i3-py")
+(version "0.6.5")
+(source
+ (origin
+   ;; The latest release is not tagged in Git nor has an entry in PyPi,
+   ;; but there is still a clear commit for it, and it's been the last one
+   ;; for years.
+   (method git-fetch)
+   (uri (git-reference
+ (url "https://github.com/ziberna/i3-py.git;)
+ (commit "27f88a616e9ecc340e7d041d3d00782f8a1964c1")))
+   (sha256
+(base32
+ "1nm719dc2xqlll7vj4c4m7mpjb27lpn3bg3c66gajvnrz2x1nmxs"))
+   (file-name (string-append name "-" version "-checkout"
+(build-system python-build-system)
+(arguments
+ `(#:tests? #f ; no tests yet
+   #:phases (modify-phases %standard-phases
+  (add-after 'install 'install-doc
+;; Copy readme file to documentation directory.
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((doc (string-append (assoc-ref outputs "out")
+"/share/doc/" ,name)))
+(install-file "README.md" doc)
+;; Avoid unspecified return value.
+#t))
+(propagated-inputs
+ `(("i3-wm" ,i3-wm)))
+(home-page "https://github.com/ziberna/i3-py;)
+(synopsis "Python interface to the i3 window manager")
+(description "This package allows you to interact from a Python program
+with the i3 window manager via its IPC socket.  It can send commands and other
+kinds of messages to i3, select the affected containers, filter results and
+subscribe to events.")
+(license license:gpl3+)))
+
+(define-public python2-i3-py
+  (package-with-python2 python-i3-py))
+
 (define-public xmonad
   (package
 (name "xmonad")
-- 
2.10.0


-- 
Ivan Vilata i Balaguer -- https://elvil.net/


signature.asc
Description: PGP signature


[PATCH 2/2] gnu: wm: Add quickswitch-i3.

2016-09-21 Thread Ivan Vilata i Balaguer
Thanks to Brendan Tildesley, Leo Famulari, Hartmut Goebel and Alex Kost for
testing and advice.

* gnu/packages/wm.scm (quickswitch-i3): New variable.
---
 .../patches/quickswitch-fix-dmenu-check.patch  | 32 +++
 gnu/packages/wm.scm| 45 ++
 2 files changed, 77 insertions(+)
 create mode 100644 gnu/packages/patches/quickswitch-fix-dmenu-check.patch

diff --git a/gnu/packages/patches/quickswitch-fix-dmenu-check.patch 
b/gnu/packages/patches/quickswitch-fix-dmenu-check.patch
new file mode 100644
index 000..9c6cca4
--- /dev/null
+++ b/gnu/packages/patches/quickswitch-fix-dmenu-check.patch
@@ -0,0 +1,32 @@
+Fix check for dmenu (open file mode, dependency on which).
+
+See .
+
+--- quickswitch-i3-2.2/quickswitch.py  2016-09-18 19:59:10.257765542 +0200
 quickswitch-i3-2.2/quickswitch.py  2016-09-21 10:43:01.277577819 +0200
+@@ -24,9 +24,10 @@
+ 
+ import argparse
+ import subprocess
+-import os
+ import re
+ 
++from distutils.spawn import find_executable
++
+ try:
+ import i3
+ except ImportError:
+@@ -37,11 +38,8 @@
+ 
+ def check_dmenu():
+ '''Check if dmenu is available.'''
+-devnull = open(os.devnull)
+-retcode = subprocess.call(["which", "dmenu"],
+-  stdout=devnull,
+-  stderr=devnull)
+-return True if retcode == 0 else False
++executable = find_executable("dmenu")
++return executable != None
+ 
+ 
+ def dmenu(options, dmenu):
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index ea73d26..af29c6e 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -59,6 +59,7 @@
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages suckless)
   #:use-module (guix download)
   #:use-module (guix git-download))
 
@@ -245,6 +246,50 @@ subscribe to events.")
 (define-public python2-i3-py
   (package-with-python2 python-i3-py))
 
+(define-public quickswitch-i3
+  (let ((commit "ed692b1e8f43b95bd907ced26238ce8ccb2ed28f")
+(revision "1")) ; Guix package revision
+  (package
+(name "quickswitch-i3")
+(version (string-append "2.2-" revision "."
+(string-take commit 7)))
+(source
+ (origin
+   ;; The latest commit is a few years old and just a couple commits
+   ;; after the last tagged release, so we use that latest commit
+   ;; instead of the release.
+   (method git-fetch)
+   (uri (git-reference
+ (url "https://github.com/proxypoke/quickswitch-for-i3.git;)
+ (commit commit)))
+   (sha256
+(base32
+ "0447077sama80jcdg5p64zjsvafmz5rbdrirhm1adcdjhkh6iqc5"))
+   (patches (search-patches "quickswitch-fix-dmenu-check.patch"))
+   (file-name (string-append name "-" version "-checkout"
+(build-system python-build-system)
+(arguments
+ `(#:tests? #f ; no tests yet
+   #:phases (modify-phases %standard-phases
+  (add-after 'install 'install-doc
+;; Copy readme file to documentation directory.
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((doc (string-append (assoc-ref outputs "out")
+"/share/doc/" ,name)))
+(install-file "README.rst" doc)
+;; Avoid unspecified return value.
+#t))
+(propagated-inputs
+ `(("python-i3-py" ,python-i3-py)
+   ("dmenu" ,dmenu)))
+(home-page "https://github.com/proxypoke/quickswitch-for-i3;)
+(synopsis "Quickly change to and locate windows in the i3 window 
manager")
+(description "This utility for the i3 window manager allows you to 
quickly
+switch to and locate windows on all your workspaces, using an interactive
+dmenu prompt.  It has since gained a lot of other functionality to make
+working with i3 even more efficient.")
+(license (license:non-copyleft "http://www.wtfpl.net/txt/copying/;)
+
 (define-public xmonad
   (package
 (name "xmonad")
-- 
2.10.0


-- 
Ivan Vilata i Balaguer -- https://elvil.net/


signature.asc
Description: PGP signature


[PATCH 0/2] Add quickswitch for i3 (third try)

2016-09-21 Thread Ivan Vilata i Balaguer
Hi, this is my third try at packaging [quickswitch][] for the i3 window
manager.  The main difference from the second iteration is in the
changes suggested by Alex Kost to update the Scheme code (I had copied
and pasted some outdated code from other Python packages).  I also used
a different patch for the ``dmenu`` program check.

I stuck to ``quickswitch-i3`` instead of ``quickswitch-for-i3`` since
it's the name used in PyPi and inside of the readme.

[quickswitch]: https://github.com/proxypoke/quickswitch-for-i3/

Thanks to Brendan Tildesley, Leo Famulari, Hartmut Goebel and Alex Kost
for testing, advice and patience!


Ivan Vilata-i-Balaguer (2):
  gnu: wm: Add python-i3-py.
  gnu: wm: Add quickswitch-i3.

 .../patches/quickswitch-fix-dmenu-check.patch  | 32 
 gnu/packages/wm.scm| 88 ++
 2 files changed, 120 insertions(+)
 create mode 100644 gnu/packages/patches/quickswitch-fix-dmenu-check.patch

-- 
2.10.0


-- 
Ivan Vilata i Balaguer -- https://elvil.net/


signature.asc
Description: PGP signature


Re: [PATCH 1/2] gnu: Add perl-net-psyc.

2016-09-21 Thread ng0
I will resend this patch with the fail-safe mirror I just added on
sdf.org. This is okay with the others in group and very much welcomed.
The shasum file is signed by my rsa opengpg key which is also used by
some releases of Gnurl.

ng0  writes:

> [ Unknown signature status ]
> From 8ff11b44ac9c2f3d9b6cd53497c903135df3f1ff Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Tue, 13 Sep 2016 10:20:31 +
> Subject: [PATCH 1/2] gnu: Add perl-net-psyc.
>
> * gnu/packages/psyc.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> ---
>  gnu/local.mk  |   2 +
>  gnu/packages/psyc.scm | 105 
> ++
>  2 files changed, 107 insertions(+)
>  create mode 100644 gnu/packages/psyc.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 5714009..c01f47a 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -5,6 +5,7 @@
>  # Copyright © 2013, 2014, 2015, 2016 Mark H Weaver 
>  # Copyright © 2016 Chris Marusich 
>  # Copyright © 2016 Kei Kebreau 
> +# Copyright © 2016 ng0 
>  #
>  # This file is part of GNU Guix.
>  #
> @@ -292,6 +293,7 @@ GNU_SYSTEM_MODULES =  \
>%D%/packages/pumpio.scm\
>%D%/packages/pretty-print.scm  \
>%D%/packages/protobuf.scm  \
> +  %D%/packages/psyc.scm \
>%D%/packages/pv.scm\
>%D%/packages/python.scm\
>%D%/packages/qemu.scm  \
> diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
> new file mode 100644
> index 000..ea1b513
> --- /dev/null
> +++ b/gnu/packages/psyc.scm
> @@ -0,0 +1,105 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2016 ng0 
> +;;;
> +;;; 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 psyc)
> +  #:use-module (guix download)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix packages)
> +  #:use-module (guix build-system perl)
> +  #:use-module (gnu packages)
> +  #:use-module (gnu packages ncurses)
> +  #:use-module (gnu packages perl)
> +  #:use-module (gnu packages web))
> +
> +(define-public perl-net-psyc
> +  (package
> +(name "perl-net-psyc")
> +(version "1.1")
> +(source
> + (origin
> +   (method url-fetch)
> +   (uri (string-append "http://perl.psyc.eu/;
> +   "perlpsyc-" version ".zip"))
> +   (file-name (string-append name "-" version ".zip"))
> +   (sha256
> +(base32
> + "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
> +   ;; psycmp3 currently depends on MP3::List and rxaudio (shareware),
> +   ;; we can add it back when this is no longer the case.
> +   (snippet '(delete-file "contrib/psycmp3"
> +(build-system perl-build-system)
> +(inputs
> + `(("perl-curses" ,perl-curses)
> +   ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
> +(arguments
> + `(#:phases
> +   (modify-phases %standard-phases
> + (delete 'configure) ; No configure script
> + ;; There is a Makefile, but it does not install everything
> + ;; (leaves out psycion) and says
> + ;; "# Just to give you a rough idea". XXX: Fix it upstream.
> + (replace 'build
> +   (lambda _
> + (zero? (system* "make" "manuals"
> + (replace 'install
> +   (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> +(doc (string-append out "/share/doc/perl-net-psyc"))
> +(man1 (string-append out "/share/man/man1"))
> +(man3 (string-append out "/share/man/man3"))
> +(bin (string-append out "/bin"))
> +(libpsyc (string-append out "/lib/psyc/ion"))
> +(libperl (string-append out "/lib/perl5/site_perl/"
> +,(package-version perl
> +
> +   (copy-recursively "lib/perl5" libperl)
> +   (copy-recursively 

Re: [PATCH]: opensmtpd, opensmtpd-extras, libasr.

2016-09-21 Thread ng0
Leo Famulari  writes:

> [ Unknown signature status ]
> On Fri, Sep 09, 2016 at 09:43:29PM +, ng0 wrote:
>> I commented mariadb + postgresql for now. I want some feedback first if
>> you think we should provide it this way, or if we should add both to
>> different outputs.
>> It would not make much difference in the size of the dependency graph
>> unless one creates a opensmtpd-extras-postgresql package for example
>> which just builds the postgresql related things.
>
> Is it even possible to split the package up like that? I don't think
> it's necessary anyways. I think we should pick a database (I'd choose
> postgresql) and add the package. If somebody wants to use mariadb, we
> can add it when they request it.

Okay, I agree. Can the committer makes the change locally, or should I
send in new versions?
-- 
  ng0



Re: [PATCH] small patchseries to add the irc bot limnoria.

2016-09-21 Thread ng0
Leo Famulari  writes:

> [ Unknown signature status ]
> On Sun, Sep 18, 2016 at 02:14:32PM +, ng0 wrote:
>> This is a small patchseries to add the bot limnoria, based on supybot.
>
> Thanks!
>
>> * gnu/packages/python.scm (python-socksipy-branch): New variable.
>
>> +(home-page "http://code.google.com/p/socksipy-branch/;)

Right, it is now https://code.google.com/archive/p/socksipy-branch/
until Google will finally to decide to shut down yet another product
people relied on.

>
> Error 404.
>
>> +(define-public python2-socksipy-branch
>> +  (package-with-python2
>> +   (strip-python2-variant python-socksipy-branch)))
>
> I don't think this needs strip-python2-variant. It should be enough to
> use package-with-python2.

I found this failed very often for me. I can try it again.

>> Subject: [PATCH 2/4] license: Add freebsd-doc.
>> 
>> * guix/licenses.scm (freebsd-doc): New variable.
>
> LGTM
>
>> Subject: [PATCH 3/4] gnu: Add python-feedparser.
>> 
>> * gnu/packages/python.scm (python-feedparser): New variable.
>
> LGTM
>
>> Subject: [PATCH 4/4] gnu: Add limnoria.
>> 
>> * gnu/packages/irc.scm (limnoria): New variable.
>
> LGTM. It would be nice to figure out how to run the tests, if they are
> meant to be run by distributions..
-- 
  ng0



Re: [PATCH 2/2] gnu: Add qtox.

2016-09-21 Thread Ricardo Wurmus

Brendan Tildesley  writes:

> I was able to compile and run, but the package technically failed with
>
> builder for `/gnu/store/3qh6k8lixrkdxvd3zfvapc1fdwl079lv-qtox-1.5.1.drv'
> failed to produce output path
> `/gnu/store/j4yg5hd5giss2fpivzdkrdlzp62x4qbq-qtox-1.5.1'
>
> I don't understand what produces this message. Can anyone explain. If I
> use guix build qtox -K I can find the "failed" build in /tmp/ and run it.

This means that nothing was installed to the given target directory.
Often this means that the “install” target is defective in some way.

~~ Ricardo




Re: [PATCH 42/42] gnu: Add darcs.

2016-09-21 Thread ng0
Leo Famulari  writes:

> On Sun, Sep 18, 2016 at 04:10:22PM +, ng0 wrote:
>> * gnu/packages/version-control.scm (darcs): New variable.
>
>> +;; Darcs has no https support: http://irclog.perlgeek.de/darcs/2016-09-17
>> +;; 
>> http://darcs.net/manual/Configuring_darcs.html#SECTION00440070
>> +;; and results of search engines will show that if the protocol is http, 
>> https
>> +;; is never mentioned.
>> +(define-public darcs
>> +  (package
>> +(name "darcs")
>> +(version "2.12.4")
>> +(source (origin
>> +  (method url-fetch)
>> +  (uri (string-append 
>> "https://hackage.haskell.org/package/darcs/;
>> +  "darcs-" version ".tar.gz"))
>> +  (sha256
>> +   (base32
>> +"0jfwiwl5k8wspciq1kpmvh5yap4japrf97s9pvhcybxxhaj3ds28"
>> +(build-system haskell-build-system)
>> +(arguments
>> + `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
>> +   "-fnetwork-uri" "-fhttp" "--flag=executable"
>> +   "--flag=library")
>> +   #:tests? #f)) ; 20 failing shell tests out of over 400
>
> When the test suite fails, it provides a path to the log of the test
> suite. I built with --keep-failed to inspect the log, but the file does
> not exist.
>
> Since the test suite is not passing, and there is no log of the tests,
> it's hard to decide what to do :)

Strange. Can you add a comment for this in the package, so we can fix it
eventually?

> Does this darcs package work for your use case? Does anyone have advice?
>

Additionally: Should the complete commented inputs go? They are parts of
base of ghc, but then again they display what ghc needs.

So far I was able to "darcs get http://pijul.org;, I have not signed up
at a darcs hosting to push, I thought someone will report a bug when a
feature of darcs is broken. My use case worked.

For all the other packages: The changes are okay for me.

For @ version: The error message Guix throws should be extended. I am
doing "-" versions, but I've also seen "@" versions in the code and was
confused by the message guix gave me so I switched them to @.

Thanks for reviewing this huge bundle!
-- 
  ng0



Re: [PATCH 27/42] gnu: Add ghc-findbin.

2016-09-21 Thread ng0
Leo Famulari  writes:

> On Sun, Sep 18, 2016 at 04:10:07PM +, ng0 wrote:
>> * gnu/packages/haskell.scm (ghc-findbin): New variable.
>
> This package is added twice.
>

Oh. Weird. Thanks for catching it.

-- 
  ng0



Re: [PATCH 08/42] gnu: Add ghc-regex-tdfa.

2016-09-21 Thread ng0
Leo Famulari  writes:

> On Sun, Sep 18, 2016 at 04:09:48PM +, ng0 wrote:
>> * gnu/packages/haskell.scm (ghc-regex-tdfa): New variable.
> From 1fefd08e258b197b73a92145f3ab9dff0964bd0d Mon Sep 17 00:00:00 2001
> From: Leo Famulari 
> Date: Tue, 20 Sep 2016 20:43:46 -0400
> Subject: [PATCH 2/8] ghc-regex-tdfa synopsis description fix
>
> ---
>  gnu/packages/haskell.scm | 6 --
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
> index 694fff1..eb103d1 100644
> --- a/gnu/packages/haskell.scm
> +++ b/gnu/packages/haskell.scm
> @@ -6611,9 +6611,11 @@ regular expressions.  Parsers can be built using 
> Applicative interface.")
> ("ghc-parsec" ,ghc-parsec)
> ("ghc-regex-base" ,ghc-regex-base)))
>  (home-page "https://github.com/ChrisKuklewicz/regex-tdfa;)
> -(synopsis "Replaces/Enhances Text.Regex")
> +(synopsis "POSIX extended regular expressions in Haskell.")
>  (description
> - "A new all Haskell \"tagged\" DFA regex engine, inspired by libtre")
> + "Regex-tdfa is a pure Haskell regular expression library implementing 
> POSIX
> +extended regular expressions.  It is a \"tagged\" DFA regex engine. It is
> +inspired by libtre")

There should be a "." at the end.

>  (license license:bsd-3)))
>  
>  (define-public ghc-regex-compat-tdfa
> -- 
> 2.10.0
>

-- 
  ng0



Re: [PATCH 2/2] gnu: Add qtox.

2016-09-21 Thread Brendan Tildesley
Andy Patterson 於 2016-09-15 05:30 寫道:
[...]
> +(arguments
> + '(#:phases
> +   (modify-phases %standard-phases
> + (replace 'configure
> +   (lambda* (#:key outputs #:allow-other-keys)
> + (zero?
> +  (system* "qmake"
> +   (string-append "PREFIX="
> +  (assoc-ref outputs "out"))
> + (add-after 'unpack 'fix-reproducibility-issues
> +   (lambda _
> + (substitute* "src/main.cpp"
> +   (("__DATE__") "\"\"")
> +   (("__TIME__") "\"\"")
> +   (("TIMESTAMP") "\"\""))
> + #t)
'unpack is before 'configure, so I think this should be put above
(replace 'configure. Also I noticed qmake outputs Makefile that contains
DTIMESTAMP= It doesn't look like it actually does anything though.
> +(home-page "https://qtox.github.io/;)
> +(synopsis "Tox chat client using Qt")
> +(description "qTox is a Tox client that follows the Tox design
> +guidelines.  It provides an easy to use application that allows you to
> +connect with friends and family without anyone else listening in.")
> +(license license:gpl3+)))
> +
>  (define-public pybitmessage
>(package
>  (name "pybitmessage")

I was able to compile and run, but the package technically failed with

builder for `/gnu/store/3qh6k8lixrkdxvd3zfvapc1fdwl079lv-qtox-1.5.1.drv'
failed to produce output path
`/gnu/store/j4yg5hd5giss2fpivzdkrdlzp62x4qbq-qtox-1.5.1'

I don't understand what produces this message. Can anyone explain. If I
use guix build qtox -K I can find the "failed" build in /tmp/ and run it.




[PATCH 1/1] gnu: webkitgtk: Update to 2.14.0.

2016-09-21 Thread Leo Famulari
* gnu/packages/webkit.scm (webkitgtk): Update to 2.14.0.
---
 gnu/packages/webkit.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 4e3ceb4..38d 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -53,14 +53,14 @@
 (define-public webkitgtk
   (package
 (name "webkitgtk")
-(version "2.12.5")
+(version "2.14.0")
 (source (origin
   (method url-fetch)
   (uri (string-append "https://www.webkitgtk.org/releases/;
   name "-" version ".tar.xz"))
   (sha256
(base32
-"0h0wig413399wws6l88mn1nnjbqb42vb55yvz8az39b4p1a7h53b"
+"02paj0anbnqn1z3hn5c4csmq9nga995rzagiplj3sjk2dj1ss4q5"
 (build-system cmake-build-system)
 (arguments
  '(#:tests? #f ; no tests
-- 
2.10.0




[PATCH 0/1] webkitgtk 2.14.0 update

2016-09-21 Thread Leo Famulari
Shotwell works with this on x86_64.

Leo Famulari (1):
  gnu: webkitgtk: Update to 2.14.0.

 gnu/packages/webkit.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.10.0