Multi-version system-wide locales

2015-10-30 Thread Ludovic Courtès
Hello!

I just pushed the last bit to deal with the locale data incompatibility
issue on GuixSD; doc below.

Ludo’.


7.2.6.1 Locale Data Compatibility Considerations


‘operating-system’ declarations provide a ‘locale-libcs’ field to
specify the GNU libc packages that are used to compile locale
declarations (*note operating-system Reference::).  “Why would I care?”,
you may ask.  Well, it turns out that the binary format of locale data
is occasionally incompatible from one libc version to another.

   For instance, a program linked against libc version 2.21 is unable to
read locale data produced with libc 2.22; worse, that program _aborts_
instead of simply ignoring the incompatible locale data(1).  Similarly,
a program linked against libc 2.22 can read most, but not all, the
locale data from libc 2.21 (specifically, ‘LC_COLLATE’ data is
incompatible); thus calls to ‘setlocale’ may fail, but programs will not
abort.

   The “problem” in GuixSD is that users have a lot of freedom: They can
choose whether and when to upgrade software in their profiles, and might
be using a libc version different from the one the system administrator
used to build the system-wide locale data.

   Fortunately, unprivileged users can also install their own locale
data and define GUIX_LOCPATH accordingly (*note ‘GUIX_LOCPATH’ and
locale packages: locales-and-locpath.).

   Still, it is best if the system-wide locale data at
