Re: [PATCH] gnu: add lispf4

2016-02-10 Thread Nils Gillmann
Leo Famulari  writes:

> 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?

Yes and no.
I am not sure, as I don't know Guix enough currently.
On Debian, compiled in $HOME I get 644 on SYSATOMS + BASIC.IMG.
If this is the default, should I just assume for a moment that
this will be okay to set for (chmod) in the install procedure and
patch it as such?

I'm distracted by problems out of my control currently, but I'm
still trying to get this solved.
-- 
ng



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

2016-02-10 Thread Andreas Enge
Hello,

On Tue, Feb 09, 2016 at 03:15:38PM -0500, Mark H Weaver wrote:
> 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.

it looks like we are almost there. Do you think we could squeeze in an
evaluation and build of wip-pulseaudio after updating master and rebasing
the wip branch on master?

Andreas




wip-pulseaudio (was Re: [PATCH] gnu: libgcrypt: Update to 1.6.5. (security update))

2016-02-10 Thread Efraim Flashner
On Wed, 10 Feb 2016 15:46:59 +0100
Andreas Enge  wrote:

> Hello,
> 
> On Tue, Feb 09, 2016 at 03:15:38PM -0500, Mark H Weaver wrote:
>  [...]  
> 
> it looks like we are almost there. Do you think we could squeeze in an
> evaluation and build of wip-pulseaudio after updating master and rebasing
> the wip branch on master?
> 
> Andreas
> 

I see it's been rebased on origin/master, I'll report back in a bit

efraim@debian-netbook:~/workspace/guix$ time ./pre-inst-env guix build 
gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav 
--fallback
;;; note: source file /home/efraim/workspace/guix/gnu/packages/pulseaudio.scm
;;;   newer than compiled 
/home/efraim/workspace/guix/gnu/packages/pulseaudio.go
guix build: warning: failed to load '(efraim packages go-hello)':
ERROR: no code for module (guix build-system golang)
substitute: warning: failed to install locale: Invalid argument
substitute: updating list of substitutes from 'http://hydra.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/qsg8g97ilakkj7hrvb7ywgqlapvx64bs-gst-libav-1.6.1.drv
   /gnu/store/j1z8qp0crifmgzfsrp9jg7p319xixp4m-gst-plugins-ugly-1.6.1.drv
   /gnu/store/xw15fnvzii6vwcr0dzgvhmy9b8w3cml7-gst-plugins-good-1.6.1.drv
   /gnu/store/6z864wqna3jklpwgb8haww7ycx5z60g7-openal-1.15.1.drv
   /gnu/store/gnkcv491lbw47rm491jf92d2f0496al0-ffmpeg-2.8.6.drv
The following files will be downloaded:
   /gnu/store/6y9i8v9lpmg286q63l72zz77pi1c91z2-gstreamer-1.6.1
   /gnu/store/2ka19awqsy3a0kz7x0n8826f5p4balgl-gstreamer-1.6.1-doc
   /gnu/store/sqbjqrszg8v4bb5qyxb5hivd9m34wpsg-gst-plugins-base-1.6.1
   /gnu/store/x1jx9xj6c9xfqa8hhgsk1sz6ily1snik-gst-plugins-base-1.6.1-doc
   /gnu/store/mppcj72lhdn7zaffakyrpzgjdm6fvkjj-gst-plugins-good-1.6.1.tar.xz
   /gnu/store/6rg1a6zh5h1clnf3ss8x2sy5178mbg3k-cairo-1.14.2
   /gnu/store/yv59gw65pypy6xjbb84p6aajk290rxy2-gdk-pixbuf-2.32.3
   /gnu/store/h8qmk26qppjlwwcvqk7hii6m5g03snxn-libcaca-0.99.beta19
   /gnu/store/sy9xwmlbzsbwbbcmd08nbg78n6kqm8jj-libsoup-2.52.1
   /gnu/store/yjnwwk25pif432gvwvqr33slwgb3f8gg-taglib-1.9.1
   /gnu/store/ar79y0mc7p6zrj2c0ilq8xrig1rpvnja-gst-plugins-ugly-1.6.1.tar.xz
   /gnu/store/82s25lxd0gfd4sqqsbv0p8vvxg948jmm-cmake-3.3.2
   /gnu/store/38cbna95gfyif3dyx2k8gds4h5fbv905-libquvi-0.4.1
   /gnu/store/pkbjdqk08ipjc3aabkvq15k8x77a2gs1-gnutls-3.4.7
   /gnu/store/rdi8195mysf340rm54xqjmxpl1qjq1wb-nettle-3.2
   /gnu/store/l04g809qjv9kfi3m1j42228n59jd7d0c-harfbuzz-1.0.6
   /gnu/store/7wrxicspxl4kz26vc5sbip0riqyq8hq6-libass-0.13.1
   /gnu/store/jpv3s592q5mrm596b9l8gzraclsmbi3g-graphite2-1.3.3
   /gnu/store/6m2li0x1f0ihvc36m4fwilmxa3bl3j88-soxr-0.1.1
   /gnu/store/8qwh8yk93p9nxbi2h5xahg0qjqxc9093-openldap-2.4.42
   /gnu/store/absyflwdck42kvs46196r54fjzvy9nsm-curl-7.47.0
   /gnu/store/ih5c39iibk2vqc717hbza4dqyxn1r2pa-shishi-1.0.2
   /gnu/store/mzkfj4vk1vfa3np2m7pm8h6q8z66f6ii-gss-1.0.3
   /gnu/store/vm7sx64bg8y343x83pww16fhigbngx8d-cyrus-sasl-2.1.26
   /gnu/store/1x6y9iby8krgskri5cdkdg8qk9yzkp03-libarchive-3.1.2
   /gnu/store/x3jlzwsn2xj0zwa1bfcj7lqv2b3mn70j-freeglut-3.0.0
   /gnu/store/29k39pj0cw9i2vzj59kbys8qmvhw2lby-pango-1.38.1

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


pgpOIsm9qL4C4.pgp
Description: OpenPGP digital signature


[PATCH] gnu: Add slurm-llnl.

2016-02-10 Thread Pjotr Prins
* gnu/packages/parallel.scm (slurm-llnl): New variable.
---
 gnu/packages/parallel.scm | 51 ---
 1 file changed, 48 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 8f63bda..03ee460 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -2,7 +2,8 @@
 ;;; Copyright © 2013,2014 Eric Bavier 
 ;;; Copyright © 2015 Mark H Weaver 
 ;;; Copyright © 2015 Efraim Flashner 
-;;;
+;;; Copyright © 2014, 2015 Pjotr Prins 
+
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; GNU Guix is free software; you can redistribute it and/or modify it
@@ -20,11 +21,17 @@
 
 (define-module (gnu packages parallel)
   #:use-module (guix packages)
-  #:use-module (guix licenses)
   #:use-module (guix download)
+  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
-  #:use-module (gnu packages perl))
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages tcl)
+  #:use-module (gnu packages tls))
 
 (define-public parallel
   (package
@@ -47,3 +54,41 @@
 or more computers.  Jobs can consist of single commands or of scripts
 and they are executed on lists of files, hosts, users or other items.")
 (license gpl3+)))
