[PATCH 1/1] gnu: swig: Update to 3.0.10.

2016-11-20 Thread Leo Famulari
* gnu/packages/swig.scm (swig): Update to 3.0.10.
---
 gnu/packages/swig.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm
index a615796..acf0529 100644
--- a/gnu/packages/swig.scm
+++ b/gnu/packages/swig.scm
@@ -31,7 +31,7 @@
 (define-public swig
   (package
 (name "swig")
-(version "3.0.5")
+(version "3.0.10")
 (source (origin
  (method url-fetch)
  (uri (string-append "mirror://sourceforge/" name "/" name "/"
@@ -39,7 +39,7 @@
  name "-" version ".tar.gz"))
  (sha256
   (base32
-   "0g1a69vrqxgsnr1wkx851ljn73a2x3jqzxa66s2l3w0kyblbjk4z"
+   "0k7ljh07rla6223lhvljgg881b2qr7hmrfgic9a0j1pckpislf99"
 (build-system gnu-build-system)
 (native-inputs `(("boost" ,boost)
  ("pcre" ,pcre "bin")))   ;for 'pcre-config'
-- 
2.10.2




Re: (Exposing?) config files and non-start/stop operations

2016-11-20 Thread Chris Marusich
Christopher Allan Webber  writes:

> Christopher Allan Webber writes:
>
>> Hello,
>>
>> I'm writing a service for dirvish, and I realized that if I'm following
>> current guix service routes, I might not be able to run all the
>> operations I need to.  

Why not?  I read the rest of your email but this wasn't clear to me.

>> It seems that the current route for Guix is to have your service
>> write out a config that more or less becomes part of the environment
>> for starting / stopping a daemon via Shepherd.  But what if that's
>> not all you need to do?
>>
>> Aside from just "running as a daemon", plenty of (especially
>> applications which manage state) will need to have other commands that
>> are unlikely to be run from shepherd.  For example:
>>
>>  - Initializing a data store.  For example, in dirvish I need to run
>>a command to initialize a "vault" where I will be storing my data.
>>  - Manually invoking a garbage collection utility.
>>  - Manually invoking an integrity check utility.
>>  - Possibly some side effect involving querying the network.
>>  - Running schema migrations.
>>
>> All sorts of things!  Most of them (all?) involve state or side effects,
>> but plenty of our most important services will be "state overlords" of
>> some type.

Why do those activities need to be represented as actions in Shepherd?
If we're running a daemon or service that already exposes a mechanism
for manually running tasks like these, then can't we just use "the usual
mechanism" for doing it?  For example, if we're running a daemon that
already provides a script to perform garbage collection, can't we just
invoke that script?  It isn't clear to me why we would need to model
domain-specific actions like that in Shepherd, although I can see why it
might be convenient.  Am I missing something?

-- 
Chris


signature.asc
Description: PGP signature


Re: Website development questions

2016-11-20 Thread Luis Felipe López Acevedo

On 2016-11-20 15:17, Luis Felipe López Acevedo wrote:

On 2016-11-15 04:57, l...@gnu.org wrote:

Hello!

Luis Felipe López Acevedo  skribis:


I cloned the website to try a fix for bug #22115, and wanted to ask
first what process do you follow to try out the whole website 
locally?

When I build and serve the website with Haunt, I face the following
problems:

1. Pages don't load static files because they are looking for the
"static" directory in "/software/guix/static". Do I need to set some
variable first?


To test locally, you need to do:

  $ GUIX_WEB_SITE_LOCAL=yes haunt build
  $ haunt serve

There should be no broken links, except for links to the manual or 
other

parts of gnu.org.

I suppose this should go to README…


2. The Packages and Packages Issues pages, which are defined in (www
packages) are commented out. How do you deal with those in
development?


That’s on purpose, so that people don’t need to have Guix installed to
hack on the web site.

We build these pages separately using the ‘export-web-page’ procedure.


Ludo, I'm not sure how to do this part. Do I just import (www) and
(www packages) in a REPL, and call `export-web-page` for each page
(packages index and issues)? You don't have to modify `www.scm` at all
(uncomment elements in the %web-pages list, for example)?

Also, trying just that, when I try importing (www packages), (guix ui)
is not found in my system:

scheme@(guile-user)> (use-modules (www packages))
;;; compiling 
/home/anonimo/Documentos/guix-artwork/website/www/packages.scm

;;; WARNING: compilation of
/home/anonimo/Documentos/guix-artwork/website/www/packages.scm failed:
;;; ERROR: no code for module (guix ui)
While compiling expression:
ERROR: no code for module (guix ui)

I'm using Guile 2.0.13 installed from Guix binary on Debian 8, and
guix is version 20161113.19. Where are Guix modules?

Thanks,


In the meantime, I cloned guix repo, and added the source directory to 
Guile's load path. The error above is gone, but now I get this one:


scheme@(guile-user)> (use-modules (www) (www packages))
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;   or pass the --no-auto-compile argument to disable.
;;; compiling 
/home/anonimo/Documentos/guix-artwork/website/www/packages.scm

;;; compiling /home/anonimo/Documentos/guix/guix/ui.scm
;;; compiling /home/anonimo/Documentos/guix/guix/utils.scm
;;; WARNING: compilation of 
/home/anonimo/Documentos/guix/guix/utils.scm failed:

;;; ERROR: no code for module (guix config)
;;; WARNING: compilation of 
/home/anonimo/Documentos/guix/guix/ui.scm failed:

;;; ERROR: no code for module (guix config)
;;; compiling /home/anonimo/Documentos/guix/guix/store.scm
;;; WARNING: compilation of 
/home/anonimo/Documentos/guix/guix/store.scm failed:

;;; ERROR: no code for module (guix config)
;;; WARNING: compilation of 
/home/anonimo/Documentos/guix-artwork/website/www/packages.scm failed:

;;; ERROR: no code for module (guix config)
While compiling expression:
ERROR: no binding `guix-warning-port' in module (guix ui)

And still curious about how to import guix modules without using a 
checkout :)



--
Luis Felipe López Acevedo
http://sirgazil.bitbucket.org/



Re: (Exposing?) config files and non-start/stop operations

2016-11-20 Thread Christopher Allan Webber
Christopher Allan Webber writes:

> Hello,
>
> I'm writing a service for dirvish, and I realized that if I'm following
> current guix service routes, I might not be able to run all the
> operations I need to.  It seems that the current route for Guix is to
> have your service write out a config that more or less becomes part of
> the environment for starting / stopping a daemon via Shepherd.  But what
> if that's not all you need to do?
>
> Aside from just "running as a daemon", plenty of (especially
> applications which manage state) will need to have other commands that
> are unlikely to be run from shepherd.  For example:
>
>  - Initializing a data store.  For example, in dirvish I need to run
>a command to initialize a "vault" where I will be storing my data.
>  - Manually invoking a garbage collection utility.
>  - Manually invoking an integrity check utility.
>  - Possibly some side effect involving querying the network.
>  - Running schema migrations.
>
> All sorts of things!  Most of them (all?) involve state or side effects,
> but plenty of our most important services will be "state overlords" of
> some type.
>
> So it seems to me that one of two things will be needed... either:
>
>  - Expose the configuration file directly, possibly by putting in
>`${profile}/etc/foo'
>  - Expose "wrapped" utilities.  For example, instead of invoking
>"dirvish" directly, I might invoke a wrapped dirvish.

Talking about this with Ricardo Wurmus on irc, the idea of launching
such a utility from shepherd itself came to mind.

So imagine you want to run a tool like this:

  foo-db --config=/path/to/foodb-config.cfg gc --aggressive

It looks like shepherd has an "action" slot/method:

  
https://www.gnu.org/software/shepherd/manual/html_node/Slots-of-services.html#Slots-of-services
  
https://www.gnu.org/software/shepherd/manual/html_node/Service-Convenience.html#Service-Convenience

So I wonder if we could add additional actions, and do something like
this:

  herd gc foo-db --aggressive

Or, even more lazy (but maybe not as good?):

  herd run-cmd foo-db gc --aggressive

Anyway, either of these examples would call the appropriate command but
implicitly pass in the --config parameter appropriately.

It looks like (gnu services shepherd) doesn't expose the "actions" slot,
but couldn't we do that?

This seems like the right route.  What do others think?

 - Chris



Re: Website development questions

2016-11-20 Thread Luis Felipe López Acevedo

On 2016-11-15 04:57, l...@gnu.org wrote:

Hello!

Luis Felipe López Acevedo  skribis:


I cloned the website to try a fix for bug #22115, and wanted to ask
first what process do you follow to try out the whole website locally?
When I build and serve the website with Haunt, I face the following
problems:

1. Pages don't load static files because they are looking for the
"static" directory in "/software/guix/static". Do I need to set some
variable first?


To test locally, you need to do:

  $ GUIX_WEB_SITE_LOCAL=yes haunt build
  $ haunt serve

There should be no broken links, except for links to the manual or 
other

parts of gnu.org.

I suppose this should go to README…


2. The Packages and Packages Issues pages, which are defined in (www
packages) are commented out. How do you deal with those in
development?


That’s on purpose, so that people don’t need to have Guix installed to
hack on the web site.

We build these pages separately using the ‘export-web-page’ procedure.


Ludo, I'm not sure how to do this part. Do I just import (www) and (www 
packages) in a REPL, and call `export-web-page` for each page (packages 
index and issues)? You don't have to modify `www.scm` at all (uncomment 
elements in the %web-pages list, for example)?


Also, trying just that, when I try importing (www packages), (guix ui) 
is not found in my system:


scheme@(guile-user)> (use-modules (www packages))
;;; compiling 
/home/anonimo/Documentos/guix-artwork/website/www/packages.scm
;;; WARNING: compilation of 
/home/anonimo/Documentos/guix-artwork/website/www/packages.scm failed:

;;; ERROR: no code for module (guix ui)
While compiling expression:
ERROR: no code for module (guix ui)

I'm using Guile 2.0.13 installed from Guix binary on Debian 8, and guix 
is version 20161113.19. Where are Guix modules?


Thanks,


--
Luis Felipe López Acevedo
http://sirgazil.bitbucket.org/



[PATCH] gnu: shared-mime-info: Update to 1.7

2016-11-20 Thread Hartmut Goebel
* gnu/packages/gnome.scm (shared-mime-info): Update to 1.7.
---
 gnu/packages/gnome.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3aa0f56..8b94105 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -682,14 +682,14 @@ update-desktop-database: updates the database containing 
a cache of MIME types
 (define-public shared-mime-info
   (package
 (name "shared-mime-info")
-(version "1.6")
+(version "1.7")
 (source (origin
  (method url-fetch)
  (uri (string-append "https://freedesktop.org/~hadess/;
  "shared-mime-info-" version ".tar.xz"))
  (sha256
   (base32
-   "0k637g047gci8g69bg4g19akylpfraxm40hd30j3i4v7cidziy5j"
+   "0bjd2j1rqrj150mr04j7ib71lfdlgbf235fg8d70g8mszqf7ik7a"
 (build-system gnu-build-system)
 (arguments
  ;; The build system appears not to be parallel-safe.
-- 
2.7.4




Chez scheme

2016-11-20 Thread Efraim Flashner
I dug a bit more into Chez sheme and the failing armhf build, and it
almost looks like it could be hacked into cross compiling for itself.
Then I looked a bit closer here
(https://github.com/cisco/ChezScheme/blob/master/c/Mf-arm32le#L17) and
it turns out that it targets the Raspberry Pi and not ARMv7. I don't
have any armhf hardware capable of running guix to see if it can be made
to work. Anyone want to take a stab at it? Or any votes for marking it
unsupported?

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


(Exposing?) config files and non-start/stop operations

2016-11-20 Thread Christopher Allan Webber
Hello,

I'm writing a service for dirvish, and I realized that if I'm following
current guix service routes, I might not be able to run all the
operations I need to.  It seems that the current route for Guix is to
have your service write out a config that more or less becomes part of
the environment for starting / stopping a daemon via Shepherd.  But what
if that's not all you need to do?

Aside from just "running as a daemon", plenty of (especially
applications which manage state) will need to have other commands that
are unlikely to be run from shepherd.  For example:

 - Initializing a data store.  For example, in dirvish I need to run
   a command to initialize a "vault" where I will be storing my data.
 - Manually invoking a garbage collection utility.
 - Manually invoking an integrity check utility.
 - Possibly some side effect involving querying the network.
 - Running schema migrations.

All sorts of things!  Most of them (all?) involve state or side effects,
but plenty of our most important services will be "state overlords" of
some type.

So it seems to me that one of two things will be needed... either:

 - Expose the configuration file directly, possibly by putting in
   `${profile}/etc/foo'
 - Expose "wrapped" utilities.  For example, instead of invoking
   "dirvish" directly, I might invoke a wrapped dirvish.

What are our thoughts on how to deal with this?  This is going to be
very important when moving towards GuixSD as a platform for server
deployment.

 - Chris

PS: Note that for either of the above suggested methods, this will be
extra tricky when we have users running multiple services of the same
application.  For example, we might have users running multiple
Wordpress installs or mail daemons or MediaGoblin instances on the same
machine, and I'm not really sure how you'd find which thing you're
looking for there (but I guess you have the same problem with which
identifier would be used in shepherd start/stop anyway).



[PATCH] services: Make dovecot and cups configuration abstractions available

2016-11-20 Thread Julien Lepiller
Hi,

since I will probably use it in openvpn-service and maybe in
nginx-service, I moved the definitions of the documentation that was
duplicated in cups and dovecot to services.scm. Is it the best place
for it?>From 9acc9456f4e61506105bc109298aedb66e31efd0 Mon Sep 17 00:00:00 2001
From: Julien Lepiller 
Date: Sun, 20 Nov 2016 17:56:08 +0100
Subject: [PATCH] services: Make dovecot and cups configuration abstractions
 available.

* gnu/services.scm: Add configuration-field, configuration-missing-field,
configuration-field-error, serialize-confgiuration, define-configuration,
validate-configuration, validate-configuration and generate-documetation.
* gnu/services/cups.scm: Use it.
* gnu/services/mail.scm: Use it.
---
 gnu/services.scm  | 134 ++-
 gnu/services/cups.scm | 162 ---
 gnu/services/mail.scm | 170 ++
 3 files changed, 220 insertions(+), 246 deletions(-)

diff --git a/gnu/services.scm b/gnu/services.scm
index 693a7f8..abab1a6 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -28,6 +28,8 @@
   #:use-module (guix modules)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (texinfo)
+  #:use-module (texinfo serialize)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-9 gnu)
@@ -81,7 +83,16 @@
 %activation-service
 etc-service
 
-file-union))  ;XXX: for lack of a better place
+file-union  ;XXX: for lack of a better place
+  
+configuration-field
+configuration-field-name
+configuration-missing-field
+configuration-field-error
+serialize-configuration
+define-configuration
+validate-configuration
+generate-documentation))
 
 ;;; Comment:
 ;;;
@@ -612,4 +623,125 @@ TARGET-TYPE; return the root service adjusted accordingly."
(_ "more than one target service of type '~a'")
(service-type-name target-type)
 
+(define-condition-type  
+  configuration-error?)
+
+(define (configuration-error message)
+  (raise (condition ( (message message))
+(
+
+(define (configuration-field-error field val)
+  (configuration-error
+(format #f "Invalid value for field ~a: ~s" field val)))
+
+(define (configuration-missing-field kind field)
+  (configuration-error
+(format #f "~a configuration missing required field ~a" kind field)))
+
+(define-record-type* 
+  configuration-field make-configuration-field configuration-field?
+  (name configuration-field-name)
+  (type configuration-field-type)
+  (getter configuration-field-getter)
+  (predicate configuration-field-predicate)
+  (serializer configuration-field-serializer)
+  (default-value-thunk configuration-field-default-value-thunk)
+  (documentation configuration-field-documentation))
+
+(define (serialize-configuration config fields)
+  (for-each (lambda (field)
+  ((configuration-field-serializer field)
+   (configuration-field-name field)
+   ((configuration-field-getter field) config)))
+fields))
+
+(define (validate-configuration config fields)
+  (for-each (lambda (field)
+  (let ((val ((configuration-field-getter field) config)))
+(unless ((configuration-field-predicate field) val)
+  (configuration-field-error
+(configuration-field-name field) val
+fields))
+
+(define-syntax define-configuration
+  (lambda (stx)
+(define (id ctx part . parts)
+  (let ((part (syntax->datum part)))
+(datum->syntax
+ ctx
+ (match parts
+   (() part)
+   (parts (symbol-append part
+ (syntax->datum (apply id ctx parts
+(syntax-case stx ()
+  ((_ stem (field (field-type def) doc) ...)
+   (with-syntax (((field-getter ...)
+  (map (lambda (field)
+ (id #'stem #'stem #'- field))
+   #'(field ...)))
+ ((field-predicate ...)
+  (map (lambda (type)
+ (id #'stem type #'?))
+   #'(field-type ...)))
+ ((field-serializer ...)
+  (map (lambda (type)
+ (id #'stem #'serialize- type))
+   #'(field-type ...
+   #`(begin
+   (define-record-type* #,(id #'stem #'< #'stem #'>)
+ #,(id #'stem #'% #'stem)
+ #,(id #'stem #'make- #'stem)
+ #,(id #'stem #'stem #'?)
+ (field field-getter (default def))
+ ...)
+   (define 

Re: [PATCH] Update lilypond to 2.19.50

2016-11-20 Thread Marius Bakke
Nicolas Goaziou  writes:

> Hello,
>
> Marius Bakke  writes:
>
>> Thanks for this! It seems they released 2.19.51 today, can you send a
>> patch for that instead? :-)
>
> Here it is.

Thanks, applied!


signature.asc
Description: PGP signature


Re: [PATCH] Add php

2016-11-20 Thread Marius Bakke
Marius Bakke  writes:

>>> > Failures in tests caused by external gd are not too serious to
>>> > require us to switch to the bundled one I think. We may not even
>>> > need to patch our libgd with php specific patches, since the
>>> > failures are only slight deviation from the spec on corner cases.
>>> > If you prefer that we apply these patches too, then we could, and I
>>> > would still try to keep that up to date.
>>> 
>>> OK. Let's use external gd for now barring any serious issues.
>>> 
>>> >
>>> > What I am more worried about are the iconv crashes. That may be due
>>> > to lacking locales though.
>>> 
>>> You could try commenting them out and adding "glibc-locales" to
>>> native-inputs. Not sure if they will get picked up by that however.
>>> 
>>> A better test may be to try out that particular functionality using
>>> the installed version of php. If that works, we can be reasonably
>>> sure that dropping the tests is fine.
>>> 
>>> Attached is the final product, after adding a "gd-for-php" variable
>>> with the two upstream patches, as well as sqlite-3.15.1 (separate
>>> patch).
>>> 
>>> I'll push this tomorrow if there are no further comments. Thanks for
>>> your perseverance :)
>> Just one question: why defining gd-for-php with define, and not
>> define-public?
>
> It's to prevent it from showing up when people are searching for 'gd',
> and also to prevent it from being included by other files.
>
> It's only a temporary measure until the next version is released, so I
> saw no reason to export it.
>
> I'm on my way out, but will commit this tomorrow most likely :-)

Sorry for the delay, PHP is in master now!


signature.asc
Description: PGP signature


[PATCH] gnu: Remove redundancy where mkdir-p is followed by install-file .

2016-11-20 Thread Petter

Forgot the patch in the initial message :/From 595d438789c7c9a293ae7fac500ace7422073624 Mon Sep 17 00:00:00 2001
From: Petter 
Date: Sun, 20 Nov 2016 13:39:13 +0100
Subject: [PATCH] gnu: Remove redundancy where mkdir-p  is followed by
 install-file  .

* gnu/packages/bioinformatics.scm (bwa)[source]: Remove redundant mkdir-p.
* gnu/packages/bioinformatics.scm (eigensoft)[source]: Likewise.
* gnu/packages/bioinformatics.scm (snap-aligner)[source]: Likewise.
* gnu/packages/bioinformatics.scm (pardre)[source]: Likewise.
* gnu/packages/bioinformatics.scm (piranha)[source]: Likewise.
* gnu/packages/maths.scm (hypre)[source]: Likewise.
* gnu/packages/mp3.scm (mpc123)[source]: Likewise.
* gnu/packages/music.scm (tuxguitar)[source]: Likewise.
* gnu/packages/pdf.scm (impressive)[source]: Likewise.
* gnu/packages/qemu.scm (qemu)[source]: Likewise.
* gnu/packages/tls.scm (openssl)[source]: Likewise.
---
 gnu/packages/bioinformatics.scm | 7 ---
 gnu/packages/maths.scm  | 1 -
 gnu/packages/mp3.scm| 1 -
 gnu/packages/music.scm  | 1 -
 gnu/packages/pdf.scm| 1 -
 gnu/packages/qemu.scm   | 1 -
 gnu/packages/tls.scm| 1 -
 7 files changed, 13 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 64c7bba..97d3e48 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1261,9 +1261,6 @@ splice junctions between exons.")
   (assoc-ref outputs "out") "/share/doc/bwa"))
 (man (string-append
   (assoc-ref outputs "out") "/share/man/man1")))
-(mkdir-p bin)
-(mkdir-p doc)
-(mkdir-p man)
 (install-file "bwa" bin)
 (install-file "README.md" doc)
 (install-file "bwa.1" man)))
@@ -2155,7 +2152,6 @@ of nucleic acid binding proteins.")
  (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
   (bin  (string-append out "/bin")))
- (mkdir-p bin)
  (for-each (lambda (file)
  (install-file file bin))
(find-files "../bin" ".*"))
@@ -4834,7 +4830,6 @@ optionally compressed by gzip.")
(lambda* (#:key outputs #:allow-other-keys)
  (let* ((out (assoc-ref outputs "out"))
 (bin (string-append out "/bin")))
-   (mkdir-p bin)
(install-file "snap-aligner" bin)
(install-file "SNAPCommand" bin)
#t))
@@ -5694,7 +5689,6 @@ Needleman-Wunsch).")
  (replace 'install
(lambda* (#:key outputs #:allow-other-keys)
  (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-   (mkdir-p bin)
(install-file "ParDRe" bin)
#t))
 (inputs
@@ -7572,7 +7566,6 @@ intervals (e.g. genes, sequence alignments).")
  (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
   (bin (string-append out "/bin")))
- (mkdir-p bin)
  (for-each (lambda (file)
  (install-file file bin))
(find-files "bin" ".*")))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index a1bd784..0c51f6d 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2723,7 +2723,6 @@ set.")
  ;; Custom install because docs/Makefile doesn't honor ${docdir}.
  (let* ((doc (assoc-ref outputs "doc"))
 (docdir (string-append doc "/share/doc/hypre-" ,version)))
-   (mkdir-p docdir)
(with-directory-excursion "docs"
  (for-each (lambda (base)
  (install-file (string-append base ".pdf") docdir)
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index ceef896..7f0099e 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -441,7 +441,6 @@ format.")
(lambda* (#:key outputs #:allow-other-keys)
  (let* ((out (assoc-ref outputs "out"))
 (bin (string-append out "/bin")))
-   (mkdir-p bin)
(install-file "mpc123" bin)
#:tests? #f))
 (native-inputs
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4ec6d6e..1a2a33f 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1216,7 +1216,6 @@ is subjective.")
 (lib   (string-append share "/java"))
 (swt   (assoc-ref inputs "java-swt")))
(mkdir-p bin)
-   (mkdir-p lib)
;; install all jars
(for-each (lambda (file)
(install-file file lib))
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 

[PATCH] gnu: Remove redundancy where mkdir-p is followed by install-file .

2016-11-20 Thread Petter

Hi.

Following up on an encouragement by Leo to remove a redundancy in the 
package

recipes.

In several places (mkdir-p) is used right before (install-file), to the 
same

directory. However, (install-file) does (mkdir-p) itself, which makes an
explicit (mkdir-p) redundant.


For reference:

=== guix/build/utils.scm ===
(define (install-file file directory)
  "Create DIRECTORY if it does not exist and copy FILE in there under 
the same

name."
  (mkdir-p directory)
  (copy-file file (string-append directory "/" (basename file



I assume the (mkdir-p)s here could be removed as well.

=== gnu/packages/bioinformatics.scm ===
(mkdir-p lib)
(mkdir-p include)
(for-each (cut install-file <> lib)
  (find-files "." "\\.o$"))
(for-each (cut install-file <> include)
  (find-files "." "\\.hpp$")))


And this (mkdir-p).

=== gnu/packages/ocaml.scm ===
 (mkdir-p doc)
 ;; This file needs write-permissions, because it's
 ;; overwritten by 'docs' during documentation 
generation.

 (chmod "src/strings.ml" #o600)
 (and (zero? (system* "make" "docs"
  "TEXDIRECTIVES=draftfalse"))
  (begin
(for-each (lambda (f)
(install-file f doc))


I did not include them because they're not trivial (to me).



I have not build all the affected packages! It's all a little too much.
Hopefully, someone about to compile these packages can include this 
patch first.



Also, I'm inexperienced with this, so please be extra alert.


Best,
Petter


P.S. If it's of interest to anyone. I used this sed script to locate 
areas with

a possible redundant (mkdir-p):

sed -n '/mkdir-p/{ h; :a; //!{n; H; ba;}; x; /install-file/{F; p;}; 
};'

gnu/packages/*.scm



Re: [PATCH] Update lilypond to 2.19.50

2016-11-20 Thread Nicolas Goaziou
Hello,

Marius Bakke  writes:

> Thanks for this! It seems they released 2.19.51 today, can you send a
> patch for that instead? :-)

Here it is.

> Perhaps we should switch to the stable branch when 2.20.x is out.

Fine by me.

Regards,

-- 
Nicolas Goaziou0x80A93738
>From 75932bedeaa03ef2ce66b9a69e2061abef1fc6cc Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou 
Date: Sun, 20 Nov 2016 15:52:36 +0100
Subject: [PATCH] gnu: lilypond: Update to 2.19.51.

* gnu/packages/music.scm (lilypond): Update to 2.19.51.
---
 gnu/packages/music.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4ec6d6e..b32b084 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -504,7 +504,7 @@ interface.  It is implemented as a frontend to @code{klick}.")
 (define-public lilypond
   (package
 (name "lilypond")
-(version "2.19.33")
+(version "2.19.51")
 (source (origin
   (method url-fetch)
   (uri (string-append
@@ -513,7 +513,7 @@ interface.  It is implemented as a frontend to @code{klick}.")
 name "-" version ".tar.gz"))
   (sha256
(base32
-"0s4vbbfy4xwq4da4kmlnndalmcyx2jaz7y8praah2146qbnr90xh"
+"1b4jvc0fixbnp8x457fzk5wgb4zd03npwwivp60kc27fmv63w5l1"
 (build-system gnu-build-system)
 (arguments
  `(#:tests? #f ; out-test/collated-files.html fails
-- 
2.10.1



Re: [PATCH] Update lilypond to 2.19.50

2016-11-20 Thread Marius Bakke
Nicolas Goaziou  writes:

> Hello,
>
> The following patch updates lilypond to 2.19.50.

Thanks for this! It seems they released 2.19.51 today, can you send a
patch for that instead? :-)

Perhaps we should switch to the stable branch when 2.20.x is out.


signature.asc
Description: PGP signature


Re: [PATCH] gnu: services: Add git-service.

2016-11-20 Thread ng0
iyzs...@member.fsf.org (宋文武) writes:

> ng0  writes:
>
>>> [...]
>>> +
>>> +@deftp {Data Type} git-daemon-configuration
>>> +Data type representing the configuration of git-demon.
>>
>> Typo, it should be "git-daemon".
>>
>
> OK.
>>> +
>>> +@table @asis
>>> +@item @code{package} (default: @var{git})
>>> +Package object of the Git distributed version control system.
>>> +
>>> +@item @code{export-all?} (default: @var{#f})
>>> +Whether to allow access for all Git repositories, even if they do not
>>> +have the @file{git-daemon-export-ok} file.
>>> +
>>> +@item @code{base-path} (default: @file{/srv/git})
>>
>> Why /srv ? Will the other services (mail, web, etc) use /srv
>> aswell or do they use /var ? I used /var/git because of /var/www
>> and iirc this is also in the upstream documentation.
>>
>
> it's for serving files to public, our nginx-service use '/srv/http' too.

That's okay for me then.

>> [...]
>>
>> Ah, nice. So you basically ended up with what I wanted in the
>> first revision of the git-service.
>> Documentation looks good to me except this one question about
>> location, and the one typo.
>
> Cool, thanks for your work and feedback!
>
>>> [...]
>>> +(define %git-daemon-accounts
>>> +  ;; User account and group for git-daemon.
>>> +  (list (user-group
>>> + (name "git-daemon")
>>> + (system? #t))
>>> +(user-account
>>> + (name "git-daemon")
>>> + (system? #t)
>>> + (group "git-daemon")
>>> + (comment "Git daemon user")
>>> + (home-directory "/var/empty")
>>> + (shell (file-append shadow "/sbin/nologin")
>>
>> Why? I think it should have a home (/var/git (or whereever else))
>> and use the git-shell so that the ssh functionality is enabled,
>> which can be used for minimal servers, so you don't actually need
>> to add the git account.
>> It's also expected that the name is "git" for this reason and not
>> "git-daemon".
>> iirc this affects more software than just git-daemon, every scm
>> which does not ship its own git daemon uses "git-daemon" by git
>> upstream. It's reasonable not to break with expectations (and
>> keep the name short) and give it the name "git", group-name could
>> be anything though.
>>
>
> Um, the git-daemon really has nothing to do with git-shell and ssh
> access.  If I have ssh service running, I can access all the
> repositories the login user can access without git-daemon.  If I want
> annoymous ssh access, I can add a 'git' user using 'git-shell', which
> rely the exist ssh service, so I leave it..  hope it make sense.
>
>
> Thanks!
>

Okay, I can understand this. If there should be the need to
change this, we can always apply it later.

Looks good to me, just the one typo which can be fixed before
applying. I will build a vm with this later to verify that it
works, but in theory it should just work.

-- 
♥Ⓐ  ng0  | ng0.chaosnet.org



Re: [PATCH] gnu: services: Add git-service.

2016-11-20 Thread 宋文武
ng0  writes:

>> [...]
>> +
>> +@deftp {Data Type} git-daemon-configuration
>> +Data type representing the configuration of git-demon.
>
> Typo, it should be "git-daemon".
>

OK.
>> +
>> +@table @asis
>> +@item @code{package} (default: @var{git})
>> +Package object of the Git distributed version control system.
>> +
>> +@item @code{export-all?} (default: @var{#f})
>> +Whether to allow access for all Git repositories, even if they do not
>> +have the @file{git-daemon-export-ok} file.
>> +
>> +@item @code{base-path} (default: @file{/srv/git})
>
> Why /srv ? Will the other services (mail, web, etc) use /srv
> aswell or do they use /var ? I used /var/git because of /var/www
> and iirc this is also in the upstream documentation.
>

it's for serving files to public, our nginx-service use '/srv/http' too.

> [...]
>
> Ah, nice. So you basically ended up with what I wanted in the
> first revision of the git-service.
> Documentation looks good to me except this one question about
> location, and the one typo.

Cool, thanks for your work and feedback!

>> [...]
>> +(define %git-daemon-accounts
>> +  ;; User account and group for git-daemon.
>> +  (list (user-group
>> + (name "git-daemon")
>> + (system? #t))
>> +(user-account
>> + (name "git-daemon")
>> + (system? #t)
>> + (group "git-daemon")
>> + (comment "Git daemon user")
>> + (home-directory "/var/empty")
>> + (shell (file-append shadow "/sbin/nologin")
>
> Why? I think it should have a home (/var/git (or whereever else))
> and use the git-shell so that the ssh functionality is enabled,
> which can be used for minimal servers, so you don't actually need
> to add the git account.
> It's also expected that the name is "git" for this reason and not
> "git-daemon".
> iirc this affects more software than just git-daemon, every scm
> which does not ship its own git daemon uses "git-daemon" by git
> upstream. It's reasonable not to break with expectations (and
> keep the name short) and give it the name "git", group-name could
> be anything though.
>

Um, the git-daemon really has nothing to do with git-shell and ssh
access.  If I have ssh service running, I can access all the
repositories the login user can access without git-daemon.  If I want
annoymous ssh access, I can add a 'git' user using 'git-shell', which
rely the exist ssh service, so I leave it..  hope it make sense.


Thanks!



Re: [PATCH] improve nginx-service

2016-11-20 Thread Julien Lepiller
On Sun, 06 Nov 2016 18:19:03 +0100
l...@gnu.org (Ludovic Courtès) wrote:

> Hi,
> 
> Tobias Geerinckx-Rice  skribis:
> 
> > However, a web search for ‘vhost site:nginx.org’ returns the
> > following as a first result[0]:
> >
> >Note: “VirtualHost” is an Apache term. NGINX does not have
> > Virtual hosts, it has “Server Blocks” that use the server_name and
> > listen directives to bind to tcp sockets.
> >
> > I don't use Apache, so that explains that.  
> 
> Oh, good to know.  In general I think it’s best to stick to upstream’s
> terminology.
> 
> Julien, what would you think of changing “virtual host” with “server
> blocks” and “vhost” with “server-block” (?) in the code and
> documentation?
Ok, sorry for the long delay, I was working on php and other things. So
I've been thinking that we should probably stick more to the way you
would write an nginx configuration file, and have an interface to it.
So here is a web.scm file that implements just that. I have a record
type for configuration entries, and record types for complex
configuration types and blocks. Since many blocks can get the same
configuration option (for instance, http, server and location blocks
can get the "root" option), I define a single procedure that returns
the string corresponding to the configuration line. So for instance,
you could write this:

(nginx-service)
(service (service-type
  (name 'foo)
  (extensions
(list
  (service-extension
nginx-service-type
 (const (list (nginx-block-server
(blocks (list))
(configs (list
  (nginx-option (type 'server_name)
(value (list 'default)))
  (nginx-option (type 'listen)
(value (nginx-listen)))
  (nginx-option (type 'root)
(value "/srv/http"))
  (nginx-option (type 'index)
(value (list
  "index.html"

As you can see, it's still a bit verbose, but we could provide a few
helper functions for some common cases.

Also, it is now possible to extend the nginx service with other kind of
blocks (although I implemented only the server block, it could be use
to add upstream blocks for instance).

What do you think? should I continue in that direction, or should I go
back to what I was doing before?

> 
> (This is not a fun suggestion to make, but hey!)
> 
> Ludo’.

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson 
;;; Copyright © 2015, 2016 Ludovic Courtès 
;;; Copyright © 2016 ng0 
;;; Copyright © 2016 Julien Lepiller 
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see .

(define-module (gnu services web)
  #:use-module (gnu services)
  #:use-module (gnu services shepherd)
  #:use-module (gnu system shadow)
  #:use-module (gnu packages admin)
  #:use-module (gnu packages web)
  #:use-module (guix records)
  #:use-module (guix gexp)
  #:use-module (srfi srfi-1)
  #:use-module (ice-9 match)
  #:export (nginx-configuration
nginx-configuration?
nginx-block-server
nginx-access
nginx-option
nginx-listen
nginx-service
nginx-service-type))

;;; Commentary:
;;;
;;; Web services.
;;;
;;; Code:

(define-record-type* 
  nginx-configuration make-nginx-configuration
  nginx-configuration?
  (nginx  nginx-configuration-nginx) ;
  (log-directory  nginx-configuration-log-directory) ;string
  (run-directory  nginx-configuration-run-directory) ;string
  (http-configs   nginx-configuration-http-configs)
  (events-configs nginx-configuration-events-configs)
  (blocks nginx-configuration-blocks)
  (file   nginx-configuration-file)) ;string | file-like

(define-record-type* 
  nginx-option make-nginx-option
  nginx-option?
  (type  nginx-option-type)
  (value nginx-option-value))

(define-record-type* 
  nginx-block-server make-nginx-block-server
  nginx-block-server?
  (blocks  

Re: [PATCH] gnu: services: Add git-service.

2016-11-20 Thread ng0
宋文武  writes:

> From: ng0 
>
> * gnu/services/version-control.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> * doc/guix.texi (Misellaneous Services)(Version Control): New section.
>
> Co-authored-by: 宋文武 

Thanks! As reply to the mssage you've sent before this one: I'm
okay with the changes. My intention with the services I'm working
on is to learn and improve my knowledge on how service for Guix
are written and work.

> ---
>  doc/guix.texi|  61 +
>  gnu/local.mk |   1 +
>  gnu/services/version-control.scm | 141 
> +++
>  3 files changed, 203 insertions(+)
>  create mode 100644 gnu/services/version-control.scm
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 7352ea9..9353a4c 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -11673,6 +11673,67 @@ A @code{} object serving the GNU 
> Collaborative International
>  Dictonary of English using the @code{gcide} package.
>  @end defvr
>  
> +@subsubsection Version Control
> +
> +The @code{(gnu services version-control)} module provides the following 
> services:
> +
> +@subsubheading Git daemon service
> +
> +@deffn {Scheme Procedure} git-daemon-service [#:config 
> (git-daemon-configuration)]
> +
> +Return a service that runs @command{git daemon}, a simple TCP server to
> +expose repositiories over the Git protocol for annoymous access.
> +
> +The optional @var{config} argument should be a
> +@code{} object, by default it allows read-only
> +access to exported@footnote{By creating the magic file
> +"git-daemon-export-ok" in the repository directory.} repositories under
> +@file{/srv/git}.
> +
> +@end deffn
> +
> +@deftp {Data Type} git-daemon-configuration
> +Data type representing the configuration of git-demon.

Typo, it should be "git-daemon".

> +
> +@table @asis
> +@item @code{package} (default: @var{git})
> +Package object of the Git distributed version control system.
> +
> +@item @code{export-all?} (default: @var{#f})
> +Whether to allow access for all Git repositories, even if they do not
> +have the @file{git-daemon-export-ok} file.
> +
> +@item @code{base-path} (default: @file{/srv/git})

Why /srv ? Will the other services (mail, web, etc) use /srv
aswell or do they use /var ? I used /var/git because of /var/www
and iirc this is also in the upstream documentation.

> +Whether to remap all the path requests as relative to the given path.
> +If you run git daemon with @var{(base-path "/srv/git")} on example.com,
> +then if you later try to pull @code{git://example.com/hello.git}, git
> +daemon will interpret the path as @code{/srv/git/hello.git}.
> +
> +@item @code{user-path} (default: @var{#f})
> +Whether to allow @code{~user} notation to be used in requests.  When
> +specified with empty string, requests to @code{git://host/~alice/foo} is
> +taken as a request to access @code{foo} repository in the home directory
> +of user @code{alice}.  If @var{(user-path "path")} is specified, the
> +same request is taken as a request to access @code{path/foo} repository
> +in the home directory of user @code{alice}.
> +
> +@item @code{listen} (default: @var{'()})
> +Whether to listen on specific IP addresses or hostnames, defaults to
> +all.
> +
> +@item @code{port} (default: @var{#f})
> +Whether to listen on an alternative port, which defaults to 9418.
> +
> +@item @code{whitelist} (default: @var{'()})
> +If not empty, only allow access to this list of directories.
> +
> +@item @code{extra-options} (default: @var{'()})
> +Extra options will be passed to @code{git daemon}, please run
> +@command{man git-daemon} for more information.

Ah, nice. So you basically ended up with what I wanted in the
first revision of the git-service.
Documentation looks good to me except this one question about
location, and the one typo.

> +
> +@end table
> +@end deftp
> +
>  @node Setuid Programs
>  @subsection Setuid Programs
>  
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 7112451..8769671 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -415,6 +415,7 @@ GNU_SYSTEM_MODULES =  \
>%D%/services/sddm.scm  \
>%D%/services/spice.scm \
>%D%/services/ssh.scm   \
> +  %D%/services/version-control.scm  \
>%D%/services/web.scm   \
>%D%/services/xorg.scm  \
>   \
> diff --git a/gnu/services/version-control.scm 
> b/gnu/services/version-control.scm
> new file mode 100644
> index 000..65bdefb
> --- /dev/null
> +++ b/gnu/services/version-control.scm
> @@ -0,0 +1,141 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2016 ng0 
> +;;; Copyright © 2016 Sou Bunnbu 
> +;;;
> 

Re: [PATCH] gnu: services: Add git-service.

2016-11-20 Thread 宋文武
Mathieu Lirzin  writes:

> Mathieu Lirzin  writes:
>
>> 宋文武  writes:
>>
>>> From: ng0 
>>>
>>> * gnu/services/version-control.scm: New file.
>>> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
>>> * doc/guix.texi (Misellaneous Services)(Version Control): New section.
>>
>> but I find this notation confusing, since "Version Control" belongs to
>   ^^^
> Please ignore this "but" that shouldn't be here.

Thanks!  I'll change it to '[Version Control]'.



Re: [PATCH] gnu: services: Add git-service.

2016-11-20 Thread Mathieu Lirzin
Mathieu Lirzin  writes:

> 宋文武  writes:
>
>> From: ng0 
>>
>> * gnu/services/version-control.scm: New file.
>> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
>> * doc/guix.texi (Misellaneous Services)(Version Control): New section.
>
> but I find this notation confusing, since "Version Control" belongs to
  ^^^
Please ignore this "but" that shouldn't be here.

-- 
Mathieu Lirzin



Re: [PATCH] gnu: services: Add git-service.

2016-11-20 Thread Mathieu Lirzin
Hello,

宋文武  writes:

> From: ng0 
>
> * gnu/services/version-control.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> * doc/guix.texi (Misellaneous Services)(Version Control): New section.

but I find this notation confusing, since "Version Control" belongs to
"Miscellaneous Services".  @node identifiers are unique, so it is
reasonable to refers to them with '()', and use '<>' for their parts as
suggested by GCS:

  
https://www.gnu.org/prep/standards/html_node/Indicating-the-Part-Changed.html#Indicating-the-Part-Changed

Thanks.

-- 
Mathieu Lirzin



Re: [PATCH] gnu: services: Add git-service.

2016-11-20 Thread 宋文武
ng0  writes:

> * gnu/services/version-control.scm: New file, create it.
> (git-service): New Procedures.
> (git-service-type): New variable.
> * doc/guix.texi (Services)(Version Control): New section.

Hi, I make and send a new patch based on yours, which rename
'git-service' to 'git-daemon-service', and put most documentation to the
'git-daemon-configuration' part.

I tested it with the default configuration and 'user-path', it works
fine!  I'd like it to deprecated yours, what do you think?

Thanks!



[PATCH] gnu: services: Add git-service.

2016-11-20 Thread 宋文武
From: ng0 

* gnu/services/version-control.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (Misellaneous Services)(Version Control): New section.

Co-authored-by: 宋文武 
---
 doc/guix.texi|  61 +
 gnu/local.mk |   1 +
 gnu/services/version-control.scm | 141 +++
 3 files changed, 203 insertions(+)
 create mode 100644 gnu/services/version-control.scm

diff --git a/doc/guix.texi b/doc/guix.texi
index 7352ea9..9353a4c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -11673,6 +11673,67 @@ A @code{} object serving the GNU 
Collaborative International
 Dictonary of English using the @code{gcide} package.
 @end defvr
 
+@subsubsection Version Control
+
+The @code{(gnu services version-control)} module provides the following 
services:
+
+@subsubheading Git daemon service
+
+@deffn {Scheme Procedure} git-daemon-service [#:config 
(git-daemon-configuration)]
+
+Return a service that runs @command{git daemon}, a simple TCP server to
+expose repositiories over the Git protocol for annoymous access.
+
+The optional @var{config} argument should be a
+@code{} object, by default it allows read-only
+access to exported@footnote{By creating the magic file
+"git-daemon-export-ok" in the repository directory.} repositories under
+@file{/srv/git}.
+
+@end deffn
+
+@deftp {Data Type} git-daemon-configuration
+Data type representing the configuration of git-demon.
+
+@table @asis
+@item @code{package} (default: @var{git})
+Package object of the Git distributed version control system.
+
+@item @code{export-all?} (default: @var{#f})
+Whether to allow access for all Git repositories, even if they do not
+have the @file{git-daemon-export-ok} file.
+
+@item @code{base-path} (default: @file{/srv/git})
+Whether to remap all the path requests as relative to the given path.
+If you run git daemon with @var{(base-path "/srv/git")} on example.com,
+then if you later try to pull @code{git://example.com/hello.git}, git
+daemon will interpret the path as @code{/srv/git/hello.git}.
+
+@item @code{user-path} (default: @var{#f})
+Whether to allow @code{~user} notation to be used in requests.  When
+specified with empty string, requests to @code{git://host/~alice/foo} is
+taken as a request to access @code{foo} repository in the home directory
+of user @code{alice}.  If @var{(user-path "path")} is specified, the
+same request is taken as a request to access @code{path/foo} repository
+in the home directory of user @code{alice}.
+
+@item @code{listen} (default: @var{'()})
+Whether to listen on specific IP addresses or hostnames, defaults to
+all.
+
+@item @code{port} (default: @var{#f})
+Whether to listen on an alternative port, which defaults to 9418.
+
+@item @code{whitelist} (default: @var{'()})
+If not empty, only allow access to this list of directories.
+
+@item @code{extra-options} (default: @var{'()})
+Extra options will be passed to @code{git daemon}, please run
+@command{man git-daemon} for more information.
+
+@end table
+@end deftp
+
 @node Setuid Programs
 @subsection Setuid Programs
 
diff --git a/gnu/local.mk b/gnu/local.mk
index 7112451..8769671 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -415,6 +415,7 @@ GNU_SYSTEM_MODULES =\
   %D%/services/sddm.scm\
   %D%/services/spice.scm   \
   %D%/services/ssh.scm \
+  %D%/services/version-control.scm  \
   %D%/services/web.scm \
   %D%/services/xorg.scm\
\
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
new file mode 100644
index 000..65bdefb
--- /dev/null
+++ b/gnu/services/version-control.scm
@@ -0,0 +1,141 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 
+;;; Copyright © 2016 Sou Bunnbu 
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see .
+
+(define-module (gnu services version-control)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu services shepherd)
+  #:use-module (gnu system 

[PATCH] Update lilypond to 2.19.50

2016-11-20 Thread Nicolas Goaziou
Hello,

The following patch updates lilypond to 2.19.50.

Regards,

-- 
Nicolas Goaziou0x80A93738
>From 239fa264e7e3387ee34039684fff8747900773c3 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou 
Date: Sun, 20 Nov 2016 09:52:52 +0100
Subject: [PATCH] gnu: lilypond: Update to 2.19.50

* gnu/packages/music.scm (lilypond): Update to 2.19.50.
---
 gnu/packages/music.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4ec6d6e..11dd00a 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -504,7 +504,7 @@ interface.  It is implemented as a frontend to @code{klick}.")
 (define-public lilypond
   (package
 (name "lilypond")
-(version "2.19.33")
+(version "2.19.50")
 (source (origin
   (method url-fetch)
   (uri (string-append
@@ -513,7 +513,7 @@ interface.  It is implemented as a frontend to @code{klick}.")
 name "-" version ".tar.gz"))
   (sha256
(base32
-"0s4vbbfy4xwq4da4kmlnndalmcyx2jaz7y8praah2146qbnr90xh"
+"1csf49bj3szr5n0nylgm347mg8f69lb5nzwi1mw2ql9rmjgx16hn"
 (build-system gnu-build-system)
 (arguments
  `(#:tests? #f ; out-test/collated-files.html fails
-- 
2.10.1