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
784bb1f37b
derivations: Fix `derivation-prerequisites-to-build' when outputs are there.
...
Before it would list inputs not built, even if the outputs of the given
derivation were already available.
* guix/derivations.scm (derivation-prerequisites-to-build): Add
`outputs' keyword parameter.
[built?, derivation-built?]: New procedures.
[loop]: Add `sub-drvs' parameter. Use `derivation-built?' to check if
the SUB-DRVS of DRV are built before checking its inputs.
2013-01-09 08:38:57 +01:00
Ludovic Courtès
98fefb210a
gnu-maintenance: Add `latest-release' and related tools.
...
* guix/gnu-maintenance.scm (ftp-server/directory, releases,
version-string>?, latest-release, gnu-package-name->name+version): New
procedures.
(%package-name-rx): New variable.
2013-01-08 22:46:12 +01:00
Ludovic Courtès
e7aa73ef09
snix: Use (guix licenses) variables.
...
* guix/snix.scm (snix-derivation->guix-package)[license-variable]: New
procedure.
Use it to determine the variable name for the license.
2013-01-07 22:32:28 +01:00
Ludovic Courtès
ab8ed44fce
snix: Gracefully handle `null' in Nix build inputs.
...
* guix/snix.scm (snix-derivation->guix-package)[convert-inputs]:
Gracefully handle `null' as an input.
2013-01-07 22:23:50 +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
fb83842efb
ftp-client: Add `ftp-size'.
...
* guix/ftp-client.scm (ftp-size): New procedure.
2013-01-06 18:23:44 +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
233e76769a
Update license headers.
...
Change all license headers, except guix/build/* and ld-wrapper.scm, with
this code:
(use-modules (guix build utils)
(srfi srfi-1))
(fluid-set! %default-port-encoding "UTF-8")
(substitute* (remove (lambda (f)
(or (string-contains f ".tar.")
(string-contains f ".git/")
(string-contains f ".so")
(string-suffix? ".o" f)
(string-suffix? ".a" f)
(string-suffix? ".go" f)
(string-suffix? ".pdf" f)
(string-suffix? ".png" f)
(string-suffix? ".info" f)
(equal? (basename f) "guix-daemon")
(equal? (basename f) "nix-setuid-helper")
(string-contains f "nix-upstream/")
(string-contains f "distro/packages/bootstrap/")))
(find-files "." "\\.[a-z]+$"))
(("^([[: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 ©")))
Change headers using C-style comments manually.
2013-01-06 00:47:50 +01:00
Ludovic Courtès
7244a5f74e
derivations: Add `derivation-path->output-paths'.
...
* guix/derivations.scm (derivation-path->output-paths): New procedure.
* tests/derivations.scm ("multiple-output derivation"): Test it.
2013-01-05 23:51:13 +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
3441e16497
ui: Factorize bug-report information in `--help'.
...
* guix/config.scm.in (%guix-home-page-url): New variable.
* guix/ui.scm (show-bug-report-information): New procedure.
* guix-build.in (show-help): Use it.
* guix-download.in (show-help): Likewise.
* guix-import.in (show-help): Likewise.
* guix-package.in (show-help): Likewise.
2013-01-05 15:55:47 +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
4d058c6792
build-system/gnu: Add `static-package'.
...
* distro/packages/make-bootstrap.scm (static-package): Move to...
* guix/build-system/gnu.scm (static-package): ... here. New procedure.
2013-01-01 16:55: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
Andreas Enge
6253961de2
build-system/gnu: enable test-target during the check phase
...
* guix/build-system/gnu.scm: add variable test-target
2012-12-30 22:37:28 +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
c43e006164
download: Remove unreachable SourceForge mirror.
...
* guix/download.scm (%mirrors)[sourceforge]: Remove kent.dl.*, which is
unreachable.
2012-12-17 00:18:15 +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
7f4f06513a
build: Fix default value of `%state-directory'.
...
* guix/config.scm.in (%state-directory): Append `/nix'.
Reported by Andreas Enge <andreas@enge.fr>.
2012-12-13 23:53:37 +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
1e9824513c
Merge branch 'nix-integration'
...
Conflicts:
tests/guix-package.sh
2012-12-13 22:14:25 +01:00
Nikita Karetnikov
f15b31c562
licenses: Add 'bsd-style', 'expat', 'gpl1', 'gpl1+', 'lgpl2.0', and 'lgpl2.0+'.
...
* guix/licenses.scm (bsd-style, expat, gpl1, gpl1+)
(lgpl2.0, lgpl2.0+): New variables.
2012-12-12 14:40:11 +01:00
Ludovic Courtès
a09ec3a5af
Have `%nixpkgs-directory' default to #f when $NIXPKGS is the empty string.
...
* guix/utils.scm (%nixpkgs-directory): Set to #f when the `NIXPKGS'
environment variable is set but empty. Reported by
Andreas Enge <andreas@enge.fr>.
2012-12-10 22:53:28 +01:00
Ludovic Courtès
200dc93761
derivations: Distinguish direct store paths from files within a store path.
...
* guix/derivations.scm (derivation)[direct-store-path?]: New procedure.
Use it to determine which inputs must be added to the store.
2012-12-10 00:44:17 +01:00
Ludovic Courtès
4d152bf1d9
Merge branch 'master' into nix-integration
...
Conflicts:
guix/store.scm
2012-12-09 23:54:37 +01:00
Ludovic Courtès
3259877d35
store: Add GC-related operations.
...
* guix/store.scm (gc-action): New enumerate type.
(read-long-long, read-string-list, write-store-path,
write-store-path-list, read-store-path-list): New procedures.
(write-arg): Add support for `store-path' and `store-path-list'.
(read-arg): Add support for `store-path-list'.
(define-operation): Add support for multiple-value returns.
(run-gc, live-paths, dead-paths, collect-garbage, delete-paths): New
procedures.
(%long-long-max): New macro.
* tests/store.scm: New file.
* Makefile.am (TESTS): Add it.
2012-12-09 23:52:59 +01:00
Ludovic Courtès
d3648e0118
store: Add `add-temp-root'.
...
* guix/store.scm (add-temp-root): New procedure.
2012-12-09 23:50:17 +01:00
Nikita Karetnikov
838d78e3e0
Add (guix licenses).
...
* guix/licenses.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-08 19:17:02 +01:00
Ludovic Courtès
a4eabecd11
download: Fix the primary Savannah URL.
...
* guix/download.scm (%mirrors)[savannah]: Use
"http://download.savannah.gnu.org/releases/ " as the primary URL.
2012-12-07 22:32:03 +01:00
Ludovic Courtès
d8eea3d2bc
build: Capture configure-time settings in (guix config).
...
* configure.ac: Compute and substitute `guix_localstatedir'.
* m4/guix.m4: Substitute `guix_system'.
* guix/config.scm.in (%store-directory, %store-directory, %system): New
variables.
* guix/store.scm (%nix-state-dir): Remove.
(%default-socket-path): Use %STATE-DIRECTORY as the default.
(%store-prefix): Use %STORE-DIRECTORY as the default.
* guix/utils.scm (%current-system): Default to %SYSTEM.
2012-12-06 00:07:17 +01:00
Nikita Karetnikov
22189ed117
Add (guix gnu-maintenance).
...
* guix/gnu-maintenance.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-05 14:56:25 +01:00
Ludovic Courtès
cd3ded4301
store: Honor $NIX_STORE_DIR and $NIX_STATE_DIR.
...
* guix/store.scm (%nix-state-dir): Honor $NIX_STATE_DIR.
(%store-prefix): Honor $NIX_STORE_DIR.
2012-12-04 23:48:21 +01:00
Ludovic Courtès
860a6f1ae0
derivations: Fix erroneous call to `add-to-store' for local files as input.
...
* guix/derivations.scm (derivation)[inputs]: Fix typo in call to
`add-to-store'.
* tests/derivations.scm ("derivation with local file as input"): New test.
* tests/packages.scm ("trivial with local file as input"): New test.
2012-12-04 23:46:50 +01:00
Ludovic Courtès
b40b259f12
download: Add kernel.org mirrors.
...
* guix/download.scm (%mirrors): Add `kernel.org' mirrors.
2012-11-27 21:55:53 +01:00