[PATCH 1/5] gnu: python-cryptography: Define 'python2-variant'.

2016-02-09 Thread Leo Famulari
* gnu/packages/python.scm (python-cryptography)[properties]: New field.
(python2-cryptography): Use 'strip-python2-variant'.
---
 gnu/packages/python.scm | 20 +++-
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5b988c1..982de40 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2334,11 +2334,8 @@ OAuth request-signing logic.")
   (let ((base (package-with-python2 python-oauthlib)))
 (package
   (inherit base)
-  (inputs
-   `(("python2-unittest2" ,python2-unittest2)
- ("python2-cryptography" ,python2-cryptography)
- ,@(alist-delete "python-cryptography"
-(package-inputs base)))
+  (inputs `(("python2-unittest2" ,python2-unittest2)
+ ,@(package-inputs base))
 
 (define-public python-itsdangerous
   (package
@@ -5821,10 +5818,12 @@ library” for Python.  The package includes both high 
level recipes, and low
 level interfaces to common cryptographic algorithms such as symmetric ciphers,
 message digests and key derivation functions.")
 ;; Distributed under either BSD-3 or ASL2.0
-(license (list bsd-3 asl2.0
+(license (list bsd-3 asl2.0))
+(properties `((python2-variant . ,(delay python2-cryptography))
 
 (define-public python2-cryptography
-  (let ((crypto (package-with-python2 python-cryptography)))
+  (let ((crypto (package-with-python2
+ (strip-python2-variant python-cryptography
 (package (inherit crypto)
   (propagated-inputs
`(("python2-ipaddress" ,python2-ipaddress)
@@ -5881,12 +5880,7 @@ library.")
 (license asl2.0)))
 
 (define-public python2-pyopenssl
-  (let ((pyopenssl (package-with-python2 python-pyopenssl)))
-(package (inherit pyopenssl)
-  (propagated-inputs
-   `(("python2-cryptography" ,python2-cryptography)
- ,@(alist-delete "python-cryptography"
- (package-propagated-inputs pyopenssl)))
+  (package-with-python2 python-pyopenssl))
 
 (define-public python-pip
   (package
-- 
2.6.3




[PATCH 4/5] gnu: python-requests: Define 'python2-variant'.

2016-02-09 Thread Leo Famulari
* gnu/packages/python.scm (python-requests)[properties]: New field.
(python2-requests): Use 'strip-python2-variant'.
---
 gnu/packages/python.scm | 7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4d6b1f7..a107d65 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2190,12 +2190,7 @@ than Python’s urllib2 library.")
"0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))
 
 (define-public python2-requests
-  (let ((requests (package-with-python2 python-requests)))
-(package (inherit requests)
-  (propagated-inputs
-   `(("python2-wheel" ,python2-wheel)
- ,@(alist-delete "python-wheel"
- (package-propagated-inputs requests)))
+  (package-with-python2 python-requests))
 
 (define-public python-vcversioner
   (package
-- 
2.6.3




[PATCH 0/5] python2-variants

2016-02-09 Thread Leo Famulari
These patches apply the new python2-variant system introduced in
1be83341 to python2-{cryptography, jsonschema, wheel, requests}, and
then split acme into python-acme and python2-acme.

As usual, I tested the changes to acme / letsencrypt by renewing the
certificates of my webserver [0].

I'm not 100% confident in the style of these changes, or in the
selection of packages I updated, aside from this being the minimum
number of packages to update in order to split acme in two. But it seems
that it's not necessary to update the full graph of packages touched by
these changes.

Feedback?

[0]
It turns out that my server can't build python2-cryptography from
source. I guess that 1 GB RAM is not enough. So I learned how to use
`guix archive` :)

Leo Famulari (5):
  gnu: python-cryptography: Define 'python2-variant'.
  gnu: python-jsonschema: Define 'python2-variant'.
  gnu: python-wheel: Define 'python2-variant'.
  gnu: python-requests: Define 'python2-variant'.
  gnu: Split acme into python-acme and python2-acme.

 gnu/packages/python.scm | 47 +++
 gnu/packages/tls.scm| 34 ++
 2 files changed, 37 insertions(+), 44 deletions(-)

-- 
2.6.3




[PATCH 5/5] gnu: Split acme into python-acme and python2-acme.

2016-02-09 Thread Leo Famulari
* gnu/packages/tls.scm (acme): Split variable into...
(python-acme, python2-acme): ...both Python variants.
(letsencrypt)[propagated-inputs]: Update user of renamed variable.
---
 gnu/packages/tls.scm | 34 ++
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index f79db32..a7945ba 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -318,9 +318,9 @@ security, and applying best practice development 
processes.")
  "file://COPYING"
  "See COPYING in the distribution.")
 
-(define-public acme
+(define-public python-acme
   (package
-(name "acme")
+(name "python-acme")
 (version "0.3.0")
 (source (origin
   (method url-fetch)
@@ -330,8 +330,7 @@ security, and applying best practice development 
processes.")
  "1x6fd3cw9pq45k71rgmxi91hmdmnbf1xxvlfwv31fmzs5255dlbw"
 (build-system python-build-system)
 (arguments
- `(#:python ,python-2
-   #:phases
+ `(#:phases
(modify-phases %standard-phases
  (add-before 'install 'disable-egg-compression
(lambda _
@@ -344,23 +343,26 @@ security, and applying best practice development 
processes.")
#t))
 ;; TODO: Add optional inputs for testing and building documentation.
 (native-inputs
- `(("python2-mock" ,python2-mock)
-   ("python2-setuptools" ,python2-setuptools)))
+ `(("python-mock" ,python-mock)
+   ("python-setuptools" ,python-setuptools)))
 (propagated-inputs
- `(("python2-ndg-httpsclient" ,python2-ndg-httpsclient)
-   ("python2-werkzeug" ,python2-werkzeug)
-   ("python2-six" ,python2-six)
-   ("python2-requests" ,python2-requests)
-   ("python2-pytz" ,python2-pytz)
-   ("python2-pyrfc3339" ,python2-pyrfc3339)
-   ("python2-pyasn1" ,python2-pyasn1)
-   ("python2-cryptography" ,python2-cryptography)
-   ("python2-pyopenssl" ,python2-pyopenssl)))
+ `(("python-ndg-httpsclient" ,python-ndg-httpsclient)
+   ("python-werkzeug" ,python-werkzeug)
+   ("python-six" ,python-six)
+   ("python-requests" ,python-requests)
+   ("python-pytz" ,python-pytz)
+   ("python-pyrfc3339" ,python-pyrfc3339)
+   ("python-pyasn1" ,python-pyasn1)
+   ("python-cryptography" ,python-cryptography)
+   ("python-pyopenssl" ,python-pyopenssl)))
 (home-page "https://github.com/letsencrypt/letsencrypt";)
 (synopsis "ACME protocol implementation in Python")
 (description "ACME protocol implementation in Python")
 (license license:asl2.0)))
 
+(define-public python2-acme
+  (package-with-python2 python-acme))
+
 (define-public letsencrypt
   (package
 (name "letsencrypt")
@@ -379,7 +381,7 @@ security, and applying best practice development 
processes.")
  `(("python2-nose" ,python2-nose)
("python2-mock" ,python2-mock)))
 (propagated-inputs
- `(("acme" ,acme)
+ `(("python2-acme" ,python2-acme)
("python2-zope-interface" ,python2-zope-interface)
("python2-pythondialog" ,python2-pythondialog)
("python2-pyrfc3339" ,python2-pyrfc3339)
-- 
2.6.3




[PATCH 3/5] gnu: python-wheel: Define 'python2-variant'.

2016-02-09 Thread Leo Famulari
* gnu/packages/python.scm (python-wheel)[properties]: New field.
(python2-wheel): Use 'strip-python2-variant'.
---
 gnu/packages/python.scm | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0a90e48..4d6b1f7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2141,16 +2141,16 @@ packages will be properly installed with only the 
@code{Unpack} step and the
 unpacked archive preserves enough information to @code{Spread} (copy data and
 scripts to their final locations) at any later time.  Wheel files can be
 installed with a newer @code{pip} or with wheel's own command line utility.")
-(license license:expat)))
+(license license:expat)
+(properties `((python2-variant . ,(delay python2-wheel))
 
 (define-public python2-wheel
-  (let ((wheel (package-with-python2 python-wheel)))
+  (let ((wheel (package-with-python2
+(strip-python2-variant python-wheel
 (package (inherit wheel)
-  (native-inputs
-   `(("python2-functools32" ,python2-functools32)
- ("python2-jsonschema" ,python2-jsonschema)
- ,@(alist-delete "python-jsonschema"
- (package-native-inputs wheel)))
+  (native-inputs `(("python2-functools32" ,python2-functools32)
+,@(package-native-inputs wheel))
+
 
 (define-public python-requests
   (package
-- 
2.6.3




[PATCH 2/5] gnu: python-jsonschema: Define 'python2-variant'.

2016-02-09 Thread Leo Famulari
* gnu/packages/python.scm (python-jsonschema)[properties]: New field.
(python2-jsonschema): Use 'strip-python2-variant'.
---
 gnu/packages/python.scm | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 982de40..0a90e48 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2242,10 +2242,12 @@ version numbers.")
 (synopsis "Implementation of JSON Schema for Python")
 (description
  "Jsonschema is an implementation of JSON Schema for Python.")
-(license license:expat)))
+(license license:expat)
+(properties `((python2-variant . ,(delay python2-jsonschema))
 
 (define-public python2-jsonschema
-  (let ((jsonschema (package-with-python2 python-jsonschema)))
+  (let ((jsonschema (package-with-python2
+ (strip-python2-variant python-jsonschema
 (package (inherit jsonschema)
   (inputs
`(("python2-functools32" ,python2-functools32)
-- 
2.6.3




Re: [PATCH 3/5] gnu: python-wheel: Define 'python2-variant'.

2016-02-09 Thread Leo Famulari
On Tue, Feb 09, 2016 at 03:11:01AM -0500, Leo Famulari wrote:
> * gnu/packages/python.scm (python-wheel)[properties]: New field.
> (python2-wheel): Use 'strip-python2-variant'.

And this commit message doesn't mention the removal of the special
treatment of python-jsonschema.

> ---
>  gnu/packages/python.scm | 14 +++---
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 0a90e48..4d6b1f7 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -2141,16 +2141,16 @@ packages will be properly installed with only the 
> @code{Unpack} step and the
>  unpacked archive preserves enough information to @code{Spread} (copy data and
>  scripts to their final locations) at any later time.  Wheel files can be
>  installed with a newer @code{pip} or with wheel's own command line utility.")
> -(license license:expat)))
> +(license license:expat)
> +(properties `((python2-variant . ,(delay python2-wheel))
>  
>  (define-public python2-wheel
> -  (let ((wheel (package-with-python2 python-wheel)))
> +  (let ((wheel (package-with-python2
> +(strip-python2-variant python-wheel
>  (package (inherit wheel)
> -  (native-inputs
> -   `(("python2-functools32" ,python2-functools32)
> - ("python2-jsonschema" ,python2-jsonschema)
> - ,@(alist-delete "python-jsonschema"
> - (package-native-inputs wheel)))
> +  (native-inputs `(("python2-functools32" ,python2-functools32)
> +,@(package-native-inputs wheel))
> +
>  
>  (define-public python-requests
>(package
> -- 
> 2.6.3
> 
> 



Re: [PATCH 4/5] gnu: python-requests: Define 'python2-variant'.

2016-02-09 Thread Leo Famulari
On Tue, Feb 09, 2016 at 03:11:02AM -0500, Leo Famulari wrote:
> * gnu/packages/python.scm (python-requests)[properties]: New field.
> (python2-requests): Use 'strip-python2-variant'.

I see that this commit message is wrong. I mindlessly repeated previous
one.

> ---
>  gnu/packages/python.scm | 7 +--
>  1 file changed, 1 insertion(+), 6 deletions(-)
> 
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 4d6b1f7..a107d65 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -2190,12 +2190,7 @@ than Python’s urllib2 library.")
> "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))
>  
>  (define-public python2-requests
> -  (let ((requests (package-with-python2 python-requests)))
> -(package (inherit requests)
> -  (propagated-inputs
> -   `(("python2-wheel" ,python2-wheel)
> - ,@(alist-delete "python-wheel"
> - (package-propagated-inputs requests)))
> +  (package-with-python2 python-requests))
>  
>  (define-public python-vcversioner
>(package
> -- 
> 2.6.3
> 
> 



[PATCH] gnu: Add GNU Mach.

2016-02-09 Thread Manolis Ragkousis
Here is the GNU Mach package.

If ok, I will push to wip-hurd.

Manolis
>From 63d8cac0762393340247d96e392d417763e57b04 Mon Sep 17 00:00:00 2001
From: Manolis Ragkousis 
Date: Tue, 9 Feb 2016 11:59:54 +0200
Subject: [PATCH] gnu: Add GNU Mach.

* gnu/packages/hurd.scm (gnumach): New variable.
---
 gnu/packages/hurd.scm | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 560da4d..553821b 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis 
+;;; Copyright © 2014, 2015, 2016 Manolis Fragkiskos Ragkousis 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -209,3 +209,16 @@ Library for GNU/Hurd.")
 which are needed for both glibc and gcc")
 (home-page (package-home-page hurd-headers))
 (license (package-license hurd-headers
+
+(define-public gnumach
+  (package (inherit gnumach-headers)
+(name "gnumach")
+(build-system gnu-build-system)
+(native-inputs
+ `(("mig" ,mig)
+   ("perl" ,perl)))
+(arguments
+ `(#:phases %standard-phases))
+(synopsis "Microkernel of the GNU system")
+(description
+ "GNU Mach is the microkernel upon which a GNU Hurd system is based.")))
-- 
2.7.0



Re: [PATCH] gnu: add lispf4

2016-02-09 Thread Nils Gillmann
Efraim Flashner  writes:

> On Tue, 09 Feb 2016 02:31:51 +0100
> Nils Gillmann  wrote:
>
>> Leo Famulari  writes:
>> 
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>> 
>> Thanks!
>> 
>> But now as I did guix pull and installed it from there, and do
>> not run it inside guix environment, I encounter an error I did
>> not see coming as it worked in the environment.
>> 
>> 
>> niasterisk@khazad-dum ~$ guix package -i lispf4
>> The following package will be installed:
>>lispf40.0.0-1-174d876 
>> /gnu/store/7rkw1rhn4ijap9b936waspki03260lpb-lispf4-0.0.0-1-174d876
>> 
>> 56 packages in profile
>> niasterisk@khazad-dum ~$ lispf4
>> Can't open 'SYSATOMS'
>> niasterisk@khazad-dum ~$ ls -al 
>> /gnu/store/7rkw1rhn4ijap9b936waspki03260lpb-lispf4-0.0.0-1-174d876/bin/
>> total 200
>> dr-xr-xr-x 2 root guixbuild  4096 Jan  1  1970 ./
>> dr-xr-xr-x 3 root guixbuild  4096 Jan  1  1970 ../
>> -r--r--r-- 3 root guixbuild 94972 Jan  1  1970 BASIC.IMG
>> -r-xr-xr-x 7 root guixbuild 92088 Jan  1  1970 lispf4
>> -r--r--r-- 7 root guixbuild  2105 Jan  1  1970 SYSATOMS
>> 
>> I checked ~/.guix-profile/bin/ and it's there, all three files.
>> For what I know, SYSATOMS includes allowed commands, that's it.
>> My guix checkout I develop with is in my home folder, permissions
>> for my daily user and all checked in guix environment.
>> 
>> Any Ideas?
>
> If you replace the install phase sometimes you have to change the permissions
> yourself. Try searching for #o555.

Okay, thanks.
I tried this but it doesn't change in the environment.
On another system, in Debian, the permissions (in my users home)
are:
SYSATOMS: 644
lispf4: 755
BASIC.IMG 644

without changes, current lispf4 from master:
niasterisk@khazad-dum ~/projects/guix_project/guix [env]$ ./pre-inst-env guix 
build lispf4
/gnu/store/7rkw1rhn4ijap9b936waspki03260lpb-lispf4-0.0.0-1-174d876
/gnu/store/871yzidvz2h4kpjx9sb116b0lshr88dn-lispf4-0.0.0-1-174d876-doc
niasterisk@khazad-dum ~/projects/guix_project/guix [env]$ ls -al 
/gnu/store/7rkw1rhn4ijap9b936waspki03260lpb-lispf4-0.0.0-1-174d876/bin/
total 200
dr-xr-xr-x 2 root guixbuild  4096 Jan  1  1970 ./
dr-xr-xr-x 3 root guixbuild  4096 Jan  1  1970 ../
-r--r--r-- 4 root guixbuild 94972 Jan  1  1970 BASIC.IMG
-r-xr-xr-x 8 root guixbuild 92088 Jan  1  1970 lispf4
-r--r--r-- 8 root guixbuild  2105 Jan  1  1970 SYSATOMS

If I try 555 for both files, the output with the rights is below.
I wonder, do I need to set it to 644 as it happens on the Debian
system? Should I use guix system vm to test this? I expected that
environment behaves like what pushed as a patch...

niasterisk@khazad-dum ~/projects/guix_project/guix [env]$ ./pre-inst-env guix 
build lispf4
substitute: updating list of substitutes from 'http://hydra.gnu.org'... 100.0%
The following derivation will be built:
   /gnu/store/sb8qa4wywg0lba7aphn8qmr7q3bznn0i-lispf4-0.0.0-1-174d876.drv
@ build-started 
/gnu/store/sb8qa4wywg0lba7aphn8qmr7q3bznn0i-lispf4-0.0.0-1-174d876.drv - 
x86_64-linux 
/var/log/guix/drvs/sb//8qa4wywg0lba7aphn8qmr7q3bznn0i-lispf4-0.0.0-1-174d876.drv.bz2
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to 
`/gnu/store/0m1wh7i21w6x6agjard3x1bd53y6h1b4-tar-1.28/bin:/gnu/store/8qcqrz4r483vbcbwx5xzy11kdkxqv0c8-gzip-1.6/bin:/gnu/store/mpgci6nb800ckc8cyi3vhm9i8h17zm2l-bzip2-1.0.6/bin:/gnu/store/kz4vzwnm7vdnxbfb3ygc91iv68rjsfmm-xz-5.2.2/bin:/gnu/store/iw4xjh2fx7lbil7m7yghz7yyrf6ks8pq-file-5.25/bin:/gnu/store/gg7yl3al4ms4p9z67k1r7k0jn918l864-diffutils-3.3/bin:/gnu/store/1g9bd3ccfpslgirikaw7wcdrspavz2xz-patch-2.7.5/bin:/gnu/store/4jmy669vqj2zkz03z6jrk26if2y2m6ad-sed-4.2.2/bin:/gnu/store/z6780v4ix4h1id452gnhl9p15rl3rx9y-findutils-4.6.0/bin:/gnu/store/c2ci62qwp62rcpbh9qgmmlyvgszvf8yn-gawk-4.1.3/bin:/gnu/store/iy9a4pk184ipkd470rvssx26rrnl2c5c-grep-2.22/bin:/gnu/store/wczs2ckr8y0m79h3nl199lx85vmidga3-coreutils-8.24/bin:/gnu/store/l1iq0lhklsiw7q7jhlw9cgdkcm6axd38-make-4.1/bin:/gnu/store/l7px210li6zviymgvp3cps6n48x7fgpl-bash-4.3.42/bin:/gnu/store/agnxzx1yza8ci0a1gz5pds8gdg8qmnz5-ld-wrapper-0/bin:/gnu/store/dki0v5cvf1mhfz571k622xvzi1nyinl2-binutils-2.25.1/bin:/gnu/store/gz9h7bicwcx3qbvnp0xgpvh50q5l104b-gcc-4.9.3/bin:/gnu/store/gybk6iz6n659njzg56vqsy5bg7irk370-glibc-2.22/bin:/gnu/store/gybk6iz6n659njzg56vqsy5bg7irk370-glibc-2.22/sbin'
environment variable `C_INCLUDE_PATH' set to 
`/gnu/store/mpgci6nb800ckc8cyi3vhm9i8h17zm2l-bzip2-1.0.6/include:/gnu/store/kz4vzwnm7vdnxbfb3ygc91iv68rjsfmm-xz-5.2.2/include:/gnu/store/iw4xjh2fx7lbil7m7yghz7yyrf6ks8pq-file-5.25/include:/gnu/store/c2ci62qwp62rcpbh9qgmmlyvgszvf8yn-gawk-4.1.3/include:/gnu/store/l1iq0lhklsiw7q7jhlw9cgdkcm6axd38-make-4.1/include:/gnu/store/dki0v5cvf1mhfz571k622xvzi1nyinl2-binutils-2.25.1/include:/gnu/store/gz9h7bicwcx3qbvnp0xgpvh50q5l104b-gcc-4.9.3/include:/gnu/store/gybk6iz6n659njzg56vqsy5bg7irk370-glibc-2.22/include:/gnu/store/1481x54il6kf3kcs03g997yaj

Installing Guix on foreign distros

2016-02-09 Thread Ludovic Courtès
Pjotr Prins  skribis:

> On Mon, Feb 08, 2016 at 11:47:31AM -0800, Christopher Allan Webber wrote:
>> So, I talked about this with Stefano Zacchiroli while at FOSDEM.  He
>> suggested that we could do /opt/g/ or something like that and we *could*
>> get Guix in as a package manager to Debian.  Sure, it wouldn't be able
>> to use the Hydra packages, but it's probably okayish.
>
> Unless users get binaries they won't be happy.

+1

>> We could also build apt / rpm packages which we just provide ourselves,
>> on the Guix website, or by providing some PPA'ish thing.  I would have
>> preferred this myself when I started running Debian on Guix... and in
>> this route we could keep everything as it already is.  (But people will
>> have to take an extra step to "get to" those nice packages.)
>
> That looks like the way forward to me. Such a package can setup and
> start the daemon - which is enough. No need to get the blessing from
> the distributions themselves (will take time, but it will come - there
> really is no difference with allowing foreign packages to work anyway).

Yeah, I think you’re right.

There are already people who wrote Arch/Parabola and RPM (openSuSE)
packages, AFAIK.  I’m not sure what the status is?

If someone familiar with dpkg could chime in, we could host the
infrastructure to build the .deb somewhere.

Ludo’.



Re: [PATCH] gnu-build-system: do not patch symlinks. Fixes location-aware scripts.

2016-02-09 Thread Ludovic Courtès
Jan Nieuwenhuizen  skribis:

> When patch-shebang encounters a script that is a symlink, say
>
> bin/script -> ../lib/foo/thescript
>
> it will change it into a file with rewritten #! .  That breaks whenever
> `thescript' assumes it lives in lib/foo.

Out of curiosity, what package was this?

> From 5a1793944b6ba1368a355edfa5be1b5c542ba48c Mon Sep 17 00:00:00 2001
> From: Jan Nieuwenhuizen 
> Date: Sat, 6 Feb 2016 15:59:51 +0100
> Subject: [PATCH] gnu-build-system: do not patch symlinks.  Fixes
>  location-aware scripts.
>
> * guix/build/gnu-build-system.scm (patch-shebangs): avoid patching symlinks.
>   Fixes scripts

Since this is a rebuild-the-world change, I applied to to a new
‘core-updates’ branch (and adjusted the commit log.)

Thank you!

Ludo’.



GuixSD is missing /dev/disk/by-uuid

2016-02-09 Thread Chris Marusich
Hi,

I've noticed that in GuixSD (version 0.9.0), the directory
/dev/disk/by-uuid is missing. Is that expected?

Because this directory is missing, cryptsetup cannot open a LUKS device
by UUID. For example, see the following:

--8<---cut here---start->8---
[0] marusich@garuda:~
$ sudo cryptsetup open --type luks UUID=c39bbc82-b70d-4e3d-a7dc-05f0b85dd84a 
backup
Device /dev/disk/by-uuid/c39bbc82-b70d-4e3d-a7dc-05f0b85dd84a doesn't exist or 
access denied.
[4] marusich@garuda:~
$ sudo cryptsetup open --type luks /dev/sdd1 backup
Enter passphrase for /dev/sdd1: 
[0] marusich@garuda:~
$ blkid
/dev/sdd1: UUID="c39bbc82-b70d-4e3d-a7dc-05f0b85dd84a" TYPE="crypto_LUKS" 
PARTUUID="00093e61-01"
[0] marusich@garuda:~
$ ls /dev/disk
by-id/
[0] marusich@garuda:~
$ ls /dev/disk/by-id/
dm-name-home  dm-uuid-CRYPT-LUKS1-2c7fc92e9e534bd08a178f15a89746bb-home
[0] marusich@garuda:~
$ 
--8<---cut here---end--->8---

As shown above, cryptsetup works fine if I specify /dev/sdd1, but it
would be nice to be able to specify the UUID instead. The
/dev/disk/by-id directory exists, but the purpose of that directory
appears to be different than the purpose of the /dev/disk/by-uuid
directory, and it does not contain an entry for the device in question.

Is it expected that GuixSD is missing the /dev/disk/by-uuid directory?

Thank you for your help,
Chris



Re: Making the case for GNU Guix ... advice sought

2016-02-09 Thread Ricardo Wurmus

Cook, Malcolm  writes:

> I have been asked to write up an argument for the advantages that GNU
> Guix confers for deploying linux software, especially scientific
> computing and including bioinformatics software.
>   
> To that end I have written up this document 
>
>   https://github.com/malcook/sce/blob/master/MakingTheCase.org

Nice!

Here’s a first correction for a mistake that I’m responsible for: the
number of bioinfo packages is actually closer to 114 (not 54).  Guix web
was misconfigured on that host and it would show the status of a very,
very outdated version of Guix rather than the latest and greatest.

(Note that a very small number of the packages listed there are released
under restrictive “academic only” licenses or have undeclared licenses;
the license field says “non-free” or “undeclared”.  Having them on this
page does not mean I endorse the use of these tools and users should be
careful to check the license.)

> I have some notes contrasting GNU Guix with other similar/related
> tool-sets (modules, lmod, homebrew, spack, easyBuild, rolling rpms),
> as well as our current practices (sort of hybrid of rpms, bastard son
> of homebrew, and "just wedge it in there").  However I am not now
> intent upon setting up such a contrast, rather, I hope to focus on the
> advantages of GNU Guix in general.

I’d also like to point you at https://hal.inria.fr/hal-01161771/en, in
case you haven’t read it yet.  It includes a very general comparison
with tools like environment modules, spack, and easyBuild with a focus
on reproducibility.

> + Guix detects and prohibits program name collisions; loading
>   conflicting packages into a users environment is _impossible_.  For
>   example, this prevents the ambiguity and associated error that can
>   arise when two packages define different programs by the same name
>   and both are placed in the user's execution PATH.

Well... I don’t know if this is worth pointing out.  Guix does detect
collisions but it doesn’t do anything intelligent here, maybe because
there isn’t much that can be done when a collision happens.  You mention
support for multiple profiles later, and I think that maybe this could
be merged.  I found collision detection to be not so useful because it
happens *during* profile generation, not *before* I commit to installing
a package.

> + Guix packages naturally extend to include all package resources,
>   including man pages, libraries, as well as binaries.  This is a
>   result of their using the underlying build engine's (i.e. gnu make)
>   installation targets.

Is there any package manager that does not handle this?

> + Guix packages, being independent of host on which they are built,
>   can be downloaded already built by upstream servers known as
>   
> [[https://www.gnu.org/software/guix/manual/html_node/Substitutes.html#Substitutes][substitues]],
>  with the assurance of their being bit-level identical
>   to the results of the generally longer process of configuration and
>   compilation on local servers.

Building packages in isolated environments is a necessary requirement
for bit-reproducibility, but it is not sufficient in itself.  To speak
of “assurance” is maybe a bit strong.

> + Guix packages, though dependent upon the machine architecture, are
>   independent on the linux distribution, or its version.  Thus, for
>   example, packages built under CentOS 6.5 on x86_64 will run under
>   operating system on x86_64, for example, CentOS 7.x and or Ubuntu
>   15.10 or 14.04.

This is true and it’s a great feature.  We’re using the very same Guix
store on various subversions of CentOS 6.x, a wide range of Ubuntus, and
Fedora.  “Linux distribution” is confusing, though.  I’d write
“GNU/Linux distribution”.  There *are* some kernel requirements, so the
version of Linux itself (i.e. the kernel version) does matter up to a
point for some of the advanced features of Guix (such as container
support).

> + Guix allows for unprivileged package management; users do not need
>   special elevated privileges (root or sudo) to create custom
>   environment profiles.  Especially noteworthy is that this allows
>   for rationally sharing package management as a distributed
>   responsibility.  This includes installing new site-available
>   applications (for those available in the guix repositories).  Thus,
>   if one user observes that a new release of a site-installed
>   application has become available, that user can safely install the
>   upgrade centrally and immediately start using it, without effecting
^—— what does this mean?  At the centre of ... what?

>   any other user's environment; without any further coordination,
>   when another user _is_ ready to adopt the upgrade, they will find
>   that installation is unnecessary, as it has already occurred.

I would clearly separate building and installing.  Installation is the
act of creating a new profile generation that contains a link to a
previously built (or subst

[PATCH] gnu: libgcrypt: Update to 1.6.5. (security update)

2016-02-09 Thread Christopher Allan Webber
Hello all,

New security release of libgcrypt:

> Hello!
> 
> The GNU project is pleased to announce the availability of Libgcrypt
> version 1.6.5.  This is a security fix release to mitigate a new side
> channel attack.
> 
> Noteworthy changes in version 1.6.5
> ===
> 
>  * Mitigate side-channel attack on ECDH with Weierstrass curves
>[CVE-2015-7511].  See http://www.cs.tau.ac.IL/~tromer/ecdh/ for
>details.
> 
>  * Fix build problem on Solaris.

Here's a patch.  It seems to build fine.

>From f45b192c0e648fea95a98d681d8ecdff3dc15bdb Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber 
Date: Tue, 9 Feb 2016 11:49:06 -0800
Subject: [PATCH] gnu: libgcrypt: Update to 1.6.5.

* gnu/packages/gnupg.scm (libgcrypt): Update to 1.6.5.
---
 gnu/packages/gnupg.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index a35e8fc..608c437 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -70,14 +70,14 @@ Daemon and possibly more in the future.")
 (define-public libgcrypt
   (package
 (name "libgcrypt")
-(version "1.6.4")
+(version "1.6.5")
 (source (origin
  (method url-fetch)
  (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
  version ".tar.bz2"))
  (sha256
   (base32
-   "09k06gs27gxfha07sa9rpf4xh6mvphj9sky7n09ymx75w9zjrg69"
+   "0959mwfzsxhallxdqlw359xg180ll2skxwyy35qawmfl89cbr7pl"
 (build-system gnu-build-system)
 (propagated-inputs
  `(("libgpg-error-host" ,libgpg-error)))
-- 
2.6.3



Re: Making the case for GNU Guix ... advice sought

2016-02-09 Thread Leo Famulari
On Tue, Feb 09, 2016 at 04:03:13PM +0100, Ricardo Wurmus wrote:
> 
> Cook, Malcolm  writes:
> > + Guix development is open source.  It is open to input from all
> >   community members.
> 
> It’s free software ;)
> 
> Maybe it’s also good to mention that you do not need to rely on Guix
> upstream to add packages.  It is trivial to use custom packages with
> GUIX_PACKAGE_PATH.

It can't be overstated *how* trivial it is. I've found that users of
mutable-state package managers just don't believe me when I tell them.
It's even easy to have out-of-tree packages, pulled in with
GUIX_PACKAGE_PATH, that depend on in-tree packages or package updates
that you haven't upstreamed yet.



Re: [PATCH] gnu: libgcrypt: Update to 1.6.5. (security update)

2016-02-09 Thread Mark H Weaver
Hi Chris,

Christopher Allan Webber  writes:

> Hello all,
>
> New security release of libgcrypt:
>
>> Hello!
>> 
>> The GNU project is pleased to announce the availability of Libgcrypt
>> version 1.6.5.  This is a security fix release to mitigate a new side
>> channel attack.
>> 
>> Noteworthy changes in version 1.6.5
>> ===
>> 
>>  * Mitigate side-channel attack on ECDH with Weierstrass curves
>>[CVE-2015-7511].  See http://www.cs.tau.ac.IL/~tromer/ecdh/ for
>>details.
>> 
>>  * Fix build problem on Solaris.
>
> Here's a patch.  It seems to build fine.
>
> From f45b192c0e648fea95a98d681d8ecdff3dc15bdb Mon Sep 17 00:00:00 2001
> From: Christopher Allan Webber 
> Date: Tue, 9 Feb 2016 11:49:06 -0800
> Subject: [PATCH] gnu: libgcrypt: Update to 1.6.5.
>
> * gnu/packages/gnupg.scm (libgcrypt): Update to 1.6.5.

Thank you!  The summary line should include the CVE, like this:

  gnu: libgcrypt: Update to 1.6.5 [fixes CVE-2015-7511].

Alas, this will require at least 7000 rebuilds.  After the current
'security-updates' branch is merged, this should go on the next
'security-updates' branch, together with more fixes for graphite2 and
libsndfile.

   Mark



Re: Making the case for GNU Guix ... advice sought

2016-02-09 Thread Ludovic Courtès
Leo Famulari  skribis:

> On Tue, Feb 09, 2016 at 04:03:13PM +0100, Ricardo Wurmus wrote:
>> 
>> Cook, Malcolm  writes:
>> > + Guix development is open source.  It is open to input from all
>> >   community members.
>> 
>> It’s free software ;)
>> 
>> Maybe it’s also good to mention that you do not need to rely on Guix
>> upstream to add packages.  It is trivial to use custom packages with
>> GUIX_PACKAGE_PATH.
>
> It can't be overstated *how* trivial it is. I've found that users of
> mutable-state package managers just don't believe me when I tell them.
> It's even easy to have out-of-tree packages, pulled in with
> GUIX_PACKAGE_PATH, that depend on in-tree packages or package updates
> that you haven't upstreamed yet.

I’ve been thinking that we should add a “Defining Package Variants”
section beneath or after the “Defining Packages” node in the manual,
showing how to ‘inherit’ from an existing package, etc.

Any takers?  :-)

Ludo’.



Re: Making the case for GNU Guix ... advice sought

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

> I’d also like to point you at https://hal.inria.fr/hal-01161771/en, in
> case you haven’t read it yet.  It includes a very general comparison
> with tools like environment modules, spack, and easyBuild with a focus
> on reproducibility.

One of the things that has changed since this paper is the new --input
flag which allows you, from the command-line, to rewrite the dependency
tree of a package by replacing one package with another one (something
that’s relatively easy to do programmatically, but Spack showed that
it’s occasionally convenient to have it at the command line.)

Ludo’.



Re: [PATCH] gnu: libgcrypt: Update to 1.6.5. (security update)

2016-02-09 Thread Christopher Allan Webber
Mark H Weaver writes:

> Hi Chris,
>
> Christopher Allan Webber  writes:
>
>> Hello all,
>>
>> New security release of libgcrypt:
>>
>>> Hello!
>>> 
>>> The GNU project is pleased to announce the availability of Libgcrypt
>>> version 1.6.5.  This is a security fix release to mitigate a new side
>>> channel attack.
>>> 
>>> Noteworthy changes in version 1.6.5
>>> ===
>>> 
>>>  * Mitigate side-channel attack on ECDH with Weierstrass curves
>>>[CVE-2015-7511].  See http://www.cs.tau.ac.IL/~tromer/ecdh/ for
>>>details.
>>> 
>>>  * Fix build problem on Solaris.
>>
>> Here's a patch.  It seems to build fine.
>>
>> From f45b192c0e648fea95a98d681d8ecdff3dc15bdb Mon Sep 17 00:00:00 2001
>> From: Christopher Allan Webber 
>> Date: Tue, 9 Feb 2016 11:49:06 -0800
>> Subject: [PATCH] gnu: libgcrypt: Update to 1.6.5.
>>
>> * gnu/packages/gnupg.scm (libgcrypt): Update to 1.6.5.
>
> Thank you!  The summary line should include the CVE, like this:
>
>   gnu: libgcrypt: Update to 1.6.5 [fixes CVE-2015-7511].

Okay!  I wasn't aware of that convention.

> Alas, this will require at least 7000 rebuilds.  After the current
> 'security-updates' branch is merged, this should go on the next
> 'security-updates' branch, together with more fixes for graphite2 and
> libsndfile.

Yes it's unfortunate... it seems like security researchers are upping
their game in the post-heartbleed world (whatever that means)?  I guess
that's good... better good security researchers do this stuff than some
other unspecified groups... but kind of a headache here? :)

Anyway, new patch!  I don't know what to do about the security-updates
branch so I'll let you apply/push it.

 - Chris

>From 6fec07507956efd6f7055d37d268c97ca5771d8c Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber 
Date: Tue, 9 Feb 2016 11:49:06 -0800
Subject: [PATCH] gnu: libgcrypt: Update to 1.6.5 [fixes CVE-2015-7511].

* gnu/packages/gnupg.scm (libgcrypt): Update to 1.6.5.
---
 gnu/packages/gnupg.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index a35e8fc..608c437 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -70,14 +70,14 @@ Daemon and possibly more in the future.")
 (define-public libgcrypt
   (package
 (name "libgcrypt")
-(version "1.6.4")
+(version "1.6.5")
 (source (origin
  (method url-fetch)
  (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
  version ".tar.bz2"))
  (sha256
   (base32
-   "09k06gs27gxfha07sa9rpf4xh6mvphj9sky7n09ymx75w9zjrg69"
+   "0959mwfzsxhallxdqlw359xg180ll2skxwyy35qawmfl89cbr7pl"
 (build-system gnu-build-system)
 (propagated-inputs
  `(("libgpg-error-host" ,libgpg-error)))
-- 
2.6.3



Re: Making the case for GNU Guix ... advice sought

2016-02-09 Thread Ludovic Courtès
"Cook, Malcolm"  skribis:

> I have been asked to write up an argument for the advantages that GNU Guix 
> confers for deploying linux software, especially scientific computing and 
> including bioinformatics software.
>   
> To that end I have written up this document 
>
>   https://github.com/malcook/sce/blob/master/MakingTheCase.org

Good idea, and nice work!

Perhaps it would be worth mentioning ‘guix environment’ and
‘--search-paths’.

But really, I don’t have much to add to Ricardo’s detailed review.  :-)

Thank you,
Ludo’.



Re: GSoC ideas

2016-02-09 Thread Ludovic Courtès
Christopher Allan Webber  skribis:

> Maybe we should have a place to collect ideas?

What about creating a page at ?

> Anyway, here would be my top items for GSoC:
>
>  - An installer wizard (written in Guile of course!)

For GuixSD I guess?  Sounds like good idea, of course.

>  - g-expressions which generate packages of the Guix package manager for
>.deb and .rpm based distros, and work to get those upstream in Debian
>and Fedora

That would be useful, and CheckInstall may be good enough for that.  I
don’t think it’s “enough” for GSoC, though.  WDYT?

>  - Perhaps some kind of non-emacs, non-cli package (and system
>management?) interface.  Maybe GTK based?

Definitely.  Both a guile-curses-based and a GTK+-based thing would be
nice.  For the latter we need to check whether PackageKit can be of any
use (this has been discussed in the past and my impression was that it
is biased towards “traditional” distros with just a single root-managed
profile.)

Thanks,
Ludo’.



Re: GSoC ideas

2016-02-09 Thread Ludovic Courtès
Efraim Flashner  skribis:

> The three ideas that I had so far that are floating around in a text file are:
>
> - arm64 port -- This could probably be extended into getting a working system
>   into place to have a u-boot -> grub loader, and/or using kexec to get a
>   booted system to reboot into an arm libre-kernel. (for armv7 and arm64?)

For aarch64 the first task would be to port Guix (not GuixSD) to that
architecture (info "(guix) Bootstrapping").  If everything goes well, it
can be relatively simple, but sometimes things don’t go well.  ;-)

Otherwise it’s surely an eligible project IMO.

> - ncurses installer -- my idea was Debian's installer can be considered ugly,
>   but it does have everything needed to install a system.

Right, that would be nice.

> - GaPMaCt - Guix's amazing package manager and configure tool -- Same
>   non-emacs package & system manager as above. Maybe a backend with a GTK or
>   ncurses frontend.

+1!

Ludo’.



Re: [PATCH] gnu-build-system: do not patch symlinks. Fixes location-aware scripts.

2016-02-09 Thread Ludovic Courtès
Jan Nieuwenhuizen  skribis:

> Ludovic Courtès writes:
>
>> Out of curiosity, what package was this?
>
> I encountered it first in jison, a javascript parser generator.

How does the script determines its location?  Using $0 is unreliable,
and using /proc/self/exe is non portable.

>> Since this is a rebuild-the-world change, I applied to to a new
>> ‘core-updates’ branch (and adjusted the commit log.)
>
> Yes, I got bitten by that, trying to test it.  I had an interesting
> learning experience getting to know guix and getting this to work and
> reverted to using
>
> (#phases
>  (replace 'patch-source-shebangs
>   ;;patch-source-shebangs-no-symlinks
>   (lambda* (#:key outputs #:allow-other-keys)
> (for-each patch-shebang
>   (remove (lambda (file)
> (or (not (file-exists? file)) ;dangling 
> symlink
> ;;(file-is-symlink? file)
> (and (file-exists? file)
>  (eq? 'symlink (stat:type (lstat 
> file
> (file-is-directory? file)))
>   (find-files ".")
>
> in the package itself.  Rebuilding the world is no fun when you want to
> get things done.

Yeah.  In such cases it’s easier to simply delete or customize the
faulty phase like you did above.

> When I actually got to test it, it appears that something like the above
> is still necessary.  It seems that the previous patch merely avoids
> visiting any symlinked directories, while this version actually looks
> at the script to be patched.

[...]

> diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
> index 2abaa6e..34edff7 100644
> --- a/guix/build/gnu-build-system.scm
> +++ b/guix/build/gnu-build-system.scm
> @@ -303,7 +303,7 @@ makefiles."
>(define (list-of-files dir)
>  (map (cut string-append dir "/" <>)
>   (or (scandir dir (lambda (f)
> -(let ((s (stat (string-append dir "/" f
> +(let ((s (lstat (string-append dir "/" f
>(eq? 'regular (stat:type s)
>   '(

This is exactly what the previous patch does (applied as c13a9feb.)

Am I missing something?

Anyway, it seems clear enough that the effect of this one-liner is to
prevent symlinks from being patched.  :-)

Ludo’.



Re: sqlite update causes failure of python-sqlalchemy

2016-02-09 Thread Ludovic Courtès
Pjotr Prins  skribis:

> Patch b24765139c8940541b23f84592d3580d53f71d71
>
>  (define-public sqlite
>(package
> (name "sqlite")
> -   (version "3.8.11.1")
> +   (version "3.10.0")
> (source (origin
>
> is the cause of python(2|3)-sqlalchemy breaking. I confirmed that by
> regressing to the original sqlite package. Since the python binding is
> part of the interpreter, I suspect there may be more python modules
> vulnerable. I updated python-sqlalchemy to latest and that makes no
> difference. Its tests fail on sqlite 3.10.0 and pass on 3.8.11.1.
>
> What do we do? Revert on this sqlite patch for the new guix release?
> Or add a second sqlite package and have that as a python dependency?

I would do the latter, assuming that soon a new python-sqlalchemy
release would solve the problem.  WDYT?

This is probably OK since python-sqlalchemy is a leaf, and so we’re
unlikely to end up mixing two different SQLite versions.

Ludo’.



Re: PulseAudio

2016-02-09 Thread Christopher Allan Webber
Ludovic Courtès writes:

> Leo Famulari  skribis:
>
>> I guess the factors are:
>> 1) Does GuixSD have a default audio setup that we should target? If
>> GuixSD uses PulseAudio, then I think it would be good for eSpeak to be
>> integrated into that sytem.
>> 2) Does this package, which launches PulseAudio, work for anyone on a
>> foreign distro?
>
> It’s not written anywhere, but I think most of our audio packages target
> PulseAudio (that’s what I use on GuixSD.)  I’m in favor of consistently
> using it, and it would probably be best to write it down in the manual.
>
> Thoughts?
>
> Ludo’.

I'd really like it if we just agreed that in general, yeah, we want
Pulseaudio support.  I used to spend all sorts of time fighting my audio
setup, being careful on what application opened first so I could be sure
which one grabbed control of Alsa.  I hadn't had this problem in a few
years, and it was so nice not to worry about it, but on Guix I've had
some times where I have again... eg playing audio/video in Icecat
seems not to use it for whatever reason, and it's a bummer, because then
I have to be careful about when I start rhythmbox or whatever.

I'd love to mostly not worry/think about audio issues again!



Re: [PATCH] gnu: Add pass.

2016-02-09 Thread Leo Famulari
On Mon, Feb 08, 2016 at 11:27:44PM +0100, Jessica Tallon wrote:
> * gnu/packages/password-utils.scm (pass): New variable.

Thanks!

[...]

> +(arguments
> + '(#:phases
> +   (alist-delete 'configure %standard-phases)
> +   #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
> +   ;; The tests mysteriously hang, I've tired it outside of guix and
> +   ;; they run perfectly fine. Not sure why so for now I've disabled
> +   ;; them.
> +   #:tests? #f

It may be worth taking the time to figure out why the test suite fails.
My understanding of this password manager is that you can always use
gnupg to decrypt the files without the password manager, but I still
think it would be best for a password manager to be able to pass its
test suite. I'd hate for some user who was not proficient with gnupg to
get locked out of their accounts because our pass package was somehow
broken.

> +   #:test-target "test"))
> +(inputs `(("gnupg" ,gnupg)

Does it matter which version of gnupg is used? We package the 3 branches
of it described here: https://gnupg.org/

> +  ("pwgen" ,pwgen)
> +  ("xclip" ,xclip)
> +  ("git" ,git)
> +  ("tree" ,tree)))
> +(home-page "http://www.passwordstore.org/";)
> +(synopsis "Encrypted password manager")
> +(description "Pass is a password manager which uses gnupg to store, 
> retrieve
> +generated passwords.  The tool stores each password in its own file gpg
> +encrypted allowing the program to be simple yet secure.  Synchronization is
> +possible with inbuild git support which commits changes to your password 
> database

This line should be ≤ 80 characters.

> +to a git repository that can be managed through the pass command.")
> +(license license:gpl2+)))
> -- 
> 2.6.3
> 




Re: PulseAudio

2016-02-09 Thread Leo Famulari
On Tue, Feb 09, 2016 at 01:26:32PM -0800, Christopher Allan Webber wrote:
> Ludovic Courtès writes:
> 
> > Leo Famulari  skribis:
> >
> >> I guess the factors are:
> >> 1) Does GuixSD have a default audio setup that we should target? If
> >> GuixSD uses PulseAudio, then I think it would be good for eSpeak to be
> >> integrated into that sytem.
> >> 2) Does this package, which launches PulseAudio, work for anyone on a
> >> foreign distro?
> >
> > It’s not written anywhere, but I think most of our audio packages target
> > PulseAudio (that’s what I use on GuixSD.)  I’m in favor of consistently
> > using it, and it would probably be best to write it down in the manual.
> >
> > Thoughts?
> >
> > Ludo’.
> 
> I'd really like it if we just agreed that in general, yeah, we want
> Pulseaudio support.  I used to spend all sorts of time fighting my audio
> setup, being careful on what application opened first so I could be sure
> which one grabbed control of Alsa.  I hadn't had this problem in a few
> years, and it was so nice not to worry about it, but on Guix I've had
> some times where I have again... eg playing audio/video in Icecat
> seems not to use it for whatever reason, and it's a bummer, because then
> I have to be careful about when I start rhythmbox or whatever.
> 
> I'd love to mostly not worry/think about audio issues again!

Heh, that's why I uninstall PulseAudio every time a Debian upgrade
brings it in ;)

All kidding aside, I'm happy to push this with PulseAudio support, *if*
a GuixSD user can confirm that it works. I don't have sound on my GuixSD
installation.



Re: [PATCH] gnu: Add pass.

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

Jessica Tallon  skribis:

> From 86ab2ad8f47cb72780cf0140352a9a5c26af36f8 Mon Sep 17 00:00:00 2001
> From: Jessica Tallon 
> Date: Mon, 8 Feb 2016 22:12:50 +0100
> Subject: [PATCH] gnu: Add pass.
>
> * gnu/packages/password-utils.scm (pass): New variable.

[...]

> +(define-public pass
> +  (package
> +(name "pass")

I think we should call it “password-store” since that’s the upstream
name.

> +   ;; The tests mysteriously hang, I've tired it outside of guix and
> +   ;; they run perfectly fine. Not sure why so for now I've disabled
> +   ;; them.
> +   #:tests? #f

I added ‘set -x’ to src/password-store.sh and run ‘make check’ within
‘guix environment --container’, which gave this:

--8<---cut here---start->8---
# ./src/password-store.sh init 000432
+ GPG_OPTS=("--quiet" "--yes" "--compress-algo=none" "--no-encrypt-to")
+ GPG=gpg
++ tty
+ export GPG_TTY=/dev/console
+ GPG_TTY=/dev/console
+ which gpg2
+ [[ -n '' ]]
+ [[ gpg == \g\p\g\2 ]]
+ PREFIX=/homeless-shelter/.password-store
+ X_SELECTION=clipboard
+ CLIP_TIME=45
+ export GIT_DIR=/homeless-shelter/.password-store/.git
+ GIT_DIR=/homeless-shelter/.password-store/.git
+ export GIT_WORK_TREE=/homeless-shelter/.password-store
+ GIT_WORK_TREE=/homeless-shelter/.password-store
+ GETOPT=getopt
+ SHRED='shred -f -z'
++ dirname ./src/password-store.sh
++ uname
++ cut -d _ -f 1
++ tr '[:upper:]' '[:lower:]'
+ source ./src/platform/linux.sh
+ PROGRAM=password-store.sh
+ COMMAND=init
+ case "$1" in
+ shift
+ cmd_init 000432
+ local opts id_path=
++ getopt -o p: -l path: -n password-store.sh -- 000432
./src/password-store.sh: line 263: getopt: command not found
+ opts=
+ local err=127
+ eval set -- ''
++ set --
+ true
+ case $1 in
+ true
+ case $1 in
[… endless loop…]
--8<---cut here---end--->8---

So I think adding util-linux (which provides the ‘getopt’ command) as an
input will solve the problem.

> +(description "Pass is a password manager which uses gnupg to store, 
> retrieve
> +generated passwords.  The tool stores each password in its own file gpg
> +encrypted allowing the program to be simple yet secure.  Synchronization is
> +possible with inbuild git support which commits changes to your password 
> database
> +to a git repository that can be managed through the pass command.")

s/gnupg/GnuPG/; s/git/Git/; s/gpg/@command{gpg}/  :-)

Could you send an updated patch?

Thank you!

Ludo’.



[PATCH] gnu: Add tclxml.

2016-02-09 Thread Jan Nieuwenhuizen
Hi,

Another tcl library package.

Greetings, Jan

>From 79f56d9c3f21e624ba9a3bfda00d2fc264796494 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen 
Date: Tue, 9 Feb 2016 20:45:51 +0100
Subject: [PATCH] gnu: Add tclxml.

* gnu/packages/tcl.scm (tclxml): New variable.
* gnu/packages/patches/tclxml-3.2-install.patch: New file.
---
 gnu/packages/patches/tclxml-3.2-install.patch | 23 +
 gnu/packages/tcl.scm  | 47 +--
 2 files changed, 68 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/tclxml-3.2-install.patch

diff --git a/gnu/packages/patches/tclxml-3.2-install.patch b/gnu/packages/patches/tclxml-3.2-install.patch
new file mode 100644
index 000..63542aa
--- /dev/null
+++ b/gnu/packages/patches/tclxml-3.2-install.patch
@@ -0,0 +1,23 @@
+--- ./Makefile.in~	2016-02-06 01:29:16.595090365 +0100
 ./Makefile.in	2016-02-06 09:29:04.286008931 +0100
+@@ -76,7 +76,7 @@
+ 
+ srcdir		= @srcdir@
+ prefix		= @prefix@
+-exec_prefix	= @exec_prefix@
++exec_prefix	= @prefix@
+ 
+ bindir		= @bindir@
+ libdir		= @libdir@
+@@ -133,9 +133,9 @@
+ # require for testing here (like TCLX_LIBRARY).
+ #
+ 
+-EXTRA_PATH	= $(top_builddir):$(TCL_BIN_DIR)
++EXTRA_PATH	= $(top_builddir):$(TCL_BIN_DIR):$(libdir)
+ #EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR):$(TK_BIN_DIR)
+-TCLLIBPATH  = $(top_builddir)
++TCLLIBPATH  = $(pkglibdir)
+ TCLSH_ENV	= TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` \
+ 		  @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \
+ 		  PATH="$(EXTRA_PATH):$(PATH)" \
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 8d6059d..101b8f8 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix licenses))
 
@@ -248,5 +249,47 @@ interfaces (GUIs) in the Tcl language.")
 (license (non-copyleft "http://www.tcl.tk/software/tcltk/license.html";
 			   "Tcl/Tk license"
 
-
-
+(define-public tclxml
+  (package
+(name "tclxml")
+(version "3.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://sourceforge/" name "/"
+  name "-" version ".tar.gz"))
+  (sha256
+   (base32
+"0ffb4aw63inig3aql33g4pk0kjk14dv238anp1scwjdjh1k6n4gl"))
+	  (patches (list (search-patch (string-append (getenv "HOME") "/development.git/tclxml-3.2-install.patch"))
+(build-system gnu-build-system)
+(native-inputs
+ `(("tcl" ,tcl)
+   ("tcllib" ,tcllib)
+   ("libxml2" ,libxml2)
+   ("libxslt" ,libxslt)))
+   (native-search-paths
+(list (search-path-specification
+   (variable "TCLLIBPATH")
+	   (separator " ")
+	   (files (list (string-append "lib/Tclxml" version))
+   (arguments
+`(#:configure-flags
+  (list (string-append "--with-tclconfig="
+			   (assoc-ref %build-inputs "tcl")
+			   "/lib")
+	(string-append "--with-xml2-config="
+			   (assoc-ref %build-inputs "libxml2")
+			   "/bin/xml2-config")
+	(string-append "--with-xslt-config="
+			   (assoc-ref %build-inputs "libxslt")
+			   "/bin/xslt-config"))
+  #:phases (modify-phases %standard-phases
+ (delete 'check
+(home-page "http://tclxml.sourceforge.net/";)
+(synopsis " Tcl library for XML parsing")
+(description " TclXML provides event-based parsing of XML documents.  The
+ application may register callback scripts for certain document
+ features, and when the parser encounters those features while parsing
+ the document the callback is evaluated.")
+(license (non-copyleft "http://sourcesdev.debian.net/copyright/license/tclxml/3.2-1/";
+			   ""
-- 
2.1.4


-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  


[PATCH] gnu: Add tcllib.

2016-02-09 Thread Jan Nieuwenhuizen
Hi,

A "new" package.

Greetings, Jan

>From 51f0b17b38385197240bca37b290730b2fbe5df1 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen 
Date: Tue, 9 Feb 2016 20:44:59 +0100
Subject: [PATCH] gnu: Add tcllib.

* gnu/packages/tcl.scm (tcllib): New variable.
---
 gnu/packages/tcl.scm | 31 +++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 2c4c750..8d6059d 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver 
 ;;; Copyright © 2014 Eric Bavier 
 ;;; Copyright © 2016 Efraim Flashner 
+;;; Copyright © 2016 Jan Nieuwenhuizen 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -219,3 +220,33 @@ interfaces (GUIs) in the Tcl language.")
 ;; pTk/license.terms, pTk/license.html_lib, and pTk/Tix.license for
 ;; details of this license."
 (license (package-license perl
+
+(define-public tcllib
+  (package
+(name "tcllib")
+(version "1.18")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://sourceforge/" name "/"
+  name "-" version ".tar.gz"))
+  (sha256
+   (base32
+"05dmrk9qsryah2n17z6z85dj9l9lfyvnsd7faw0p9bs1pp5pwrkj"
+(build-system gnu-build-system)
+(native-inputs
+ `(("tcl" ,tcl)))
+(native-search-paths
+ (list (search-path-specification
+	(variable "TCLLIBPATH")
+	(separator " ")
+	(files (list (string-append "lib/tcllib" version ""))
+(home-page "https://core.tcl.tk/tcllib/home";)
+(synopsis "Standard Tcl Library")
+(description "Tcllib, the standard Tcl library, is a collection of common utility
+ functions and modules all written in high-level Tcl.
+")
+(license (non-copyleft "http://www.tcl.tk/software/tcltk/license.html";
+			   "Tcl/Tk license"
+
+
+
-- 
2.1.4


-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  


Re: [PATCH] gnu-build-system: do not patch symlinks. Fixes location-aware scripts.

2016-02-09 Thread Jan Nieuwenhuizen
Ludovic Courtès writes:

> Out of curiosity, what package was this?

I encountered it first in jison, a javascript parser generator.

> Since this is a rebuild-the-world change, I applied to to a new
> ‘core-updates’ branch (and adjusted the commit log.)

Yes, I got bitten by that, trying to test it.  I had an interesting
learning experience getting to know guix and getting this to work and
reverted to using

(#phases
 (replace 'patch-source-shebangs
  ;;patch-source-shebangs-no-symlinks
  (lambda* (#:key outputs #:allow-other-keys)
(for-each patch-shebang
  (remove (lambda (file)
(or (not (file-exists? file)) ;dangling 
symlink
;;(file-is-symlink? file)
(and (file-exists? file)
 (eq? 'symlink (stat:type (lstat 
file
(file-is-directory? file)))
  (find-files ".")

in the package itself.  Rebuilding the world is no fun when you want to
get things done.

When I actually got to test it, it appears that something like the above
is still necessary.  It seems that the previous patch merely avoids
visiting any symlinked directories, while this version actually looks
at the script to be patched.

Greetings, Jan

>From 5a1793944b6ba1368a355edfa5be1b5c542ba48c Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen 
Date: Sat, 6 Feb 2016 15:59:51 +0100
Subject: [PATCH] gnu-build-system: do not patch symlinks.  Fixes
 location-aware scripts.

* guix/build/gnu-build-system.scm (patch-shebangs): avoid patching symlinks.
  Fixes scripts
---
 guix/build/gnu-build-system.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 2abaa6e..34edff7 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -303,7 +303,7 @@ makefiles."
   (define (list-of-files dir)
 (map (cut string-append dir "/" <>)
  (or (scandir dir (lambda (f)
-(let ((s (stat (string-append dir "/" f
+(let ((s (lstat (string-append dir "/" f
   (eq? 'regular (stat:type s)
  '(
 
-- 
2.1.4


-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  


[PATCH] gnu: Add laby.

2016-02-09 Thread Jan Nieuwenhuizen
Hi,

And now a real fun package...If you don't know Laby, maybe you want to
have a look at it.  It's a programming game that my daughters happen to
like very much.  They started programming with this without knowing they
did; they were simply playing a game.

My oldest (8 at the time) chose the C language after trying Python and
finding how hard it was to get the indentation right (without proper
editor support).

When I saw how difficult it was for my youngest (5 at the time) to get
all the semicolons and parentheses right, I wrote the Scheme mod (based
on Guile) and contributed it.  So, her first programming was done in
Guile Scheme; apparently the easiest syntax of all, if you learn young.

Greetings, Jan

>From fcd853a5c9b13019409d69db48f6bac0023b7b30 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen 
Date: Sun, 7 Feb 2016 12:57:40 +0100
Subject: [PATCH] gnu: Add laby.

* gnu/packages/games.scm (laby): New variable.
* gnu/packages/patches/laby-make-install.patch: New file.
---
 gnu/packages/games.scm   | 30 
 gnu/packages/patches/laby-make-install.patch | 25 +++
 2 files changed, 55 insertions(+)
 create mode 100644 gnu/packages/patches/laby-make-install.patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 7eb0e7a..aee4f69 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2015, 2016 Alex Kost 
 ;;; Copyright © 2015 Paul van der Walt 
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer 
+;;; Copyright © 2016 Jan Nieuwenhuizen 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,6 +60,7 @@
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages image)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages ocaml)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages xorg)
@@ -1891,3 +1893,31 @@ and a game metadata scraper.")
 (description "The Emilia Pinball Project is a pinball simulator.  There
 are only two levels to play with, but they are very addictive.")
 (license license:gpl2)))
+
+(define-public laby
+  (package
+(name "laby")
+(version "0.6.4")
+(source
+ (origin (method url-fetch)
+ (uri (string-append "https://github.com/sgimenez/laby/tarball/laby-"; version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+  (base32
+   "113ip48308ps3lsw427xswgx3wdanils43nyal9n4jr6bcx1bj2j"))
+ (patches (list (search-patch "laby-make-install.patch")
+(build-system gnu-build-system)
+(inputs
+ `(("ocaml" ,ocaml)
+   ("lablgtk" ,lablgtk)))
+(arguments
+ '(#:phases (alist-delete 'configure %standard-phases)
+   #:tests? #f ; no 'check' target
+   #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")
+(home-page "https://sgimenez.github.io/laby/";)
+(synopsis "Laby, programming game")
+(description "Learn programming, playing with ants and spider webs ;-)
+Your robot ant can be programmed in many languages: OCaml, Python, C, C++,
+Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog. Experienced
+programmers may also add their own favorite language.")
+(license license:gpl3+)))
diff --git a/gnu/packages/patches/laby-make-install.patch b/gnu/packages/patches/laby-make-install.patch
new file mode 100644
index 000..227d781
--- /dev/null
+++ b/gnu/packages/patches/laby-make-install.patch
@@ -0,0 +1,25 @@
+From e9896b8951f9faf1f76a3b45be6e70d0aeb30a73 Mon Sep 17 00:00:00 2001
+From: Jan Nieuwenhuizen 
+Date: Sat, 15 Nov 2014 17:48:18 +0100
+Subject: [PATCH] Add make install.
+
+---
+ Makefile | 6 ++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index ca18c1e..65af31b 100644
+--- a/Makefile
 b/Makefile
+@@ -19,4 +19,9 @@ dist:
+ 	@git archive --prefix="$(PROJECT_ARCHIVE)/" HEAD \
+ 		 | gzip >_dist/"$(PROJECT_ARCHIVE)".tar.gz
+ 	@echo archive stored in "_dist/$(PROJECT_ARCHIVE).tar.gz"
++
++install:
++	strip laby
++	cp laby /usr/games/laby
++	mkdir -p /usr/share/laby
++	tar -C data -cf - . | tar -C /usr/share/laby -xf-
+-- 
+2.1.4
-- 
2.1.4



-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  


Re: PulseAudio

2016-02-09 Thread Ricardo Wurmus

Christopher Allan Webber  writes:

> Ludovic Courtès writes:
>
>> Leo Famulari  skribis:
>>
>>> I guess the factors are:
>>> 1) Does GuixSD have a default audio setup that we should target? If
>>> GuixSD uses PulseAudio, then I think it would be good for eSpeak to be
>>> integrated into that sytem.
>>> 2) Does this package, which launches PulseAudio, work for anyone on a
>>> foreign distro?
>>
>> It’s not written anywhere, but I think most of our audio packages target
>> PulseAudio (that’s what I use on GuixSD.)  I’m in favor of consistently
>> using it, and it would probably be best to write it down in the manual.
>>
>> Thoughts?
>>
>> Ludo’.
>
> I'd really like it if we just agreed that in general, yeah, we want
> Pulseaudio support.

I agree with Pulseaudio *support*, but this does not mean that we’d have
to link all applications that have an optional Pulseaudio backend with
the Pulseaudio libraries, does it?

Since I’m not using Pulseaudio I cannot vouch for this to work, but ALSA
can be configured to use redirect audio streams to Pulseaudio (if it’s
running).  I know of no application that offers a Pulseaudio backend but
cannot use ALSA directly.  This redirection from ALSA to Pulseaudio
could be implemented as an etc-service, providing the required
configuration file.

My experience with Pulseaudio was very different (and still is if I
count support requests from friends), but maybe that’s just because I
don’t *always* want Pulseaudio.  I found it difficult to reliably
disable/suspend Pulseaudio whenever I wanted to do audio work (=
involving JACK).  It often just got in the way.

On other machines where I didn’t use JACK regularly Pulseaudio was
acceptable, I guess.  It makes me shed a salty tear that something so
complicated and layered as Pulseaudio was necessary to tame the mess in
the Linux [sic] audio world :-/

~~ Ricardo




Re: [PATCH] gnu: Add GNU Mach.

2016-02-09 Thread Ludovic Courtès
Manolis Ragkousis  skribis:

> From 63d8cac0762393340247d96e392d417763e57b04 Mon Sep 17 00:00:00 2001
> From: Manolis Ragkousis 
> Date: Tue, 9 Feb 2016 11:59:54 +0200
> Subject: [PATCH] gnu: Add GNU Mach.
>
> * gnu/packages/hurd.scm (gnumach): New variable.

[...]

> +(define-public gnumach
> +  (package (inherit gnumach-headers)
> +(name "gnumach")
> +(build-system gnu-build-system)
> +(native-inputs
> + `(("mig" ,mig)
> +   ("perl" ,perl)))
> +(arguments
> + `(#:phases %standard-phases))

The ‘arguments’ field has no effect and can be removed.

> +(synopsis "Microkernel of the GNU system")
> +(description
> + "GNU Mach is the microkernel upon which a GNU Hurd system is based.")))

“GNU/Hurd”.

OK with these changes.

If that’s fine with you, it’s best to push it to ‘master’ and eventually
rebase ‘wip-hurd’ on top of ‘master’.

Thanks!

Ludo’.



Re: PulseAudio & ALSA

2016-02-09 Thread Ricardo Wurmus

Ludovic Courtès  writes:

>> Wouldn’t that be a better solution than to add the pulseaudio package to
>> the inputs wherever possible?
>
> Dunno.  It seems to me that applications that are PA-aware can have
> better integration, like have their name shown in pavucontrol and
> similar interfaces, which is quite useful.

I take your word for it.  I haven’t noticed.

> There are also technical complications: alsa-lib must be able to find
> its PulseAudio plug-in (currently we don’t build it since alsa-lib would
> depend on PulseAudio), and it must be one that can actually be dlopened
> by every process out there (linked against the same libc, etc.)

Hmm, that does sound hairy.

~~ Ricardo




Re: GuixSD is missing /dev/disk/by-uuid

2016-02-09 Thread Ludovic Courtès
Chris Marusich  skribis:

> I've noticed that in GuixSD (version 0.9.0), the directory
> /dev/disk/by-uuid is missing. Is that expected?

It’s a bug that we noticed and fixed just recently, in commit 400ed6a.

You can get the fix by running, as root:

  guix pull
  guix system reconfigure your-config-file.scm

HTH!

Ludo’.



Re: Small texlive variant

2016-02-09 Thread Andreas Enge
On Tue, Jan 19, 2016 at 10:20:42AM +0100, Ludovic Courtès wrote:
> This is a bit verbose.  I think it would be nice to have a data
> structure to describe what we are deleting, along these lines
> (untested):

I agree, computer science 101 tells us to use a function when repeating the
same sequence of statements on separate data. This is what I did in the new
attached patch; I also "flattened out" the deletion as you suggest.

However, the data structure thing was too complicated for me and I think not
really needed.

Comments are again welcome.

Andreas

>From 8a2ebb8163c54f80f2a5e4708956b87b134ada85 Mon Sep 17 00:00:00 2001
From: Andreas Enge 
Date: Fri, 15 Jan 2016 16:00:47 +0100
Subject: [PATCH] gnu: Add texlive-minimal.

* gnu/packages/texlive.scm (texlive-texmf-minimal, texlive-minimal):
  New variables.
---
 gnu/packages/texlive.scm | 83 +++-
 1 file changed, 82 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/texlive.scm b/gnu/packages/texlive.scm
index 0b2dec4..f51f853 100644
--- a/gnu/packages/texlive.scm
+++ b/gnu/packages/texlive.scm
@@ -24,6 +24,7 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
@@ -45,7 +46,9 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages zip)
-  #:autoload   (gnu packages texinfo) (texinfo))
+  #:autoload   (gnu packages texinfo) (texinfo)
+  #:use-module (ice-9 ftw)
+  #:use-module (srfi srfi-1))
 
 (define texlive-extra-src
   (origin
@@ -284,6 +287,84 @@ This package contains the complete TeX Live distribution.")
(license (license:fsf-free "http://tug.org/texlive/copying.html";))
(home-page "http://www.tug.org/texlive/";)))
 
+
+;; texlive-texmf-minimal is a pruned, small version of the texlive tree,
+;; in particular dropping documentation and fonts.
+(define-public texlive-texmf-minimal
+  (package (inherit texlive-texmf)
+   (name "texlive-texmf-minimal")
+   (arguments
+(substitute-keyword-arguments
+ (package-arguments texlive-texmf)
+ ((#:modules modules)
+  `((ice-9 ftw)
+(srfi srfi-1)
+,@modules))
+ ((#:phases phases)
+  `(modify-phases ,phases
+ (add-after 'unpack 'prune
+   (lambda _
+ (with-directory-excursion "texmf-dist"
+   (for-each delete-file-recursively
+ '("doc" "source" "tex4ht"))
+   ;; Delete all subdirectories of "fonts", except for those
+   ;; named "cm", that is, "afm/public/amsfonts/cm",
+   ;; "map/dvips/cm", "pk/ljfour/public/cm" (which is effectively
+   ;; all of "pk"), "source/public/cm", "tfm/public/cm" and
+   ;; "type1/public/amsfonts/cm".
+   ;; Inside "tfm", apparently more subdirectories are needed for
+   ;; successful bootstrapping of the formats, so we keep
+   ;; all of "tfm/public".
+ (let ((delete
+ ;; delete all files and directories in SUBDIR
+ ;; except for those given in the list EXCLUDE
+ (lambda (subdir exclude)
+   (with-directory-excursion subdir
+ (for-each delete-file-recursively
+   (lset-difference equal?
+(scandir ".")
+(append '("." "..")
+exclude)))
+   (delete "fonts" '("afm" "map" "pk" "source" "tfm" "type1"))
+   (delete "fonts/afm" '("public"))
+   (delete "fonts/afm/public" '("amsfonts"))
+   (delete "fonts/afm/public/amsfonts" '("cm"))
+   (delete "fonts/map" '("dvips"))
+   (delete "fonts/map/dvips" '("cm"))
+   (delete "fonts/source" '("public"))
+   (delete "fonts/source/public" '("cm"))
+   (delete "fonts/tfm" '("public"))
+   (delete "fonts/type1" '("public"))
+   (delete "fonts/type1/public" '("amsfonts"))
+   (delete "fonts/type1/public/amsfonts" '("cm"
+ #t))
+   (description
+"TeX Live provides a comprehensive TeX document production system.
+It includes all the major TeX-related programs, macro packages, and fonts
+that are free software, including support for many languages around the
+world.
+
+This package contains a small subset of the texmf-dist data.")))
+
+
+;; texlive-minimal is the same as texlive, but using texlive-texmf-minimal
+;; instead of the full texlive-texmf. It can be used, for instance, as a
+;; native input to packages that need texlive to build their documentation.
+(define-public te

Re: [PATCH] gnu-build-system: do not patch symlinks. Fixes location-aware scripts.

2016-02-09 Thread Jan Nieuwenhuizen
Ludovic Courtès writes:

> How does the script determines its location?  Using $0 is unreliable,
> and using /proc/self/exe is non portable.

It uses node.js's __dirname.  I would have to dive into node.js
internals to figure that out...  I would think it does /proc/self/exe
and has fallbacks for other platforms?

>> diff --git a/guix/build/gnu-build-system.scm 
>> b/guix/build/gnu-build-system.scm
>> index 2abaa6e..34edff7 100644

> This is exactly what the previous patch does (applied as c13a9feb.)
>
> Am I missing something?

Ah sorry.. Yes sent you the same patch, second patch attached now.

> Anyway, it seems clear enough that the effect of this one-liner is to
> prevent symlinks from being patched.  :-)

Yes so I thought too, until I stumbled into this.  Then I saw that
the first patch only considers what files to run scandir on ... any
of those files can be symlinks and those are caught here.

Greetings, Jan

>From 2d17c6bd7c7dd466c0aee14beaa47055af0ceb6d Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen 
Date: Sun, 7 Feb 2016 16:45:25 +0100
Subject: [PATCH] build-system/gnu: Do not patch symlinks, v2.

This fixes location-aware scripts.

* guix/build/gnu-build-system.scm (file-is-symlink?): new function.
(patch-source-shebangs): use it to skip symlinks.
---
 guix/build/gnu-build-system.scm | 5 +
 1 file changed, 5 insertions(+)

diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 34edff7..427f020 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -166,6 +166,10 @@ things like the ABI being used."
   (find-files "." "^configure$")))
   #t)
 
+(define (file-is-symlink? file)
+  (and (file-exists? file)
+   (eq? 'symlink (stat:type (lstat file)
+
 (define* (patch-source-shebangs #:key source #:allow-other-keys)
   "Patch shebangs in all source files; this includes non-executable
 files such as `.in' templates.  Most scripts honor $SHELL and
@@ -174,6 +178,7 @@ $CONFIG_SHELL, but some don't, such as `mkinstalldirs' or Automake's
   (for-each patch-shebang
 (remove (lambda (file)
   (or (not (file-exists? file)) ;dangling symlink
+  (file-is-symlink? file)
   (file-is-directory? file)))
 (find-files "."
 
-- 
2.1.4


-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  


Re: GSoC ideas

2016-02-09 Thread Christopher Allan Webber
Ludovic Courtès writes:

> Christopher Allan Webber  skribis:
>
>> Maybe we should have a place to collect ideas?
>
> What about creating a page at ?

https://libreplanet.org/wiki/Group:Guix/GSoC-2016

Here you go!

Just commenting on one comment:

>>  - g-expressions which generate packages of the Guix package manager for
>>.deb and .rpm based distros, and work to get those upstream in Debian
>>and Fedora
>
> That would be useful, and CheckInstall may be good enough for that.  I
> don’t think it’s “enough” for GSoC, though.  WDYT?

If the student was really to package Guix for many distributions, it
might be enough.  Especially if that student was to explore packaging
with upstream.  Anyway, the payout could be *huge*.

If they finish early, I'm sure we could find other things for them to
do?  :)

 - Chris



Re: [PATCH] gnu: Add laby.

2016-02-09 Thread Christopher Allan Webber
Jan Nieuwenhuizen writes:

> Hi,
>
> And now a real fun package...If you don't know Laby, maybe you want to
> have a look at it.  It's a programming game that my daughters happen to
> like very much.  They started programming with this without knowing they
> did; they were simply playing a game.
>
> My oldest (8 at the time) chose the C language after trying Python and
> finding how hard it was to get the indentation right (without proper
> editor support).
>
> When I saw how difficult it was for my youngest (5 at the time) to get
> all the semicolons and parentheses right, I wrote the Scheme mod (based
> on Guile) and contributed it.  So, her first programming was done in
> Guile Scheme; apparently the easiest syntax of all, if you learn young.
>
> Greetings, Jan

Now this looks like a lot of fun!

Some of these lines are over 80 characters though.. could you fix that?

I tried running this though and the patch it provided didn't seem to
apply.  I also see it's doing manual cp to /usr/games/laby and
etc... but could that really work?  Shouldn't it be copying to the
output directory in the store instead?

Maybe adding your own install step to the build phases would be nicest
here?

Anyway, would love to see this packaged, and play with it myself!



Re: [PATCH] gnu: Add pass.

2016-02-09 Thread Andreas Enge
Hello!

On Mon, Feb 08, 2016 at 11:27:44PM +0100, Jessica Tallon wrote:
> I've finally got around to packaging the pass password manager.

That sounds interesting. Now I just wonder which password manager I would
prefer to use...

A few comments in addition to those already made.
As to the name, this is unclear; upstream uses "pass" a lot, so it could be
argued that it should be "pass". If in doubt, we go with the upstream tarball
name, and that is what I would do here.

I tried to build with gnupg-2.0 to make the tests pass, but this is not
enough.

I added a copyright line for you.

I would suggest a slightly modified description.

Adding util-linux to the native-inputs as suggested by Ludovic gets the
tests further: something happens at least, but they fail.

Since I tried out a few things, I realised I might as well send you my
modified version of the patch. Maybe you could continue from there and
examine the tests. If you are not happy with some of my modifications,
please feel free to discuss them.

Andreas

>From f18ee39a7a486d472886de700e090b1313939173 Mon Sep 17 00:00:00 2001
From: Jessica Tallon 
Date: Mon, 8 Feb 2016 22:12:50 +0100
Subject: [PATCH] gnu: Add password-store.

* gnu/packages/password-utils.scm (password-store): New variable.

Co-authored-by: Andreas Enge 
---
 gnu/packages/password-utils.scm | 39 +++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 7c128a3..b8b5663 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -3,6 +3,8 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner 
 ;;; Copyright © 2015 Aljosha Papsch 
 ;;; Copyright © 2016 Christopher Allan Webber 
+;;; Copyright © 2016 Jessica Tallon 
+;;; Copyright © 2016 Andreas Enge 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,16 +27,19 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system python))
@@ -241,3 +246,37 @@ JSON files.  It has a command line interface as well as a 
very simple
 graphical interface, which can even \"type\" your passwords into
 any X11 window.")
 (license license:gpl3+)))
+
+(define-public password-store
+  (package
+(name "password-store")
+(version "1.6.5")
+(source (origin
+  (method url-fetch)
+  (uri
+   (string-append "https://git.zx2c4.com/password-store/snapshot/";
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"
+(build-system gnu-build-system)
+(arguments
+ '(#:phases
+   (alist-delete 'configure %standard-phases)
+   #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+   #:test-target "test"))
+(native-inputs `(("util-linux" ,util-linux))) ; getopt for the tests
+(inputs `(("gnupg" ,gnupg)
+  ("pwgen" ,pwgen)
+  ("xclip" ,xclip)
+  ("git" ,git)
+  ("tree" ,tree)))
+(home-page "http://www.passwordstore.org/";)
+(synopsis "Encrypted password manager")
+(description "Password-store is a password manager which uses GnuPG to
+store and retrieve passwords.  The tool stores each password in its own
+GnuPG-encrypted file, allowing the program to be simple yet
+secure.  Synchronization is possible using the integrated git support, which
+commits changes to your password database to a git repository that can be
+managed through the pass command.")
+(license license:gpl2+)))
-- 
2.6.3



Add some package definitions for MATE

2016-02-09 Thread Fabian Harfert
Hi!

These are some basic package definitions for the MATE desktop environment. I 
already finished mate-panel (these are its dependencies), but I still want to 
do some testing on it.

Fabian




[PATCH 4/5] gnu: Add libmateweather.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (libmateweather): New variable.
---
 gnu/packages/mate.scm | 51 ++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index c377418..d94d7b7 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,7 +28,9 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages xdisorg))
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages xml))
 
 (define-public mate-icon-theme
   (package
@@ -118,3 +120,50 @@ example Menta, TraditionalOk, GreenLaguna or BlackMate.")
  "This package contains a public API shared by several applications on the
 desktop and the mate-about program.")
 (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+
+
+(define-public libmateweather
+  (package
+(name "libmateweather")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/";
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0qrq6z6knybixnxmsvkw58hm033m91inf523mbvzgv2r822fpakl"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   `(,(string-append "--with-zoneinfo-dir="
+ (assoc-ref %build-inputs "tzdata")
+ "/share/zoneinfo"))
+   #:phases
+   (modify-phases %standard-phases
+ (add-before
+  'check 'pre-check
+  (lambda* (#:key inputs #:allow-other-keys)
+(substitute* "data/check-timezones.sh"
+  (("/usr/share/zoneinfo/zone.tab")
+   (string-append (assoc-ref inputs "tzdata")
+  "/share/zoneinfo/zone.tab")))
+#t)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("glib:bin" ,glib "bin")))
+(inputs
+ `(("dconf" ,dconf)
+   ("tzdata" ,tzdata)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)
+   ("gdk-pixbuf" ,gdk-pixbuf)
+   ("libxml2" ,libxml2)
+   ("libsoup" ,libsoup)))
+(home-page "https://mate-desktop.org/";)
+(synopsis "MATE library for weather information from the Internet")
+(description
+ "This library provides acess to weather information from the internet for
+the MATE desktop environment.")
+(license license:lgpl2.1+)))
-- 
2.7.0




[PATCH 3/5] gnu: Add mate-desktop.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-desktop): New variable.
---
 gnu/packages/mate.scm | 37 -
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 6e5ce7c..c377418 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -26,7 +26,9 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages gnome))
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg))
 
 (define-public mate-icon-theme
   (package
@@ -83,3 +85,36 @@
 example Menta, TraditionalOk, GreenLaguna or BlackMate.")
 (license (list license:lgpl2.1+ license:cc-by-sa3.0 license:gpl3+
license:gpl2+
+
+(define-public mate-desktop
+  (package
+(name "mate-desktop")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/";
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"00ssrzm07xyrjra075jhir1f8iy382lla7923fhic29lap26mffr"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("glib:bin" ,glib "bin")
+   ("gobject-introspection" ,gobject-introspection)
+   ("yelp-tools" ,yelp-tools)
+   ("gtk-doc" ,gtk-doc)))
+(inputs
+ `(("libxrandr" ,libxrandr)))
+(propagated-inputs
+ `(("dconf" ,dconf)
+   ("gtk+" ,gtk+-2)
+   ("startup-notification" ,startup-notification)))
+(home-page "https://mate-desktop.org/";)
+(synopsis "Library with common API for various MATE modules")
+(description
+ "This package contains a public API shared by several applications on the
+desktop and the mate-about program.")
+(license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+
-- 
2.7.0




[PATCH 2/5] gnu: Add mate-themes.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-themes): New variable.
---
 gnu/packages/mate.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index d8242d6..6e5ce7c 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -51,3 +51,35 @@
 (description
  "This package contains the default icon theme used by the MATE desktop.")
 (license license:lgpl3+)))
+
+(define-public mate-themes
+  (package
+(name "mate-themes")
+(version "1.12.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/";
+  (version-major+minor version) "/"
+  name "-gtk"
+  (version-major+minor (package-version gtk+))
+  "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0kyrlgs5azzj60gnxx2n9qszcligxn959wr42wr0iqnrpiygk5nf"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)))
+(inputs
+ `(("gtk+" ,gtk+-2)
+   ("gdk-pixbuf" ,gdk-pixbuf)
+   ("gtk-engines" ,gtk-engines)
+   ("murrine" ,murrine)))
+(home-page "http://mate-desktop.org/";)
+(synopsis
+ "Official themes for the MATE desktop")
+(description
+ "This package includes the standard themes for the MATE desktop, for
+example Menta, TraditionalOk, GreenLaguna or BlackMate.")
+(license (list license:lgpl2.1+ license:cc-by-sa3.0 license:gpl3+
+   license:gpl2+
-- 
2.7.0




[PATCH 1/5] gnu: Add mate-icon-theme.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/mate.scm (mate-icon-theme): New variable.
---
 gnu-system.am |  1 +
 gnu/packages/mate.scm | 53 +++
 2 files changed, 54 insertions(+)
 create mode 100644 gnu/packages/mate.scm

diff --git a/gnu-system.am b/gnu-system.am
index 4d32e59..5083206 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -215,6 +215,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/mail.scm\
   gnu/packages/make-bootstrap.scm  \
   gnu/packages/markdown.scm\
+  gnu/packages/mate.scm   \
   gnu/packages/maths.scm   \
   gnu/packages/mc.scm  \
   gnu/packages/mcrypt.scm  \
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
new file mode 100644
index 000..d8242d6
--- /dev/null
+++ b/gnu/packages/mate.scm
@@ -0,0 +1,53 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Fabian Harfert 
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see .
+
+(define-module (gnu packages mate)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gnome))
+
+(define-public mate-icon-theme
+  (package
+(name "mate-icon-theme")
+(version "1.12.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/";
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0d91rvl9rw3xl8hmdcbb6xvi880kfmh2ra5chhrjimrjqgl57qkp"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("gtk+" ,gtk+)
+   ("icon-naming-utils" ,icon-naming-utils)))
+(home-page "http://mate-desktop.org/";)
+(synopsis "The MATE desktop environment icon theme")
+(description
+ "This package contains the default icon theme used by the MATE desktop.")
+(license license:lgpl3+)))
-- 
2.7.0




[PATCH 5/5] gnu: Add mate-menus.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-menus): New variable.
---
 gnu/packages/mate.scm | 43 ++-
 1 file changed, 42 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index d94d7b7..7f482e9 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -30,7 +30,8 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages base)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages python))
 
 (define-public mate-icon-theme
   (package
@@ -167,3 +168,43 @@ desktop and the mate-about program.")
  "This library provides acess to weather information from the internet for
 the MATE desktop environment.")
 (license license:lgpl2.1+)))
+
+(define-public mate-menus
+  (package
+(name "mate-menus")
+(version "1.12.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/";
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1i4m3fj0vd85zyhqhm8x9yr0h5i08aa4l99zqvbk59ncj6z3bdxh"
+(build-system gnu-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'fix-introspection-install-dir
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out")))
+(substitute* '("configure")
+  (("`\\$PKG_CONFIG --variable=girdir 
gobject-introspection-1.0`")
+   (string-append "\"" out "/share/gir-1.0/\""))
+  (("\\$\\(\\$PKG_CONFIG --variable=typelibdir 
gobject-introspection-1.0\\)")
+   (string-append out "/lib/girepository-1.0/")
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(inputs
+ `(("python" ,python-2)))
+(propagated-inputs
+ `(("glib" ,glib)))
+(home-page "https://mate-desktop.org/";)
+(synopsis "Freedesktop menu specification implementation for MATE")
+(description
+ "The package contains an implementation of the freedesktop menu
+specification, the MATE menu layout configuration files, .directory files and
+assorted menu related utility programs.")
+(license (list license:gpl2+ license:lgpl2.0+
-- 
2.7.0




Re: PulseAudio

2016-02-09 Thread Jookia
On Tue, Feb 09, 2016 at 01:26:32PM -0800, Christopher Allan Webber wrote:
> Ludovic Courtès writes:
> 
> > Leo Famulari  skribis:
> >
> >> I guess the factors are:
> >> 1) Does GuixSD have a default audio setup that we should target? If
> >> GuixSD uses PulseAudio, then I think it would be good for eSpeak to be
> >> integrated into that sytem.
> >> 2) Does this package, which launches PulseAudio, work for anyone on a
> >> foreign distro?
> >
> > It’s not written anywhere, but I think most of our audio packages target
> > PulseAudio (that’s what I use on GuixSD.)  I’m in favor of consistently
> > using it, and it would probably be best to write it down in the manual.
> >
> > Thoughts?
> >
> > Ludo’.
> 
> I'd really like it if we just agreed that in general, yeah, we want
> Pulseaudio support.  I used to spend all sorts of time fighting my audio
> setup, being careful on what application opened first so I could be sure
> which one grabbed control of Alsa.  I hadn't had this problem in a few
> years, and it was so nice not to worry about it, but on Guix I've had
> some times where I have again... eg playing audio/video in Icecat
> seems not to use it for whatever reason, and it's a bummer, because then
> I have to be careful about when I start rhythmbox or whatever.

> I'd love to mostly not worry/think about audio issues again!

Going to chime in here: While I don't like PulseAudio, it's a requirement for
working audio on the Novena which I plan to run GuixSD on. Something something
necessary evil. That said, if there's a big rebuild planned there is a
PulseAudio patch I needed to make for NixOS to get things working right. I'm
still tinkering with early boot issues in GuixSD so I'm not that far in the
stack to test it, but if anyone's curious I'll attach the NixOS patch here.

Jookia.



[PATCH] gnu: Add tracker.

2016-02-09 Thread rennes

Hi,

i made changes to the patch, i disable 'make check' because i found two 
errors during this phase:


a) "Tracker-WARNING **: Locale '0' is not set, defaulting to C locale"
   For this case i set LANG "en_US.UTF-8".
b) "Unable to load /var/lib/dbus/machine-id or /etc/machine-id"
   For this i set DBUS_FATAL_WARNINGS" "0", but the error stay.

Thanks.
From 6c5efb2e7ce8102469c5ee15106e58ffcfb77fb3 Mon Sep 17 00:00:00 2001
From: Rene Saavedra 
Date: Tue, 9 Feb 2016 19:27:15 -0600
Subject: [PATCH] gnu: Add tracker.

* gnu/packages/gnome.scm (tracker): New variable.

---
 gnu/packages/gnome.scm | 45 +
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 49e6197..d7ce2ae 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -69,6 +69,7 @@
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libunistring)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages lirc)
@@ -4648,3 +4649,47 @@ as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
 design and behaviour, giving the user a simple way to navigate and manage its
 files.")
 (license license:gpl2+)))
+
+(define-public tracker
+  (package
+(name "tracker")
+(version "1.7.2")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnome/sources/" name "/"
+  (version-major+minor version) "/"
+   name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1m6hys71n6faf6qx719vh8n4y2y63x7cygzh1rq56flvwa0fnxxx"
+(build-system glib-or-gtk-build-system)
+(arguments
+ `(#:tests? #f))
+   ;; XXX: fail on set LANG.
+   ;; XXX: fail on missing '/etc/machine-id'.
+(native-inputs
+ `(("glib" ,glib) ;; XXX: fail with glib-compile-schemas, gio-2.0.
+   ("gobject-introspection" ,gobject-introspection)
+   ("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)
+   ("uuidgen" ,util-linux)
+   ("xsltproc" ,libxslt)))
+(inputs
+ `(("libpng" ,libpng)
+   ("libunistring" ,libunistring)
+   ("libxml2" ,libxml2)
+   ("sqlite" ,sqlite)
+   ("zlib" ,zlib)))
+(home-page "https://wiki.gnome.org/Projects/Tracker";)
+(synopsis "Desktop user information store, search tool and indexer")
+(description
+ "Tracker is a semantic data storage for desktop and mobile devices.
+Tracker uses W3C standards for RDF ontologies using Nepomuk with SPARQL to query
+and update the data.  Tracker is a central repository of user information, that
+provides two big benefits for the user; shared data between applications and
+information which is relational to other information.")
+(license (list license:lgpl2.1+   ;; XXX: libtracker, tracker-extract.
+  ;; XXX: tracker-utils, gvdb.
+   license:gpl2+  ;; XXX: everything else.
+   license:bsd-3  ;; XXX: libstemmer.
-- 
2.6.3



Problem with pkgconfig source https redirect

2016-02-09 Thread Christopher W Carpenter

Talked about this on IRC davexunit, but there appears to be a circular 
dependency
issue with gnutls and pkg-config now that pkg-config needs to be
downloaded via https.

If I do a

guix build pkg-config --check --no-substitutes

on master right now i get:

Starting download of 
/gnu/store/87mxipb93cxhg4wy13wa8wk9mjsxd937-pkg-config-0.29.tar.gz
From http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.tar.gz...
following redirection to 
`https://pkg-config.freedesktop.org/releases/pkg-config-0.29.tar.gz'...
;;; Failed to autoload make-session in (gnutls):
;;; ERROR: missing interface for module (gnutls)
ERROR: In procedure module-lookup: Unbound variable: make-session
failed to download 
"/gnu/store/87mxipb93cxhg4wy13wa8wk9mjsxd937-pkg-config-0.29.tar.gz" from 
"http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.tar.gz";
builder for 
`/gnu/store/yp6432nfcwblxwvmm3kmsg6zdgqfyc9p-pkg-config-0.29.tar.gz.drv' failed 
to produce output path 
`/gnu/store/87mxipb93cxhg4wy13wa8wk9mjsxd937-pkg-config-0.29.tar.gz'
@ build-failed 
/gnu/store/yp6432nfcwblxwvmm3kmsg6zdgqfyc9p-pkg-config-0.29.tar.gz.drv - 1 
builder for 
`/gnu/store/yp6432nfcwblxwvmm3kmsg6zdgqfyc9p-pkg-config-0.29.tar.gz.drv' failed 
to produce output path 
`/gnu/store/87mxipb93cxhg4wy13wa8wk9mjsxd937-pkg-config-0.29.tar.gz'
cannot build derivation 
`/gnu/store/ns04f833g7r72gbaxlcakjb4n69iw2fw-pkg-config-0.29.drv': 1 
dependencies couldn't be built
guix build: error: build failed: build of 
`/gnu/store/ns04f833g7r72gbaxlcakjb4n69iw2fw-pkg-config-0.29.drv' failed


If I change the url to the redirection url (see attached patch) I get:

Backtrace:
In guix/gexp.scm:
 402: 19 [# #]
 405: 18 [# #]
In guix/store.scm:
1001: 17 [# #]
In guix/packages.scm:
 733: 16 [cache # # #]
 978: 15 [thunk]
 910: 14 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 13 [map # #]
In guix/packages.scm:
 790: 12 [expand-input # # # ...]
In guix/store.scm:
1061: 11 [run-with-store # ...]
In guix/download.scm:
 271: 10 [# #]
In guix/store.scm:
1001: 9 [# #]
In guix/packages.scm:
 733: 8 [cache # # #]
 978: 7 [thunk]
 910: 6 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 5 [map # #]
In guix/packages.scm:
 790: 4 [expand-input # # # ...]
In guix/store.scm:
1008: 3 [# # # ...]
In guix/packages.scm:
1080: 2 [origin->derivation # "x86_64-linux"]
In guix/download.scm:
 239: 1 [url-fetch "mirror://gnu/guile/guile-2.0.11.tar.xz" sha256 ...]
In unknown file:
   ?: 0 [string-prefix? "https://"; "mirror://gnu/guile/guile-2.0.11.tar.xz" ...]

ERROR: In procedure string-prefix?:
ERROR: Throw to key `vm-error' with args `(vm-run "VM: Stack overflow" ())'.
Backtrace:
In guix/store.scm:
1001: 19 [# #]
In guix/packages.scm:
 733: 18 [cache # # #]
 978: 17 [thunk]
 910: 16 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 15 [map # #]
In guix/packages.scm:
 790: 14 [expand-input # # # ...]
In guix/store.scm:
1061: 13 [run-with-store # ...]
In guix/download.scm:
 271: 12 [# #]
In guix/store.scm:
1001: 11 [# #]
In guix/packages.scm:
 733: 10 [cache # # #]
 978: 9 [thunk]
 910: 8 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 7 [map # #]
In guix/packages.scm:
 790: 6 [expand-input # # # ...]
In guix/store.scm:
1008: 5 [# # # ...]
In guix/packages.scm:
1080: 4 [origin->derivation # "x86_64-linux"]
In guix/download.scm:
 239: 3 [url-fetch "mirror://gnu/guile/guile-2.0.11.tar.xz" sha256 ...]
In unknown file:
   ?: 2 [string-prefix? "https://"; "mirror://gnu/guile/guile-2.0.11.tar.xz" ...]
In ice-9/boot-9.scm:
 105: 1 [# 
vm-error ...]
  65: 0 [abort-to-prompt catch7 vm-error vm-run "VM: Stack overflow" ()]

ice-9/boot-9.scm:65:2: In procedure abort-to-prompt:
ice-9/boot-9.scm:65:2: Throw to key `vm-error' with args `(vm-run "VM: Stack 
overflow" ())'.
Backtrace:
In guix/packages.scm:
 978: 19 [thunk]
 910: 18 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 17 [map # #]
In guix/packages.scm:
 790: 16 [expand-input # # # ...]
In guix/store.scm:
1061: 15 [run-with-store # ...]
In guix/download.scm:
 271: 14 [# #]
In guix/store.scm:
1001: 13 [# #]
In guix/packages.scm:
 733: 12 [cache # # #]
 978: 11 [thunk]
 910: 10 [bag->derivation # # #]
In srfi/srfi-1.scm:
 578: 9 [map # #]
In guix/packages.scm:
 790: 8 [expand-input # # # ...]
In guix/store.scm:
1008: 7 [# # # ...]
In guix/packages.scm:
1080: 6 [origin->derivation # "x86_64-linux"]
In guix/download.scm:
 239: 5 [url-fetch "mirror://gnu/guile/guile-2.0.11.tar.xz" sha256 ...]
In unknown file:
   ?: 4 [string-prefix? "https://"; "mirror://gnu/guile/guile-2.0.11.tar.xz" ...]
In ice-9/boot-9.scm:
 105: 3 [# 
vm-error ...]
  65: 2 [abort-to-prompt catch7 vm-error vm-run "VM: Stack overflow" ()]
 105: 1 [# 
vm-error ...]
  65: 0 [abort-to-prompt catch7 vm-error vm-run "VM: Stack overflow" ()]

ice-9/boot-9.scm:65:2: In procedure abort-to-prompt:
ice-9/boot-9.scm:65:2: Throw to key `vm-error' with args `(vm-run "VM: Stack 
overflow" ())'.

davexunit on #guix mentioned that this may need to be solved using a
minimal build of gnutls that doe

[PATCH 2/2] install: Add btrfs-progs to the image.

2016-02-09 Thread tobias . geerinckx . rice
From: Tobias Geerinckx-Rice 

* gnu/system/install.scm (installation-os): Add BTRFS-PROGS.
---
 gnu/system/install.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 0cfc8fa..2838411 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -365,6 +365,7 @@ Use Alt-F2 for documentation.
  parted ddrescue
  grub  ;mostly so xrefs to its manual work
  cryptsetup
+ btrfs-progs
  wireless-tools iw wpa-supplicant-minimal iproute
  ;; XXX: We used to have GNU fdisk here, but as of version
  ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable
-- 
2.6.3




Adding btrfs-progs

2016-02-09 Thread tobias . geerinckx . rice
Hullo Guix,

Here are two patches adding btrfs-progs to GuixSD and its
installation image, respectively.

Actually booting from btrfs will likely need more changes[1] to
an initrd that I don't yet grok.

Kind regards,

T G-R

[1]: ,
 although this patch was not based on that one.



[PATCH 1/2] gnu: Add btrfs-progs.

2016-02-09 Thread tobias . geerinckx . rice
From: Tobias Geerinckx-Rice 

* gnu/packages/linux.scm (btrfs-progs): New variable.
---
 gnu/packages/linux.scm | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index e7f7bcd..33cf534 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer 
 ;;; Copyright © 2015, 2016 Efraim Flashner 
 ;;; Copyright © 2016 Christopher Allan Webber 
+;;; Copyright © 2016 Tobias Geerinckx-Rice 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2467,3 +2468,36 @@ write access to exFAT devices.")
 applications running on the Linux console.  It allows users to select items
 and copy/paste text in the console and in xterm.")
 (license license:gpl2+)))
+
+(define-public btrfs-progs
+  (package
+(name "btrfs-progs")
+(version "4.4")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "mirror://kernel.org/linux/kernel/people/kdave/"
+  "btrfs-progs/btrfs-progs-v" version ".tar.xz"))
+ (sha256
+  (base32
+   "0jssv1ys4nw2jf7mkp58c19yspaa8ybf48fxsrhhp0683mzpr73p"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f))  ;no test suite
+(inputs `(("e2fsprogs" ,e2fsprogs)
+  ("libblkid" ,util-linux)
+  ("libuuid" ,util-linux)
+  ("zlib" ,zlib)
+  ("lzo" ,lzo)))
+(native-inputs `(("pkg-config" ,pkg-config)
+ ("asciidoc" ,asciidoc)
+ ("xmlto" ,xmlto)
+ ("libxml2" ,libxml2) ;for building documentation
+ ("docbook-xml" ,docbook-xml)
+ ("docbook-xsl" ,docbook-xsl)))
+(home-page "https://btrfs.wiki.kernel.org/";)
+(synopsis "Create and manage btrfs copy-on-write file systems")
+(description "Btrfs is a copy-on-write (CoW) filesystem for Linux aimed at
+implementing advanced features while focusing on fault tolerance, repair and
+easy administration.")
+(license license:gpl2+)))
-- 
2.6.3




Re: [PATCH] gnu: add lispf4

2016-02-09 Thread Leo Famulari
On Tue, Feb 09, 2016 at 11:30:21AM +0100, Nils Gillmann wrote:
> Efraim Flashner  writes:
> > On Tue, 09 Feb 2016 02:31:51 +0100
> > Nils Gillmann  wrote:

[...]

> >
> >> But now as I did guix pull and installed it from there, and do
> >> not run it inside guix environment, I encounter an error I did
> >> not see coming as it worked in the environment.

[...]

> > If you replace the install phase sometimes you have to change the 
> > permissions
> > yourself. Try searching for #o555.
> 
> Okay, thanks.
> I tried this but it doesn't change in the environment.
> On another system, in Debian, the permissions (in my users home)
> are:
> SYSATOMS: 644
> lispf4: 755
> BASIC.IMG 644
> 
> without changes, current lispf4 from master:
> niasterisk@khazad-dum ~/projects/guix_project/guix [env]$ ./pre-inst-env guix 
> build lispf4
> /gnu/store/7rkw1rhn4ijap9b936waspki03260lpb-lispf4-0.0.0-1-174d876
> /gnu/store/871yzidvz2h4kpjx9sb116b0lshr88dn-lispf4-0.0.0-1-174d876-doc
> niasterisk@khazad-dum ~/projects/guix_project/guix [env]$ ls -al 
> /gnu/store/7rkw1rhn4ijap9b936waspki03260lpb-lispf4-0.0.0-1-174d876/bin/
> total 200
> dr-xr-xr-x 2 root guixbuild  4096 Jan  1  1970 ./
> dr-xr-xr-x 3 root guixbuild  4096 Jan  1  1970 ../
> -r--r--r-- 4 root guixbuild 94972 Jan  1  1970 BASIC.IMG
> -r-xr-xr-x 8 root guixbuild 92088 Jan  1  1970 lispf4
> -r--r--r-- 8 root guixbuild  2105 Jan  1  1970 SYSATOMS
> 
> If I try 555 for both files, the output with the rights is below.
> I wonder, do I need to set it to 644 as it happens on the Debian
> system? Should I use guix system vm to test this? I expected that
> environment behaves like what pushed as a patch...

I'm not sure — did you figure out a solution to the problem with the
package?



Re: GSoC ideas

2016-02-09 Thread Pjotr Prins
On Tue, Feb 09, 2016 at 02:17:08PM -0800, Christopher Allan Webber wrote:
> >>  - g-expressions which generate packages of the Guix package manager for
> >>.deb and .rpm based distros, and work to get those upstream in Debian
> >>and Fedora
> >
> > That would be useful, and CheckInstall may be good enough for that.  I
> > don’t think it’s “enough” for GSoC, though.  WDYT?
> 
> If the student was really to package Guix for many distributions, it
> might be enough.  Especially if that student was to explore packaging
> with upstream.  Anyway, the payout could be *huge*.

One thing to keep in mind is that GSoC is about programming. So, we
have to be clear about that in the proposal.

> If they finish early, I'm sure we could find other things for them to
> do?  :)

Better to put a secondary job in - such as improving the web-ui or
creating a tool for importing deb packages, or something. Students
will come if they think the job challenging/interesting enough.

Pj.



Re: Problem with pkgconfig source https redirect

2016-02-09 Thread Efraim Flashner
On Tue, 09 Feb 2016 20:56:59 -0600
Christopher W Carpenter  wrote:

> Talked about this on IRC davexunit, but there appears to be a circular 
> dependency
> issue with gnutls and pkg-config now that pkg-config needs to be
> downloaded via https.
> 
[snip]
> 
> davexunit on #guix mentioned that this may need to be solved using a
> minimal build of gnutls that doesn't require pkg-config for https
> downloads but i'm a bit out of my depth here so I'm just reporting :).
> 
> I am happy to do some grunt work once the project decides what direction
> to go.
> 
> Thanks,
> Christopher Carpenter
> 
 
Another option is to try to build gnutls without pkg-config and as part of
the configure phase manually tell it where to find the dependencies. IIRC we
do that with some of the less complicated lower level packages.

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


pgpcUGFm3Jdje.pgp
Description: OpenPGP digital signature


Re: [PATCH 2/4] gnu: magit: Update to 2.5.0.

2016-02-09 Thread Alex Kost
Ludovic Courtès (2016-02-08 18:24 +0300) wrote:

> Alex Kost  skribis:
>
>> * gnu/packages/emacs.scm (magit): Update to 2.5.0.
>> [propagated-inputs]: Add 'emacs-with-editor'.
>> [arguments]: Make with WITH_EDITOR_DIR.
>
> I fear Magit upgrades these days but well, let’s just do it.  Thanks!

He-he, this one didn't break my workflow so far :-)

Pushed, thanks!

-- 
Alex