Hydra serving source tarballs

2014-02-12 Thread Sree Harsha Totakura
Hi,

I just observed that `guix build' is downloading source tarballs from
Hydra.  Is this supposed to be a feature?  If so, what is the rationale
behind not trying to download the source ball from mirrors or upstream
download addresses?

Regards,
Sree



Re: [PATCH 1/2] gnu: Add virtualenv.

2014-02-12 Thread Ludovic Courtès
Cyril Roelandt tipec...@gmail.com skribis:

 * gnu/packages/python.scm (python-virtualenv, python2-virtualenv): New 
 variables.

OK, please push.

Ludo’.



Re: [PATCH 2/2] gnu: Add pip.

2014-02-12 Thread Ludovic Courtès
Cyril Roelandt tipec...@gmail.com skribis:

 * gnu/packages/python.scm (python-pip, python2-pip): New variables.

Looks good to me.  One question though:

 +(arguments
 + `(#:tests? #f)) ; The tests try to access the Internet.

How hard would it be to either skip the tests that access the network,
or patch them to use localhost instead of some external server?

Thanks,
Ludo’.



Re: Hydra serving source tarballs

2014-02-12 Thread Andreas Enge
On Wed, Feb 12, 2014 at 01:34:26PM +0100, Sree Harsha Totakura wrote:
 I just observed that `guix build' is downloading source tarballs from
 Hydra.  Is this supposed to be a feature?  If so, what is the rationale
 behind not trying to download the source ball from mirrors or upstream
 download addresses?

I think it is a feature for tarballs that have disappeared from upstream
(it sounds a bit crazy, but some projects delete old versions, or move them
to a separate location). Some also modify the tarball without giving it
a new name.

I think it is a bug because usually hydra is slower than upstream.
Using --no-substitutes prevents the download of tarballs, but also the
maybe desired download of binaries from hydra.

I would be in favour of downloading tarballs from upstream by default, and,
if it fails, keeping tarball downloads from hydra as a last resort.

Andreas




[PATCH] gnu: gnunet: Fix failing testcases.

2014-02-12 Thread Sree Harsha Totakura
* gnu/packages/gnunet.scm (gnurl): Add pkg-config.
* gnu/packages/patches/gnunet-fix-tests.patch: Append fix for integration 
testcases.
---
 gnu/packages/gnunet.scm |8 +---
 gnu/packages/patches/gnunet-fix-tests.patch |   12 
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index f3448a7..960a5d7 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -153,8 +153,9 @@ and support for SSL3 and TLS.)
  (libidn ,libidn)
  (zlib ,zlib)))
(native-inputs
-`((perl ,perl)
-  (groff ,groff)
+`((groff ,groff)
+  (perl ,perl)
+  (pkg-config ,pkg-config)
   (python ,python-2)))
(arguments
 `(#:configure-flags '(--enable-ipv6 --with-gnutls --without-libssh2
@@ -211,7 +212,8 @@ supports HTTPS, HTTPS and GnuTLS.)
 (search-patch gnunet-fix-scheduler.patch)
 ;; Patch to fix bugs in testcases:
 ;; * Disable peerinfo-tool tests as they depend on reverse DNS lookups
-;; * Allow revocation testcase to run on loopback; upstream: #32130
+;; * Allow revocation and integration-tests testcases to run on
+;;   loopback; upstream: #32130, #32326
 ;; * Skip GNS testcases requiring DNS lookups; upstream: #32118
 (search-patch gnunet-fix-tests.patch)))
   (patch-flags '(-p0
diff --git a/gnu/packages/patches/gnunet-fix-tests.patch 
b/gnu/packages/patches/gnunet-fix-tests.patch
index 1957b17..4276db5 100644
--- a/gnu/packages/patches/gnunet-fix-tests.patch
+++ b/gnu/packages/patches/gnunet-fix-tests.patch
@@ -44,3 +44,15 @@ Index: src/gns/test_gns_cname_lookup.sh
  rm -rf /tmp/test-gnunet-gns-peer-1/
  
  TEST_DOMAIN_PLUS=www.gnu
+Index: src/integration-tests/confs/test_defaults.conf
+===
+--- src/integration-tests/confs/test_defaults.conf (revision 32320)
 src/integration-tests/confs/test_defaults.conf (working copy)
+@@ -17,6 +17,7 @@
+ EXTERNAL_ADDRESS = 127.0.0.1
+ INTERNAL_ADDRESS = 127.0.0.1
+ BINDTO = 127.0.0.1
++RETURN_LOCAL_ADDRESSES = YES
+ 
+ [hostlist]
+ SERVERS =
-- 
1.7.10.4




Re: Hydra serving source tarballs

2014-02-12 Thread Ludovic Courtès
Sree Harsha Totakura sreehar...@totakura.in skribis:

 I just observed that `guix build' is downloading source tarballs from
 Hydra.  Is this supposed to be a feature?  If so, what is the rationale
 behind not trying to download the source ball from mirrors or upstream
 download addresses?

Downloads are normal derivations, like builds¹.  Thus, their result is
cached into the store, and so Hydra serves substitutes for them just
like for any other derivation.

As Andreas said, this is a desirable feature for upstream sites that
remove old source tarballs.

However, hydra.gnu.org is indeed often slower than upstream sites these
days.  This is obviously not inherent to the mechanism, and instead has
to do, I believe, with hydra.gnu.org being an overloaded VM.

I think things will improve when we start offloading builds to other
machines, which I hope will happen Real Soon Now.

Thanks,
Ludo’.

¹ With a slight difference: the hash of the output of a download
  derivation is known in advance.  We call them “fixed-output”
  derivations, because the file name of the output is independent of the
  inputs used to perform the actual download.



Re: none

2014-02-12 Thread Ludovic Courtès
Sree Harsha Totakura sreehar...@totakura.in skribis:

 The reason why the transport tests are failing is that gnurl is not being
 built with HTTPS protocol support and these tests expect gnurl to have those.
 The HTTPS support was not built into gnurl because pkg-config was not
 available as native inputs during configure time.

OK, thanks for investigating!

It would be nice if GNUnet’s ‘configure’ script would check whether
gnurl has HTTPS support.

Ludo’.



Re: none

2014-02-12 Thread Sree Harsha Totakura
On 02/12/2014 06:36 PM, Ludovic Courtès wrote:
 It would be nice if GNUnet’s ‘configure’ script would check whether
 gnurl has HTTPS support.

It now does. :-)

Sree



Re: Problems with handicapped 'bash' from glibc package

2014-02-12 Thread Mark H Weaver
l...@gnu.org (Ludovic Courtès) writes:

 Mark H Weaver m...@netris.org skribis:

 The 'bash' in the glibc package is handicapped in at least two ways:

 * It can't set the locale, because it looks for locales in
   /nix/store/-glibc-intermediate-2.18-locales

 * It can't look up anything from NSS, such as passwd data, because it
   tries to load the modules from
   /nix/store/-glibc-intermediate-2.18

 There are two problems that need to be addressed, I think:

 * Users could easily end up with this handicapped 'bash' as their
   primary bash, if they installed (or upgraded?) 'glibc' since the last
   time I installed 'bash'.  This happened to me, for example.

 * Some (most?) programs in Guix that launch subprocesses with the shell
   use this handicapped one.  For example, every time I run 'w3m', it
   prints two warnings about 'sh' being unable to set the locale.

 Any suggestions about how we should address these problems?

 Indeed, that’s a problem.

 For the record, the handicaped bash comes from the removal of /bin/sh
 [0].  It is used by ‘system’ and ‘popen’.

 Looks like solving this would require either rewriting glibc references
 in the static bash binary (tricky, especially since the glibc directory
 names have different lengths currently), or building Bash directly in
 the glibc-final derivation so that it refers to the right libc with all
 its bells and whistles.

 The latter sounds best, but it would require to sort of duplicate the
 build recipe of Bash internally.

FWIW, I think this latter option is the least bad of the ones you
suggested, and I can't think of a better solution.

While we're on the subject of 'bash', should we be applying the patches
in http://ftp.gnu.org/gnu/bash/bash-4.2-patches/ ?

  Mark



Guix under GNU’s umbrella for GSoC?

2014-02-12 Thread Ludovic Courtès
Hello!

So it is Summer of Code time again.

If you have ideas, let’s discuss them, and then send an HTML fragment
for http://www.gnu.org/software/soc-projects/ideas-2014.html.  Looks
like we have the GNUnet idea that we could copy/paste from last year.
Anything else?

If you are an eligible student, it’s a good time to get in touch with us.

Thanks,
Ludo’.



Re: none

2014-02-12 Thread Ludovic Courtès
Andreas Enge andr...@enge.fr skribis:

 On Wed, Feb 12, 2014 at 06:36:13PM +0100, Ludovic Courtès wrote:
 It would be nice if GNUnet’s ‘configure’ script would check whether
 gnurl has HTTPS support.

 Concurred. Or maybe make pkg-config a mandatory input and stop when it
 is not found. Ever so often I see a package that states feature xyz
 not available, when in reality it means pkg-config not available.

I think this is largely because the official PKG_CHECK_MODULES Autoconf
macro doesn’t fail by default when pkg-config is not found (which may or
may not be a good idea, depending on the package.)

Ludo’.



Re: Problems with handicapped 'bash' from glibc package

2014-02-12 Thread Ludovic Courtès
Andreas Enge andr...@enge.fr skribis:

 On Wed, Feb 12, 2014 at 05:39:35PM +, Mark H Weaver wrote:
 While we're on the subject of 'bash', should we be applying the patches
 in http://ftp.gnu.org/gnu/bash/bash-4.2-patches/ ?

 Is there a chance of convincing the bash people to release bash 4.2.1?
 It seems absurd to off-load the work of applying 45 patches from the last
 three years on the users.

Yeah, that’s annoying.

Basically, these patches are the version control system of Bash
(really!).  So in my view, if the maintainer doesn’t publish a new
version, then it means that users can live without these patches.

I haven’t checked what the current patch set is about, though.

Ludo’.



Re: none

2014-02-12 Thread Andreas Enge
On Wed, Feb 12, 2014 at 09:30:53PM +0100, Ludovic Courtès wrote:
 I think this is largely because the official PKG_CHECK_MODULES Autoconf
 macro doesn’t fail by default when pkg-config is not found (which may or
 may not be a good idea, depending on the package.)

Then it is the authors' responsibility to either let the configuration
fail, or to include tests that do not rely on pkg_config, in my opinion.

Andreas




[PATCH] gnu: ratpoison: Patch to use $SHELL instead of /bin/sh

2014-02-12 Thread Mark H Weaver
I'm not entirely sure this will be wanted, but it bugged me that
ratpoison has /bin/sh hardcoded in its source code.  WDYT?

  Mark


From 2218f563424e4154ee24f5f9fdeb1b6e00ffae7f Mon Sep 17 00:00:00 2001
From: Mark H Weaver m...@netris.org
Date: Thu, 13 Feb 2014 00:42:41 -0500
Subject: [PATCH] gnu: ratpoison: Patch to use $SHELL instead of /bin/sh.

* gnu/packages/patches/ratpoison-shell.patch: New file.
* gnu/packages/ratpoison.scm (ratpoison): Add patch.
* gnu-system.am (dist_patch_DATA): Add patch.
---
 gnu-system.am  |  1 +
 gnu/packages/patches/ratpoison-shell.patch | 91 ++
 gnu/packages/ratpoison.scm |  4 +-
 3 files changed, 95 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ratpoison-shell.patch

diff --git a/gnu-system.am b/gnu-system.am
index 8229cf0..7110a60 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -297,6 +297,7 @@ dist_patch_DATA =		\
   gnu/packages/patches/qemu-make-4.0.patch			\
   gnu/packages/patches/qemu-multiple-smb-shares.patch		\
   gnu/packages/patches/qt4-tests.patch\
+  gnu/packages/patches/ratpoison-shell.patch			\
   gnu/packages/patches/readline-link-ncurses.patch		\
   gnu/packages/patches/ripperx-libm.patch			\
   gnu/packages/patches/scheme48-tests.patch			\
diff --git a/gnu/packages/patches/ratpoison-shell.patch b/gnu/packages/patches/ratpoison-shell.patch
new file mode 100644
index 000..63d265a
--- /dev/null
+++ b/gnu/packages/patches/ratpoison-shell.patch
@@ -0,0 +1,91 @@
+Use $SHELL instead of hardcoding /bin/sh in ratpoison.
+
+Patch by Mark H Weaver m...@netris.org.
+
+--- ratpoison/src/actions.c.orig	2013-04-06 21:37:43.0 -0400
 ratpoison/src/actions.c	2014-02-13 00:34:10.992553710 -0500
+@@ -19,6 +19,7 @@
+  */
+ 
+ #include unistd.h
++#include stdlib.h
+ #include ctype.h		/* for isspace */
+ #include sys/wait.h
+ #include X11/keysym.h
+@@ -223,12 +223,12 @@
+   add_command (escape,cmd_escape, 1, 1, 1,
+Key: , arg_KEY);
+   add_command (exec,  cmd_exec,   1, 1, 1,
+-   /bin/sh -c , arg_SHELLCMD);
++   $SHELL -c , arg_SHELLCMD);
+   add_command (execa,		cmd_execa,	1, 1, 1, 
+-	   /bin/sh -c , arg_SHELLCMD);
++	   $SHELL -c , arg_SHELLCMD);
+   add_command (execf,		cmd_execf,	2, 2, 2, 
+ 	   frame to execute in:, arg_FRAME,
+-	   /bin/sh -c , arg_SHELLCMD);
++	   $SHELL -c , arg_SHELLCMD);
+   add_command (fdump, cmd_fdump,  1, 0, 0,
+, arg_NUMBER);
+   add_command (focus, cmd_next_frame, 0, 0, 0);
+@@ -359,7 +359,7 @@
+   add_command (unsetenv,  cmd_unsetenv,   1, 1, 1,
+Variable: , arg_STRING);
+   add_command (verbexec,  cmd_verbexec,   1, 1, 1,
+-   /bin/sh -c , arg_SHELLCMD);
++   $SHELL -c , arg_SHELLCMD);
+   add_command (version,   cmd_version,0, 0, 0);
+   add_command (vsplit,cmd_v_split,1, 0, 0,
+Split: , arg_STRING);
+@@ -2627,6 +2627,9 @@
+   pid = fork();
+   if (pid == 0)
+ {
++  char *shell_path;
++  char *shell_name;
++
+   /* Some process setup to make sure the spawned process runs
+  in its own session. */
+   putenv(current_screen()-display_string);
+@@ -2641,7 +2644,18 @@
+   /* raw means don't run it through sh.  */
+   if (raw)
+ execl (cmd, cmd, NULL);
+-  execl(/bin/sh, sh, -c, cmd, NULL);
++
++  shell_path = getenv (SHELL);
++  if (shell_path == NULL)
++shell_path = /bin/sh;
++
++  shell_name = strrchr (shell_path, '/');
++  if (shell_name == NULL)
++shell_name = shell_path;
++  else
++shell_name++;
++
++  execl(shell_path, shell_name, -c, cmd, NULL);
+   _exit(EXIT_FAILURE);
+ }
+ 
+--- ratpoison/src/events.c.orig	2013-04-06 20:05:48.0 -0400
 ratpoison/src/events.c	2014-02-13 00:34:39.327758789 -0500
+@@ -920,7 +920,7 @@
+ {
+   /* Report any child that didn't return 0. */
+   if (cur-status != 0)
+-marked_message_printf (0,0, /bin/sh -c \%s\ finished (%d),
++marked_message_printf (0,0, $SHELL -c \%s\ finished (%d),
+cur-cmd, cur-status);
+   list_del  (cur-node);
+   free (cur-cmd);
+--- ratpoison/src/messages.h.orig	2012-07-20 20:25:33.0 -0400
 ratpoison/src/messages.h	2014-02-13 00:34:28.608398437 -0500
+@@ -41,7 +41,7 @@
+ 
+ #define MESSAGE_PROMPT_SWITCH_TO_WINDOW Switch to window: 
+ #define MESSAGE_PROMPT_NEW_WINDOW_NAME  Set window's title to: 
+-#define MESSAGE_PROMPT_SHELL_COMMAND/bin/sh -c 
++#define MESSAGE_PROMPT_SHELL_COMMAND$SHELL -c 
+ #define MESSAGE_PROMPT_COMMAND  :
+ #define MESSAGE_PROMPT_SWITCH_WMSwitch to wm: 
+ #define MESSAGE_PROMPT_XTERM_COMMANDMESSAGE_PROMPT_SHELL_COMMAND TERM_PROG  -e 
diff --git