[PATCH] gnu: Add Calf plugins.

2015-04-26 Thread Ricardo Wurmus
From 4c706da18a077d77dae12ef7c451aa4038d24e5e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus rek...@elephly.net
Date: Sun, 26 Apr 2015 10:44:14 +0200
Subject: [PATCH] gnu: Add calf plugins.

* gnu/packages/audio.scm (calf): New variable.
---
 gnu/packages/audio.scm | 42 ++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 16c2a72..858262f 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -256,6 +256,48 @@ bass section with five drawbars.  A standalone JACK application and LV2
 plugins are provided.)
 (license license:gpl2)))
 
+(define-public calf
+  (package
+(name calf)
+(version 0.0.60)
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+mirror://sourceforge/calf/calf/
+version /calf- version .tar.gz))
+  (sha256
+   (base32
+019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9
+(build-system gnu-build-system)
+(inputs
+ `((fluidsynth ,fluidsynth)
+   (expat ,expat)
+   (glib ,glib)
+   (gtk ,gtk+-2)
+   (cairo ,cairo)
+   (lash ,lash)
+   (jack ,jack-1)
+   (lv2 ,lv2)
+   (ladspa ,ladspa)
+   (fftw ,fftw)))
+(native-inputs
+ `((pkg-config ,pkg-config)))
+(native-search-paths
+ (list (search-path-specification
+(variable LV2_PATH)
+(files '(lib/lv2)
+(home-page http://calf.sourceforge.net/;)
+(synopsis Audio plug-in pack for LV2 and JACK environments)
+(description
+ Calf Studio Gear is an audio plug-in pack for LV2 and JACK environments.
+The suite contains lots of effects (delay, modulation, signal processing,
+filters, equalizers, dynamics, distortion and mastering effects),
+instruments (SF2 player, organ simulator and a monophonic synthesizer) and
+tools (analyzer, mono/stereo tools, crossovers).)
+;; calfjackhost is released under GPLv2+
+;; The plugins are released under LGPLv2.1+
+(license (list license:lgpl2.1+ license:gpl2+
+
 (define-public csound
   (package
 (name csound)
-- 
2.1.0





Re: [PATCH] gnu: Add Calf plugins.

2015-04-26 Thread Andreas Enge
Looks good to me.

Andreas




Re: [PATCH 1/7] gnu: gobject-introspection: Update to 1.44.0.

2015-04-26 Thread Andreas Enge
On Sun, Apr 26, 2015 at 08:00:55AM +0800, 宋文武 wrote:
 Now, packages for i386 have finished, it's time to merge into master?

I just merged and pushed, hopefully I did it correctly...

Andreas




Re: [PATCH] gnu: Add IR.

2015-04-26 Thread Andreas Enge
On Sun, Apr 26, 2015 at 03:26:04PM +0200, Ricardo Wurmus wrote:
 How about this then:
   Zita convolver is a C++ library providing a real-time convolution
   engine.
 WDYT?

Yes, maybe.

Andreas




Re: [PATCH] gnu: Add IR.

2015-04-26 Thread Ricardo Wurmus

Andreas Enge writes:

 + Zita convolver is a C++ library implementing a real-time convolution
 +matrix.)

 This I find difficult to understand. How can you implement a matrix?  What is
 a real time matrix?  Maybe for computing convolution matrices in real time?
 Or also add double precision (or whatever is correct) in front of
 convolution matrices.

Frankly, the description is terrible.  The real-time convolution
matrix is to be parsed as (real-time convolution) matrix, I think.

I don't really know what the library concretely implements (and it
doesn't come with a helpful README), other than that it is used for
real-time audio convolution, e.g. in IR.

The Fedora package description is:

  zita-convolver is a fast, partitioned convolution engine library.

How about this then:

  Zita convolver is a C++ library providing a real-time convolution
  engine.

WDYT?

~~ Ricardo




Re: [PATCH] gnu: Add IR.

2015-04-26 Thread Ricardo Wurmus

Andreas Enge writes:

 On Sat, Apr 25, 2015 at 08:49:43PM +0200, Ricardo Wurmus wrote:
 attached are patches for the zita-convolver library and the excellent IR
 reverb plugin.  It creates a reverb effect out of impulse responses.
 (It does not come with pre-packaged impulse responses, but there are
 many impulse response packs out there that can be used.)

 Are you going to add such a package? Otherwise the search path mechanism
 will not work.

No.  The plugin works as packaged.  It has a file open dialogue to allow
the user to select impulse responses (= wav files) from anywhere on
disk.  I already tried it in Ardour 4 and it works just fine.

 + IR is a low-latency, realtime, high performance signal convolver
 +especially for creating reverb effects.  Supports impulse responses with 1, 
 2
 +or 4 channels, in any soundfile format supported by libsndfile.)

 Maybe add It before supports. real time? real-time?

I'll add It and use real-time.  Thanks.

~~ Ricardo





Re: hackage importer

2015-04-26 Thread Federico Beffa
On Tue, Mar 31, 2015 at 3:33 PM, Ludovic Courtès l...@gnu.org wrote:
 I think it’s a matter of separating concerns.  In my mind there are
 three distinct layers:

   1. Cabal parsing (what I call ‘read-cabal’, because it’s the
  equivalent of ‘read’);

   2. Cabal evaluation/instantiation for a certain set of flags, OS,
  etc. (what I call ‘eval-cabal’ because it’s the equivalent of
  ‘eval’);

   3. Conversion of Cabal packages of Guix package sexps.

 My concern was about making sure these three phases were clearly visible
 in the code.  Tu put it differently, #1 and #2 would conceptually be
 part of a Cabal parsing/evaluation library, while #3 would be the only
 Guix-specific part.

Please find attached a patch reorganizing the code as you suggest.

Regards,
Fede
From bc8cdab1e322a25002a3d9cf33eddd856c8a81d8 Mon Sep 17 00:00:00 2001
From: Federico Beffa be...@fbengineering.ch
Date: Sun, 26 Apr 2015 11:22:29 +0200
Subject: [PATCH] import: hackage: Refactor parsing code and add new option.

* guix/import/cabal.scm: New file.

* guix/import/hackage.scm: Update to use the new Cabal parsing module.

* tests/hackage.scm: Update tests for private functions.

* guix/scripts/import/hackage.scm: Add new '--cabal-environment' option.

* doc/guix.texi: ... and document it.

* Makefile.am (MODULES): Add 'guix/import/cabal.scm',
  'guix/import/hackage.scm' and 'guix/scripts/import/hackage.scm'.
  (SCM_TESTS): Add 'tests/hackage.scm'.
---
 Makefile.am |   4 +
 doc/guix.texi   |  17 +-
 guix/import/cabal.scm   | 902 
 guix/import/hackage.scm | 691 --
 guix/scripts/import/hackage.scm |  14 +-
 tests/hackage.scm   |  18 +-
 6 files changed, 1009 insertions(+), 637 deletions(-)
 create mode 100644 guix/import/cabal.scm

diff --git a/Makefile.am b/Makefile.am
index d54e281..b42a7f5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -89,6 +89,8 @@ MODULES =	\
   guix/import/utils.scm\
   guix/import/gnu.scm\
   guix/import/snix.scm\
+  guix/import/cabal.scm\
+  guix/import/hackage.scm			\
   guix/scripts/download.scm			\
   guix/scripts/build.scm			\
   guix/scripts/archive.scm			\
@@ -104,6 +106,7 @@ MODULES =	\
   guix/scripts/lint.scm\
   guix/scripts/import/gnu.scm			\
   guix/scripts/import/nix.scm			\
+  guix/scripts/import/hackage.scm		\
   guix/scripts/environment.scm			\
   guix/scripts/publish.scm			\
   guix.scm	\
@@ -173,6 +176,7 @@ SCM_TESTS =	\
   tests/build-utils.scm\
   tests/packages.scm\
   tests/snix.scm\
+  tests/hackage.scm\
   tests/store.scm\
   tests/monads.scm\
   tests/gexp.scm\
diff --git a/doc/guix.texi b/doc/guix.texi
index 70604b7..453e71f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3201,14 +3201,25 @@ Specific command-line options are:
 @table @code
 @item --no-test-dependencies
 @itemx -t
-Do not include dependencies only required to run the test suite.
+Do not include dependencies only required to run the test suites.
+@item --cabal-environment=@var{alist}
+@itemx -e @var{alist}
+@var{alist} is a Scheme alist defining the environment in which the
+Cabal conditionals are evaluated.  The accepted keys are: @samp{os},
+@samp{arch}, @samp{impl} and a string representing the name of a flag.
+The value associated with a flag has to be either the symbol
+@verb{'true'} or @verb{'false'}.  The value associated with other keys
+has to conform to the Cabal file format definition.  The default value
+associated with the keys @samp{os}, @samp{arch} and @samp{impl} is
+@samp{linux}, @samp{x86_64} and @samp{ghc} respectively.
 @end table
 
 The command below imports meta-data for the latest version of the
-@code{HTTP} Haskell package without including test dependencies:
+@code{HTTP} Haskell package without including test dependencies and
+specifying the value of the flag @samp{network-uri} as @verb{'false'}:
 
 @example
-guix import hackage -t HTTP
+guix import hackage -t -e '((\network-uri\ . false)) HTTP
 @end example
 
 A specific package version may optionally be specified by following the
diff --git a/guix/import/cabal.scm b/guix/import/cabal.scm
new file mode 100644
index 000..fd4bbd6
--- /dev/null
+++ b/guix/import/cabal.scm
@@ -0,0 +1,902 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Federico Beffa be...@fbengineering.ch
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License 

Re: [PATCH] gnu: Add IR.

2015-04-26 Thread Andreas Enge
On Sat, Apr 25, 2015 at 08:49:43PM +0200, Ricardo Wurmus wrote:
 +  (chdir libs) #t)

I would put #t onto a new line as it is a separate command.

+((^LIBDIR =.*) LIBDIR = lib\n))

I think this adds a line break, which is not a problem.

 + Zita convolver is a C++ library implementing a real-time convolution
 +matrix.)

This I find difficult to understand. How can you implement a matrix?  What is
a real time matrix?  Maybe for computing convolution matrices in real time?
Or also add double precision (or whatever is correct) in front of
convolution matrices.

Otherwise looks good.

Andreas




Re: [PATCH] gnu: Add IR.

2015-04-26 Thread Andreas Enge
On Sat, Apr 25, 2015 at 08:49:43PM +0200, Ricardo Wurmus wrote:
 attached are patches for the zita-convolver library and the excellent IR
 reverb plugin.  It creates a reverb effect out of impulse responses.
 (It does not come with pre-packaged impulse responses, but there are
 many impulse response packs out there that can be used.)

Are you going to add such a package? Otherwise the search path mechanism
will not work.

 + IR is a low-latency, realtime, high performance signal convolver
 +especially for creating reverb effects.  Supports impulse responses with 1, 2
 +or 4 channels, in any soundfile format supported by libsndfile.)

Maybe add It before supports. real time? real-time?

Andreas




Re: [PATCH 1/7] gnu: gobject-introspection: Update to 1.44.0.

2015-04-26 Thread Andreas Enge
On Sun, Apr 26, 2015 at 08:00:55AM +0800, 宋文武 wrote:
 Now, packages for i386 have finished, it's time to merge into master?
 http://hydra.gnu.org/eval/103900?compare=master

The main problemm seems to be that pulseaudio did not build on mips. But
is this at all related to your changes?

Andreas




Re: hackage importer

2015-04-26 Thread Federico Beffa
Federico Beffa be...@ieee.org writes:

 Please find attached a patch reorganizing the code as you suggest.

Just noticed that I forgot to delete 'parse-cabal' from the public
interface of the cabal module.

Regards,
Fede



[PATCH] gnu: mpd: Add additional optional inputs.

2015-04-26 Thread David Thompson
From 177a758f24d3f19a763e69d42d0ada4db8079090 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 26 Apr 2015 20:37:35 -0400
Subject: [PATCH] gnu: mpd: Add additional optional inputs.

* gnu/packages/mpd.scm (mpd): Add mpg123, libshout, fluidsynth, openal,
  libmpcdec, wavpack, libcdio-paranoia, expat, and samba inputs.
---
 gnu/packages/mpd.scm | 25 -
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index f89d3ed..9260de9 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -43,7 +43,12 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages video)
-  #:use-module (gnu packages xiph))
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages audio)
+  #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages samba)
+  #:use-module (gnu packages avahi))
 
 (define-public libmpdclient
   (package
@@ -99,28 +104,30 @@ interfacing MPD in the C, C++  Objective C languages.)
   (opus ,opus)
   (pulseaudio ,pulseaudio)
   (sqlite ,sqlite)
-  (zlib ,zlib)))
+  (zlib ,zlib)
+  (mpg123 ,mpg123)
+  (libshout ,libshout)
+  (fluidsynth ,fluidsynth)
+  (openal ,openal)
+  (libmpcdec ,libmpcdec)
+  (wavpack ,wavpack)
+  (libcdio-paranoia ,libcdio-paranoia)
+  (expat ,expat)
+  (samba ,samba)))
 (native-inputs `((pkg-config ,pkg-config)))
 ;; Missing optional inputs:
 ;;   libyajl
-;;   libcdio_paranoia
 ;;   libmms
 ;;   libadplug
 ;;   libaudiofile
 ;;   faad2
-;;   fluidsynth
 ;;   libgme
-;;   libshout
-;;   libmpg123
 ;;   libmodplug
-;;   libmpcdec
 ;;   libsidplay2
-;;   libwavpack
 ;;   libwildmidi
 ;;   libtwolame
 ;;   libroar
 ;;   libjack
-;;   OpenAL
 (synopsis Music Player Daemon)
 (description Music Player Daemon (MPD) is a flexible, powerful,
 server-side application for playing music.  Through plugins and libraries it
-- 
2.1.4


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate


[PATCH 1/2] gnu: Add libical.

2015-04-26 Thread David Thompson
From a186fd49a55796917431088c0a04dee1b7da30c6 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 26 Apr 2015 17:46:57 -0400
Subject: [PATCH 1/2] gnu: Add libical.

* gnu/packages/libical.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am|  1 +
 gnu/packages/libical.scm | 52 
 2 files changed, 53 insertions(+)
 create mode 100644 gnu/packages/libical.scm

diff --git a/gnu-system.am b/gnu-system.am
index a99e2bd..2209a0f 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -173,6 +173,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/libffcall.scm			\
   gnu/packages/libffi.scm			\
   gnu/packages/libftdi.scm			\
+  gnu/packages/libical.scm			\
   gnu/packages/libidn.scm			\
   gnu/packages/libphidget.scm			\
   gnu/packages/libsigsegv.scm			\
diff --git a/gnu/packages/libical.scm b/gnu/packages/libical.scm
new file mode 100644
index 000..82ad18f
--- /dev/null
+++ b/gnu/packages/libical.scm
@@ -0,0 +1,52 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 David Thompson da...@gnu.org
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see http://www.gnu.org/licenses/.
+
+(define-module (gnu packages libical)
+  #:use-module (gnu packages)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages perl))
+
+(define-public libical
+  (package
+(name libical)
+(version 1.0.1)
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+https://github.com/libical/libical/releases/download/v;
+version /libical- version .tar.gz))
+  (sha256
+   (base32
+14lmjj63zyx88rf1z71l0v9ms4c2vpdhmixksjjxgywp5p2f7708
+(build-system cmake-build-system)
+(arguments
+ '(#:tests? #f)) ; test suite appears broken
+(native-inputs
+ `((perl ,perl)))
+(inputs
+ `((icu4c ,icu4c)))
+(home-page https://libical.github.io/libical/;)
+(synopsis iCalendar protocols and data formats implementation)
+(description
+ Libical is an Open Source implementation of the iCalendar protocols and
+protocol data units.)
+(license lgpl2.1)))
-- 
2.1.4


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate


[PATCH] gnu: Add soil.

2015-04-26 Thread David Thompson
From c218a8f88eb623da01baa7b1693805f4ec1c67de Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 26 Apr 2015 16:41:25 -0400
Subject: [PATCH] gnu: Add soil.

* gnu/packages/gl.scm (soil): New variable.
---
 gnu/packages/gl.scm | 45 -
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index e640f83..f4ca157 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -37,7 +37,8 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages xdisorg))
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages zip))
 
 (define-public glu
   (package
@@ -475,3 +476,45 @@ OpenGL graphics API.)
 (description
  A library for handling OpenGL function pointer management.)
 (license l:x11)))
+
+(define-public soil
+  (package
+(name soil)
+(version 1.0.7)
+(source (origin
+  (method url-fetch)
+  ;; No versioned archive available.
+  (uri http://www.lonesock.net/files/soil.zip;)
+  (sha256
+   (base32
+00gpwp9dldzhsdhksjvmbhsd2ialraqbv6v6dpikdmpncj6mnc52
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ; no tests
+   #:phases (modify-phases %standard-phases
+  (delete 'configure)
+  (add-before 'build 'init-build
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((out (assoc-ref outputs out)))
+(setenv CFLAGS -fPIC) ; needed for shared library
+;; Use alternate Makefile
+(copy-file projects/makefile/alternate Makefile.txt
+   src/Makefile)
+(chdir src)
+(substitute* '(Makefile)
+  ((INCLUDEDIR = /usr/include/SOIL)
+   (string-append INCLUDEDIR =  out /include/SOIL))
+  ((LIBDIR = /usr/lib)
+   (string-append LIBDIR =  out /lib))
+  ;; Remove these flags from 'install' commands.
+  ((-o root -g root) 
+(native-inputs
+ `((unzip ,unzip)))
+(inputs
+ `((mesa ,mesa)))
+(home-page http://www.lonesock.net/soil.html;)
+(synopsis OpenGL texture loading library)
+(description
+ SOIL is a tiny C library used primarily for uploading textures into
+OpenGL.)
+(license l:public-domain)))
-- 
2.1.4


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate


[PATCH] gnu: Add xxhash.

2015-04-26 Thread David Thompson
From 43b55a20d7d4c01b200768ccea733d261c12e699 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 26 Apr 2015 16:42:05 -0400
Subject: [PATCH] gnu: Add xxhash.

* gnu/packages/xxhash.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am   |  1 +
 gnu/packages/xxhash.scm | 63 +
 2 files changed, 64 insertions(+)
 create mode 100644 gnu/packages/xxhash.scm

diff --git a/gnu-system.am b/gnu-system.am
index ae6b4e2..a99e2bd 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -317,6 +317,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/xdisorg.scm			\
   gnu/packages/xorg.scm\
   gnu/packages/xfce.scm\
+  gnu/packages/xxhash.scm			\
   gnu/packages/yasm.scm\
   gnu/packages/yubico.scm			\
   gnu/packages/zile.scm\
diff --git a/gnu/packages/xxhash.scm b/gnu/packages/xxhash.scm
new file mode 100644
index 000..28241db
--- /dev/null
+++ b/gnu/packages/xxhash.scm
@@ -0,0 +1,63 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 David Thompson da...@gnu.org
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see http://www.gnu.org/licenses/.
+
+(define-module (gnu packages xxhash)
+  #:use-module (gnu packages)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages valgrind))
+
+(define-public xxhash
+  (package
+(name xxhash)
+(version r39)
+(source (origin
+  (method url-fetch)
+  (uri (string-append https://github.com/Cyan4973/xxHash/archive/;
+  version .tar.gz))
+  (file-name (string-append name - version .tar.gz))
+  (sha256
+   (base32
+06mw48qyb58w6rclfsplbmakczdy9rnb72dwqj5an4bfsax2vai3
+(build-system gnu-build-system)
+(arguments
+ `(#:test-target test
+   #:make-flags '(CC=gcc)
+   #:phases (modify-phases %standard-phases
+  (delete 'configure)
+  ;; There is no 'install' phase in the Makefile.
+  (replace 'install
+(lambda* (#:key outputs #:allow-other-keys)
+  (let* ((out (assoc-ref outputs out))
+ (bindir (string-append out /bin))
+ (xxhsum (string-append bindir /xxhsum)))
+(mkdir-p bindir)
+(copy-file xxhsum xxhsum)
+(symlink xxhsum (string-append bindir /xxh32sum))
+(symlink xxhsum (string-append bindir /xxh64sum))
+#t))
+(native-inputs
+ `((valgrind ,valgrind)))
+(home-page https://github.com/Cyan4973/xxHash;)
+(synopsis Extremely fast non-cryptographic hash algorithm)
+(description
+ xxHash is an extremely fast hash algorithm, running at RAM speed limits.
+It successfully passes the SMHasher test suite evaluating hash quality.)
+(license bsd-2)))
-- 
2.1.4


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate


[PATCH 2/2] gnu: Add bluez.

2015-04-26 Thread David Thompson
From 8c370d8b1f6af1f0ac36b79cd0f79fa0701c3323 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 26 Apr 2015 17:49:53 -0400
Subject: [PATCH 2/2] gnu: Add bluez.

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

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 2232e86..076b70f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -55,6 +55,8 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages asciidoc)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages libical)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -2161,3 +2163,39 @@ arrays when needed.)
 system calls, important for the performance of databases and other advanced
 applications.)
 (license lgpl2.1+)))
+
+(define-public bluez
+  (package
+(name bluez)
+(version 5.30)
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+https://www.kernel.org/pub/linux/bluetooth/bluez-;
+version .tar.xz))
+  (sha256
+   (base32
+0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy
+(build-system gnu-build-system)
+(arguments
+ '(#:configure-flags
+   (let ((out (assoc-ref %outputs out)))
+ (list --disable-systemd
+   ;; Install dbus/udev files to the correct location.
+   (string-append --with-dbusconfdir= out /etc)
+   (string-append --with-udevdir= out /lib/udev)
+(native-inputs
+ `((pkg-config ,pkg-config)
+   (gettext ,gnu-gettext)))
+(inputs
+ `((glib ,glib)
+   (dbus ,dbus)
+   (eudev ,eudev)
+   (libical ,libical)
+   (readline ,readline)))
+(home-page http://www.bluez.org/;)
+(synopsis Linux Bluetooth protocol stack)
+(description
+ BlueZ provides support for the core Bluetooth layers and protocols. It
+is flexible, efficient and uses a modular implementation.)
+(license gpl2+)))
-- 
2.1.4


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate


[PATCH] gnu: Add sfml.

2015-04-26 Thread David Thompson
From abc1bd07d05a834a3077b7e9526bd24806a80385 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 26 Apr 2015 16:38:43 -0400
Subject: [PATCH] gnu: Add sfml.

* gnu/packages/game-development.scm (sfml): New variable.
---
 gnu/packages/game-development.scm | 44 ++-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 0e6a1d5..276f537 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -25,7 +25,15 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages qt)
-  #:use-module (gnu packages compression))
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages zip)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages audio)
+  #:use-module (gnu packages pulseaudio))
 
 (define-public bullet
   (package
@@ -85,3 +93,37 @@ clone.)
 ;; As noted in 'COPYING', part of it is under GPLv2+, while the rest is
 ;; under BSD-2.
 (license license:gpl2+)))
+
+(define-public sfml
+  (package
+(name sfml)
+(version 2.2)
+(source (origin
+  (method url-fetch)
+  (uri (string-append http://mirror0.sfml-dev.org/files/SFML-;
+  version -sources.zip))
+  (sha256
+   (base32
+1xhkvgyfbhqsjdmfbxvk729kdrzh7kdyagxa3bvpzi6z43mh1frd
+(build-system cmake-build-system)
+(arguments
+ '(#:tests? #f)) ; no tests
+(native-inputs
+ `((unzip ,unzip)))
+(inputs
+ `((mesa ,mesa)
+   (glew ,glew)
+   (libx11 ,libx11)
+   (libxrandr ,libxrandr)
+   (eudev ,eudev)
+   (freetype ,freetype)
+   (libjpeg ,libjpeg)
+   (libsndfile ,libsndfile)
+   (openal ,openal)))
+(home-page http://www.sfml-dev.org;)
+(synopsis Simple and Fast Multimedia Library)
+(description
+ SFML provides a simple interface to the various computer components,
+to ease the development of games and multimedia applications.  It is composed
+of five modules: system, window, graphics, audio and network. )
+(license license:zlib)))
-- 
2.1.4


-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate


Re: Add guile-minikanren

2015-04-26 Thread David Thompson
Christopher Allan Webber cweb...@dustycloud.org writes:

 Okay, I believe I've taken all feedback into account.  Everything seems
 to work right now, and it even compiles the files to .go files.

 I think that's everything (but let me know if not!)

I cleaned up the build script and pushed this as commit 6bc2406.

Congrats on your first upstream package! Thanks! :)

-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate



Re: [PATCH] gnu: mpd: Add additional optional inputs.

2015-04-26 Thread Ricardo Wurmus
I'm unclear on how to treat optional inputs (in general and in this
particular case).  Should we offer mpd-minimal with minimal inputs and
mpd with everything, or a custom-mpd function to create a package
with a certain feature subset?

In general I think it is good to also have a minimal package for
customisation in addition to a default package offering a richer feature
set.

What do you think?




Re: [PATCH] Add extremetuxracer (Note: needs help!)

2015-04-26 Thread 宋文武
Christopher Allan Webber cweb...@dustycloud.org writes:

 Hello all!

 Can we really and truly claim ourselves to be a GNU/Linux distribution
 without the token inclusion of our beloved TuxRacer?  Egads!

 Well, I attempted to package it, but I'm running into trouble.  Perhaps
 someone here can help?

 Here is the problem I run into:
   
   checking for sdl-config... 
 /gnu/store/pvcr6n01ylrj3g9ggwp98bmrzyd0h29q-sdl-1.2.15/bin/sdl-config
   checking for SDL - version = 1.0.0... yes
   checking for pkg-config... no
   checking for SDLIMAGE... no
   configure: error: SDL_image not found
   phase `configure' failed after 7 seconds

 But sdl-image is in the inputs!  What am I doing wrong?
You need 'pkg-config', so add it to 'native-inputs'.

Look at the 'configure.ac', it contains:

  PKG_CHECK_MODULES([SDLIMAGE], [SDL_image], ...)

That's all I see :-)
 Thanks in advance for the help!
  - Chris

 From 59222dbabb1bc68fed4eae22ef2ce580e2219b7b Mon Sep 17 00:00:00 2001
 From: Christopher Allan Webber cweb...@dustycloud.org
 Date: Sun, 26 Apr 2015 23:40:40 -0500
 Subject: [PATCH] gnu: Add extremetuxracer

 * gnu/packages/games.scm (extremetuxracer): New variable.
 ---
  gnu/packages/games.scm | 49 +
  1 file changed, 49 insertions(+)

 diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
 index 192d0db..dfb711b 100644
 --- a/gnu/packages/games.scm
 +++ b/gnu/packages/games.scm
 @@ -9,6 +9,7 @@
  ;;; Copyright © 2014 Mark H Weaver m...@netris.org
  ;;; Copyright © 2015 Andreas Enge andr...@enge.fr
  ;;; Copyright © 2015 David Hashe david.ha...@dhashe.com
 +;;; Copyright © 2015 Christopher Allan Webber cweb...@dustycloud.org
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
 @@ -42,6 +43,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra)
 +  #:use-module (gnu packages libunwind)
#:use-module (gnu packages image)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
 @@ -65,6 +67,7 @@
#:use-module (gnu packages lua)
#:use-module (gnu packages video)
#:use-module (gnu packages xml)
 +  #:use-module (gnu packages tcl)
#:use-module (guix build-system trivial)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
 @@ -822,3 +825,49 @@ interfaces or even in Emacs.  It supports the standard 
 game storage format
  Modem Protocol).)
  (home-page http://www.gnu.org/software/gnugo/;)
  (license license:gpl3+)))
 +
 +(define-public extremetuxracer
 +  (package
 +(name extremetuxracer)
 +(version 0.6.0)
 +(source (origin
 +  (method url-fetch)
 +  (uri (string-append
 +
 http://downloads.sourceforge.net/project/extremetuxracer/releases/;
 +version
 +/etr- version .tar.xz))
 +  (sha256
 +   (base32
 +0fl9pwkywqnsmgr6plfj9zb05xrdnl5xb2hcmbjk7ap9l4cjfca4
 +(build-system gnu-build-system)
 +
 +(inputs `((freetype ,freetype)
 +  (mesa ,mesa)
 +  (glu ,glu)
 +  (libice ,libice)
 +  (libpng ,libpng)
 +  (sdl ,sdl)
 +  (sdl-mixer ,sdl-mixer)
 +  (sdl-image ,sdl-image)
 +  (libsm ,libsm)
 +  (libunwind ,libunwind)
 +  (libx11 ,libx11)
 +  (libxext ,libxext)
 +  (libxi ,libxi)
 +  (libxmu ,libxmu)
 +  (libxt ,libxt)
 +  (tcl ,tcl)
 +  (zlib ,zlib)))
 +(synopsis High speed arctic racing game based on Tux Racer)
 +;; Snarfed straight from Debian
 +(description Extreme Tux Racer, or etracer as it is called for short, is
 +a simple OpenGL racing game featuring Tux, the Linux mascot.  The goal of the
 +game is to slide down a snow- and ice-covered mountain as quickly as 
 possible,
 +avoiding the trees and rocks that will slow you down.
 +
 +Collect herrings and other goodies while sliding down the hill, but avoid 
 fish
 +bones.
 +
 +This game is based on the GPL version of the famous game TuxRacer.)
 +(home-page http://sourceforge.net/projects/extremetuxracer/;)
 +(license license:gpl2+)))
 -- 
 2.1.4



Re: [PATCH] gnu: Add sfml.

2015-04-26 Thread Ricardo Wurmus
Looks good to me.  Thanks for packaging it (it's been on my list for a
while now)!

~~ Ricardo






[PATCH] Add extremetuxracer (Note: needs help!)

2015-04-26 Thread Christopher Allan Webber
Hello all!

Can we really and truly claim ourselves to be a GNU/Linux distribution
without the token inclusion of our beloved TuxRacer?  Egads!

Well, I attempted to package it, but I'm running into trouble.  Perhaps
someone here can help?

Here is the problem I run into:
  
  checking for sdl-config... 
/gnu/store/pvcr6n01ylrj3g9ggwp98bmrzyd0h29q-sdl-1.2.15/bin/sdl-config
  checking for SDL - version = 1.0.0... yes
  checking for pkg-config... no
  checking for SDLIMAGE... no
  configure: error: SDL_image not found
  phase `configure' failed after 7 seconds

But sdl-image is in the inputs!  What am I doing wrong?

Thanks in advance for the help!
 - Chris

From 59222dbabb1bc68fed4eae22ef2ce580e2219b7b Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber cweb...@dustycloud.org
Date: Sun, 26 Apr 2015 23:40:40 -0500
Subject: [PATCH] gnu: Add extremetuxracer

* gnu/packages/games.scm (extremetuxracer): New variable.
---
 gnu/packages/games.scm | 49 +
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 192d0db..dfb711b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2014 Mark H Weaver m...@netris.org
 ;;; Copyright © 2015 Andreas Enge andr...@enge.fr
 ;;; Copyright © 2015 David Hashe david.ha...@dhashe.com
+;;; Copyright © 2015 Christopher Allan Webber cweb...@dustycloud.org
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu packages image)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages python)
@@ -65,6 +67,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages tcl)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
@@ -822,3 +825,49 @@ interfaces or even in Emacs.  It supports the standard game storage format
 Modem Protocol).)
 (home-page http://www.gnu.org/software/gnugo/;)
 (license license:gpl3+)))
+
+(define-public extremetuxracer
+  (package
+(name extremetuxracer)
+(version 0.6.0)
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+http://downloads.sourceforge.net/project/extremetuxracer/releases/;
+version
+/etr- version .tar.xz))
+  (sha256
+   (base32
+0fl9pwkywqnsmgr6plfj9zb05xrdnl5xb2hcmbjk7ap9l4cjfca4
+(build-system gnu-build-system)
+
+(inputs `((freetype ,freetype)
+  (mesa ,mesa)
+  (glu ,glu)
+  (libice ,libice)
+  (libpng ,libpng)
+  (sdl ,sdl)
+  (sdl-mixer ,sdl-mixer)
+  (sdl-image ,sdl-image)
+  (libsm ,libsm)
+  (libunwind ,libunwind)
+  (libx11 ,libx11)
+  (libxext ,libxext)
+  (libxi ,libxi)
+  (libxmu ,libxmu)
+  (libxt ,libxt)
+  (tcl ,tcl)
+  (zlib ,zlib)))
+(synopsis High speed arctic racing game based on Tux Racer)
+;; Snarfed straight from Debian
+(description Extreme Tux Racer, or etracer as it is called for short, is
+a simple OpenGL racing game featuring Tux, the Linux mascot.  The goal of the
+game is to slide down a snow- and ice-covered mountain as quickly as possible,
+avoiding the trees and rocks that will slow you down.
+
+Collect herrings and other goodies while sliding down the hill, but avoid fish
+bones.
+
+This game is based on the GPL version of the famous game TuxRacer.)
+(home-page http://sourceforge.net/projects/extremetuxracer/;)
+(license license:gpl2+)))
-- 
2.1.4



Replacing Bower with guix environment

2015-04-26 Thread Christopher Allan Webber
Hello all,

I'm interested in guix environment as a universal solution for
virtualenv/bower/etc.  There's good reasons to want this; aside from
Guix being awesome, packaging for web applications is getting more and
more insane and often involves many layers of package management, often
*multiple language package managers at once*.  It's a sad state of
affairs.  Why not have a universal solution?  guix environment could
be that, I hope?  But there are some challenges.

The virtualenv side (having libraries set up for development on the
Python end) is really easy with guix environment assuming those files
are there: you have your PYTHONPATH set up, done.

But the bower side of things is not so easy.  Most web applications
need to serve many assets to the browser: javascript like jquery, css
like bootstrap, fonts like fontawesome or really any other
fonts, not to mention any icon sets, etc.  Web applications need to
serve these in both a development way, usually using some simple
development server, in which case these have to be easily discovered and
served.  For production, these need to be served by
nginx/apache/whatever.  Describing to users how to deploy web
applications tends to be pretty hard, so for this last one you want to
make the configuration requirement as much of a one-liner as possible.
This usually means then that the static assets (jquery, fonts, etc) are
referenced from somewhere inside the package, usually in an extlib/
directory or such.

There are two common ways to do this:

 - The classic method of doing this is pretty gross: just check all
   those assets directly into your project, maybe in some sort of
   extlib/ directory.  I don't need to tell guix-devel just how bad of
   a solution this is!  And yet, most web developers (including me
   *shameface*) have done it, even in our free software projects.

 - The hip new way of doing things is to use Bower.  Bower is a
   package manager, but it's made specifically for static assets served
   to the user, such as css files, fonts, javascript like jquery, etc.
   Bower also puts these in an extlib/ or whatever, but it puts them in
   that place *for* you.

It's possible in Guix or Debian packages or whatever to rely on a system
installed jquery or etc, just a minor pain in the butt, linking in the
jquery packages and etc manually into that extlib place during building
the package/derivation.  Okay, not so bad.

But what about guix environment, where we're directly checked out
inside the package?  What we want to do is this:

  ~/devel/mediagoblin/$ guix environment -l package.scm

And this will set up the python dependencies for sure, and maybe it can
even install the jquery package and stuff, but if I run:

  # put your dev server command here
  ~/devel/mediagoblin/$ ./lazyserver.sh

Oh no!  jquery is installed, but it's not linked into extlib/jquery/
where I expected it.  So suddenly I'm looking at my development instance
and none of my javascript is working and I'm very confused!

It could be that we have jquery packaged, that it's in my
~/.guix-profile/ or etc, but my application doesn't know about it.  This
is guix environment for development, so there's no munging the package
during install, I'm hacking *in* the project.

So what can we do?  I still think serving an extlib/ directory or some
easily findable directory is the best way to keep deployment clean, and
anyway, guix package can handle setting up the symlinks for that, it's
just guix environment that has no way to play along.

What can we do?  My first reaction on IRC is that maybe there could be
some sort of hook that's run after 'guix environment' that could link
these things into the package.  This was not well received, and for
good reason: it makes guix environment non-functional.

Dave Thompson has made what I think is probably a good suggestion: there
should be some sort of environment variable set with something
searchable.  This way, during the ./configure --link-extlib  make or
python setup.py develop or whatever such setup-for-development
process, there's a way to see, aha here's the jquery, symlink that here;
here's the font-awesome, symlink that here; here's the bootstrap,
symlink that here...

I don't know what this environment variable would be called.
WEB_ASSETS_PATH?  The other tricky thing is, it's easy to say put CSS
files and jquery in that thing, but what about fonts?  Those have
their own location already.  Should both be added to the path?

Anyay, I'd love to have a way to do this with Guix.  If someone can find
a nice solution, I'll make it an option for development with GNU
MediaGoblin instead of using virtualenv/bower. ;)  But we need to know
the right path first!

Looking forward to your ideas,
 - Chris