Re: [PATCH] Allow building other kernels

2015-04-05 Thread Ludovic Courtès
Andy Wingo wi...@pobox.com skribis:

 From 1dbdc673654f94868b0176876dd83fb8b5bfe68c Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Fri, 3 Apr 2015 12:25:26 +0200
 Subject: [PATCH 1/3] Allow specification of #:linux kernel when making an
  initrd

 * gnu/system/linux-initrd.scm (base-initrd): Add #:linux option to
   specify the linux kernel to use.
 * gnu/system/vm.scm (expression-derivation-in-linux-vm): Propagate
   #:linux to base-initrd.
   (system-qemu-image, virtualized-operating-system): Delegate to the
   wrapped OS object's initrd builder, to allow the OS to specify the
   kernel.

I’ve applied the patch with a slight difference: #:linux is
systematically passed from ‘operating-system-initrd-file’, as is done
for mapped devices.

Thanks!

Ludo’.



Re: [PATCH] Fix gettext linkage to expat

2015-04-05 Thread Ludovic Courtès
Andy Wingo wi...@pobox.com skribis:

 From 8e2db815693ef8a300e860fd2601ad1996f90cf9 Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sun, 5 Apr 2015 10:22:28 +0200
 Subject: [PATCH 1/3] gnu: gettext: Link explicitly to libexpat, again.

 * gnu/packages/gettext.scm (gnu-gettext): Re-enable patch from
   0e4e4b1329bcf881620f230fda60b6b63d1f8356 to explictly link to
   libexpat.  Otherwise libexpat was searched at runtime via dlopen,
   which obviously doesn't work in a Guix context.

Pushed to ‘core-updates’, which will hopefully be merged within a week
or so.

Thank you!

Ludo’.



Re: info dir clashes

