Commit graph

1459 commits

Author SHA1 Message Date
Ludovic Courtès 9b222abe03 packages: Raise an error condition a cross builder is needed but unavailable.
* guix/packages.scm (&package-cross-build-system-error): New condition type.
  (package-cross-derivation): Raise &package-cross-build-system-error
  when the build system doesn't support cross builds.
* guix/ui.scm (call-with-error-handling): Add
  package-cross-build-system-error? case.
* tests/packages.scm ("package-cross-derivation, no cross builder"): New test.
2013-05-27 23:43:00 +02:00
Ludovic Courtès ea84ec7711 build-system/gnu: Fix typo in `gnu-cross-build'.
* guix/build-system/gnu.scm (gnu-cross-build)[builder]: When
  IMPLICIT-TARGET-INPUTS is #f, default to '().
2013-05-27 23:43:00 +02:00
Ludovic Courtès 58b4e8e877 gnu: guile: More cross-compilation tweaks.
* gnu/packages/guile.scm (guile-2.0): When cross-compiling, unset
  GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH, and set
  CC_FOR_BUILD=gcc.
2013-05-27 23:43:00 +02:00
Ludovic Courtès d581acee5b gnu: pkg-config: Provide a cross-build-friendly wrapper.
* gnu/packages/pkg-config.scm (pkg-config): Rename to...
  (%pkg-config): ... this.  Make private.
  (cross-pkg-config, pkg-config-for-target): New procedures.
  (pkg-config): New macro.
2013-05-27 23:43:00 +02:00
Ludovic Courtès 47e74d6e9d gnu: cross-binutils: Build with `--with-sysroot'.
This fixes resolution of DT_NEEDED entries in cross-built libraries.
For instance, if ltdl.so needs libdl.so and has it in its RUNPATH, then
libdl.so is searched for in the right place.

* gnu/packages/cross-base.scm (cross-binutils): Pass
  `--with-sysroot=/no-such-path'.
2013-05-27 23:43:00 +02:00
Nikita Karetnikov 4bfc4ea349 doc: Improve wording and fix typos in "Introduction" and "Requirements".
* doc/guix.texi (Introduction, Requirements): Rephrase and fix typos.
2013-05-26 23:25:01 +00:00
Ludovic Courtès 9c782445fb gnu: guile: Add Bash as an input, to permit cross-compilation.
* gnu/packages/guile.scm (guile-2.0): Add Bash as an input
  when (%current-target-system) is true.  Use %standard-cross-phases as
  a basis when (%current-target-system) is true.
2013-05-26 23:46:11 +02:00
Ludovic Courtès 9a97b8144d gnu: bash: Fix cross-compilation.
* gnu/packages/bash.scm (bash): Pass "bash_cv_job_control_missing=no"
  when (%current-target-system) is true.
2013-05-26 23:46:11 +02:00
Ludovic Courtès aa289a3e82 build: `hydra.scm' really cross-builds Gettext.
* hydra.scm: Import (gnu packages gettext).
2013-05-26 23:46:10 +02:00
Cyril Roelandt a67f97fea1 zlib: Add a sourceforge mirror.
This is especially useful since the tarball is deleted from zlib.net as soon as
a new version of zlib is released.
2013-05-25 23:17:53 +02:00
Ludovic Courtès 923fbae1f0 build: Add missing import in `hydra.scm'.
* hydra.scm: Import (gnu packages gawk).
2013-05-25 23:24:51 +02:00
Ludovic Courtès 598608c7ee build: `hydra.scm' cross-builds a few more packages.
* hydra.scm (%packages-to-cross-build): Add a few packages.
2013-05-25 22:39:51 +02:00
Ludovic Courtès f755aa3f7a gnu: ncurses, readline: Allow cross-compilation.
* gnu/packages/ncurses.scm (ncurses): Add `cross-pre-install-phase'.
  Use different phases when (%current-target-system) is true.
* gnu/packages/readline.scm (readline): Use %standard-cross-phases as
  the base when (%current-target-system) is true.
2013-05-25 20:16:45 +02:00
Ludovic Courtès 089b06348e gnu: libffi: Allow cross-compilation.
* gnu/packages/libffi.scm (libffi): Use %standard-cross-phases as the
  base when cross-compiling.  Add (guix build gnu-cross-build) to the
  #:modules when cross-compiling.  Improve synopsis.
2013-05-25 18:03:52 +02:00
Ludovic Courtès 1984b43895 gnu: libtool: Allow cross-compilation.
* gnu/packages/autotools.scm (libtool)[arguments]: Use #:phases argument
  only when building natively.
2013-05-25 18:00:01 +02:00
Ludovic Courtès 3871c9f500 gnu: gawk: Allow cross-compilation.
* gnu/packages/gawk.scm (gawk)[arguments]: Use `set-shell-file-name'
  phase that works when cross-compiling; use `%standard-cross-phases' as
  the base when (%current-target-system) is true.
2013-05-25 17:54:27 +02:00
Ludovic Courtès 9aa949a4b6 gnu: libsigsegv: Fix mips64el-linux-gnu (cross-)builds.
* gnu/packages/libsigsegv.scm (libsigsegv): New `arguments' field.
2013-05-25 16:56:22 +02:00
Ludovic Courtès cf9fd501ea gnu: findutils: Fix cross-compilation.
* gnu/packages/base.scm (findutils): Reinstate cross-compilation
  #:configure-flags.
