gnu: ccache: Update to 3.2.2.
* gnu/packages/ccache.scm (ccache): Update to 3.2.2.
[arguments]: Rename 'patch-test-shebangs phase to 'setup-tests. Set the
SHELL environment variable.
emacs: Fill package heading in Info buffers.
* emacs/guix-info.el (guix-package-info-fill-heading): New variable.
(guix-package-info-insert-heading): Fill heading if needed.
Co-authored-by: Alex Kost <alezost@gmail.com>
gnu: Add dunst.
* gnu/packages/dunst.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
gnu: Add libxdg-basedir.
* gnu/packages/freedesktop.scm (libxdg-basedir): New variable.
file-systems: Allow users to specify file system UUIDs as strings.
Fixes <http://bugs.gnu.org/19778>.
Reported by Mark H Weaver <mhw@netris.org>.
* gnu/system/file-systems.scm (%uuid-rx): New variable.
(string->uuid): New procedure.
(uuid): New macro.
* tests/file-systems.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* doc/guix.texi (File Systems): Give an example of UUID.
file-systems: Implement partition lookup by UUID.
* gnu/build/file-systems.scm (read-ext2-superblock*, partition-predicate): New
procedures.
(partition-label-predicate): Rewrite in terms of 'partition-predicate'.
(partition-uuid-predicate, find-partition-by-uuid, uuid->string): New
procedures.
(%network-byte-order): New macro.
(canonicalize-device-spec)[canonical-title]: Check whether SPEC is a string.
[resolve]: New procedure.
Add 'uuid' case and use it.
gnu: nss: Upgrade to 3.19.2.
* gnu/packages/gnuzilla.scm (nss): Upgrade to 3.19.2.
file-systems: Use (guix build syscalls) at build time if needed.
* gnu/build/file-systems.scm: Wrap 'module-use!' statement in 'eval-when'.
gnu: Add rc.
* gnu/packages/rc.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
gnu: linux-libre: Update to 4.1.2.
* gnu/packages/linux.scm (linux-libre): Update to 4.1.2.
gnu: boost: Patch to avoid -m32 flag on mips.
* gnu/packages/patches/boost-mips-avoid-m32.patch: New file.
* gnu-system.am (dist_patch_DATA): Register patch.
* gnu/packages/boost.scm (boost): Use it.
gnu: boost: Update to 1.58.0.
* gnu/packages/boost.scm (boost): Update to 1.58.0.
substitute: Improve functional decomposition.
* guix/scripts/substitute.scm (display-narinfo-data,
process-query, process-substitution): New procedures. Code moved from...
(guix-substitute): ... here. Use them.
guix build: Add '--substitute-urls' client option.
* guix/scripts/build.scm (%standard-build-options,
show-build-options-help): Add --substitute-urls=URLS.
(set-build-options-from-command-line): Honor it.
* guix/store.scm (%default-substitute-urls): Make public.
* doc/guix.texi (Substitutes): Add xref to the client --substitute-urls
option.
(Invoking guix build): Document it.
(Invoking guix-daemon): Add 'daemon-substitute-urls' anchor.
substitute: Honor "substitute-urls" option passed by "untrusted" clients.
* guix/scripts/substitute.scm (or*): New macro.
(%cache-url): Honor "untrusted-substitute-urls".
* guix/tests.scm (%test-substitute-urls): New variable.
(open-connection-for-tests): Use it.
* tests/derivations.scm ("derivation-prerequisites-to-build and substitutes",
"derivation-prerequisites-to-build and substitutes, non-substitutable
build", "derivation-prerequisites-to-build and substitutes, local build"):
Pass it to 'set-build-options'.
* tests/guix-daemon.sh: Likewise.
* tests/store.scm ("substitute query, alternating URLs"): New test.
("substitute query", "substitute", "substitute + build-things with output
path", "substitute, corrupt output hash", "substitute --fallback"): Pass
#:substitute-urls to 'set-build-options'.
substitute: Store cached narinfo in cache-specific sub-directories.
This ensures that switching between different substitute servers doesn't lead
to a polluted narinfo cache.
* guix/scripts/substitute.scm (narinfo-cache-file): Add 'cache-url'
parameter. Add the base32 of CACHE-URL as a sub-directory under
%NARINFO-CACHE-DIRECTORY. Update callers.
(cached-narinfo): Likewise. Call 'mkdir-p' on the dirname of the cache
file. Update callers.
(remove-expired-cached-narinfos): Add 'directory' parameter and use it
instead of %NARINFO-CACHE-DIRECTORY.
(narinfo-cache-directories): New procedure.
(maybe-remove-expired-cached-narinfo): Call 'remove-expired-cached-narinfos'
for each item returned by 'narinfo-cache-directories'.
substitute: Pass the cache URL instead of <cache> objects.
* guix/scripts/substitute.scm (<cache>): Rename to...
(<cache-info>): ... this.
(open-cache): Rename to...
(download-cache-info): ... this. Return a <cache-info> or #f.
(open-cache*): Remove.
(cache-narinfo!): Take a URL instead of a <cache> as the first parameter.
(fetch-narinfos): Likewise. Call 'download-cache-info'. Remove use of
'force'.
(guix-substitute): Replace calls to 'open-cache*' with %CACHE-URL.
substitute: Remove unneeded conditionals.
* guix/scripts/substitute.scm (guix-substitute): Remove unneeded (if cache
...) forms since CACHE is always true (it's a promise.)
gnu: file-systems: Fix typo.
* gnu/system/file-systems.scm (%container-file-systems): Fix typo in a
comment.
guix lint: Remove duplicated module lines.
* guix/scripts/lint.scm (guix): Remove duplicated lines for using
'srfi-34' and 'srfi-35' modules. These lines were introduced twice by
commits b210b35 and 002c57c.