Hydra serving source tarballs
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.
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.
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
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.
* 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
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
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
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
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?
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
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
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
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
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