2013-05-25 16:36:11 +02:00
Ludovic Courtès c8c6bba5a7 gnu: sed: Allow cross-compilation.
* gnu/packages/base.scm (sed): Keep the default phases
  when (%current-target-system) is true.
2013-05-25 16:26:16 +02:00
Ludovic Courtès de59af4d6d gnu: coreutils: Allow cross-compilation.
* gnu/packages/base.scm (coreutils): Remove Perl input
  when (%current-target-system) is true.  Use %standard-cross-phases as
  the base when (%current-target-system) is true.
2013-05-25 16:24:21 +02:00
Ludovic Courtès 2a552f1177 gnu: gettext, attr, acl: Disable `check' phase twiddling when cross building.
* gnu/packages/gettext.scm (gettext)[arguments]: Disable `check' phase
  manipulations when (%current-target-system) is true.
* gnu/packages/attr.scm (attr)[arguments]: Likewise.
* gnu/packages/acl.scm (acl)[arguments]: Likewise.
2013-05-25 16:19:06 +02:00
Ludovic Courtès a7dc055bb5 packages: Make `native-inputs' thunked.
* guix/packages.scm (<package>): Make `native-inputs' thunked.
2013-05-25 16:14:57 +02:00
Ludovic Courtès cd52703ace packages: Re-export `%current-target-system'.
* guix/packages.scm: Re-export `%current-target-system'.
2013-05-25 16:14:37 +02:00
Ludovic Courtès ee4d736881 build-system/gnu: Make sure build input variables contain pairs.
* guix/build-system/gnu.scm (gnu-cross-build)[builder]: Make sure
  %build-host-inputs and %build-target-inputs always contain pairs, not
  lists.
2013-05-25 15:35:36 +02:00
Ludovic Courtès 2ee5f56b4d build: `hydra.scm' cross-builds simpler packages.
* hydra.scm (%packages-to-cross-build): Remove things from
  make-bootstrap for now.
2013-05-25 00:03:28 +02:00
Ludovic Courtès 5dce82180b build-system/trivial: Implement the cross-build protocol.
* guix/build-system/trivial.scm (guile-for-build): New procedure.
  (trivial-build): Use it.
  (trivial-cross-build): New procedure.
  (trivial-build-system): Use it.
2013-05-24 23:53:06 +02:00
Ludovic Courtès cba363bea8 package: Fix default profile ownership check when it's just been created.
* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
  whether S is true before checking its owner.  Fixes the case where we
  built %PROFILE-DIRECTORY just above.
2013-05-24 23:14:19 +02:00
Ludovic Courtès 929c0f69de build: `hydra.scm' adds cross-build jobs.
* hydra.scm (package->alist): Add `package-derivation' argument.
  (package-cross-job): New procedure.
  (%packages-to-cross-build, %cross-targets): New variables.
  (hydra-jobs): Add cross jobs.
2013-05-24 23:12:56 +02:00
Ludovic Courtès e55ec43d8b build: Add `--target' option.
* guix/scripts/build.scm (derivations-from-package-expressions): Add
  `package-derivation' parameter.
  (show-help, %options): Add `--target'.
  (guix-build): Use `package-cross-derivation' when `--target' is
  passed.
