* guix/ui.scm (warn-about-load-error): New procedure.
* gnu/packages.scm (package-modules): Wrap 'resolve-interface' call in
'catch #t', and call 'warn-about-load-error' in handler.
* guix/scripts/system.scm (read-operating-system): Replace error
handling code by a call to 'report-load-error'.
* guix/ui.scm (report-load-error): New procedure.
This avoids adding bogus entries to the RUNPATH of installed binaries,
pointing to the build directory or similar.
* gnu/packages/ld-wrapper.scm (store-file-name?): New procedure.
(rpath-arguments): Add "-rpath" flag on when FILE matches
'store-file-name?', not when it matches 'pure-file-name?'.
* gnu/packages/gtk.scm (gtk+): Update to 3.16.0. Add libepoxy to
propagated-inputs. Add gettext to native-inputs. Add a 'pre-configure'
phase instead of modifying the existing 'configure' phase. Fix references
to 'gtk-update-icon-cache' in Makefile.in files.
Co-Authored-By: Mark H Weaver <mhw@netris.org>
A forthcoming gtk+ update that will import (gnu packages gl) from
(gnu packages gtk) triggers an issue related to circular dependencies
between modules. This patch works around the issue.
* gnu/packages/sdl.scm: Remove the #:prefix from the (gnu packages fontutils)
import, and instead #:hide 'freetype' from the (guix licenses) import.
Modified-By: Mark H Weaver <mhw@netris.org>
Fixes <http://bugs.gnu.org/20081>.
Reported by Tomáš Čech <sleep_walker@suse.cz>.
* guix/build/utils.scm (find-files): Add #:stat parameter. Pass it as
last argument to 'file-system-fold'.
* gnu/packages/gettext.scm (gnu-gettext): Re-enable patch from
0e4e4b1329 to explictly link to
libexpat. Otherwise libexpat was searched at runtime via dlopen,
which obviously doesn't work in a Guix context.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix/build/gremlin.scm (validate-needed-in-runpath)[runpath]:
Add (filter absolute-file-name? ...).
Emit a warning when RUNPATH file names that do not match
'store-file-name?'. Change format of error message to begin with file
name.
* guix/build/utils.scm (store-file-name?): New procedure.
Fixes <http://bugs.gnu.org/20050>.
Reported by taylanbayirli@gmail.com (Taylan Ulrich Bayırlı/Kammer).
* gnu/packages/patches/ghostscript-runpath.patch: New file.
* gnu/packages/ghostscript.scm (ghostscript)[source]: Use it.
* gnu-system.am (dist_patch_DATA): Add it.
Fixes <http://bugs.gnu.org/20041>.
Reported by taylanbayirli@gmail.com (Taylan Ulrich Bayırlı/Kammer).
* gnu/packages/patches/openssl-runpath.patch: New file.
* gnu/packages/openssl.scm (openssl)[source]: Use it.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/ld-wrapper.scm: Use @SELF@ instead of $0. This is so
that the .go file is found even when the wrapper is invoked via a
symlink to it.
* gnu/packages/base.scm (make-ld-wrapper): Substitute @SELF@.
* gnu/packages/ncurses.scm (ncurses): Remove 'cross-pre-install-phase'.
When cross-compiling, it was leading to an empty $out/share/terminfo
directory.
* gnu/packages/gcc.scm (gcc-4.7): Add 'libdir' procedure. Use it to
determine the right libdir, including when cross-compiling. This
fixes a bug whereby the RUNPATH of cross-compiled binaries would be
set to $crossgcc/lib instead of $crossgcc/$triplet/lib.
See <http://hydra.gnu.org/build/354389/nixlog/1/raw> for an example.
* guix/build-system/gnu.scm (%default-modules): Rename to...
(%gnu-build-system-modules): ... this.
(%default-modules): New variable.
(dist-package, gnu-build): Use %GNU-BUILD-SYSTEM-MODULES for
#:imported-modules.
(gnu-cross-build): Likewise, and use %DEFAULT-MODULES for #:modules.
* guix/build-system/cmake.scm (%cmake-build-system-modules): New
variable.
(cmake-build): Use it for #:imported-modules.
* guix/build-system/glib-or-gtk.scm (%default-imported-modules): Rename
to...
(%glib-or-gtk-build-system-modules): ... this. Refer to
%GNU-BUILD-SYSTEM-MODULES. Adjust uses.
* guix/build-system/perl.scm (%perl-build-system-modules): New
variable.
(perl-build): Use it for #:imported-modules.
* guix/build-system/python.scm (%python-build-system-modules): New
variable.
(python-build): Use it for #:imported-modules.
* guix/build-system/ruby.scm (%ruby-build-system-modules): New variable.
(ruby-build): Use it for #:imported-modules.
* guix/build-system/waf.scm (%waf-build-system-modules): New variable.
(waf-build): Use it for #:imported-modules.
* guix/build/gremlin.scm (&elf-error, &invalid-segment-size): New error
condition types.
(dynamic-link-segment): Compare SEGMENT's offset + size to ELF's total
size.
(validate-needed-in-runpath): Wrap body in 'guard' form.
Fixes <http://bugs.gnu.org/19780>.
Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>.
* gnu/packages/bootstrap/i686-linux/bash,
gnu/packages/bootstrap/i686-linux/mkdir,
gnu/packages/bootstrap/i686-linux/tar,
gnu/packages/bootstrap/i686-linux/xz,
gnu/packages/bootstrap/x86_64-linux/bash,
gnu/packages/bootstrap/x86_64-linux/mkdir,
gnu/packages/bootstrap/x86_64-linux/tar,
gnu/packages/bootstrap/x86_64-linux/xz: Update from
<ftp://alpha.gnu.org:/gnu/guix/bootstrap/i686-linux/20131110/static-binaries.tar.xz>
and
<ftp://alpha.gnu.org:/gnu/guix/bootstrap/x86_64-linux/20131110/static-binaries.tar.xz>,
respectively. The libc in those binaries has no dynamic NSS support,
which could otherwise lead to crashes when they tried to load NSS
modules of the host system.
* guix/build/utils.scm (file-name-predicate): New procedure.
(find-files): Rename second parameter to 'pred'. When 'pred' is not a
procedure, call 'file-name-predicate'. Use PRED instead of
'regexp-exec' in the leaf procedure.