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'.
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.
ftp-client: Add `ftp-size'.
* guix/ftp-client.scm (ftp-size): New procedure.
distro: time: Adjust `configure' phase to old `configure' script.
* distro/packages/time.scm (time): Add `arguments'.
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
distro: Update bootstrap binaries to an nscd-less libc.
Update bootstrap binaries following changes in commit d3b5972 ("Build
glibc without nscd, and with static NSS modules.")
* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Update hashes.
* build-aux/download.scm (file-name->uri): Update URL.
* distro/packages/bootstrap.scm (%bootstrap-coreutils&co,
%bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Update URLs
and hashes.
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.
Add `guix-gc'.
* guix-gc.in, tests/guix-gc.sh: New files.
* configure.ac: Output `guix-gc', and make it executable.
* Makefile.am (bin_SCRIPTS): Add `guix-gc'.
(TESTS): Add `tests/guix-gc.sh'.
* doc/guix.texi (Features): Add xref to "Invoking guix-gc".
(Invoking guix-gc): New node.
* po/POTFILES.in: Add `guix-gc.in'.
guix-build: Make `--root' effective for .drv files too.
* guix-build.in (guix-build)[register-root]: Change first argument to
`paths', which should be a list of store paths. Update caller to call
`derivation-path->output-paths' on DRV. When `derivations-only?',
also register root for .drv files.
derivations: Add `derivation-path->output-paths'.
* guix/derivations.scm (derivation-path->output-paths): New procedure.
* tests/derivations.scm ("multiple-output derivation"): Test it.
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.
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.
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.
distro: make-bootstrap: Add `%bootstrap-tarballs' package.
* distro/packages/make-bootstrap.scm (%bootstrap-tarballs): New
variable.
distro: make-bootstrap: Build glibc without nscd, and with static NSS modules.
* distro/packages/make-bootstrap.scm (%glibc-with-relocatable-system):
Rename to...
(%glibc-for-bootstrap): ... this. Add new configure flags.
distro: make-bootstrap: Make the Coreutils smaller.
* distro/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Remove
optional dependencies, except Perl; build with "-Os -g0"; disable
tests.
distro: make-bootstrap: Fix arguments to gawk.
* distro/packages/make-bootstrap.scm (%static-inputs)[gawk]: Use
`substitute-keyword-arguments' to preserve the #:phases argument of
GAWK.
distro: libtool: Add a "bin" output.
* distro/packages/autotools.scm (libtool): Add a "bin" output.
* distro/packages/base.scm (guile-final): Remove comment about retained
dependency.
distro: ncurses: Don't retain a reference to the bootstrap Bash.
* distro/packages/ncurses.scm (ncurses): Remove #:patch-shebangs?
argument since it now has no effect. Simplify PATCH-MAKEFILE-PHASE.
Add `configure-phase', and use it.
distro: coreutils: Enable tests; add dependency on ACL and GMP.
* distro/packages/base.scm (coreutils): Set #:parallel-build? #f. Add
`patch-shell-references' phase. Add 'acl', 'gmp', and 'perl' as
inputs, as suggested by Nikita Karetnikov.