Re: Can we package NetHack?

2016-05-29 Thread Thompson, David
On Sun, May 29, 2016 at 6:54 PM, Kei Kebreau  wrote:
> On Mon, 30 May 2016 00:13:00 +0200
> l...@gnu.org (Ludovic Courtès) wrote:
>
>> Kei Kebreau  skribis:
>>
>> > NetHack tries to modify its state files in the store and none of its
>> > easily patchable directory variables allow anything different.
>> > NetHack also doesn't allow a ~/.nethack directory to be created in
>> > the user's directory upon running. Does anyone have any ideas or
>> > other packages that do this sort of thing?
>>
>> I suppose the state files are essentially score files?  Don’t other
>> games store things in /var/lib/something?  What do other distros do?
>> :-)
>>
>> Ludo’.
>
> Yes, the state files are high score lists, locks for the world files
> and such. The problem is that other distros give NetHack a directory to
> write those files to that would be equivalent to writing to our store.
> The only one I have seen that avoids this is NixOS. However, NixOS
> creates a ".nethack" directory within the user's folder (among other
> things) to work around this.
>
> I thought that this would be a problem for Guix, because installing and
> removing NetHack cleanly would necessitate directly writing to and
> erasing files within the user's directory. So I decided to mail the
> list to see if anyone could find a solution. :-)

This isn't a problem.  Stateful files in home directories or elsewhere
are not managed by Guix.  A .nethack directory sounds like a fine
solution to me.

- Dave



Re: Can we package NetHack?

2016-05-29 Thread Kei Kebreau
On Mon, 30 May 2016 00:13:00 +0200
l...@gnu.org (Ludovic Courtès) wrote:

> Kei Kebreau  skribis:
> 
> > NetHack tries to modify its state files in the store and none of its
> > easily patchable directory variables allow anything different.
> > NetHack also doesn't allow a ~/.nethack directory to be created in
> > the user's directory upon running. Does anyone have any ideas or
> > other packages that do this sort of thing?  
> 
> I suppose the state files are essentially score files?  Don’t other
> games store things in /var/lib/something?  What do other distros do?
> :-)
> 
> Ludo’.

Yes, the state files are high score lists, locks for the world files
and such. The problem is that other distros give NetHack a directory to
write those files to that would be equivalent to writing to our store.
The only one I have seen that avoids this is NixOS. However, NixOS
creates a ".nethack" directory within the user's folder (among other
things) to work around this.

I thought that this would be a problem for Guix, because installing and
removing NetHack cleanly would necessitate directly writing to and
erasing files within the user's directory. So I decided to mail the
list to see if anyone could find a solution. :-)

-- 
Kei (GPG Key: 4096R/E6A5EE3C19467A0D)


pgpveZ7M7tm0s.pgp
Description: OpenPGP digital signature


Re: [PATCH 0/1] libyaml: Fix CVE-2014-9130.

2016-05-29 Thread Ludovic Courtès
Leo Famulari  skribis:

> This is a cherry-picked upstream commit [0] that fixes CVE-2014-9130 [1].
>
> Debian used the same patch. You can find it by clicking on VCS here:
> https://tracker.debian.org/pkg/libyaml

Sounds good, thank you!

Ludo’.



Re: Can we package NetHack?

2016-05-29 Thread Ludovic Courtès
Kei Kebreau  skribis:

> NetHack tries to modify its state files in the store and none of its
> easily patchable directory variables allow anything different. NetHack
> also doesn't allow a ~/.nethack directory to be created in the user's
> directory upon running. Does anyone have any ideas or other packages
> that do this sort of thing?

I suppose the state files are essentially score files?  Don’t other
games store things in /var/lib/something?  What do other distros do?
:-)

Ludo’.



Re: [PATCH] gnu: Add hdf4

2016-05-29 Thread Ludovic Courtès
Hello,

Jeremy Robst  skribis:

> Here's the patch as an attachment - sorry for the hassle. I will try
> and work out what's going wrong so I can send proper patches in
> future.

No problem!

I tried the attached patch, which includes mostly cosmetic changes
compared to the one you posted.  However, I stumble upon test failures
(on x86_64, with Linux-libre 4.6.0):

--8<---cut here---start->8---

hdftest  Test Log

Testing create/read/write compressed datasets (tcomp.c)PASSED
Testing create/read/write chunked datasets (tchunk.c)  PASSED
Testing reading of netCDF file using the SDxxx inteface (tnetcdf.c)PASSED
Testing functionality of dimensions (tdim.c)   PASSED
Testing functions involving empty data sets (temptySDSs.c) PASSED
Testing various setting attribute features (tattributes.c) PASSED
Testing getting data size of special data (tdatasizes.c)   PASSED
Testing getting location info of data (tdatainfo.c)PASSED
Testing getting location info of attr and annot data (tattdatainfo.c)  PASSED
Testing a mix of SD, V, and VS functions (tmixed_apis.c)   PASSED
Testing miscellaneous file related functions (tfile.c)*** 
Routine test_maxopenfiles: SDstart FAILED at line 285 ***
*** Routine test_maxopenfiles: SDgetfilename FAILED at line 292 ***
SDgetfilename: incorrect file being opened - expected , retrieved 
*** Routine test_maxopenfiles: SDend FAILED at line 305 ***
Testing various SDS' properties (tsdsprops.c)  PASSED
Testing various coordinate variable features (tcoordvar.c) PASSED
Testing szip compression for datasets (tszip.c)PASSED
*** HDF-SD test fails ***
Makefile:1169: recipe for target 'hdftest.chkexe_' failed
make[5]: *** [hdftest.chkexe_] Error 1
make[5]: *** Waiting for unfinished jobs
Finished testing testmfhdf.sh 

testmfhdf.sh  Test Log

=
Running mfhdf tests
=
=
HDF-SD C interface tests
=
Testing create/read/write compressed datasets (tcomp.c)PASSED
Testing create/read/write chunked datasets (tchunk.c)  PASSED
Testing reading of netCDF file using the SDxxx inteface (tnetcdf.c)PASSED
Testing functionality of dimensions (tdim.c)   PASSED
Testing functions involving empty data sets (temptySDSs.c) PASSED
Testing various setting attribute features (tattributes.c) PASSED
Testing getting data size of special data (tdatasizes.c)   PASSED
Testing getting location info of data (tdatainfo.c)PASSED
Testing getting location info of attr and annot data (tattdatainfo.c)  PASSED
Testing a mix of SD, V, and VS functions (tmixed_apis.c)   PASSED
Testing miscellaneous file related functions (tfile.c)*** 
Routine test_maxopenfiles: SDstart FAILED at line 285 ***
*** Routine test_maxopenfiles: SDstart FAILED at line 285 ***
*** Routine test_maxopenfiles: SDstart FAILED at line 285 ***

[...]

SDgetfilename: incorrect file being opened - expected , retrieved 

*** Routine test_maxopenfiles: SDgetfilename FAILED at line 292 ***
SDgetfilename: incorrect file being opened - expected , retrieved 

