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.
guix-package: Use `guile-final', not `guile-2.0' to build the environment.
* guix-package.in (guix-package): Use either %BOOTSTRAP-GUILE or
GUILE-FINAL.
guix-package: Be verbose when Guile itself needs to be built.
* guix-package.in (guix-package)[guile-missing?]: New procedure.
(guix-package): Always redirect `current-build-output-port' to
`current-error-port' when (guile-missing?).
guix-package: Remove `-b' shorthand for `--bootstrap'.
* guix-package.in (%options): Remove #\b as an alternate for
"bootstrap".
(show-help): Adjust accordingly.
* tests/guix-package.sh: Use `--bootstrap' instead of `-b'.
snix: Update `license' check in unit test.
* tests/snix.scm ("nixpkgs->guix-package"): Expect `license' to be a
symbol. This is a follow-up to commit e7aa73e.
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.
snix: Gracefully handle `null' in Nix build inputs.
* guix/snix.scm (snix-derivation->guix-package)[convert-inputs]:
Gracefully handle `null' as an input.
distro: Add GNU Aspell.
* distro/packages/aspell.scm: New file.
* Makefile.am (MODULES): Add it.
distro: Add GSL.
* distro/packages/algebra.scm (gsl): New variable.
distro: Add GNU GLOBAL.
* distro/packages/global.scm: New file.
* Makefile.am (MODULES): Add it.
distro: Add Tcl, Expect, and DejaGNU.
* distro/packages/dejagnu.scm, distro/packages/tcl.scm: New files.
* Makefile.am (MODULES): Add them.
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.
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.
daemon: Show the chroot contents upon `--debug'.
* nix/nix-daemon/guix-daemon.cc (main)[HAVE_CHROOT]: Display the
contents of `settings.dirsInChroot' at `lvlDebug'.
distro: Add Berkeley DB.
* distro/packages/bdb.scm: New file.
* Makefile.am (MODULES): Add it.
distro: Add MIT Kerberos 5.
* distro/packages/mit-krb5.scm: New file.
* Makefile.am (MODULES): Add it.
daemon: Properly initialize libgcrypt.
* nix/nix-daemon/guix-daemon.cc (main): Call `gcry_check_version'.