Re: Test failure when building libarchive-3.1.2

2015-11-20 Thread Jan Synáček
On Fri, Nov 20, 2015 at 11:47 PM, Ludovic Courtès  wrote:
> Jan Synáček  skribis:
>
>> On Fri, Nov 20, 2015 at 2:51 PM, Ludovic Courtès  wrote:
>>> Jan Synáček  skribis:
>>>
 On Sat, Nov 14, 2015 at 12:40 PM, Ludovic Courtès  wrote:
>
> [...]
>
> It would be nice to see if this systematically fails.  If it is
> non-deterministic, we should build it with --keep-failed until it fails
> (removing successful builds with ‘guix gc -d’), collect useful info from
> the build tree, and debug.
>
> [...]
>
>>> I noticed that libarchive uses ‘readdir’ calls as-is, without sorting
>>> directory entries afterwards.  Thus, the order of directory entries is
>>> effectively non-deterministic and may change depending on the phase of
>>> the moon.
>>>
>>> This has been reported at:
>>>
>>>   https://github.com/libarchive/libarchive/issues/602
>>>
>>> Could you add the patch that’s given at that URL to the ‘patches’ field
>>> or libarchive’s ‘origin’ form and see if the problem shows up again,
>>> preferably building several times in a row?
>>
>> I built it once and it passed (note that it failed *everytime* I
>> wanted to build it).
>
> So this patch appears to solve the issue?
>
>> Maybe a dumb question, but how do I force a rebuild of an already
>> built package?:)
>
> You can’t rebuild packages because build processes are assumed to be
> deterministic.  However, you can delete a build result with ‘gc -d’, as
> mentioned above, and rebuild it afterwards.

So I've built the package several times and it worked every time. I don't even
think the build was failing non-deterministically, because, as the
commit message
of the patch explains, the unpatched bsdtar was trying to put things
like SELinux
contexts into the archive, which resulted in an archive with bigger size than
anticipated. And since I'm running guix on Fedora, I probably hit the
SELinux problem.

Thank you for helping out!

Cheers,
-- 
Jan Synáček



[PATCHES] Update orfm and package test requirements.

2015-11-20 Thread Ben Woodcroft
Perhaps this set could be seen as a little self-serving given I'm the 
author, though at least ruby-systemu is more widely used.


Thanks in advance for review.
ben
>From 6aad034b3d40bffe2bec35ed3f7df7ce1537217d Mon Sep 17 00:00:00 2001
From: Ben Woodcroft 
Date: Sat, 21 Nov 2015 10:02:11 +1000
Subject: [PATCH 1/3] gnu: Add ruby-systemu.

