Re: [shepherd] 06/09: Rename default system configuration file.

2016-01-27 Thread Alex Kost
Ludovic Courtès (2016-01-26 13:46 +0300) wrote:

> Alex Kost  skribis:
>
>> --- a/modules/shepherd/support.scm
>> +++ b/modules/shepherd/support.scm
>> @@ -280,7 +280,7 @@ TARGET should be a string representing a filepath + 
>> name."
>>  global system configuration file when running as 'root'.  As a side effect,
>>  create a template configuration file if non exists."
>>(if (zero? (getuid))
>> -  (string-append %sysconfdir "/dmdconf.scm")
>> +  (string-append %sysconfdir "/shepherd.conf.scm")
>
> I had overlooked this, but maybe just “shepherd.scm” would be enough?

Oops, I already pushed this patch.  I don't have any preference for this
name, and I think it doesn't really matter what name to use, especially
taking into account that this default name is not used by GuixSD.

-- 
Alex



Re: gtk-vnc package

2016-01-27 Thread 宋文武
ren...@openmailbox.org writes:

> hi,
>
> can you help me to review this patch, gtk-vnc is a API for Vinagre
> program.
Welcome!
>
> Regards.
>
> From cfeac9d0ca6505f98ba206aa4dae5170431baf8e Mon Sep 17 00:00:00 2001
> From: Rene Saavedra 
> Date: Tue, 26 Jan 2016 21:47:36 +0100
> Subject: [PATCH] gnu: Add gtk-vnc.
Missing commit message, it should look like:

  * gnu/packages/gtk-vnc.scm: New file.
  * gnu-system (GNU_SYSTEM_MODULES): Add it.

But I'd like to put it (and vinagre) in gnome.scm.
>
> ---
>  gnu-system.am|  1 +
>  gnu/packages/gtk-vnc.scm | 50 
> 
>  2 files changed, 51 insertions(+)
>  create mode 100644 gnu/packages/gtk-vnc.scm
>
> diff --git a/gnu-system.am b/gnu-system.am
> index 3426056..18be503 100644
> --- a/gnu-system.am
> +++ b/gnu-system.am
> @@ -355,6 +355,7 @@ GNU_SYSTEM_MODULES =  \
>gnu/packages/zile.scm  \
>gnu/packages/zip.scm   \
>gnu/packages/zsh.scm   \
> +  gnu/packages/gtk-vnc.scm  \
>   \
>gnu/services.scm   \
>gnu/services/avahi.scm \
> diff --git a/gnu/packages/gtk-vnc.scm b/gnu/packages/gtk-vnc.scm
> new file mode 100644
> index 000..a7b8cf8
> --- /dev/null
> +++ b/gnu/packages/gtk-vnc.scm
> @@ -0,0 +1,50 @@
> +(define-module (gnu packages gtk-vnc)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix packages)
> +  #:use-module (guix download)
> +  #:use-module (guix build-system gnu)
> +  #:use-module (gnu packages glib)
> +  #:use-module (gnu packages gnome)
> +  #:use-module (gnu packages gtk)
> +  #:use-module (gnu packages pkg-config)
> +  #:use-module (gnu packages tls)
> +  #:use-module (gnu packages gnupg)
> +  #:use-module (gnu packages pulseaudio))
> +  
> +(define-public gtk-vnc
> +  (package
> +(name "gtk-vnc")
> +(version "0.5.4")
> +(source
> + (origin
> +  (method url-fetch)
> +   (uri (string-append "mirror://gnome/sources/" name "/"
> +   name "-" version ".tar.xz"))
> +  (sha256
> +   (base32
> +"1rwwdh7lb16xdmy76ca6mpqfc3zfl3a4bkcr0qb6hs6ffrxak2j8"
> +(build-system gnu-build-system)
> +(arguments
> + `(#:configure-flags
> +   (list "--with-gtk=3.0" "--enable-vala" "--without-sasl")))
> +(inputs
> + `(("gtk+" ,gtk+)
> +   ("vala" ,vala)
> +   ("gjs" ,gjs)  
> +   ("libgcrypt" ,libgcrypt)  
> +   ("gnutls" ,gnutls)
> +   ("glib" ,glib "bin")
> +   ("pulseaudio" ,pulseaudio)))
> +(native-inputs
> + `(("pkg-config" ,pkg-config)
> +   ("intltool" ,intltool)))
I think glib:bin and vala belong to native-inputs, usually they
are only used during build.
> +(home-page "https://wiki.gnome.org/Projects/gtk-vnc";)
> +(synopsis
> + "VNC viewer widget for GTK.")
Put synopsis into one line, use `GTK+' and remove the `.'.
> +(description
> + "GTK-VNC is an API used by Vinagre client application, Boxes and
> +virt-viewer. GTK-VNC supports authentication extensions as SASL, TLS, 
> VeNCrypt.
> +Additionally supports encoding extensions.")
> +(license license:lgpl2.1)))
Most source files say LGPL-2.0+, while the COPYING.LIB is LGPL-2.1.
I think the license should be `lgpl2.1+'.



Re: Qt-5 in core-updates

2016-01-27 Thread Andreas Enge
On Tue, Jan 26, 2016 at 10:23:10AM +0800, 宋文武 wrote:
> Well, WebKitGTK+ 2.4.9 seem unmaintained and have some security issues:
>   
> 
> But currently, we have gnucash, guitarix, and some gnome applications
> using it.

So even more than I thought. Maybe this would be something to look into
after the core-updates merge, to see whether updating these dependent
packages will help.

> Yes, thanks for handling this.

Thanks for doing the research!

Andreas




Re: [shepherd] 06/09: Rename default system configuration file.

2016-01-27 Thread Ludovic Courtès
Alex Kost  skribis:

> Ludovic Courtès (2016-01-26 13:46 +0300) wrote:
>
>> Alex Kost  skribis:
>>
>>> --- a/modules/shepherd/support.scm
>>> +++ b/modules/shepherd/support.scm
>>> @@ -280,7 +280,7 @@ TARGET should be a string representing a filepath + 
>>> name."
>>>  global system configuration file when running as 'root'.  As a side effect,
>>>  create a template configuration file if non exists."
>>>(if (zero? (getuid))
>>> -  (string-append %sysconfdir "/dmdconf.scm")
>>> +  (string-append %sysconfdir "/shepherd.conf.scm")
>>
>> I had overlooked this, but maybe just “shepherd.scm” would be enough?
>
> Oops, I already pushed this patch.  I don't have any preference for this
> name, and I think it doesn't really matter what name to use, especially
> taking into account that this default name is not used by GuixSD.

Done in 83567c4.

Ludo’.



Re: [PATCH] Add 17 moar rubygems.

2016-01-27 Thread Ben Woodcroft



On 08/01/16 00:53, Ricardo Wurmus wrote:

[..]


I think I need a break.

You deserve one. Thanks. I just pushed all 17 with minor changes.



[PATCHES] Add awscli and 7 pre-requisite Python libraries.

2016-01-27 Thread Dave Thompson
Here's a patch set I've been sitting on for awhile for the AWS CLI.  Do
note that the AWS APIs are not exclusive to Amazon.  Free software such
as Eucalyptus [0] and OpenStack also implement these APIs for
compatibility reasons, and both the boto library and awscli itself can
be used to manipulate them.  If this proves too controversial, I'd still
like to apply the first 6 uncontroversial patches. ;)

Thanks in advance for review.

- Dave

[0] 
https://support.eucalyptus.com/hc/en-us/articles/200844844-Usage-of-AWS-CLI-with-Eucalyptus

>From 440d0afb9307bc01fb2804ee42e1e02a6d24039f Mon Sep 17 00:00:00 2001
From: David Thompson 
Date: Mon, 7 Dec 2015 16:18:35 -0500
Subject: [PATCH 1/8] gnu: Add python-colorama.

* gnu/packages/python.scm (python-colorama, python2-colorama): New
  variables.
---
 gnu/packages/python.scm | 27 ++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 813711a..a12709f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2015 Ricardo Wurmus 
 ;;; Copyright © 2015 Christopher Allan Webber 
 ;;; Copyright © 2015 Eric Dvorsak 
-;;; Copyright © 2015 David Thompson 
+;;; Copyright © 2015, 2016 David Thompson 
 ;;; Copyright © 2015 Leo Famulari 
 ;;; Copyright © 2015 Ben Woodcroft 
 ;;; Copyright © 2015, 2016 Erik Edrosa 
@@ -7252,3 +7252,28 @@ supports url redirection and retries, and also gzip and deflate decoding.")
 
 (define-public python2-urllib3
   (package-with-python2 python-urllib3))
+
+(define-public python-colorama
+  (package
+   (name "python-colorama")
+   (version "0.3.3")
+   (source
+(origin
+ (method url-fetch)
+ (uri (string-append
+   "https://pypi.python.org/packages/source/c/colorama/colorama-";
+   version ".tar.gz"))
+ (sha256
+  (base32
+   "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb"
+   (build-system python-build-system)
+   (inputs
+`(("python-setuptools" ,python-setuptools)))
+   (synopsis "colored terminal text rendering for Python")
+   (description "Colorama is a Python library for rendering colored terminal
+text.")
+   (home-page "https://pypi.python.org/pypi/colorama";)
+   (license bsd-3)))
+
+(define-public python2-colorama
+  (package-with-python2 python-colorama))
-- 
2.6.3

>From f66c61d088008b17c9c0a88936eb2adbb5d3ef94 Mon Sep 17 00:00:00 2001
From: David Thompson 
Date: Mon, 7 Dec 2015 16:19:35 -0500
Subject: [PATCH 2/8] gnu: Add python-rsa.

* gnu/packages/python.scm (python-rsa, python2-rsa): New variables.
---
 gnu/packages/python.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a12709f..6bdca89 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7277,3 +7277,31 @@ text.")
 
 (define-public python2-colorama
   (package-with-python2 python-colorama))
+
+(define-public python-rsa
+  (package
+   (name "python-rsa")
+   (version "3.2")
+   (source
+(origin
+ (method url-fetch)
+ (uri (string-append
+   "https://pypi.python.org/packages/source/r/rsa/rsa-";
+   version ".tar.gz"))
+ (sha256
+  (base32
+   "0xwp929g7lvb1sghxfpqlxvgg96qcwqdbhh27sjplx30n3xp3wrh"
+   (build-system python-build-system)
+   (inputs
+`(("python-pyasn1" ,python-pyasn1)
+  ("python-setuptools" ,python-setuptools)))
+   (synopsis "Pure-Python RSA implementation")
+   (description "Python-RSA is a pure-Python RSA implementation.  It supports
+encryption and decryption, signing and verifying signatures, and key
+generation according to PKCS#1 version 1.5.  It can be used as a Python
+library as well as on the command line.")
+   (home-page "http://stuvel.eu/rsa";)
+   (license asl2.0)))
+
+(define-public python2-rsa
+  (package-with-python2 python-rsa))
-- 
2.6.3

>From 5994ce30c27b2c2e5d643cf63aa6c91c649edf31 Mon Sep 17 00:00:00 2001
From: David Thompson 
Date: Mon, 7 Dec 2015 16:20:07 -0500
Subject: [PATCH 3/8] gnu: Add python-pluggy.

* gnu/packages/python.scm (python-pluggy): New variable.
---
 gnu/packages/python.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6bdca89..2175b79 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7305,3 +7305,25 @@ library as well as on the command line.")
 
 (define-public python2-rsa
   (package-with-python2 python-rsa))
+
+(define-public python-pluggy
+  (package
+   (name "python-pluggy")
+   (version "0.3.1")
+   (source
+(origin
+ (method url-fetch)
+ (uri (string-append
+   "https://pypi.python.org/packages/source/p/pluggy/pluggy-";
+   version ".tar.gz"))
+ (sha256
+  (base32
+   "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m"
+   (build-system python-build-system)
+   (inputs
+`(("python-setuptools" ,python-setuptoo

Re: [PATCHES] Add awscli and 7 pre-requisite Python libraries.

2016-01-27 Thread Efraim Flashner
On Wed, 27 Jan 2016 09:31:03 -0500
Dave Thompson  wrote:

> Here's a patch set I've been sitting on for awhile for the AWS CLI.  Do
> note that the AWS APIs are not exclusive to Amazon.  Free software such
> as Eucalyptus [0] and OpenStack also implement these APIs for
> compatibility reasons, and both the boto library and awscli itself can
> be used to manipulate them.  If this proves too controversial, I'd still
> like to apply the first 6 uncontroversial patches. ;)
> 
> Thanks in advance for review.
> 
> - Dave
> 
> [0] 
> https://support.eucalyptus.com/hc/en-us/articles/200844844-Usage-of-AWS-CLI-with-Eucalyptus
> 

The urls of the packages could use the pypi-uri format.
Other than python-rsa which has python2-rsa which for sure needs
python2-setuptools, do the other packages actually need python-setuptools to
build?
python-tox: there are no test targets?
python-wheel: We actually already have this in python.scm :)
python-awscli: The description only mentions aws but you said at the top that
it works with a bunch of other services/providers that also implemented the
APIs. That should probably be added to the description.

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


pgpmZvQ7lvtSy.pgp
Description: OpenPGP digital signature


[PATCH 0/1] Curl security update (CVE-2016-0755)

2016-01-27 Thread Leo Famulari
This patch updates curl to 7.47.0, fixing CVE-2016-0755 [0][1].

I built it on the core-updates branch (although it's trivial enough to
apply on another branch), and I tested it to download successfully.

Feel free to apply the patch where appropriate.

[0]
http://curl.haxx.se/docs/adv_20160127A.html

[1]
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0755

Leo Famulari (1):
  gnu: curl: Update to 7.47.0 [fixes CVE-2016-0755].

 gnu/packages/curl.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

-- 
2.6.3




[PATCH 1/1] gnu: curl: Update to 7.47.0 [fixes CVE-2016-0755].

2016-01-27 Thread Leo Famulari
* gnu/packages/curl.scm (curl): Update to 7.47.0.
---
 gnu/packages/curl.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 16140f0..3d0e49c 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015 Mark H Weaver 
 ;;; Copyright © 2015 Tomáš Čech 
 ;;; Copyright © 2015 Ludovic Courtès 
+;;; Copyright © 2016 Leo Famulari 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,14 +40,14 @@
 (define-public curl
   (package
(name "curl")
-   (version "7.45.0")
+   (version "7.47.0")
(source (origin
 (method url-fetch)
 (uri (string-append "http://curl.haxx.se/download/curl-";
 version ".tar.lzma"))
 (sha256
  (base32
-  "0bamqik0mi2rmai016iakwrwmsz0s5xad1ghkbwsd3zkv08rgkcn"
+  "1n284wdqzwb4bkmv0fnh36zl6lhlzy3clw2b7pn28kpgdy09ly7p"
(build-system gnu-build-system)
(outputs '("out"
   "doc")) ;1.2 MiB of man3 pages
-- 
2.6.3




[PATCH] gnu: Add gtk-vnc.

2016-01-27 Thread rennes

Hi again,

i attach the patch for your revision.

regardsFrom b9043158a88983daff7b4f9309654edf642b1f87 Mon Sep 17 00:00:00 2001
From: Rene Saavedra 
Date: Wed, 27 Jan 2016 20:07:12 +0100
Subject: [PATCH] gnu: Add gtk-vnc.

---
 gnu-system.am|  1 +
 gnu/packages/gtk-vnc.scm | 55 
 2 files changed, 56 insertions(+)
 create mode 100644 gnu/packages/gtk-vnc.scm

diff --git a/gnu-system.am b/gnu-system.am
index ad59241..9277375 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -149,6 +149,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/gsasl.scm			\
   gnu/packages/gstreamer.scm			\
   gnu/packages/gtk.scm\
+  gnu/packages/gtk-vnc.scm			\
   gnu/packages/guile.scm			\
   gnu/packages/guile-wm.scm			\
   gnu/packages/gv.scm\
diff --git a/gnu/packages/gtk-vnc.scm b/gnu/packages/gtk-vnc.scm
new file mode 100644
index 000..449f2f9
--- /dev/null
+++ b/gnu/packages/gtk-vnc.scm
@@ -0,1 +1,55 @@
+2016-01-27  Rene Saavedra  
+
+	* gnu/packages/gtk-vnc.scm: New file
+
+	* gnu-system (GNU_SYSTEM_MODULES): Add it.
+
+(define-module (gnu packages gtk-vnc)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)  
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages pulseaudio))
+(define-public gtk-vnc
+  (package
+(name "gtk-vnc")
+(version "0.5.4")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnome/sources/" name "/"
+  (version-major+minor version) "/"
+   name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1rwwdh7lb16xdmy76ca6mpqfc3zfl3a4bkcr0qb6hs6ffrxak2j8"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   (list "--with-gtk=3.0" "--enable-vala" "--without-sasl")))
+(inputs
+ `(("gtk+" ,gtk+)
+   ("gjs" ,gjs)
+   ("libgcrypt" ,libgcrypt)
+   ("gnutls" ,gnutls)
+   ("pulseaudio" ,pulseaudio)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("glib" ,glib "bin")
+   ("vala" ,vala)))
+(home-page "https://wiki.gnome.org/Projects/gtk-vnc";)
+(synopsis "VNC viewer widget for GTK")
+(description
+ "GTK-VNC is an API used by Vinagre client application,
+Boxes and virt-viewer.  GTK-VNC supports authentication extensions
+as SASL, TLS, VeNCrypt.  Additionally supports encoding extensions.")
+(license license:lgpl2.1+)))
+gtk-vnc
-- 
2.6.3



Review of installation manual draft

2016-01-27 Thread Petter

Hi,

During the last week on IRC a few of us have been putting together a 
proposal for updating the GuixSD installation instructions in the 
manual. It was initially intended to be a guide for how to install 
GuixSD with encrypted root to the Libreboot site; but as the steps are 
generic, and the GuixSD manual doesn't address this we thought we'd make 
a proposal here instead. The instructions for encrypted root are quite 
detailed, and to try and keep the entire installation manual in the same 
vein, other steps have been redone with detailed, step for step, 
instructions. Which will hopefully make it easier for less experienced 
users to get GuixSD up and running, with or without encryption.


First of all we'd like to know if there are any major issues/objections 
with this proposal, issues that would result in restructuring, or even 
that we drop it altogether. Better we know now before going into polish 
mode. We're also very interested in comments and suggestions to make it 
better of course.


Current issues:
 - typing in the mapped-devices field perfectly is error-prone, maybe 
put a commented out mapped-devices field in the example configuration 
instead and the manual will say to enable it for users opting for 
encryption.
 - it would be nice to print a list of available layouts for the 
loadkeys command. Please let me know if you know how to do this.

 - maybe elaborate on how to use cfdisk and/or similar tools

Ideas:
 - maybe it would be good to use a dedicated bare-bones config for (1) 
fully encrypted, (2) encrypted root without /boot, (3) encrypted /home, 
(4) unencrypted; to get people up and running quickly, then add desktop 
environment etc. in a post-installation document.


Thanks,
Petter

--current draft---

7.1.3 Booting the installation image
Once you have successfully booted the image on the USB stick, you should 
end up with a root prompt. Several console TTYs are configured and can 
be used to run commands as root. TTY2 shows this documentation, 
browsable using the Info reader commands (see Help in Info: An 
Introduction).




7.1.3.1 Keyboard
The installation image uses the US Qwerty keyboard layout. To change you 
can use the "loadkeys" command with your preferred layout. Example 
: "dvorak".

# loadkeys 



7.1.3.2 Network
Run this to see what your network interfaces are called:
# ifconfig -a

To configure the network run this command, substituting 
 with the one you want to use. Example 
: "eno1".

# ifconfig  up && dhclient 

Try to ping a server to see if a connection was established. For 
example, gnu.org.

# ping -c 3 gnu.org

If ping fails with a `ping: unknown host` error, first check if there is 
an issue with your cable. If not, try to restart nscd.

# deco restart nscd





7.1.4 Preparing the disk
First you need to decide if you want encrypted root or not. If you're 
going for unencrypted skip to the next paragraph. For encrypted root you 
need to figure out if you can have /boot encrypted or not. For /boot to 
be encrypted you need boot firmware with an embedded boot loader, such 
as Coreboot/Libreboot. Otherwise you'll need to leave /boot unencrypted, 
in this case create a separate partition for it. 100 MB should be 
enough, make it type "Linux (83)".


Your main partition will be where you install root (/). If you're going 
to install a desktop this partition should be at least 15 GB. Make it 
use the rest of your disk (after potentially making a boot partition) if 
you don't know how large to make it. Make it type "Linux (83)"




7.1.4.1 Disk partitioning
Before proceeding with partitioning you need to be sure about the device 
name of the disk you're installing to. Example "/dev/sda"

For partitioning there are several tools available, cfdisk is one.
# cfdisk /dev/

If you went for unencrypted we'll refer to your root partition as 
"".
If you went for encrypted we'll refer to your encrypted root partition 
as "". Any separate partition for /boot 
will be referred to as "".

Typical value: "sda1".



7.1.4.2 Disk encryption
Skip this chapter if you're not doing encrypted root.

Encrypt the encrypted partition with LUKS, using your favorite 
cryptsetup invocation, for example:
# cryptsetup -v --cipher serpent-xts-plain64 --key-size 512 --hash 
whirlpool --use-random --verify-passphrase luksFormat 
/dev/


Open the LUKS partition. You can verify its effect by doing "ls 
/dev/mapper" before and after this command, on success a "guixsd" file 
will appear.

# cryptsetup luksOpen /dev/ guixsd

We'll later refer to your mapped device (f.ex. "mapper/guixsd") as 
"".




7.1.4.3 Filesystem and mount
Make a filesystem, f.ex. ext4. For unencrypted root you can use the "-L" 
flag, with a string argument, to create a label for later reference.

# mkfs.ext4 /dev/

Mount it under /mnt
# mount /dev/ /mnt

Run this command to make /gnu/store copy-on-write, such that packages 
added to it during the installation phase will be writt

Re: [PATCH 0/1] Curl security update (CVE-2016-0755)

2016-01-27 Thread Andreas Enge
On Wed, Jan 27, 2016 at 01:57:22PM -0500, Leo Famulari wrote:
> This patch updates curl to 7.47.0, fixing CVE-2016-0755 [0][1].

Ouch!

guix refresh -l curl
Building the following 318 packages would ensure 772 dependent packages are 
rebuilt

This is about a quarter of all packages.

> Feel free to apply the patch where appropriate.

I would suggest the following: Quickly merge core-updates once the packages
on x86_64 are built (there are not many left, and qt-5 did build successfully
sequentially, so this could be done tomorrow), then create a new
security-updates branch with the patch for curl.

What do you think?

Andreas




New armhf build machine

2016-01-27 Thread Andreas Enge
Hello,

thanks to a generous donation by Kosagi (yes, the company of the Novena
inventors!), the Guix project is in the possession of two new Novena boards.
One of them is sitting in my living room now and happily compiling packages.

I wrote two blog posts on how to install and set up such a build machine:
  
http://enge.fr/blog/2016/01/novena-board-set-up-for-the-gnu-guix-build-farm-part-1/
  
http://enge.fr/blog/2016/01/novena-board-set-up-for-the-gnu-guix-build-farm-part-2/

Thanks again to Bunnie of Kosagi!

Andreas




[Shepherd][PATCH 4/4] doc: Move man pages to the 'doc' directory.

2016-01-27 Thread Mathieu Lirzin

* Makefile.am (man-page-target): Delete function.
(dist_man1_MANS, dist_man8_MANS): Prefix each element with 'doc/'.
(shepherd.1): Rename to ...
(doc/shepherd.1): ... this.
(doc/%.1, doc/%.8): New targets.
(gen_man): New variable.
* .gitignore: Update it.
---
 .gitignore  |  4 ++--
 Makefile.am | 27 ++-
 2 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/.gitignore b/.gitignore
index 111817f..632dafe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,8 +2,6 @@
 *~
 ,*
 .dirstamp
-/*.1
-/*.8
 /INSTALL
 /aclocal.m4
 /autom4te.cache
@@ -13,6 +11,8 @@
 /config.scm
 /config.status
 /configure
+/doc/*.1
+/doc/*.8
 /doc/shepherd.info
 /doc/stamp-vti
 /doc/version.texi
diff --git a/Makefile.am b/Makefile.am
index 52f66d6..41c0f47 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -74,27 +74,20 @@ AM_V_HELP2MAN_ = $(AM_V_HELP2MAN_$(AM_DEFAULT_VERBOSITY))
 AM_V_HELP2MAN_0 = @echo "  HELP2MAN" $@;
 
 HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
+gen_man = $(AM_V_HELP2MAN)LANGUAGE= $(HELP2MAN) $(HELP2MANFLAGS)
 
-define man-page-target
+doc/shepherd.1: modules/shepherd.scm
+	$(gen_man) --output="$@" "$(top_builddir)/`basename "$@" .1`"
 
-%.$(1): modules/shepherd/scripts/%.scm
-	-$$(AM_V_HELP2MAN)LANGUAGE=\
-	  $(HELP2MAN) --output="$$@" --section=$(1)		\
-	  $(HELP2MANFLAGS)\
-	  "$(top_builddir)/`basename "$$@" .$(1)`"
+doc/%.1: modules/shepherd/scripts/%.scm
+	$(gen_man) --output="$@" "$(top_builddir)/`basename "$@" .1`"
 
-endef
+doc/%.8: modules/shepherd/scripts/%.scm
+	$(gen_man) --section=8 --output="$@"	\
+	  "$(top_builddir)/`basename "$@" .8`"
 
-# Create targets for sections 1 and 8.
-$(eval $(foreach section,1 8,$(call man-page-target,$(section
-
-shepherd.1: modules/shepherd.scm
-	-$(AM_V_HELP2MAN)LANGUAGE=			\
-	  $(HELP2MAN) --output="$@" $(HELP2MANFLAGS)	\
-	  "$(top_builddir)/shepherd"
-
-dist_man1_MANS = shepherd.1 herd.1
-dist_man8_MANS = halt.8 reboot.8
+dist_man1_MANS = doc/shepherd.1 doc/herd.1
+dist_man8_MANS = doc/halt.8 doc/reboot.8
 
 # Things not automatically included in the distribution.
 EXTRA_DIST =\


[Shepherd][PATCH 1/4] build: Build Guile objects before generating man pages.

2016-01-27 Thread Mathieu Lirzin

Before that, man pages were not successfully generated for VPATH builds.

* Makefile.am (BUILT_SOURCES): Add every '.go' files.
---
 Makefile.am | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index dcffcea..6ebd0f1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -26,7 +26,11 @@ templates =	\
   modules/shepherd/system.scm.in
 
 # Build this module first.
-BUILT_SOURCES = modules/shepherd/config.scm
+BUILT_SOURCES = \
+  $(nodist_shepherdsub_DATA)			\
+  $(nodist_scripts_DATA)			\
+  $(nodist_guilemodule_DATA)
+
 
 # The source files.
 # XXX: we can't use 'nobase_' because of the modules/ subdirectory.


[Shepherd][PATCH 2/4] doc: Move examples to the 'doc/examples' directory.

2016-01-27 Thread Mathieu Lirzin

* doc/examples/README: moved from 'examples' directory.
* doc/examples/_unknown.scm: Likewise.
* doc/examples/wolfgangj.scm: Likewise.
* examples/Makefile.am: Delete file.
* configure.ac (AC_CONFIG_FILES): Adapt to it.
* Makefile.am (EXTRA_DIST): Add files from "doc/examples" directory.
(SUBDIRS): Delete variable.
---
 Makefile.am|  10 ++-
 configure.ac   |   3 +-
 doc/examples/README|  17 +
 doc/examples/_unknown.scm  | 153 +
 doc/examples/wolfgangj.scm | 132 ++
 examples/Makefile.am   |   3 -
 examples/README|  17 -
 examples/_unknown.scm  | 153 -
 examples/wolfgangj.scm | 132 --
 9 files changed, 311 insertions(+), 309 deletions(-)
 create mode 100644 doc/examples/README
 create mode 100644 doc/examples/_unknown.scm
 create mode 100644 doc/examples/wolfgangj.scm
 delete mode 100644 examples/Makefile.am
 delete mode 100644 examples/README
 delete mode 100644 examples/_unknown.scm
 delete mode 100644 examples/wolfgangj.scm

diff --git a/Makefile.am b/Makefile.am
index 6ebd0f1..2985a86 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -67,7 +67,6 @@ CLEANFILES =		\
 
 # Documentation.
 info_TEXINFOS = shepherd.texi
-SUBDIRS = examples
 
 AM_V_HELP2MAN = $(AM_V_HELP2MAN_$(V))
 AM_V_HELP2MAN_ = $(AM_V_HELP2MAN_$(AM_DEFAULT_VERBOSITY))
@@ -97,7 +96,14 @@ dist_man1_MANS = shepherd.1 herd.1
 dist_man8_MANS = halt.8 reboot.8
 
 # Things not automatically included in the distribution.
-EXTRA_DIST = $(templates) QUESTIONS fdl-1.3.texi ChangeLog-2003
+EXTRA_DIST =\
+  ChangeLog-2003			\
+  fdl-1.3.texi\
+  QUESTIONS\
+  $(templates)\
+  doc/examples/README			\
+  doc/examples/_unknown.scm		\
+  doc/examples/wolfgangj.scm
 
 # Create the socket directory (aka. 'default-socket-dir'.)  Make it
 # accessible only by its owner since otherwise 'shepherd' suggests using
diff --git a/configure.ac b/configure.ac
index 339167c..abab3fa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -94,7 +94,6 @@ AM_MISSING_PROG([HELP2MAN], [help2man])
 
 dnl Finish.
 AC_CONFIG_FILES([Makefile
- examples/Makefile
-		 modules/shepherd/system.scm])
+ modules/shepherd/system.scm])
 
 AC_OUTPUT
diff --git a/doc/examples/README b/doc/examples/README
new file mode 100644
index 000..86b4b6a
--- /dev/null
+++ b/doc/examples/README
@@ -0,0 +1,17 @@
+Example configurations for dmd
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+This directory contains personal configuration files and interesting
+configuration possibilities, the latter being in the files starting
+with an underscore character.  You can send me your configuration too
+(or your cute configuration code snippets), and I will include it
+here, provided that it is available under a license that makes it Free
+Software.  Note that for personal configurations I don't want
+ChangeLogs, since I won't maintain your configuration anyway :-) but
+changes in the snippets should be documented like other changes.
+
+Hint: If you send my your configuration, then not only can other
+people learn from it, but I can also make sure that I do not break
+your code too often by making incompatible changes, and if I do it
+anyway but notice it, I might tell you how to change the code to work
+with a new version.
diff --git a/doc/examples/_unknown.scm b/doc/examples/_unknown.scm
new file mode 100644
index 000..fb639ab
--- /dev/null
+++ b/doc/examples/_unknown.scm
@@ -0,0 +1,153 @@
+;; _unknown.scm -- An example for an `unknown' service.
+;; Copyright (C) 2003 Wolfgang Jährling 
+;;
+;; This file is part of the GNU Shepherd.
+;;
+;; The GNU Shepherd 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.
+;;
+;; The GNU Shepherd 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 the GNU Shepherd.  If not, see .
+
+;; Return true if STR1 lacks a character that exists in STR2, but
+;; otherwise both are identical.
+(define (lacks-char-from? str1 str2)
+  (and (= (string-length str1)
+  (+ (string-length str2) 1))
+   (letrec ((next
+ (lambda (pos)
+   (and (not (= pos (string-length str1)))
+(or (string=? str2
+  (string-append
+   (substring str1 0 pos)
+   (substring str1
+   

[Shepherd][PATCH 0/4] Move documentation to a 'doc' directory.

2016-01-27 Thread Mathieu Lirzin


Regarding patch 4, Deleting ‘man-page-target’ function (which was just added)
was a personal choice.  I don't like the use of “fancy” GNU Make features
which provide another layer of complexity on top of Automake's paradigm which
can be obscure by itself for an uninformed public.


Mathieu Lirzin (4):
  build: Build Guile objects before generating man pages.
  doc: Move examples to the 'doc/examples' directory.
  doc: Move manual to the 'doc' directory.
  doc: Move man pages to the 'doc' directory.

 .gitignore |   49 +-
 Makefile.am|   45 +-
 configure.ac   |3 +-
 doc/examples/README|   17 +
 doc/examples/_unknown.scm  |  153 +
 doc/examples/wolfgangj.scm |  132 
 doc/fdl-1.3.texi   |  505 ++
 doc/shepherd.texi  | 1593 
 examples/Makefile.am   |3 -
 examples/README|   17 -
 examples/_unknown.scm  |  153 -
 examples/wolfgangj.scm |  132 
 fdl-1.3.texi   |  505 --
 shepherd.texi  | 1593 
 14 files changed, 2450 insertions(+), 2450 deletions(-)
 create mode 100644 doc/examples/README
 create mode 100644 doc/examples/_unknown.scm
 create mode 100644 doc/examples/wolfgangj.scm
 create mode 100644 doc/fdl-1.3.texi
 create mode 100644 doc/shepherd.texi
 delete mode 100644 examples/Makefile.am
 delete mode 100644 examples/README
 delete mode 100644 examples/_unknown.scm
 delete mode 100644 examples/wolfgangj.scm
 delete mode 100644 fdl-1.3.texi
 delete mode 100644 shepherd.texi

-- 
2.7.0.rc3



[PATCH 00/11]: Rename dmd to shepherd in Guix source.

2016-01-27 Thread Alex Kost
So this is a 'dmd->shepherd' patchset for the Guix side now (thanks, Ludo, for
adding 'shepherd' package!).

If I didn't miss anything (please double check me), the only thing left
"unrenamed" are “po/guix/*.po” files.  Should they also be adjusted or
leave them as they are?

[PATCH 01/11] gnu: elogind: Use 'shepherd' input.
[PATCH 02/11] Use 'shepherd' instead of 'dmd' as init system.
[PATCH 03/11] linux-boot: Rename /root/etc/dmd directory.
[PATCH 04/11] services: Rename %do-not-kill-file.
[PATCH 05/11] doc: Replace references to 'dmd' with 'shepherd'.
[PATCH 06/11] Rename (gnu services dmd) to (gnu services shepherd).
[PATCH 07/11] services: shepherd: Rename shepherd configuration file.
[PATCH 08/11] services: xorg: Use 'shepherd' instead of 'dmd'.
[PATCH 09/11] services: Rename 'dmd' services to 'shepherd'.
[PATCH 10/11] guix system: Rename 'dmd-graph' to 'shepherd-graph'.

[PATCH 11/11] Rename 'dmd' to 'shepherd' in comments and strings.
  This is a final cleanup: a couple of things that don't suit any previous
  patch.



[PATCH 06/11] Rename (gnu services dmd) to (gnu services shepherd).

2016-01-27 Thread Alex Kost
* gnu/services/dmd.scm: Rename to...
* gnu/services/shepherd.scm: ... this.
* gnu/system.scm: Use it.
* gnu/system/install.scm: Likewise.
* gnu/services/xorg.scm: Likewise.
* gnu/services/web.scm: Likewise.
* gnu/services/ssh.scm: Likewise.
* gnu/services/networking.scm: Likewise.
* gnu/services/mail.scm: Likewise.
* gnu/services/lirc.scm: Likewise.
* gnu/services/desktop.scm: Likewise.
* gnu/services/dbus.scm: Likewise.
* gnu/services/databases.scm: Likewise.
* gnu/services/base.scm: Likewise.
* gnu/services/avahi.scm: Likewise.
* guix/scripts/system.scm: Likewise.
* tests/services.scm: Likewise.
* tests/guix-system.sh: Likewise.
* doc/guix.texi (Shepherd Services): Adjust accordingly.
* gnu-system.am (GNU_SYSTEM_MODULES): Likewise.
* po/guix/POTFILES.in: Likewise.
---
 doc/guix.texi   |   8 +-
 gnu-system.am   |   2 +-
 gnu/services/avahi.scm  |   2 +-
 gnu/services/base.scm   |   2 +-
 gnu/services/databases.scm  |   2 +-
 gnu/services/dbus.scm   |   2 +-
 gnu/services/desktop.scm|   2 +-
 gnu/services/dmd.scm| 275 
 gnu/services/lirc.scm   |   2 +-
 gnu/services/mail.scm   |   2 +-
 gnu/services/networking.scm |   2 +-
 gnu/services/shepherd.scm   | 275 
 gnu/services/ssh.scm|   2 +-
 gnu/services/web.scm|   2 +-
 gnu/services/xorg.scm   |   2 +-
 gnu/system.scm  |   2 +-
 gnu/system/install.scm  |   2 +-
 guix/scripts/system.scm |   2 +-
 po/guix/POTFILES.in |   2 +-
 tests/guix-system.sh|   4 +-
 tests/services.scm  |   2 +-
 21 files changed, 298 insertions(+), 298 deletions(-)
 delete mode 100644 gnu/services/dmd.scm
 create mode 100644 gnu/services/shepherd.scm

diff --git a/doc/guix.texi b/doc/guix.texi
index 55e2c67..6c6d170 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -9764,10 +9764,10 @@ extend it by passing it lists of packages to add to the 
system profile.
 
 @cindex PID 1
 @cindex init system
-The @code{(gnu services dmd)} provides a way to define services managed
-by GNU@tie{}Shepherd, which is GuixSD initialization system---the first
-process that is started when the system boots, aka. PID@tie{}1
-(@pxref{Introduction,,, shepherd, GNU Shepherd Manual}).
+The @code{(gnu services shepherd)} provides a way to define services
+managed by GNU@tie{}Shepherd, which is GuixSD initialization
+system---the first process that is started when the system boots,
+aka. PID@tie{}1 (@pxref{Introduction,,, shepherd, GNU Shepherd Manual}).
 
 Services in Shepherd can depend on each other.  For instance, the SSH
 daemon may need to be started after the syslog daemon has been started,
diff --git a/gnu-system.am b/gnu-system.am
index ad59241..75ab91f 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -361,10 +361,10 @@ GNU_SYSTEM_MODULES =  \
   gnu/services/databases.scm   \
   gnu/services/dbus.scm\
   gnu/services/desktop.scm \
-  gnu/services/dmd.scm \
   gnu/services/lirc.scm\
   gnu/services/mail.scm\
   gnu/services/networking.scm  \
+  gnu/services/shepherd.scm\
   gnu/services/ssh.scm \
   gnu/services/web.scm \
   gnu/services/xorg.scm\
diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm
index 909abef..d458042 100644
--- a/gnu/services/avahi.scm
+++ b/gnu/services/avahi.scm
@@ -19,7 +19,7 @@
 (define-module (gnu services avahi)
   #:use-module (gnu services)
   #:use-module (gnu services base)
-  #:use-module (gnu services dmd)
+  #:use-module (gnu services shepherd)
   #:use-module (gnu services dbus)
   #:use-module (gnu system shadow)
   #:use-module (gnu packages avahi)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 6483a66..10df927 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -22,7 +22,7 @@
 (define-module (gnu services base)
   #:use-module (guix store)
   #:use-module (gnu services)
-  #:use-module (gnu services dmd)
+  #:use-module (gnu services shepherd)
   #:use-module (gnu services networking)
   #:use-module (gnu system pam)
   #:use-module (gnu system shadow); 'user-account', etc.
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 8fdd222..c85606e 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -19,7 +19,7 @@
 
 (define-module (gnu services databases)
   #:use-module (gnu services)
-  #:use-module (gnu services dmd)
+  #:use-module (gnu services shepherd)
   #:use-module (gnu system shadow)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages databases)
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index 9b0d198..3e5fa14 100644
--- a/gnu/servic

[PATCH 01/11] gnu: elogind: Use 'shepherd' input.

2016-01-27 Thread Alex Kost
* gnu/packages/freedesktop.scm (elogind)[inputs]: Replace 'dmd' with
  'shepherd'.
---
 gnu/packages/freedesktop.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index b8eb75e..dbddbe6 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -178,7 +178,7 @@ the freedesktop.org XDG Base Directory specification.")
  `(("linux-pam" ,linux-pam)
("linux-libre-headers" ,linux-libre-headers)
("libcap" ,libcap)
-   ("dmd" ,dmd)  ;for 'halt' and 'reboot', invoked
+   ("shepherd" ,shepherd);for 'halt' and 'reboot', invoked
  ;when pressing the power button
("dbus" ,dbus)
("eudev" ,eudev)))
-- 
2.6.3




[PATCH 05/11] doc: Replace references to 'dmd' with 'shepherd'.

2016-01-27 Thread Alex Kost
* doc/guix.texi: Use 'shepherd'/'herd' instead of 'dmd'/'deco'.  Fix
  info references.
---
 doc/guix.texi | 98 ++-
 1 file changed, 50 insertions(+), 48 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index a6ba948..55e2c67 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -194,7 +194,7 @@ Defining Services
 * Service Composition:: The model for composing services.
 * Service Types and Services::  Types and services.
 * Service Reference::   API reference.
-* dmd Services::A particular type of service.
+* Shepherd Services::   A particular type of service.
 
 Packaging Guidelines
 
@@ -5595,7 +5595,7 @@ ext2/ext3/ext4 file systems.
 Once that is done, mount the target root partition under @file{/mnt}.
 
 @item
-Lastly, run @code{deco start cow-store /mnt}.
+Lastly, run @code{herd start cow-store /mnt}.
 
 This will make @file{/gnu/store} copy-on-write, such that packages added
 to it during the installation phase will be written to the target disk
@@ -6492,22 +6492,22 @@ Configuration System}).  System services are typically 
daemons launched
 when the system boots, or other actions needed at that time---e.g.,
 configuring network access.
 
-Services are managed by GNU@tie{}dmd (@pxref{Introduction,,, dmd, GNU
-dmd Manual}).  On a running system, the @command{deco} command allows
-you to list the available services, show their status, start and stop
-them, or do other specific operations (@pxref{Jump Start,,, dmd, GNU dmd
-Manual}).  For example:
+Services are managed by GNU@tie{}Shepherd (@pxref{Introduction,,,
+shepherd, GNU Shepherd Manual}).  On a running system, the
+@command{herd} command allows you to list the available services, show
+their status, start and stop them, or do other specific operations
+(@pxref{Jump Start,,, shepherd, GNU Shepherd Manual}).  For example:
 
 @example
-# deco status dmd
+# herd status
 @end example
 
 The above command, run as @code{root}, lists the currently defined
-services.  The @command{deco doc} command shows a synopsis of the given
+services.  The @command{herd doc} command shows a synopsis of the given
 service:
 
 @example
-# deco doc nscd
+# herd doc nscd
 Run libc's name service cache daemon (nscd).
 @end example
 
@@ -6516,9 +6516,9 @@ have the effect you would expect.  For instance, the 
commands below stop
 the nscd service and restart the Xorg display server:
 
 @example
-# deco stop nscd
+# herd stop nscd
 Service nscd has been stopped.
-# deco restart xorg-server
+# herd restart xorg-server
 Service xorg-server has been stopped.
 Service xorg-server has been started.
 @end example
@@ -8947,7 +8947,7 @@ Tell the initial RAM disk to load @var{boot}, a file 
containing a Scheme
 program, once it has mounted the root file system.
 
 GuixSD uses this option to yield control to a boot program that runs the
-service activation programs and then spawns GNU@tie{}dmd, the
+service activation programs and then spawns GNU@tie{}Shepherd, the
 initialization system.
 
 @item --root=@var{root}
@@ -9332,8 +9332,9 @@ produces a PDF file showing the extension relations among 
services.
 @anchor{system-dmd-graph}
 @item dmd-graph
 Emit in Dot/Graphviz format to standard output the @dfn{dependency
-graph} of dmd services of the operating system defined in @var{file}.
-@xref{dmd Services}, for more information and for an example graph.
+graph} of Shepherd services of the operating system defined in
+@var{file}.  @xref{Shepherd Services}, for more information and for an
+example graph.
 
 @end table
 
@@ -9400,7 +9401,7 @@ them in the first place?  And what is a service anyway?
 * Service Composition:: The model for composing services.
 * Service Types and Services::  Types and services.
 * Service Reference::   API reference.
-* dmd Services::A particular type of service.
+* Shepherd Services::   A particular type of service.
 @end menu
 
 @node Service Composition
@@ -9423,15 +9424,15 @@ directory.
 
 @cindex service extensions
 GuixSD services are connected by @dfn{extensions}.  For instance, the
-secure shell service @emph{extends} dmd---GuixSD's initialization system,
-running as PID@tie{}1---by giving it the command lines to start and stop
-the secure shell daemon (@pxref{Networking Services,
+secure shell service @emph{extends} Shepherd---GuixSD's initialization
+system, running as PID@tie{}1---by giving it the command lines to start
+and stop the secure shell daemon (@pxref{Networking Services,
 @code{lsh-service}}); the UPower service extends the D-Bus service by
 passing it its @file{.service} specification, and extends the udev
 service by passing it device management rules (@pxref{Desktop Services,
-@code{upower-service}}); the Guix daemon service extends dmd by passing
-it the command lines to start and stop the daemon, and extends the
-account service by passing it a list of required build user accounts
+@code{upower

[PATCH 08/11] services: xorg: Use 'shepherd' instead of 'dmd'.

2016-01-27 Thread Alex Kost
* gnu/services/xorg.scm (slim-configuration-dmd): Rename to...
  (slim-configuration-shepherd): ... this.
  (slim-shepherd-service): Adjust accordingly.
  (slim-service): Take 'shepherd' keyword argument.
---
 gnu/services/xorg.scm | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 4b81bd9..fbe6fad 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -236,8 +236,8 @@ which should be passed to this script as the first 
argument.  If not, the
   (theme-name slim-configuration-theme-name)
   (xauth slim-configuration-xauth
  (default xauth))
-  (dmd slim-configuration-dmd
-   (default dmd))
+  (shepherd slim-configuration-shepherd
+(default shepherd))
   (bash slim-configuration-bash
 (default bash))
   (auto-login-session slim-configuration-auto-login-session)
@@ -257,7 +257,7 @@ which should be passed to this script as the first 
argument.  If not, the
   (slim(slim-configuration-slim config))
   (xauth   (slim-configuration-xauth config))
   (startx  (slim-configuration-startx config))
-  (dmd (slim-configuration-dmd config))
+  (shepherd   (slim-configuration-shepherd config))
   (theme-name (slim-configuration-theme-name config)))
   (mixed-text-file "slim.cfg"  "
 default_path /run/current-system/profile/bin
@@ -272,8 +272,8 @@ login_cmd  exec " xinitrc " %session
 sessiondir /run/current-system/profile/share/xsessions
 session_msg session (F1 to change):
 
-halt_cmd " dmd "/sbin/halt
-reboot_cmd " dmd "/sbin/reboot\n"
+halt_cmd " shepherd "/sbin/halt
+reboot_cmd " shepherd "/sbin/reboot\n"
 (if (slim-configuration-auto-login? config)
 (string-append "auto_login yes\ndefault_user "
(slim-configuration-default-user config) "\n")
@@ -323,7 +323,7 @@ reboot_cmd " dmd "/sbin/reboot\n"
(default-user "")
(theme %default-slim-theme)
(theme-name %default-slim-theme-name)
-   (xauth xauth) (dmd dmd) (bash bash)
+   (xauth xauth) (shepherd shepherd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
(startx (xorg-start-command)))
@@ -358,7 +358,7 @@ theme."
 (allow-empty-passwords? allow-empty-passwords?)
 (auto-login? auto-login?) (default-user default-user)
 (theme theme) (theme-name theme-name)
-(xauth xauth) (dmd dmd) (bash bash)
+(xauth xauth) (shepherd shepherd) (bash bash)
 (auto-login-session auto-login-session)
 (startx startx
 
-- 
2.6.3




[PATCH 03/11] linux-boot: Rename /root/etc/dmd directory.

2016-01-27 Thread Alex Kost
* gnu/build/linux-boot.scm (mount-root-file-system): Rename
  "/root/etc/dmd" to "/root/etc/shepherd".
---
 gnu/build/linux-boot.scm | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index 0fc90af..c34a3f7 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -242,10 +242,10 @@ the last argument of `mknod'."
 is true, mount ROOT read-only and make it a union with a writable tmpfs using
 UNIONFS."
   (define (mark-as-not-killable pid)
-;; Tell the 'user-processes' dmd service that PID must be kept alive when
-;; shutting down.
-(mkdir-p "/root/etc/dmd")
-(let ((port (open-file "/root/etc/dmd/do-not-kill" "a")))
+;; Tell the 'user-processes' shepherd service that PID must be kept alive
+;; when shutting down.
+(mkdir-p "/root/etc/shepherd")
+(let ((port (open-file "/root/etc/shepherd/do-not-kill" "a")))
   (chmod port #o600)
   (write pid port)
   (newline port)
-- 
2.6.3




[PATCH 02/11] Use 'shepherd' instead of 'dmd' as init system.

2016-01-27 Thread Alex Kost
* gnu/services/dmd.scm (dmd-boot-gexp): Use binary from 'shepherd' package.
  (dmd-root-service-type): Use 'shepherd' package.
  (%default-modules): Use (shepherd service) module.
* gnu/services/base.scm (%root-file-system-dmd-service): Use
  'stop-logging' procedure to close shepherd log.
---
 gnu/services/base.scm |  9 +++--
 gnu/services/dmd.scm  | 10 +-
 2 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 0399c00..fbb29c1 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès 
-;;; Copyright © 2015 Alex Kost 
+;;; Copyright © 2015, 2016 Alex Kost 
 ;;; Copyright © 2015 Mark H Weaver 
 ;;; Copyright © 2015 Sou Bunnbu 
 ;;;
@@ -160,12 +160,9 @@
  (call-with-blocked-asyncs
   (lambda ()
 (let ((null (%make-void-port "w")))
-  ;; Close 'dmd.log'.
+  ;; Close 'shepherd.log'.
   (display "closing log\n")
-  ;; XXX: Ideally we'd use 'stop-logging', but that one
-  ;; doesn't actually close the port as of dmd 0.1.
-  (close-port (@@ (dmd comm) log-output-port))
-  (set! (@@ (dmd comm) log-output-port) null)
+  ((@ (shepherd comm) stop-logging))
 
   ;; Redirect the default output ports..
   (set-current-output-port null)
diff --git a/gnu/services/dmd.scm b/gnu/services/dmd.scm
index fb3d332..828d781 100644
--- a/gnu/services/dmd.scm
+++ b/gnu/services/dmd.scm
@@ -77,9 +77,9 @@
 (false-if-exception (close-fdes fd))
 (loop (+ 1 fd
 
-;; Start dmd.
-(execl (string-append #$dmd "/bin/dmd")
-   "dmd" "--config" #$dmd-conf)
+;; Start shepherd.
+(execl (string-append #$shepherd "/bin/shepherd")
+   "shepherd" "--config" #$dmd-conf)
 
 (define dmd-root-service-type
   (service-type
@@ -90,7 +90,7 @@
(extend append)
(extensions (list (service-extension boot-service-type dmd-boot-gexp)
  (service-extension profile-service-type
-(const (list dmd)))
+(const (list shepherd)))
 
 (define %dmd-root-service
   ;; The root dmd service, aka. PID 1.  Its parameter is a list of
@@ -113,7 +113,7 @@ service that extends DMD-ROOT-SERVICE-TYPE and nothing 
else."
 
 (define %default-modules
   ;; Default set of modules visible in a service's file.
-  `((dmd service)
+  `((shepherd service)
 (oop goops)
 (guix build utils)
 (guix build syscalls)))
-- 
2.6.3




[PATCH 10/11] guix system: Rename 'dmd-graph' to 'shepherd-graph'.

2016-01-27 Thread Alex Kost
* doc/images/dmd-graph.dot: Rename to...
* doc/images/shepherd-graph.dot: ... this.
* doc.am (DOT_FILES): Adjust accordingly.
* .gitignore: Likewise.
* guix/scripts/system.scm (dmd-service-node-label)
  (dmd-service-node-type, export-dmd-graph): Rename to...
  (shepherd-service-node-label, shepherd-service-node-type)
  (export-shepherd-graph): ... this.
  (show-help, process-action, process-command): Rename 'dmd-graph' to
  'shepherd-graph'.
* emacs/guix-command.el (guix-command-additional-execute-arguments)
  (guix-command-special-executors): Likewise.
* doc/guix.texi: Likewise.
* doc/emacs.texi (Emacs Popup Interface): Likewise.
---
 .gitignore|  2 +-
 doc.am|  2 +-
 doc/emacs.texi|  2 +-
 doc/guix.texi | 10 +++---
 doc/images/dmd-graph.dot  | 75 ---
 doc/images/shepherd-graph.dot | 75 +++
 emacs/guix-command.el |  4 +--
 guix/scripts/system.scm   | 24 +++---
 8 files changed, 97 insertions(+), 97 deletions(-)
 delete mode 100644 doc/images/dmd-graph.dot
 create mode 100644 doc/images/shepherd-graph.dot

diff --git a/.gitignore b/.gitignore
index 098c9bb..63ade12 100644
--- a/.gitignore
+++ b/.gitignore
@@ -133,7 +133,7 @@ GTAGS
 /doc/images/service-graph.png
 /doc/images/service-graph.eps
 /doc/images/service-graph.pdf
-/doc/images/dmd-graph.png
+/doc/images/shepherd-graph.png
 /doc/images/bootstrap-packages.png
 /doc/images/bootstrap-packages.eps
 /doc/images/bootstrap-packages.pdf
diff --git a/doc.am b/doc.am
index f15efcc..446ce5b 100644
--- a/doc.am
+++ b/doc.am
@@ -26,7 +26,7 @@ DOT_FILES =   \
   doc/images/coreutils-graph.dot   \
   doc/images/coreutils-bag-graph.dot   \
   doc/images/service-graph.dot \
-  doc/images/dmd-graph.dot
+  doc/images/shepherd-graph.dot
 
 DOT_VECTOR_GRAPHICS =  \
   $(DOT_FILES:%.dot=%.eps) \
diff --git a/doc/emacs.texi b/doc/emacs.texi
index 8020e0a..92a9107 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -578,7 +578,7 @@ GNU Emacs Manual}).
 
 @end itemize
 
-Several commands (@command{guix graph}, @command{guix system dmd-graph}
+Several commands (@command{guix graph}, @command{guix system shepherd-graph}
 and @command{guix system extension-graph}) also have a ``View graph''
 action, which allows you to view a generated graph using @command{dot}
 command (specified by @code{guix-dot-program} variable).  By default a
diff --git a/doc/guix.texi b/doc/guix.texi
index 9882264..74a493a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -9329,8 +9329,8 @@ $ guix system extension-graph @var{file} | dot -Tpdf > 
services.pdf
 
 produces a PDF file showing the extension relations among services.
 
-@anchor{system-dmd-graph}
-@item dmd-graph
+@anchor{system-shepherd-graph}
+@item shepherd-graph
 Emit in Dot/Graphviz format to standard output the @dfn{dependency
 graph} of Shepherd services of the operating system defined in
 @var{file}.  @xref{Shepherd Services}, for more information and for an
@@ -9775,11 +9775,11 @@ which in turn can only happen once all the file systems 
have been
 mounted.  The simple operating system defined earlier (@pxref{Using the
 Configuration System}) results in a service graph like this:
 
-@image{images/dmd-graph,,5in,Typical dmd service graph.}
+@image{images/shepherd-graph,,5in,Typical shepherd service graph.}
 
 You can actually generate such a graph for any operating system
-definition using the @command{guix system dmd-graph} command
-(@pxref{system-dmd-graph, @command{guix system dmd-graph}}).
+definition using the @command{guix system shepherd-graph} command
+(@pxref{system-shepherd-graph, @command{guix system shepherd-graph}}).
 
 The @var{%shepherd-root-service} is a service object representing
 PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended
diff --git a/doc/images/dmd-graph.dot b/doc/images/dmd-graph.dot
deleted file mode 100644
index 220a2af..000
--- a/doc/images/dmd-graph.dot
+++ /dev/null
@@ -1,75 +0,0 @@
-digraph "Guix dmd-service" {
-  "user-file-systems" [label = "user-file-systems", shape = box, fontname = 
Helvetica];
-  "user-processes" -> "user-file-systems" [color = red];
-  "user-processes" [label = "user-processes", shape = box, fontname = 
Helvetica];
-  "nscd" -> "user-processes" [color = red];
-  "guix-daemon" -> "user-processes" [color = red];
-  "syslogd" -> "user-processes" [color = red];
-  "term-tty6" -> "user-processes" [color = red];
-  "term-tty5" -> "user-processes" [color = red];
-  "term-tty4" -> "user-processes" [color = red];
-  "term-tty3" -> "user-processes" [color = red];
-  "term-tty2" -> "user-processes" [color = red];
-  "term-tty1" -> "user-processes" [color = red];
-  "networking" -> "user-processes" [color = red];
-  "nscd" [label = "nscd", shape = box, fontname = Helvetica];
-  

[PATCH 09/11] services: Rename 'dmd' services to 'shepherd'.

2016-01-27 Thread Alex Kost
* gnu/services/shepherd.scm (dmd-root-service-type, %dmd-root-service)
  (dmd-service-type, , dmd-service, dmd-service?)
  (make-dmd-service, dmd-service-documentation, dmd-service-provision)
  (dmd-service-requirement, dmd-service-respawn, dmd-service-start)
  (dmd-service-stop, dmd-service-auto-start?, dmd-service-modules)
  (dmd-service-imported-modules, dmd-service-file-name, dmd-service-file)
  (dmd-service-back-edges): Rename to...
  (shepherd-root-service-type, %shepherd-root-service, shepherd-service-type)
  (, shepherd-service, shepherd-service?)
  (make-shepherd-service, shepherd-service-documentation)
  (shepherd-service-provision, shepherd-service-requirement)
  (shepherd-service-respawn, shepherd-service-start)
  (shepherd-service-stop, shepherd-service-auto-start?)
  (shepherd-service-modules, shepherd-service-imported-modules)
  (shepherd-service-file-name, shepherd-service-file)
  (shepherd-service-back-edges): ...this
* gnu/services.scm: Adjust comments.
* gnu/services/avahi.scm (avahi-dmd-service): Rename to...
  (avahi-shepherd-service): ... this.
* gnu/services/base.scm (%root-file-system-dmd-service)
  (file-system->dmd-service-name, mapped-device->dmd-service-name)
  (dependency->dmd-service-name, file-system-dmd-service)
  (mingetty-dmd-service, nscd-dmd-service, guix-dmd-service)
  (guix-publish-dmd-service, udev-dmd-service, gpm-dmd-service): Rename to...
  (%root-file-system-shepherd-service)
  (file-system->shepherd-service-name, mapped-device->shepherd-service-name)
  (dependency->shepherd-service-name, file-system-shepherd-service)
  (mingetty-shepherd-service, nscd-shepherd-service, guix-shepherd-service)
  (guix-publish-shepherd-service, udev-shepherd-service)
  (gpm-shepherd-service): ... this.
* gnu/services/databases.scm (postgresql-dmd-service): Rename to...
  (postgresql-shepherd-service): ... this.
* gnu/services/desktop.scm (upower-dmd-service, elogind-dmd-service):
  Rename to...
  (upower-shepherd-service, elogind-shepherd-service): ... this.
* gnu/services/dbus.scm (dbus-dmd-service): Rename to...
  (dbus-shepherd-service): ... this.
* gnu/services/lirc.scm (lirc-dmd-service): Rename to...
  (lirc-shepherd-service): ... this.
* gnu/services/mail.scm (dovecot-dmd-service): Rename to...
  (dovecot-shepherd-service): ... this.
* gnu/services/networking.scm (ntp-dmd-service, tor-dmd-service)
  (bitlbee-dmd-service, wicd-dmd-service, network-manager-dmd-service): Rename 
to...
  (dbus-shepherd-service): ... this.
* gnu/services/ssh.scm (lsh-dmd-service): Rename to...
  (lsh-shepherd-service): ... this.
* gnu/services/web.scm (nginx-dmd-service): Rename to...
  (nginx-shepherd-service): ... this.
* gnu/services/xorg.scm (slim-dmd-service): Rename to...
  (slim-shepherd-service): ... this.
* gnu/system.scm (essential-services): Use '%shepherd-root-service'.
* gnu/system/install.scm (cow-store-service-type): Adjust accordingly.
* guix/scripts/system.scm (dmd-service-node-label, dmd-service-node-type)
  (export-dmd-graph): Likewise.
* tests/guix-system.sh: Likewise.
* tests/services.scm ("dmd-service-back-edges"): Rename to...
  ("shepherd-service-back-edges"): Adjust accordingly.
* doc/guix.texi: Likewise.
* doc/images/service-graph.dot: Use 'shepherd' service name.
---
 doc/guix.texi|  32 +-
 doc/images/service-graph.dot |  14 ++--
 gnu/services.scm |   6 +-
 gnu/services/avahi.scm   |  10 +--
 gnu/services/base.scm| 126 ++--
 gnu/services/databases.scm   |   8 +--
 gnu/services/dbus.scm|   8 +--
 gnu/services/desktop.scm |  20 +++---
 gnu/services/lirc.scm|   8 +--
 gnu/services/mail.scm|  10 +--
 gnu/services/networking.scm  |  54 
 gnu/services/shepherd.scm| 149 ++-
 gnu/services/ssh.scm |  10 +--
 gnu/services/web.scm |   8 +--
 gnu/services/xorg.scm|   8 +--
 gnu/system.scm   |  10 +--
 gnu/system/install.scm   |   4 +-
 guix/scripts/system.scm  |  24 +++
 tests/guix-system.sh |   4 +-
 tests/services.scm   |  14 ++--
 20 files changed, 267 insertions(+), 260 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 6c6d170..9882264 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -9472,7 +9472,7 @@ with a simple example, the service type for the Guix 
build daemon
   (service-type
(name 'guix)
(extensions
-(list (service-extension dmd-root-service-type guix-dmd-service)
+(list (service-extension shepherd-root-service-type guix-shepherd-service)
   (service-extension account-service-type guix-accounts)
   (service-extension activation-service-type guix-activation)
 @end example
@@ -9496,11 +9496,11 @@ exception is the @dfn{boot service type}, which is the 
ultimate service.
 In this example, @var{guix-service-type} extends three services:
 
 @table @var
-@item dmd-root-service-type
-The @var{guix-dm

[PATCH 04/11] services: Rename %do-not-kill-file.

2016-01-27 Thread Alex Kost
* gnu/services/base.scm (%do-not-kill-file): Rename to
  "/etc/shepherd/do-not-kill".
---
 gnu/services/base.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index fbb29c1..6483a66 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -325,7 +325,7 @@ in KNOWN-MOUNT-POINTS when it is stopped."
 (define %do-not-kill-file
   ;; Name of the file listing PIDs of processes that must survive when halting
   ;; the system.  Typical example is user-space file systems.
-  "/etc/dmd/do-not-kill")
+  "/etc/shepherd/do-not-kill")
 
 (define user-processes-service-type
   (dmd-service-type
-- 
2.6.3




[PATCH 07/11] services: shepherd: Rename shepherd configuration file.

2016-01-27 Thread Alex Kost
* gnu/services/shepherd.scm (dmd-configuration-file): Rename to...
  (shepherd-configuration-file): ... this.  Use "shepherd.conf" name.
  (dmd-boot-gexp): Use it.
---
 gnu/services/shepherd.scm | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index a33985e..ccb71f3 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -55,13 +55,13 @@
 
 ;;; Commentary:
 ;;;
-;;; Instantiating system services as a dmd configuration file.
+;;; Instantiating system services as a shepherd configuration file.
 ;;;
 ;;; Code:
 
 
 (define (dmd-boot-gexp services)
-  (mlet %store-monad ((dmd-conf (dmd-configuration-file services)))
+  (mlet %store-monad ((shepherd-conf (shepherd-configuration-file services)))
 (return #~(begin
 ;; Keep track of the booted system.
 (false-if-exception (delete-file "/run/booted-system"))
@@ -79,7 +79,7 @@
 
 ;; Start shepherd.
 (execl (string-append #$shepherd "/bin/shepherd")
-   "shepherd" "--config" #$dmd-conf)
+   "shepherd" "--config" #$shepherd-conf)
 
 (define dmd-root-service-type
   (service-type
@@ -207,8 +207,8 @@ stored."
 #:start #$(dmd-service-start service)
 #:stop #$(dmd-service-stop service)
 
-(define (dmd-configuration-file services)
-  "Return the dmd configuration file for SERVICES."
+(define (shepherd-configuration-file services)
+  "Return the shepherd configuration file for SERVICES."
   (define modules
 (delete-duplicates
  (append-map dmd-service-imported-modules services)))
@@ -242,7 +242,7 @@ stored."
(filter dmd-service-auto-start?
services)
 
-(gexp->file "dmd.conf" config)))
+(gexp->file "shepherd.conf" config)))
 
 (define (dmd-service-back-edges services)
   "Return a procedure that, when given a  from SERVICES, returns
-- 
2.6.3




[PATCH 11/11] Rename 'dmd' to 'shepherd' in comments and strings.

2016-01-27 Thread Alex Kost
* build-aux/hydra/demo-os.scm (operating-system)[issue]: Point to
  shepherd instead of dmd.
* ROADMAP: Likewise.
* gnu/build/install.scm (directives): Adjust comment.
---
 ROADMAP | 2 +-
 build-aux/hydra/demo-os.scm | 2 +-
 gnu/build/install.scm   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ROADMAP b/ROADMAP
index 45fce45..2475cb6 100644
--- a/ROADMAP
+++ b/ROADMAP
@@ -77,6 +77,6 @@ Freenode!
 + build containers like guix-daemon does
 + provide a Plash-like interface in Bash
   - daemon rewritten in Guile
-  - more dmd integration
+  - more shepherd integration
 + monitor network interfaces and start/stop events based on that
 + include a DHCP client written in Scheme
diff --git a/build-aux/hydra/demo-os.scm b/build-aux/hydra/demo-os.scm
index c6e05ef..c7becf8 100644
--- a/build-aux/hydra/demo-os.scm
+++ b/build-aux/hydra/demo-os.scm
@@ -57,7 +57,7 @@ This is an alpha preview of the GNU system.  Welcome.
 
 This image features the GNU Guix package manager, which was used to
 build it (http://www.gnu.org/software/guix/).  The init system is
-GNU dmd (http://www.gnu.org/software/dmd/).
+GNU Shepherd (http://www.gnu.org/software/shepherd/).
 
 You can log in as 'guest' or 'root' with no password.
 ")
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 9085e22..9785b6d 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -103,7 +103,7 @@ STORE."
 (directory ,store 0 3 #o1775)
 
 (directory "/etc")
-(directory "/var/log")  ; for dmd
+(directory "/var/log")  ; for shepherd
 (directory "/var/guix/gcroots")
 (directory "/var/empty"); for no-login accounts
 (directory "/var/db")   ; for dhclient, etc.
-- 
2.6.3




Re: [PATCH 0/1] Curl security update (CVE-2016-0755)

2016-01-27 Thread Leo Famulari
On Wed, Jan 27, 2016 at 09:03:45PM +0100, Andreas Enge wrote:
> On Wed, Jan 27, 2016 at 01:57:22PM -0500, Leo Famulari wrote:
> > This patch updates curl to 7.47.0, fixing CVE-2016-0755 [0][1].
> 
> Ouch!
> 
> guix refresh -l curl
> Building the following 318 packages would ensure 772 dependent packages are 
> rebuilt
> 
> This is about a quarter of all packages.
> 
> > Feel free to apply the patch where appropriate.
> 
> I would suggest the following: Quickly merge core-updates once the packages
> on x86_64 are built (there are not many left, and qt-5 did build successfully
> sequentially, so this could be done tomorrow), then create a new
> security-updates branch with the patch for curl.
> 
> What do you think?

Civodul and mark_weaver discussed how best to apply it on #guix. I think
the plan is to build it in a branch with tomorrow's OpenSSL security
update.

> 
> Andreas
> 



Re: [Shepherd][PATCH 1/4] build: Build Guile objects before generating man pages.

2016-01-27 Thread Ludovic Courtès
Mathieu Lirzin  skribis:

> Before that, man pages were not successfully generated for VPATH builds.

How so?

Ludo’.



Re: [Shepherd][PATCH 2/4] doc: Move examples to the 'doc/examples' directory.

2016-01-27 Thread Ludovic Courtès
Mathieu Lirzin  skribis:

> * doc/examples/README: moved from 'examples' directory.
> * doc/examples/_unknown.scm: Likewise.
> * doc/examples/wolfgangj.scm: Likewise.
> * examples/Makefile.am: Delete file.
> * configure.ac (AC_CONFIG_FILES): Adapt to it.
> * Makefile.am (EXTRA_DIST): Add files from "doc/examples" directory.
> (SUBDIRS): Delete variable.

OK!

Ludo'.



Re: [Shepherd][PATCH 4/4] doc: Move man pages to the 'doc' directory.

2016-01-27 Thread Ludovic Courtès
Mathieu Lirzin  skribis:

> * Makefile.am (man-page-target): Delete function.
> (dist_man1_MANS, dist_man8_MANS): Prefix each element with 'doc/'.
> (shepherd.1): Rename to ...
> (doc/shepherd.1): ... this.
> (doc/%.1, doc/%.8): New targets.
> (gen_man): New variable.
> * .gitignore: Update it.

OK!

I thought removing the function might increase duplication, but the way
you did it does not.

Ludo’.



Re: [Shepherd][PATCH 3/4] doc: Move manual to the 'doc' directory.

2016-01-27 Thread Ludovic Courtès
Mathieu Lirzin  skribis:

> * doc/shepherd.texi: Moved from the root directory.
> * doc/fdl-1.3.texi: Likewise.
> * Makefile.am (info_TEXINFOS): Add a 'doc/' prefix to 'shepherd.texi'.
> (EXTRA_DIST): Remove 'fdl-1.3.texi'.
> (doc_shepherd_TEXINFOS): New variable.
> * .gitignore: Update it.

OK!  An improvement I had been contemplating for some time…  ;-)

Thanks,
Ludo'.



Re: New armhf build machine

2016-01-27 Thread Ludovic Courtès
Andreas Enge  skribis:

> thanks to a generous donation by Kosagi (yes, the company of the Novena
> inventors!), the Guix project is in the possession of two new Novena boards.
> One of them is sitting in my living room now and happily compiling packages.
>
> I wrote two blog posts on how to install and set up such a build machine:
>   
> http://enge.fr/blog/2016/01/novena-board-set-up-for-the-gnu-guix-build-farm-part-1/
>   
> http://enge.fr/blog/2016/01/novena-board-set-up-for-the-gnu-guix-build-farm-part-2/
>
> Thanks again to Bunnie of Kosagi!

Yes, thumbs up!  And thank you for setting it up and writing about it!

Ludo’.



Re: [Shepherd][PATCH 1/4] build: Build Guile objects before generating man pages.

2016-01-27 Thread Mathieu Lirzin
l...@gnu.org (Ludovic Courtès) writes:

> Mathieu Lirzin  skribis:
>
>> Before that, man pages were not successfully generated for VPATH builds.
>
> How so?

Using commit bc7757cd1f3d0a162e765d0ecebde052765a6a23:

--8<---cut here---start->8---
mthl@godel:~/src/shepherd$ git clean -xdf
[...]
mthl@godel:~/src/shepherd$ autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force 
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
autoreconf: configure.ac: not using Autoheader
autoreconf: running: automake --add-missing --copy --force-missing
Unescaped left brace in regex is deprecated, passed through in regex; marked by 
<-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at /usr/bin/automake line 3936.
configure.ac:53: installing 'build-aux/compile'
configure.ac:17: installing 'build-aux/config.guess'
configure.ac:17: installing 'build-aux/config.sub'
configure.ac:11: installing 'build-aux/install-sh'
configure.ac:11: installing 'build-aux/missing'
Makefile.am: installing './INSTALL'
Makefile.am:65: installing 'build-aux/mdate-sh'
Makefile.am:65: installing 'build-aux/texinfo.tex'
parallel-tests: installing 'build-aux/test-driver'
autoreconf: Leaving directory `.'
mthl@godel:~/src/shepherd$ mkdir bd
mthl@godel:~/src/shepherd$ cd bd
mthl@godel:~/src/shepherd/bd$ ../configure
[...]
configure: creating ./config.status
config.status: creating Makefile
config.status: creating examples/Makefile
config.status: creating modules/shepherd/system.scm
config.status: executing depfiles commands
mthl@godel:~/src/shepherd/bd$ make
/bin/mkdir -p "`dirname modules/shepherd/config.scm`"
/bin/sed -e 's,%PREFIX%,/usr/local,g' -e 
's,%modsrcdir%,/home/mthl/src/shepherd/bd/../modules,g' -e 
's,%modbuilddir%,/home/mthl/src/shepherd/bd/modules,g' -e 
's,%localstatedir%,/usr/local/var,g' -e 's,%sysconfdir%,/usr/local/etc,g' -e 
's,%VERSION%,0.3,g' -e 's,%PACKAGE_BUGREPORT%,bug-g...@gnu.org,g' -e 
's,%PACKAGE_NAME%,GNU Shepherd,g' -e 
's,%PACKAGE_URL%,http://www.gnu.org/software/shepherd/,g' -e 
's,%GUILE%,/usr/bin/guile,g' < ../modules/shepherd/config.scm.in 
>modules/shepherd/config.scm
make  all-recursive
make[1]: Entering directory '/home/mthl/src/shepherd/bd'
Making all in examples
make[2]: Entering directory '/home/mthl/src/shepherd/bd/examples'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/mthl/src/shepherd/bd/examples'
make[2]: Entering directory '/home/mthl/src/shepherd/bd'
Updating ../version.texi
  MAKEINFO ../shepherd.info
  GEN  shepherd
  GEN  herd
  GEN  halt
  GEN  reboot
  HELP2MAN shepherd.1
help2man: impossible de récupérer l'information « --help » de ./shepherd
Try `--no-discard-stderr' if option outputs to stderr
Makefile:1943: recipe for target 'shepherd.1' failed
make[2]: [shepherd.1] Error 1 (ignorée)
  HELP2MAN herd.1
help2man: impossible de récupérer l'information « --help » de ./herd
Try `--no-discard-stderr' if option outputs to stderr
Makefile:1940: recipe for target 'herd.1' failed
make[2]: [herd.1] Error 1 (ignorée)
  HELP2MAN halt.8
help2man: impossible de récupérer l'information « --help » de ./halt
Try `--no-discard-stderr' if option outputs to stderr
Makefile:1940: recipe for target 'halt.8' failed
make[2]: [halt.8] Error 1 (ignorée)
  HELP2MAN reboot.8
help2man: impossible de récupérer l'information « --help » de ./reboot
Try `--no-discard-stderr' if option outputs to stderr
Makefile:1940: recipe for target 'reboot.8' failed
make[2]: [reboot.8] Error 1 (ignorée)
  GUILEC   modules/shepherd.go
  GUILEC   modules/shepherd/scripts/halt.go
  GUILEC   modules/shepherd/scripts/herd.go
  GUILEC   modules/shepherd/scripts/reboot.go
  GUILEC   modules/shepherd/config.go
  GUILEC   modules/shepherd/system.go
  GUILEC   modules/shepherd/args.go
  GUILEC   modules/shepherd/service.go
  GUILEC   modules/shepherd/support.go
../modules/shepherd/support.scm:203:2: warning: non-literal format string
  GUILEC   modules/shepherd/runlevel.go
../modules/shepherd/runlevel.scm:106:6: warning: possibly unbound variable 
`next-services'
  GUILEC   modules/shepherd/comm.go
make[2]: Leaving directory '/home/mthl/src/shepherd/bd'
make[1]: Leaving directory '/home/mthl/src/shepherd/bd'
mthl@godel:~/src/shepherd/bd$ 
--8<---cut here---end--->8---

Another iteration of ‘make’ is required to build the man pages.

I think this is important enough to be fixed before the release.  ;)

--
Mathieu Lirzin.



Re: [PATCH] gnu: Add gtk-vnc.

2016-01-27 Thread 宋文武
ren...@openmailbox.org writes:

> Hi again,
>
> i attach the patch for your revision.
Hi, this patch doesn't apply cleanly.
I made follow adjustments with it:

- Move it to gnome.scm, it's a gnome project after all :-)
- Enable SASL support.
- Remove "--enable-vala", it's auto-detected.
- Replace gjs with gobject-introspection, I don't see any use of
  gjs from it.

>From db436ed87cb94b82c230962b5e454b8a440475ee Mon Sep 17 00:00:00 2001
From: Rene Saavedra 
Date: Wed, 27 Jan 2016 20:07:12 +0100
Subject: [PATCH] gnu: Add gtk-vnc.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* gnu/packages/gnome.scm (gtk-vnc): New variable.

Co-authored-by: 宋文武 
---
 gnu/packages/gnome.scm | 38 ++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9ce750d..7656f38 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -45,6 +45,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages dns)
@@ -4567,3 +4568,40 @@ properties, screen resolution, and other GNOME parameters.")
  "GNOME Shell provides core user interface functions for the GNOME desktop,
 like switching to windows and launching applications.")
 (license license:gpl2+)))
+
+(define-public gtk-vnc
+  (package
+(name "gtk-vnc")
+(version "0.5.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "mirror://gnome/sources/" name "/"
+   (version-major+minor version) "/"
+   name "-" version ".tar.xz"))
+   (sha256
+(base32
+ "1rwwdh7lb16xdmy76ca6mpqfc3zfl3a4bkcr0qb6hs6ffrxak2j8"
+(build-system gnu-build-system)
+(arguments
+ '(#:configure-flags '("--with-gtk=3.0")))
+(propagated-inputs
+ `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
+(inputs
+ `(("cyrus-sasl" ,cyrus-sasl)
+   ("gnutls" ,gnutls)
+   ("libgcrypt" ,libgcrypt)
+   ("pulseaudio" ,pulseaudio)))
+(native-inputs
+ `(("glib:bin" ,glib "bin")
+   ("gobject-introspection" ,gobject-introspection)
+   ("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)
+   ("vala" ,vala)))
+(home-page "https://wiki.gnome.org/Projects/gtk-vnc";)
+(synopsis "VNC viewer widget for GTK+")
+(description
+ "GTK-VNC is an API used by Vinagre client application,
+Boxes and virt-viewer.  GTK-VNC supports authentication extensions
+as SASL, TLS, VeNCrypt.  Additionally supports encoding extensions.")
+(license license:lgpl2.1+)))
-- 
2.5.0


And the description still needs more love. I think saying it's "an API"
for some applications doesn't show much about what it does. Maybe
"remote desktop" should be mentioned.

Well, I'm surely not the right person to review descriptions, just my
two coins.


icedtea-1, icedtea-2 security updates

2016-01-27 Thread Leo Famulari
There are security updates for icedtea-1 [0] and icedtea-2 [1]. The
updated versions are 1.3.10 and 2.6.4, respectively.

I spent some time trying to build these new versions but I am having
trouble.

The upstream tarballs contain their own patches on the bundled OpenJDK
source code. For both icedtea-1 and icedtea-2, some of these patches
fail to apply.

I looked into the failing patches to see if it could be fixed by
adjusting, for example, the whitespace the parameters of `patch`, but
the strings to be matched don't exist in the relevant files.

I _think_ this is an upstream bug. However, the icedtea-* package
definitions are complex and I'd like it if someone else could take a
look at this issue before I file an upstream bug report.

Some details follow about the problem in icedtea-2.

The failing patch file is:
icedtea-2.6.4/patches/boot/ecj-multicatch.patch

... and it fails while trying to patch:
jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java

... on the first "diff" line of the patch:
 -} catch (InvalidAlgorithmParameterException |

The string "InvalidAlgorithmParameterException" does not exist in that
file.

Thanks for your attention.

[0]
http://blog.fuseyism.com/index.php/2016/01/25/security-icedtea-1-13-10-for-openjdk-6-released/
[1]
http://blog.fuseyism.com/index.php/2016/01/21/security-icedtea-2-6-4-for-openjdk-7-released/



Re: [PATCH 1/1] gnu: transmission-gtk: Add icon dependencies.

2016-01-27 Thread Leo Famulari
On Sat, Jan 23, 2016 at 05:36:28PM +0100, Ludovic Courtès wrote:
> Leo Famulari  skribis:
> 
> > I have adwaita-icon-theme and hicolor-icon-theme in my profile, but when
> > running transmission-gtk, it complains on stderr about problems with
> > both icon themes and has no icons at all:
> >
> > --start-example- 
> > (transmission-gtk:21008): Gtk-WARNING **: Could not find the icon 
> > 'document-open'. The 'hicolor' theme
> > was not found either, perhaps you need to install it.
> >
> > (transmission-gtk:20986): Gtk-WARNING **: Error loading theme icon 
> > 'network-idle' for stock: Icon 'network-idle' not present in theme Adwaita
> > --end-example--
> >
> > Is this working for anyone else?
> 
> It works wonderfully well for me on GuixSD!
> 
> Thanks, bye.
> 
> ;-)
> 
> Seriously though, I think the trick is to have the XDG variables
> correctly set, which is done automatically on GuixSD:
> 
> --8<---cut here---start->8---
> $ env | grep XDG
> XDG_CONFIG_DIRS=/home/ludo/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg
> XDG_DATA_DIRS=/gnu/store/jhkid4l3w4wkq01gsqw3sfzzivy0y8vw-glib-2.46.1/share:/gnu/store/jzzsyrvyacsjkpj82bjq0qgy28j8yk35-gtk+-3.18.2/share:/gnu/store/sw8k4554wav93l5ffh0hk6mxq4krhfw2-emacs-24.5/share:/gnu/store/jhkid4l3w4wkq01gsqw3sfzzivy0y8vw-glib-2.46.1/share:/gnu/store/jzzsyrvyacsjkpj82bjq0qgy28j8yk35-gtk+-3.18.2/share:/gnu/store/sw8k4554wav93l5ffh0hk6mxq4krhfw2-emacs-24.5/share:/run/current-system/profile/share:/home/ludo/.guix-profile/share:/run/current-system/profile/share
> --8<---cut here---end--->8---

It worked!

Should these be added as search-paths in the transmission package
definition?

What is the desired effect of setting XDG_CONFIG_DIRS that way? Aren't
those directories still read-only?

There is also the warning message:
GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not 
be saved or shared with other applications.

... but that is simply not true. The settings are saved as expected
under ~/.config/transmission


> 
> Does it work for you?
> 
> Thanks,
> Ludo’.



Re: icedtea-1, icedtea-2 security updates

2016-01-27 Thread Ricardo Wurmus

Leo Famulari  writes:

> There are security updates for icedtea-1 [0] and icedtea-2 [1]. The
> updated versions are 1.3.10 and 2.6.4, respectively.
>
> I spent some time trying to build these new versions but I am having
> trouble.

Thanks for trying!  I won’t be able to attend to this before Tuesday, so
it’s nice that somebody else is taking care of this.

> The upstream tarballs contain their own patches on the bundled OpenJDK
> source code. For both icedtea-1 and icedtea-2, some of these patches
> fail to apply.

Not only icedtea (i.e. the patches to the OpenJDK sources to make it
buildable with free software) has to be updated, but also the “drops”.
Drops are upstream OpenJDK source tarballs.

So for icedtea-6 this means the "openjdk6-src" input must be changed to

https://java.net/downloads/openjdk6/openjdk-6-src-b38-20_jan_2016.tar.gz;

for icedtea-7 all of the added native-inputs must be changed, i.e:
"openjdk-src", "corba-drop", "jaxp-drop", "jaxws-drop", "jdk-drop",
"langtools-drop", "hotspot-drop".

The icedtea-7 package has a function to build origins from names and
hashes, so you will just need to update the version and the individual
drop hashes.  You can get all the icedtea-7 drops here:

http://icedtea.wildebeest.org/download/drops/icedtea7/2.6.4/

Hope this helps!

~~ Ricardo




Re: [PATCH 06/13] build: Generate man pages after compiling guile objects.

2016-01-27 Thread Eric Bavier
On Tue, 26 Jan 2016 21:08:36 +0100
Mathieu Lirzin  wrote:

> l...@gnu.org (Ludovic Courtès) writes:
> 
> > Mathieu Lirzin  skribis:
> >
> >> * configure.ac (BUILD_FROM_GIT): New Automake conditional.
> >> * doc.am (SUBCOMMANDS): Delete variable.
> >> (dist_man1_MANS): List all subcommands man pages.
> >> (doc/guix.1): Build only if BUILD_FROM_GIT.  Depend on 'scripts/guix'
> >> instead of all subcommands.
> >> [BUILD_DAEMON] (doc/guix-daemon): Likewise.  Replace the
> >> 'nix/nix-daemon/guix-daemon.cc' prerequisite with 'guix-daemon'.
> >> [BUILD_FROM_GIT] (gen_man): New variable.
> >> [BUILD_FROM_GIT] (doc/guix-%.1): New target.
> >> (CLEANFILES) [BUILD_FROM_GIT]: Add $(dist_man1_MANS).
> >
> > I like the speedup, but not the ‘BUILD_FROM_GIT’ approach.  :-)
> > It reminds me of maintainer-mode and all its warts (info "(automake)
> > maintainer-mode").
> 
> The BUILD_FROM_GIT is inspired by what is done for GNU Hello.  ;)
> However I don't have a strong opinion on this.
> 
> > Namely, I think it’s best to have the help2man rule always triggered
> > whenever the corresponding .scm file is newer, rather than have it
> > triggered or not based on a guess of what the user wants/can do.
> 
> OK.
> 
> > Having said that, I’m not sure what to do.  Commit 0af3f404 reverted the
> > original approach, which was to depend on .go files (and obviously
> > wouldn’t work as we want.)
> >
> > So we want to delay the build of man pages without making the dependency
> > on build products explicit.  Hmm, not sure what can be done.
> 
> I have tried to add $(GOBJECTS) to BUILT_SOURCES and let the man pages
> prerequisites like in 0af3f404.  The problem was that the build didn't
> fully took advantage of possible parallelisms because everything had to
> wait for $(GOBJECTS) to complete before compiling anything else, and the
> modules are loaded using only one thread.
> 
> Another approach is to embed ‘help2man’ (which is what Coreutils is
> doing), so we can let the man pages depend on .go files.  This seems
> reasonable to me even if it means adding 20K of Perl in the repo.  ;)
> 
> WDYT?

Here's my rough first take at this.  It uses the status 77 convention
to update a sentinel file and selectively run help2man.

I realize the silent rule output isn't yet polished.

`~Eric
From 038645a3d14cd10fdb37f94703e463d8f7a3241a Mon Sep 17 00:00:00 2001
From: Eric Bavier 
Date: Wed, 27 Jan 2016 20:31:04 -0600
Subject: [PATCH] doc: Generate manpages after .go are compiled.

* build-aux/compile-all.scm: Exit 77 if no files to compile.
* Makefile.am (make-go): Rename target to make-go.stamp.  Update if any
  files were successfully compiled.
* doc.am (subcommand-manual-target): Add dependency on make-go.stamp.
  Run help2man only if script input is changed.
---
 Makefile.am   | 12 +---
 build-aux/compile-all.scm |  1 +
 doc.am| 15 ---
 3 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 1ede6d4..f97a2a4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -368,15 +368,21 @@ CLEANFILES =	\
 # user ran 'make install' recently).  When that happens, we end up loading
 # those previously-installed .go files, which may be stale, thereby breaking
 # the whole thing.
-%.go: make-go ; @:
-make-go: $(MODULES) guix/config.scm guix/tests.scm
+%.go: make-go.stamp ; @:
+make-go.stamp: $(MODULES) guix/config.scm guix/tests.scm
 	$(AM_V_at)echo "Compiling Scheme modules..." ;			\
 	unset GUILE_LOAD_COMPILED_PATH ;\
 	host=$(host) srcdir="$(top_srcdir)"\
 	$(top_builddir)/pre-inst-env	\
 	$(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)"		\
 	  --no-auto-compile 		\
-	  -s "$(top_srcdir)"/build-aux/compile-all.scm $^
+	  -s "$(top_srcdir)"/build-aux/compile-all.scm $^;		\
+	status=$$?; 			\
+	case $$status in		\
+	  77) : ;; 			\
+	  0) touch $@ ;; 		\
+	  *) exit $$status ;; 		\
+	esac
 
 SUFFIXES = .go
 
diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm
index e0877db..c8ccbd1 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -75,6 +75,7 @@
 (match (command-line)
   ((_ . files)
(let ((files (filter file-needs-compilation? files)))
+ (when (null? files) (primitive-exit 77)) ;skip
  (for-each load-module-file files)
  (let ((mutex (make-mutex)))
(par-for-each (lambda (file)
diff --git a/doc.am b/doc.am
index f15efcc..b3996d1 100644
--- a/doc.am
+++ b/doc.am
@@ -106,9 +106,18 @@ doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
 
 define subcommand-manual-target
 
-doc/guix-$(1).1: guix/scripts/$(1).scm
-	-LANGUAGE= $(top_builddir)/pre-inst-env		\
-	  $(HELP2MAN) --output="$$@" "guix $(1)"
+# Note: The dependency on make-go.stamp is to force these docs to be made only
+# after all guile modules have been compiled, so that they are not compiled
+# during this rule.  But we only want to actually generate the manpages if the
+# corresponding script source has been chang