*** Routine test_maxopenfiles: SDgetfilename FAILED at line 292 ***
SDgetfilename: incorrect file being opened - expected , retrieved 

*** Routine test_maxopenfiles: SDgetfilename FAILED at line 292 ***
--8<---cut here---start->8---

Any ideas?

Thanks,
Ludo’.

>From 77afb922f470ddc97819dd8bb623450585fb2e12 Mon Sep 17 00:00:00 2001
From: Jeremy Robst 
Date: Mon, 23 May 2016 17:59:00 +0100
Subject: [PATCH] gnu: Add hdf4.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/maths.scm (hdf4): New variable.
* gnu/packages/patches/hdf4-config-settings.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Ludovic Courtès 
---
 gnu/local.mk|  1 +
 gnu/packages/maths.scm  | 42 +++
 gnu/packages/patches/hdf4-config-settings.patch | 55 +
 3 files changed, 98 insertions(+)
 create mode 100644 gnu/packages/patches/hdf4-config-settings.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index dade736..9d608e8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -533,6 +533,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/gtk2-theme-paths.patch			\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
   %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
+  

Re: [PATCH 1/2] build: emacs: Handle sources that are a single elisp file.

2016-05-29 Thread Ludovic Courtès
Alex Kost  skribis:

> Ludovic Courtès (2016-05-28 18:36 +0300) wrote:
>
>> David Thompson  skribis:
>>
>>> * guix/build/emacs-build-system.scm (gnu:unpack)
>>> (store-file->elisp-source-file, unpack): New procedures.
>>> (%standard-phases): Use the new unpack procedure.
>>
>> Good idea, LGTM!
>>
>> Could you adjust users of ‘uncompressed-file-fetch’ in a subsequent
>> commit, and remove ‘uncompressed-file-fetch’?
>
> I object!

Damn it, sorry, I thought this would be uncontroversial.

> I mean this should be discussed at least.  I would really prefer to
> keep (and document) 'uncompressed-file-fetch' and not to update
> emacs-build-system for this case.  It is possible, that once we'll
> need to handle non-compressed files for another build system.  So it
> should also be adjusted in the same way.  But if we keep
> 'uncompressed-file-fetch', it will be a general decision as it can be
> used for any build system.

In my view, ‘uncompressed-file-fetch’ and the ‘emacs-build-system’
change that Dave proposes are equally good hacks, but the latter has the
advantage that people won’t have to think about it: they can just use
‘url-fetch’ and ‘emacs-build-system’ as usual and things will just work.

Of course, perhaps we should consider handling flat files closer to the
core, but so far the only use case we have, AFAIK, is .el files.  Thus,
it doesn’t seem that bad to add a special case in ‘emacs-build-system’.
Pragmatic approach I suppose.  ;-)

WDYT?

Thanks,
Ludo’.



[PATCH] Add GeoGebra

2016-05-29 Thread Nicolas Goaziou
Hello,

The following patch adds GeoGebra. Please consider adding it to the
repository.

Thank you.

Regards,

-- 
Nicolas Goaziou0x80A93738
>From ea6cc12bffe9e7c566f0d98681446df2676d2eb2 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou 
Date: Sun, 29 May 2016 19:28:53 +0200
Subject: [PATCH] gnu: Add geogebra.

* gnu/packages/maths.scm (geogebra): New variable.
---
 gnu/packages/maths.scm | 86 ++
 1 file changed, 86 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index e11208c..135794f 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -41,7 +41,10 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system r)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -61,6 +64,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages less)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages gnome)
@@ -2442,3 +2446,85 @@ structured and unstructured grid problems.")))
 (description "Matio is a library for reading and writing MAT files.  It
 supports compressed MAT files, as well as newer (version 7.3) MAT files.")
 (license license:bsd-2)))