* tests/guix-build.sh: Add dry-run test with `--target'.
* doc/guix.texi (Invoking guix build): Document `--target'.
2013-05-24 22:52:52 +02:00
Ludovic Courtès 264218a47e build-system/gnu: Implement cross build.
* guix/build-system/gnu.scm (inputs-search-paths): New procedure.
  (standard-search-paths): Use it.
  (expand-inputs): New procedure.
  (standard-inputs): Use it.
  (standard-cross-packages, standard-cross-inputs,
  standard-cross-search-paths, gnu-cross-build): New procedures.
  (gnu-build-system): Set `cross-build' field to `gnu-cross-build'.
* gnu/packages/cross-base.scm: Export `cross-gcc', `cross-binutils', and
  `cross-libc'.
* guix/build/gnu-cross-build.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-24 22:44:15 +02:00
Ludovic Courtès 9c1edabd8b packages: Implement `package-cross-derivation'.
* guix/packages.scm (package-transitive-target-inputs,
  package-transitive-native-inputs): New procedures.
  (package-derivation): Parametrize `%current-target-system'.
  (package-cross-derivation): Implement.
* guix/utils.scm (%current-target-system): New variable.
* tests/packages.scm ("package-cross-derivation"): New test.
* doc/guix.texi (Defining Packages): Document
  `package-cross-derivation'.
2013-05-24 22:30:58 +02:00
Ludovic Courtès 17bb886ff4 gnu: cross-gcc: Set the right search paths.
* gnu/packages/cross-base.scm (cross-gcc): Override `search-paths' and
  `native-search-paths'.
2013-05-24 21:55:52 +02:00
Ludovic Courtès 248d08ebf0 gnu: cross-gcc: Change patch so that `CROSS_LIBRARY_PATH' is honored.
* gnu/packages/patches/gcc-cross-environment-variables.patch: Add two
  hunks, most notably one that changes GCC to honor LIBRARY_PATH_ENV
  when cross-compiling.
2013-05-24 21:54:44 +02:00
Ludovic Courtès a63062b55a packages: Factorize things common to `package-{,cross-}derivation'.
* guix/packages.scm (expand-input): New procedure, moved out of...
  (package-derivation): ... here.  Adjust accordingly.
  (package-cross-derivation): Add `cross-system' and `system'
  parameters.
2013-05-24 08:58:52 +02:00
Ludovic Courtès 7046c48d72 nls: Add Esperanto translation.
* po/eo.po, po/LINGUAS: New files.
2013-05-24 00:22:57 +02:00
Ludovic Courtès 3ec7ad8e0f gnu: Add UnRTF.
* gnu/packages/unrtf.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-24 00:03:57 +02:00
Ludovic Courtès a10f6f7bf7 gnu: libgc: Add 7.2d.
* gnu/packages/bdw-gc.scm (libgc-7.2): New variable.
2013-05-23 00:11:38 +02:00
Ludovic Courtès bb3fe7fcfe gnu: Add GNU Plotutils.
* gnu/packages/plotutils.scm: New file.
* Makefile.am (MODULES): Add it.
2013-05-22 00:33:14 +02:00
Ludovic Courtès d149583162 Update `NEWS'. 2013-05-20 18:30:55 +02:00
Ludovic Courtès 1972fed4df gnu: Add CVS.
* gnu/packages/version-control.scm (cvs): New variable.
2013-05-20 18:29:43 +02:00
Ludovic Courtès 969e678ed9 Add --max-silent-time' to guix build' and `guix package'.
* guix/scripts/build.scm (%default-options): Add default
  `max-silent-time' value.
  (show-help, %options):  Add `--max-silent-time'.
  (guix-build): Pass `max-silent-time' to `set-build-options'.