* gnu/packages/ruby.scm (ruby-systemu): New variable.
---
 gnu/packages/ruby.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7c12421..ad20b73 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2060,3 +2060,33 @@ programs to concentrate on the implementation of network protocols.  It can be
 used to create both network servers and clients.")
 (home-page "http://rubyeventmachine.com";)
 (license (list license:ruby license:gpl3 ; GPLv3 only AFAICT
+
+(define-public ruby-systemu
+  (package
+(name "ruby-systemu")
+(version "2.6.5")
+(source
+ (origin
+   (method url-fetch)
+   (uri (rubygems-uri "systemu" version))
+   (sha256
+(base32
+ "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1"
+(build-system ruby-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-before 'check 'patch-version
+   (lambda _
+ (substitute* "Rakefile"
+   (("  This.lib = lib")
+"  This.lib = 'systemu'")
+   ((" version = ENV\\['VERSION'\\]")
+(string-append "version='" ,version "'"
+(synopsis "Capture of stdout/stderr and handling of child processes")
+(description
+ "Systemu can be used on any platform to return status, stdout, and stderr
+of any command.  Unlike other methods like open3/popen4 there is no danger of
+full pipes or threading issues hanging your process or subprocess.")
+(home-page "https://github.com/ahoward/systemu";)
+(license license:ruby)))
-- 
2.1.4

>From b1981255c06271c8cd4f3fd5291414034714cd2f Mon Sep 17 00:00:00 2001
From: Ben Woodcroft 
Date: Sat, 21 Nov 2015 10:03:41 +1000
Subject: [PATCH 2/3] gnu: Add ruby-bio-commandeer.

* gnu/packages/ruby.scm (ruby-bio-commandeer): New variable.
---
 gnu/packages/ruby.scm | 36 
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ad20b73..c964fe3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2090,3 +2090,39 @@ of any command.  Unlike other methods like open3/popen4 there is no danger of
 full pipes or threading issues hanging your process or subprocess.")
 (home-page "https://github.com/ahoward/systemu";)
 (license license:ruby)))
+
+(define-public ruby-bio-commandeer
+  (package
+(name "ruby-bio-commandeer")
+(version "0.1.2")
+(source
+ (origin
+   (method url-fetch)
+   (uri (rubygems-uri "bio-commandeer" version))
+   (sha256
+(base32
+ "061jxa6km92qfwzl058r2gp8gfcsbyr7m643nw1pxvmjdswaf6ly"
+(build-system ruby-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (replace 'check
+   ;; Run test without calling 'rake' so that jeweler is
+   ;; not required as an input.
+   (lambda _
+ (zero? (system* "rspec" "spec/bio-commandeer_spec.rb")))
+(propagated-inputs
+ `(("ruby-bio-logger" ,ruby-bio-logger)
+   ("ruby-systemu" ,ruby-systemu)))
+(native-inputs
+ `(("bundler" ,bundler)
+   ("ruby-rspec" ,ruby-rspec)))
+(synopsis "Simplified running of shell commands from within Ruby")
+(description
+ "Bio-commandeer is a dead simple opinionated method of running shell
+commands from within Ruby.  The advantage of bio-commandeer over other methods
+of running external commands is that when something goes wrong, the error
+message that is reported gives extra detail to ease debugging.")
+(home-page
+ "http://github.com/wwood/bioruby-commandeer";)
+(license license:expat)))
-- 
2.1.4

>From 1fe31024e6c78ab7bbdfe7be2c2ac8f4ec1db447 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft 
Date: Sat, 21 Nov 2015 10:37:34 +1000
Subject: [PATCH 3/3] gnu: orfm: Update to 0.4.4.

* gnu/packages/bioinformatics.scm (orfm): Update to 0.4.4.
[arguments]: Run intended tests.
[inputs]: Add inputs required for tests.
---
 gnu/packages/bioinformatics.scm | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 35cec1e..24a1992 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1878,7 +1878,7 @@ that a read originated from a particular isoform.")
 (define-public orfm
   (package
 (name "orfm")
-(version "0.4.1")
+(version "0.4.4")
 (source (origin
   (method url-fetch)
   (uri (string-append

[PATCH] gnu: parted: Update to 3.2.

2015-11-20 Thread Mathieu Lirzin
>From a43f69d7f57df7ca2fb156ab75a845a68cc43d02 Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin 
Date: Sat, 21 Nov 2015 01:07:03 +0100
Subject: [PATCH] gnu: parted: Update to 3.2.

* gnu/packages/disk.scm (parted): Update to 3.2.
[inputs]: Add lvm2 and remove check.  Replace readline-6.2 with its
latest version.
[native-inputs]: Add perl and python for the tests.
[arguments]: Use `modify-phases' and adapt to the new tests.
[home-page]: Use https.
---
 gnu/packages/disk.scm | 61 +++
 1 file changed, 28 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index a3ecab2..011342f 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013 Nikita Karetnikov 
+;;; Copyright © 2015 Mathieu Lirzin 
 ;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
@@ -22,9 +23,10 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
-  #:use-module (gnu packages check)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages guile)
   #:use-module ((gnu packages compression)
@@ -33,39 +35,32 @@
 (define-public parted
   (package
 (name "parted")
-(version "3.1")
-(source
- (origin
-  (method url-fetch)
-  (uri (string-append "mirror://gnu/parted/parted-"
-  version ".tar.xz"))
-  (sha256
-   (base32
-"05fa4m1bky9d13hqv91jlnngzlyn7y4rnnyq6d86w0dg3vww372y"
+(version "3.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnu/parted/parted-"
+  version ".tar.xz"))
+  (sha256
+   (base32
+"1r3qpg3bhz37mgvp9chsaa3k0csby3vayfvz8ggsqz194af5i2w5"
 (build-system gnu-build-system)
-(arguments `(#:configure-flags '("--disable-device-mapper")
- #:phases (alist-cons-before
-   'configure 'fix-mkswap
-   (lambda* (#:key inputs #:allow-other-keys)
- (let ((util-linux (assoc-ref inputs
-  "util-linux")))
-   (substitute*
-   "tests/t9050-partition-table-types.sh"
- (("mkswap")
-  (string-append util-linux "/sbin/mkswap")
-   %standard-phases)))
-(inputs
- ;; XXX: add 'lvm2'.
- `(("check" ,check)
-
-   ;; With Readline 6.3, parted/ui.c fails to build because it uses the
-   ;; now undefined 'CPPFunction' type.
-   ("readline" ,readline-6.2)
-
-   ("util-linux" ,util-linux)))
-(native-inputs
- `(("gettext" ,gnu-gettext)))
-(home-page "http://www.gnu.org/software/parted/";)
+(arguments `(#:phases
+ (modify-phases %standard-phases
+   (add-after
+'unpack 'fix-locales-and-python
+(lambda* (#:key inputs #:allow-other-keys)
+  (substitute* "tests/t0251-gpt-unicode.sh"
+(("C.UTF-8") "en_US.UTF-8")) ;not in Glibc locales
+  (substitute* "tests/msdos-overlap"
+(("/usr/bin/python") (which "python"
+(inputs `(("lvm2"   ,lvm2)
+  ("readline"   ,readline)
+  ("util-linux" ,util-linux)))
+(native-inputs `(("gettext" ,gnu-gettext)
+ ;; For the tests.
+ ("perl",perl)
+ ("python"  ,python-2)))
+(home-page "https://www.gnu.org/software/parted/";)
 (synopsis "Disk partition editor")
 (description
  "GNU Parted is a package for creating and manipulating disk partition
-- 
2.6.2




Re: Adding build status to the package list table

2015-11-20 Thread Ludovic Courtès
Roel Janssen  skribis:

> Ludovic Courtès writes:
>
>> Roel Janssen  skribis:
>>
>>> The list of packages included in Guix [1] provides links to the build
>>> status of each package in the details.  I would like to provide this
>>> information in a column after "Package details", either as an icon or as
>>> a count (e.g. 3/4 builds succeeded).  This provides a nicer overview for
>>> the current status of the package.
>>
>> That’s appealing.  However, it entails NUM-ARCHES × NUM-PACKAGES HTTP
>> requests, just when loading the page.  That seems unreasonable.
>
> Maybe we could instead determine the build status at the time we
> generate the website's package list?

IMO it wouldn’t be very useful since the list is updated once a day.

Ludo’.



Re: Test failure when building libarchive-3.1.2

2015-11-20 Thread Ludovic Courtès
Jan Synáček  skribis:

> On Fri, Nov 20, 2015 at 2:51 PM, Ludovic Courtès  wrote:
>> Jan Synáček  skribis:
>>
>>> On Sat, Nov 14, 2015 at 12:40 PM, Ludovic Courtès  wrote:

[...]

 It would be nice to see if this systematically fails.  If it is
 non-deterministic, we should build it with --keep-failed until it fails
 (removing successful builds with ‘guix gc -d’), collect useful info from
 the build tree, and debug.

[...]

>> I noticed that libarchive uses ‘readdir’ calls as-is, without sorting
>> directory entries afterwards.  Thus, the order of directory entries is
>> effectively non-deterministic and may change depending on the phase of
>> the moon.
>>
>> This has been reported at:
>>
>>   https://github.com/libarchive/libarchive/issues/602
>>
>> Could you add the patch that’s given at that URL to the ‘patches’ field
>> or libarchive’s ‘origin’ form and see if the problem shows up again,
>> preferably building several times in a row?
>
> I built it once and it passed (note that it failed *everytime* I
> wanted to build it).

So this patch appears to solve the issue?

> Maybe a dumb question, but how do I force a rebuild of an already
> built package?:)

You can’t rebuild packages because build processes are assumed to be
deterministic.  However, you can delete a build result with ‘gc -d’, as
mentioned above, and rebuild it afterwards.

HTH,
Ludo’.



Re: Test failure when building libarchive-3.1.2

2015-11-20 Thread Ludovic Courtès
Jan Synáček  skribis:

> On Fri, Nov 20, 2015 at 2:44 PM, Jan Synáček  wrote:

[...]

>> I debugged this and the upstream patch
>> https://github.com/libarchive/libarchive/commit/b539b2e597b566fe3c4b49cb61c9eef83e5e052d
>> fixes the problem. You will probably want to add it to the build process.
>
> I just realized I need to do this locally as well to fix the
> compilation...:) How do I modify the build process and add the patch
> to the store?

Just list the patch in the ‘patches’ field of libarchive.  See for
instance ‘grep’ in gnu/packages/base.scm for an example.

Ludo’.



Re: Adding build status to the package list table

2015-11-20 Thread Pjotr Prins
> Maybe we could instead determine the build status at the time we
> generate the website's package list?

Or trigger the page generation on a build. I don't think that will be
a problem for Hydra compared to other activity ;)

Pj.
-- 



Re: [PATCH] Add Synfig Studio.

2015-11-20 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> Ricardo Wurmus  skribis:
>
>> From 14040badd5312c8e093604bd3c8ddc6287ba82b1 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus 
>> Date: Mon, 16 Nov 2015 18:28:22 +0100
>> Subject: [PATCH 1/5] gnu: Add libxml++.
>>
>> * gnu/packages/gnome.scm (libxml++): New variable.
>
> [...]
>
>> +(synopsis "C++ wrapper for XML parser library @code{libxml2}")
>> +(description
>> + "This package provides a C++ wrapper for the XML parser library
>> +@code{libxml2}.")
>
> I’d remove the @code here because that’s really the project’s name, and
> because Texinfo markup is not supported in synopses (yet?).  :-)

Okay.

>> From 1e783fab150edebc15f47f55019785398d469113 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus 
>> Date: Mon, 16 Nov 2015 18:32:38 +0100
>> Subject: [PATCH 3/5] gnu: Add ETL.
>>
>> * gnu/packages/animation.scm: New file.
>> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
>
> [...]
>
>> +(description
>> + "ETL is a multi-platform class and template library designed to add new
>
> s/multi-platform//g

Okay.

>> From 44da7f71a5420260a82499bca355a784f7306236 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus 
>> Date: Mon, 16 Nov 2015 18:34:30 +0100
>> Subject: [PATCH 4/5] gnu: Add Synfig.
>>
>> * gnu/packages/animation.scm (synfig): New variable.
>> * gnu/packages/patches/synfig-build-fix.patch: New file.
>> * gnu-system.am (dist_patch_DATA): Add it.
>
> [...]
>
>> +++ b/gnu/packages/patches/synfig-build-fix.patch
>> @@ -0,0 +1,59 @@
>> +Taken from here:
>> +https://projects.archlinux.org/svntogit/community.git/plain/trunk/build-fix.patch?h=packages/synfig
>
> Maybe just add “Allow Synfig to build in C++11 mode.” (?)

Done.

>> From 2a89ed3fa602b66f30feec8b70ffcb52183d7f39 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus 
>> Date: Mon, 16 Nov 2015 18:36:40 +0100
>> Subject: [PATCH 5/5] gnu: Add Synfig Studio.
>>
>> * gnu/packages/animation.scm (synfigstudio): New variable.
>
> [...]
>
>> + (add-after 'unpack 'adapt-to-libxml++-changes
>> +  (lambda _
>> +(substitute* "src/synfigapp/pluginmanager.cpp"
>> +  (("xmlpp::Node\\* n =")"const xmlpp::Node* n =")
>> +  (("xmlpp::Node::NodeList") "xmlpp::Node::const_NodeList"))
>> +#t))
>> + (add-after 'unpack 'adapt-to-libsigc++-changes
>> +  (lambda _
>> +;; Some files are ISO-8859-1 encoded.
>> +(with-fluids ((%default-port-encoding #f))
>> +  (substitute* (find-files "src/" "\\.(cpp|h)$")
>> +(("#include ")
>> + "#include ")
>> +(("#include ")
>> + "#include ")
>> +(("#include ")
>> + "#include ")))
>
> Maybe these should go to a ‘snippet’ since we’re really changing the
> source here.  WDYT?

Yes, a snippet is better here.

>> + (add-before 'configure 'set-flags
>> +  (lambda _
>> +;; Compile with C++11, required by libsigc++.
>> +(setenv "CXXFLAGS" "-D__STDC_CONSTANT_MACROS -std=gnu++11")
>
> Am I right that this cannot go in #:configure-flags because of
> whitespaces?  Otherwise that would be the preferred way, because the
> effect of the environment variable could be broader.

Oh, this was supposed to go to configure-flags.  I just rebuilt it with
this change and it works.  STDC_CONSTANT_MACROS was not needed after
all.

I pushed the patches with the above changes.  Thanks for taking the time
to review!

~~ Ricardo




Re: HI ... warning: failed to install locale: Invalid argument -2

2015-11-20 Thread Ricardo Wurmus
Hi,

> $ guix package -i glibc-locales
>
> ... fails just as a bare guix does ...

What do you mean by that?  What is the exact error message you see?  The
warning you posted earlier is harmless, as far as I know.

~~ Ricardo




Re: proposal: (define (find-guix-packages list-of-names) ... )

2015-11-20 Thread Florian Paul Schmidt
On Mon, 16 Nov 2015 21:06:00 +0100
l...@gnu.org (Ludovic Courtès) wrote:

> Sure.  I think we would need a new section for (gnu packages), maybe
> “Distribution API” under “GNU Distribution”?  It would describe
> ‘fold-packages’, ‘specification->package’, and so on.

Let's start smaller :) [I'm still fighting with emacs - I gave it many 
chances over the years, but we'll never find true happy puppies' love -
and a few other things...]

--snip
diff --git a/doc/guix.texi b/doc/guix.texi
index 3b6955c..32bedd7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -5482,6 +5482,25 @@ above, such as @code{host-name} and @code{bootloader}, 
are mandatory.
 Others, such as @code{packages} and @code{services}, can be omitted, in
 which case they get a default value.
 
+The attentive reader might have noticed that the @code{tcpdump} package
+is defined in the @code{gnu packages admin} module. While it is generally
+encouraged to install packages in users' profiles it might be
+necessary to install a few more packages in the base system. Maintaining
+the list of used modules (and figuring out which are the correct
+ones) can become a burden and error prone. But the system configuration
+is a lisp program, so we can make use of the power of lisp to automate
+this task. The @code{gnu packages} module provides the
+@code{specification->package} procedure which can help us here:
+
+@lisp
+  ;; Globally-installed packages.
+  (packages
+ (append
+(map (specification->package
+`("tcpdump" "emacs" "htop" "tmux")))
+%base-packages))
+@end lisp
+
 @vindex %base-packages
 The @code{packages} field lists
 packages that will be globally visible on the system, for all user
--snip


guix.texi.diff
Description: Binary data


Re: HI ... warning: failed to install locale: Invalid argument -3

2015-11-20 Thread Ricardo Wurmus

john francis lee  writes:

> jfl@wsdeb:~$ ldd --version
> ldd (Debian GLIBC 2.19-18+deb8u1) 2.19
> Copyright (C) 2014 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> Written by Roland McGrath and Ulrich Drepper.
>
> ... all the documentation talks about 2.21 and 2.22. I guess debian
> jessie is already an antique?

I don’t think it matters much.  Guix doesn’t use the host system’s
glibc.  Guix programmes will only use the glibc in the store.  To make
locales work you’d have to install the “glibc-locales” (or
“glibc-utf8-locales”) package (as you tried according to your previous
message) and then set GUIX_LOCPATH to tell the Guix glibc where to find
the locale data.

Debian’s glibc will not be affected by this.

~~ Ricardo




Re: [PATCH] Update Guitarix to 0.34.0.

2015-11-20 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> Ricardo Wurmus  skribis:
>
>> The latest version unfortunately depends on Webkit, so I had to add it
>> to the inputs.  The only way to avoid webkit would be to pass the
>> “--lv2-only” configure flag, but this would disable the standalone
>> version of guitarix.
>
> Oh well.
>
>> From b921c72fe6abfb3b0066db6aa85119217aade0e5 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus 
>> Date: Thu, 19 Nov 2015 17:11:46 +0100
>> Subject: [PATCH] gnu: guitarix: Update to 0.34.0.
>>
>> * gnu/packages/patches/guitarix-c++11: Remove file.
>> * gnu/packages/audio.scm (guitarix): Update to 0.34.0.
>> [source]: Remove patch.
>> [inputs]: Add webkitgtk/gtk+-2.
>
> OK.

I forgot to remove the patch from gnu-system.am.  I’ll amend the commit
(+ message) and then push.

Thanks!

~~ Ricardo




Re: Adding build status to the package list table

2015-11-20 Thread Roel Janssen
Ludovic Courtès writes:

> Roel Janssen  skribis:
>
>> The list of packages included in Guix [1] provides links to the build
>> status of each package in the details.  I would like to provide this
>> information in a column after "Package details", either as an icon or as
>> a count (e.g. 3/4 builds succeeded).  This provides a nicer overview for
>> the current status of the package.
>
> That’s appealing.  However, it entails NUM-ARCHES × NUM-PACKAGES HTTP
> requests, just when loading the page.  That seems unreasonable.

Maybe we could instead determine the build status at the time we
generate the website's package list?

That would entail NUM-ARCHES × NUM-PACKAGES HTTP requests just once
every time we generate the page.   I believe this is once a day.  Can
Hydra handle this amount of HTTP requests?



Re: Adding build status to the package list table

2015-11-20 Thread Mark H Weaver
Roel Janssen  writes:

> Eric Bavier writes:
>
>> On 2015-11-19 13:57, Mark H Weaver wrote:
>>> Roel Janssen  writes:
>>> 
 The list of packages included in Guix [1] provides links to the build
 status of each package in the details.  I would like to provide this
 information in a column after "Package details", either as an icon or 
 as
 a count (e.g. 3/4 builds succeeded).  This provides a nicer overview 
 for
 the current status of the package.
>>> 
>>> Sounds good to me, but I'm not sure that either a single icon or a 
>>> count
>>> will be very useful.
>>> 
>>> We currently support four architectures: x86_64-linux, i686-linux,
>>> armhf-linux, and mips64el-linux.  There will likely be a fifth for the
>>> Hurd as well.
>>> 
>>> If the status is to be useful, users will need to see at a glance if 
>>> the
>>> package builds on their chosen architecture.  A count like 2/4 or 3/4
>>> doesn't tell me whether the package works on armhf.
>>> 
>>> So, I think we'd actually need one new column for each supported
>>> architecture.  I could imagine more clever solutions as well, but
>>> somehow it needs to indicate *which* architectures the package builds
>>> on, not just how many.
>>
>> I agree.
>>
>> Could we add a small icon in the expanded view next to the current links 
>> that indicate pass/fail for that architecture?  This could possibly in 
>> addition to the summary count in the collapsed view.
>
> I think that would be a good idea. Adding icons per architecture next to
> the current links in the expanded view.
>
> Then have one column with an indicator for overall success or
> failure.

What does "overall success or failure" mean?  If a package builds
successfully on i686 and armhf, and fails on x86_64 and mips64el, does
that count as an "overall success" or an "overall failure"?

> Whether this is a count or an icon, I don't know which would be
> better. I think visually, an icon would be better. A count would be a
> little more informing.
>
> Having four (and in the future five) columns, each with an icon, would
> be too much I think.

I'm sorry if it seems like too much, but for the reasons I gave above, a
count or boolean is essentially useless, because it doesn't tell people
whether it works on their architecture of interest.

  Mark



Re: thesis: guixsd should provide /usr/bin/env

2015-11-20 Thread Andy Wingo
On Fri 20 Nov 2015 14:00, l...@gnu.org (Ludovic Courtès) writes:

> Should we add a --fhs or --/usr/bin/env option to simplify this?

Oh my goodness this would be really nice!  Exposing the profile in /usr
would be quite interesting.

Andy



Re: bug#21410: Environment containers

2015-11-20 Thread Ludovic Courtès
What’s the status of this now?  I would think b7d48312 addressed at
least part of it?

Alex: Are you still getting test failures with current ‘master’?

TIA,
Ludo’.



HI ... warning: failed to install locale: Invalid argument -2

2015-11-20 Thread john francis lee
I've read the fine manual abit ...

7.2.6.1 Locale Data Compatibility Considerations

... seems to be about what to do to avoid this happening in the first
place, refers to

2.6.1 Locales

which offers a solution that seems to require a working guix to fix a
broken guix ...

$ guix package -i glibc-locales

... fails just as a bare guix does ...

I'll continue looking ...



HI ... warning: failed to install locale: Invalid argument

2015-11-20 Thread john francis lee
Hi,

I'm installing guix on my debian jessie system and have gotten to where
I ought to be able to type 'guix', I think, but I get ...

jfl@wsdeb:/tmp$ guix
warning: failed to install locale: Invalid argument
guix: missing command name
Try `guix --help' for more information.

What locale can I need?

jfl@wsdeb:/tmp$ locale
LANG=en_US.utf8
LANGUAGE=en_US:en
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

I'm excited about guix. I really don't like the way the big linux
distributions are going ... systemd scares the hell out of me. I looked
at devuan, but you seem further along, and your changes seem more
radicle. I feel sure it's the NSA behind the changes in linux, they're
just up the road from red hat.

And the idea of a really free system - no blobs in the kernel - appeals
to me as well. The entire world is hostile now, and I trust no one.
Nobody but GNU, I guess :) I used to trust debian. So disheartening to
see old, revered friends go bad.

So I'd like this to work out. I tried gentoo ... but they are not very
friendly ... and a functional installation system sounds great ... a
real, serious solution to the problem.

So ... I'd like to get this running :) I watched ... Ludos? ... video at
Inria and he said there were friendly people here. I'd rather send this
sort of question to the user list ... but there is none.

In any case I hope you continue and clean up the mess that linux is fast
becoming. At least from my perspective.



HI ... warning: failed to install locale: Invalid argument -3

2015-11-20 Thread john francis lee
Hi again,

My debian jessie says ...

jfl@wsdeb:~$ ldd --version
ldd (Debian GLIBC 2.19-18+deb8u1) 2.19
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

... all the documentation talks about 2.21 and 2.22. I guess debian
jessie is already an antique?

Really sorry to have cluttered up your list. So long.



Re: [PATCH] Add ruby-net-ssh (and 12 other gems)

2015-11-20 Thread Ricardo Wurmus

Thompson, David  writes:

> On Fri, Nov 20, 2015 at 6:23 AM, Ricardo Wurmus
>  wrote:
>> Hi Guix,
>>
>> I’ve finally packaged yet another top runtime dependency of buildr[1]
>> (which I hope we can use to build maven): ruby-net-ssh.
>>
>> It depends on a number of gems, including the popular ruby-mocha and
>> ruby-redcarpet.
>
> Awesome!  All of these look good except for the ruby-blankslate patch,
> whose 'check phase always passes because you return #t after running
> the test suite.  OK to push with this phase fixed.

Oh, thanks for catching this!  I fixed the phase and pushed the patches.

~~ Ricardo



Re: [PATCH] gnu: Add emulation-station.

2015-11-20 Thread Ludovic Courtès
David Thompson  skribis:

> From 83cfad5d6e182ce1b31a983a10d109b087642537 Mon Sep 17 00:00:00 2001
> From: David Thompson 
> Date: Wed, 18 Nov 2015 23:17:02 -0500
> Subject: [PATCH] gnu: Add emulation-station.
>
> * gnu/packages/games.scm (emulation-station): New variable.

OK, thanks!

Ludo’.



Re: avr-gcc

2015-11-20 Thread Ludovic Courtès
"Thompson, David"  skribis:

> Not quite.  The avr-gcc build only provides a single version of
> libgcc.a, whereas Debian's avr-gcc provides a separate libgcc.a for
> each supported AVR family (avr2, avr3, avr35, etc.)  Mark thought it
> might be the fault of the --disable-multilib configure flag, so I
> removed it but it didn't solve anything.  I'm not sure what to do now.
> I have no idea what flag or patch could be signalling to the gcc build
> system that it shouldn't try to compile libraries for all of the
> various AVR models.

Are you sure the removal of --disable-multilib was effective?

Otherwise no specific idea.  :-/ We’ll have to thoroughly study the
(avr-)gcc doc.

Ludo’.



Re: Adding build status to the package list table

2015-11-20 Thread Ludovic Courtès
Roel Janssen  skribis:

> The list of packages included in Guix [1] provides links to the build
> status of each package in the details.  I would like to provide this
> information in a column after "Package details", either as an icon or as
> a count (e.g. 3/4 builds succeeded).  This provides a nicer overview for
> the current status of the package.

That’s appealing.  However, it entails NUM-ARCHES × NUM-PACKAGES HTTP
requests, just when loading the page.  That seems unreasonable.

What about instead showing icons just in the expanded view, and making
the requests lazily, when the user asks for the expanded view?

The top of the page could still show the success rate maybe (it’s
possible to get that in a single HTTP request, IIRC.)

I agree with Mark et al. that showing one icon per architecture in the
expanded view would be nice.

Thanks,
Ludo’.



Re: How to build a file which depends on the actual contents of store items?

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

[...]

> +  (define (module-path module)
> +(list "  ModulePath \"" module "/lib/xorg/modules\"\n"))

[...]

> +" (apply string-append (map module-path modules)) "

As with NixOS, the solution is to move these computations to the “build
side” (info "(guix) G-Expressions").

So you could do something like:

  (define build
#~(call-with-output-file #$output
(lambda (port)
  (for-each emit-driver-stanza '#$@xorg-modules

  (gexp->derivation "xorg.conf" build)

Does that make sense?

The big difference with Nix is that we use the same language on both
sides, so it’s easy to move things from one side to another, but it’s
also easy to forget about the tradeoffs.

HTH!

Ludo’.



Re: Test failure when building libarchive-3.1.2

2015-11-20 Thread Jan Synáček
On Fri, Nov 20, 2015 at 2:51 PM, Ludovic Courtès  wrote:
> Jan Synáček  skribis:
>
>> On Sat, Nov 14, 2015 at 12:40 PM, Ludovic Courtès  wrote:
>>> Jan Synáček  skribis:
>>>
 Reference files will be read from:
 /tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/tar/test
 Running tests on:
 "/tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/./bsdtar"
 Exercising: bsdtar 3.1.2 - libarchive 3.1.2
>>>
>>> [...]
>>>
  17: test_option_b FAIL
>>>
>>> Ricardo reported the same issue a while back:
>>>
>>>   https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00182.html
>>>
>>> What platform is this on, i686?
>>>
>>> It would be nice to see if this systematically fails.  If it is
>>> non-deterministic, we should build it with --keep-failed until it fails
>>> (removing successful builds with ‘guix gc -d’), collect useful info from
>>> the build tree, and debug.
>>>
>>> (You can also work around it by enabling substitutes since Hydra had no
>>> problems building it.)
>>>
>>> Ludo’.
>>
>> In my case the build fails always. I'm running guix on Fedora 23, x86_64.
>
> What file system is this on?

The test itself seems to always run in /tmp, which is tmpfs in my case. I tried
patching it to run in /var/tmp, which is ext4 (on LVM), but that failed as well.

> I’ve run several builds on my x86_64 GuixSD, ext4, but I’ve failed to
> reproduce the test failure.

I could reproduce the issue even outside of the guix build process.
I downloaded the tarball, extracted it and ran configure + make + make check.
The latest git version worked fine, even though the asserts in test_option_b.c
didn't change.

> I noticed that libarchive uses ‘readdir’ calls as-is, without sorting
> directory entries afterwards.  Thus, the order of directory entries is
> effectively non-deterministic and may change depending on the phase of
> the moon.
>
> This has been reported at:
>
>   https://github.com/libarchive/libarchive/issues/602
>
> Could you add the patch that’s given at that URL to the ‘patches’ field
> or libarchive’s ‘origin’ form and see if the problem shows up again,
> preferably building several times in a row?

I built it once and it passed (note that it failed *everytime* I
wanted to build it).
Maybe a dumb question, but how do I force a rebuild of an already
built package?:)

> At any rate we’ll probably apply the patch.
>
> Thanks,
> Ludo’.

Cheers,
-- 
Jan Synáček



Re: Including additional modules in dmd services

2015-11-20 Thread Ludovic Courtès
David Thompson  skribis:

> Am I just doing it wrong?  If it's a real limitation, what would be the
> best way to specify the additional modules needed?  I looked around at
> the various dmd services and couldn't find any other examples of needing
> macros from another module.  I would love to know how to resolve this so
> that I can continue my quest of managing user SSH keys with a dmd
> service.

No you’re not doing it wrong!  It just happens that the current list of
modules visible to dmd code is hard-coded in ‘dmd-configuration-file’,
in (gnu services dmd).

Short-term workaround is to add (ice-9 match) there.

Longer-term, I’d like to have each service in its own file, with its own
set of modules.  ‘dmd-service’ would presumably have a new ‘modules’
field for that.

I’ll look into it.

Thanks,
Ludo’.



Re: thesis: guixsd should provide /usr/bin/env

2015-11-20 Thread Ludovic Courtès
Andy Wingo  skribis:

> On Thu 19 Nov 2015 16:07, l...@gnu.org (Ludovic Courtès) writes:

[...]

>>> Alternately, I am not sure if this would work but we could make a form
>>> of "guix environment" which populates a profile that is mounted at /usr
>>> in a container.  That would allow many more non-Guix tools to run.
>>
>> Technically ‘guix environment --container’ could create /usr, just like
>> it creates /bin/sh.  Not sure if it’s a good idea, though.
>
> I think it is definitely interesting.  The reason being, you might hack
> on something or have to deploy something and it's not part of Guix --
> you don't want to rewrite the shebang lines for files in git that aren't
> build products.  Being able to make a just-FHS-enough environment inside
> a container sounds to me like a useful tool to have for shimming Guix
> and the outside world, while also benefitting from Guix's reproducible
> environments, rollbacks, isolation, and so on.

Yeah, makes sense.

One can already do:

  guix environment --container --ad-hoc coreutils \
--expose=$(which env)=/usr/bin/env

Should we add a --fhs or --/usr/bin/env option to simplify this?

Thanks,
Ludo’.



Re: [PATCH] Update Guitarix to 0.34.0.

2015-11-20 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> The latest version unfortunately depends on Webkit, so I had to add it
> to the inputs.  The only way to avoid webkit would be to pass the
> “--lv2-only” configure flag, but this would disable the standalone
> version of guitarix.

Oh well.

> From b921c72fe6abfb3b0066db6aa85119217aade0e5 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Thu, 19 Nov 2015 17:11:46 +0100
> Subject: [PATCH] gnu: guitarix: Update to 0.34.0.
>
> * gnu/packages/patches/guitarix-c++11: Remove file.
> * gnu/packages/audio.scm (guitarix): Update to 0.34.0.
> [source]: Remove patch.
> [inputs]: Add webkitgtk/gtk+-2.

OK.

Thanks,
Ludo’.



Re: Test failure when building libarchive-3.1.2

2015-11-20 Thread Ludovic Courtès
Jan Synáček  skribis:

> On Sat, Nov 14, 2015 at 12:40 PM, Ludovic Courtès  wrote:
>> Jan Synáček  skribis:
>>
>>> Reference files will be read from:
>>> /tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/tar/test
>>> Running tests on:
>>> "/tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/./bsdtar"
>>> Exercising: bsdtar 3.1.2 - libarchive 3.1.2
>>
>> [...]
>>
>>>  17: test_option_b FAIL
>>
>> Ricardo reported the same issue a while back:
>>
>>   https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00182.html
>>
>> What platform is this on, i686?
>>
>> It would be nice to see if this systematically fails.  If it is
>> non-deterministic, we should build it with --keep-failed until it fails
>> (removing successful builds with ‘guix gc -d’), collect useful info from
>> the build tree, and debug.
>>
>> (You can also work around it by enabling substitutes since Hydra had no
>> problems building it.)
>>
>> Ludo’.
>
> In my case the build fails always. I'm running guix on Fedora 23, x86_64.

What file system is this on?

I’ve run several builds on my x86_64 GuixSD, ext4, but I’ve failed to
reproduce the test failure.

I noticed that libarchive uses ‘readdir’ calls as-is, without sorting
directory entries afterwards.  Thus, the order of directory entries is
effectively non-deterministic and may change depending on the phase of
the moon.

This has been reported at:

  https://github.com/libarchive/libarchive/issues/602

Could you add the patch that’s given at that URL to the ‘patches’ field
or libarchive’s ‘origin’ form and see if the problem shows up again,
preferably building several times in a row?

At any rate we’ll probably apply the patch.

Thanks,
Ludo’.



Re: [PATCH] Add ruby-net-ssh (and 12 other gems)

2015-11-20 Thread Thompson, David
On Fri, Nov 20, 2015 at 6:23 AM, Ricardo Wurmus
 wrote:
> Hi Guix,
>
> I’ve finally packaged yet another top runtime dependency of buildr[1]
> (which I hope we can use to build maven): ruby-net-ssh.
>
> It depends on a number of gems, including the popular ruby-mocha and
> ruby-redcarpet.

Awesome!  All of these look good except for the ruby-blankslate patch,
whose 'check phase always passes because you return #t after running
the test suite.  OK to push with this phase fixed.

Great stuff!

- Dave



Re: Test failure when building libarchive-3.1.2

2015-11-20 Thread Jan Synáček
On Fri, Nov 20, 2015 at 2:44 PM, Jan Synáček  wrote:
> On Sat, Nov 14, 2015 at 12:40 PM, Ludovic Courtès  wrote:
>> Jan Synáček  skribis:
>>
>>> Reference files will be read from:
>>> /tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/tar/test
>>> Running tests on:
>>> "/tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/./bsdtar"
>>> Exercising: bsdtar 3.1.2 - libarchive 3.1.2
>>
>> [...]
>>
>>>  17: test_option_b FAIL
>>
>> Ricardo reported the same issue a while back:
>>
>>   https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00182.html
>>
>> What platform is this on, i686?
>>
>> It would be nice to see if this systematically fails.  If it is
>> non-deterministic, we should build it with --keep-failed until it fails
>> (removing successful builds with ‘guix gc -d’), collect useful info from
>> the build tree, and debug.
>>
>> (You can also work around it by enabling substitutes since Hydra had no
>> problems building it.)
>>
>> Ludo’.
>
> I debugged this and the upstream patch
> https://github.com/libarchive/libarchive/commit/b539b2e597b566fe3c4b49cb61c9eef83e5e052d
> fixes the problem. You will probably want to add it to the build process.

I just realized I need to do this locally as well to fix the
compilation...:) How do I modify the build process and add the patch
to the store?

Cheers,
-- 
Jan Synáček



Re: Test failure when building libarchive-3.1.2

2015-11-20 Thread Jan Synáček
On Sat, Nov 14, 2015 at 12:40 PM, Ludovic Courtès  wrote:
> Jan Synáček  skribis:
>
>> Reference files will be read from:
>> /tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/tar/test
>> Running tests on:
>> "/tmp/nix-build-libarchive-3.1.2.drv-0/libarchive-3.1.2/./bsdtar"
>> Exercising: bsdtar 3.1.2 - libarchive 3.1.2
>
> [...]
>
>>  17: test_option_b FAIL
>
> Ricardo reported the same issue a while back:
>
>   https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00182.html
>
> What platform is this on, i686?
>
> It would be nice to see if this systematically fails.  If it is
> non-deterministic, we should build it with --keep-failed until it fails
> (removing successful builds with ‘guix gc -d’), collect useful info from
> the build tree, and debug.
>
> (You can also work around it by enabling substitutes since Hydra had no
> problems building it.)
>
> Ludo’.

I debugged this and the upstream patch
https://github.com/libarchive/libarchive/commit/b539b2e597b566fe3c4b49cb61c9eef83e5e052d
fixes the problem. You will probably want to add it to the build process.

Cheers,
-- 
Jan Synáček



Re: Broken URLs

2015-11-20 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> Ludovic Courtès  writes:

[...]

>> gnu/packages/bioinformatics.scm:2627:5: sra-tools-2.4.5-5: all the source 
>> URIs are unreachable:
>> gnu/packages/bioinformatics.scm:2627:5: sra-tools-2.4.5-5: URI 
>> https://github.com/ncbi/sra-tools/archive/2.4.5-5.tar.gz not reachable: 404 
>> ("Not Found")
>
> The tarball has been removed.  I’ll update it to the latest version.
>
>> gnu/packages/bioinformatics.scm:2419:5: ncbi-vdb-2.4.5-5: all the source 
>> URIs are unreachable:
>> gnu/packages/bioinformatics.scm:2419:5: ncbi-vdb-2.4.5-5: URI 
>> https://github.com/ncbi/ncbi-vdb/archive/2.4.5-5.tar.gz not 
>> reachable: 404 ("Not Found")
>
> Same here.  The tarball was removed.  There are new versions out
> already, so I’ll take the opportunity to update it.

Aren’t these /archive URLs providing tarballs generated on the fly from
a Git tag?

Looking at , it seems that
this particular tag has been removed.

> From 01d547a6eedfb28d19551042f581e588dcc56fb5 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Fri, 20 Nov 2015 11:14:00 +0100
> Subject: [PATCH 1/2] gnu: Add smithlab-cpp.
>
> * gnu/packages/bioinformatics.scm (smithlab-cpp): New variable.

LGTM.

> From 534d7b73cda92b982f1338b1c9db420767d78066 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Fri, 20 Nov 2015 11:14:48 +0100
> Subject: [PATCH 2/2] gnu: preseq: Update to 2.0.
>
> * gnu/packages/bioinformatics.scm (preseq): Update to 2.0.
> [source]: Add file-name field, remove patches.
> [arguments]: Remove unused build phases, add make flags.
> [inputs]: Add smithlab-cpp.
> * gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch: Remove file.
> * gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch: Remove
>   file.
> * gnu-system.am (dist_patch_DATA): Remove them.

LGTM.

>> gnu/packages/java.scm:139:12: ant-1.9.4: all the source URIs are unreachable:
>> gnu/packages/java.scm:139:12: ant-1.9.4: URI 
>> https://www.apache.org/dist/ant/source/apache-ant-1.9.4-src.tar.gz not 
>> reachable: 404 ("Not Found")
>
> I don’t know why people do this but here again the tarballs have been
> removed and replaced with those for version 1.9.6.  Here’s another patch
> to update our ant package:

mirror://apache includes http://archive.apache.org/dist/, which is where
old archives go.  Could you use that one instead?

> From 212e56286c946b7a34d03819c20faa473cc42a9d Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Fri, 20 Nov 2015 11:23:18 +0100
> Subject: [PATCH] gnu: ant: Update to 1.9.6.
>
> * gnu/packages/java.scm (ant): Update to 1.9.6.

Upgrading is fine too.

Thank you!

Ludo’.



[PATCH] Add ruby-net-ssh (and 12 other gems)

2015-11-20 Thread Ricardo Wurmus
Hi Guix,

I’ve finally packaged yet another top runtime dependency of buildr[1]
(which I hope we can use to build maven): ruby-net-ssh.

It depends on a number of gems, including the popular ruby-mocha and
ruby-redcarpet.

Here are the patches:

>From bd29492138ba93ae2c38f2ff5035259564cb4e4d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 20 Nov 2015 12:09:12 +0100
Subject: [PATCH 01/13] gnu: Add ruby-power-assert.

* gnu/packages/ruby.scm (ruby-power-assert): New variable.
---
 gnu/packages/ruby.scm | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 3193aea..dc73f38 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -946,6 +946,25 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
 (home-page "https://github.com/drbrain/net-http-persistent";)
 (license license:expat)))
 
+(define-public ruby-power-assert
+  (package
+(name "ruby-power-assert")
+(version "0.2.6")
+(source (origin
+  (method url-fetch)
+  (uri (rubygems-uri "power_assert" version))
+  (sha256
+   (base32
+"0gbj379jhnff8rbb6m3kzdm282szjz1a021xzxa38d1bnswj2jx3"
+(build-system ruby-build-system)
+(native-inputs
+ `(("bundler" ,bundler)))
+(synopsis "Assert library with descriptive assertion messages")
+(description "Power-assert is an assertion library providing descriptive
+assertion messages for tests.")
+(home-page "https://github.com/k-tsj/power_assert";)
+(license (list license:bsd-2 license:ruby
+
 (define-public ruby-minitest
   (package
 (name "ruby-minitest")
-- 
2.1.0

>From 40b6063c227c70fdf83c118dec8a79e9f1d02a22 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 20 Nov 2015 12:09:45 +0100
Subject: [PATCH 02/13] gnu: Add ruby-locale.

* gnu/packages/ruby.scm (ruby-locale): New variable.
---
 gnu/packages/ruby.scm | 25 +
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index dc73f38..326cae0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -965,6 +965,31 @@ assertion messages for tests.")
 (home-page "https://github.com/k-tsj/power_assert";)
 (license (list license:bsd-2 license:ruby
 
+(define-public ruby-locale
+  (package
+(name "ruby-locale")
+(version "2.1.2")
+(source (origin
+  (method url-fetch)
+  (uri (rubygems-uri "locale" version))
+  (sha256
+   (base32
+"1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x"
+(build-system ruby-build-system)
+;; ruby-test-unit is required to run tests, but that needs ruby-packnga,
+;; which needs ruby-gettext, which needs ruby-locale.  To break the
+;; dependency cycle we disable tests.
+(arguments `(#:tests? #f))
+(native-inputs
+ `(("bundler" ,bundler)
+   ("ruby-yard" ,ruby-yard)))
+(synopsis "Ruby library providing basic localization APIs")
+(description
+ "Ruby-Locale is the pure ruby library which provides basic APIs for
+localization.")
+(home-page "https://github.com/ruby-gettext/locale";)
+(license (list license:lgpl3+ license:ruby
+
 (define-public ruby-minitest
   (package
 (name "ruby-minitest")
-- 
2.1.0

>From 3daa972d71340b3e35b94d1c127d520e6216ec26 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 20 Nov 2015 12:10:22 +0100
Subject: [PATCH 03/13] gnu: Add ruby-text.

* gnu/packages/ruby.scm (ruby-text): New variable.
---
 gnu/packages/ruby.scm | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 326cae0..0a31efb 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -990,6 +990,24 @@ localization.")
 (home-page "https://github.com/ruby-gettext/locale";)
 (license (list license:lgpl3+ license:ruby
 
+(define-public ruby-text
+  (package
+(name "ruby-text")
+(version "1.3.1")
+(source (origin
+  (method url-fetch)
+  (uri (rubygems-uri "text" version))
+  (sha256
+   (base32
+"1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"
+(build-system ruby-build-system)
+(synopsis "Collection of text algorithms for Ruby")
+(description
+ "This package provides a collection of text algorithms: Levenshtein,
+Soundex, Metaphone, Double Metaphone, Porter Stemming.")
+(home-page "http://github.com/threedaymonk/text";)
+(license license:expat)))
+
 (define-public ruby-minitest
   (package
 (name "ruby-minitest")
-- 
2.1.0

>From 379de3dabfdb23183379ac126f9c54046ecde3de Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 20 Nov 2015 12:10:49 +0100
Subject: [PATCH 04/13] gnu: Add ruby-gettext.

* gnu/packages/ruby.scm (ruby-gettext): New variable.
---
 gnu/packages/ruby.scm | 29 ++

Re: Broken URLs

2015-11-20 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> gnu/packages/audio.scm:272:12: calf-0.0.60: all the source URIs are 
> unreachable:
> gnu/packages/audio.scm:272:12: calf-0.0.60: URI 
> http://prdownloads.sourceforge.net/calf/calf/0.0.60/calf-0.0.60.tar.gz not 
> reachable: 404 ("Not Found")
> gnu/packages/audio.scm:272:12: calf-0.0.60: URI 
> http://heanet.dl.sourceforge.net/sourceforge/calf/calf/0.0.60/calf-0.0.60.tar.gz
>  not reachable: 404 ("Not Found")
> gnu/packages/audio.scm:272:12: calf-0.0.60: URI 
> http://surfnet.dl.sourceforge.net/sourceforge/calf/calf/0.0.60/calf-0.0.60.tar.gz
>  unreachable: Network is unreachable
> gnu/packages/audio.scm:272:12: calf-0.0.60: URI 
> http://dfn.dl.sourceforge.net/sourceforge/calf/calf/0.0.60/calf-0.0.60.tar.gz 
> not reachable: 404 ("Not Found")
> gnu/packages/audio.scm:272:12: calf-0.0.60: URI 
> http://mesh.dl.sourceforge.net/sourceforge/calf/calf/0.0.60/calf-0.0.60.tar.gz
>  domain not found: Name or service not known
> gnu/packages/audio.scm:272:12: calf-0.0.60: URI 
> http://ovh.dl.sourceforge.net/sourceforge/calf/calf/0.0.60/calf-0.0.60.tar.gz 
> domain not found: Name or service not known
> gnu/packages/audio.scm:272:12: calf-0.0.60: URI 
> http://osdn.dl.sourceforge.net/sourceforge/calf/calf/0.0.60/calf-0.0.60.tar.gz
>  not reachable: 404 ("Not Found")

This has been fixed in commit 73cea74ddaf98f.

> gnu/packages/bioinformatics.scm:1115:15: edirect-2.50: URI 
> http://www.ncbi.nlm.nih.gov/books/NBK179288 not reachable: 303 ("See Other")

I can reach it, but it seems to redirect to URL + “/”.  I’ll add the
trailing slash.

> gnu/packages/bioinformatics.scm:2627:5: sra-tools-2.4.5-5: all the source 
> URIs are unreachable:
> gnu/packages/bioinformatics.scm:2627:5: sra-tools-2.4.5-5: URI 
> https://github.com/ncbi/sra-tools/archive/2.4.5-5.tar.gz not reachable: 404 
> ("Not Found")

The tarball has been removed.  I’ll update it to the latest version.

> gnu/packages/bioinformatics.scm:2419:5: ncbi-vdb-2.4.5-5: all the source URIs 
> are unreachable:
> gnu/packages/bioinformatics.scm:2419:5: ncbi-vdb-2.4.5-5: URI 
> https://github.com/ncbi/ncbi-vdb/archive/2.4.5-5.tar.gz not 
> reachable: 404 ("Not Found")

Same here.  The tarball was removed.  There are new versions out
already, so I’ll take the opportunity to update it.

> gnu/packages/bioinformatics.scm:2570:12: preseq-1.0.2: all the source URIs 
> are unreachable:
> gnu/packages/bioinformatics.scm:2570:12: preseq-1.0.2: URI 
> http://smithlabresearch.org/downloads/preseq-1.0.2.tar.bz2 not reachable: 404 
> ("Not Found")

Version 2.0 has been released and the old tarball has been removed.  The
location for 2.0 is this:

  https://github.com/smithlabcode/preseq/archive/v2.0.tar.gz

Attached are two patches to update our recipe.  A new package was added
to deal with the fact that bundled sources have been removed from the
tarball.

>From 01d547a6eedfb28d19551042f581e588dcc56fb5 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 20 Nov 2015 11:14:00 +0100
Subject: [PATCH 1/2] gnu: Add smithlab-cpp.

* gnu/packages/bioinformatics.scm (smithlab-cpp): New variable.
---
 gnu/packages/bioinformatics.scm | 53 +
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index e0c1944..90a3c51 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2662,6 +2662,59 @@ subsequent visualization, annotation and storage of results.")
 ;; LGPLv2.1+
 (license (list license:gpl2 license:lgpl2.1+
 
+(define-public smithlab-cpp
+  (let ((revision "1")
+(commit "728a097"))
+(package
+  (name "smithlab-cpp")
+  (version (string-append "0." revision "." commit))
+  (source (origin
+(method git-fetch)
+(uri (git-reference
+  (url "https://github.com/smithlabcode/smithlab_cpp.git";)
+  (commit commit)))
+(file-name (string-append name "-" version "-checkout"))
+(sha256
+ (base32
+  "0d476lmj312xk77kr9fzrv7z1bv96yfyx0w7y62ycmnfbx32ll74"
+  (build-system gnu-build-system)
+  (arguments
+   `(#:modules ((guix build gnu-build-system)
+(guix build utils)
+(srfi srfi-26))
+ #:tests? #f ;no "check" target
+ #:phases
+ (modify-phases %standard-phases
+   (add-after 'unpack 'use-samtools-headers
+(lambda _
+  (substitute* '("SAM.cpp"
+ "SAM.hpp")
+(("sam.h") "samtools/sam.h"))
+  #t))
+   (replace 'install
+(lambda* (#:key outputs #:allow-other-keys)
+  (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include/smithlab-cpp")))
+(mkdir