+
+(define-public geogebra
+  (package
+(name "geogebra")
+(version "5.0.240.0")
+(synopsis "Dynamic mathematics software for education")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "http://download.geogebra.org/installers/;
+   (version-major+minor version)
+   "/GeoGebra-Linux-Portable-"
+   version ".tar.bz2"))
+   (sha256
+(base32
+ "1ngh0bah3krdc30ah3g73zbvh3gypvrvyfddlgcg7n5dmfad7a71"
+(build-system trivial-build-system)
+(arguments
+ `(#:modules ((guix build utils)
+  (srfi srfi-26))
+   #:builder
+   (begin
+ (use-modules (guix build utils)
+  (srfi srfi-26))
+ (let ((bash (string-append (assoc-ref %build-inputs "bash") "/bin"))
+   (bzip2 (string-append (assoc-ref %build-inputs "bzip2") "/bin"))
+   (java (string-append (assoc-ref %build-inputs "icedtea")
+"/bin/java")))
+   ;; Set paths.
+   (setenv "PATH" (string-append bzip2 ":" bash))
+   ;; Unpack file any move into source directory.
+   (let ((source (assoc-ref %build-inputs "source"))
+ (tar (assoc-ref %build-inputs "tar")))
+ (system* (string-append tar "/bin/tar") "xjf" source))
+   (chdir (string-append "GeoGebra-Linux-Portable-" ,version))
+   ;; Move ".jar" files and license into "share/geogebra/".
+   (let* ((out (assoc-ref %outputs "out"))
+  (bin (string-append out "/bin"))
+  (share (string-append out "/share"))
+  (applications (string-append share "/applications"))
+  (jar-dir (string-append share "/geogebra")))
+ (for-each (cut install-file <> jar-dir)
+   (find-files "." "\\.jar$"))
+ (install-file "LICENSE.txt" jar-dir)
+ ;; Create a launcher into "bin/".
+ (install-file "geogebra/geogebra" bin)
+ (with-directory-excursion bin
+   (patch-shebang "geogebra" (list bash))
+   (wrap-program "geogebra"
+ `("GG_PATH" = (,jar-dir))
+ `("GG_SCRIPTNAME" = ("geogebra"))
+ `("JAVACMD" = (,java
+ ;; Install .desktop file in "share/applications/"
+ (mkdir-p applications)
+ (call-with-output-file
+ (string-append applications "/geogebra.desktop")
+   (lambda (port)
+ (format port "~
+\[Desktop Entry]~@
+Name=GeoGebra~@
+Comment=~a~@
+Exec=~a/geogebra~@
+Terminal=false~@
+Type=Application~@
+MimeType=application/vnd.geogebra.file;application/vnd.geogebra.tool~@
+Categories=Education;Science;Math;"
+ ,synopsis bin
+   #t
+(native-inputs `(("bzip2" ,bzip2)
+ ("tar" ,tar)))
+(inputs `(("bash" ,bash-minimal)
+  ("icedtea" ,icedtea)))
+(description "GeoGebra is dynamic mathematics software for all
+levels of education that brings together geometry, algebra,
+spreadsheets, graphing, statistics and calculus in one package.")
+(home-page "https://www.geogebra.org;)
+;; Source code uses GPLv3+.  Other 

Re: [Patch] go@1.4

2016-05-29 Thread Matthew Jordan
Hi Andy,

And thanks for code snippet, I'll look at and see how I can integrate it
with the current patches.  I'm new to both go and guile, so there is
still much to learn.

Thanks again!

-- 
Matthew Jordan
Sent with my mu4e


Andy Wingo writes:

> Hi!
>
> I also took a look at this package over the weekend but was away from
> the internet.  It turns out that what is needed is to add "-rpath"
> invocations to Go itself.  The issue is that Go binaries are still
> dynamically linked to libgcc_s, but of course there is no useful default
> search path in which the run-time part of the dynamic linker will find
> libgcc_s.so.1.
>
> Here's a build phase that works for go-1.4:
>
> (arguments
>  `(#:phases
>(modify-phases %standard-phases
>  (delete 'configure)
>  (add-after 'patch-generated-file-shebangs 'chdir
>(lambda _ (chdir "src")))
>  (add-before 'build 'prebuild
>(lambda* (#:key inputs outputs #:allow-other-keys)
>  (define-syntax-rule (disable-go-tests ((file) test ...) ...)
>(begin
>  (substitute* file
>(((string-append "Test" test))
> (string-append "DisabledTest" test))
>...)
>  ...))
>  (let* ((gccgo  (assoc-ref inputs "gccgo"))
> (gcclib (string-append (assoc-ref inputs "gcc:lib") 
> "/lib"))
> (ld (string-append
>  (assoc-ref inputs "glibc") "/lib"))
> (loader (car (find-files ld "^ld-linux.+")))
> (net-base (assoc-ref inputs "net-base"))
> (tzdata-path
>  (string-append (assoc-ref inputs "tzdata") 
> "/share/zoneinfo"))
> (output (assoc-ref outputs "out")))
>(substitute* "cmd/go/build.go"
>  (("cgoldflags := \\[\\]string\\{\\}")
>   (string-append "cgoldflags := []string{"
>  "\"-rpath=" gcclib "\""
>  "}"))
>  (("ldflags := buildLdflags")
>   (string-append
>"ldflags := buildLdflags\n"
>"ldflags = append(ldflags, \"-r\")\n"
>"ldflags = append(ldflags, \"" gcclib "\")\n")))
>;; Disabling net/ tests
>(delete-file "net/multicast_test.go")
>(delete-file "net/parse_test.go")
>(delete-file "net/port_test.go")
>(substitute* "os/os_test.go"
>  (("/usr/bin") (getcwd))
>  (("/bin/pwd") (which "pwd")))
>(disable-go-tests
> (("os/os_test.go") "Hostname")
> (("net/net_test.go") "ShutdownUnix")
> (("net/dial_test.go") "DialTimeout")
> (("time/format_test.go") "ParseInSydney")
> (("os/exec/exec_test.go")
>  "Echo" "CommandRelativeName" "CatStdin" "CatGoodAndBadFile"
>  "ExitStatus" "Pipes" "StdinClose" "ExtraFiles")
> (("syscall/syscall_unix_test.go") "PassFD"))
>(substitute* "net/lookup_unix.go"
>  (("/etc/protocols") (string-append net-base 
> "/etc/protocols")))
>(substitute* "time/zoneinfo_unix.go"
>  (("/usr/share/zoneinfo/") tzdata-path))
>(substitute* (find-files "cmd" "asm.c")
>  (("/lib/ld-linux.*\\.so\\.[0-9]") loader)
>  (replace 'build
>(lambda* (#:key inputs outputs #:allow-other-keys)
>  (let* ((gccgo  (assoc-ref inputs "gccgo"))
> (output (assoc-ref outputs "out")))
>(setenv "CC" (which "gcc"))
>(setenv "GOOS" "linux")
>(setenv "GOROOT" (getcwd))
>(setenv "GOROOT_BOOTSTRAP" gccgo)
>(setenv "GOROOT_FINAL" output)
>(setenv "CGO_ENABLED" "1")
>(zero? (system* "sh" "all.bash")
>  (replace 'install
>(lambda* (#:key outputs #:allow-other-keys)
>  (let* ((output (assoc-ref outputs "out"))
> (docs   (assoc-ref outputs "doc"))
> (tests  (assoc-ref outputs "tests")))
>(copy-recursively "../test" tests)
>(delete-file-recursively "../test")
>(copy-recursively "../api" (string-append docs "/api"))
>(delete-file-recursively "../api")
>(copy-recursively "../doc" (string-append docs "/doc"))
>(delete-file-recursively "../doc")
>(copy-recursively "../" output)
>#:tests? #f))
>
> Please feel free to take this as yours, if you like :)
>
> For go 1.5, it's more complicated because of the new ability in Go to
> make shared libraries.  I use this substitute* 

[GSoC] Continuous integration tool à la Hydra.

2016-05-29 Thread Mathieu Lirzin
Hello Guix!

Here is a first update on my GSoC project after the first week.

Hydra (https://nixos.org/hydra/) is a Nix-based continuous build system
which is used by Guix to compile packages on different platforms and to
distribute packages substitutes.  The aim of this project is to replace
Hydra with a more integrated software written in Guile.

Since it would be cumbersome to speak about something without giving it
a name, I have decided to call this software “Cuirass”.

While being intended as a general purpose continuous integration tool,
the first iteration of Cuirass is focusing only on building Guix
packages.  The logic of the program is simple since 'cuirass' sits in a
loop:

 - Fetching new changes from Guix master branch
 - Compiling Guix code
 - Evaluating packages derivations
 - Building those derivations

The Guix repository is kept in a directory set by 'CUIRASS_CACHEDIR'
environment variable to avoid cloning it every time.  Even if the
algorithm is trivial, the implementation has required some thought in
order to allow using guile code fetched from the Guix git repository.
Hopefully the solution was already in 'hydra-eval-guile-jobs' script
from Hydra, so I have used the same technique.

Currently the build phase is failing with the following error:

--8<---cut here---start->8---
Starting download of 
/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
>From http://www.zsh.org/pub/zsh-5.1.1.tar.gz...
ERROR: In procedure connect*: Network is unreachable

Starting download of 
/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
>From http://www.zsh.org/pub/old/zsh-5.1.1.tar.gz...
ERROR: In procedure connect*: Network is unreachable

Starting download of 
/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
>From 
>http://tarballs.nixos.org/sha256/11shllzhq53fg8ngy3bgbmpf09fn2czifg7hsb41nxi3410mpvcl...
ERROR: download failed 
"http://tarballs.nixos.org/sha256/11shllzhq53fg8ngy3bgbmpf09fn2czifg7hsb41nxi3410mpvcl;
 404 "Not Found"
failed to download 
"/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz" from 
("http://www.zsh.org/pub/zsh-5.1.1.tar.gz; 
"http://www.zsh.org/pub/old/zsh-5.1.1.tar.gz;)
builder for `/gnu/store/srsm569hhqiz56abp90dksknn6mqb03j-zsh-5.1.1.tar.gz.drv' 
failed to produce output path 
`/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz'
@ build-failed /gnu/store/srsm569hhqiz56abp90dksknn6mqb03j-zsh-5.1.1.tar.gz.drv 
- 1 builder for 
`/gnu/store/srsm569hhqiz56abp90dksknn6mqb03j-zsh-5.1.1.tar.gz.drv' failed to 
produce output path 
`/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz'
cannot build derivation 
`/gnu/store/ri86p3f5w84r6pxyz54icyb0r00lmqaj-zsh-5.1.1.drv': 1 dependencies 
couldn't be built
Backtrace:
In ice-9/boot-9.scm:
 157: 9 [catch #t # ...]
In unknown file:
   ?: 8 [apply-smob/1 #]
In ice-9/boot-9.scm:
  63: 7 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 6 [eval # #]
In ice-9/boot-9.scm:
  63: 5 [call-with-prompt break486 ...]
  63: 4 [call-with-prompt continue487 ...]
In ice-9/eval.scm:
 432: 3 [eval # #]
In ice-9/r4rs.scm:
  90: 2 [dynamic-wind # ...]
In ice-9/boot-9.scm:
 702: 1 [map # (# # # # ...)]
In guix/store.scm:
 684: 0 [build # # 0]

guix/store.scm:684:15: In procedure build:
guix/store.scm:684:15: Throw to key `srfi-34' with args `(#)'.
--8<---cut here---end--->8---

which is probably related to the fact that https is not handled.

The next step will be to fix this issue, to provide a better abstraction
for the 'build jobs', and to find a way to make some test scripts using
dummy jobs.

For those willing to see more, a Git repository is available here:

  https://notabug.org/mthl/cuirass

Everyone is of course welcome to provide any feedback.

Thanks.

-- 
Mathieu Lirzin



Re: [PATCH] Add zimg.

2016-05-29 Thread Ricardo Wurmus

Efraim Flashner  writes:

> here's a patch to add zimg, a new dependency for vapoursynth in versions
> 29 and above.

Thanks, this looks good to me.  Too bad the release tarball is not
bootstrapped.

I found that the tests contain third-party libs under Expat license
(e.g. “musl”).  Not sure if this needs to be declared.

~~ Ricardo




Re: [Patch] go@1.4

2016-05-29 Thread Andy Wingo
Hi!

I also took a look at this package over the weekend but was away from
the internet.  It turns out that what is needed is to add "-rpath"
invocations to Go itself.  The issue is that Go binaries are still
dynamically linked to libgcc_s, but of course there is no useful default
search path in which the run-time part of the dynamic linker will find
libgcc_s.so.1.

Here's a build phase that works for go-1.4:

(arguments
 `(#:phases
   (modify-phases %standard-phases
 (delete 'configure)
 (add-after 'patch-generated-file-shebangs 'chdir
   (lambda _ (chdir "src")))
 (add-before 'build 'prebuild
   (lambda* (#:key inputs outputs #:allow-other-keys)
 (define-syntax-rule (disable-go-tests ((file) test ...) ...)
   (begin
 (substitute* file
   (((string-append "Test" test))
(string-append "DisabledTest" test))
   ...)
 ...))
 (let* ((gccgo  (assoc-ref inputs "gccgo"))
(gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
(ld (string-append
 (assoc-ref inputs "glibc") "/lib"))
(loader (car (find-files ld "^ld-linux.+")))
(net-base (assoc-ref inputs "net-base"))
(tzdata-path
 (string-append (assoc-ref inputs "tzdata") 
"/share/zoneinfo"))
(output (assoc-ref outputs "out")))
   (substitute* "cmd/go/build.go"
 (("cgoldflags := \\[\\]string\\{\\}")
  (string-append "cgoldflags := []string{"
 "\"-rpath=" gcclib "\""
 "}"))
 (("ldflags := buildLdflags")
  (string-append
   "ldflags := buildLdflags\n"
   "ldflags = append(ldflags, \"-r\")\n"
   "ldflags = append(ldflags, \"" gcclib "\")\n")))
   ;; Disabling net/ tests
   (delete-file "net/multicast_test.go")
   (delete-file "net/parse_test.go")
   (delete-file "net/port_test.go")
   (substitute* "os/os_test.go"
 (("/usr/bin") (getcwd))
 (("/bin/pwd") (which "pwd")))
   (disable-go-tests
(("os/os_test.go") "Hostname")
(("net/net_test.go") "ShutdownUnix")
(("net/dial_test.go") "DialTimeout")
(("time/format_test.go") "ParseInSydney")
(("os/exec/exec_test.go")
 "Echo" "CommandRelativeName" "CatStdin" "CatGoodAndBadFile"
 "ExitStatus" "Pipes" "StdinClose" "ExtraFiles")
(("syscall/syscall_unix_test.go") "PassFD"))
   (substitute* "net/lookup_unix.go"
 (("/etc/protocols") (string-append net-base "/etc/protocols")))
   (substitute* "time/zoneinfo_unix.go"
 (("/usr/share/zoneinfo/") tzdata-path))
   (substitute* (find-files "cmd" "asm.c")
 (("/lib/ld-linux.*\\.so\\.[0-9]") loader)
 (replace 'build
   (lambda* (#:key inputs outputs #:allow-other-keys)
 (let* ((gccgo  (assoc-ref inputs "gccgo"))
(output (assoc-ref outputs "out")))
   (setenv "CC" (which "gcc"))
   (setenv "GOOS" "linux")
   (setenv "GOROOT" (getcwd))
   (setenv "GOROOT_BOOTSTRAP" gccgo)
   (setenv "GOROOT_FINAL" output)
   (setenv "CGO_ENABLED" "1")
   (zero? (system* "sh" "all.bash")
 (replace 'install
   (lambda* (#:key outputs #:allow-other-keys)
 (let* ((output (assoc-ref outputs "out"))
(docs   (assoc-ref outputs "doc"))
(tests  (assoc-ref outputs "tests")))
   (copy-recursively "../test" tests)
   (delete-file-recursively "../test")
   (copy-recursively "../api" (string-append docs "/api"))
   (delete-file-recursively "../api")
   (copy-recursively "../doc" (string-append docs "/doc"))
   (delete-file-recursively "../doc")
   (copy-recursively "../" output)
   #:tests? #f))

Please feel free to take this as yours, if you like :)

For go 1.5, it's more complicated because of the new ability in Go to
make shared libraries.  I use this substitute* line:

 (substitute* "cmd/go/build.go"
 (("cgoldflags := \\[\\]string\\{\\}")
  (string-append "cgoldflags := []string{"
 "\"-rpath=" gcclib "\""
 "}"))
 (("ldflags = setextld\\(ldflags, compiler\\)")
  (string-append
   "ldflags = setextld(ldflags, compiler)\n"
   

Re: [PATCH 1/2] doc: Add note for first time users on arbitrary system.

2016-05-29 Thread Efraim Flashner
On Sun, May 29, 2016 at 07:05:39PM +0200, Hartmut Goebel wrote:
> * doc/guix.texi (Binary Installation): Add note about no need for a
> virtual machine.
> ---
>  doc/guix.texi | 9 -
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 01363c1..fab39e5 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -19,7 +19,8 @@ Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
>  Copyright @copyright{} 2015, 2016 Leo Famulari@*
>  Copyright @copyright{} 2016 Ben Woodcroft@*
>  Copyright @copyright{} 2016 Chris Marusich@*
> -Copyright @copyright{} 2016 Efraim Flashner
> +Copyright @copyright{} 2016 Efraim Flashner@*
> +Copyright @copyright{} 2016 Hartmut Goebel
>  
>  Permission is granted to copy, distribute and/or modify this document
>  under the terms of the GNU Free Documentation License, Version 1.3 or
> @@ -354,6 +355,12 @@ dependencies.  This is often quicker than installing 
> from source, which
>  is described in the next sections.  The only requirement is to have
>  GNU@tie{}tar and Xz.
>  
> +Installing Guix on an arbitrary system as descibed here is absolutely
^^^
on a foreign distro (maybe?)
> +save for your originating system. Only two directories, a service and a
^^^
  safe
> +bunch of easy-to-spot users are created. All work you'll do will be done
> +within this. Even for your first steps setting up a virtual machine is
> +completely unnecessary.
> +
>  Installing goes along these lines:
>  
>  @enumerate
> -- 
> 2.7.4
> 
> 

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


signature.asc
Description: PGP signature


Re: [PATCH] gnu: Add hdf4

2016-05-29 Thread Jeremy Robst

Hi,


Jeremy: could you send it as an attachment, or using ‘git send-email’?


Here's the patch as an attachment - sorry for the hassle. I will try and 
work out what's going wrong so I can send proper patches in future.


Jeremy
--
j...@bas.ac.uk | (work) 01223 221402 (fax) 01223 362616
Unix System Administrator - British Antarctic Survey
#include From 41816d45609674bbc62847960522e49a1646f6d3 Mon Sep 17 00:00:00 2001
From: Jeremy Robst 
Date: Mon, 23 May 2016 17:59:00 +0100
Subject: [PATCH] gnu: Add hdf4

* gnu/packages/maths.scm (hdf4): New variable
---
 gnu/packages/maths.scm  |   41 +
 gnu/packages/patches/hdf4-config-settings.patch |   55 +++
 2 files changed, 96 insertions(+)
 create mode 100644 gnu/packages/patches/hdf4-config-settings.patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 19ed44f..ab4785b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -408,6 +408,47 @@ plotting engine by third-party applications like Octave.")
 (license (license:fsf-free
   "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright;
 
+(define-public hdf4
+  (package
+(name "hdf4")
+(version "4.2.11")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "http://www.hdfgroup.org/ftp/HDF/releases/HDF; version
+ "/src/hdf-" version ".tar.bz2"))
+   (sha256
+(base32
+ "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv"))
+   (patches (list (search-patch "hdf4-config-settings.patch")
+(build-system gnu-build-system)
+(native-inputs
+ `(("gfortran" ,gfortran)
+   ("bison" ,bison)
+   ("flex" ,flex)))
+(inputs
+ `(("zlib" ,zlib)
+   ("libjpeg" ,libjpeg)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'patch-configure
+  (lambda _
+(substitute*
+'("mfhdf/hdfimport/testutil.sh.in" "hdf/util/testutil.sh.in")
+  (("/bin/rm") "rm")
+  (("/bin/mkdir") "mkdir"))
+#t)
+(home-page "https://www.hdfgroup.org/products/hdf4/;)
+(synopsis
+ "Library and multi-object file format for storing and managing data")
+(description "HDF4 is a library and multi-object file format for storing
+and managing data between machines.  HDF4 is an older hiearchical data format,
+incompatible with HDF5.")
+(license (license:non-copyleft
+  "https://www.hdfgroup.org/ftp/HDF/HDF_Current/src/unpacked/COPYING;
+
 (define-public hdf5
   (package
 (name "hdf5")
diff --git a/gnu/packages/patches/hdf4-config-settings.patch b/gnu/packages/patches/hdf4-config-settings.patch
new file mode 100644
index 000..e79362e
--- /dev/null
+++ b/gnu/packages/patches/hdf4-config-settings.patch
@@ -0,0 +1,55 @@
+Honor SOURCE_DATE_EPOCH when exporting configuraton date.
+Remove unreproducible configuration data.
+
+--- a/configure
 b/configure
+@@ -23169,7 +23169,14 @@
+ 
+ 
+ ## Configuration date
+- CONFIG_DATE="`date`"
++ CONFIG_DATE="`date -u`"
++if test -n "$SOURCE_DATE_EPOCH"; then
++  CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \
++   || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null`
++  if test -z "$CONFIG_DATE"; then
++as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
++  fi
++fi
+ 
+ ## User doing the configuration
+  CONFIG_USER="`whoami`@`hostname`"
+
+--- a/libhdf4.settings.in
 b/libhdf4.settings.in
+@@ -5,17 +5,17 @@
+ ---
+ 		   HDF4 Version: @H4_VERSION@
+ 		  Configured on: @CONFIG_DATE@
+-		  Configured by: @CONFIG_USER@
++		  Configured by: guix
+ 		 Configure mode: @CONFIG_MODE@
+-		Host system: @host_cpu@-@host_vendor@-@host_os@
+-  Uname information: @UNAME_INFO@
++		Host system: guix
++  Uname information: guix
+ 		  Libraries: @STATIC_SHARED@
+ 	 Installation point: @prefix@
+ 
+ Compiling Options:
+ --
+Compilation Mode: @CONFIG_MODE@
+- C compiler: @CC_VERSION@
++ C compiler: 
+  CFLAGS: @CFLAGS@
+CPPFLAGS: @CPPFLAGS@
+Shared Libraries: @enable_shared@
+@@ -29,7 +29,7 @@
+ Languages:
+ --
+ Fortran: @BUILD_FORTRAN@
+-@HDF_BUILD_FORTRAN_TRUE@   Fortran Compiler: @F77_VERSION@
++@HDF_BUILD_FORTRAN_TRUE@   Fortran Compiler: 
+ @HDF_BUILD_FORTRAN_TRUE@ FFLAGS: @FFLAGS@
+ 
+ Features:
-- 
1.7.10.4



[PATCH 1/2 v2] gnu: Add teensy-loader-cli.

2016-05-29 Thread Hartmut Goebel
* gnu/packages/flashing-tools.scm (teensy-loader-cli): New variable.
---
 gnu/packages/flashing-tools.scm| 50 ++
 gnu/packages/patches/teensy-loader-cli-usage.patch | 28 
 2 files changed, 78 insertions(+)
 create mode 100644 gnu/packages/patches/teensy-loader-cli-usage.patch

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 9f9f1b9..1822934 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Mark H Weaver 
 ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis 
+;;; Copyright © 2016 Hartmut Goebel 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -130,3 +131,52 @@ technique (ISP).")
 Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting
 ISP.")
 (license gpl2+)))
+
+(define-public teensy-loader-cli
+  ;; The repo does not tag versions nor does it use releases, but a commit
+  ;; message says "Importing 2.1", while the sourcce still says "2.0". So pin
+  ;; to a fixed commit.
+  (let* ((commit "f289b7a2e5627")
+ ;; Mind the version substitute below when changing this
+ (versionx (string-append "2.1-1." (string-take commit 7
+  (package
+(name "teensy-loader-cli")
+(version versionx)
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/PaulStoffregen/;
+   "teensy_loader_cli/archive/" commit ".tar.gz"))
+   (sha256 (base32 "17wqc2q4fa473cy7f5m2yiyb9nq0qw7xal2kzrxzaikgm9rabsw8"))
+   (file-name (string-append "teensy-loader-cli-" version ".tar.gz" ))
+   (patches (search-patches "teensy-loader-cli-usage.patch"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ;; Makefile has no test target
+   #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'fix-version
+   (lambda _
+ (substitute* "teensy_loader_cli.c"
+   (("Teensy Loader, Command Line, Version 2.0n")
+;; TODO: find a way to pass version from above
+(string-append "Teensy Loader, Command Line, Version 
2.1-1\\n")
+ (delete 'configure)
+ (replace 'install
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(bin (string-append out "/bin")))
+   (rename-file "teensy_loader_cli" "teensy-loader-cli")
+   (install-file "teensy-loader-cli" bin)))
+(inputs
+ `(("libusb-compat" ,libusb-compat)))
+(synopsis "Command line firmware uploader for teensy development boards")
+(description "The Teensy Loader program communicates with your
+Teensy board when the HalfKay bootloader is running, so you can
+download new programs and run them.
+
+You'll need to add the udev-rules to make the teensy update available
+for non-root users.")
+(home-page "https://www.pjrc.com/teensy/loader_cli.html;)
+(license gpl3
diff --git a/gnu/packages/patches/teensy-loader-cli-usage.patch 
b/gnu/packages/patches/teensy-loader-cli-usage.patch
new file mode 100644
index 000..097c61e
--- /dev/null
+++ b/gnu/packages/patches/teensy-loader-cli-usage.patch
@@ -0,0 +1,28 @@
+--- b/teensy_loader_cli.c.orig 2016-04-07 02:05:41.0 +0200
 a/teensy_loader_cli.c  2016-05-29 14:32:44.861930222 +0200
+@@ -37,14 +37,15 @@
+ {
+   if(err != NULL) fprintf(stderr, "%s\n\n", err);
+   fprintf(stderr,
+-  "Usage: teensy_loader_cli --mcu= [-w] [-h] [-n] [-b] [-v] 
\n"
++  "Usage: teensy-loader-cli --mcu= [-h] [-w] [-n] [-b] [-v] 
\n"
++  "\t-h : Print this help message\n"
+   "\t-w : Wait for device to appear\n"
+   "\t-r : Use hard reboot if device not online\n"
+   "\t-s : Use soft reboot if device not online (Teensy3.x only)\n"
+   "\t-n : No reboot after programming\n"
+   "\t-b : Boot only, do not program\n"
+   "\t-v : Verbose output\n"
+-  "\nUse `teensy_loader_cli --list-mcus` to list supported 
MCUs.\n"
++  "\nUse `teensy-loader-cli --list-mcus` to list supported 
MCUs.\n"
+   "\nFor more information, please visit:\n"
+   "http://www.pjrc.com/teensy/loader_cli.html\n;);
+   exit(1);
+@@ -1081,6 +1082,7 @@
+   int i;
+   for(i=1; arg[i]; i++) {
+   switch(arg[i]) {
++  case 'h': usage(NULL); break;
+   case 'w': wait_for_device_to_appear = 1; break;
+   case 'r': hard_reboot_device = 1; break;
+   case 's': soft_reboot_device = 1; break;
-- 
2.7.4

This version of the 

[PATCH 2/2] doc: Update specification for Python packages

2016-05-29 Thread Hartmut Goebel
* doc/guix.texi (Python Packages): Add rule for packages with upstream
  name starting with "py".
---
 doc/guix.texi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index fab39e5..843f434 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -11104,7 +11104,9 @@ packages with the corresponding names.
 
 If a project already contains the word @code{python}, we drop this;
 for instance, the module python-dateutil is packaged under the names
-@code{python-dateutil} and @code{python2-dateutil}.
+@code{python-dateutil} and @code{python2-dateutil}.  If the project name
+starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as
+described above.
 
 
 @node Perl Modules
-- 
2.7.4




[PATCH 1/2] doc: Add note for first time users on arbitrary system.

2016-05-29 Thread Hartmut Goebel
* doc/guix.texi (Binary Installation): Add note about no need for a
virtual machine.
---
 doc/guix.texi | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 01363c1..fab39e5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -19,7 +19,8 @@ Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
 Copyright @copyright{} 2015, 2016 Leo Famulari@*
 Copyright @copyright{} 2016 Ben Woodcroft@*
 Copyright @copyright{} 2016 Chris Marusich@*
-Copyright @copyright{} 2016 Efraim Flashner
+Copyright @copyright{} 2016 Efraim Flashner@*
+Copyright @copyright{} 2016 Hartmut Goebel
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -354,6 +355,12 @@ dependencies.  This is often quicker than installing from 
source, which
 is described in the next sections.  The only requirement is to have
 GNU@tie{}tar and Xz.
 
+Installing Guix on an arbitrary system as descibed here is absolutely
+save for your originating system. Only two directories, a service and a
+bunch of easy-to-spot users are created. All work you'll do will be done
+within this. Even for your first steps setting up a virtual machine is
+completely unnecessary.
+
 Installing goes along these lines:
 
 @enumerate
-- 
2.7.4




[PATCH 2/3] gnu: add python-sqlparse and python2-sqlparse

2016-05-29 Thread Hartmut Goebel
* gnu/packages/python.scm (python-sqlparse) (python2-sqlparse):
  New variables.
---
 gnu/packages/python.scm | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 96163cf..cda4dd3 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -8831,3 +8831,37 @@ multiple processes (imagine multiprocessing, billiard, 
futures, celery etc).
 
 (define-public python2-tblib
   (package-with-python2 python-tblib))
+
+(define-public python-sqlparse
+  (package
+(name "python-sqlparse")
+(version "0.1.19")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "sqlparse" version))
+   (sha256 (base32
+ "1s2fvaxgh9kqzrd6iwy5h7i61ckn05plx9np13zby93z3hdbx5nq"
+(build-system python-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (replace 'check
+   (lambda* _
+ ;; setup.py-integrated 2to3 only affects the build files, but
+ ;; py.test is using the source files. So we need to convert them
+ ;; manually.
+ (when (zero? (system* "python3"))
+   (system* "2to3" "--no-diff" "-wn" "sqlparse" "tests"))
+ (zero? (system* "py.test")))
+(native-inputs
+ `(("python-pytest" ,python-pytest)
+   ("python-setuptools" ,python-setuptools)))
+(home-page "https://github.com/andialbrecht/sqlparse;)
+(synopsis "Non-validating SQL parser")
+(description "sqlparse is a non-validating SQL parser for Python.  It
+provides support for parsing, splitting and formatting SQL statements.")
+(license bsd-3)))
+
+(define-public python2-sqlparse
+  (package-with-python2 python-sqlparse))
-- 
2.7.4




[PATCH 0/3] Update 2: Some new python packages

2016-05-29 Thread Hartmut Goebel
This is another update for my pathced from 2016-04-17 resp. 2016-04-21.

Changes to the second version of the patches

tblib: fixed test suite (Thanks to Leo Famulari for spotting this)
sqlparser: Use "when" instead of one-armed "if"
sqlparser: still use "which python3" since using get-python-version 
   is complicated and ugly
ipaddr: unchanged
selenium: dropped
maxminddb: dropped
geoip2: dropped

I dropped these modules since packaging them is too much effort for me now and
I don't need them. The patches are still available at
https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00877.html

Hartmut Goebel (3):
  gnu: Add python-tblib and python2-tblib
  gnu: add python-sqlparse and python2-sqlparse
  gnu: Add python2-ipaddr, a Python-2-only package

 gnu/packages/python.scm | 106 
 1 file changed, 106 insertions(+)

-- 
2.7.4




[PATCH 3/3] gnu: Add python2-ipaddr, a Python-2-only package

2016-05-29 Thread Hartmut Goebel
* gnu/packages/python.scm: (python2-ipaddr): New variable..
---
 gnu/packages/python.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index cda4dd3..8c833ff 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5788,6 +5788,35 @@ IPv6 addresses and networks.  This is a port of the 
Python 3.3 ipaddress
 module to older versions of Python.")
 (license psfl)))
 
+(define-public python2-ipaddr
+  (package
+(name "python2-ipaddr")
+(version "2.1.11")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "ipaddr" version))
+   (sha256
+(base32 "1dwq3ngsapjc93fw61rp17fvzggmab5x1drjzvd4y4q0i255nm8v"
+(build-system python-build-system)
+(arguments
+ `(#:python ,python-2
+   #:phases
+   (modify-phases %standard-phases
+ (replace 'check
+   (lambda* _
+ (zero? (system* "python" "ipaddr_test.py")))
+(home-page "https://github.com/google/ipaddr-py;)
+(synopsis "IP address manipulation library by Google")
+(description
+ "Ipaddr is a Python library for creating and manupilating IPv4 and IPv6
+addresses and networks.
+
+For new implementations you may prefer to use the standard module
+@code{ipaddress}, which was introduced in Python 3.3 and backported to older
+versions of Python.")
+(license asl2.0)))
+
 (define-public python-idna
   (package
 (name "python-idna")
-- 
2.7.4




Re: Branching based on Python version (was [PATCH 2/6] gnu: add python-sqlparse and python2-sqlparse)

2016-05-29 Thread Hartmut Goebel
Am 24.04.2016 um 23:40 schrieb Ludovic Courtès:
> (guix build python-build-system) includes ‘get-python-version’, which
> could be used for this purpose.

I looked into this: using it is very cumbersome, since it requires
`python` to be passed:

   (get-python-version (assoc-ref inputs "python")))

Which then makes the "lambda" definition more complicated and the test
itself much more ugly :-( So I'll keep the `system` call.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |





[PATCH 4/4] emacs-seq

2016-05-29 Thread Catonano

From d8c560cd5b2335b01b19edec67cbd8a69e5ee3a4 Mon Sep 17 00:00:00 2001
From: humanitiesNerd 
Date: Sun, 29 May 2016 13:44:00 +0200
Subject: gnu: Add emacs-seq.

* gnu/packages/emacs.scm (emacs-seq).
---
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 014a58c..c71a603 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1770,3 +1770,33 @@ structure is sometimes called an \"output-restricted deque\")")
 (description "Add spinners and progress-bars
 to the mode-line for ongoing operations.")
 (license license:gpl3+)))
+
+(define-public emacs-seq
+  (package
+(name "emacs-seq")
+(version "2.15")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "http://elpa.gnu.org/packages/seq-;
+ version ".tar"))
+   (sha256
+(base32
+  "09wi1765bmn7i8fg6ajjfaxgs4ipc42d58zx2fdqpidrdg9c7q73"
+(build-system emacs-build-system)
+(home-page "http://elpa.gnu.org/packages/seq.html;)
+(synopsis "Sequence manipulation functions")
+(description
+ "Sequence-manipulation functions that complement basic functions
+provided by @code{subr.el}
+
+All functions are prefixed with \"seq-\".
+
+All provided functions work on lists, strings and vectors.
+
+Functions taking a predicate or iterating over a sequence using a
+function as argument take the function as their first argument and
+the sequence as their second argument.  All other functions take
+the sequence as their first argument.")
+(license license:gpl3+)))
-- 
2.5.5



[PATCH 3/4] emacs-spinner

2016-05-29 Thread Catonano

From ac23b10894d3332484128c4ed3c6f6bdf81b9c2e Mon Sep 17 00:00:00 2001
From: humanitiesNerd 
Date: Sun, 29 May 2016 10:25:21 +0200
Subject: gnu: Add emacs-spinner.

* gnu/packages/emacs.scm (emacs-spinner).
---
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 92ad434..014a58c 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1749,3 +1749,24 @@ structure is sometimes called an \"output-restricted deque\")")
 (description
  "This library extracts information from installed packages.")
 (license license:gpl3+)))
+
+(define-public emacs-spinner
+  (package
+(name "emacs-spinner")
+(version "1.7.1")
+(source
+ (origin
+   (method uncompressed-file-fetch)
+   (uri (string-append
+ "http://elpa.gnu.org/packages/spinner-;
+ version ".el"))
+   (sha256
+(base32
+  "1fmwzdih0kbyvs8bn38mpm4sbs2mikqy2vdykfy9g20wpa8vb681"
+(build-system emacs-build-system)
+(home-page "https://github.com/Malabarba/spinner.el;)
+(synopsis
+ "Add spinners and progress-bars to the mode-line for ongoing operations")
+(description "Add spinners and progress-bars
+to the mode-line for ongoing operations.")
+(license license:gpl3+)))
-- 
2.5.5



[PATCH 2/4] emacs-pkg-info

2016-05-29 Thread Catonano

From 6b4542d9f52b8f91375d07bd41bcc196a1c0515a Mon Sep 17 00:00:00 2001
From: humanitiesNerd 
Date: Sun, 29 May 2016 10:23:00 +0200
Subject: gnu: Add emacs-pkg-info.

* gnu/packages/emacs.scm (emacs-pkg-info).
---
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 90f55ea..92ad434 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1727,3 +1727,25 @@ first-in first-out (FIFO) stack, i.e. elements can be added to the front or
 back of the queue, and can be removed from the front. (This type of data
 structure is sometimes called an \"output-restricted deque\")")
 (license license:gpl3+)))
+
+(define-public emacs-pkg-info
+  (package
+(name "emacs-pkg-info")
+(version "0.6")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append
+ "https://github.com/lunaryorn/pkg-info.el/archive/;
+ version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+  "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"
+(build-system emacs-build-system)
+(propagated-inputs `(("emacs-epl" ,emacs-epl)))
+(home-page "https://github.com/lunaryorn/pkg-info.el;)
+(synopsis "Information about packages")
+(description
+ "This library extracts information from installed packages.")
+(license license:gpl3+)))
-- 
2.5.5



[PATCH 1/2] gnu: Add teensy-loader-cli.

2016-05-29 Thread Hartmut Goebel
* gnu/packages/flashing-tools.scm (teensy-loader-cli): New variable.
---
 gnu/packages/flashing-tools.scm | 50 +
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 9f9f1b9..1822934 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Mark H Weaver 
 ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis 
+;;; Copyright © 2016 Hartmut Goebel 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -130,3 +131,52 @@ technique (ISP).")
 Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting
 ISP.")
 (license gpl2+)))
+
+(define-public teensy-loader-cli
+  ;; The repo does not tag versions nor does it use releases, but a commit
+  ;; message says "Importing 2.1", while the sourcce still says "2.0". So pin
+  ;; to a fixed commit.
+  (let* ((commit "f289b7a2e5627")
+ ;; Mind the version substitute below when changing this
+ (versionx (string-append "2.1-1." (string-take commit 7
+  (package
+(name "teensy-loader-cli")
+(version versionx)
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/PaulStoffregen/;
+   "teensy_loader_cli/archive/" commit ".tar.gz"))
+   (sha256 (base32 "17wqc2q4fa473cy7f5m2yiyb9nq0qw7xal2kzrxzaikgm9rabsw8"))
+   (file-name (string-append "teensy-loader-cli-" version ".tar.gz" ))
+   (patches (search-patches "teensy-loader-cli-usage.patch"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ;; Makefile has no test target
+   #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'fix-version
+   (lambda _
+ (substitute* "teensy_loader_cli.c"
+   (("Teensy Loader, Command Line, Version 2.0n")
+;; TODO: find a way to pass version from above
+(string-append "Teensy Loader, Command Line, Version 
2.1-1\\n")
+ (delete 'configure)
+ (replace 'install
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(bin (string-append out "/bin")))
+   (rename-file "teensy_loader_cli" "teensy-loader-cli")
+   (install-file "teensy-loader-cli" bin)))
+(inputs
+ `(("libusb-compat" ,libusb-compat)))
+(synopsis "Command line firmware uploader for teensy development boards")
+(description "The Teensy Loader program communicates with your
+Teensy board when the HalfKay bootloader is running, so you can
+download new programs and run them.
+
+You'll need to add the udev-rules to make the teensy update available
+for non-root users.")
+(home-page "https://www.pjrc.com/teensy/loader_cli.html;)
+(license gpl3
-- 
2.7.4




[PATCH 2/2] gnu: Add dfu-util.

2016-05-29 Thread Hartmut Goebel
* gnu/packages/flashing-tools.scm (dfu-util): New variable.
---
 gnu/packages/flashing-tools.scm | 31 +++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 1822934..58a137d 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libftdi)
   #:use-module (gnu packages pciutils)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages admin))
 
 (define-public flashrom
@@ -180,3 +181,33 @@ You'll need to add the udev-rules to make the teensy 
update available
 for non-root users.")
 (home-page "https://www.pjrc.com/teensy/loader_cli.html;)
 (license gpl3
+
+(define-public dfu-util
+  (package
+(name "dfu-util")
+(version "0.9")
+(source
+ (origin
+   (method url-fetch)
+   (uri "http://dfu-util.sourceforge.net/releases/dfu-util-0.9.tar.gz;)
+   (sha256 (base32 
"0czq73m92ngf30asdzrfkzraag95hlrr74imbanqq25kdim8qhin"
+(build-system gnu-build-system)
+(arguments
+ '(#:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'autoconf
+   (lambda _ (zero? (system* "autoreconf" "-vfi")))
+(inputs
+ `(("libusb" ,libusb)))
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("pkg-config" ,pkg-config)))
+(synopsis "Host (PC) side of the USB Device Firmware Upgrade (DFU) 1.0 and 
1.1 protocol")
+(description "DFU (Universal Serial Bus Device Firmware Upgrade) protocol
+is intended to download and upload firmware to devices connected over USB. It
+ranges from small devices like micro-controller boards up to mobile phones.
+With dfu-util you are able to download firmware to your device or upload
+firmware from it.")
+(home-page "http://dfu-util.sourceforge.net/;)
+(license gpl2+)))
-- 
2.7.4




[PATCH 1/1] services: urandom-seed: Set umask to 077 while shutting down.

2016-05-29 Thread Leo Famulari
* gnu/services/base.scm (urandom-seed-shepherd-service): Call 'umask'.
---
 gnu/services/base.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index a45f219..8ed40a4 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -461,6 +461,7 @@ stopped before 'kill' is called."
  (call-with-input-file "/dev/urandom"
(lambda (urandom)
  (get-bytevector-n! urandom buf 0 512)
+ (umask #o077)
  (call-with-output-file #$%random-seed-file
(lambda (seed)
  (put-bytevector seed buf)))
-- 
2.8.3




[PATCH] Add zimg.

2016-05-29 Thread Efraim Flashner
here's a patch to add zimg, a new dependency for vapoursynth in versions
29 and above.

-- 
Efraim Flashner      אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
From 280b1d63e16d223eb29291421b652a13bc077795 Mon Sep 17 00:00:00 2001
From: Efraim Flashner 
Date: Sun, 29 May 2016 14:48:42 +0300
Subject: [PATCH] gnu: Add zimg.

* gnu/packages/image.scm (zimg): New variable.
---
 gnu/packages/image.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 3651e97..17d1bdd 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -766,3 +766,35 @@ implementation of the codec specified in the JPEG-2000 
Part-1 standard (i.e.,
 ISO/IEC 15444-1).")
 (home-page "https://www.ece.uvic.ca/~frodo/jasper/;)
 (license (license:x11-style "file://LICENSE"
+
+(define-public zimg
+  (package
+(name "zimg")
+(version "2.1")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "https://github.com/sekrit-twc/zimg/archive/;
+"release-" version ".tar.gz"))
+(file-name (string-append name "-" version ".tar.gz"))
+(sha256
+ (base32
+  "1hqp1gcsa2zhypms5dnasb1srjgxdqm7cip3w5i571kk9nxkn289"
+(build-system gnu-build-system)
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("libtool" ,libtool)))
+(arguments
+ '(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'autogen
+   (lambda _
+ (zero? (system* "sh" "autogen.sh")))
+(synopsis "Scaling, colorspace conversion, and dithering library")
+(description "Zimg implements the commonly required image processing basics
+of scaling, colorspace conversion, and depth conversion.  A simple API enables
+conversion between any supported formats to operate with minimal knowledge from
+the programmer.")
+(home-page "https://github.com/sekrit-twc/zimg;)
+(license (license:fsf-free "file://COPYING" ;WTFPL version 2
-- 
2.8.3



signature.asc
Description: PGP signature