Age | Commit message (Expand) | Author |
2019-11-15 | time-machine: Honor the standard build options....* guix/scripts/time-machine.scm (show-help): Call 'show-build-options-help'.
(%options): Add %STANDARD-BUILD-OPTIONS.
(%default-options): New variable.
(parse-args): Pass (list %default-options) to 'parse-command-line' and
remove #:build-options? parameter.
(guix-time-machine): Call 'set-build-options-from-command-line' and wrap
'cached-channel-instance' call in 'with-status-verbosity'.
* doc/guix.texi (Invoking guix time-machine): Mention common build options.
| Ludovic Courtès |
2019-11-15 | time-machine: Handle 'git-error' exceptions....* guix/scripts/pull.scm (with-git-error-handling): Export.
* guix/scripts/time-machine.scm (guix-time-machine): Wrap body in
'with-git-error-handling'.
| Ludovic Courtès |
2019-11-15 | inferior: 'cached-channel-instance' takes an open store connection....* guix/inferior.scm (cached-channel-instance): Take an explicit 'store'
argument.
(inferior-for-channels): Wrap call to 'cached-channel-instance' in
'with-store'.
* guix/time-machine.scm (guix-time-machine): Wrap call to
'cached-channel-instance' in 'with-store'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Konrad Hinsen |
2019-11-15 | Add 'guix time-machine'....* guix/scripts/time-machine.scm: New file.
* Makefile.am: (MODULES): Add it.
* guix/scripts/pull.scm (channel-list): Export.
* guix/inferior.scm (cached-channel-instance): New procedure.
(inferior-for-channels): Use it.
* doc/guix.texi (Invoking guix time-machine): New section.
(Channels): Cross-reference it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Konrad Hinsen |
2019-11-15 | pull: Remove unused '--verbose' option....This option had been ignored since commit
0d39a3b98948314e135566b9315717695a9035ea (August 2018).
* guix/scripts/pull.scm (show-help, %options): Remove "--verbose".
(build-and-install): Remove #:verbose?, which was unused.
(guix-pull): Adjust accordingly.
| Ludovic Courtès |
2019-11-15 | Merge branch 'master' into staging | Marius Bakke |
2019-11-15 | make-bootstrap: Adjust copied linux headers....* guix/build/make-bootstrap.scm (copy-linux-headers): Remove header
file 'a.out.h' is no longer part of the linux kernel headers.
| Efraim Flashner |
2019-11-13 | guix: svn: Allow dropping externals....* guix/build/svn.scm (svn-fetch): Allow to ignore externals.
* guix/svn-download.scm (svn-reference, svn-multi-reference): Add
recursive? field.
| Julien Lepiller |
2019-11-09 | ui: Emit hyperlinks for 'license' in package search results....* guix/ui.scm (package->recutils): When HYPERLINKS is true, call
'hyperlink' for the 'license' field.
| Ludovic Courtès |
2019-11-09 | ui: Produce hyperlinks for the 'location' field of search results....This affects the output of 'guix show', 'guix search', and 'guix system
search'.
* guix/ui.scm (hyperlink, supports-hyperlinks?, location->hyperlink):
New procedures.
(package->recutils): Add #:hyperlinks? and honor it.
(display-search-results): Pass #:hyperlinks? to PRINT.
* guix/scripts/system/search.scm (service-type->recutils): Add
#:hyperlinks? and honor it.
| Ludovic Courtès |
2019-11-08 | guix: package: lock profiles when processing them....* guix/scripts/package.scm (process-actions): Get a per-profile lock to
prevent concurrent actions on profiles.
* tests/guix-package.sh: Add test.
| Julien Lepiller |
2019-11-08 | guix: Add file-locking with no wait....* guix/build/syscalls.scm (with-file-lock/no-wait): New procedure.
(lock-file): Take a #:wait? key.
| Julien Lepiller |
2019-11-07 | graph: Support package transformation options....* guix/scripts/graph.scm (%options): Append %TRANSFORMATION-OPTIONS.
(show-help): Call 'show-transformation-options-help'.
(guix-graph): Call 'options->transformation' and use it.
* tests/guix-graph.sh: Add test.
* doc/guix.texi (Invoking guix graph): Document it.
| Ludovic Courtès |
2019-11-07 | derivations: Use a regular hash table for the module cache....The hit rate of the 'add-data-to-store' cache goes from 10% to 4% on:
guix build -e '(@@ (gnu packages libreoffice) libreoffice)' -nd
* guix/derivations.scm (%module-cache): Turn into a regular hash table.
It didn't make sense to use a weak-value hash table given that values
are pairs.
| Ludovic Courtès |
2019-11-01 | pull: Gracefully handle invalid Texinfo markup in news....Reported by Oleg Pykhalov <go.wigust@gmail.com>.
* guix/scripts/pull.scm (display-news-entry-title)
(display-news-entry): Catch 'parser-error' around call to
'texi->plain-text', and return Texinfo as-is when an exception is
caught.
| Ludovic Courtès |
2019-10-30 | Merge branch 'master' into staging | Marius Bakke |
2019-10-28 | derivation: Remove memoization invalidation for 'derivation->bytevector'....This is a followup to d727a9343d861cf775645df8be5bfefd43d6c6f0, which
broke 'hydra-jobs' from (gnu ci).
* guix/derivations.scm (invalidate-derivation-caches!): Remove call to
'invalidate-memoization!' for 'derivation->bytevector'.
| Ludovic Courtès |
2019-10-27 | pull: Honor '/etc/guix/channels.scm'....* guix/scripts/pull.scm (channel-list)[global-file]: New variable.
[channels]: Honor it.
* doc/guix.texi (Invoking guix pull): Document it.
| Ludovic Courtès |
2019-10-27 | channels: Refer to 'guile-json-3'....Fixes a regression introduced in 84af1e74029fd4c43636f7d8d3e6f82ddab9ce82.
* guix/channels.scm (whole-package-for-legacy): Refer to GUILE-JSON-3,
not GUILE-JSON.
| Ludovic Courtès |
2019-10-27 | derivations: Don't memoize 'derivation->bytevector'....Its hit rate was only 8%. Removing it reduces heap size of "guix build
libreoffice -nd" from 69MiB to 61MiB and the wall-clock time is unchanged.
* guix/derivations.scm (derivation->bytevector): Change from 'mlambda'
to 'lambda'.
| Ludovic Courtès |
2019-10-27 | gexp: Cache the module to derivation mappings....This reduces the number of 'add-data-to-store' cache lookups from 3329
to 2743 (hit rate: 27% to 11%) when running:
GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd
Execution time of "guix build libreoffice -nd" goes from 1.86s to 1.80s.
* guix/gexp.scm (imported+compiled-modules): Wrap body in 'mcached'.
| Ludovic Courtès |
2019-10-27 | store: Allow objects in the cache to be inserted and search for with 'equal?'....* guix/store.scm (cache-object-mapping): Add #:vhash-cons parameter and
honor it.
(lookup-cached-object): Add #:vhash-fold* parameter and honor it.
(%mcached): Add #:vhash-fold* and #:vhash-cons and honor them.
(mcached): Add clauses with 'eq?' and 'equal?' as the first argument.
| Ludovic Courtès |
2019-10-27 | gexp: Add 'imported+compiled-modules'....* guix/gexp.scm (imported+compiled-modules): New procedure.
(lower-gexp): Use it instead of separate calls to 'imported-modules' and
'compiled-modules'.
| Ludovic Courtès |
2019-10-27 | derivations: 'build-expression->derivation' caches its module derivations....This reduces the number of lookups in the 'add-data-to-store' cache from
7505 to 3329 (hit rate from 68% to 27%) when running:
GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd
The execution time of "guix build libreoffice -nd" goes from 2.12s to 1.87s.
* guix/derivations.scm (%module-cache): New variable.
(imported+compiled-modules)[key]: New variable.
Lookup KEY in %MODULE-CACHE and populate %MODULE-CACHE upon cache miss.
| Ludovic Courtès |
2019-10-27 | derivations: Introduce 'imported+compiled-modules'....* guix/derivations.scm (imported+compiled-modules): New procedure.
(build-expression->derivation): Use it instead of separate calls to
'%imported-modules' and '%compiled-modules'.
| Ludovic Courtès |
2019-10-27 | Merge branch 'master' into staging | Marius Bakke |
2019-10-25 | guix build: Remove obsolete TODO....* guix/scripts/build.scm (set-build-options-from-command-line): Remove
obsolete TODO comment.
| Ludovic Courtès |
2019-10-25 | guix build: Warn when '--keep-failed' is passed to a remote daemon....* guix/scripts/build.scm (set-build-options-from-command-line): When
OPTS has 'keep-failed?' set, check whether STORE is connected over
AF_UNIX and warn when it's not.
| Ludovic Courtès |
2019-10-24 | Revert "guix: svn: Allow dropping externals."...This reverts commit 51395c84fdbf8daed6392951a973ad750cf3eefa,
fixing <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=37896>.
Reported by <o.rojon@posteo.net>.
| Tobias Geerinckx-Rice |
2019-10-23 | guix: svn: Allow dropping externals....* guix/build/svn.scm (svn-fetch): Allow to ignore externals.
* guix/svn-download.scm (svn-reference, svn-multi-reference): Add
recursive? field.
| Julien Lepiller |
2019-10-23 | Merge branch 'master' into staging | Marius Bakke |
2019-10-23 | lint: Re-enable CVE checker....This reverts d7fcd9c565812919109ae88049f5d8bf4c56f9bd.
* guix/lint.scm (%network-dependent-checkers): Re-enable 'cve checker.
| Ludovic Courtès |
2019-10-23 | cve: Rewrite to read the JSON feed instead of the XML feed....The XML feed was discontinued on Oct. 16th, 2019:
<https://nvd.nist.gov/General/News/XML-Vulnerability-Feed-Retirement-Phase-3>
* guix/cve.scm (string->date*): New procedure.
(<cve-item>, <cve>, <cve-reference>): New record types.
(cpe-match->cve-configuration, configuration-data->cve-configurations)
(json->cve-items, version-matches?): New procedures.
(yearly-feed-uri): Change URL to refer to JSON feed.
(cpe->product-alist, %parse-vulnerability-feed)
(xml->vulnerabilities): Remove.
(cve-configuration->package-list, merge-package-lists)
(cve-item->vulnerability, json->vulnerabilities): New procedures.
(write-cache): Use 'json->vulnerabilities' instead of
'xml->vulnerabilities', and remove 'parameterize'.
(vulnerabilities->lookup-proc): Use 'version-matches?' when VERSION is
true.
* tests/cve.scm (%sample): Use 'tests/cve-sample.json'.
(%expected-vulnerabilities): Rewrite accordingly.
("json->cve-items", "cve-item-published-date")
("json->vulnerabilities"): New tests.
("xml->vulnerabilities"): Remove.
("vulnerabilities->lookup-proc"): Adjust to new vulnerabilities.
* tests/cve-sample.json: New file.
* tests/cve-sample.xml: Remove.
* Makefile.am (EXTRA_DIST): Adjust accordingly.
* doc/guix.texi (Invoking guix lint): Update nist.gov URLs.
| Ludovic Courtès |
2019-10-21 | download: Honor /etc/ssl/certs when 'SSL_CERT_DIR' is not set....* guix/build/download.scm (%x509-certificate-directory): Use
"/etc/ssl/certs" as a last resort. This ensures, for instance, that
'guix download' honors system-wide certificates when SSL_CERT_DIR is
unset.
| Ludovic Courtès |
2019-10-21 | Merge branch 'master' into staging | Marius Bakke |
2019-10-20 | packages: Add "aarch64-linux" to '%hydra-supported-systems'....* guix/packages.scm (%hydra-supported-systems): Keep "aarch64-linux".
| Ludovic Courtès |
2019-10-18 | reconfigure: Silence "shepherd: Evaluating ..." messages....* guix/scripts/system/reconfigure.scm (upgrade-services-program):
Parameterize 'shepherd-message-port' to silent "Evaluating ..." messages.
| Ludovic Courtès |
2019-10-18 | Merge branch 'master' into staging | Marius Bakke |
2019-10-18 | lint: Comment out 'cve' checker....* guix/lint.scm (%network-dependent-checkers): Comment out 'cve' checker.
| Ludovic Courtès |
2019-10-18 | pull: Call 'ensure-default-profile' after 'set-build-options'....This is a followup to 81c580c8664bfeeb767e2c47ea343004e88223c7.
* guix/scripts/pull.scm (guix-pull): Move 'ensure-default-profile' call after
'set-build-options-from-command-line' call. This ensures that the
'profiles/per-user/$USER' directory is created before
'ensure-default-profile' is called when 'GUIX_DAEMON_SOCKET' points to a
remote TCP daemon.
| Ludovic Courtès |
2019-10-18 | build-system/asdf: Fix package transform....* guix/build-system/asdf.scm (package-with-build-system):
[find-input-package]: New function.
[rewrite]: Use it.
| Guillaume Le Vaillant |
2019-10-16 | daemon: Make 'profiles/per-user' non-world-writable....Fixes <https://bugs.gnu.org/37744>.
Reported at <https://www.openwall.com/lists/oss-security/2019/10/09/4>.
Based on Nix commit 5a303093dcae1e5ce9212616ef18f2ca51020b0d
by Eelco Dolstra <edolstra@gmail.com>.
* nix/libstore/local-store.cc (LocalStore::LocalStore): Set 'perUserDir'
to #o755 instead of #o1777.
(LocalStore::createUser): New function.
* nix/libstore/local-store.hh (LocalStore): Add it.
* nix/libstore/store-api.hh (StoreAPI): Add it.
* nix/nix-daemon/nix-daemon.cc (performOp): In 'wopSetOptions', add
condition to handle "user-name" property and honor it.
(processConnection): Add 'userId' parameter. Call 'store->createUser'
when userId is not -1.
* guix/profiles.scm (ensure-profile-directory): Note that this is now
handled by the daemon.
* guix/store.scm (current-user-name): New procedure.
(set-build-options): Add #:user-name parameter and pass it to the daemon.
* tests/guix-daemon.sh: Test the creation of 'profiles/per-user' when
listening on a TCP socket.
* tests/store.scm ("profiles/per-user exists and is not writable")
("profiles/per-user/$USER exists"): New tests.
| Ludovic Courtès |
2019-10-15 | inferior: Set the error port when using older Guix versions....This makes the behaviour more consistent.
* guix/inferior.scm (inferior-pipe): Wrap the second open-pipe* call with
with-error-to-port, to match the first call to open-pipe*.
| Christopher Baines |
2019-10-15 | inferior: Allow controlling the inferior error port....Previously, stderr for the inferior process would always be sent to /dev/null
because the current-output-port when the process is launched is a void
port. This change means that it's possible to pass in a different port to use.
* guix/inferior.scm (inferior-pipe): Take the error-port as an argument.
(open-inferior): Add new error-port keyword argument, with a default
of (%make-void-port "w").
| Christopher Baines |
2019-10-15 | ssh: Add a longer SSH timeout by default....* guix/ssh.scm (open-ssh-session): Add #:timeout parameter, and add call
to 'session-set!' to honor it.
| Ludovic Courtès |
2019-10-15 | offload: Set a longer SSH session timeout....Fixes <https://bugs.gnu.org/37762>.
* guix/scripts/offload.scm (open-ssh-session): Add 'max-silent-time'
parameter. Add call to 'session-set!' before returning SESSION.
(transfer-and-offload): Pass MAX-SILENT-TIME to 'open-ssh-session'.
(%short-timeout): New variable.
(choose-build-machine): Pass %SHORT-TIMEOUT to 'open-ssh-session'.
(check-machine-availability): Likewise.
(check-machine-status): Likewise.
| Ludovic Courtès |
2019-10-14 | gexp: Use cross extensions when cross-compiling....* guix/gexp.scm (load-path-expression): Use ungexp-splicing instead of
ungexp-native-splicing so that the cross extensions are used when target is
set.
| Mathieu Othacehe |
2019-10-14 | build-system/gnu: 'package-with-explicit-inputs' uses 'package-mapping'....* guix/build-system/gnu.scm (package-with-explicit-inputs): Rename to...
(package-with-explicit-inputs/deprecated): ... this.
(package-with-explicit-inputs*): New procedure.
(package-with-explicit-inputs): Define as a 'case-lambda*'.
| Ludovic Courtès |
2019-10-13 | Merge branch 'master' into staging | Marius Bakke |
2019-10-13 | gnu: ant-build-system: Don't override symlinks....When repacking jar-files, don't work on symlinks: Otherwise, they would be
overridden with the repacked jar-file.
* guix/build/ant-build-system.scm (regular-jar-file-predicate): New procedure.
(generate-jar-indices, strip-jar-timestamps): Use it.
| Björn Höfling |