Multi-version system-wide locales
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.
Hi Efraim, Efraim Flashnerwrites: > 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
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.
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 ThompsonDate: 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.
Hello, sorry for the delay. On Tue, Oct 27, 2015 at 6:13 AM, Ludovic Courtèswrote: > 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.
Ludovic Courtèswrites: >> * 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
Andreas Engewrites: > 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
Andreas Engewrites: > 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
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
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
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
Andreas Engeskribis: > 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.
"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.
Andy Pattersonskribis: > 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.
>From 9b971d3ce5eaf2b8b773145eeff9504f321df898 Mon Sep 17 00:00:00 2001 From: Ricardo WurmusDate: 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.
Ricardo Wurmusskribis: > 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.
Thompson, Davidwrites: > 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'.
Alex Kostskribis: > 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'.
Alex Kostskribis: > 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.
Alex Kostskribis: > 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.
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.
On Tue, Oct 27, 2015 at 1:41 PM, Ludovic Courtèswrote: > "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