* guix/scripts/package.scm (%default-options): Add default
  `max-silent-time' value.
  (show-help, %options):  Add `--max-silent-time'.
  (guix-package): Pass `max-silent-time' to `set-build-options'.
* guix/ui.scm (string->number*): New procedure.
* tests/derivations.scm ("build-expression->derivation and
  max-silent-time"): New test.
* doc/guix.texi (Invoking guix package, Invoking guix build): Document
  `--max-silent-time'.
2013-05-20 18:29:26 +02:00
Ludovic Courtès d8482ad0d6 gnu: Add strace.
* gnu/packages/linux.scm (strace): New variable.
2013-05-18 23:31:14 +02:00
Ludovic Courtès 35ec07c758 gnu: Improve synopses for Linux-related packages.
* gnu/packages/linux.scm (util-linux, procps, e2fsprogs): Clarify and
  shrink synopses.
2013-05-18 23:02:25 +02:00
Ludovic Courtès 4bc3fcc771 build: Switch to 0.3.
* configure.ac: Bump to 0.3.  Use the full URL.
2013-05-18 23:01:28 +02:00
Ludovic Courtès 499b8d1f84 Update `TODO'. 2013-05-17 23:15:49 +02:00
Ludovic Courtès f11617d8a6 gnu: automake: Update to 1.13.2.
* gnu/packages/autotools.scm (autoconf-wrapper): Wrap `configure' files
  regardless of the exit code of `autoconf'.  Triggered by Automake's
  `t/am-prog-cc-stdc.sh'.
  (automake): Update to 1.13.2.
2013-05-17 23:10:47 +02:00
Ludovic Courtès 70c4329172 package: Make sure the profile directory is owned by the user.
* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
  the owner of %PROFILE-DIRECTORY.  Report an error when the owner is
  not the current user.  Add `rtfm' procedure.
* doc/guix.texi (Invoking guix package): Mention the ownership test.
2013-05-16 20:04:13 +02:00
Ludovic Courtès 101d9f3fd4 substitute-binary: Pass `filtered-port' an unbuffered port.
This fixes a bug whereby `read-response' would read more than just the
response, with the extra data going into the port's buffer; the
"bzip2 -dc" process spawned by `filtered-port' would not see the those
buffered data, which are definitely lost, and would bail out with
"bzip2: (stdin) is not a bzip2 file."

* guix/utils.scm (filtered-port): Document that INPUT must be
  unbuffered.
* guix/web.scm (http-fetch): Add `buffered?' parameter.  Call
  `open-socket-for-uri' explicitly, and call `setvbuf' when BUFFERED? is
  false.  Pass the port to `http-get'.  Close it upon 301/302.
* guix/scripts/substitute-binary.scm (fetch): Add `buffered?'
  parameter.  Pass it to `http-fetch'; honor it for `file' URIs.
  (guix-substitute-binary): Call `fetch' with #:buffered? #f for port RAW.
* tests/utils.scm ("filtered-port, file"): Open FILE as unbuffered.
2013-05-15 23:40:09 +02:00
Ludovic Courtès 3d6b71e87e gnu: texinfo: Don't propagate Perl.
* gnu/packages/texinfo.scm (texinfo): Don't propagate Perl.
2013-05-15 00:15:25 +02:00
Ludovic Courtès 0332386251 substitute-binary: Work around thread-unsafe `regexp-exec'.
* guix/scripts/substitute-binary.scm (%regexp-exec-mutex): New variable.
  (string->uri): New procedure.
  (fields->alist): Wrap `regexp-exec' call in `with-mutex'.
2013-05-14 23:53:38 +02:00