[PATCHv2] gnu: Add python-ply and python2-ply.

2016-06-06 Thread Danny Milosavljevic
gnu: Add python-ply and python2-ply.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index dfbf2cc..c78577b 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -9009,3 +9009,31 @@ focus on event-based network programming and 
multiprotocol integration.")
 
 (define-public python2-twisted
   (package-with-python2 python-twisted))
+
+(define-public python-ply
+  (package
+(name "python-ply")
+(version "3.8")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append
+   "https://pypi.python.org/packages/";
+   
"96/e0/430fcdb6b3ef1ae534d231397bee7e9304be14a47a267e82ebcb3323d0b5"
+   "/ply-" version ".tar.gz"))
+(sha256
+  (base32
+"1f70ipynmiy09k6px2j7v4w5cdrc21za3xs2k6f1bsvb0bzvvlg7"
+(build-system python-build-system)
+(home-page "http://www.dabeaz.com/ply/";)
+(synopsis "Python Lex & Yacc")
+(description "PLY is an @code{lex}/@code{yacc} implemented purely in 
Python.
+It uses LR parsing and does extensive error checking.")
+(license bsd-3)
+(properties `((python2-variant . ,(delay python2-ply))
+
+(define-public python2-ply
+  (package
+(inherit (package-with-python2
+  (strip-python2-variant python-ply)))
+(native-inputs `(("python2-setuptools" ,python2-setuptools)



Re: [GSoC] Integrating npm into the Guix ecosystem

2016-06-06 Thread ng0
On 2016-06-07(02:56:34AM+0200), Jelle Licht wrote:
>
> Greetings Guix hackers,
>
> It has been some time since my last mail to this list, so I wanted to
> share what I have been up to. For the people who might want to watch
> along after today, I will be posting the changes that should not break
> everything immediately to [1]. (Apologies for it being web-only, my
> sysadminfu is still lacking. If you know how to easily and most of all
> securely expose a git repo for read-only anonymous checkouts, please do
> tell).

I am preparing a guide on our (youbroketheinternet-overlay) way we work
with git for a long time now, it would be relatively easy to do this with
a domain name and not just tor.
The tor way involves setting up tor, torsocks, creating a dedicated git
user, set up a hidden service on port 9418 (git default), and for the git
repositories which should be exported touch a file "git-daemon-export-ok"
in the bare repository on the machine running this.

I will post this on the Gentoo wiki and probably finish it this month,
it should be easy to apply for any system though.
Adding dynamic dns name with OpenNIC or commercial/free providers to it
should be doable too, as I used it with a domain name for some time too.

> -- snip --

--
♥Ⓐ ng0
For non-prism friendly talk find me on
psyced.org / loupsycedyglgamf.onion


signature.asc
Description: Digital signature


Re: [GSoC] Integrating npm into the Guix ecosystem

2016-06-06 Thread John Darrington
Hello Jelle,

I suggest that you avoid the word "ecosystem" when describing the work of
people who have designed and contributed to Guix.  

See https://www.gnu.org/philosophy/words-to-avoid#Ecosystem

J'


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



signature.asc
Description: Digital signature


Re: [PATCH] gnu: Add python-ply and python2-ply.

2016-06-06 Thread Leo Famulari
On Tue, Jun 07, 2016 at 01:01:10AM +0200, Danny Milosavljevic wrote:

Thanks for the patch!

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

> +(uri (string-append
> +   "https://pypi.python.org/packages/96/e0/";
> +   
> "430fcdb6b3ef1ae534d231397bee7e9304be14a47a267e82ebcb3323d0b5/ply-"
> +   version
> +   ".tar.gz"))

We should adapt pypi-uri to handle the new scheme, but in the meantime,
can you put the hash on its own line, to reduce noise in the commit log
for future updates? This would be the whole thing:

  
"96/e0/430fcdb6b3ef1ae534d231397bee7e9304be14a47a267e82ebcb3323d0b5/"

> +(inputs
> +  `(("python-setuptools" ,python-setuptools)))

Does it use setuptools at run-time or just at build time? If the former,
then it can be a native-input. Also, if it's only required for the
python-2 version, can you use the python2-variant system as shown in the
package definition of python2-pyicu?

> +(description "ply is an lex/yacc implemented purely in Python.  It uses
> +LR parsing and does extensive error checking.")

`guix lint` prefers to begin the description with a capital 'P'.

Also, it's nice to wrap 'lex' and 'yacc' in Texinfo markup like this:
@code{lex}. Then, the word 'lex' will be rendered specially. I'm not
sure if we have a policy on this but I think it's useful when referring
to other packages.



[GSoC] Integrating npm into the Guix ecosystem

2016-06-06 Thread Jelle Licht

Greetings Guix hackers,

It has been some time since my last mail to this list, so I wanted to
share what I have been up to. For the people who might want to watch
along after today, I will be posting the changes that should not break
everything immediately to [1]. (Apologies for it being web-only, my
sysadminfu is still lacking. If you know how to easily and most of all
securely expose a git repo for read-only anonymous checkouts, please do
tell).

These first two weeks, I have mostly been keeping busy with writing some
of the features that will quickly allow me to identify problems with the
import and build procedures as I envision them. I was in luck; there
were many of these problems as I found out ;-).

One of the things that kind of worried me for a while was the fact that
npm was broken after my first attempts at writing _anything_. At this
moment, still being somehow intimidated by the guix code base, I had
quite some trouble finding out what was happening; it turns out
somewhere along the way, the way Node was built since version 6 (using
guix, at least) has changed, making the `npm' in the PATH of your guix
profile a _copy_ instead of a symlink to the actual executable
`npm-cli.js' script.

A patch to fix this is currently still brewing, so expect to see it
soon. In order to continue a bit (and implement something that actually
works), up till now I have worked with the 5.10 release of node.

After toiling a bit to find a nice way of getting node to find
dependencies, I started out with the NODE_PATH variable. Although some
alarming messages I read some time ago indicated this method of allowing
node to load modules is discouraged, but not deprecated.

At first I wanted to make use of a variant of the npm command to
actually take care of installing node modules to the store outputs; some
of the advantages include:

- The 'correct' files are ignored/always included
- The 'correct' symlinks are generated to executable scripts, man-pages
  and other documentation.
- Automatically up to date with new conventions in npm-land

While that all seemed (and still seems) quite nice, it happens to be the
case that npm is quite particular about dependencies that it will
accept. Patching the actual dependencies and versions in the
`package.json' file was another option, but after some consideration and
advice from my mentors I decided this would not work nicely in the long
term. Instead, I want to implement the relevant set of behaviors in
guix, of course allowing for our particular kind of dependency
management.

As such, the current installation phase mostly involves copying files to
their expected locations. I added support (as an exercise in build
system arguments) for 'global' installs[3], which as far as my current
bare-bones implementation is concerned means properly symlinking
executable scripts. In the (near-)future, I am looking into properly
wrapping these scripts to make sure the amount of propagated inputs is
kept to a minimum. As a sanity test, I packaged [4] in my own little
scratchpad. If you want to follow along, it only takes 4 `guix import
npm' invocations ;).

The current importer functions as expected for the "90%" of packages
that I tried. A problem that I ran into that I could not recognize as
easily in other importers is the fact that the npm community only
distributes the artifacts that you need to run the npm modules, but not
to build them. In most trivial cases, there are literally no
differences, but especially for more complicated packages involving
transpilation steps, this poses a problem.

As such, the importer can not actually 'know' of the location of the
source. Right now it uses some limited heuristics to probe GitHub
repositories for a tarball release, and if these are not found or the
sources are hosted at non-GH sites, it tries to check out a tag
according to the npm packaging conventions (SemVer).

The most important thing that needs to happen right now would be to
extend the range of packages that are buildable by the build system. A
combination of working towards having working 'large' packages and test
frameworks should help me quickly identify problems. This will be my
main focus for the next week.

I am aware that the current importer is quite brittle, so this needs to
change as well. As I run into problems (or someone brings them to my
attention), I will improve the quality of this subsystem as well.

If you have some advice, questions or problems, please do not hesitate
to reply. The same goes if you have some npm packages you would love to
see packaged.

Thanks a bunch for reading this WoT :)
- Jelle

[1]https://gitweb.jlicht.org/?p=guix.git;a=shortlog;h=refs/heads/gsoc-npm
[2]https://github.com/nodejs/node/issues/1627
[3]https://docs.npmjs.com/getting-started/installing-npm-packages-globally
[4]https://www.npmjs.com/package/package-json-validator



[PATCH] gnu: Add python-ply and python2-ply.

2016-06-06 Thread Danny Milosavljevic
gnu: Add python-ply and python2-ply.
* gnu/packages/python.scm (python-ply, python2-ply): New variables.
---
 gnu/packages/python.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index dfbf2cc..3ca2a86 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -9009,3 +9009,30 @@ focus on event-based network programming and 
multiprotocol integration.")
 
 (define-public python2-twisted
   (package-with-python2 python-twisted))
+
+(define-public python-ply
+  (package
+(name "python-ply")
+(version "3.8")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append
+   "https://pypi.python.org/packages/96/e0/";
+   
"430fcdb6b3ef1ae534d231397bee7e9304be14a47a267e82ebcb3323d0b5/ply-"
+   version
+   ".tar.gz"))
+(sha256
+  (base32
+"1f70ipynmiy09k6px2j7v4w5cdrc21za3xs2k6f1bsvb0bzvvlg7"
+(build-system python-build-system)
+(inputs
+  `(("python-setuptools" ,python-setuptools)))
+(home-page "http://www.dabeaz.com/ply/";)
+(synopsis "Python Lex & Yacc")
+(description "ply is an lex/yacc implemented purely in Python.  It uses
+LR parsing and does extensive error checking.")
+(license bsd-3)))
+
+(define-public python2-ply
+  (package-with-python2 python-ply))



Re: Hack font family for GuixSD.

2016-06-06 Thread Dmitry Nikolaev
>
> Could you send a update?  Thanks!
>

See "[PATCH] Hack font."

Dmitry


[PATCH] Hack font.

2016-06-06 Thread Dmitry Nikolaev
I've added Hack font family to fonts.scm. Patch in the attachment.

Dmitry
From 772fc5f4d5708188c3e863bff6486b8687e8bcd6 Mon Sep 17 00:00:00 2001
From: 8p8c 
Date: Mon, 6 Jun 2016 23:27:10 +0300
Subject: [PATCH] Add Hack font.

---
 gnu/packages/fonts.scm | 53 ++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 893db56..3a0f68d 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2016 Nils Gillmann 
 ;;; Copyright © 2016 Jookia <166...@gmail.com>
 ;;; Copyright © 2016 Eric Bavier 
+;;; Copyright © 2016 Dmitry Nikolaev 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -808,3 +809,55 @@ mind.  The font includes a bold version and a good italic version with new
 glyph designs, not just an added slant.")
 (home-page "https://fontlibrary.org/en/font/fantasque-sans-mono";)
 (license license:silofl1.1)))
+
+(define-public font-hack
+  (package
+(name "font-hack")
+(version "2.020")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/chrissimpkins/Hack/releases/download/v";
+version
+"/Hack-v"
+(string-replace-substring version "." "_")
+"-ttf.zip"))
+  (sha256
+   (base32
+"16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184"
+(build-system trivial-build-system)
+(arguments
+ `(#:modules ((guix build utils))
+   #:builder (begin
+   (use-modules (guix build utils)
+(srfi srfi-26))
+
+   (let ((PATH (string-append (assoc-ref %build-inputs
+ "unzip")
+  "/bin"))
+ (font-dir (string-append %output
+  "/share/fonts/truetype"))
+ (doc-dir  (string-append %output "/share/doc/"
+  ,name "-" ,version)))
+ (setenv "PATH" PATH)
+ (system* "unzip" (assoc-ref %build-inputs "source"))
+
+ (mkdir-p font-dir)
+ (mkdir-p doc-dir)
+ (for-each (lambda (ttf)
+ (copy-file ttf
+(string-append font-dir "/" ttf)))
+   (find-files "." "\\.ttf$"))
+ (for-each (lambda (doc)
+ (copy-file doc
+(string-append doc-dir "/" doc)))
+   (find-files "." "\\.txt$"))
+(native-inputs `(("source" ,source)
+ ("unzip" ,unzip)))
+(home-page "https://sourcefoundry.org/hack/";)
+(synopsis "A typeface designed for sourcecode.")
+(description "The Hack Font is designed for the screen.")
+(license
+ (license:x11-style
+  "https://github.com/chrissimpkins/Hack/blob/master/LICENSE.md";
+  "Hack Open Font License v2.0"
-- 
2.7.4



Re: [PATCH] gnu: Add nethack.

2016-06-06 Thread Kei Kebreau
On Sat, 04 Jun 2016 23:15:57 +0200
l...@gnu.org (Ludovic Courtès) wrote:

> Hi!
> 
> Kei Kebreau  skribis:
> 
> > From b728e078408f17136e8a4c3344b606e8f152b9e4 Mon Sep 17 00:00:00
> > 2001 From: Kei Kebreau 
> > Date: Tue, 31 May 2016 17:42:28 -0400
> > Subject: [PATCH] gnu: Add nethack.
> >
> > * gnu/packages/games.scm (nethack): New variable.  
> 
> You need to mention the new .patch file here (see ‘git log’ for
> examples.)
> 
> You also need to add the .patch file to gnu/local.mk, and to mention
> the change to gnu/local.mk in the commit log.
> 
> [...]
> 
> > + (replace 'configure
> > +   (lambda* (#:key inputs outputs #:allow-other-keys)
> > + (let ((out (assoc-ref outputs "out")))
> > +   (substitute* "sys/unix/hints/linux"
> > + (("^PREFIX=.*$")
> > +  (string-append "PREFIX=" out "\n"))
> > + (("/bin/gzip") (which "gzip")))
> > +   (substitute* "sys/unix/setup.sh"
> > + (("/bin/sh") (which "bash"
> > + (system* "sh" "sys/unix/setup.sh"
> > "sys/unix/hints/linux")))  
> 
> Should be: (zero? (system* …)), which returns #t on success (a phase
> must return a true value to be considered successful.)
> 
> > + (add-after 'install 'move-state-files
> > +   (lambda* (#:key inputs outputs #:allow-other-keys)
> > + (let* ((out (assoc-ref outputs "out")))
> > +   (mkdir (string-append out
> > "/games/lib/nethack-state-files"))
> > +   (chdir (string-append out "/games/lib/nethackdir"))
> > +   (for-each (lambda (file)
> > +   (system* "mv" file
> > +(string-append
> > + out
> > "/games/lib/nethack-state-files")))  
> 
> Instead of using the ‘mv’ command (or any other Coreutils command, for
> that matter), use the Scheme equivalent.  Here it would be:
> 
>   (install-file file directory)
> 
> Besides, “/games” is unusual in the file system hierarchy.  Usually,
> state files go to the localstatedir, i.e., the var/PACKAGE
> subdirectory.
> 
> Thus, what about putting state files in OUT/var/nethack?
> 
> But again, OUT is immutable, so these files cannot be modified, so
> they’re not really “state.”
> 
> > + '("logfile" "perm" "record" "save"
> > "xlogfile")  
> 
> For clarity, have the phase return #t.
> 
> > + (add-after 'move-state-files 'wrap-program
> > +   (lambda* (#:key inputs outputs #:allow-other-keys)
> > + (let* ((out (assoc-ref outputs "out"))
> > +(bin (string-append out "/bin"))
> > +(nethack-user-dir "~/.nethack"))
> > +   (mkdir bin)
> > +   (with-directory-excursion bin
> > + (call-with-output-file "nethack"
> > +   (lambda (port)
> > + (format port "#!~a/bin/sh -e
> > +# Create NetHack directory in user's $HOME if it isn't there
> > +if [ ! -d ~a ]; then
> > +  mkdir -p ~a
> > +  cp -r ~a/* ~a
> > +  chmod -R +w ~a
> > +fi
> > +
> > +RUNDIR=$(mktemp -d)
> > +
> > +cleanup() {
> > +  rm -rf $RUNDIR
> > +}
> > +trap cleanup EXIT
> > +
> > +cd $RUNDIR
> > +for i in ~a/*; do
> > +  ln -s $i $(basename $i)
> > +done
> > +for i in ~a/*; do
> > +  ln -s $i $(basename $i)
> > +done
> > +./nethack~%"  
> 
> Do we really need this wrapper?  Can’t we instead take it as a patch
> from Debian or something?  I’m not a fan of inline Bash code, and not
> very confident of scripts that do ‘rm -rf’.  :-)
> 
> 
> > +--- nethack-3.6.0.orig/include/config.h2016-05-27
> > 17:20:03.062318307 -0400  nethack-3.6.0/include/config.h
> > 2016-05-31 16:48:04.283642766 -0400  
> 
> Patches must always start with a line or two indicating what they do
> and what their upstream status or origin is.
> 
> > +@@ -308,7 +308,6 @@
> > + #define INSURANCE /* allow crashed game recovery */
> > + 
> > + #ifndef MAC
> > +-#define CHDIR /* delete if no chdir() available */
> > + #endif  
> 
> Why?
> 
> > +-# CC = gcc
> > ++CC = gcc
> > + #
> > + # For Bull DPX/2 systems at B.O.S. 2.0 or higher use the
> > following:
> > + #
> > +@@ -104,11 +104,11 @@
> > + 
> > + # yacc/lex programs to use to generate *_comp.h, *_lex.c, and
> > *_yacc.c.
> > + # if, instead of yacc/lex you have bison/flex, comment/uncomment
> > the following. +-YACC = yacc
> > +-LEX  = lex
> > +-# YACC = bison -y
> > ++# YACC = yacc
> > ++# LEX  = lex
> > ++YACC = bison -y
> > + # YACC = byacc
> > +-# LEX  = flex
> > ++LEX  = flex  
> 
> Would it work to, instead, do:
> 
>   #:make-flags '("CC=gcc" "LEX=flex" …)
> 
> If it does, I think it’s preferable.
> 
> Could you send an updated patch?
> 
> Thanks for working on this tricky package!  ;-)
> 
> Ludo’.

Unfortunately, Debian doesn't have any related patches because it's
state files are writable in the equivalent of our

Re: [PATCH 3/5] gnu: Add gwenhywfar.

2016-06-06 Thread Efraim Flashner
On Mon, Jun 06, 2016 at 05:19:16PM +0200, Ricardo Wurmus wrote:
> 
> Leo Famulari  writes:
> 
> > On Mon, Jun 06, 2016 at 03:22:59PM +0200, Ricardo Wurmus wrote:
> >> * gnu/packages/gnucash.scm (gwenhywfar): New variable.
> >
> >> +;; The license includes an explicit additional permission to compile 
> >> and
> >> +;; distribute this library with the OpenSSL Toolkit.
> >> +(license license:lgpl2.1+)))
> >
> > Only with OpenSSL, but not any other free software TLS implementations?
> 
> Yes.  Here’s the relevant section from COPYING:

offlineimap has a similar openssl exception

> ~~~
> Gwenhywfar is licensed under the GNU LGPL (see below) with this exception:
> 
> As the copyright holder of Gwenhywfar, Martin Preuss grants the following
> license exception:
> 
> Martin Preuss explicitly allows the compilation and distribution of
> Gwenhywfar with the OpenSSL Toolkit.
> No developer is required to provide this exception in a derived work.
> ~~~
> 
> ~~ Ricardo
> 
> 

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


signature.asc
Description: PGP signature


Re: [PATCH 4/5] gnu: Add AqBanking.

2016-06-06 Thread Ricardo Wurmus

Leo Famulari  writes:

> On Mon, Jun 06, 2016 at 03:23:00PM +0200, Ricardo Wurmus wrote:
>> * gnu/packages/gnucash.scm (aqbanking): New variable.
>
>> +;; AqBanking is licensed under the GPLv2 or GPLv3
>> +(license (list license:gpl2+ license:gpl3+
>
> Should it be (list license:gpl2 license:gpl3) in that case?

Yes, I think you are right.

~~ Ricardo




Re: [PATCH 3/5] gnu: Add gwenhywfar.

2016-06-06 Thread Ricardo Wurmus

Leo Famulari  writes:

> On Mon, Jun 06, 2016 at 03:22:59PM +0200, Ricardo Wurmus wrote:
>> * gnu/packages/gnucash.scm (gwenhywfar): New variable.
>
>> +;; The license includes an explicit additional permission to compile and
>> +;; distribute this library with the OpenSSL Toolkit.
>> +(license license:lgpl2.1+)))
>
> Only with OpenSSL, but not any other free software TLS implementations?

Yes.  Here’s the relevant section from COPYING:

~~~
Gwenhywfar is licensed under the GNU LGPL (see below) with this exception:

As the copyright holder of Gwenhywfar, Martin Preuss grants the following
license exception:

Martin Preuss explicitly allows the compilation and distribution of
Gwenhywfar with the OpenSSL Toolkit.
No developer is required to provide this exception in a derived work.
~~~

~~ Ricardo




[PATCH] gnu: base: Add glibc-for-target macro.

2016-06-06 Thread Manolis Ragkousis
Hello everyone,

This patch is from wip-hurd. It offers a unified way to packages to
access the libc without worrying about the kernel.

This patches applies on core-updates. Note that you have to run make
clean && make after applying this patch.

Thank you,
Manolis
From b19ac63ee9605c4e84c447668c5701bda284114f Mon Sep 17 00:00:00 2001
From: Manolis Ragkousis 
Date: Mon, 6 Jun 2016 17:21:51 +0300
Subject: [PATCH] gnu: base: Add glibc-for-target macro.

* gnu/packages/base.scm (glibc): Add macro.
  (glibc/linux): Rename glibc to glibc/linux.
  (glibc/hurd): Adjust accordingly.
---
 gnu/packages/base.scm | 132 --
 1 file changed, 73 insertions(+), 59 deletions(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 689ab2d..23f438d 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -44,7 +44,9 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system trivial))
+  #:use-module (guix build-system trivial)
+  #:use-module (ice-9 match)
+  #:export (glibc))
 
 ;;; Commentary:
 ;;;
@@ -464,7 +466,7 @@ store.")
 
 (export make-ld-wrapper)
 
-(define-public glibc
+(define-public glibc/linux
   (package
(name "glibc")
(version "2.23")
@@ -638,6 +640,75 @@ with the Linux kernel.")
(license lgpl2.0+)
(home-page "http://www.gnu.org/software/libc/";)))
 
+(define-public glibc/hurd
+  ;; The Hurd's libc variant.
+  (package (inherit glibc/linux)
+(name "glibc-hurd")
+(version "2.19")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://alpha.gnu.org/gnu/hurd/glibc-";
+  version "-hurd+libpthread-20160518" ".tar.gz"))
+  (sha256
+   (base32
+"12zmdjviybpsdb2kq4cg98rds7909f0cc96fzdahdfrzlxx1q0px"
+
+;; Libc provides , which includes a bunch of Hurd and Mach headers,
+;; so both should be propagated.
+(propagated-inputs `(("hurd-core-headers" ,hurd-core-headers)))
+(native-inputs
+ `(,@(package-native-inputs glibc/linux)
+   ("mig" ,mig)
+   ("perl" ,perl)))
+
+(arguments
+ (substitute-keyword-arguments (package-arguments glibc/linux)
+   ((#:phases original-phases)
+;; Add libmachuser.so and libhurduser.so to libc.so's search path.
+;; See .
+`(alist-cons-after
+  'install 'augment-libc.so
+  (lambda* (#:key outputs #:allow-other-keys)
+(let* ((out (assoc-ref outputs "out")))
+  (substitute* (string-append out "/lib/libc.so")
+(("/[^ ]+/lib/libc.so.0.3")
+ (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so"
+#t)
+  (alist-cons-after
+   'pre-configure 'pre-configure-set-pwd
+   (lambda _
+ ;; Use the right 'pwd'.
+ (substitute* "configure"
+   (("/bin/pwd") "pwd")))
+  ,original-phases)))
+((#:configure-flags original-configure-flags)
+`(append (list "--host=i586-pc-gnu"
+
+   ;; We need this to get a working openpty() function.
+   "--enable-pt_chown"
+
+   ;; nscd fails to build for GNU/Hurd:
+   ;; .
+   ;; Disable it.
+   "--disable-nscd")
+ (filter (lambda (flag)
+   (not (string-prefix? "--enable-kernel=" flag)))
+ ,original-configure-flags)
+(synopsis "The GNU C Library (GNU Hurd variant)")
+(supported-systems %hurd-systems)))
+
+(define* (glibc-for-target #:optional
+   (target (or (%current-target-system)
+   (%current-system
+  "Return the glibc for TARGET, GLIBC/LINUX for a Linux host or
+GLIBC/HURD for a Hurd host"
+  (match target
+((or "i586-pc-gnu" "i586-gnu") glibc/hurd)
+(_ glibc/linux)))
+
+(define-syntax glibc
+  (identifier-syntax (glibc-for-target)))
+
 (define-public glibc-2.21
   ;; The old libc, which we use mostly to build locale data in the old format
   ;; (which the new libc can cope with.)
@@ -757,63 +828,6 @@ variety of options.  It is an alternative to the shell \"type\" built-in
 command.")
 (license gpl3+))) ; some files are under GPLv2+
 
-(define-public glibc/hurd
-  ;; The Hurd's libc variant.
-  (package (inherit glibc)
-(name "glibc-hurd")
-(version "2.19")
-(source (origin
-  (method url-fetch)
-  (uri (string-append "http://alpha.gnu.org/gnu/hurd/glibc-";
-  version "-hurd+libpthread-20160518" ".tar.gz"))
-  (sha256
-   (base32
-   

Re: [PATCH 3/5] gnu: Add gwenhywfar.

2016-06-06 Thread Leo Famulari
On Mon, Jun 06, 2016 at 03:22:59PM +0200, Ricardo Wurmus wrote:
> * gnu/packages/gnucash.scm (gwenhywfar): New variable.

> +;; The license includes an explicit additional permission to compile and
> +;; distribute this library with the OpenSSL Toolkit.
> +(license license:lgpl2.1+)))

Only with OpenSSL, but not any other free software TLS implementations?



Re: [PATCH 4/5] gnu: Add AqBanking.

2016-06-06 Thread Leo Famulari
On Mon, Jun 06, 2016 at 03:23:00PM +0200, Ricardo Wurmus wrote:
> * gnu/packages/gnucash.scm (aqbanking): New variable.

> +;; AqBanking is licensed under the GPLv2 or GPLv3
> +(license (list license:gpl2+ license:gpl3+

Should it be (list license:gpl2 license:gpl3) in that case?



Re: [PATCH] Add msgpack

2016-06-06 Thread Leo Famulari
On Mon, May 30, 2016 at 03:50:41PM -0500, Lukas Gradl wrote:
> * gnu/packages/serialization.scm (msgpack): New variable.

> +(inputs
> + `(("zlib" ,zlib)))

I noticed that the output does not refer to zlib:

$ guix gc --references $(./pre-inst-env guix build msgpack)
/gnu/store/8m00x5x8ykmar27s9248cmhnkdb2n54a-glibc-2.22
/gnu/store/jh52sklgbvq5f0z637wr99a64y25cx8r-msgpack-1.4.1
/gnu/store/v39bh3ln3ncnzhyw0kd12d46kww9747v-gcc-4.9.3-lib

However, the compilation fails without it.

We need to make sure that msgpack can find zlib at run time. Lukas, can
you check if there is a build-time configuration option to provide the
path to zlib?



[PATCH 5/5] gnu: gnucash: Add support for AqBanking.

2016-06-06 Thread Ricardo Wurmus
* gnu/packages/gnucash.scm (gnucash)[inputs]: Add aqbanking.
[arguments]: Add configure flag to enable aqbanking.
---
 gnu/packages/gnucash.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 06a2261..5bac5a1 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -63,6 +63,7 @@
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("webkitgtk" ,webkitgtk/gtk+-2)
+   ("aqbanking" ,aqbanking)
("perl-date-manip" ,perl-date-manip)
("perl-finance-quote" ,perl-finance-quote)))
 (native-inputs
@@ -71,7 +72,8 @@
("pkg-config" ,pkg-config)))
 (arguments
  `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
-   #:configure-flags '("--disable-dbi")
+   #:configure-flags '("--disable-dbi"
+   "--enable-aqbanking")
#:phases
(modify-phases %standard-phases
  (add-after
-- 
2.8.3





[PATCH 4/5] gnu: Add AqBanking.

2016-06-06 Thread Ricardo Wurmus
* gnu/packages/gnucash.scm (aqbanking): New variable.
---
 gnu/packages/gnucash.scm | 43 +++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 25801aa..06a2261 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -24,12 +24,14 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
@@ -150,3 +152,44 @@ applications and libraries.  It is used by AqBanking.")
 ;; distribute this library with the OpenSSL Toolkit.
 (license license:lgpl2.1+)))
 
+(define-public aqbanking
+  (package
+(name "aqbanking")
+(version "5.6.10")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append 
"http://www.aquamaniac.de/sites/download/download.php?";
+   "package=03&release=206&file=01&dummy=aqbanking-"
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "1x0isvpk43rq2zlyyb9p0kgjmqv7yq07vgkiprw3f5sjkykvxw6d"
+(build-system gnu-build-system)
+(arguments
+ `(;; Parallel building fails because aqhbci is required before it's
+   ;; built.
+   #:parallel-build? #f
+   #:configure-flags
+   (list (string-append "--with-gwen-dir="
+(assoc-ref %build-inputs "gwenhywfar")
+(propagated-inputs
+ `(("gwenhywfar" ,gwenhywfar)))
+(inputs
+ `(("gmp" ,gmp)
+   ("xmlsec" ,xmlsec)
+   ("gnutls" ,gnutls)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("libltdl" ,libltdl)))
+(home-page "http://www.aquamaniac.de/sites/aqbanking/index.php";)
+(synopsis "Interface for online banking tasks")
+(description
+ "AqBanking is a modular and generic interface to online banking tasks,
+financial file formats (import/export) and bank/country/currency information.
+AqBanking uses backend plugins to actually perform the online tasks.  HBCI,
+OFX DirectConnect, YellowNet, GeldKarte, and DTAUS discs are currently
+supported.  AqBanking is used by GnuCash, KMyMoney, and QBankManager.")
+;; AqBanking is licensed under the GPLv2 or GPLv3
+(license (list license:gpl2+ license:gpl3+
-- 
2.8.3





[PATCH 3/5] gnu: Add gwenhywfar.

2016-06-06 Thread Ricardo Wurmus
* gnu/packages/gnucash.scm (gwenhywfar): New variable.
---
 gnu/packages/gnucash.scm | 43 +++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index c39324c..25801aa 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -25,12 +25,14 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xml))
@@ -107,3 +109,44 @@ the double-entry accounting practice.  It includes support 
for QIF/OFX/HBCI
 import and transaction matching.  It also automates several tasks, such as
 financial calculations or scheduled transactions.")
 (license license:gpl3+)))
+
+(define-public gwenhywfar
+  (package
+(name "gwenhywfar")
+(version "4.15.3")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append 
"http://www.aquamaniac.de/sites/download/download.php?";
+   "package=01&release=201&file=01&dummy=gwenhywfar-"
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "0fp67s932x66xfljb26zbrn8ambbc5y5c3hllr6l284nr63qf3ka"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   (list "--disable-network-checks"
+ ;; Both GTK+2 and QT4 are supported.
+ "--with-guis=gtk2"
+ (string-append "--with-openssl-includes="
+(assoc-ref %build-inputs "openssl") "/include")
+ (string-append "--with-openssl-libs="
+(assoc-ref %build-inputs "openssl") "/lib"
+(inputs
+ `(("libgcrypt" ,libgcrypt)
+   ("gnutls" ,gnutls)
+   ("openssl" ,openssl)
+   ("gtk+" ,gtk+-2)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(home-page "http://www.aquamaniac.de/sites/aqbanking/index.php";)
+(synopsis "Utility library for networking and security applications")
+(description
+ "This package provides a helper library for networking and security
+applications and libraries.  It is used by AqBanking.")
+;; The license includes an explicit additional permission to compile and
+;; distribute this library with the OpenSSL Toolkit.
+(license license:lgpl2.1+)))
+
-- 
2.8.3





[PATCH 2/5] gnu: xmlsec: Enable gnutls support.

2016-06-06 Thread Ricardo Wurmus
* gnu/packages/xml.scm (xmlsec)[native-inputs]: Add pkg-config.
---
 gnu/packages/xml.scm | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index dc5c60d..43072dc 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2013, 2015 Andreas Enge 
 ;;; Copyright © 2015 Eric Bavier 
 ;;; Copyright © 2015 Sou Bunnbu 
-;;; Copyright © 2015 Ricardo Wurmus 
+;;; Copyright © 2015, 2016 Ricardo Wurmus 
 ;;; Copyright © 2015 Mark H Weaver 
 ;;; Copyright © 2015 Efraim Flashner 
 ;;; Copyright © 2015 Raimon Grau 
@@ -40,7 +40,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
-  #:use-module (gnu packages linux))
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config))
 
 (define-public expat
   (package
@@ -635,6 +636,8 @@ XSL-T processor.  It also performs any necessary 
post-processing.")
  `(("gnutls" ,gnutls)
("libgcrypt" ,libgcrypt)
("libltdl" ,libltdl)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
 (home-page "http://www.libexpat.org/";)
 (synopsis "XML Security Library")
 (description
-- 
2.8.3





[PATCH 0/5] gnucash: Add AqBanking support.

2016-06-06 Thread Ricardo Wurmus
Hi Guix,

this patch set adds AqBanking to Gnucash.  AqBanking adds online banking
support to Gnucash, allowing people with German bank accounts to download
transactions and balances directly from their banks.

~~ Ricardo

Ricardo Wurmus (5):
  gnu: gnucash: Add "license:" prefix.
  gnu: xmlsec: Enable gnutls support.
  gnu: Add gwenhywfar.
  gnu: Add AqBanking.
  gnu: gnucash: Add support for AqBanking.

 gnu/packages/gnucash.scm | 96 ++--
 gnu/packages/xml.scm |  7 +++-
 2 files changed, 97 insertions(+), 6 deletions(-)

-- 
2.8.3





[PATCH 1/5] gnu: gnucash: Add "license:" prefix.

2016-06-06 Thread Ricardo Wurmus
* gnu/packages/gnucash.scm: Import licenses with "license:" prefix.
(gnucash)[license]: Add prefix.
---
 gnu/packages/gnucash.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 5c0ce4f..c39324c 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Ricardo Wurmus 
+;;; Copyright © 2015, 2016 Ricardo Wurmus 
 ;;; Copyright © 2015 Eric Bavier 
 ;;; Copyright © 2016 Efraim Flashner 
 ;;;
@@ -19,7 +19,7 @@
 ;;; along with GNU Guix.  If not, see .
 
 (define-module (gnu packages gnucash)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -106,4 +106,4 @@ It can be used to track bank accounts, stocks, income and 
expenses, based on
 the double-entry accounting practice.  It includes support for QIF/OFX/HBCI
 import and transaction matching.  It also automates several tasks, such as
 financial calculations or scheduled transactions.")
-(license gpl3+)))
+(license license:gpl3+)))
-- 
2.8.3





Re: [Patch] go@1.4 Updated patch

2016-06-06 Thread Andy Wingo
On Mon 06 Jun 2016 11:05, Alex Vong  writes:

> I think match-lambda is not documented in the guile manual (it only
> appears in an example). While its usage is more or less the same as in
> racket, I think it should be documented. What is your idea?

Yes it should be documented :)

Andy



Re: Implementing guix system rollback / switch-generation

2016-06-06 Thread Leo Famulari
On Sun, Jun 05, 2016 at 03:29:22PM -0700, Chris Marusich wrote:
> More generally, are people satisfied with the way system rollback is
> currently implemented in GuixSD?  Do you think that the mechanism I'm
> proposing is a bad idea?  I'd hate to try to implement something that
> nobody else thinks is needed.

I roll back from the GRUB menu if I've totally broken the system.
Otherwise, I use Git to manage the system configuration and roll back by
checkout out an earlier commit.

But, I think we should be able to switch to arbitrary system generations
and delete generations with the Guix tools.



Re: GCC bootstrap failure on ARM

2016-06-06 Thread Ludovic Courtès
Hello!

For the record, at this point I’m mostly relying on the GCC developers
to help with this failure.  I’ve reported the issue at:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71399

Ludo’.



Re: [Patch] go@1.4 Updated patch

2016-06-06 Thread Alex Vong
Hello,

I think match-lambda is not documented in the guile manual (it only
appears in an example). While its usage is more or less the same as in
racket, I think it should be documented. What is your idea?

Thanks,
Alex

On 06/06/2016, Andy Wingo  wrote:
> Hi :)
>
> Looking good!  I have some style nits :)
>
> On Fri 03 Jun 2016 19:39, Matthew Jordan 
> writes:
>
>> +   ;; Removing net/ tests
>> +   (for-each
>> +(lambda (srcfile)
>> +  (let ((srcfile (string-append "net/" srcfile)))
>> +  (if (file-exists? srcfile)
>> +  (delete-file srcfile
>> +'("multicast_test.go" "parse_test.go" "port_test.go"))
>
> Either these files exist or they do not.  Better to just have three
> unconditional delete-file invocations.
>
>> +
>> +   ;; Add libgcc to runpath
>> +   (substitute* "cmd/go/build.go"
>> + (("cgoldflags := \\[\\]string\\{\\}")
>> +  (string-append "cgoldflags := []string{"
>> + "\"-rpath=" gcclib "\""
>> + "}"))
>> + (("ldflags := buildLdflags")
>> +  (string-append
>> +   "ldflags := buildLdflags\n"
>> +   "ldflags = append(ldflags, \"-r\")\n"
>> +   "ldflags = append(ldflags, \"" gcclib "\")\n")))
>> +
>> +   (substitute* "os/os_test.go"
>> + (("/usr/bin") (getcwd))
>> + (("/bin/pwd") (which "pwd")))
>> +
>> +   ;; Disable failing tests
>> +   (for-each
>> +(lambda (srcfile)
>> +  (substitute* (car srcfile)
>> +(((cdr srcfile) all) (string-append all
>> "return\n"
>
> Is this a nice way to disable tests?  I dunno.  Why not change the test
> name from TestFoo to DisabledTestFoo ?  Then it would not get run.
>
> Also let's avoid car and cdr, and instead use match-lambda:
>
>   (match-lambda
>((file . pattern)
> ...))
>
> But let's also avoid dotted pairs in bigger literal data structures;
> it's ugly when there's lots of punctuation around.  So if you change the
> lines to be like
>
>   ("net/net_test.go" ".+TestShutdownUnix.+")
>
> you can
>
>   (match-lambda
>((file pattern)
> ...))
>
> Note the lack of " . ".
>
>> +(list
>> + '("net/net_test.go" . ".+TestShutdownUnix.+")
>> + '("net/dial_test.go" . ".+TestDialTimeout.+")
>
> Here make the whole list a literal instead of calling `list' on a list
> of quoted datums:
>
>   '(("net/net_test.go" ".+TestHostname.+")
> ...)
>
> Cheers,
>
> Andy
>
>



Re: [Patch] go@1.4 Updated patch

2016-06-06 Thread Andy Wingo
Hi :)

Looking good!  I have some style nits :)

On Fri 03 Jun 2016 19:39, Matthew Jordan  
writes:

> +   ;; Removing net/ tests
> +   (for-each
> +(lambda (srcfile)
> +  (let ((srcfile (string-append "net/" srcfile)))
> +  (if (file-exists? srcfile)
> +  (delete-file srcfile
> +'("multicast_test.go" "parse_test.go" "port_test.go"))

Either these files exist or they do not.  Better to just have three
unconditional delete-file invocations.

> +
> +   ;; Add libgcc to runpath
> +   (substitute* "cmd/go/build.go"
> + (("cgoldflags := \\[\\]string\\{\\}")
> +  (string-append "cgoldflags := []string{"
> + "\"-rpath=" gcclib "\""
> + "}"))
> + (("ldflags := buildLdflags")
> +  (string-append
> +   "ldflags := buildLdflags\n"
> +   "ldflags = append(ldflags, \"-r\")\n"
> +   "ldflags = append(ldflags, \"" gcclib "\")\n")))
> +
> +   (substitute* "os/os_test.go"
> + (("/usr/bin") (getcwd))
> + (("/bin/pwd") (which "pwd")))
> +
> +   ;; Disable failing tests
> +   (for-each
> +(lambda (srcfile)
> +  (substitute* (car srcfile)
> +(((cdr srcfile) all) (string-append all "return\n"

Is this a nice way to disable tests?  I dunno.  Why not change the test
name from TestFoo to DisabledTestFoo ?  Then it would not get run.

Also let's avoid car and cdr, and instead use match-lambda:

  (match-lambda
   ((file . pattern)
...))

But let's also avoid dotted pairs in bigger literal data structures;
it's ugly when there's lots of punctuation around.  So if you change the
lines to be like

  ("net/net_test.go" ".+TestShutdownUnix.+")

you can

  (match-lambda
   ((file pattern)
...))

Note the lack of " . ".

> +(list
> + '("net/net_test.go" . ".+TestShutdownUnix.+")
> + '("net/dial_test.go" . ".+TestDialTimeout.+")

Here make the whole list a literal instead of calling `list' on a list
of quoted datums:

  '(("net/net_test.go" ".+TestHostname.+")
...)

Cheers,

Andy



Re: Implementing guix system rollback / switch-generation

2016-06-06 Thread Ludovic Courtès
Hi Chris,

Chris Marusich  skribis:

> Basically, I think there should be a command like "guix system
> roll-back" which does the opposite of "guix system reconfigure
> config.scm".  The rollback command should not require an operating
> system configuration file.  I think this would be better than the
> current rollback methods.  What do you think?

It would definitely be a welcome addition!  The refactoring that was
done to add ‘guix system list-generations’ was in the same spirit.

> As I understand it, when I invoke "guix system reconfigure config.scm",
> the following things happen (in guix/scripts/system.scm):
>
> * A new system is built in the store (e.g.,
>   /gnu/store/1qkdd4glvqjqf7azqniis7abkf7v1lng-system).
>
> * A new symlink is created in /var/guix/profiles (e.g.,
>   /var/guix/profiles/system-7-link), which points to the system in the
>   store.
>
> * The /var/guix/profiles/system symlink is updated to point to the new
>   symlink.
>
> * The new system's activation script is run, and the Shepherd services
>   are upgraded.
>
> * A new grub.cfg is copied to /boot/grub/grub.cfg.  This new grub.cfg
>   updates the default menu entry to point to the new system, and it adds
>   the previous system to the list of previous generations.
>
> At this point, you are running a new system.  I am not sure if you need
> to reboot to truly upgrade, but judging by the implementation of the
> upgrade-shepherd-services procedure, it seems like you might sometimes
> need to reboot to "really" complete the upgrade process.

Indeed.  Service upgrade is conservative, so it will not stop running
services, because it cannot know if this is something the user wants and
if it is safe; only services that are not currently running are loaded
and started upon reconfigure.

  http://bugs.gnu.org/22039

To improve on this, I think it should be possible for Shepherd services
to provide an ‘upgrade’ method in addition to start/stop, for those
services that can be upgraded with no downtime (there aren’t so many of
them, though.)

> * Manually update the /var/guix/profiles/system symlink to point to a
>   previous generation, e.g., /var/guix/profiles/system-5-link.
>
> If you do this, it seems the running system will not actually be rolled
> back.  The system pointed to by /run/current-system will not change,
> since it points to a store path rather than to the
> /var/guix/profiles/system symlink.

‘guix system reconfigure’ could explicitly update /run/current-system to
point to the old system.

> In addition, because /boot/grub/grub.cfg has not been modified, when
> you reboot, GRUB will still automatically select and boot the system
> from which you wanted to roll back.  Also, the previous system's
> activation script will not be run, and the shepherd services will not
> be downgraded.  With that in mind, I'm not really sure what manually
> flipping this symlink actually accomplishes.

Not much, indeed.

The problem with system rollback, as you’ve seen, is that we lack
information about the old system, such as what its activation script is
and what its Shepherd services are.

We could add the activation script’s file name to the ‘parameters’ file
that you see in the result of ‘guix system build foo.scm’.  But it would
be hard to add a forward-compatible yet complete description of the
Shepherd services there.

> * Use the emacs interface to update that symlink.
>
> This is the same as above, except that emacs does the symlink flip for
> you.  It does not seem to actually roll back the system.  The elisp code
> seems to assume that flipping the symlink is sufficient.  Maybe that
> works for changing user profile generations, but it seems to be
> insufficient for system generation changes.
>
> * While booting, at the GRUB menu, manually select a previous
>   generation.
>
> This is the only method that seems to actually put the system back into
> a previous state, and it appears to do so correctly.  I've used this
> method to save my systems a few times from bad upgrades, which is great.
> The only downside to this method is that it doesn't modify the grub.cfg
> file: until you reconfigure your system again, every time you restart,
> GRUB will continue to automatically select and boot the newer,
> problematic system from which you wanted to roll back.

ISTR that GRUB has a mechanism to record the last selected menu entry
and to use that as the next default entry.

Now, it’s not always what one would want to do.

However, ‘guix system roll-back/switch-generation’ could generate a
grub.cfg where the default menu entry points to whatever old generation
has been selected.

> I'd like to implement a rollback mechanism that lets you run a single
> command which actually does the opposite of "guix system reconfigure".
> I've looked at the code in guix/scripts/system.scm, and at first blush
> this seems like a straightforward task.  However, I've noticed that the
> switch-to-system procedure requires an operating system configuration

Re: [PATCH 2/4] gnu: ruby-activesupport: Add 'ruby-tzinfo-data' propagated input.

2016-06-06 Thread Ludovic Courtès
Ben Woodcroft  skribis:

> * gnu/packages/ruby.scm (ruby-activesupport)[propagated-inputs]: Add
> 'ruby-tzinfo-data'.

This one LGTM, thanks.  :-)

Ludo’.