‘/run/current-system/locale’ is built for all the libc versions actually
in use on the system, so that all the programs can access it—this is
especially crucial on a multi-user system.  To do that, the
administrator can specify several libc packages in the ‘locale-libcs’
field of ‘operating-system’:

 (use-package-modules base)

 (operating-system
   ;; …
   (locale-libcs (list glibc-2.1 (canonical-package glibc

   This example would lead to a system containing locale definitions for
both libc 2.21 and the current version of libc in
‘/run/current-system/locale’.

   -- Footnotes --

   (1) Versions 2.23 and later of GNU libc will simply skip the
incompatible locale data, which is already an improvement.




Re: 01/01: gnu: Add pbzip2.

2015-10-30 Thread Mark H Weaver
Hi Efraim,

Efraim Flashner  writes:

> On Thu, 22 Oct 2015 11:17:11 -0400
> Mark H Weaver  wrote:
>
>> Efraim Flashner  writes:
>> 
>> > efraim pushed a commit to branch master
>> > in repository guix.
>> >
>> > commit 5d47eab0242d6f89a6837123141acdae68745328
>> > Author: Efraim Flashner 
>> > Date:   Thu Oct 22 13:12:07 2015 +0300
>> >
>> > gnu: Add pbzip2.
>> > 
>> > * gnu/packages/compression.scm (pbzip2): New variable.  
>> 
>> Thanks for this, but did you post it to guix-devel for review?
>> It would be good to do so in the future.
> Oops, definately forgot that this time. I'll be better about that in the 
> future.
>
>> 
>> Please see below for comments.
>> 
>> > ---
>> >  gnu/packages/compression.scm |   33 +
>> >  1 files changed, 33 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
>> > index 941844b..0bb3919 100644
>> > --- a/gnu/packages/compression.scm
>> > +++ b/gnu/packages/compression.scm
>> > @@ -7,6 +7,7 @@
>> >  ;;; Copyright © 2015 Ricardo Wurmus 
>> >  ;;; Copyright © 2015 Leo Famulari 
>> >  ;;; Copyright © 2015 Jeff Mickey 
>> > +;;; Copyright © 2015 Efraim Flashner 
>> >  ;;;
>> >  ;;; This file is part of GNU Guix.
>> >  ;;;
>> > @@ -225,6 +226,38 @@ decompression.")
>> >"See LICENSE in the distribution."))
>> >(home-page "http://www.bzip.org/;
>> >  
>> > +(define-public pbzip2
>> > +  (package
>> > +(name "pbzip2")
>> > +(version "1.1.12")
>> > +(source (origin
>> > + (method url-fetch)
>> > + (uri (string-append "https://launchpad.net/pbzip2/1.1/; 
>> > version
>> > +"/+download/" name "-" version 
>> > ".tar.gz"))  
>> 
>> The quote (") on the line above should be aligned with the quote on the
>> line above it.
> Ok
>
>> 
>> Also, instead of hard coding "1.1" in the URI, please use
>> 'version-major+minor' instead.  You'll find many examples of it in
>> gnu/packages/*.scm
> Ok, found one :). I wasn't sure what (version-major+minor version) was before
>
>> 
>> > + (sha256
>> > +  (base32
>> > +   "1vk6065dv3a47p86vmp8hv3n1ygd9hraz0gq89gvzlx7lmcb6fsp"
>> > +(build-system gnu-build-system)
>> > +(inputs
>> > + `(("bzip2", bzip2)))
>> > +(arguments
>> > + `(#:tests? #f ; no tests
>> > +   #:phases (modify-phases %standard-phases
>> > +  (replace 'configure
>> > +   (lambda* (#:key outputs #:allow-other-keys)
>> > +(substitute* "Makefile"
>> > +(("/usr") (assoc-ref outputs "out")))
>> > +#t)  
>> 
>> The alignment of the lines above is very confusing, to say the least.
>> 
>> Anyway, it would be better to simply remove the 'configure' phase and
>> instead add this:
>> 
>>   #:make-flags (list (string-append "PREFIX=" %output))
> That sure is shorter than what I had there before. fixed.
>
>> 
>> > +(home-page "http://compression.ca/pbzip2/;)
>> > +(synopsis "Parallel bzip2 implementation")
>> > +(description
>> > + "Pbzip2 is a parallel implementation of the bzip2 block-sorting file
>> > +compressor that uses pthreads and achieves near-linear speedup on SMP 
>> > machines.
>> > +The output of this version is fully compatible with bzip2 v1.0.2 (ie: 
>> > anything
>> > +compressed with pbzip2 can be decompressed with bzip2).")  
>> 
>> s/ie:/i.e./
> ok
>
>> 
>> > +(license (license:non-copyleft "file://COPYING"
>> > +"See COPYING in the distribution."  
>> 
>> Please align the open quotes.
> ok
>
>> 
>>  Thanks,
>>Mark
>
> I'll hold onto my patch for a little bit longer to see if anyone else has any
> suggestions, and then I'll push the fixes.

It's been a week with no further suggestions, so I suggest that you
proceed to push the fixes.

 Thanks,
   Mark



Re: [PATCH] system: grub: On MIPS, the linux image name is vmlinuz

2015-10-30 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis:

> Regarding linux-libre-loongson2f: Are the patches available elsewhere?
> I figured we might as well refer to them using an ‘origin’ if there’s a
> stable location we can use.

Another issue: I changed the GRUB upgrade to use a more recent commit,
which includes the two MIPS patches that are used in wip-loongson2f.

However, GRUB fails one test on x86_64:

--8<---cut here---start->8---
FAIL: grub_func_test


./grub_func_test: line 17: 
/gnu/store/mnwjrkbfzkb5ifhqf8hssf3cxfvg11l6-coreutils-8.24/bin/tail: Argument 
list too long
Functional test failure: shift_test:
shift_test: PASS

[...]

 tests/video_checksum.c:checksum:620: assert failed: 0 Checksum 
videotest_640x480xi16:1 failed: 0x1368a483 vs 0x7f1853ba
 tests/video_checksum.c:checksum:620: assert failed: 0 Checksum 
videotest_640x480xi16:0 failed: 0x1368a483 vs 0x7f1853ba
videotest_checksum: FAIL
--8<---cut here---end--->8---

The video test failure is a showstopper I think, and it would require
quite a bit of work to investigate.

Do you think you could help with these two things?  Otherwise we can
just postpone GuixSD/mips64el to the next release.

TIA,
Ludo’.



[PATCH] scripts: environment: Allow lists of packages in expressions.

2015-10-30 Thread David Thompson
Thanks to avoine on freenode for motivating me to finally add this
feature.  I've wanted it for awhile, but not badly enough to actually
implement it until now.  This is a cool feature because you can do stuff
like this now:

guix environment --ad-hoc -e '(@ (gnu) %base-packages)'

Pretty cool!

>From c9c282cea04ec5a3ee7bd17e6ad8846600220feb Mon Sep 17 00:00:00 2001
From: David Thompson 
Date: Fri, 30 Oct 2015 21:02:51 -0400
Subject: [PATCH] scripts: environment: Allow lists of packages in expressions.

* guix/scripts/environment.scm (options/resolve-packages): Match against
  lists of packages when evaluating expressions.
* tests/guix-environment.sh: Add test.
* doc/guix.texi ("invoking guix environment"): Add docs.
---
 doc/guix.texi| 15 ---
 guix/scripts/environment.scm | 24 +++-
 tests/guix-environment.sh| 11 +++
 3 files changed, 38 insertions(+), 12 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a164608..84f194b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4730,7 +4730,8 @@ The available options are summarized below.
 @table @code
 @item --expression=@var{expr}
 @itemx -e @var{expr}
-Create an environment for the package that @var{expr} evaluates to.
+Create an environment for the package or list of packages that
+@var{expr} evaluates to.
 
 For example, running:
 
@@ -4741,10 +4742,18 @@ guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'
 starts a shell with the environment for this specific variant of the
 PETSc package.
 
+Running:
+
+@example
+guix environment --ad-hoc -e '(@ (gnu) %base-packages)'
+@end example
+
+starts a shell with all the GuixSD base packages available.
+
 @item --load=@var{file}
 @itemx -l @var{file}
-Create an environment for the package that the code within @var{file}
-evaluates to.
+Create an environment for the package or list of packages that the code
+within @var{file} evaluates to.
 
 As an example, @var{file} might contain a definition like this
 (@pxref{Defining Packages}):
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index 1888385..f9ab9a4 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -253,6 +253,18 @@ COMMAND or an interactive shell in that environment.\n"))
 (define (options/resolve-packages opts)
   "Return OPTS with package specification strings replaced by actual
 packages."
+  (define (package->outputs package mode)
+(map (lambda (output)
+   (list mode package output))
+ (package-outputs package)))
+
+  (define (packages->outputs packages mode)
+(match packages
+  ((? package? package)
+   (package->outputs package mode))
+  (((? package? packages) ...)
+   (append-map (cut package->outputs <> mode) packages
+
   (compact
(append-map (match-lambda
  (('package mode (? string? spec))
@@ -261,17 +273,11 @@ packages."
 (list (list mode package output
  (('expression mode str)
   ;; Add all the outputs of the package STR evaluates to.
-  (match (read/eval str)
-((? package? package)
- (map (lambda (output)
-(list mode package output))
-  (package-outputs package)
+  (packages->outputs (read/eval str) mode))
  (('load mode file)
   ;; Add all the outputs of the package defined in FILE.
-  (let ((package (load* file (make-user-module '()
-(map (lambda (output)
-   (list mode package output))
- (package-outputs package
+  (let ((module (make-user-module '(
+(packages->outputs (load* file module) mode)))
  (_ '(#f)))
opts)))
 
diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh
index 49b3b1c..f7b0259 100644
--- a/tests/guix-environment.sh
+++ b/tests/guix-environment.sh
@@ -111,4 +111,15 @@ then
 grep -E '^export CPATH=.*-gcc-bootstrap-0/include'  "$tmpdir/a"
 grep -E '^export CPATH=.*-glibc-bootstrap-0/include'"$tmpdir/a"
 grep -E '^export LIBRARY_PATH=.*-glibc-bootstrap-0/lib' "$tmpdir/a"
+
+# Make sure a package list can be used with -e.
+expr_list_test_code="
+(list (@@ (gnu packages commencement) gnu-make-boot0)
+  (@ (gnu packages bootstrap) %bootstrap-guile))"
+
+guix environment --ad-hoc --no-substitutes --search-paths --pure \
+ -e "$expr_list_test_code" > "$tmpdir/a"
+
+grep -E '^export PATH=.*-make-boot0-4.1/bin'  "$tmpdir/a"
+grep -E '^export PATH=.*-guile-bootstrap-2.0/bin' "$tmpdir/a"
 fi
-- 
2.5.0


-- 
David Thompson
GPG Key: 0FF1D807


Re: [PATCH 14/15] scripts: environment: Add --container option.

2015-10-30 Thread Thompson, David
Hello, sorry for the delay.

On Tue, Oct 27, 2015 at 6:13 AM, Ludovic Courtès  wrote:
> Hello!
>
> One thing I noticed is that ‘guix environment --container’ behaves
> sub-optimally when ‘SHELL’ is set or set to the empty string:
>
> --8<---cut here---start->8---
> $ guix environment alta --pure --container
>
> [...]
>
> In execvp of /home/ludo/.guix-profile/bin/bash: No such file or directory
> $ SHELL= guix environment alta --pure --container
> In execvp of : No such file or directory
> --8<---cut here---end--->8---
>
> One has to explicitly ‘unset SHELL’ to sidestep the problem.  This may
> be confusing to newcomers.

Yes, I know about this, but I'm not sure of a good solution.

> What about automatically mapping $SHELL in the container when it is set?

The issue is that the default command to evaluate is $SHELL or
"/bin/sh."  You can be almost certain that $SHELL is not going to be
available in the container.  What to do?  Check if the command is
'equal?' to (list (getenv "SHELL")) and make it '("/bin/sh") instead?

> Also, ‘SHELL’ is overridden in the environment:
>
> --8<---cut here---start->8---
> $ echo $SHELL
> /home/ludo/.guix-profile/bin/bash
> $ guix environment alta --container --expose=$SHELL
> bash-4.3# echo $SHELL
> /bin/sh
> # ls -l /proc/2/exe
> lrwxrwxrwx 1 0 0 0 Oct 27 10:11 /proc/2/exe -> 
> /home/ludo/.guix-profile/bin/bash
> bash-4.3# ls -l /home/ludo/.guix-profile/bin/bash
> -r-xr-xr-x 2 65534 65534 917320 Jan  1  1970 /home/ludo/.guix-profile/bin/bash
> --8<---cut here---end--->8---
>
> I’m not sure if ‘SHELL’ should be added to ‘%precious-variables’.

I don't think so, because of the issue mentioned above.  I'm thinking
that the default shell should remain the Bash we mount at /bin/sh.

Open to, and looking for, ideas to improve things.  Let me know what
you think of all this.

- Dave



Re: [PATCH] openblas on MIPS.

2015-10-30 Thread Ricardo Wurmus

Ludovic Courtès  writes:

>> * gnu/packages/maths.scm (openblas)[arguments]: Add "TARGET=SICORTEX" to
>>   make-flags when building for MIPS.
>
> Sounds good but…
>
>> -   '("DYNAMIC_ARCH=1")
>> -   ;; On MIPS we force the SICORTEX TARGET, as for the other
>> -   ;; two available MIPS targets special Loongson extended
>> -   ;; instructions are used.
>> -   (if (string-prefix? "mips" (%current-system))
>> -   '("TARGET=SICORTEX")
>
> This doesn’t seem to be a patch against master, is it?

Here’s the corrected patch:

>From 99bdf62c3ff47ad3cb3a57092ed96baa1055fa77 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Mon, 20 Jul 2015 15:05:55 +0200
Subject: [PATCH 1/2] gnu: openblas: Set TARGET to SICORTEX on MIPS.

* gnu/packages/maths.scm (openblas)[arguments]: Add "TARGET=SICORTEX" to
  make-flags when building for MIPS.
---
 gnu/packages/maths.scm | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 4935f80..b5abc48 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1491,10 +1491,16 @@ constant parts of it.")
  ;; Unfortunately, this is not supported on non-x86 architectures,
  ;; where it leads to failed builds.
  ,@(let ((system (or (%current-target-system) (%current-system
-   (if (or (string-prefix? "x86_64" system)
+ (cond
+  ((or (string-prefix? "x86_64" system)
(string-prefix? "i686" system))
-   '("DYNAMIC_ARCH=1")
-   '(
+   '("DYNAMIC_ARCH=1"))
+  ;; On MIPS we force the "SICORTEX" TARGET, as for the other
+  ;; two available MIPS targets special extended instructions
+  ;; for Loongson cores are used.
+  ((string-prefix? "mips" system)
+   '("TARGET=SICORTEX"))
+  (else '()
;; no configure script
#:phases (alist-delete 'configure %standard-phases)))
 (inputs
-- 
2.1.0



Re: State of dbus-update

2015-10-30 Thread 宋文武
Andreas Enge  writes:

> On Wed, Oct 28, 2015 at 01:58:44PM +0100, Andreas Enge wrote:
>> telepathy-glib
>
> I am attaching test-suite.log. 宋文武, a similar patch to your commit
> 5f37e56ba41edb1bd47b7b1663aea07078f943d2 will probably work here, too.
> Could you have a look, please?
Done, thanks for notice!




Re: State of dbus-update

2015-10-30 Thread 宋文武
Andreas Enge  writes:

> On Wed, Oct 28, 2015 at 01:58:44PM +0100, Andreas Enge wrote:
>> mesa-utils
>
> This one does not build with newer mesa any more:
>https://bugs.freedesktop.org/show_bug.cgi?id=91643
>
> The patch referenced there is
>
> http://cgit.freedesktop.org/mesa/demos/commit/?id=74443c6ee79f3251f643ea05e94df58183e37d0d
> It is actually against the git repository and not against the tarball
> and does not apply to the tarball sources. I took out all patches concerning
> files CMakeLists.txt and .gitignore, but it still does not apply.
> Since there are 1200 lines of patches, I am giving up.
As mention in the report, pass '--disable-egl' do the trick, thanks for
the information!

after this fix, I merge master into dbus-update.
Do you think it's time to merge back?

Sorry for all the trouble I made..




Re: State of dbus-update

2015-10-30 Thread Andreas Enge
On Fri, Oct 30, 2015 at 08:36:59PM +0800, 宋文武 wrote:
> Done, thanks for notice!

Great, thanks a lot!

Andreas




Re: State of dbus-update

2015-10-30 Thread Andreas Enge
On Fri, Oct 30, 2015 at 08:54:00PM +0800, 宋文武 wrote:
> As mention in the report, pass '--disable-egl' do the trick, thanks for
> the information!

I was not quite sure if this flag did not disable too much; but probably it
simply disables things that have been removed. So if its dependencies still
build, this should be the good fix for now.

> after this fix, I merge master into dbus-update.
> Do you think it's time to merge back?

Yes, I think so. On my list, only lablgtk remains. I added it at some point
in time because it is needed for the graphical version of unison (gtk+
bindings for ocaml). But building unison with gtk+ requires more, and in
the meantime I got used to the command line version of unison.

Maybe now we should first wait for the dbus-update branch to build after
the master merge (which hopefully will not take too long), and then
merge back?

> Sorry for all the trouble I made..

No problem! I think it would have been more efficient to advance by smaller
steps. But altogether, we have made a big step forward, and your enthusiasm
for updating complicated packages is much appreciated.

Cheers,

Andreas




Re: State of dbus-update

2015-10-30 Thread Mark H Weaver
iyzs...@member.fsf.org (宋文武) writes:
> after this fix, I merge master into dbus-update.
> Do you think it's time to merge back?

I think we should wait until we can fix the remaining problems.

> Sorry for all the trouble I made..

I don't think you've made any trouble.  On the contrary, I very much
appreciate the updates!

For what it's worth, I see no problem with doing several updates on a
branch and taking a few weeks to fix the resulting problems.  This is
very similar to what often happens on 'core-updates'.  Given the
limitations of our build farm, I see no better way to accomplish this
task.  Doing a full rebuild after each update would take far too long.

  Mark



Re: Some newbie questions

2015-10-30 Thread Ludovic Courtès
Andreas Enge  skribis:

> On Thu, Oct 29, 2015 at 10:11:11PM +0100, Adam Pribyl wrote:
>> >Nothing really specific. I was just curious if it was possible. Now that I
>> >think about it,
>> >I should get the same result whether building myself or installing a
>> >substitute,
>> >right?
>> Right. Thats what is going on here - binary same.
>
> Well, that is assuming that the builds are deterministic - which is our goal,
> but which is not guaranteed. If a binary encodes the build time, for example,
> then different builds will yield different results.

But you can help!  :-)

  https://lists.gnu.org/archive/html/guix-devel/2015-10/msg00696.html

>> >The .links directory takes
>> >over 2GiB on my machine and I wonder why.
>
> If I remember correctly, these are just hard links into the store that serve
> for deduplication.

Yes, see also:

  https://lists.gnu.org/archive/html/guix-devel/2014-09/msg00422.html

Ludo’.



Re: [PATCH] system: container: Update to new service API.

2015-10-30 Thread Ludovic Courtès
"Thompson, David"  skribis:

> From 750131550354a25541a3adcdd983f4053bb86cc9 Mon Sep 17 00:00:00 2001
> From: David Thompson 
> Date: Thu, 29 Oct 2015 00:15:36 -0400
> Subject: [PATCH] system: container: Adjust to changes in gexps.
>
> * gnu/system/linux-container.scm (system-container): 'etc' is no longer
>   a monadic value, and the result of 'file-union' must be lowered.

LGTM, thanks!

(And sorry for the unintended breakage.)

Ludo’.



Re: [PATCH] gnu: ffmpeg: Enable gnutls support.

2015-10-30 Thread Ludovic Courtès
Andy Patterson  skribis:

> From 7415f04aa9f45401a05e289744d57eff8ef18f4b Mon Sep 17 00:00:00 2001
> From: Andy Patterson 
> Date: Thu, 29 Oct 2015 18:59:18 -0400
> Subject: [PATCH] gnu: ffmpeg: Enable gnutls support.
>
> * gnu/package/video.scm (ffmpeg)[inputs]: Add gnutls.
>   [arguments]: Enable it.

Applied, thanks!

Ludo’.



[PATCH] Add ruby-rb-inotify, ruby-listen, ruby-permutation.

2015-10-30 Thread Ricardo Wurmus
>From 9b971d3ce5eaf2b8b773145eeff9504f321df898 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 30 Oct 2015 16:43:51 +0100
Subject: [PATCH 1/3] gnu: Add ruby-rb-inotify.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 56237e1..91b290d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1299,6 +1299,39 @@ aware transformations between times in different time zones.")
 (home-page "http://tzinfo.github.io;)
 (license license:expat)))
 
+(define-public ruby-rb-inotify
+  (package
+(name "ruby-rb-inotify")
+(version "0.9.5")
+(source
+ (origin
+   (method url-fetch)
+   (uri (rubygems-uri "rb-inotify" version))
+   (sha256
+(base32
+ "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9"
+(build-system ruby-build-system)
+(arguments
+ '(#:tests? #f ; there are no tests
+   #:phases
+   (modify-phases %standard-phases
+ ;; Building the gemspec with rake is not working here since it is
+ ;; generated with Jeweler.  It is also unnecessary because the
+ ;; existing gemspec does not use any development tools to generate a
+ ;; list of files.
+ (replace 'build
+  (lambda _
+(zero? (system* "gem" "build" "rb-inotify.gemspec")))
+(propagated-inputs
+ `(("ruby-ffi" ,ruby-ffi)))
+(native-inputs
+ `(("ruby-yard" ,ruby-yard)))
+(synopsis "Ruby wrapper for Linux's inotify")
+(description "rb-inotify is a simple wrapper over the @code{inotify} Linux
+kernel subsystem for monitoring changes to files and directories.")
+(home-page "https://github.com/nex3/rb-inotify;)
+(license license:expat)))
+
 (define-public ruby-json
   (package
 (name "ruby-json")
-- 
2.1.0

>From 396c3fcdc5f98892bf3e3cfddd9d09a8d6af27c7 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 30 Oct 2015 16:44:12 +0100
Subject: [PATCH 2/3] gnu: Add ruby-listen.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 91b290d..474290f 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1351,6 +1351,28 @@ a native C extension.")
 (home-page "http://json-jruby.rubyforge.org/;)
 (license (list license:ruby license:gpl2 ; GPL2 only
 
+(define-public ruby-listen
+  (package
+(name "ruby-listen")
+(version "3.0.3")
+(source
+ (origin
+   (method url-fetch)
+   (uri (rubygems-uri "listen" version))
+   (sha256
+(base32
+ "10lhshjklxlrkw7999j0xl6sdxd4x32kiy8rp88jwr68kis5vq2b"
+(build-system ruby-build-system)
+(arguments '(#:tests? #f)) ; no tests
+(propagated-inputs
+ ;; FIXME: omitting "ruby-rb-fsevent" which is only for MacOS.
+ `(("ruby-rb-inotify" ,ruby-rb-inotify)))
+(synopsis "Listen to file modifications")
+(description "The Listen gem listens to file modifications and notifies
+you about the changes.")
+(home-page "https://github.com/guard/listen;)
+(license license:expat)))
+
 (define-public ruby-activesupport
   (package
 (name "ruby-activesupport")
-- 
2.1.0

>From b6b5f8dadd7681430c4191769e00b861a669371c Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Fri, 30 Oct 2015 17:17:21 +0100
Subject: [PATCH 3/3] gnu: Add ruby-permutation.

* gnu/packages/ruby.scm (ruby-permutation): 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 474290f..67e5dfa 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -649,6 +649,36 @@ and inspect the environment.")
 (home-page "https://github.com/e2/nenv;)
 (license license:expat)))
 
+(define-public ruby-permutation
+  (package
+(name "ruby-permutation")
+(version "0.1.8")
+(source (origin
+  (method url-fetch)
+  (uri (rubygems-uri "permutation" version))
+  (sha256
+   (base32
+"13crwk2vfbzv99czva7881027dbcnidihmvx2jc58z2vm3bp9sl8"
+(build-system ruby-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'fix-rakefile
+  (lambda _
+(substitute* "Rakefile"
+  (("require 'rake/gempackagetask'")
+   "require 'rubygems/package_task'")
+  (("include Config") ""))
+#t))
+ (replace 'check
+  (lambda _
+(zero? (system* "ruby" "-Ilib" "test/test.rb")))
+(synopsis "Library to perform operations with sequence 

Re: [PATCH] openblas on MIPS.

2015-10-30 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> Here’s the corrected patch:
>
> From 99bdf62c3ff47ad3cb3a57092ed96baa1055fa77 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Mon, 20 Jul 2015 15:05:55 +0200
> Subject: [PATCH 1/2] gnu: openblas: Set TARGET to SICORTEX on MIPS.
>
> * gnu/packages/maths.scm (openblas)[arguments]: Add "TARGET=SICORTEX" to
>   make-flags when building for MIPS.

OK!

Ludo'.



Re: [PATCH] 11 little Ruby gems.

2015-10-30 Thread Ricardo Wurmus

Thompson, David  writes:

> Hey Ricardo,
>
> On Wed, Sep 16, 2015 at 5:12 AM, Ricardo Wurmus
>  wrote:
>> Hi Guix,
>>
>> attached are a couple of patches that resulted from a recent attempt to
>> traverse the dependency graph for a dependency of some tool I wanted to
>> package.
>>
>> I’m not happy with ‘0007-gnu-Add-ruby-rb-fsevent.patch’ because it is to
>> be used on a Mac OSX, but unfortunately this is a required input for
>> a more general file system library that is in my pipeline.
>>
>> I’m also not happy with disabling tests for ‘ruby-yard’, but I didn’t
>> find a way to make them pass.
>
> I pushed the first 6 patches with only a couple of minor
> comment/description tweaks.  Still need to look into what can be done
> about patch 7 and the test suite for yard.

Ping!

I think rb-fsevent may not be required after all.  I packaged
ruby-listen and ruby-rb-inotify; “listen” probably only uses rb-fsevent
when on a Mac.

Since we already fixed the yard problem I would really like to push the
three or four (with “rb-fsevent”) Ruby packages and move on.  These are
the remaining packages:

ruby-rb-fsevent
ruby-rubygems-tasks
ruby-ffi
ruby-simplecov-html

I have ruby-rb-inotify ready, but it depends on ruby-ffi; and
ruby-listen depends on ruby-rb-inotify.

~~ Ricardo



Re: [PATCH 3/3] emacs: Disable minor modes in 'guix-build-log-mode'.

2015-10-30 Thread Ludovic Courtès
Alex Kost  skribis:

> From 4d13ab2a470b39dffa2e3a4c086a6f7237485777 Mon Sep 17 00:00:00 2001
> From: Alex Kost 
> Date: Thu, 29 Oct 2015 21:05:17 +0300
> Subject: [PATCH 3/3] emacs: Disable minor modes in 'guix-build-log-mode'.
>
> * emacs/guix-build-log.el (guix-build-log-mode-hook): Remove
>   'compilation-shell-minor-mode' as it is slow on big buffers, and
>   'view-mode' as it rebinds too many keys.
>   (guix-build-log-mode-map): Add "c" and "v" key bindings for the
>   removed minor modes.

OK.

Thanks!

Ludo’.



Re: [PATCH 2/3] emacs: Add key bindings for 'guix-build-log-minor-mode'.

2015-10-30 Thread Ludovic Courtès
Alex Kost  skribis:

> I use (add-hook 'shell-mode-hook 'guix-build-log-minor-mode) and I found
> that along with phases highlighting, it is useful to have some key
> bindings available in this minor mode, so this patch adds "C-c
> M-n/M-p/TAB/S-TAB" keys to it.

Excellent!

> From fe50e7233fa5144f31f7db583d0289f056dd9dd0 Mon Sep 17 00:00:00 2001
> From: Alex Kost 
> Date: Thu, 29 Oct 2015 21:27:56 +0300
> Subject: [PATCH 2/3] emacs: Add key bindings for 'guix-build-log-minor-mode'.
>
> * emacs/guix-build-log.el (guix-build-log-mode-map): Move keys to ...
>   (guix-build-log-common-map): ...here.  New variable.
>   (guix-build-log-minor-mode-map): New variable.
>   (guix-build-log-minor-mode): Use it.
> * doc/emacs.texi (Emacs Build Log): Document it.

OK to push.

> +  (add-hook 'shell-mode-hook 'guix-build-log-minor-mode)

I wonder if we should do that automatically by default.  That way
everyone would get the cool features, even those who didn’t bother to
read all the manual.

WDYT?

Thanks,
Ludo’.



Re: [PATCH 1/3] emacs: Enable 'guix-build-log-mode' for build log files.

2015-10-30 Thread Ludovic Courtès
Alex Kost  skribis:

> As suggested by Ludovic on IRC, after this patch, build log files (from
> /var/log/guix/drvs) will be displayed in a 'guix-build-log-mode'.
>
> I'm not sure about regexp though: are these files always "bz2" and
> ".../XX/X-30-more-characters-X/..."?

It’s not necessarily bz2, see ‘guix-daemon --disable-log-compression’.

The regexp should match 32 characters of ‘%nix-base32-chars’ in (guix
base32) if we want to be pedantic.

> I didn't put "/var/log" in the beginning of the regexp to match, for example, 
> /mnt/guix-from-sdc/var/log/guix/... files or alike.

Good.

Could you update the patch accordingly?

Thanks,
Ludo’.



Re: [PATCH] Add ruby-rb-inotify, ruby-listen, ruby-permutation.

2015-10-30 Thread Thompson, David
All of these LGTM.  If we encounter gems like inotify that use
Jeweler, then we should consider adding an argument to
ruby-build-system that allows one to toggle gemspec generation.

- Dave



Re: [PATCH 13/15] scripts: system: Add 'container' action.

2015-10-30 Thread Thompson, David
On Tue, Oct 27, 2015 at 1:41 PM, Ludovic Courtès  wrote:
> "Thompson, David"  skribis:
>
>> From 5dde31ef51502726a2915cc4faba81f4fadb851c Mon Sep 17 00:00:00 2001
>> From: David Thompson 
>> Date: Mon, 8 Jun 2015 09:04:38 -0400
>> Subject: [PATCH] scripts: system: Add 'container' action.
>>
>> * guix/scripts/system.scm (show-help): Display 'container' action.
>>   (system-derivation-for-action, guix-system): Add 'container' case.
>>   (perform-action): Skip GRUB config generation when building a container.
>> * doc/guix.texi (Invoking guix system): Document it.
>
> [...]
>
>> +  ;; A range of 65536 uid/gids is used to cover 16 bits worth of
>> +  ;; users and groups, which is sufficient for most cases.
>
> Should be enough for everyone.  ;-)

Hehe.  I need to do more research on this.  User/group mapping is
still pretty confusing to me.

>>(display (_ "\
>> +  container build a Linux container that shares the host's 
>> store\n"))
>
> I’d remove “Linux” here (after all, we use libc’s interface, which
> hopefully will be implemented for the Hurd eventually.)

Fixed and pushed.  Thanks!

- Dave