+
+(define-public slurm-llnl
+  (package
+   (name "slurm-llnl")
+   (version "15-08-6-1")
+   (source (origin
+(method url-fetch)
+(uri (string-append 
"https://github.com/SchedMD/slurm/archive/slurm-;
+version ".tar.gz"))
+(file-name (string-append name "-" version ".tar.gz"))
+(sha256
+ (base32
+  "1h8al21blmrhma9r7qxkba2g5i74m3hrjc9a640j7px54szvg18v"
+   (inputs `(("openssl" ,openssl)
+ ("munge" ,munge)
+ ("perl" ,perl)
+ ("expect" ,expect)
+ ("python" ,python)
+ ("linux-pam" , linux-pam)))
+   (build-system gnu-build-system)
+   (arguments
+`(#:configure-flags '("--enable-pam")
+  #:phases
+  (modify-phases %standard-phases
+   (add-before
+'configure 'rewrite-usr-bin
+(lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "./doc/html/shtml2html.py"
+  (("#!/usr/bin/env python")
+   (string-append "#!" (which "python3"
+ (substitute* "src/common/env.c"
+  (("/usr/bin/env") (which "env"
+   (home-page "http://www.schedmd.com/;)
+   (synopsis "Tool for cluster computing")
+   (description
+"Fault-tolerant, and highly scalable cluster management and job
+scheduling system for large and small clusters.")
+   (license license:openssl)))
-- 
2.5.0




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

2016-02-10 Thread Cook, Malcolm
Hi,

Thanks everyone for the many valuable suggestions and education.

Next week I intend to incorporate the suggested improvements as best I can and 
follow up with an edit that I will use in-house, and share back out via git-hub.

Though the document is aimed at my particular internal "project justification", 
I am trying to keep it generic, and will welcome suggestions for further 
reshaping it to be of more general value should there be such interest from 
y'all.

GoGuix,

Malcolm



Re: wip-pulseaudio (was Re: [PATCH] gnu: libgcrypt: Update to 1.6.5. (security update))

2016-02-10 Thread Efraim Flashner
On Wed, 10 Feb 2016 18:53:50 +0200
Efraim Flashner  wrote:

> On Wed, 10 Feb 2016 15:46:59 +0100
> Andreas Enge  wrote:
> 
>  [...]  
> 
> I see it's been rebased on origin/master, I'll report back in a bit
> 
> efraim@debian-netbook:~/workspace/guix$ time ./pre-inst-env guix build 
> gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav 
> --fallback
> ;;; note: source file /home/efraim/workspace/guix/gnu/packages/pulseaudio.scm
> ;;;   newer than compiled 
> /home/efraim/workspace/guix/gnu/packages/pulseaudio.go
> guix build: warning: failed to load '(efraim packages go-hello)':
> ERROR: no code for module (guix build-system golang)
> substitute: warning: failed to install locale: Invalid argument
> substitute: updating list of substitutes from 'http://hydra.gnu.org'... 100.0%
> The following derivations will be built:
>/gnu/store/qsg8g97ilakkj7hrvb7ywgqlapvx64bs-gst-libav-1.6.1.drv
>/gnu/store/j1z8qp0crifmgzfsrp9jg7p319xixp4m-gst-plugins-ugly-1.6.1.drv
>/gnu/store/xw15fnvzii6vwcr0dzgvhmy9b8w3cml7-gst-plugins-good-1.6.1.drv
>/gnu/store/6z864wqna3jklpwgb8haww7ycx5z60g7-openal-1.15.1.drv
>/gnu/store/gnkcv491lbw47rm491jf92d2f0496al0-ffmpeg-2.8.6.drv
> The following files will be downloaded:
>/gnu/store/6y9i8v9lpmg286q63l72zz77pi1c91z2-gstreamer-1.6.1
>/gnu/store/2ka19awqsy3a0kz7x0n8826f5p4balgl-gstreamer-1.6.1-doc
>/gnu/store/sqbjqrszg8v4bb5qyxb5hivd9m34wpsg-gst-plugins-base-1.6.1
>/gnu/store/x1jx9xj6c9xfqa8hhgsk1sz6ily1snik-gst-plugins-base-1.6.1-doc
>/gnu/store/mppcj72lhdn7zaffakyrpzgjdm6fvkjj-gst-plugins-good-1.6.1.tar.xz
>/gnu/store/6rg1a6zh5h1clnf3ss8x2sy5178mbg3k-cairo-1.14.2
>/gnu/store/yv59gw65pypy6xjbb84p6aajk290rxy2-gdk-pixbuf-2.32.3
>/gnu/store/h8qmk26qppjlwwcvqk7hii6m5g03snxn-libcaca-0.99.beta19
>/gnu/store/sy9xwmlbzsbwbbcmd08nbg78n6kqm8jj-libsoup-2.52.1
>/gnu/store/yjnwwk25pif432gvwvqr33slwgb3f8gg-taglib-1.9.1
>/gnu/store/ar79y0mc7p6zrj2c0ilq8xrig1rpvnja-gst-plugins-ugly-1.6.1.tar.xz
>/gnu/store/82s25lxd0gfd4sqqsbv0p8vvxg948jmm-cmake-3.3.2
>/gnu/store/38cbna95gfyif3dyx2k8gds4h5fbv905-libquvi-0.4.1
>/gnu/store/pkbjdqk08ipjc3aabkvq15k8x77a2gs1-gnutls-3.4.7
>/gnu/store/rdi8195mysf340rm54xqjmxpl1qjq1wb-nettle-3.2
>/gnu/store/l04g809qjv9kfi3m1j42228n59jd7d0c-harfbuzz-1.0.6
>/gnu/store/7wrxicspxl4kz26vc5sbip0riqyq8hq6-libass-0.13.1
>/gnu/store/jpv3s592q5mrm596b9l8gzraclsmbi3g-graphite2-1.3.3
>/gnu/store/6m2li0x1f0ihvc36m4fwilmxa3bl3j88-soxr-0.1.1
>/gnu/store/8qwh8yk93p9nxbi2h5xahg0qjqxc9093-openldap-2.4.42
>/gnu/store/absyflwdck42kvs46196r54fjzvy9nsm-curl-7.47.0
>/gnu/store/ih5c39iibk2vqc717hbza4dqyxn1r2pa-shishi-1.0.2
>/gnu/store/mzkfj4vk1vfa3np2m7pm8h6q8z66f6ii-gss-1.0.3
>/gnu/store/vm7sx64bg8y343x83pww16fhigbngx8d-cyrus-sasl-2.1.26
>/gnu/store/1x6y9iby8krgskri5cdkdg8qk9yzkp03-libarchive-3.1.2
>/gnu/store/x3jlzwsn2xj0zwa1bfcj7lqv2b3mn70j-freeglut-3.0.0
>/gnu/store/29k39pj0cw9i2vzj59kbys8qmvhw2lby-pango-1.38.1
> 

gst-plugins-good failed the test suite again, with 1 failed test:
FAIL: elements/splitmux

ran it two other times and had 2 failed tests:
FAIL: elements/splitmux
FAIL: elements/rtprtx

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


pgp_XBPzmreo5.pgp
Description: OpenPGP digital signature


Re: wip-pulseaudio (was Re: [PATCH] gnu: libgcrypt: Update to 1.6.5. (security update))

2016-02-10 Thread Andreas Enge
On Wed, Feb 10, 2016 at 08:41:10PM +0200, Efraim Flashner wrote:
> gst-plugins-good failed the test suite again, with 1 failed test:
> FAIL: elements/splitmux
> ran it two other times and had 2 failed tests:
> FAIL: elements/splitmux
> FAIL: elements/rtprtx

This is strange; before that, it worked unless libvpx was also updated.
I will give it another try here.

Andreas




Re: wip-pulseaudio (was Re: [PATCH] gnu: libgcrypt: Update to 1.6.5. (security update))

2016-02-10 Thread Andreas Enge
On Wed, Feb 10, 2016 at 08:41:10PM +0200, Efraim Flashner wrote:
> gst-plugins-good failed the test suite again, with 1 failed test:
> FAIL: elements/splitmux
> ran it two other times and had 2 failed tests:
> FAIL: elements/splitmux
> FAIL: elements/rtprtx

I tried it again, and it passes its tests. Let us wait and see what will
happen on hydra.

Andreas




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

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

> * gnu/packages/python.scm (python-requests)[properties]: New field.
> (python2-requests): Use 'strip-python2-variant'.

OK with a fixed commit message.



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

2016-02-10 Thread Andreas Enge
On Wed, Feb 10, 2016 at 03:46:03PM -0500, Mark H Weaver wrote:
> What's the nature of the pulseaudio update?  Why is it important?

It is not particularly important, I would say. I am just growing impatient,
we seem to be blocked by security-updates and core-updates more or less
since the beginning of December. This is all part of the gstreamer update
that we are postponing for about three weeks now.

Hooray for a new hydra!

Andreas




Re: Review of installation manual draft

2016-02-10 Thread Ludovic Courtès
Hi Petter,

Thanks a lot for the additions to the manual!

There was a lot more than I expected.  ;-)  For now, I’ve focused on the
improvements to the “System Installation” section, leading to commit
dedb8d5.

It turned out to be more work than I expected because I had to find out
what the differences were (some paragraphs had been moved to a single
line, which made it hard to spot the differences), and then ended up
doing a few things differently to preserve consistency.

In the future, it would be awesome if you could send more focused
patches and make sure the diffs don’t show unrelated “noise.”

Petter  skribis:

> +Open the file in one of the editors. We'll now walk you through the updates 
> you need to make in the operating-system declaration in turn from top to 
> bottom.
> +
> +@table @asis
> +@item @samp{host-name}
> +Will be the name for this system. It'll be used for identifying this system 
> on the network and should be unique amongst the computers in your LAN(s). You 
> may also see it in shell prompts. Use ASCII letters and digits only unless 
> you know what you're doing.
> +
> +@item @samp{timezone}
> +This value must match a supported timezone exactly. To find the value you 
> need here you can run the command
> +@example
> +tzselect
> +@end example
> +and answer its questions. When it asks "Is the above information OK?" answer 
> "1" (Yes). The value in the last line of output is the value to use in your 
> configuration.
> +To get a shell prompt for running commands you can change virtual console 
> (Ctrl-Alt-F#), or close the editor.
> +
> +@item @samp{locale}
> +This value must match a supported locale exactly. To get a list of supported 
> locales and their typing run the command
> +@example
> +ls /run/current-system/locale/@var{X.Y}
> +@end @samp{example}
> +where X.Y is the libc version (just press TAB at this level). Find the 
> locale you want in the listed output and take note of exactly how it is typed 
> (trailing / is not included in the name).
> +To get a shell prompt for running commands you can change virtual console 
> (Ctrl-Alt-F#), or close the editor.
> +
> +@item @samp{bootloader}
> +Update the @samp{device} argument according to the comment in the example 
> configuration. Typical value is @var{/dev/sda}, note there's no trailing 
> digit. This will instruct the installation to install GRUB to the MBR of your 
> disk. This is fine even if you're going to use the boot loader in your boot 
> firmware, it will just be unused in this case.
> +@end table

I did not include this as is because I think most of it is redundant
with (or should be covered by) the “operating-system Reference” section.

I have not yet integrated the bits about setting up an encrypted root
etc. because I first want the bits below to be fixed in the code.

> +@subsection Booting a fully encrypted system
> +
> +@emph{This chapter is only for systems with encrypted boot.}
> +
> +To be able to boot with encrypted boot you need a system with GRUB flashed 
> into the boot firmware, like with Coreboot/Libreboot.

It’s not clear to me how much of it is specific to Coreboot/Libreboot.
It seems like it could equally well work when GRUB is spawned by a
random proprietary BIOS no?

> +@table @asis
> +@item Manual steps to boot your fully encrypted system
> +Press @kbd{c} in GRUB to enter command mode.

Seems to me that GuixSD should automatically DTRT when installing on an
encrypted root file system.  See .

> +menuentry "GuixSD (current)" @{
> +  cryptomount @var{grub-partition}
> +  set root=(crypto0)
> +  set guix_system=/var/guix/profiles/system
> +  linux  $@{guix_system@}/kernel/bzImage --root=@var{your-root-partition} 
> --system=$@{guix_system@} --load=$@{guix_system@}/boot
> +  initrd $@{guix_system@}/initrd
> +@}

I think this sort of answers the above bug report, no?

Thanks a lot for your feedback on this!

Ludo’.



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

2016-02-10 Thread Mark H Weaver
Andreas Enge  writes:

> Hello,
>
> On Tue, Feb 09, 2016 at 03:15:38PM -0500, Mark H Weaver wrote:
>> 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.
>
> it looks like we are almost there. Do you think we could squeeze in an
> evaluation and build of wip-pulseaudio after updating master and rebasing
> the wip branch on master?

I'm reluctant to delay a critical security update like this, which
apparently allows a compromised web site to perform remote code
execution in our graphical web browsers.  I, for one, am running
text-only for now, and am impatient to return back to the modern era.

What's the nature of the pulseaudio update?  Why is it important?

What do other people think?

  Mark



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

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

> * gnu/packages/python.scm (python-jsonschema)[properties]: New field.
> (python2-jsonschema): Use 'strip-python2-variant'.

OK



Re: [PATCH 0/5] python2-variants

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

> 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.

Neat!  Let’s see how many lines of code that saves us.  :-)

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

OK.  I’m reviewing this series mostly superficially under the assumption
that you’ve checked that things still build.

> * gnu/packages/python.scm (python-cryptography)[properties]: New field.
> (python2-cryptography): Use 'strip-python2-variant'.

OK!

Ludo’.



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

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

> 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?

That's plausible.

> 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.

This one changes ‘patch-source-shebangs’, which is about patching files
in the source tree.

It makes sense to avoid patching symlinks there too, but are you sure
this has anything to do with the problem you noticed?

Thanks,
Ludo’.



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

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

> * gnu/packages/python.scm (python-wheel)[properties]: New field.
> (python2-wheel): Use 'strip-python2-variant'.

OK (with the adjusted commit message as you note.)



Re: [PATCH] gnu: Add notmuch-addrlookup-c.

2016-02-10 Thread Leo Famulari
On Wed, Feb 10, 2016 at 01:30:20PM -0800, Al McElrath wrote:
> Thanks for the feedback. A revised patch is attached.
> 

Thank you! Pushed as 8a75c589aac.

> From 910e61b6ca8921b521c98bcb2d4ba6d64bcf79bf Mon Sep 17 00:00:00 2001
> From: Al McElrath 
> Date: Tue, 9 Feb 2016 12:07:30 -0800
> Subject: [PATCH] gnu: Add notmuch-addrlookup-c.
> 
> * gnu/packages/mail.scm (notmuch-addrlookup-c): New variable.
> ---
>  gnu/packages/mail.scm | 42 ++
>  1 file changed, 42 insertions(+)
> 
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index d41479e..5a9f420 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -10,6 +10,7 @@
>  ;;; Copyright © 2015 Andreas Enge 
>  ;;; Copyright © 2015, 2016 Efraim Flashner 
>  ;;; Copyright © 2016 Christopher Allan Webber 
> +;;; Copyright © 2016 Al McElrath 
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -414,6 +415,47 @@ attachments, create new maildirs, and so on.")
>  ing, and tagging large collections of email messages.")
>  (license gpl3+)))
>  
> +(define-public notmuch-addrlookup-c
> +  (package
> +(name "notmuch-addrlookup-c")
> +(version "7")
> +(source (origin
> +  (method url-fetch)
> +  (uri (string-append
> +"https://github.com/aperezdc/; name "/archive/v"
> +version ".tar.gz"))
> +  (file-name (string-append name "-" version ".tar.gz"))
> +  (sha256
> +   (base32
> +"0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri"
> +(build-system gnu-build-system)
> +(arguments
> + '(#:tests? #f ; no tests
> +   #:make-flags (list "CC=gcc"
> +  (string-append "PREFIX="
> + (assoc-ref %outputs "out")))
> +   #:phases (modify-phases %standard-phases
> +  (delete 'configure)
> +  ;; Remove vim code completion config, it's not needed to
> +  ;; build (or be patched).
> +  (add-before 'patch-source-shebangs 'delete-ycm-file
> +  (lambda _ (delete-file ".ycm_extra_conf.py")))
> +  (replace 'install
> +   (lambda* (#:key outputs #:allow-other-keys)
> + (let ((bin (string-append
> + (assoc-ref outputs "out") "/bin")))
> +   (install-file "notmuch-addrlookup" bin)))
> +(native-inputs
> + `(("pkg-config" ,pkg-config)))
> +(inputs
> + `(("glib" ,glib)
> +   ("notmuch" ,notmuch)))
> +(home-page "https://github.com/aperezdc/notmuch-addrlookup-c;)
> +(synopsis "Address lookup tool for Notmuch")
> +(description "This is an address lookup tool using a Notmuch database,
> +useful for email address completion.")
> +(license license:expat)))
> +
>  (define-public python2-notmuch
>(package
>  (name "python2-notmuch")
> -- 
> 2.5.0
> 

> 
> Leo Famulari  writes:
> 
> > On Tue, Feb 09, 2016 at 11:51:05PM -0800, Al McElrath wrote:
> >> 
> >> Hello,
> >> 
> >> First package here. Please advise.
> >
> > Thanks for the patch!
> >
> >> From 6db39ac748414cd91c9dd2ab1c2379fdca15e41d Mon Sep 17 00:00:00 2001
> >> From: Al McElrath 
> >> Date: Tue, 9 Feb 2016 12:07:30 -0800
> >> Subject: [PATCH] gnu: Add notmuch-addrlookup-c.
> >> 
> >> * gnu/packages/mail.scm (notmuch-addrlookup-c): New variable.
> >
> > [...]
> >
> >> +(version "v7")
> >> +(source (origin
> >> +  (method url-fetch)
> >> +  (uri (string-append
> >> +"https://github.com/aperezdc/; name "/archive/"
> >> +version ".tar.gz"))
> >
> > GitHub automatically creates these "v*" version identifiers, but in this
> > case, upstream's changelog describes the version as "7", so let's use
> > that, and adjust the URI accordingly.
> >
> > You'll also need to set the file-name of the downloaded source, as done
> > in commit f1957fc145.  Otherwise the tarball's name does not include the
> > package name. (This is noticed by the linter).
> >
> >> +  (sha256
> >> +   (base32
> >> +"0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri"
> >> +(build-system gnu-build-system)
> >> +(arguments
> >> + '(#:tests? #f ;; no tests
> >
> > This comment can use one ';'.
> > https://www.gnu.org/software/guile/manual/html_node/Comments.html
> >
> >> +   #:make-flags (list "CC=gcc"
> >> +  (string-append "PREFIX="
> >> + (assoc-ref %outputs "out")))
> >> +   #:phases (modify-phases %standard-phases
> >> +  (delete 'configure)
> >> +  (add-before 

Re: Problem with pkgconfig source https redirect

2016-02-10 Thread Thompson, David
On Wed, Feb 10, 2016 at 2:43 AM, Efraim Flashner  wrote:
> 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.

The bigger problem to be aware of is this:  No package in the gnutls
dependency graph may have its source code downloaded over HTTPS.  Even
if we hack around this for pkg-config, I'm sure it will bite us again
when another upstream starts enforcing HTTPS.

So, what can we do here?

- Dave



Re: [PATCH] gnu: Add slurm-llnl.

2016-02-10 Thread Eric Bavier
On Wed, 10 Feb 2016 18:36:48 +0100
Pjotr Prins  wrote:

> * gnu/packages/parallel.scm (slurm-llnl): New variable.
> ---
>  gnu/packages/parallel.scm | 51 
> ---
>  1 file changed, 48 insertions(+), 3 deletions(-)
[...]
> +   (license license:openssl)))

There are several bits in the 'contribs' directory that seem to not be
under free licenses. E.g.

- contribs/cray/slurmconfgen_smw.py contains "Copyright 2015 Cray Inc.
  All Rights Reserved"

- contribs/cray/slurmconfgen.py.in contains "Copyright 2013 Cray Inc.
  All Rights Reserved"

- contribs/cray/libalps_test_programs.tar.gz contains a mixture of
  GPLv2, public domain, and binaries.

- contribs/mic/mpirun-mic declares no license.

- contribs/pmi2 is under a custom (copyleft?) license.

- contribs/sgather declares no license.

- contribs/sgi/netloc_to_topology.c contains "Copyright (C) 2014
  Silicon Graphics International Corp. All rights reserved."

- contribs/sjobexit/sjobexitmod.pl declares no license.

I don't think we can claim any of these are covered under the same
license as slurm, since the COPYING file explicitely says "Some tools
in the "contribs" directory have other licenses."

The contribs tools are not installed by default, but we do need to
remove any non-free source from there with an origin snippet.

Also, I found the DISCLAIMER file contains the "or (at your option) any
later version." verbiage, so the slurm license itself is license:gpl2+

`~Eric



Re: [PATCH] gnu: Add slurm-llnl.

2016-02-10 Thread Eric Bavier
On Wed, 10 Feb 2016 18:36:48 +0100
Pjotr Prins  wrote:

> * gnu/packages/parallel.scm (slurm-llnl): New variable.
> ---
>  gnu/packages/parallel.scm | 51 
> ---
>  1 file changed, 48 insertions(+), 3 deletions(-)
> 
> diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
> index 8f63bda..03ee460 100644
> --- a/gnu/packages/parallel.scm
> +++ b/gnu/packages/parallel.scm
> @@ -2,7 +2,8 @@
>  ;;; Copyright © 2013,2014 Eric Bavier 
>  ;;; Copyright © 2015 Mark H Weaver 
>  ;;; Copyright © 2015 Efraim Flashner 
> -;;;
> +;;; Copyright © 2014, 2015 Pjotr Prins 
> +

Remove this extra whitespace.http://www.schedmd.com/

>  ;;; This file is part of GNU Guix.
>  ;;;
>  ;;; GNU Guix is free software; you can redistribute it and/or modify it
> @@ -20,11 +21,17 @@
>  
>  (define-module (gnu packages parallel)
>#:use-module (guix packages)
> -  #:use-module (guix licenses)
>#:use-module (guix download)
> +  #:use-module (guix licenses)
> +  #:use-module ((guix licenses) #:prefix license:)
>#:use-module (guix build-system gnu)
>#:use-module (gnu packages)
> -  #:use-module (gnu packages perl))
> +  #:use-module (gnu packages admin)
> +  #:use-module (gnu packages linux)
> +  #:use-module (gnu packages perl)
> +  #:use-module (gnu packages python)
> +  #:use-module (gnu packages tcl)
> +  #:use-module (gnu packages tls))
>  
>  (define-public parallel
>(package
> @@ -47,3 +54,41 @@
>  or more computers.  Jobs can consist of single commands or of scripts
>  and they are executed on lists of files, hosts, users or other items.")
>  (license gpl3+)))
^
With the new 'license:' symbol prefix, all other licenses need to be
adjusted.

> +
> +(define-public slurm-llnl
> +  (package
> +   (name "slurm-llnl")

I think we should rather use "slurm-wlm" if we are trying to
dissambiguate with the "Slurm the Realtime network interface monitor".

> +   (version "15-08-6-1")

Version 15.08.7  is now available.  I would prefer we use '.'s to
separate version number components, and compute the uri string
appropriately.

> +   (source (origin
> +(method url-fetch)
> +(uri (string-append 
> "https://github.com/SchedMD/slurm/archive/slurm-;
> +version ".tar.gz"))
> +(file-name (string-append name "-" version ".tar.gz"))
> +(sha256
> + (base32
> +  "1h8al21blmrhma9r7qxkba2g5i74m3hrjc9a640j7px54szvg18v"
> +   (inputs `(("openssl" ,openssl)
> + ("munge" ,munge)
> + ("perl" ,perl)
> + ("expect" ,expect)
> + ("python" ,python)
> + ("linux-pam" , linux-pam)))
> +   (build-system gnu-build-system)
> +   (arguments
> +`(#:configure-flags '("--enable-pam")
> +  #:phases
> +  (modify-phases %standard-phases
> +   (add-before
> +'configure 'rewrite-usr-bin
> +(lambda* (#:key inputs #:allow-other-keys)
> + (substitute* "./doc/html/shtml2html.py"
> +  (("#!/usr/bin/env python")
> +   (string-append "#!" (which "python3"

Is this shebang not handled by the patch-shebangs phase?

> + (substitute* "src/common/env.c"
> +  (("/usr/bin/env") (which "env"
> +   (home-page "http://www.schedmd.com/;)

How about "http://slurm.schedmd.com/;?

> +   (synopsis "Tool for cluster computing")

How about "Workload manager" to indicate what the tool does.

> +   (description
> +"Fault-tolerant, and highly scalable cluster management and job
> +scheduling system for large and small clusters.")
> +   (license license:openssl)))

According to the "License" section at http://www.schedmd.com/#repos
and the COPYING file, it's GPLv2.

`~Eric



[PATCH] gnu: Add pianobar.

2016-02-10 Thread Al McElrath
Hi,

Another new package. Feedback appreciated. This is free software, but it
only works with a non-free music service, Pandora. Is that acceptable?

>From 4f477999635b4a16f19ef0833727abcf899dbb69 Mon Sep 17 00:00:00 2001
From: Al McElrath 
Date: Fri, 11 Dec 2015 21:22:33 -0800
Subject: [PATCH] gnu: Add pianobar.

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

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index a60ba4b..c5a6dc5 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014 Eric Bavier 
 ;;; Copyright © 2015, 2016 Ricardo Wurmus 
 ;;; Copyright © 2015 Paul van der Walt 
+;;; Copyright © 2016 Al McElrath 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,7 @@
   #:use-module (gnu packages code)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages doxygen)
   #:use-module (gnu packages flex)
@@ -46,6 +48,7 @@
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -1078,3 +1081,36 @@ computer's keyboard.")
 JACK for audio and ALSA sequencer for MIDI as multimedia infrastructures and
 follows a traditional multi-track tape recorder control paradigm.")
 (license license:gpl2+)))
+
+(define-public pianobar
+  (package
+(name "pianobar")
+(version "2015.11.22")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://github.com/PromyLOPh/;
+  name "/archive/" version ".tar.gz"))
+  (file-name (string-append name "-" version ".tar.gz"))
+  (sha256
+   (base32
+"022df19bhxqvkhy0qy21xahba5s1fm17b13y0p9p9dnf2yl44wfv"
+(build-system gnu-build-system)
+(arguments
+ `(#:tests? #f ; no tests
+   #:make-flags (list "CC=gcc" "CFLAGS=-std=c99"
+  (string-append "PREFIX=" %output))
+   #:phases (modify-phases %standard-phases
+  (delete 'configure
+(inputs
+ `(("ao" ,ao)
+   ("curl" ,curl)
+   ("libgcrypt" ,libgcrypt)
+   ("json-c" ,json-c)
+   ("ffmpeg" ,ffmpeg)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(home-page "http://6xq.net/projects/pianobar/;)
+(synopsis "Console-based pandora.com player")
+(description "pianobar is a free/open-source, console-based client for the
+personalized online radio Pandora.")
+(license license:x11)))
-- 
2.5.0



Re: Installing Guix on foreign distros

2016-02-10 Thread Ricardo Wurmus

Tomáš Čech  writes:

> On Tue, Feb 09, 2016 at 11:36:24AM +0100, Ludovic Courtès wrote:
>>There are already people who wrote Arch/Parabola and RPM (openSuSE)
>>packages, AFAIK.  I’m not sure what the status is?
>
> For openSUSE ecosystem I maintain package in system:packagemanagers
> project of our Open Build Service. It means it doesn't live in the
> main package repository but it is easy to install.
>
>  
> https://software.opensuse.org/download/package?project=system:packagemanager=guix
>
> I'm trying to push that to the main distribution but for that the
> package may need some more work because I need to get rid of foreign
> binaries (the ones in
> $PREFIX/share/guile/site/2.0/gnu/packages/bootstrap/). So `zypper in
> guix' for all openSUSE users is still my goal.

The bootstrap binaries form the roots of the dependency graph.
Modifying them results in different hashes for all packages.  I learned
this when a colleague accidentally modified these files in our
deployment, which made Guix refuse all of the substitutes from Hydra and
instead rebuilt the world locally.

I don’t think you can realistically get rid of them.

~~ Ricardo



Re: [PATCH 0/4] emacs: Various fixes.

2016-02-10 Thread Alex Kost
Ludovic Courtès (2016-02-06 15:41 +0300) wrote:

> Alex Kost  skribis:
>
>> [PATCH 3/4] system: Fix EMACSLOADPATH.
>>
>>   This is an easy fix, however I've just thought that we can get rid of
>>   EMACSLOADPATH completely.  Since now our Emacs can load packages from
>>   guix directories ("~/.guix-profile" and "/run/current-system/profile")
>>   there is no need to use "/etc/emacs/site-start.el" anymore, because Emacs
>>   will load "guix-autoloads.el" and "geiser-autoloads.el" from a system
>>   profile.
>>
>>   So I think this patch is OK as a current fix, but eventually we should
>>   remove "guix-init.el" and "/etc/emacs/site-start.el".  I'll send a
>>   patch for it later.
>
> Good, this is better.

OK, so I'm sending the following patches for this change:

[PATCH 1/3] emacs: Autoload hooks instead of putting them in 'guix-init'.
[PATCH 2/3] system: Do not create "site-start.el".
[PATCH 3/3] emacs: Deprecate "guix-init.el".

However, they should be commited after updating guix-devel snapshot,
because with the current source, Emacs finds packages only in a user
profile, but not in the system one (it was introduced in commit
004ea62).

-- 
Alex



[PATCH 2/3] system: Do not create "site-start.el".

2016-02-10 Thread Alex Kost
After commits 004ea62 and  Emacs can find packages in a system profile, so it autoloads
guix code without additional hacks, which can be removed now.

* gnu/system.scm (emacs-site-file, emacs-site-directory): Remove.
(operating-system-etc-service): Adjust accordingly.
(operating-system-environment-variables): Remove EMACSLOADPATH.
---
 gnu/system.scm | 31 ---
 1 file changed, 31 deletions(-)

diff --git a/gnu/system.scm b/gnu/system.scm
index ff3a400..de9b6c4 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -397,37 +397,11 @@ This is the GNU system.  Welcome.\n")
   "Return the default /etc/hosts file."
   (plain-file "hosts" (local-host-aliases host-name)))
 
-(define (emacs-site-file)
-  "Return the Emacs 'site-start.el' file.  That file contains the necessary
-settings for 'guix.el' to work out-of-the-box."
-  (scheme-file "site-start.el"
-   #~(progn
-  ;; Add the "normal" elisp directory to the search path;
-  ;; guix.el may be there.
-  (add-to-list
-   'load-path
-   "/run/current-system/profile/share/emacs/site-lisp")
-
-  ;; Attempt to load guix.el.
-  (require 'guix-init nil t)
-
-  ;; Attempt to load geiser.
-  (require 'geiser-install nil t
-
-(define (emacs-site-directory)
-  "Return the Emacs site directory, aka. /etc/emacs."
-  (computed-file "emacs"
- #~(begin
- (mkdir #$output)
- (chdir #$output)
- (symlink #$(emacs-site-file) "site-start.el"
-
 (define* (operating-system-etc-service os)
   "Return a  that builds containing the static part of the /etc
 directory."
   (let ((login.defs (plain-file "login.defs" "# Empty for now.\n"))
 
-(emacs  (emacs-site-directory))
 (issue  (plain-file "issue" (operating-system-issue os)))
 (nsswitch   (plain-file "nsswitch.conf"
 (name-service-switch->string
@@ -501,7 +475,6 @@ fi\n")))
  `(("services" ,#~(string-append #$net-base "/etc/services"))
("protocols" ,#~(string-append #$net-base "/etc/protocols"))
("rpc" ,#~(string-append #$net-base "/etc/rpc"))
-   ("emacs" ,#~#$emacs)
("login.defs" ,#~#$login.defs)
("issue" ,#~#$issue)
("nsswitch.conf" ,#~#$nsswitch)
@@ -581,10 +554,6 @@ use 'plain-file' instead~%")
 ("SSL_CERT_DIR" . "/etc/ssl/certs")
 ("SSL_CERT_FILE" . "/etc/ssl/certs/ca-certificates.crt")
 ("GIT_SSL_CAINFO" . "/etc/ssl/certs/ca-certificates.crt")
-;; Prepend the directory of 'site-start.el' to the search path, so
-;; that it has higher precedence than the 'site-start.el' file our
-;; Emacs package provides.
-("EMACSLOADPATH" . "/etc/emacs:")
 ;; By default, applications that use D-Bus, such as Emacs, abort at startup
 ;; when /etc/machine-id is missing.  Make sure these warnings are 
non-fatal.
 ("DBUS_FATAL_WARNINGS" . "0")))
-- 
2.6.3




[PATCH 1/3] emacs: Autoload hooks instead of putting them in 'guix-init'.

2016-02-10 Thread Alex Kost
* emacs/guix-init.el: Move adding hooks to...
* emacs/guix-build-log.el: ... here.
* emacs/guix-devel.el: ... and here.
---
 emacs/guix-build-log.el | 3 +++
 emacs/guix-devel.el | 3 +++
 emacs/guix-init.el  | 3 ---
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/emacs/guix-build-log.el b/emacs/guix-build-log.el
index e08a88f..f67be16 100644
--- a/emacs/guix-build-log.el
+++ b/emacs/guix-build-log.el
@@ -367,6 +367,9 @@ programmatically using hooks:
   (guix-build-log-mode))
 
 ;;;###autoload
+(add-hook 'shell-mode-hook 'guix-build-log-minor-mode-activate-maybe)
+
+;;;###autoload
 (add-to-list 'auto-mode-alist
  ;; Regexp for log files (usually placed in /var/log/guix/...)
  (cons (rx "/guix/drvs/" (= 2 alnum) "/" (= 30 alnum)
diff --git a/emacs/guix-devel.el b/emacs/guix-devel.el
index 8eb0309..ee8371c 100644
--- a/emacs/guix-devel.el
+++ b/emacs/guix-devel.el
@@ -364,6 +364,9 @@ bindings:
   (when guix-devel-activate-mode
 (guix-devel-mode)))
 
+;;;###autoload
+(add-hook 'scheme-mode-hook 'guix-devel-activate-mode-maybe)
+
 
 (defvar guix-devel-emacs-font-lock-keywords
   (eval-when-compile
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
index 47ced6a..1d7d258 100644
--- a/emacs/guix-init.el
+++ b/emacs/guix-init.el
@@ -1,7 +1,4 @@
 (require 'guix-autoloads)
 (require 'guix-emacs)
 
-(add-hook 'scheme-mode-hook 'guix-devel-activate-mode-maybe)
-(add-hook 'shell-mode-hook 'guix-build-log-minor-mode-activate-maybe)
-
 (provide 'guix-init)
-- 
2.6.3




[PATCH 3/3] emacs: Deprecate "guix-init.el".

2016-02-10 Thread Alex Kost
'guix-init' served 2 purposes:

- to autoload guix commands (by requiring 'guix-autoloads');
- and to autoload Emacs packages installed with Guix (by requiring
  'guix-emacs').

The second purpose is not actual anymore, as Emacs package handles this
task now, so there is no need in 'guix-init' anymore.

* emacs/guix-init.el: Do not require 'guix-emacs'.  Add a deprecation
  message.
* doc/emacs.texi (Emacs Initial Setup): Recommend to use
  'guix-autoloads' instead of 'guix-init'.
---
 doc/emacs.texi | 33 +
 emacs/guix-init.el |  3 +--
 2 files changed, 10 insertions(+), 26 deletions(-)

diff --git a/doc/emacs.texi b/doc/emacs.texi
index d46c17c..f9705b8 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -48,13 +48,13 @@ command (@pxref{Emacs Popup Interface}).
 
 @end itemize
 
-When it is done ``guix.el'' may be configured by requiring a special
-@code{guix-init} file---i.e., by adding the following code into your
-init file (@pxref{Init File,,, emacs, The GNU Emacs Manual}):
+When it is done, ``guix.el'' may be configured by requiring
+@code{guix-autoloads} file---i.e., by adding the following code into
+your init file (@pxref{Init File,,, emacs, The GNU Emacs Manual}):
 
 @example
 (add-to-list 'load-path "/path/to/directory-with-guix.el")
-(require 'guix-init nil t)
+(require 'guix-autoloads nil t)
 @end example
 
 So the only thing you need to figure out is where the directory with
@@ -74,9 +74,10 @@ then Guix is installed somewhere in the store, so the elisp 
files are
 placed in @file{/gnu/store/@dots{}-guix-0.8.2/share/emacs/site-lisp/} or
 alike.  However it is not recommended to refer directly to a store
 directory.  Instead you can install Guix using Guix itself with
-@command{guix package -i guix} command (@pxref{Invoking guix package})
-and add @file{~/.guix-profile/share/emacs/site-lisp/} directory to
-@code{load-path} variable.
+@command{guix package -i guix} command (@pxref{Invoking guix package}).
+No further actions are needed in this case, as @code{guix-autoloads}
+file will automatically be loaded by Emacs (if it is installed with
+Guix, of course) (@pxref{Application Setup}).
 
 @item
 If you did not install Guix at all and prefer a hacking way
@@ -88,26 +89,10 @@ same directory, so your final configuration will look like 
this:
 (let ((dir "/path/to/your-guix-git-tree/emacs"))
   (add-to-list 'load-path dir)
   (setq guix-load-path dir))
-(require 'guix-init nil t)
+(require 'guix-autoloads nil t)
 @end example
 @end itemize
 
-By default, along with autoloading (@pxref{Autoload,,, elisp, The GNU
-Emacs Lisp Reference Manual}) the main interactive commands for
-``guix.el'' (@pxref{Emacs Commands}), requiring @code{guix-init} will
-also autoload commands for the Emacs packages installed in your user
-profile.
-
-To disable automatic loading of installed Emacs packages, set
-@code{guix-package-enable-at-startup} variable to @code{nil} before
-requiring @code{guix-init}.  This variable has the same meaning for
-Emacs packages installed with Guix, as @code{package-enable-at-startup}
-for the built-in Emacs package system (@pxref{Package Installation,,,
-emacs, The GNU Emacs Manual}).
-
-You can activate Emacs packages installed in your profile whenever you
-want using @kbd{M-x@tie{}guix-emacs-autoload-packages}.
-
 
 @node Emacs Package Management
 @section Package Management
diff --git a/emacs/guix-init.el b/emacs/guix-init.el
index 1d7d258..bd75e54 100644
--- a/emacs/guix-init.el
+++ b/emacs/guix-init.el
@@ -1,4 +1,3 @@
 (require 'guix-autoloads)
-(require 'guix-emacs)
-
+(message "(require 'guix-init) is obsolete, use (require 'guix-autoloads) 
instead.")
 (provide 'guix-init)
-- 
2.6.3




Re: Installing Guix on foreign distros

2016-02-10 Thread Tomáš Čech

On Tue, Feb 09, 2016 at 11:36:24AM +0100, Ludovic Courtès wrote:

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


For openSUSE ecosystem I maintain package in system:packagemanagers
project of our Open Build Service. It means it doesn't live in the
main package repository but it is easy to install.

https://software.opensuse.org/download/package?project=system:packagemanager=guix

I'm trying to push that to the main distribution but for that the
package may need some more work because I need to get rid of foreign
binaries (the ones in
$PREFIX/share/guile/site/2.0/gnu/packages/bootstrap/). So `zypper in
guix' for all openSUSE users is still my goal.

Any help on that from Guix side would be appreciated.

Besides this, thanks to our the OBS I should be able to setup build
for other RPM distributions (Fedora, CentOS) but it wasn't my focus
now.

Best regards,

Tomas


signature.asc
Description: Digital signature


Re: Installing Guix on foreign distros

2016-02-10 Thread Jookia
On Wed, Feb 10, 2016 at 09:53:01AM +0100, Tomáš Čech wrote:
> I'm trying to push that to the main distribution but for that the
> package may need some more work because I need to get rid of foreign
> binaries (the ones in
> $PREFIX/share/guile/site/2.0/gnu/packages/bootstrap/). So `zypper in
> guix' for all openSUSE users is still my goal.
> 
> Any help on that from Guix side would be appreciated.
> 
> Besides this, thanks to our the OBS I should be able to setup build
> for other RPM distributions (Fedora, CentOS) but it wasn't my focus
> now.
> 
> Best regards,
> 
> Tomas

I brought this up a bit earlier in IRC but you could rebuild the bootstrap
binaries- but then they'd just be identical to the ones shipped. So are they
really foreign then?

Jookia.



Re: [PATCH] build: syscalls: Delay syscalls evaluation.

2016-02-10 Thread Manolis Ragkousis
Hey hackers,

I modified the patch to apply to wip-hurd and I removed the setns part
because it was already handled (commit 39e336b5c83e) and Ludo told me
not to change it.

I also added a case for nonexistent clone syscall id. If I don't, clone
will fail with "case not found for i686-AT386" which is the case for Hurd.

Mark, Ludo if you agree with the changes I will push it. :-)

Manolis

>From 761d4b04701b62042fba810b04da82ca2200b862 Mon Sep 17 00:00:00 2001
From: Mark H Weaver 
Date: Wed, 10 Feb 2016 14:17:33 +0200
Subject: [PATCH] syscalls: If a syscall is not available, defer the error.

* guix/build/syscalls.scm (syscall->procedure): New procedure.
  (mount, umount, swapon, swapoff, clone, pivot-root): Use it.
  (clone): Add case for nonexistent syscall id.
---
 guix/build/syscalls.scm | 43 ++-
 1 file changed, 26 insertions(+), 17 deletions(-)

diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index a3b68c4..247e64f 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015 Ludovic Courtès 
 ;;; Copyright © 2015 David Thompson 
+;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -137,6 +138,19 @@
   "Evaluate EXPR and restart upon EINTR.  Return the value of EXPR."
   (call-with-restart-on-EINTR (lambda () expr)))
 
+(define (syscall->procedure return-type name argument-types)
+  "Return a procedure that wraps the C function NAME using the dynamic FFI.
+If an error occurs while creating the binding, defer the error report until
+the returned procedure is called."
+  (catch #t
+(lambda ()
+  (let ((ptr (dynamic-func name (dynamic-link
+(pointer->procedure return-type ptr argument-types)))
+(lambda args
+  (lambda _
+(error (format #f "~a: syscall->procedure failed: ~s"
+   name args))
+
 (define (augment-mtab source target type options)
   "Augment /etc/mtab with information about the given mount point."
   (let ((port (open-file "/etc/mtab" "a")))
@@ -185,8 +199,7 @@
 (define UMOUNT_NOFOLLOW 8)
 
 (define mount
-  (let* ((ptr  (dynamic-func "mount" (dynamic-link)))
- (proc (pointer->procedure int ptr `(* * * ,unsigned-long *
+  (let ((proc (syscall->procedure int "mount" `(* * * ,unsigned-long *
 (lambda* (source target type #:optional (flags 0) options
  #:key (update-mtab? #f))
   "Mount device SOURCE on TARGET as a file system TYPE.  Optionally, FLAGS
@@ -214,8 +227,7 @@ error."
   (augment-mtab source target type options))
 
 (define umount
-  (let* ((ptr  (dynamic-func "umount2" (dynamic-link)))
- (proc (pointer->procedure int ptr `(* ,int
+  (let ((proc (syscall->procedure int "umount2" `(* ,int
 (lambda* (target #:optional (flags 0)
  #:key (update-mtab? #f))
   "Unmount TARGET.  Optionally FLAGS may be one of the MNT_* or UMOUNT_*
@@ -242,8 +254,7 @@ constants from ."
  (loop (cons mount-point result))
 
 (define swapon
-  (let* ((ptr  (dynamic-func "swapon" (dynamic-link)))
- (proc (pointer->procedure int ptr (list '* int
+  (let ((proc (syscall->procedure int "swapon" (list '* int
 (lambda* (device #:optional (flags 0))
   "Use the block special device at DEVICE for swapping."
   (let ((ret (proc (string->pointer device) flags))
@@ -254,8 +265,7 @@ constants from ."
  (list err)))
 
 (define swapoff
-  (let* ((ptr  (dynamic-func "swapoff" (dynamic-link)))
- (proc (pointer->procedure int ptr '(*
+  (let ((proc (syscall->procedure int "swapoff" '(*
 (lambda (device)
   "Stop using block special device DEVICE for swapping."
   (let ((ret (proc (string->pointer device)))
@@ -319,18 +329,18 @@ string TMPL and return its file name.  TMPL must end with 'XX'."
 ;; declared in  as a variadic function; in practice, it expects 6
 ;; pointer-sized arguments, as shown in, e.g., x86_64/syscall.S.
 (define clone
-  (let* ((ptr(dynamic-func "syscall" (dynamic-link)))
- (proc   (pointer->procedure long ptr
- (list long   ;sysno
-   unsigned-long  ;flags
-   '* '* '*
-   '*)))
+  (let* ((proc (syscall->procedure int "syscall"
+   (list long   ;sysno
+ unsigned-long  ;flags
+ '* '* '*
+ '*)))
  ;; TODO: Don't do this.
  (syscall-id (match (utsname:machine (uname))

[PATCH] gnu: Add notmuch-addrlookup-c.

2016-02-10 Thread Al McElrath

Hello,

First package here. Please advise.

>From 6db39ac748414cd91c9dd2ab1c2379fdca15e41d Mon Sep 17 00:00:00 2001
From: Al McElrath 
Date: Tue, 9 Feb 2016 12:07:30 -0800
Subject: [PATCH] gnu: Add notmuch-addrlookup-c.

* gnu/packages/mail.scm (notmuch-addrlookup-c): New variable.
---
 gnu/packages/mail.scm | 41 +
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index d41479e..a61df06 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2015 Andreas Enge 
 ;;; Copyright © 2015, 2016 Efraim Flashner 
 ;;; Copyright © 2016 Christopher Allan Webber 
+;;; Copyright © 2016 Al McElrath 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -414,6 +415,46 @@ attachments, create new maildirs, and so on.")
 ing, and tagging large collections of email messages.")
 (license gpl3+)))
 
+(define-public notmuch-addrlookup-c
+  (package
+(name "notmuch-addrlookup-c")
+(version "v7")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/aperezdc/; name "/archive/"
+version ".tar.gz"))
+  (sha256
+   (base32
+"0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ;; no tests
+   #:make-flags (list "CC=gcc"
+  (string-append "PREFIX="
+ (assoc-ref %outputs "out")))
+   #:phases (modify-phases %standard-phases
+  (delete 'configure)
+  (add-before 'patch-source-shebangs 'delete-ycm-file
+  (lambda _ (delete-file ".ycm_extra_conf.py")))
+  (replace 'install
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append
+ (assoc-ref outputs "out") "/bin/"))
+   (na "notmuch-addrlookup"))
+   (mkdir-p bin)
+   (copy-file na (string-append bin na
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(inputs
+ `(("glib" ,glib)
+   ("notmuch" ,notmuch)))
+(home-page "https://github.com/aperezdc/notmuch-addrlookup-c;)
+(synopsis "Address lookup tool for Notmuch in C")
+(description "This is an address lookup tool using a Notmuch database,
+useful for email address completion in emacs.")
+(license license:expat)))
+
 (define-public python2-notmuch
   (package
 (name "python2-notmuch")
-- 
2.5.0



Re: Review of installation manual draft

2016-02-10 Thread Petter

Hi Ludo,

Thanks for looking at it.

On 2016-02-10 22:16, l...@gnu.org wrote:

Hi Petter,

Thanks a lot for the additions to the manual!

There was a lot more than I expected.  ;-)  For now, I’ve focused on 
the

improvements to the “System Installation” section, leading to commit
dedb8d5.

It turned out to be more work than I expected because I had to find out
what the differences were (some paragraphs had been moved to a single
line, which made it hard to spot the differences), and then ended up
doing a few things differently to preserve consistency.

In the future, it would be awesome if you could send more focused
patches and make sure the diffs don’t show unrelated “noise.”


I'm sorry that it caused you extra work! For the record, this wasn't 
intended as a patch. We'd been working on this for a little while and 
wanted to get some feedback on particuarly the general direction before 
going any further. With a patch proposal i would have been more careful 
with noise etc.. This was really just a quick translation into guix.texi 
as requested. Maybe it would have been better if you had reviewed the 
link initially provided instead, as this was clearly not a patch.



Petter  skribis:

+Open the file in one of the editors. We'll now walk you through the 
updates you need to make in the operating-system declaration in turn 
from top to bottom.

+
+@table @asis
+@item @samp{host-name}
+Will be the name for this system. It'll be used for identifying this 
system on the network and should be unique amongst the computers in 
your LAN(s). You may also see it in shell prompts. Use ASCII letters 
and digits only unless you know what you're doing.

+
+@item @samp{timezone}
+This value must match a supported timezone exactly. To find the value 
you need here you can run the command

+@example
+tzselect
+@end example
+and answer its questions. When it asks "Is the above information OK?" 
answer "1" (Yes). The value in the last line of output is the value to 
use in your configuration.
+To get a shell prompt for running commands you can change virtual 
console (Ctrl-Alt-F#), or close the editor.

+
+@item @samp{locale}
+This value must match a supported locale exactly. To get a list of 
supported locales and their typing run the command

+@example
+ls /run/current-system/locale/@var{X.Y}
+@end @samp{example}
+where X.Y is the libc version (just press TAB at this level). Find 
the locale you want in the listed output and take note of exactly how 
it is typed (trailing / is not included in the name).
+To get a shell prompt for running commands you can change virtual 
console (Ctrl-Alt-F#), or close the editor.

+
+@item @samp{bootloader}
+Update the @samp{device} argument according to the comment in the 
example configuration. Typical value is @var{/dev/sda}, note there's 
no trailing digit. This will instruct the installation to install GRUB 
to the MBR of your disk. This is fine even if you're going to use the 
boot loader in your boot firmware, it will just be unused in this 
case.

+@end table


I did not include this as is because I think most of it is redundant
with (or should be covered by) the “operating-system Reference” 
section.


Ok. Well, this started as a standalone guide for libreboot.org. And the 
general idea was to guide the user through the entire installation 
process. Also there have been a few issues with locale on IRC, like 
specifying a locale that's not supported.



I have not yet integrated the bits about setting up an encrypted root
etc. because I first want the bits below to be fixed in the code.


+@subsection Booting a fully encrypted system
+
+@emph{This chapter is only for systems with encrypted boot.}
+
+To be able to boot with encrypted boot you need a system with GRUB 
flashed into the boot firmware, like with Coreboot/Libreboot.


It’s not clear to me how much of it is specific to Coreboot/Libreboot.
It seems like it could equally well work when GRUB is spawned by a
random proprietary BIOS no?


Yes, these are GRUB specific instructions, not Coreboot/Libreboot. These 
projects are used as examples.


This should be good for any system that can start GRUB without /boot 
access. I have only tried on Libreboot, which load the crypto modules 
automatically. Other systems may not do this and these modules would 
need to be loaded manually in this case. That's the only thing i can 
think of that could be different.



+@table @asis
+@item Manual steps to boot your fully encrypted system
+Press @kbd{c} in GRUB to enter command mode.


Seems to me that GuixSD should automatically DTRT when installing on an
encrypted root file system.  See .


+menuentry "GuixSD (current)" @{
+  cryptomount @var{grub-partition}
+  set root=(crypto0)
+  set guix_system=/var/guix/profiles/system
+  linux  $@{guix_system@}/kernel/bzImage 
--root=@var{your-root-partition} --system=$@{guix_system@} 
--load=$@{guix_system@}/boot

+  initrd $@{guix_system@}/initrd

Re: GSoC ideas

2016-02-10 Thread Christopher Allan Webber
Pjotr Prins writes:

> 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.

So, while we're on the topic of hopes and dreams that I might
*personally* love to see solved through GSoC, but maybe people will be
like "That's not enough of a GSoC programming project"

npm packaging and importer.  Even better: enough npm packaging and
importing to where we package pump.io :)

It might not be the most fun GSoC project though?