Ludovic Courtès
4919d68432
gnu: linux-initrd: Recognize 9p file systems.
...
* gnu/system/linux-initrd.scm (qemu-initrd)[virtio-9p-modules]: New
variable.
[linux-modules]: Append VIRTIO-9P-MODULES when a 9p file system is in
MOUNTS.
* guix/build/linux-initrd.scm (mount-qemu-9p): New procedure.
(boot-system): Recognize '9p' in MOUNTS, and use 'mount-qemu-9p'.
2014-01-31 12:52:13 +01:00
Ludovic Courtès
fc4bc4b6de
gnu: linux-initrd: Properly distinguish between /dev/sda* and /dev/vda*.
...
* guix/build/linux-initrd.scm (make-essential-device-nodes): Rename
devices with major = 8 to /dev/sda*. Make /dev/vda* devices.
* gnu/system/vm.scm (qemu-image): Change '/dev/vda' to '/dev/sda'.
* gnu/system.scm (operating-system-derivation): Likewise.
2014-01-31 01:43:16 +01:00
Ludovic Courtès
83b9e6a185
gnu: linux-initrd: Start a REPL when the root could not be mounted.
...
* guix/build/linux-initrd.scm (boot-system): Catch errors when mounting
ROOT and call 'start-repl' upon error.
2014-01-31 01:40:02 +01:00
Ludovic Courtès
d425471182
gnu: linux-initrd: Factorize boot code.
...
* guix/build/linux-initrd.scm (boot-system): New procedure.
* gnu/system/linux-initrd.scm (qemu-initrd): Add keyword parameters
'guile-modules-in-chroot?' and 'mounts'. Change builder to simply
call 'boot-system'.
(gnu-system-initrd): Change to a simple call to 'qemu-initrd'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Call
'qemu-initrd' with #:guile-modules-in-chroot?.
2014-01-29 21:57:56 +01:00
Ludovic Courtès
49a8b80da6
Revert "build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com."
...
This reverts commit 65529e49ff
.
2014-01-28 08:57:37 +01:00
Ludovic Courtès
65529e49ff
build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com.
...
Suggested by John Darrington <john@darrington.wattle.id.au>
and Mark H Weaver <mhw@netris.org>.
* guix/build/gnu-build-system.scm (configure): Pass --localstatedir=/var
--sharedstatedir=/com.
* gnu/packages/admin.scm (dmd): Remove 'arguments' field.
* gnu/packages/avahi.scm (avahi): Remove --localstatedir flag.
* gnu/packages/glib.scm (dbus): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/pulseaudio.scm (pulseaudio): Likewise.
2014-01-27 23:45:59 +01:00
Ludovic Courtès
200a97e64f
Merge branch 'master' into core-updates
2014-01-25 17:07:21 +01:00
Ludovic Courtès
b97c95eb3c
linux-initrd: Make /dev/{null,zero} world-writable.
...
Reported by zerwas on #guix.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
/dev/null and /dev/zero world-writable.
2014-01-18 22:32:50 +01:00
John Darrington
db6190899e
gnu: gnu-build-system: Add CC_FOR_BUILD to configure flags.
...
* guix/build/gnu-build-system.scm: Add new configure flag: CC_FOR_BUILD=gcc
* gnu/packages/gnupg.scm, gnu/packages/guile.scm, gnu/packages/make-bootstrap.scm:
remove CC_FOR_BUILD from these package descriptions.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-12-17 21:28:07 +01:00
Ludovic Courtès
3dbeecd2ff
pull: Move build code to (guix build pull).
...
* guix/build/pull.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/scripts/pull.scm (unpack): Use it.
2013-12-16 23:26:48 +01:00
Cyril Roelandt
af949e8ee7
gnu: gtk+: enable introspection.
...
* gnu/packages/gtk.scm (atk, gdk-pixbuf, gtk+, pango): enable introspection
* guix/build/gnome.scm: New file.
2013-12-15 23:39:43 +01:00
Ludovic Courtès
977f03ffd3
build-system/cmake: Build out of source tree by default.
...
* guix/build-system/cmake.scm (cmake-build): Change 'out-of-source?' to
default to #t.
* guix/build/cmake-build-system.scm (configure): Add 'out-of-source?'
keyword parameter and honor it.
2013-11-28 00:15:07 +01:00
Ludovic Courtès
ff8061b591
Merge branch 'master' into core-updates
2013-11-01 12:59:31 +01:00
Ludovic Courtès
cdbca518ca
union: Do not warn when identical files collide.
...
* guix/build/union.scm (file=?): New procedure.
(union-build)[resolve-collision]: Do not warn when identical files
collide.
2013-10-31 23:38:58 +01:00
Ludovic Courtès
c065c443a0
union: Make the log port a parameter.
...
* guix/build/union.scm (union-build): Add 'log-port' keyword parameter;
use it.
2013-10-30 22:09:32 +01:00
Ludovic Courtès
f1352766fa
utils: 'find-files' always returns a proper list.
...
Reported at <http://bugs.gnu.org/15608 >.
* guix/build/utils.scm (find-files): Change the 'error' procedure to
return RESULT. Before we would end up with an improper list.
2013-10-16 15:53:59 +02:00
Andreas Enge
e78fd4ca63
guix: Make cmake build system aware of usual paths.
...
* guix/build/cmake-build-system.scm (configure): Set CMAKE_LIBRARY_PATH to
LIBRARY_PATH and CMAKE_INCLUDE_PATH to CPATH.
2013-10-13 18:02:49 +02:00
Ludovic Courtès
7e2b10a53f
build-system/{gnu,cmake}: Remove #:patches and #:patch-flags parameters.
...
* guix/build/gnu-build-system.scm (patch): Remove.
(%standard-phases): Remove 'patch'.
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Remove
#:patches and #:patch-flags parameters.
* guix/build-system/cmake.scm (cmake-build): Likewise.
* guix/build-system/python.scm (package-with-explicit-python): Update
comment.
2013-10-10 23:15:57 +02:00
Ludovic Courtès
5608847c6f
Merge branch 'master' into core-updates
2013-09-23 00:35:17 +02:00
Ludovic Courtès
66018f1c33
utils: 'find-files' returns a sorted list.
...
* guix/build/utils.scm (find-files): Sort the result lexicographically.
* guix/scripts/pull.scm (unpack): Don't sort the result of 'find-files'.
2013-09-15 23:21:30 +02:00
Andreas Enge
aae4ead814
Merge branch 'python'
2013-09-14 10:45:01 +02:00
Andreas Enge
824af8cadc
guix: python: Create module installation path and add it to PYTHONPATH during
...
the installation phase.
* guix/build/python-build-system.scm (get-python-version): New procedure.
* guix/build/python-build-system.scm (install): Create and add path.
* gnu/packages/python.scm (python-setuptools): Drop path creation code.
2013-09-11 15:47:34 +02:00
Ludovic Courtès
37c825eb79
linux-initrd: Create /dev/klog and /dev/kmsg.
...
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
/dev/klog and /dev/kmsg.
2013-09-11 01:07:50 +02:00
Andreas Enge
b191f88ee3
guix: python: Add build phase and factor out calls to setup.py.
...
* guix/build/python-build-system.scm (call-setuppy): New procedure.
* guix/build/python-build-system.scm (build): New procedure.
* guix/build/python-build-system.scm (check, install): Use call-setuppy.
* guix/build/python-build-system.scm (%standard-phases): Add call to build.
2013-09-05 20:25:08 +02:00
Andreas Enge
7b96bf82da
gnu: python: Honour #:tests? and #:test-target in build system.
...
* guix/build/python-build-system.scm (check): Use named parameters tests?
and test-target (default now: "test" instead of "check").
2013-09-05 18:43:18 +02:00
Ludovic Courtès
29804e6eb2
gnu: linux-initrd: Fix creation of /dev/tty nodes.
...
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
/dev/tty. Change from 'block-special' to 'char-special' for /dev/tty*
nodes.
2013-09-05 00:46:09 +02:00
Andreas Enge
3df47231e6
guix: python: Switch to python-wrapper as the default version for the python
...
build system (switches to Python 3) and compute python-version instead of
passing it as a parameter.
* guix/build-system/python.scm (default-python): Switch to python-wrapper.
* guix/build-system/python.scm (python-build): Drop parameter #:python-version.
* guix/build/python-build-system.scm (wrap): Compute python version from input.
2013-09-04 18:07:55 +02:00
Ludovic Courtès
43dd92024a
union: Don't traverse sub-directories only found in one element of the union.
...
This significantly reduces I/O when building profiles, especially with
lots of package-specific sub-directories (such as 'share/emacs/24.3',
'texmf', etc.)
* guix/build/union.scm (union-build)[file-tree](others-have-it?): New
procedure. Use it in the 'enter?' parameter of 'file-system-fold';
change 'skip' parameter accordingly.
* tests/union.scm ("union-build"): Ensure that 'include' is a symlink
and 'bin' is a directory.
2013-09-02 23:04:25 +02:00
Ludovic Courtès
d91712ee89
gnu: linux-initrd: Factorize device node creation.
...
* guix/build/linux-initrd.scm (make-essential-device-nodes): New
procedure.
* gnu/packages/linux-initrd.scm (qemu-initrd): Use it.
2013-09-02 00:20:14 +02:00
Ludovic Courtès
89bf140b10
gnu: linux-initrd: Make Guile modules accessible in the chroot.
...
* gnu/packages/linux-initrd.scm (qemu-initrd): Add (guix build utils) to
#:modules, and use it. Copy .scm and .go files to /root.
* guix/build/linux-initrd.scm (bind-mount): New procedure.
2013-08-31 23:02:18 +02:00
Ludovic Courtès
88840f0246
gnu: linux-initrd: Add (guix build linux-initrd) and use it.
...
* gnu/packages/linux-initrd.scm (qemu-initrd): Add #:modules argument.
Factorize and move some of the code to...
* guix/build/linux-initrd.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
2013-08-29 00:05:03 +02:00
Ludovic Courtès
fe12c3458c
build-system/gnu: Add `dist-package'.
...
* guix/build/gnu-dist.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/build-system/gnu.scm (%default-modules): New variable.
(gnu-build): Use it.
(dist-package): New procedure.
2013-08-24 17:30:31 +02:00
Ludovic Courtès
c769406010
Merge branch 'core-updates'
2013-07-09 22:17:18 +02:00
Ludovic Courtès
be58d01a7e
build-system/gnu: Write debug files to the "debug" sub-derivation, if any.
...
* guix/build/gnu-build-system.scm (strip): Add `objcopy-command' keyword
parameter.
[debug-output, debug-file-extension]: New variables.
[debug-file, make-debug-file, add-debug-link]: New procedures.
[strip-dir]: Use them.
2013-07-03 23:53:31 +02:00
Ludovic Courtès
d475b25953
utils: Re-export `alist-cons' and `alist-delete'.
...
* guix/build/utils.scm: Re-export `alist-cons' and `alist-delete'.
2013-07-03 23:08:41 +02:00
Ludovic Courtès
b15669f37d
utils: `set-path-environment-variable' calls `unsetenv' for empty values.
...
* guix/build/utils.scm (set-path-environment-variable): When VALUE is
the empty string, call `unsetenv' instead of `setenv'.
* gnu/packages/guile.scm (guile-2.0)[arguments]: Remove `unsetenv'
trick.
2013-06-22 16:42:46 +02:00
Ludovic Courtès
2f41f51c40
build-system/gnu: Set #:tests? to #f when cross-compiling.
...
* guix/build/gnu-build-system.scm (check): Add `target' formal
parameter. Change `tests?' to default to (not target).
2013-06-22 16:15:23 +02:00
Ludovic Courtès
91a7fde456
download: Don't fail when abbreviating `file://' URIs.
...
* guix/build/download.scm (uri-abbreviation)[elide-path]: Handle the
case where URI has no `host' part.
2013-06-22 16:10:25 +02:00
Ludovic Courtès
4ca968eb95
build-system/gnu: Save `environment-variables' after each phase.
...
* guix/build/gnu-build-system.scm (set-paths): Move `system' call to...
(gnu-build): ... here.
2013-06-21 00:32:07 +02:00
Ludovic Courtès
56c092ce94
build-system/gnu: Unify with (guix build-system gnu-cross-build).
...
* guix/build/gnu-build-system.scm (set-paths): Add `native-inputs' and
`native-search-paths' keyword parameters. Honor them.
(configure): Add `target' and `native-inputs' keyword parameters.
Look for Bash in NATIVE-INPUTS or INPUTS. Pass `--host' when TARGET
is true.
(strip): Add `strip-command' keyword parameter. Use it.
* guix/build/gnu-cross-build.scm: Remove.
* Makefile.am (MODULES): Adjust accordingly.
* gnu/packages/acl.scm, gnu/packages/attr.scm, gnu/packages/base.scm,
gnu/packages/bash.scm, gnu/packages/gawk.scm,
gnu/packages/gettext.scm, gnu/packages/guile.scm,
gnu/packages/libffi.scm, gnu/packages/libsigsegv.scm,
gnu/packages/linux.scm, gnu/packages/ncurses.scm,
gnu/packages/readline.scm, guix/build-system/gnu.scm: Replace
`%standard-cross-phases' by `%standard-phases'. Remove references
to (guix build gnu-cross-build).
2013-06-21 00:25:54 +02:00
Ludovic Courtès
a85060efec
substitute-binary: Report progress while downloading.
...
* guix/scripts/substitute-binary.scm (decompressed-port): Improve docstring.
(progress-report-port): New procedure.
(guix-substitute-binary)["--substitute"]: Use it to report progress.
* guix/build/download.scm: Export `progress-proc' and `uri-abbreviation'.
2013-06-20 23:41:28 +02:00
Cyril Roelandt
842ded334f
python-build-system: add a check phase.
...
* guix/build/python-build-system.scm (check): New procedure.
(%standard-phases): Use it.
2013-05-28 22:53:35 +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
dd9afe64b5
download: Fix premature socket close on TLS connections.
...
This would manifest when downloading a large file such as the Bazaar
tarball, leading to an "Error in the pull function" GnuTLS exception.
* guix/build/download.scm (add-weak-reference): New procedure.
(tls-wrap): Add (add-weak-reference record port).
2013-05-10 01:14:25 +02:00
Nikita Karetnikov
40506d5d92
Add 'python-build-system'.
...
* guix/build-system/python.scm, guix/build/python-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
2013-05-08 22:46:12 +00:00
Ludovic Courtès
3309e3a103
Add (guix build rpath).
...
* guix/build/rpath.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages/python.scm (python): Use it; remove local copy of
the *rpath* procedures.
* gnu/packages/samba.scm (samba): Likewise.
2013-05-08 23:45:02 +02:00
Nikita Karetnikov
01155b1808
utils: Adjust 'wrap-program'.
...
* guix/build/utils.scm (wrap-program): Fix computation of PROG-REAL and
PROG-TMP when PROG is an absolute file name. Add "$@" in the
generated script, and quote PROG-REAL.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2013-04-30 16:58:59 +02:00
Ludovic Courtès
593987671a
build-system/gnu: Fix default name for the "doc" output directory.
...
* guix/build/gnu-build-system.scm (configure)[package-name]: Drop the
prefix corresponding to the hash part of OUT.
2013-04-28 23:39:28 +02:00
Ludovic Courtès
a18eda2747
packages: Add `native-search-paths' field and honor it.
...
* guix/packages.scm (<search-path-specification>): New record type.
(search-path-specification->sexp): New procedure.
(<package>)[native-search-paths]: New field.
(package-derivation): Accumulate the search paths, and pass them
as #:search-paths toe BUILDER.
* guix/build-system/gnu.scm (gnu-build): Add #:search-paths. Compute
`implicit-search-paths'. Pass #:search-paths in BUILDER.
* guix/build-system/perl.scm (perl-build): Add #:search-paths, pass it
to BUILDER with the search paths of PERL.
* guix/build-system/cmake.scm (cmake-build): Add #:search-paths, pass it
to BUILDER.
* guix/build-system/trivial.scm (trivial-build): Add #:search-paths,
ignore it.
* guix/build/gnu-build-system.scm (set-paths): Add #:search-paths.
Remove explicit settings of CPATH, LIBRARY_PATH, and PKG_CONFIG_PATH.
Instead, walk SEARCH-PATHS and call `set-path-environment-variable'
for them.
* guix/build/perl-build-system.scm (perl-build): Remove PERL5LIB setting.
* tests/packages.scm ("search paths"): New test.
* gnu/packages/bootstrap.scm (%bootstrap-guile)[raw]: Add
#:search-paths.
(%bootstrap-gcc): Add `native-search-paths' field.
* gnu/packages/perl.scm (perl): Likewise.
* gnu/packages/pkg-config.scm (pkg-config): Likewise.
* gnu/packages/glib.scm (intltool): Remove `arguments'.
* gnu/packages/avahi.scm (avahi): Remove #:phases.
2013-03-30 22:57:03 +01:00
Ludovic Courtès
a96748bb46
build-system/gnu: Remove #:path-exclusions parameter.
...
* guix/build/gnu-build-system.scm (set-paths): Remove `path-exclusions'
parameter. Replace `relevant-input-directories' by
`input-directories'.
* guix/build-system/gnu.scm (gnu-build): Remove `path-exclusions'
parameter; don't pass it in BUILDER.
* guix/build-system/cmake.scm (cmake-build): Likewise.
2013-03-30 21:46:59 +01:00
Ludovic Courtès
4928e50033
Merge branch 'master' into core-updates
...
Conflicts:
Makefile.am
gnu/packages/base.scm
2013-03-29 21:44:31 +01:00
Cyril Roelandt
c6bded8a29
Add (guix build-system cmake).
...
* guix/build/cmake-build-system.scm, guix/build-system/cmake.scm: New files.
* Makefile.am (MODULES): Add them.
2013-03-28 21:04:54 +01:00
Nikita Karetnikov
30db6af1de
utils: Add 'wrap-program'.
...
* guix/build/utils.scm (wrap-program): New procedure.
2013-03-07 00:46:23 +01:00
Ludovic Courtès
6ba9dd813d
Revert "utils: Add 'wrap-program'."
...
This reverts commit 02065130de
.
2013-03-07 00:36:14 +01:00
Nikita Karetnikov
02065130de
utils: Add 'wrap-program'.
...
* guix/build/utils.scm (wrap-program): New procedure.
2013-03-06 21:03:26 +00:00
Ludovic Courtès
12761f48ea
utils: Add a #:follow-symlinks? parameter to `copy-recursively'.
...
* guix/build/utils.scm (copy-recursively): Turn `log' into a keyword
parameter. Add the `follow-symlinks?' parameter and honor it.
2013-03-05 19:03:39 +01:00
Ludovic Courtès
e65df6a63a
utils: Add `delete-file-recursively'.
...
* guix/build/utils.scm (delete-file-recursively): New procedure.
2013-03-05 18:53:53 +01:00
Ludovic Courtès
81eec00cb2
Merge branch 'master' into core-updates
...
Conflicts:
Makefile.am
guix/scripts/gc.scm
guix/scripts/package.scm
guix/ui.scm
tests/guix-package.sh
2013-03-04 23:27:24 +01:00
Andreas Enge
8689a1908a
guix: build: Add "share/pkgconfig" to PKG_CONFIG_PATH, as used by xorg.
...
* guix/build/gnu-build-system.scm (set-paths): Add "share/pkgconfig"
to PKG_CONFIG_PATH.
2013-03-04 10:14:34 +01:00
Ludovic Courtès
08fd1ebefd
Add (guix build-system perl).
...
* guix/build-system/perl.scm, guix/build/perl-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* guix/build-system/gnu.scm (standard-inputs): Make public.
2013-03-04 00:48:00 +01:00
Ludovic Courtès
cc68ccc5b0
download: Adjust to `http-get*' deprecation.
...
* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
using Guile 2.0.8+.
2013-02-27 20:55:41 +01:00
Andreas Enge
ca8def6e6f
Patch-shebang: Do not add space after interpreter without argument.
...
* guix/build/utils.scm (patch-shebang): Do not add a space after a command
interpreter not followed by an argument; this made two tests of
coreutils fail.
2013-02-23 23:27:46 +01:00
Andreas Enge
11996d85d3
Patch-shebang: Handle "#!/usr/bin/env command"
...
* guix/build/utils.scm (patch-shebang): Handle replacement of
"#!.*/env CMD ARGS" by "#!/nix/store/path/.../to/CMD ARGS".
2013-02-23 20:32:03 +01:00
Ludovic Courtès
80736cdf20
download: Adjust to `http-get*' deprecation.
...
* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
using Guile 2.0.8+.
2013-02-20 22:59:35 +01:00
Ludovic Courtès
1be77eac08
union: Don't warn when colliding leaves point to the same file.
...
* guix/build/union.scm (union-build)[resolve-collision]: Pass LEAVES
through `delete-duplicates'; warn iff the result contains more than
one item.
2013-02-06 23:04:10 +01:00
Ludovic Courtès
6211223021
union: Delete duplicates when passed the same input several times.
...
* guix/build/union.scm (union-build): Prepend "." to the result of
`union-tree', to match the expectations of `delete-duplicate-leaves'.
Don't do mkdir when SUBDIR is ".".
* tests/union.scm ("union-build"): Keep duplicates in %BOOTSTRAP-INPUTS.
2013-02-06 23:04:10 +01:00
Ludovic Courtès
67158a4900
download: Follow HTTP redirection upon 301 "moved permanently".
...
* guix/build/download.scm (http-fetch): Follow redirections upon 301.
This is what `downloads.sourceforge.net' returns, for instance.
2013-01-25 21:52:08 +01:00
Ludovic Courtès
483f11589e
download: Add HTTPS support.
...
* guix/build/download.scm: Autoload (gnutls).
(tls-wrap): New procedure.
(open-connection-for-uri): Add support for `https'. Wrap the socket
with `tls-wrap' in that case.
(url-fetch): Add `https'.
* guix/download.scm (gnutls-derivation): New procedure.
(url-fetch)[need-gnutls?]: New variable.
Call `gnutls-derivation' when NEED-GNUTLS? is true, and add its output
to the `GUILE_LOAD_PATH' env. var. in that case.
2013-01-20 22:54:36 +01:00
Ludovic Courtès
01e354eb83
Merge branch 'core-updates'
...
Conflicts:
guix/build/union.scm
2013-01-11 16:01:49 +01:00
Ludovic Courtès
28e5560421
download: Abbreviate URLs when displaying the progress report.
...
* guix/build/download.scm (uri-abbreviation): New procedure.
(ftp-fetch, http-fetch): Use it instead of `uri->string' when calling
`progress-proc'. Reported by Andreas Enge.
2013-01-11 15:41:58 +01:00
Ludovic Courtès
a06a99ff77
build-system/gnu: Improve support for "lib" outputs; support "doc" outputs.
...
* guix/build/gnu-build-system.scm (configure)[package-name]: New
procedure.
When LIBDIR is true and INCLUDEDIR is false, add
--includedir=LIBDIR/include.
Add support for --docdir when a "doc" output exists.
2013-01-10 00:08:40 +01:00
Ludovic Courtès
b2d58cd80a
union: Detect collisions, and delete duplicate leaves.
...
* guix/build/union.scm (delete-duplicate-leaves): New procedure.
(union-build)[leaf=?, resolve-collision]: New procedures.
Use `delete-duplicate-leaves' on the result of `tree-union'.
* tests/union.scm ("delete-duplicate-leaves, default",
"delete-duplicate-leaves, file names"): New tests.
2013-01-09 22:10:06 +01:00
Ludovic Courtès
e66ca1a5a8
download: Report the progress of HTTP downloads.
...
* guix/build/download.scm (http-fetch): Rename `bv' to `bv-or-port'.
Use `http-get*' followed by `dump-port' when the former is available,
and pass a progress procedure to `dump-port'.
2013-01-06 18:36:50 +01:00
Ludovic Courtès
e47bac7902
download: Report the progress of FTP downloads.
...
* guix/build/download.scm (progress-proc): New procedure.
(ftp-fetch): Call `ftp-size' on URI. Use `progress-proc', and pass
the result to `dump-port', along with #:buffer-size.
2013-01-06 18:35:23 +01:00
Ludovic Courtès
4050e5d6cf
Merge branch 'master' into core-updates
...
Conflicts:
build-aux/download.scm
distro/packages/autotools.scm
distro/packages/base.scm
distro/packages/bootstrap.scm
distro/packages/lsh.scm
distro/packages/make-bootstrap.scm
distro/packages/ncurses.scm
distro/packages/perl.scm
tests/derivations.scm
tests/union.scm
2013-01-06 17:33:02 +01:00
Ludovic Courtès
4155e2a909
Update license headers of builder-side code.
...
Change license headers with this script:
(use-modules (guix build utils))
(fluid-set! %default-port-encoding "UTF-8")
(substitute* (cons "distro/packages/ld-wrapper.scm"
(find-files "guix/build" "\\.scm$"))
(("^([[:graph:]]+) This file is part of Guix." _ comment-start)
(string-append comment-start " This file is part of GNU Guix."))
(("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
(string-append comment-start
" GNU Guix --- Functional package management for GNU\n"))
(("^([[:graph:]]+) Guix is " _ comment-start)
(string-append comment-start " GNU Guix is "))
(("^([[:graph:]]+) along with Guix." _ comment-start)
(string-append comment-start " along with GNU Guix."))
(("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
(string-append comment-start " Copyright ©")))
* distro/packages/ld-wrapper.scm, guix/build/download.scm,
guix/build/gnu-build-system.scm, guix/build/union.scm,
guix/build/utils.scm: Update license headers.
2013-01-05 16:08:07 +01:00
Ludovic Courtès
7584f822bf
utils: Add `which'.
...
* guix/build/utils.scm (which): New procedure.
* distro/packages/lsh.scm (lsh): Use `which' instead of `search-path'.
* distro/packages/perl.scm (perl): Likewise.
* distro/packages/attr.scm (attr): Likewise.
2013-01-05 16:02:32 +01:00
Ludovic Courtès
93b0357575
utils: Use binary I/O primitives for `remove-store-references'.
...
* guix/build/utils.scm (fold-port-matches)[get-char]: New procedure.
(remove-store-references): Use `put-u8' and `put-bytevector'.
2013-01-01 23:12:34 +01:00
Ludovic Courtès
b2adb3ae04
build-system/gnu: Add support for the "bin" output.
...
* guix/build/gnu-build-system.scm (configure): Add support for "bin"
output.
2013-01-01 16:52:27 +01:00
Ludovic Courtès
bc5bf85fa2
utils: Restore the mtime/atime of patched files.
...
* guix/build/utils.scm (set-file-time): New procedure.
(patch-shebang): New `keep-mtime?' parameter; call `set-file-time'
when it's true.
(patch-makefile-SHELL): Likewise.
2012-12-31 01:17:43 +01:00
Ludovic Courtès
c089511288
build-system/gnu: Patch shebangs in all the source; patch SHELL in makefiles.
...
* guix/build/utils.scm (call-with-ascii-input-file): New procedure.
(patch-shebang): Use it.
(patch-makefile-SHELL): New procedure.
* guix/build/gnu-build-system.scm (patch-source-shebangs): Patch all the
files, not just executables; remove `po/Makefile.in.in' patching.
(patch-generated-files): Rename to...
(patch-generated-file-shebangs): ... this. Patch executables and
makefiles.
(%standard-phases): Adjust accordingly.
* distro/packages/autotools.scm (libtool): Remove call to `patch-shebang'.
* distro/packages/base.scm (gcc-4.7): Likewise.
(guile-final): Remove hack to skip `test-command-line-encoding2'.
* distro/packages/bash.scm (bash): Remove `pre-configure-phase'.
* distro/packages/readline.scm (readline): Likewise.
* distro/packages/ncurses.scm (ncurses): Remove `pre-install-phase'.
2012-12-21 22:31:25 +01:00
Ludovic Courtès
eca63d3df8
build-system/gnu: Patch shebangs after `configure'.
...
* guix/build/gnu-build-system.scm (patch-generated-files): New
procedure.
(%standard-phases): Add it after `configure'.
2012-12-20 23:06:34 +01:00
Ludovic Courtès
4c377e861b
build-system/gnu: Report the execution time of each phase.
...
* guix/build/gnu-build-system.scm (gnu-build): Report the success or
failure of each phase and its execution time.
2012-12-20 22:31:08 +01:00
Ludovic Courtès
a18b4d085b
utils: Add a `progress' parameter to `dump-port'.
...
* guix/build/utils.scm (dump-port): Add a `progress' keyword parameter.
Call it after each transfer.
2012-12-20 01:38:56 +01:00
Ludovic Courtès
c3ee7448c9
build-system/gnu: Change the order of `patch-source-shebangs' and `patch'.
...
* guix/build/gnu-build-system.scm (patch-source-shebangs): Add a newline
after the "SHELL =" line in po/Makefile.in.in.
(%standard-phases): Move `patch-source-shebangs' after `patch'.
2012-12-19 00:48:20 +01:00
Ludovic Courtès
3c738d6bd8
download: Correctly detect "No route to host" conditions.
...
* guix/build/download.scm (open-connection-for-uri): Delete addrinfos
with the same address. Always open SOCK_STREAM/IPPROTO_IP sockets.
Fix the error handler's condition to determine what to do.
Reported by Nikita Karetnikov <nikita.karetnikov@gmail.com> at
<http://lists.gnu.org/archive/html/bug-guix/2012-12/msg00150.html >.
2012-12-17 00:14:30 +01:00
Ludovic Courtès
d008415219
build-system/gnu: Patch shebangs in executable source files.
...
This allows many packages to build in a chroot that lacks /bin and
thus /bin/sh.
* guix/build/gnu-build-system.scm (patch-source-shebangs): New
procedure.
(%standard-phases): Add it.
* guix/build/utils.scm (executable-file?): New procedure.
* distro/packages/perl.scm (perl): Don't use /bin/sh to run `Configure'.
2012-12-15 16:35:26 +01:00
Ludovic Courtès
c1c94acf32
build-system/gnu: Make the error port line-buffered.
...
* guix/build/gnu-build-system.scm (gnu-build): Make the error port
line-buffered.
2012-12-15 16:01:52 +01:00
Ludovic Courtès
74baf333bf
utils: Make the buffer size of `dump-port' a parameter.
...
* guix/build/utils.scm (dump-port): Make `buffer-size' a keyword
parameter.
2012-12-15 15:54:29 +01:00
Ludovic Courtès
a784c3077e
Merge branch 'master' into core-updates
...
Conflicts:
distro/packages/multiprecision.scm
2012-12-15 15:28:50 +01:00
Ludovic Courtès
b3a53fb361
download: Work around (web client) bug < http://bugs.gnu.org/13095 >.
...
* guix/build/download.scm: Annihilate `shutdown' in (web client).
2012-12-14 18:07:10 +01:00
Ludovic Courtès
9d1d434cd0
build-system/gnu: Avoid using /bin/sh.
...
* guix/build/gnu-build-system.scm (configure): Add `inputs' keyword
parameter. Take Bash from there, falling back to /bin/sh. Set
`CONFIG_SHELL' and `SHELL' to that Bash. Run "bash ./configure"
instead of just "./configure".
* distro/packages/bootstrap.scm (%bootstrap-inputs): Add "bash".
* distro/packages/base.scm (gcc-boot0-wrapped): Use "bash" from
%BOOT1-INPUTS instead of /bin/sh.
2012-12-13 23:38:32 +01:00
Ludovic Courtès
480943dd46
download: Keep only one slash when concatenating URIs.
...
* guix/build/download.scm (url-fetch)[uri-vicinity]: New procedure.
[maybe-expand-mirrors]: Use it.
2012-11-27 21:33:54 +01:00
Ludovic Courtès
94d222ad97
download: Add support for mirror:// URLs.
...
* guix/download.scm (%mirrors): New variable. Mirror lists taken from
Nixpkgs.
(url-fetch): New `mirrors' keyword parameter.
[builder]: Pass it.
* guix/build/download.scm (url-fetch): New `mirrors' keyword parameter.
[maybe-expand-mirrors]: New procedure.
[uri]: Use it.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
270246defe
download: Follow HTTP redirections.
...
* guix/build/download.scm (http-fetch): Follow the redirection when CODE
is 302.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
87f5d36630
Remove (guix http) and (guix ftp).
...
* guix/ftp.scm, guix/http.scm, guix/build/ftp.scm, guix/build/http.scm:
Remove.
* Makefile.am (MODULES): Likewise.
* tests/builders.scm, distro/packages/base.scm,
distro/packages/bash.scm, distro/packages/bdw-gc.scm,
distro/packages/compression.scm, distro/packages/gawk.scm,
distro/packages/gnupg.scm, distro/packages/gperf.scm,
distro/packages/guile.scm, distro/packages/libffi.scm,
distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
distro/packages/libunistring.scm, distro/packages/lout.scm,
distro/packages/m4.scm, distro/packages/multiprecision.scm,
distro/packages/ncurses.scm, distro/packages/perl.scm,
distro/packages/pkg-config.scm, distro/packages/pth.scm,
distro/packages/readline.scm, distro/packages/recutils.scm: Use
`url-fetch' instead of `http-fetch' and `ftp-fetch'.
* distro/packages/bootstrap.scm: Likewise
(bootstrap-origin): Remove references to `http-fetch' and
`ftp-fetch'.
* guix.scm (%public-modules): Remove `http' and `ftp'; add `download'.
2012-11-13 00:23:39 +01:00
Ludovic Courtès
62cab99c32
Add (guix download) and (guix build download).
...
* guix/download.scm, guix/build/download.scm: New files.
* Makefile.am (MODULES): Add them.
* tests/builders.scm ("url-fetch"): New test.
* distro/packages/bootstrap.scm (bootstrap-origin): Support
`url-fetch'.
* guix/snix.scm (snix-derivation->guix-package): Use `url-fetch' instead
of `http-fetch'.
2012-11-12 23:35:04 +01:00
Ludovic Courtès
cfeb75954a
http: Add informative output.
...
* guix/build/http.scm (http-fetch): Emit message indicating the
download.
2012-11-09 00:21:18 +01:00
Ludovic Courtès
e722af7522
http: Check the HTTP response code, and bail if not 200.
...
* guix/build/http.scm (http-fetch): Check RESP's code; error out when
it's not 200.
2012-11-09 00:19:20 +01:00
Ludovic Courtès
c8c88afaa1
Add (guix build union).
...
* guix/build/union.scm, tests/union.scm: New files.
* Makefile.am (MODULES): Add `guix/build/union.scm'.
(TESTS): Add `tests/union.scm'.
2012-10-29 22:39:46 +01:00