2015-04-05 Thread Ludovic Courtès
Mark H Weaver m...@netris.org skribis:

 Federico Beffa be...@ieee.org writes:

 From 06441ea6992808ef96139ab171269172dc65f2db Mon Sep 17 00:00:00 2001
 From: Federico Beffa be...@fbengineering.ch
 Date: Sun, 5 Apr 2015 21:59:18 +0200
 Subject: [PATCH] build-system/gnu: Add 'delete-info-dir-file' phase.

 * guix/build/gnu-build-system.scm (delete-info-dir-file): New procedure.
   (%standard-phases): Use it.
 ---
  guix/build/gnu-build-system.scm | 10 ++
  1 file changed, 10 insertions(+)

 diff --git a/guix/build/gnu-build-system.scm 
 b/guix/build/gnu-build-system.scm
 index 5220bda..284d1ee 100644
 --- a/guix/build/gnu-build-system.scm
 +++ b/guix/build/gnu-build-system.scm
 @@ -538,6 +538,15 @@ DOCUMENTATION-COMPRESSOR-FLAGS.
  (format #t not compressing documentation~%)
  #t)))
  
 +(define* (delete-info-dir-file #:key outputs #:allow-other-keys)
 +  (every (match-lambda
 +  ((output . directory)
 +   (let ((info-dir-file (string-append directory 
 /share/info/dir)))
 + (when (file-exists? info-dir-file)
 +   (delete-file info-dir-file))
 + #t)))
 + outputs))

 In this case 'for-each' is the appropriate tool, since it ignores the
 results of the procedure calls, which are made only for their side
 effects.  So you can omit the #t.

Agreed.

Also add a docstring please.

 Otherwise, looks good to me for 'core-updates'.

One last thing:

  patch-usr-bin-file
  patch-source-shebangs configure patch-generated-file-shebangs
  build check install
 +delete-info-dir-file
  patch-shebangs strip
  validate-runpath
  validate-documentation-location

The phase should go after ‘validate-documentation-location’, which is
makes sure things are in share/info/ rather than info/.

OK to push to ‘core-updates’ with these changes.

Thanks!

Ludo’.



Re: [PATCHES] gnu: nginx: Clean up installation directories.

2015-04-05 Thread Ludovic Courtès
David Thompson dthomps...@worcester.edu skribis:

 From 81adae7d0de6e6d9213b81dc6a8747bfc6487420 Mon Sep 17 00:00:00 2001
 From: David Thompson dthomps...@worcester.edu
 Date: Sun, 5 Apr 2015 12:31:54 -0400
 Subject: [PATCH 1/2] gnu: nginx: Use modify-phases syntax.

 * gnu/packages/web.scm (nginx): Use modify-phases syntax.

OK (note that in ‘core-updates’ ‘modify-phases’ no longer introduces
quotes so we’ll have to update it.)

 From 6757351ece10cafc5e9c04f5778e6ba6334979d5 Mon Sep 17 00:00:00 2001
 From: David Thompson dthomps...@worcester.edu
 Date: Sun, 5 Apr 2015 12:34:45 -0400
 Subject: [PATCH 2/2] gnu: nginx: Clean up installation directories.

 * gnu/packages/web.scm (nginx): Add 'fix-root-dirs' phase.

LGTM!

OK for the upgrade as well.

Thank you,
Ludo’.



Re: [PATCH] Allow building other kernels

2015-04-05 Thread Ludovic Courtès
Mark H Weaver m...@netris.org skribis:

 Andy Wingo wi...@pobox.com writes:

 To use a different kernel, for example do:

   (kernel linux-mine)

   (initrd (lambda (file-systems . rest)
   (apply base-initrd file-systems
  #:linux linux-mine
  rest)))

 It would be great if users could specify a custom kernel without having
 to override the default value of 'initrd' like this.  I suppose this
 could be arranged by passing #:linux (operating-system-kernel os) in
 every call of the initrd procedure.

 What do you think?  Ludovic?

(Our messages crossed.)  Agreed, and this is why 0d275f4 does things
slightly differently compared to the original patch.

Ludo’.



Re: [PATCH] Add upower

2015-04-05 Thread David Thompson
Andy Wingo wi...@pobox.com writes:

 Two patches attached.

 Unfortunately to use this you need to expand out %base-services to add
 upower to the udev-service form.  Also you need the upower-service,
 obviously, and upower needs to be added to the dbus-service form as
 well.

This isn't the first time I've seen people expanding out %base-services,
and I was also planning to do so for my OS config.  I wonder if we
should create a 'make-base-services' procedure that accomodates the
common tweaks to the %base-services list: the MOTD, the list of packages
for dbus-service, etc.

Anyway, these patches are awesome to me!  Very minor nitpicks and a
style question below:

 From 4725d267b7c18bc4ba4294f90336871311386bb2 Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sat, 4 Apr 2015 21:48:01 +0200
 Subject: [PATCH 2/3] Add upower package.

 * gnu/packages/gnome.scm (upower): New variable.
 * gnu/packages/patches/upower-builddir.patch: New patch.
 ---
  gnu/packages/gnome.scm | 53 
 ++
  gnu/packages/patches/upower-builddir.patch | 44 +
  2 files changed, 97 insertions(+)
  create mode 100644 gnu/packages/patches/upower-builddir.patch

 diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
 index 445b4a1..8b0a055 100644
 --- a/gnu/packages/gnome.scm
 +++ b/gnu/packages/gnome.scm
 @@ -43,6 +43,7 @@
#:use-module (gnu packages gnutls)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages libcanberra)
 +  #:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages image)
#:use-module (gnu packages perl)
 @@ -1718,3 +1719,55 @@ your system.
  It supports several profiles, multiple tabs and implements several
  keyboard shortcuts.)
  (license license:gpl3+)))
 +
 +(define-public upower
 +  (package
 +(name upower)
 +(version 0.99.2)
 +(source
 + (origin
 +   (method url-fetch)
 +   (uri (string-append http://upower.freedesktop.org/releases/;
 +   name - version .tar.xz))
 +   (sha256
 +(base32
 + 0vwlh20jmaf01m38kfn8yx2869a3clmkzlycrj99rf4nvwx4bp79))
 +   (patches (list (search-patch upower-builddir.patch)

Could you add a comment about the upstream status of this patch, perhaps
with a URL pointing to the relevant bug tracker, if applicable?

 +(build-system glib-or-gtk-build-system)
 +(arguments
 + '(;; The tests want to contact the system bus, which can't be done in 
 the
 +   ;; build environment.  The integration test can run, but the last of
 +   ;; the up-self-tests doesn't.  Disable tests for now.
 +   #:tests? #f
 +   #:configure-flags (list --localstatedir=/var
 +   (string-append --with-udevrulesdir=
 +  (assoc-ref %outputs out)
 +  /lib/udev/rules.d))
 +   #:phases
 +   (modify-phases %standard-phases
 + (add-before configure patch-/bin/true
 + (lambda _
 +   (substitute* configure
 + ((/bin/true) (which true)
 + (add-before configure patch-integration-test
 + (lambda _
 +   (substitute* src/linux/integration-test
 + ((/usr/bin/python3) (which python3
 +(native-inputs
 + `((pkg-config ,pkg-config)
 +   (intltool ,intltool)
 +   (python ,python)))
 +(inputs
 + `((eudev ,eudev)
 +   (dbus ,dbus)
 +   (dbus-glib ,dbus-glib)
 +   (libusb ,libusb)
 +   ))

Reunite with the parens on the previous line for maximum happiness. :)

 +(home-page http://upower.freedesktop.org/;)
 +(synopsis System daemon for managing power devices)
 +(description
 + UPower is an abstraction for enumerating power devices,
 +listening to device events and querying history and statistics.  Any
 +application or service on the system can access the org.freedesktop.UPower
 +service via the system message bus.)
 +(license license:gpl2+)))

[...]


 From ee0d6fa2b5951edca3c79e3046b42226aca0540a Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sat, 4 Apr 2015 21:49:02 +0200
 Subject: [PATCH 3/3] Add upower service.

 * gnu-system.am (GNU_SYSTEM_MODULES): Add gnu/services/upower.scm.
 * gnu/services/upower.scm: New file, defining a upower service.
 ---
  gnu-system.am   |   1 +
  gnu/services/upower.scm | 120 
 
  2 files changed, 121 insertions(+)
  create mode 100644 gnu/services/upower.scm

 diff --git a/gnu-system.am b/gnu-system.am
 index 95c4eeb..a3638d7 100644
 --- a/gnu-system.am
 +++ b/gnu-system.am
 @@ -330,6 +330,7 @@ GNU_SYSTEM_MODULES =  \
gnu/services/lirc.scm  \
gnu/services/networking.scm   

Re: [PATCH] Add upower

2015-04-05 Thread Mark H Weaver
Hi Andy!

Here are some more comments to add to David's:

Andy Wingo wi...@pobox.com writes:

 From 4725d267b7c18bc4ba4294f90336871311386bb2 Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sat, 4 Apr 2015 21:48:01 +0200
 Subject: [PATCH 2/3] Add upower package.

By our conventions, we write this first line as: gnu: Add upower.

 * gnu/packages/gnome.scm (upower): New variable.
 * gnu/packages/patches/upower-builddir.patch: New patch.

The patch also needs to be added to 'dist_patch_DATA' in gnu-system.am.

David Thompson dthomps...@worcester.edu wrote:
 Could you add a comment about the upstream status of this patch, perhaps
 with a URL pointing to the relevant bug tracker, if applicable?

Agreed, but I think this should go in the top of the patch file rather
than in the package definition itself.

  Thanks!
Mark



[PATCH] Allow building other kernels

2015-04-05 Thread Andy Wingo
To use a different kernel, for example do:

  (kernel linux-mine)

  (initrd (lambda (file-systems . rest)
  (apply base-initrd file-systems
 #:linux linux-mine
 rest)))

in your operating-system form.  A starting point for an alternate kernel
definition:

(define-public linux-mine
  (package
(inherit linux-libre)
(name linux-mine)))


From 1dbdc673654f94868b0176876dd83fb8b5bfe68c Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@pobox.com
Date: Fri, 3 Apr 2015 12:25:26 +0200
Subject: [PATCH 1/3] Allow specification of #:linux kernel when making an
 initrd

* gnu/system/linux-initrd.scm (base-initrd): Add #:linux option to
  specify the linux kernel to use.
* gnu/system/vm.scm (expression-derivation-in-linux-vm): Propagate
  #:linux to base-initrd.
  (system-qemu-image, virtualized-operating-system): Delegate to the
  wrapped OS object's initrd builder, to allow the OS to specify the
  kernel.
---
 gnu/system/linux-initrd.scm | 4 ++--
 gnu/system/vm.scm   | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 9feb8f7..1914df9 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -147,6 +147,7 @@ initrd code.
   qemu-networking?
   virtio?
   volatile-root?
+  (linux linux-libre)
   (extra-modules '()))
   Return a monadic derivation that builds a generic initrd.  FILE-SYSTEMS is
 a list of file-systems to be mounted by the initrd, possibly in addition to
@@ -224,8 +225,7 @@ loaded at boot time in the order in which they appear.
  (open source target)))
  mapped-devices))
 
-  (mlet %store-monad ((kodir (flat-linux-module-directory linux-libre
-  linux-modules)))
+  (mlet %store-monad ((kodir (flat-linux-module-directory linux linux-modules)))
 (expression-initrd
  #~(begin
  (use-modules (gnu build linux-boot)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index c93e26d..a551c89 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -149,6 +149,7 @@ made available under the /xchg CIFS share.
(initrd   (if initrd   ; use the default initrd?
  (return initrd)
  (base-initrd %linux-vm-file-systems
+  #:linux linux
   #:virtio? #t
   #:qemu-networking? #t
 
@@ -326,7 +327,7 @@ of the GNU system as described by OS.
   (let ((os (operating-system (inherit os)
   ;; Use an initrd with the whole QEMU shebang.
   (initrd (lambda (file-systems . rest)
-(apply base-initrd file-systems
+(apply (operating-system-initrd os) file-systems
#:virtio? #t
#:qemu-networking? #t
rest)))
@@ -409,7 +410,7 @@ environment with the store shared with the host.  MAPPINGS is a list of
 
   (operating-system (inherit os)
 (initrd (lambda (file-systems . rest)
-  (apply base-initrd file-systems
+  (apply (operating-system-initrd os) file-systems
  #:volatile-root? #t
  #:virtio? #t
  #:qemu-networking? #t
-- 
2.2.1


-- 
http://wingolog.org/


[PATCH] Upgrade GLib to 2.44.0

2015-04-05 Thread Andy Wingo
From 1f49addfe19de1cd932c424365ecb38d1008021a Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@pobox.com
Date: Sat, 4 Apr 2015 22:30:10 +0200
Subject: [PATCH 1/3] Upgrade GLib to 2.44.0.

* gnu/packages/glib.scm (glib): Upgrade to 2.44.0.
---
 gnu/packages/glib.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 3c68d86..1b928e5 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -119,7 +119,7 @@ shared NFS home directories.)
 (define glib
   (package
(name glib)
-   (version 2.42.1)
+   (version 2.44.0)
(source (origin
 (method url-fetch)
 (uri (string-append mirror://gnome/sources/
@@ -127,7 +127,7 @@ shared NFS home directories.)
 name - version .tar.xz))
 (sha256
  (base32
-  16pqvikrps1fvwwqvk0qi4a13mfg7gw6w5qfhk7bhi8f51jhhgwg))
+  1fgmjv3yzxgbks31h42201x2izpw0sd84h8dfw0si3x00sqn5lzj))
 (patches (list (search-patch glib-tests-homedir.patch)
(search-patch glib-tests-desktop.patch)
(search-patch glib-tests-prlimit.patch)
-- 
2.2.1


-- 
http://wingolog.org/


[PATCH] Add upower

2015-04-05 Thread Andy Wingo
Two patches attached.

Unfortunately to use this you need to expand out %base-services to add
upower to the udev-service form.  Also you need the upower-service,
obviously, and upower needs to be added to the dbus-service form as
well.

From 4725d267b7c18bc4ba4294f90336871311386bb2 Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@pobox.com
Date: Sat, 4 Apr 2015 21:48:01 +0200
Subject: [PATCH 2/3] Add upower package.

* gnu/packages/gnome.scm (upower): New variable.
* gnu/packages/patches/upower-builddir.patch: New patch.
---
 gnu/packages/gnome.scm | 53 ++
 gnu/packages/patches/upower-builddir.patch | 44 +
 2 files changed, 97 insertions(+)
 create mode 100644 gnu/packages/patches/upower-builddir.patch

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 445b4a1..8b0a055 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -43,6 +43,7 @@
   #:use-module (gnu packages gnutls)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
@@ -1718,3 +1719,55 @@ your system.
 It supports several profiles, multiple tabs and implements several
 keyboard shortcuts.)
 (license license:gpl3+)))
+
+(define-public upower
+  (package
+(name upower)
+(version 0.99.2)
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append http://upower.freedesktop.org/releases/;
+   name - version .tar.xz))
+   (sha256
+(base32
+ 0vwlh20jmaf01m38kfn8yx2869a3clmkzlycrj99rf4nvwx4bp79))
+   (patches (list (search-patch upower-builddir.patch)
+(build-system glib-or-gtk-build-system)
+(arguments
+ '(;; The tests want to contact the system bus, which can't be done in the
+   ;; build environment.  The integration test can run, but the last of
+   ;; the up-self-tests doesn't.  Disable tests for now.
+   #:tests? #f
+   #:configure-flags (list --localstatedir=/var
+   (string-append --with-udevrulesdir=
+  (assoc-ref %outputs out)
+  /lib/udev/rules.d))
+   #:phases
+   (modify-phases %standard-phases
+ (add-before configure patch-/bin/true
+ (lambda _
+   (substitute* configure
+ ((/bin/true) (which true)
+ (add-before configure patch-integration-test
+ (lambda _
+   (substitute* src/linux/integration-test
+ ((/usr/bin/python3) (which python3
+(native-inputs
+ `((pkg-config ,pkg-config)
+   (intltool ,intltool)
+   (python ,python)))
+(inputs
+ `((eudev ,eudev)
+   (dbus ,dbus)
+   (dbus-glib ,dbus-glib)
+   (libusb ,libusb)
+   ))
+(home-page http://upower.freedesktop.org/;)
+(synopsis System daemon for managing power devices)
+(description
+ UPower is an abstraction for enumerating power devices,
+listening to device events and querying history and statistics.  Any
+application or service on the system can access the org.freedesktop.UPower
+service via the system message bus.)
+(license license:gpl2+)))
diff --git a/gnu/packages/patches/upower-builddir.patch b/gnu/packages/patches/upower-builddir.patch
new file mode 100644
index 000..13cef58
--- /dev/null
+++ b/gnu/packages/patches/upower-builddir.patch
@@ -0,0 +1,44 @@
+Remove explicit set of UPOWER_CONF_FILE_NAME in up-self-test.c;
+instead the harness should set it.  In Guix we set it explicitly; the
+right thing is to use AM_TEST_ENVIRONMENT and regenerate the
+makefiles, but we can't regenerate because current autotools carp on
+some things, so we patch the Makefile.in instead.
+
+Also fix to not try to create /var/lib/upower if /var isn't writable.
+
+Patch by Andy Wingo wi...@igalia.com
+
+--- upower-0.99.2.orig/src/Makefile.in	2014-12-18 10:32:01.0 +0100
 upower-0.99.2/src/Makefile.in	2015-04-04 19:49:28.020843678 +0200
+@@ -780,6 +780,7 @@
+ 
+ @UP_BUILD_TESTS_TRUE@up_self_test_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS_C)
+ @UP_BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = $(DBUS_LAUNCH)
++@UP_BUILD_TESTS_TRUE@AM_TESTS_ENVIRONMENT = UPOWER_CONF_FILE_NAME=$(top_srcdir)/etc/UPower.conf
+ dbusservicedir = $(datadir)/dbus-1/system-services
+ dbusservice_in_files = org.freedesktop.UPower.service.in
+ dbusservice_DATA = $(dbusservice_in_files:.service.in=.service)
+@@ -1789,7 +1790,7 @@
+ @HAVE_SYSTEMDSYSTEMUNITDIR_TRUE@	@sed -e s|\@libexecdir\@|$(libexecdir)| $  $@
+ 
+ install-data-hook:
+-	if test -w $(DESTDIR)$(prefix)/; then \
++	if test -w $(DESTDIR)$(localstatedir)/; then \
+ 		mkdir -p $(DESTDIR)$(historydir); \
+ 	fi
+ 
+--- 

[PATCH] Upgrade Cairo to 1.14.2

2015-04-05 Thread Andy Wingo
From 59702707729caa85c60c39cc07c6472a5863041f Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@pobox.com
Date: Sat, 4 Apr 2015 22:44:02 +0200
Subject: [PATCH 2/3] Upgrade Cairo to 1.14.2.

* gnu/packages/gtk.scm (cairo): Upgrade to 1.14.2.
---
 gnu/packages/gtk.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index b3688d5..de728fb 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -77,14 +77,14 @@ tools have full access to view and control running applications.)
 (define-public cairo
   (package
(name cairo)
-   (version 1.12.18)
+   (version 1.14.2)
(source (origin
 (method url-fetch)
 (uri (string-append http://cairographics.org/releases/cairo-;
 version .tar.xz))
 (sha256
  (base32
-  1dpmlxmmigpiyv0jchjsn2l1a29655x24g5073hy8p4lmjvz0nfw
+  1sycbq0agbwmg1bj9lhkgsf0glmblaf2jrdy9g6vxfxivncxj6f9
(build-system gnu-build-system)
(propagated-inputs
 `((fontconfig ,fontconfig)
-- 
2.2.1


-- 
http://wingolog.org/


Re: [PATCH] Upgrade GLib to 2.44.0

2015-04-05 Thread Mark H Weaver
Andy Wingo wi...@pobox.com writes:

 From 1f49addfe19de1cd932c424365ecb38d1008021a Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sat, 4 Apr 2015 22:30:10 +0200
 Subject: [PATCH 1/3] Upgrade GLib to 2.44.0.

By our conventions, we write this first line as:

  gnu: glib: Update to 2.44.0.

I've pushed both this patch and the cairo update patch to a new branch
'glib-rebuild', and asked hydra to rebuild the system based on it.

  http://hydra.gnu.org/jobset/gnu/glib-rebuild

When it's finished rebuilding for x86_64 and i686, I'll push these
updates to master.

 Thanks!
   Mark



Update Python to 3.4.3?

2015-04-05 Thread David Thompson
Our Python package uses version 3.3.5, but 3.4.3 is the latest stable
release.  Shall we upgrade (in core-updates), or is this choice
deliberate?

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



Re: [PATCH] Upgrade Cairo to 1.14.2

2015-04-05 Thread Mark H Weaver
Andy Wingo wi...@pobox.com writes:

 From 59702707729caa85c60c39cc07c6472a5863041f Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sat, 4 Apr 2015 22:44:02 +0200
 Subject: [PATCH 2/3] Upgrade Cairo to 1.14.2.

Please see my reply to your Glib upgrade patch.

Thanks!
  Mark



[PATCH] Fix gettext linkage to expat

2015-04-05 Thread Andy Wingo
Gettext wants to dlopen expat on linux platforms.  Guix used to fix
this, but the fix was removed for some reason in the past, resulting in
an xgettext that can't find expat and thus can't handle Glade files.
GTK+ 3.16.0 requires xgettext to support Glade files.  This patch fixes
the issue.  Thanks to Ludovic for the tip.

From 8e2db815693ef8a300e860fd2601ad1996f90cf9 Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@pobox.com
Date: Sun, 5 Apr 2015 10:22:28 +0200
Subject: [PATCH 1/3] gnu: gettext: Link explicitly to libexpat, again.

* gnu/packages/gettext.scm (gnu-gettext): Re-enable patch from
  0e4e4b1329bcf881620f230fda60b6b63d1f8356 to explictly link to
  libexpat.  Otherwise libexpat was searched at runtime via dlopen,
  which obviously doesn't work in a Guix context.
---
 gnu/packages/gettext.scm | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 27b5fb5..3a96cd6 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -70,7 +70,15 @@
(substitute* gettext-tools/src/project-id
  ((/bin/pwd)
   pwd)
- %standard-phases)
+ (alist-cons-before
+  'configure 'link-expat
+  (lambda _
+;; Gettext defaults to opening expat via dlopen on
+;; Linux.  Change to link directly.
+(substitute* gettext-tools/configure
+  ((LIBEXPAT=\-ldl\) LIBEXPAT=\-ldl -lexpat\)
+  ((LTLIBEXPAT=\-ldl\) LTLIBEXPAT=\-ldl -lexpat\)))
+  %standard-phases))
 
;; When tests fail, we want to know the details.
#:make-flags '(VERBOSE=yes)))
-- 
2.2.1


-- 
http://wingolog.org/


Re: [PATCH] gnu: Add libepoxy.

2015-04-05 Thread David Thompson
Andy Wingo wi...@pobox.com writes:

 This is a new dep of GTK+.

 From 42e4d5669bd12dbe7de3e47d14f987a0f3cd7059 Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sun, 5 Apr 2015 11:28:32 +0200
 Subject: [PATCH 2/3] gnu: Add libepoxy.

 * gnu/packages/gl.scm (libepoxy): New variable.
 ---
  gnu/packages/gl.scm | 46 ++
  1 file changed, 46 insertions(+)

 diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
 index dc90a12..15bc91c 100644
 --- a/gnu/packages/gl.scm
 +++ b/gnu/packages/gl.scm
 @@ -418,3 +418,49 @@ extension functionality is exposed in a single header 
 file.)
   Guile-OpenGL is a library for Guile that provides bindings to the
  OpenGL graphics API.)
  (license l:lgpl3+)))
 +
 +(define-public libepoxy
 +  (package
 +(name libepoxy)
 +(version 1.2)
 +(source (origin
 +  (method url-fetch)
 +  (uri (string-append
 +https://github.com/anholt/libepoxy/archive/v;
 +version
 +.tar.gz))
 +  (sha256
 +   (base32
 +1xp8g6b7xlbym2rj4vkbl6xpb7ijq7glpv656mc7k9b01x22ihs2
 +(arguments
 + '(#:phases
 +   (alist-cons-after
 +'unpack 'autoreconf
 +(lambda _
 +  (zero? (system* autoreconf -vif)))
 +(alist-cons-before
 + 'configure 'patch-paths
 + (lambda* (#:key inputs #:allow-other-keys)
 +   (let ((python (assoc-ref inputs python))
 + (mesa (assoc-ref inputs mesa)))
 + (substitute* src/gen_dispatch.py
 +   ((/usr/bin/env python) python))
 + (substitute* (find-files . \\.[ch]$)
 +   ((libGL.so.1) (string-append mesa /lib/libGL.so.1))
 +   ((libEGL.so.1) (string-append mesa /lib/libEGL.so.1)
 + %standard-phases

It would be preferable to write this using our new 'modify-phases'
syntax.

(modify-phases %standard-phases
  (add-after unpack autoreconf ...)
  (add-before configure patch-paths ...))

 +(build-system gnu-build-system)
 +(native-inputs
 + `((autoconf ,autoconf)
 +   (automake ,automake)
 +   (libtool ,libtool)
 +   (pkg-config ,pkg-config)
 +   (python ,python)))
 +(inputs
 + `((mesa ,mesa)))
 +
 +(home-page http://github.com/anholt/libepoxy/;)
 +(synopsis A library for handling OpenGL function pointer management)
 +(description
 + A library for handling OpenGL function pointer management.)

libepoxy is a library for...

Expound just a bit if you can.

 +(license l:x11)))
 -- 
 2.2.1

Looking good!

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



Re: Update Python to 3.4.3?

2015-04-05 Thread Cyril Roelandt
On 04/05/2015 03:40 PM, David Thompson wrote:
 Our Python package uses version 3.3.5, but 3.4.3 is the latest stable
 release.  Shall we upgrade (in core-updates), or is this choice
 deliberate?
 

Updating to 3.4.x should not break anything, so please go ahead!

Cyril.



Re: hackage importer

2015-04-05 Thread Ludovic Courtès
Federico Beffa be...@ieee.org skribis:

 My intention wasn't to make an universal Cabal parser for two reasons:
 (i) I've not found any full, formal description of the file format. I
 could in principle deduce it from the Haskell code, but I'm just
 starting to learn Haskell.
 (ii) I don't see any use of Cabal files in the Scheme world, but maybe
 I'm just blind :-)

You’re right, of course ;-), but thinking in terms of separate libraries
can help structure the code IMO.

 Anyway, I’ve probably used enough of your time by now.  :-)
 If this discussion gives you ideas on how to structure the code, that is
 fine, but otherwise we can probably go with the architecture you
 propose.

 How does that sound?

 I think that restructuring the code as you suggest requires quite a
 bit of effort. At this point in time I'm not ready to invest the
 required time. If one day I will decide to work on improving the code
 to make it handle block structured files, that may be the right moment
 to reorganize it.

Sounds good!

 Please find attached updated patches with added documentation, two
 more tests, and an option to disable the inclusion of dependencies
 only requited by the test-suite of the package.
 'read-cabal' now takes a port and 'strip-cabal' was renamed as
 suggested and made local to the former. If parsing fails now an
 exception of type 'message' is raised with a meaningful message.

OK.

 From 633bfb5af57f707dea12ab747133182d085951ff Mon Sep 17 00:00:00 2001
 From: Federico Beffa be...@fbengineering.ch
 Date: Sat, 7 Mar 2015 17:23:14 +0100
 Subject: [PATCH 01/29] import: Add hackage importer.

 * guix/scripts/import.scm (importers): Add hackage.
 * guix/scripts/import/hackage.scm: New file.
 * po/guix/POTFILES.in: Add guix/scripts/import.scm.
 * doc/guix.texi: Add section on 'hackage' importer.

[...]

 +The command below imports meta-data for latest version of the
 ^^^
+ “the”

 From efb8a09ce3aee85ef73206be2957ef6c4e3360a2 Mon Sep 17 00:00:00 2001
 From: Federico Beffa be...@fbengineering.ch
 Date: Sun, 8 Mar 2015 07:48:38 +0100
 Subject: [PATCH 02/29] import: Add hackage importer.

 * guix/import/hackage.scm: New file.
 * tests/hackage.scm: New file.

Perfect!

OK to push these two.

Thanks for your patience and for the great work!

Ludo’.



[PATCHES] gnu: nginx: Clean up installation directories.

2015-04-05 Thread David Thompson
Two patches below.  One to rewrite the phases using modify-phases
syntax, and the other to clean up the mess that 'make install' creates.

From 81adae7d0de6e6d9213b81dc6a8747bfc6487420 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 5 Apr 2015 12:31:54 -0400
Subject: [PATCH 1/2] gnu: nginx: Use modify-phases syntax.

* gnu/packages/web.scm (nginx): Use modify-phases syntax.
---
 gnu/packages/web.scm | 62 +---
 1 file changed, 30 insertions(+), 32 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 42d58c8..031bbca 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -108,38 +108,36 @@ and its related documentation.)
 (arguments
  `(#:tests? #f  ; no test target
#:phases
-   (alist-cons-before
-'configure 'patch-/bin/sh
-(lambda _
-  (substitute* auto/feature
-((/bin/sh) (which bash
-(alist-replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys)
-   (let ((flags
-  (list (string-append --prefix= (assoc-ref outputs out))
---with-http_ssl_module
---with-pcre-jit
---with-ipv6
---with-debug
-;; Even when not cross-building, we pass the
-;; --crossbuild option to avoid customizing for the
-;; kernel version on the build machine.
-,(let ((system Linux); uname -s
-   (release 2.6.32)  ; uname -r
-   ;; uname -m
-   (machine (match (or (%current-target-system)
-   (%current-system))
-  (x86_64-linux   x86_64)
-  (i686-linux i686)
-  (mips64el-linux mips64
-   (string-append --crossbuild=
-  system : release : machine)
- (setenv CC gcc)
- (format #t environment variable `CC' set to `gcc'~%)
- (format #t configure flags: ~s~% flags)
- (zero? (apply system* ./configure flags
- %standard-phases
+   (modify-phases %standard-phases
+ (add-before configure patch-/bin/sh
+   (lambda _
+ (substitute* auto/feature
+   ((/bin/sh) (which bash)
+ (replace configure
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let ((flags
+(list (string-append --prefix= (assoc-ref outputs out))
+  --with-http_ssl_module
+  --with-pcre-jit
+  --with-ipv6
+  --with-debug
+  ;; Even when not cross-building, we pass the
+  ;; --crossbuild option to avoid customizing for the
+  ;; kernel version on the build machine.
+  ,(let ((system Linux); uname -s
+ (release 2.6.32)  ; uname -r
+ ;; uname -m
+ (machine (match (or (%current-target-system)
+ (%current-system))
+(x86_64-linux   x86_64)
+(i686-linux i686)
+(mips64el-linux mips64
+ (string-append --crossbuild=
+system : release : machine)
+   (setenv CC gcc)
+   (format #t environment variable `CC' set to `gcc'~%)
+   (format #t configure flags: ~s~% flags)
+   (zero? (apply system* ./configure flags
 (home-page http://nginx.org;)
 (synopsis HTTP and reverse proxy server)
 (description
-- 
2.1.4

From 6757351ece10cafc5e9c04f5778e6ba6334979d5 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 5 Apr 2015 12:34:45 -0400
Subject: [PATCH 2/2] gnu: nginx: Clean up installation directories.

* gnu/packages/web.scm (nginx): Add 'fix-root-dirs' phase.
---
 gnu/packages/web.scm | 20 +++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 031bbca..c41e9ba 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -137,7 +137,25 @@ and its related documentation.)
(setenv CC gcc)
(format #t environment variable `CC' set to `gcc'~%)
(format #t configure flags: ~s~% flags)
-   (zero? (apply system* 

Re: [PATCHES] gnu: Add livestreamer.

2015-04-05 Thread David Thompson
Mark H Weaver m...@netris.org writes:

[...]
 Otherwise looks good to me!

Fixed everything you mentioned and pushed.  Thanks!

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



Re: [PATCHES] gnu: nginx: Clean up installation directories.

2015-04-05 Thread David Thompson
While we're at it, how about we upgrade to the latest release?

From c25aa2aaf1ba54dfdc1cac1f05af3ea14c24d493 Mon Sep 17 00:00:00 2001
From: David Thompson dthomps...@worcester.edu
Date: Sun, 5 Apr 2015 12:58:46 -0400
Subject: [PATCH] gnu: nginx: Update to 1.7.11.

---
 gnu/packages/web.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c41e9ba..2497a9f 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -93,14 +93,14 @@ and its related documentation.)
 (define-public nginx
   (package
 (name nginx)
-(version 1.6.2)
+(version 1.7.11)
 (source (origin
   (method url-fetch)
   (uri (string-append http://nginx.org/download/nginx-;
   version .tar.gz))
   (sha256
(base32
-060s77qxhkn02fjkcndsr0xppj2bppjzkj0gn84svrykb4lqqq5m
+15cnlrhiqklqfzwfspkp0i6g04zdhc092dh593yqnqqf450dgnfs
 (build-system gnu-build-system)
 (inputs `((pcre ,pcre)
   (openssl ,openssl)
-- 
2.1.4


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


[PATCH] gnu: Add libepoxy.

2015-04-05 Thread Andy Wingo
This is a new dep of GTK+.

From 42e4d5669bd12dbe7de3e47d14f987a0f3cd7059 Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@pobox.com
Date: Sun, 5 Apr 2015 11:28:32 +0200
Subject: [PATCH 2/3] gnu: Add libepoxy.

* gnu/packages/gl.scm (libepoxy): New variable.
---
 gnu/packages/gl.scm | 46 ++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index dc90a12..15bc91c 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -418,3 +418,49 @@ extension functionality is exposed in a single header file.)
  Guile-OpenGL is a library for Guile that provides bindings to the
 OpenGL graphics API.)
 (license l:lgpl3+)))
+
+(define-public libepoxy
+  (package
+(name libepoxy)
+(version 1.2)
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+https://github.com/anholt/libepoxy/archive/v;
+version
+.tar.gz))
+  (sha256
+   (base32
+1xp8g6b7xlbym2rj4vkbl6xpb7ijq7glpv656mc7k9b01x22ihs2
+(arguments
+ '(#:phases
+   (alist-cons-after
+'unpack 'autoreconf
+(lambda _
+  (zero? (system* autoreconf -vif)))
+(alist-cons-before
+ 'configure 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+   (let ((python (assoc-ref inputs python))
+ (mesa (assoc-ref inputs mesa)))
+ (substitute* src/gen_dispatch.py
+   ((/usr/bin/env python) python))
+ (substitute* (find-files . \\.[ch]$)
+   ((libGL.so.1) (string-append mesa /lib/libGL.so.1))
+   ((libEGL.so.1) (string-append mesa /lib/libEGL.so.1)
+ %standard-phases
+(build-system gnu-build-system)
+(native-inputs
+ `((autoconf ,autoconf)
+   (automake ,automake)
+   (libtool ,libtool)
+   (pkg-config ,pkg-config)
+   (python ,python)))
+(inputs
+ `((mesa ,mesa)))
+
+(home-page http://github.com/anholt/libepoxy/;)
+(synopsis A library for handling OpenGL function pointer management)
+(description
+ A library for handling OpenGL function pointer management.)
+(license l:x11)))
-- 
2.2.1


-- 
http://wingolog.org/


[PATCH] gnu: gtk+: Update to 3.16.0.

2015-04-05 Thread Andy Wingo
From 2aa825f107d49b371bb8442cf060995d13cf7892 Mon Sep 17 00:00:00 2001
From: Andy Wingo wi...@pobox.com
Date: Sat, 4 Apr 2015 22:46:47 +0200
Subject: [PATCH 3/3] gnu: gtk+: Update to 3.16.0.

* gnu/packages/gtk.scm (gtk+): Upgrade to 3.16.0, adding a libepoxy
  dep and adding gettext.
---
 gnu/packages/gtk.scm | 11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index de728fb..6eab59c 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages icu4c)
@@ -433,7 +434,7 @@ application suites.)
 (define-public gtk+
   (package (inherit gtk+-2)
(name gtk+)
-   (version 3.14.7)
+   (version 3.16.0)
(source (origin
 (method url-fetch)
 (uri (string-append mirror://gnome/sources/ name /
@@ -441,11 +442,12 @@ application suites.)
 name - version .tar.xz))
 (sha256
  (base32
-  0vm40n6nf0w3vv54wqy67jcxddka7hplksi093xim3119yq196gv
+  1si6ihl1wlvag8qq3166skr9fnm9i33dimbfry1j628qzqc76qff
(propagated-inputs
 `((at-spi2-atk ,at-spi2-atk)
   (atk ,atk)
   (gdk-pixbuf ,gdk-pixbuf)
+  (libepoxy ,libepoxy)
   (libxi ,libxi)
   (libxinerama ,libxinerama)
   (libxdamage ,libxdamage)
@@ -456,6 +458,7 @@ application suites.)
(native-inputs
 `((perl ,perl)
   (glib ,glib bin)
+  (gettext ,gnu-gettext)
   (pkg-config ,pkg-config)
   (gobject-introspection ,gobject-introspection)
   (python-wrapper ,python-wrapper)
@@ -474,6 +477,10 @@ application suites.)
(substitute* testsuite/Makefile.in
  ((SUBDIRS = gdk gtk a11y css reftests)
   SUBDIRS = gdk))
+   (substitute* demos/widget-factory/Makefile.in
+ ((gtk-update-icon-cache) $(bindir)/gtk-update-icon-cache))
+   (substitute* demos/gtk-demo/Makefile.in
+ ((gtk-update-icon-cache) $(bindir)/gtk-update-icon-cache))
(apply configure args)))
%standard-phases)
 
-- 
2.2.1


-- 
http://wingolog.org/


Re: [PATCHES] gnu: nginx: Clean up installation directories.

2015-04-05 Thread Mark H Weaver
David Thompson dthomps...@worcester.edu writes:

 From 81adae7d0de6e6d9213b81dc6a8747bfc6487420 Mon Sep 17 00:00:00 2001
 From: David Thompson dthomps...@worcester.edu
 Date: Sun, 5 Apr 2015 12:31:54 -0400
 Subject: [PATCH 1/2] gnu: nginx: Use modify-phases syntax.

Okay.

 From 6757351ece10cafc5e9c04f5778e6ba6334979d5 Mon Sep 17 00:00:00 2001
 From: David Thompson dthomps...@worcester.edu
 Date: Sun, 5 Apr 2015 12:34:45 -0400
 Subject: [PATCH 2/2] gnu: nginx: Clean up installation directories.

 * gnu/packages/web.scm (nginx): Add 'fix-root-dirs' phase.
 ---
  gnu/packages/web.scm | 20 +++-
  1 file changed, 19 insertions(+), 1 deletion(-)


 diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
 index 031bbca..c41e9ba 100644
 --- a/gnu/packages/web.scm
 +++ b/gnu/packages/web.scm
 @@ -137,7 +137,25 @@ and its related documentation.)
 (setenv CC gcc)
 (format #t environment variable `CC' set to `gcc'~%)
 (format #t configure flags: ~s~% flags)
 -   (zero? (apply system* ./configure flags
 +   (zero? (apply system* ./configure flags)
 + (add-after install fix-root-dirs
 +   (lambda* (#:key outputs #:allow-other-keys)
 + ;; 'make install' puts things in strange places, so we need to
 + ;; clean it up ourselves.
 + (let* ((out (assoc-ref outputs out))
 +(share (string-append out /share/nginx)))
 +   ;; This directory is empty, so get rid of it.
 +   (rmdir (string-append out /logs))
 +   ;; Example configuration and HTML files belong in
 +   ;; /share.
 +   (mkdir-p share)
 +   (rename-file (string-append out /conf)
 +(string-append share /conf))
 +   (rename-file (string-append out /html)
 +(string-append share /html))

Okay.

 +   ;; No reason to use /sbin
 +   (rename-file (string-append out /sbin)
 +(string-append out /bin

I would prefer to avoid diverging from upstream without good reason, and
I don't see a good reason for this change.

What do you think?

Okay to push everything here except for the /sbin - /bin change.

Thanks!
  Mark



Re: [PATCHES] gnu: nginx: Clean up installation directories.

2015-04-05 Thread Mark H Weaver
David Thompson dthomps...@worcester.edu writes:

 While we're at it, how about we upgrade to the latest release?
[...]
 -(version 1.6.2)
 +(version 1.7.11)

1.6 is a stable branch and 1.7 is a development branch.  I would prefer
to stick with the stable branch.  We could add 1.7 if you want (maybe
with variable name 'nginx-devel'), but we should keep 1.6 as well.

Thanks,
  Mark



Re: info dir clashes

2015-04-05 Thread Federico Beffa
On Sat, Mar 28, 2015 at 3:37 PM, Ludovic Courtès l...@gnu.org wrote:
 Federico Beffa be...@ieee.org skribis:

 given that the file .../share/info/dir creates clashes in user
 profiles and that it is anyway handled with the help of info-dir
 substitutes, shouldn't we systematically delete them with the help,
 e.g., of a phase in gnu-build-system?

 We should do that, indeed.  Would you like to prepare a patch for
 ‘core-updates’?

Finally I prepared a patch for this.

Regards,
Fede
From 06441ea6992808ef96139ab171269172dc65f2db Mon Sep 17 00:00:00 2001
From: Federico Beffa be...@fbengineering.ch
Date: Sun, 5 Apr 2015 21:59:18 +0200
Subject: [PATCH] build-system/gnu: Add 'delete-info-dir-file' phase.

* guix/build/gnu-build-system.scm (delete-info-dir-file): New procedure.
  (%standard-phases): Use it.
---
 guix/build/gnu-build-system.scm | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 5220bda..284d1ee 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -538,6 +538,15 @@ DOCUMENTATION-COMPRESSOR-FLAGS.
 (format #t not compressing documentation~%)
 #t)))
 
+(define* (delete-info-dir-file #:key outputs #:allow-other-keys)
+  (every (match-lambda
+  ((output . directory)
+   (let ((info-dir-file (string-append directory /share/info/dir)))
+ (when (file-exists? info-dir-file)
+   (delete-file info-dir-file))
+ #t)))
+ outputs))
+
 (define %standard-phases
   ;; Standard build phases, as a list of symbol/procedure pairs.
   (let-syntax ((phases (syntax-rules ()
@@ -546,6 +555,7 @@ DOCUMENTATION-COMPRESSOR-FLAGS.
 patch-usr-bin-file
 patch-source-shebangs configure patch-generated-file-shebangs
 build check install
+delete-info-dir-file
 patch-shebangs strip
 validate-runpath
 validate-documentation-location
-- 
2.2.1



Re: [PATCH] profiles: Generate GHC's package database cache.

2015-04-05 Thread Ludovic Courtès
Federico Beffa be...@ieee.org skribis:

 From dfe3b875267731006512b8a9803aaa56f07db12e Mon Sep 17 00:00:00 2001
 From: Federico Beffa be...@fbengineering.ch
 Date: Sat, 4 Apr 2015 22:51:13 +0200
 Subject: [PATCH] profiles: Generate GHC's package database cache.

 * guix/profiles.scm (ghc-package-cache-file): New procedure.
   (profile-derivation): Add 'ghc-package-cache?' keyword argument.  If true
   (the default), add the result of 'ghc-package-cache-file' to 'inputs'.
 * guix/scripts/package.scm (guix-package)[process-actions]: Pass
   #:ghc-package-cache? to 'profile-generation'.
 * tests/packages.scm (--search-paths with pattern): Likewise.
 * tests/profiles.scm (profile-derivation): Likewise.

LG, but...

 On Sun, Apr 5, 2015 at 7:21 AM, Mark H Weaver m...@netris.org wrote:
 I believe this will require GHC to build *any* non-empty profile.  Since
 GHC is only available on Intel platforms, this will break profile
 building on MIPS and ARM.

 Even on Intel platforms, I don't want to have to install GHC to build
 profiles that don't contain any Haskell packages, especially since it
 involves trusting the upstream binaries from GHC.

All good points.

 Good point. Would this check be satisfactory for you?

   ;; Don't depend on GHC when there's nothing to do.
   (if (any (cut string-prefix? ghc )
(map manifest-entry-name (manifest-entries manifest)))
   (gexp-derivation ghc-package-cache build
 #:modules '((guix build utils))
 #:local-build? #t)
   (gexp-derivation ghc-package-cache #~(mkdir #$output

I think that would do.

Eventually we could think of more sophisticated way to determine whether
to trigger a given “hook” (info-dir, ca-certificates, ghc.)  Perhaps
this ‘ghc-package-cache-file’ procedure could be added as an
‘environment-hook’ field of the ghc package and it would be triggered
iff GHC is installed.  (This approach would work well for GHC, but not
for info-dir or ca-certificates, though.)

 What if I want to use Hugs instead, or some other Haskell implementation
 that is capable of being bootstrapped from source code.  Is GHC the only
 tool that can do this job?

 As far as I know, the library database is compiler specific. Here we
 are handling GHC only.

I think this is fine.  A similar hook could be added for Hugs if/when we
see fit and presumably they would not interfere.

Thoughts?

Thanks,
Ludo’.



Re: [PATCH] gnu: gtk+: Update to 3.16.0.

2015-04-05 Thread Mark H Weaver
Andy Wingo wi...@pobox.com writes:

 From 2aa825f107d49b371bb8442cf060995d13cf7892 Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Sat, 4 Apr 2015 22:46:47 +0200
 Subject: [PATCH 3/3] gnu: gtk+: Update to 3.16.0.

 * gnu/packages/gtk.scm (gtk+): Upgrade to 3.16.0, adding a libepoxy
   dep and adding gettext.

Looks good to me!  However, based on our conversations on IRC, I gather
that this depends on your patch for 'gettext' that triggers a full
rebuild, the 'glib' and 'cairo' updates, and also on a patch to fix a
circularity problem that you've not yet posted.

Is that right?  Any other prerequisites?

Thanks!
  Mark



Re: Update Python to 3.4.3?

2015-04-05 Thread David Thompson
Cyril Roelandt tipec...@gmail.com writes:

 On 04/05/2015 03:40 PM, David Thompson wrote:
 Our Python package uses version 3.3.5, but 3.4.3 is the latest stable
 release.  Shall we upgrade (in core-updates), or is this choice
 deliberate?
 

 Updating to 3.4.x should not break anything, so please go ahead!

None of the three patches in the recipe applied, and removing them lead
to a broken build.  I'll leave this task for someone that is more
familiar with Python than I am.

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



Re: [PATCHES] gnu: nginx: Clean up installation directories.

2015-04-05 Thread David Thompson
Mark H Weaver m...@netris.org writes:

 David Thompson dthomps...@worcester.edu writes:

 While we're at it, how about we upgrade to the latest release?
 [...]
 -(version 1.6.2)
 +(version 1.7.11)

 1.6 is a stable branch and 1.7 is a development branch.  I would prefer
 to stick with the stable branch.  We could add 1.7 if you want (maybe
 with variable name 'nginx-devel'), but we should keep 1.6 as well.

Oh, so it is.  Nevermind, then.

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



Re: [PATCHES] gnu: nginx: Clean up installation directories.

2015-04-05 Thread David Thompson
Mark H Weaver m...@netris.org writes:

 David Thompson dthomps...@worcester.edu writes:

 +   ;; No reason to use /sbin
 +   (rename-file (string-append out /sbin)
 +(string-append out /bin

 I would prefer to avoid diverging from upstream without good reason, and
 I don't see a good reason for this change.

 What do you think?

 Okay to push everything here except for the /sbin - /bin change.

Fair enough.  Pushed everything but that.

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



Re: info dir clashes

2015-04-05 Thread Mark H Weaver
Federico Beffa be...@ieee.org writes:

 From 06441ea6992808ef96139ab171269172dc65f2db Mon Sep 17 00:00:00 2001
 From: Federico Beffa be...@fbengineering.ch
 Date: Sun, 5 Apr 2015 21:59:18 +0200
 Subject: [PATCH] build-system/gnu: Add 'delete-info-dir-file' phase.

 * guix/build/gnu-build-system.scm (delete-info-dir-file): New procedure.
   (%standard-phases): Use it.
 ---
  guix/build/gnu-build-system.scm | 10 ++
  1 file changed, 10 insertions(+)

 diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
 index 5220bda..284d1ee 100644
 --- a/guix/build/gnu-build-system.scm
 +++ b/guix/build/gnu-build-system.scm
 @@ -538,6 +538,15 @@ DOCUMENTATION-COMPRESSOR-FLAGS.
  (format #t not compressing documentation~%)
  #t)))
  
 +(define* (delete-info-dir-file #:key outputs #:allow-other-keys)
 +  (every (match-lambda
 +  ((output . directory)
 +   (let ((info-dir-file (string-append directory /share/info/dir)))
 + (when (file-exists? info-dir-file)
 +   (delete-file info-dir-file))
 + #t)))
 + outputs))

In this case 'for-each' is the appropriate tool, since it ignores the
results of the procedure calls, which are made only for their side
effects.  So you can omit the #t.

Otherwise, looks good to me for 'core-updates'.

Thanks!
  Mark



Re: [PATCH] profiles: Generate GHC's package database cache.

2015-04-05 Thread Mark H Weaver
Federico Beffa be...@ieee.org writes:

 On Sun, Apr 5, 2015 at 7:21 AM, Mark H Weaver m...@netris.org wrote:
 I believe this will require GHC to build *any* non-empty profile.  Since
 GHC is only available on Intel platforms, this will break profile
 building on MIPS and ARM.

 Even on Intel platforms, I don't want to have to install GHC to build
 profiles that don't contain any Haskell packages, especially since it
 involves trusting the upstream binaries from GHC.

 Good point. Would this check be satisfactory for you?

   ;; Don't depend on GHC when there's nothing to do.
   (if (any (cut string-prefix? ghc )
(map manifest-entry-name (manifest-entries manifest)))
   (gexp-derivation ghc-package-cache build
 #:modules '((guix build utils))
 #:local-build? #t)
   (gexp-derivation ghc-package-cache #~(mkdir #$output

Sure, this would be fine, although I wonder if we could replace the
'string-prefix?' with 'string=?'.  If so, the conditional could be
changed to:

  (if (member ghc (map manifest-entry-name (manifest-entries manifest)))
  ...)

What do you think?

 What if I want to use Hugs instead, or some other Haskell implementation
 that is capable of being bootstrapped from source code.  Is GHC the only
 tool that can do this job?

 As far as I know, the library database is compiler specific. Here we
 are handling GHC only.

Okay, makes sense.

Thank you!
   Mark



Re: [PATCH] profiles: Generate GHC's package database cache.

2015-04-05 Thread Federico Beffa
l...@gnu.org (Ludovic Courtès) writes:

 Eventually we could think of more sophisticated way to determine whether
 to trigger a given “hook” (info-dir, ca-certificates, ghc.)  Perhaps
 this ‘ghc-package-cache-file’ procedure could be added as an
 ‘environment-hook’ field of the ghc package and it would be triggered
 iff GHC is installed.  (This approach would work well for GHC, but not
 for info-dir or ca-certificates, though.)

On top of the mentioned cases above, there are many programs making use
of caches. Some are:

* GLib's IO modules normally use a cache file 'giomodule.cache'. We set
  the env. var. GIO_EXTRA_MODULES, but it's use is explicitly
  discouraged by the project.

* XDG icons 'icon-theme.cache': I see some clashes in my profile (e.g.,
  gtk and Inkscape).

* TeX 'ls-R' files: it would probably simplify modularization.

* I see python's easy_install site.py clashes in my profile.  These are
  probably harmless, but annoying.

It would definitely be good to establish a solid and general way to run
hooks to address this kind of situations.

Regards,
Fede



Re: [PATCH] Allow building other kernels

2015-04-05 Thread Mark H Weaver
Andy Wingo wi...@pobox.com writes:

 To use a different kernel, for example do:

   (kernel linux-mine)

   (initrd (lambda (file-systems . rest)
   (apply base-initrd file-systems
  #:linux linux-mine
  rest)))

It would be great if users could specify a custom kernel without having
to override the default value of 'initrd' like this.  I suppose this
could be arranged by passing #:linux (operating-system-kernel os) in
every call of the initrd procedure.

What do you think?  Ludovic?

  Mark


 From 1dbdc673654f94868b0176876dd83fb8b5bfe68c Mon Sep 17 00:00:00 2001
 From: Andy Wingo wi...@pobox.com
 Date: Fri, 3 Apr 2015 12:25:26 +0200
 Subject: [PATCH 1/3] Allow specification of #:linux kernel when making an
  initrd

 * gnu/system/linux-initrd.scm (base-initrd): Add #:linux option to
   specify the linux kernel to use.
 * gnu/system/vm.scm (expression-derivation-in-linux-vm): Propagate
   #:linux to base-initrd.
   (system-qemu-image, virtualized-operating-system): Delegate to the
   wrapped OS object's initrd builder, to allow the OS to specify the
   kernel.
 ---
  gnu/system/linux-initrd.scm | 4 ++--
  gnu/system/vm.scm   | 5 +++--
  2 files changed, 5 insertions(+), 4 deletions(-)


 diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
 index 9feb8f7..1914df9 100644
 --- a/gnu/system/linux-initrd.scm
 +++ b/gnu/system/linux-initrd.scm
 @@ -147,6 +147,7 @@ initrd code.
qemu-networking?
virtio?
volatile-root?
 +  (linux linux-libre)
(extra-modules '()))
Return a monadic derivation that builds a generic initrd.  FILE-SYSTEMS is
  a list of file-systems to be mounted by the initrd, possibly in addition to
 @@ -224,8 +225,7 @@ loaded at boot time in the order in which they appear.
   (open source target)))
   mapped-devices))
  
 -  (mlet %store-monad ((kodir (flat-linux-module-directory linux-libre
 -  linux-modules)))
 +  (mlet %store-monad ((kodir (flat-linux-module-directory linux 
 linux-modules)))
  (expression-initrd
   #~(begin
   (use-modules (gnu build linux-boot)
 diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
 index c93e26d..a551c89 100644
 --- a/gnu/system/vm.scm
 +++ b/gnu/system/vm.scm
 @@ -149,6 +149,7 @@ made available under the /xchg CIFS share.
 (initrd   (if initrd   ; use the default initrd?
   (return initrd)
   (base-initrd %linux-vm-file-systems
 +  #:linux linux
#:virtio? #t
#:qemu-networking? #t
  
 @@ -326,7 +327,7 @@ of the GNU system as described by OS.
(let ((os (operating-system (inherit os)
;; Use an initrd with the whole QEMU shebang.
(initrd (lambda (file-systems . rest)
 -(apply base-initrd file-systems
 +(apply (operating-system-initrd os) file-systems
 #:virtio? #t
 #:qemu-networking? #t
 rest)))
 @@ -409,7 +410,7 @@ environment with the store shared with the host.  
 MAPPINGS is a list of
  
(operating-system (inherit os)
  (initrd (lambda (file-systems . rest)
 -  (apply base-initrd file-systems
 +  (apply (operating-system-initrd os) file-systems
   #:volatile-root? #t
   #:virtio? #t
   #:qemu-networking? #t
 -- 

 2.2.1



Making service values transparent

2015-04-05 Thread Ludovic Courtès
David Thompson dthomps...@worcester.edu skribis:

 Andy Wingo wi...@pobox.com writes:

 Two patches attached.

 Unfortunately to use this you need to expand out %base-services to add
 upower to the udev-service form.  Also you need the upower-service,
 obviously, and upower needs to be added to the dbus-service form as
 well.

 This isn't the first time I've seen people expanding out %base-services,
 and I was also planning to do so for my OS config.  I wonder if we
 should create a 'make-base-services' procedure that accomodates the
 common tweaks to the %base-services list: the MOTD, the list of packages
 for dbus-service, etc.

This must be fixed, basically by making the return value of the
foo-service procedures transparent and amenable to customization,
filtering, etc.

Now that we have extensible gexps, I think we may be able to
“demonadify” those service procedures, by adding declarative forms
corresponding to ‘text-file*’ and co. (just like ‘local-file’ is the
declarative equivalent of the ‘interned-file’ procedure.)

I’m not yet sure this is the right thing, but it’s appealing.

Thoughts?

Ludo’.



Re: [PATCH] profiles: Generate GHC's package database cache.

2015-04-05 Thread Federico Beffa
On Sun, Apr 5, 2015 at 10:24 PM, Mark H Weaver m...@netris.org wrote:

   ;; Don't depend on GHC when there's nothing to do.
   (if (any (cut string-prefix? ghc )
(map manifest-entry-name (manifest-entries manifest)))
   (gexp-derivation ghc-package-cache build
 #:modules '((guix build utils))
 #:local-build? #t)
   (gexp-derivation ghc-package-cache #~(mkdir #$output

 Sure, this would be fine, although I wonder if we could replace the
 'string-prefix?' with 'string=?'.  If so, the conditional could be

I used 'string-prefix?' to catch any GHC library (that we are
prefixing with 'ghc-...'). However, to compile such a library we need
GHC, so I think that 'string=?' should do.

 changed to:

   (if (member ghc (map manifest-entry-name (manifest-entries manifest)))
   ...)

 What do you think?

Thanks, I will update the patch.
Regards,
Fede



Re: [PATCH] gnu: Add glib-networking.

2015-04-05 Thread Ludovic Courtès
宋文武 iyzs...@gmail.com skribis:

 * gnu/packages/gnome.scm (glib-networking): New variable.

OK!

Ludo'.