Commit Graph

5046 Commits

Author SHA1 Message Date
Ludovic Courtès e9651e39b3 derivations: Add 'substitution-oracle' and use it.
This makes 'guix environment PACKAGE' significantly faster when
substitutes are enabled.  Before that, it would lead to many invocations
of 'guix substitute-binary', one per 'derivation-prerequisites-to-build'
call.  Now, all these are replaced by a single invocation.

* guix/derivations.scm (derivation-output-paths, substitution-oracle):
  New procedures.
  (derivation-prerequisites-to-build): Replace #:use-substitutes? with
  #:substitutable?.  Remove the local 'derivation-output-paths' and
  'substitutable?'.
* guix/ui.scm (show-what-to-build): Add 'substitutable?'.  Pass it to
  'derivation-prerequisites-to-build'.
  [built-or-substitutable?]: Use it instead of 'has-substitutes?'.
* tests/derivations.scm ("derivation-prerequisites-to-build and
  substitutes"): Use #:substitutable? instead of #:use-substitutes?.
2015-01-10 00:39:59 +01:00
Ludovic Courtès 0b6af195fe derivations: Add 'derivation-output-names'.
* guix/derivations.scm (derivation-output-names): New procedure.
  (derivation-prerequisites-to-build): Use it for #:outputs.
  (map-derivation): Likewise.
* tests/derivations.scm ("derivation-output-names"): New test.
2015-01-09 23:36:24 +01:00
Ludovic Courtès eb9dfcb3c4 nls: Update 'eo' translation. 2015-01-09 23:33:05 +01:00
Ludovic Courtès 4eb01e5442 build-system/gnu: Patch /usr/bin/file in all 'configure' files.
* guix/build/utils.scm (patch-/usr/bin/file): New procedure.
* guix/build/gnu-build-system.scm (patch-usr-bin-file): Rewrite using
  it.  Patch all the files returned by 'find-files' that are executable.
* gnu/packages/gawk.scm (gawk)[arguments]: Remove use of 'substitute*'
  for 'extension/configure'.
2015-01-09 23:29:20 +01:00
Eric Bavier d45dc6da5c import: Add CPAN importer.
* guix/import/cpan.scm, guix/scripts/import/cpan.scm, tests/cpan.scm:
  New files.
* Makefile.am (MODULE)[HAVE_GUILE_JSON]: Add them.
* guix/scripts/import.scm (importers): Add cpan.
* doc/guix.texi (Requirements): Mention `guix import cpan` as a user
  of guile-json.
  (Invoking guix import): Document new `guix import cpan` command.
2015-01-09 10:38:26 -06:00
Eric Bavier 694b317c2d tests: import: Factorize utility function.
* tests/pypi.scm (mock): Move this...
* guix/tests.scm: to here.
2015-01-09 10:38:25 -06:00
Eric Bavier 1ff2619bc1 import: Factorize utility functions.
* guix/import/pypi.scm (hash-table->alist, flatten, assoc-ref*,
  url-fetch, json-fetch): Pull procedures from here into...
* guix/import/utils.scm: Here and...
* guix/import/json.scm: Here.  New file.
* Makefile.am (MODULE)[HAVE_GUILE_JSON]: Add it.
* guix/import/gnu.scm (file-sha256): Move from here to...
* guix/hash.scm: Here.
* tests/pypi.scm (pypi->guix-package): Update mock module reference.
2015-01-09 10:33:24 -06:00
Eric Bavier c6cb82f5d5 import: gnu: Propagate the key-download argument.
* guix/import/gnu.scm (gnu->guix-package): Pass the key-download
  argument on to gnu-package->sexp.
2015-01-09 10:33:24 -06:00
Ricardo Wurmus 927d4d9bd8 gnu: poppler: build with openjpeg and lcms
* gnu/packages/pdf.scm (poppler): build poppler with openjpeg 1.5 and lcms.
2015-01-09 14:24:14 +01:00
Ricardo Wurmus da2021bca1 gnu: openjpeg: Update to 2.0.1.
* gnu/packages/image.scm (openjpeg): Update to 2.0.1.
2015-01-09 14:24:07 +01:00
Ricardo Wurmus 6140b9d875 gnu: Add openjpeg-1.
* gnu/packages/image.scm (openjpeg-1): New variable.
2015-01-09 14:23:57 +01:00
Ricardo Wurmus 4100fe9d33 gnu: openjpeg: update home page URL.
* gnu/packages/image.scm (openjpeg)[home-page]: Update URL.
2015-01-09 14:23:46 +01:00
Ludovic Courtès 8234fcf21a substitute-binary: Micro-optimize 'narinfo-sha256'.
* guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
  Change "~a" to "~s" in error message.
  (%signature-line-rx): Remove.
  (narinfo-sha256): Use 'string-contains' instead of 'regexp-exec', and
  'string-take' instead of 'match:substring'.
2015-01-09 01:10:31 +01:00
Ludovic Courtès fb519bd831 records: Optimize 'recutils->alist' by avoiding regexps.
* guix/records.scm (%recutils-field-rx, %recutils-comment-rx,
  %recutils-plus-rx): Remove.
  (%recutils-field-charset): New variable.
  (recutils->alist): Adjust to use tests (string-ref line 0) instead of
  regexps.
2015-01-09 01:08:10 +01:00
Ludovic Courtès b2ad9d9b08 base64: Inline arithmetic operations.
* guix/base64.scm (define-alias): New macro.
  (fxbit-field, fxarithmetic-shift, fxarithmetic-shift-left, fxand,
  fxior, fxxor): New aliases.
2015-01-09 01:01:04 +01:00
Mark H Weaver aa1e19477b gnu: Add bootstrap binaries for 'armhf-linux'.
* gnu/packages/bootstrap/armhf-linux/bash,
  gnu/packages/bootstrap/armhf-linux/mkdir,
  gnu/packages/bootstrap/armhf-linux/tar,
  gnu/packages/bootstrap/armhf-linux/xz: New files.

* gnu-system.am (bootstrap_armhf_linuxdir, dist_bootstrap_armhf_linux_DATA)
  (nodist_bootstrap_armhf_linux_DATA): New variables.
  (DISTCLEANFILES): Add $(nodist_bootstrap_armhf_linux_DATA).
  (gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz): New target.
* build-aux/download.scm (file-name->uri): Use newer date in URI for
  armhf-linux.
* gnu/packages/bootstrap.scm (raw-build): Use "guile-2.0.11.tar.xz" on
  armhf-linux.
  (glibc-dynamic-linker, %bootstrap-coreutils&co, %bootstrap-binutils)
  (%bootstrap-glibc, %bootstrap-gcc): Add armhf-linux cases.

* m4/guix.m4 (GUIX_SYSTEM_TYPE): Add armhf case.
  (GUIX_ASSERT_SUPPORTED_SYSTEM): Add armhf-linux to list of
  supported systems.
* doc/guix.texi (GNU Distribution): Add armhf-linux to the list of
  supported systems.
2015-01-07 21:47:51 -05:00
Mark H Weaver b58b7dbb75 gnu: libtool: Skip nopic test on ARM and MIPS systems.
* gnu/packages/patches/libtool-skip-tests.patch: Skip nopic test on ARM and
  MIPS systems.
2015-01-07 18:00:49 -05:00
Ludovic Courtès 05f0607bfc tests: Add missing copyright line.
* tests/lint.scm: Add missing copyright line for commit 907c98ac and
  others.
2015-01-07 22:33:21 +01:00
Mark H Weaver 3f00ff8b43 gnu: Add toolchain support for 'armhf-linux'.
Based on preliminary work by John Darrington <john@darrington.wattle.id.au>.

* gnu/packages/cross-base.scm (xgcc-armhf): New variable.
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add armhf case.
  (gcc-4.7)[pre-configure]: Add gcc/config/*/linux-eabi.h to the list
  of files in which to patch GLIBC_DYNAMIC_LINKER.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add armhf case.
* guix/utils.scm (gnu-triplet->nix-system, nix-system->gnu-triplet):
  Add armhf cases.
2015-01-07 16:27:55 -05:00
Mark H Weaver f7d2b496b9 gnu: patchelf: On ARM, apply experimental patch to get it working.
* gnu/packages/patches/patchelf-rework-for-arm.patch: New file.
* gnu-system.am: Add it.
* gnu/packages/elf.scm: Apply patch when the target is ARM.
2015-01-07 12:38:11 -05:00
Mark H Weaver 24aaf2f257 gnu: gmp: Apply fixes for armhf.
* gnu/packages/patches/gmp-arm-asm-nothumb.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/multiprecision.scm (gmp): Add patch.  Include --build triplet
  in configure args when building natively.
* gnu/packages/commencement.scm (gcc-final): Use bootstrap guile to
  build gmp-source.
2015-01-07 12:34:19 -05:00
Mark H Weaver 76e639a00f gnu: gcc: Use 'gcc-configure-flags-for-triplet' for native compilers too.
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Do not export it.
  (gcc-4.7): Pass the result of 'gcc-configure-flags-for-triplet' to configure
  for all builds, including native ones.
* gnu/packages/cross-base.scm (cross-gcc-arguments): Do not add the result of
  'gcc-configure-flags-for-triplet' here, since it is now included in the
  configure-flags inherited from gcc-4.8.
2015-01-07 12:34:13 -05:00
Mark H Weaver 8eb8048432 Move 'nix-system->gnu-triplet' to (guix utils) and export it.
* gnu/packages/commencement.scm (nix-system->gnu-triplet): Move to...
* guix/utils.scm (nix-system->gnu-triplet): ... here.  Fix docstring typo.
2015-01-07 12:34:10 -05:00
Mark H Weaver 270b501ee2 gnu: gcc-static: Remove -lgcc_s from GNU_USER_TARGET_LIB_SPEC.
* gnu/packages/make-bootstrap.scm (%gcc-static): Add 'remove-lgcc_s
  phase.
* gnu/packages/gcc.scm (gcc-4.7): Add comment.
2015-01-07 12:33:38 -05:00
Mark H Weaver 84cbe39c5a gnu: bootstrap: Fix egrep and fgrep after unpacking bootstrap binaries.
* gnu/packages/bootstrap.scm (%bootstrap-coreutils&co): Add #:snippet argument
  to 'package-from-tarball' that calls 'patch-shebang' on egrep and fgrep
  after unpacking.  Test 'fgrep' instead of 'true'.
2015-01-07 12:33:32 -05:00
Mark H Weaver 2959dbe935 gnu: bootstrap: Add support for snippets to 'package-from-tarball'.
* gnu/packages/bootstrap.scm (package-from-tarball): Add new keyword
  argument #:snippet.
2015-01-07 12:33:27 -05:00
Mark H Weaver c9a4655553 gnu: tcl: Pass --mandir to configure.
This partially reverts 9b1bf33081.
"gnu: Remove a bunch of now unneeded '--mandir' configure flags."

* gnu/packages/tcl.scm (tcl)[arguments]: Put back the --mandir configure flag,
  with a comment explaining why it's still needed.
2015-01-07 12:05:16 -05:00
Ludovic Courtès 3246cc9185 gnu: Make libtool and libltdl completely separate.
* gnu/packages/autotools.scm (libtool)[outputs]: Remove.
  [arguments]: Remove 'if' around arguments.  Add #:configure-flags.
* gnu/packages/apr.scm (apr)[inputs]: Change libtool to libltdl.
* gnu/packages/fontutils.scm (libuninameslist)[native-inputs]: Remove
  "libtool-bin".
* gnu/packages/global.scm (global): Change libtool to libltdl.
* gnu/packages/gnunet.scm (libextractor, gnunet): Likewise.
* gnu/packages/graphviz.scm (graphviz): Likewise.
* gnu/packages/libcanberra.scm (libcanberra): Likewise.
* gnu/packages/libevent.scm (libuv)[native-inputs]: Remove "bin" part
  for libtool.
* gnu/packages/mail.scm (mailutils): Change libtool to libltdl.
  (libetpan): Remove "bin" part for libtool.
* gnu/packages/mp3.scm (libmp3splt): Change libtool to libltdl.
* gnu/packages/openldap.scm (openldap): Remove "bin" part of libtool.
  Move it from 'inputs' to 'native-inputs'.
* gnu/packages/photo.scm (libgphoto2): Change libtool to libltdl.
* gnu/packages/pulseaudio.scm (pulseaudio): Likewise.
* gnu/packages/ssh.scm (guile-ssh): Remove "bin" part of libtool.
* gnu/packages/web.scm (libpsl): Likewise.
* gnu/packages/weechat.scm (weechat): Move libtool to 'native-inputs'
  and add libltdl to 'inputs'.
2015-01-07 16:48:50 +01:00
Ludovic Courtès c154e1ea81 gnu: libtool: Update to 2.4.4.
* gnu/packages/patches/libtool-2.4-skip-tests.patch: Rename to...
* gnu/packages/patches/libtool-skip-tests.patch: ... this.
* gnu/packages/patches/libtool-skip-tests-for-mips.patch: Remove.
* gnu-system.am (dist_patch_DATA): Adjust accordingly.
* gnu/packages/autotools.scm (libtool): Update to 2.4.4.
  (libtool-2.4.4): Remove.
2015-01-07 16:48:50 +01:00
Ludovic Courtès be11b10244 gnu: guile: Depend on 'libltdl' rather than 'libtool'.
* gnu/packages/guile.scm (guile-1.8, guile-2.0): Replace LIBTOOL with
  LIBLTDL.
2015-01-07 16:48:50 +01:00
Ludovic Courtès 3cbb3f9c55 gnu: libtool: Add libltdl as a separate package.
* gnu/packages/autotools.scm (libltdl): New variable.
2015-01-07 16:48:50 +01:00
Ludovic Courtès 5d65ad80b5 gnu: libtool: Use 'parallel-job-count' to get the argument for '-j'.
* gnu/packages/autotools.scm (libtool)[arguments] <check>:
  Use (parallel-job-count) instead of hand-written code.
2015-01-07 16:48:50 +01:00
Mark H Weaver fa1e2f3d0d Revert "gnu: gcc: Add '-lgcc_s' only when '-pthread' is given."
This reverts commit 9097e666d4.

This turned out not to be a good strategy.  Some build system, e.g. tcl's, do
not pass -pthread on GNU/Linux by default, but merely link with -lpthread.
Also, Ludovic found other cases where libgcc_s is dlopened by libc that have
nothing to do with pthreads, e.g. to walk the stack.
2015-01-07 09:51:23 -05:00
Mark H Weaver b515822de1 gnu: guile: Apply fixes for arm.
* gnu/packages/patches/guile-arm-fixes.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/guile.scm (guile-2.0): Add patch.
2015-01-06 19:47:09 -05:00
Mark H Weaver 9097e666d4 gnu: gcc: Add '-lgcc_s' only when '-pthread' is given.
Suggested by Ludovic Courtès <ludo@gnu.org>.

* gnu/packages/gcc.scm (gcc-4.7): In our modified GNU_USER_TARGET_LIB_SPEC,
  add '-lgcc_s' only when '-pthread' is given.
2015-01-06 19:46:48 -05:00
Mark H Weaver 91c47befb8 gnu: gcc: Improve dynamic linker patching code.
* gnu/packages/gcc.scm (gcc-4.7): Join multi-line definitions of
  GLIBC_DYNAMIC_LINKER* before attempting substitutions.
  (gcc-4.9)[arguments]: Remove arguments override.
2015-01-06 19:37:04 -05:00
Mark H Weaver fd19df7252 gnu: patchelf: Update to 0.8.
* gnu/packages/elf.scm (patchelf): Update to 0.8.
* gnu/packages/patches/patchelf-page-size.patch: Adapt to new version.
2015-01-06 18:40:42 -05:00
Mark H Weaver c93d7edda3 gnu: bash: Update to 4.3.33.
* gnu/packages/bash.scm (%patch-series-4.3): Add patches 31-33.
2015-01-06 17:46:00 -05:00
Mark H Weaver fe32c7f760 gnu: udev: Remove package, now superceded by eudev.
* gnu/packages/linux.scm (udev): Remove.
  (eudev): Incorporate fields formerly inherited from udev.
2015-01-06 14:02:08 -05:00
Mark H Weaver 8fcaf8b173 gnu: lvm2: Switch to eudev from udev.
* gnu/packages/linux.scm (lvm2)[inputs]: Use eudev, not udev.
2015-01-06 13:52:57 -05:00
Mark H Weaver 77a39799f9 gnu: swig: Build a UTF-8 locale for the tests.
* gnu/packages/swig.scm (swig)[arguments]: Add 'install-locales' phase.
2015-01-06 13:40:50 -05:00
Mark H Weaver 0d93648bec gnu: icu4c: Avoid use of 'patchelf'; fix build on ARM systems.
* gnu/packages/icu4c.scm (icu4c)[inputs]: Remove patchelf.
  [configure-flags]: Add --enable-rpath.  Add --with-data-packaging=archive
  on arm systems.
  [phases]: Remove 'add-lib-to-runpath' phase.
2015-01-06 13:35:13 -05:00
Mark H Weaver cf0a154c41 gnu: gawk: Fix target-system check.
* gnu/packages/gawk.scm (gawk): Fix target-system check.
2015-01-06 13:31:49 -05:00
Mark H Weaver 7cd802f342 gnu: boost: Fix target-system check.
* gnu/packages/boost.scm (boost): Fix target-system check.
2015-01-06 13:31:44 -05:00
Mark H Weaver d2e842814a gnu: texlive: Fix target-system check.
* gnu/packages/texlive.scm (texlive)[arguments]: Fix target-system
  check.
2015-01-06 13:31:20 -05:00
Mark H Weaver 97f94f5e9b gnu: gtk+: Include xorg-server in native-inputs on MIPS; enable tests.
* gnu/packages/gtk.scm (gtk+)[native-inputs]: Unconditionally include
  xorg-server and enable tests.
2015-01-06 13:30:17 -05:00
Mark H Weaver cd06768e66 gnu: mit-krb5: Build with default gcc.
* gnu/packages/mit-krb5.scm (mit-krb5)[native-inputs]: Remove gcc-4.7.
2015-01-06 13:30:07 -05:00
Mark H Weaver 23800e4736 Merge branch 'master' into core-updates 2015-01-06 12:57:15 -05:00
Ludovic Courtès aebb05b095 gnu: automake: Update to 1.15.
* gnu/packages/autotools.scm (automake): Update to 1.15.
2015-01-06 17:54:25 +01:00
Ludovic Courtès d976258907 gnu: git-manpages: Install under $out/share/man, not $out/share.
* gnu/packages/version-control.scm (git-manpages)[argument]: Install
  under $out/share/man, not $out/share.
2015-01-06 15:20:12 +01:00