Commit Graph

4577 Commits

Author SHA1 Message Date
Ludovic Courtès
60f4564a63
guix system: "list-generations" displays provenance info.
* guix/scripts/pull.scm (channel-commit-hyperlink): Export.
* guix/scripts/system.scm (display-system-generation)
[display-channel]: New procedure.
Read the "provenance" file of GENERATION and display channel info and
the configuration file name when available.
2019-12-07 00:59:56 +01:00
Ludovic Courtès
b85836d306
guix system: Use 'provenance-service-type', add "--save-provenance".
* guix/scripts/system.scm (show-help, %options): Add "--save-provenance".
(process-action): Define 'save-provenance?' and 'transform'; call
'transform' on the OS.
* doc/guix.texi (Invoking guix system): Document it under 'reconfigure'.
(Service Reference): Mention that 'provenance-service-type' is
automatically added by 'reconfigure' & 'init'.
2019-12-07 00:59:56 +01:00
Ludovic Courtès
fcbe4f71ca
derivations: Add 'derivation-input-fold'.
* guix/derivations.scm (derivation-input-fold): New procedure.
(substitution-oracle)[closure]: Rewrite in terms of
'derivation-input-fold'.
* tests/derivations.scm ("derivation-input-fold"): New test.
2019-12-07 00:29:41 +01:00
Pierre Neidhardt
88f06fd015
gnu: Really move lisp libraries to lisp-xyz, uglify-js to javascript and stumpwm to wm.
* gnu/local.mk: Include lisp-xyz.scm.
* gnu/packages/lisp-xyz.scm: New file.
* gnu/packages/lisp.scm: Move all lisp libraries to lisp-xyz.scm, uglify-js to
  javascript.scm and stumpwm to wm.scm.
* gnu/packages/javascript.scm: Add uglify-js.
* gnu/packages/wm.scm: Add stumpwm.
* gnu/packages/bioinformatics.scm: Find uglify-js in javascript.scm.
* gnu/packages/machine-learning.scm: Depend on lisp-xyz.scm instead of lisp.scm.
* gnu/packages/web.scm: Find uglify-js in javascript.scm.
* gnu/packages/web-browsers.scm: Depend on lisp-xyz.scm instead of lisp.scm.
* guix/build-system/minify.scm (default-uglify-js): Find uglify-js in
  javascript module instead of lisp.
2019-12-05 16:23:06 +01:00
Tobias Geerinckx-Rice
d9544d91a6
Revert "gnu: Properly move lisp libraries to lisp-xyz, uglify-js to javascript and stumpwm to wm."
This reverts commit ac1ee30f4f, which
still breaks ‘guix pull’.
2019-12-05 15:38:52 +01:00
Efraim Flashner
73bd8ab669
Revert "build-system/linux-module: Accept a #:make-flags keyword."
I should've tested this better before pushing the commit.

This reverts commit fabd4900d8.
2019-12-05 15:37:39 +02:00
Pierre Neidhardt
ac1ee30f4f
gnu: Properly move lisp libraries to lisp-xyz, uglify-js to javascript and stumpwm to wm.
* gnu/local.mk: Include lisp-xyz.scm.
* gnu/packages/lisp-xyz.scm: New file.
* gnu/packages/lisp.scm: Move all lisp libraries to lisp-xyz.scm, uglify-js to
  javascript.scm and stumpwm to wm.scm.
* gnu/packages/javascript.scm: Add uglify-js.
* gnu/packages/wm.scm: Add stumpwm.
* gnu/packages/bioinformatics.scm: Find uglify-js in javascript.scm.
* gnu/packages/machine-learning.scm: Depend on lisp-xyz.scm instead of lisp.scm.
* gnu/packages/web.scm: Find uglify-js in javascript.scm.
* gnu/packages/web-browsers.scm: Depend on lisp-xyz.scm instead of lisp.scm.
* guix/build-system/minify.scm (default-uglify-js): Find uglify-js in
  javascript module instead of lisp.
2019-12-05 13:48:47 +01:00
Marius Bakke
33b59c1a3e
Merge branch 'staging' 2019-12-04 20:12:41 +01:00
Ludovic Courtès
2b8682841d
ssh: 'open-ssh-session' can be passed the expected host key.
* guix/ssh.scm (open-ssh-session): Add #:host-key parameter.
Pass #:knownhosts to 'make-session'.  When HOST-KEY is true, call
'authenticate-server*' instead of 'authenticate-server'.
2019-12-04 18:16:08 +01:00
Ludovic Courtès
f5c180180e
ssh: Always authenticate the server [security fix].
Until now, users of 'open-ssh-session', including "guix deploy" and
"GUIX_DAEMON_SOCKET=ssh://…" (but not "guix offload"), would not
authenticate the SSH server they're talking to.

* guix/ssh.scm (open-ssh-session): Call 'authenticate-server'.
2019-12-04 18:16:08 +01:00
Ludovic Courtès
114dcb429a
ssh: Add 'authenticate-server*' and use it for offloading.
* guix/scripts/offload.scm (host-key->type+key): Remove.
(open-ssh-session): Replace server authentication code with a call to
'authenticate-server*'.
* guix/ssh.scm (host-key->type+key, authenticate-server*): New
procedures.
2019-12-04 18:16:08 +01:00
Ludovic Courtès
a6492178bd
substitute: Remove unused procedure.
This became unused with commit
a9468b422b.

* guix/scripts/substitute.scm (assert-valid-signature): Remove.
2019-12-04 18:16:08 +01:00
Maxim Cournoyer
65a7dd2950
build: emacs-build-system: Unify the installation directory.
This change aims to reduce the length of the EMACSLOADPATH environment
variable, which was found to cause issues such as
<https://bugs.gnu.org/38309>.

It should also enable discovery of newly installed packages without refreshing
the session's EMACSLOADPATH of the user profile (e.g., when launching Emacs
from the desktop manager application launcher), as discussed in
<https://bugs.gnu.org/38309>.

* guix/build/emacs-build-system.scm (%legacy-install-suffix): Rename to...
(%install-dir): ...this.
(%install-suffix): Remove variable.
(build): Adjust installation target directory.
(patch-el-files): Likewise.
(install): Likewise.
(move-doc): Likewise.
(make-autoloads): Likewise.

Signed-off-by: Clément Lassieur <clement@lassieur.org>
2019-12-04 11:06:49 +01:00
Tobias Geerinckx-Rice
fabd4900d8
build-system/linux-module: Accept a #:make-flags keyword.
Fixes bug#37882.

* guix/build-system/linux-module.scm (linux-module-build): Accept a
MAKE-FLAGS argument.
<builder>: Pass it on.
2019-12-04 11:25:33 +02:00
Ludovic Courtès
c2b2c8e9e7
lint: archival: Gracefully handle network failures.
* guix/lint.scm (check-archival): Wrap re-throw in 'with-networking-fail-safe'.
2019-12-02 12:24:56 +01:00
Hartmut Goebel
b6d852ce6d
guix: Add the 'qt' build system.
* guix/build-system/qt.scm, guix/build/qt-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Buiild systems): Add the new build system.
2019-12-01 20:24:47 +01:00
Mathieu Othacehe
fcc4c6ae60
scripts: system: Add --target option.
* guix/scripts/system.scm (%options): Add target option,
(%default-options): ditto,
(process-action): Rename existing target variable to target-file and pass new
target variable to run-with-store procedure.
2019-12-01 16:51:40 +01:00
Ludovic Courtès
99c45877a9
gexp: 'local-file' properly resolves non-literal relative file names.
* guix/gexp.scm (local-file): Distinguish the case where FILE is a
literal string and when it's not.  Add a clause for when FILE is not a
literal string.
* tests/gexp.scm ("local-file, non-literal relative file name"): New test.
* doc/guix.texi (G-Expressions): Update accordingly.
2019-11-30 23:50:40 +01:00
Julien Lepiller
ba3ff730ca
guix: import: Fix importing dune project.
* guix/import/opam.scm: Detect dune projects from dependencies, then
filter dune from dependencies.
2019-11-30 15:50:51 +01:00
Julien Lepiller
c60d98d42d
guix: import: Fix opam importer.
* guix/import/opam.scm: Allow line breaks in strings.
2019-11-30 15:50:46 +01:00
Ludovic Courtès
3f8e890d91
ui: 'with-profile-lock' keeps going upon ENOLCK.
* guix/build/syscalls.scm (call-with-file-lock/no-wait): Really pass
ARGS to HANDLER.  Return #f when HANDLER is called.
* guix/ui.scm (profile-lock-handler): Emit a mere warning upon ENOLCK.
2019-11-29 15:54:20 +01:00
Ludovic Courtès
55e1dfa4dd
ui: Factorize 'with-profile-lock'.
* guix/ui.scm (profile-lock-handler, profile-lock-file): New
procedures.
(with-profile-lock): New macro.
* guix/scripts/package.scm (process-actions): Use 'with-profile-lock'
instead of 'with-file-lock/no-wait'.
* guix/scripts/pull.scm (guix-pull): Likewise.
2019-11-29 15:54:20 +01:00
Ludovic Courtès
2d6bd5edbc
pull, describe: Emit hyperlinks for commit identifiers.
* guix/scripts/pull.scm (%vcs-web-views): New variable.
(channel-commit-hyperlink): New procedure.
(display-news-entry): Add 'channel' parameter.  When
'supports-hyperlinks?' returns true, call 'channel-commit-hyperlink'.
(display-profile-content): Likewise, and define CHANNEL.
(display-channel-specific-news): Pass CHANNEL to 'display-news-entry'.
* guix/ui.scm (hyperlink): Make public.
2019-11-28 18:43:54 +01:00
Marius Bakke
34f849a945
Merge branch 'master' into staging 2019-11-28 16:47:01 +01:00
Ludovic Courtès
055f052574
ui: 'display-generation' emits a hyperlink for the generation.
* guix/ui.scm (supports-hyperlinks?): Make 'port' optional.
(display-generation): Use 'file-hyperlink' for the heading when
'supports-hyperlinks?' returns true.
2019-11-28 13:30:53 +01:00
Ludovic Courtès
fa983b8257
ui: Add 'file-hyperlink'.
* guix/ui.scm (file-hyperlink): New procedure.
(location->hyperlink): Use it.
2019-11-28 13:30:53 +01:00
Ludovic Courtès
9e3f9ac3c0
substitute: 'http-multiple-get' no longer drops requests above 1,000.
Previously, in the unlikely case 'http-multiple-get' was passed more
than 1,000 requests, it could have dropped all those above 1,000.

* guix/scripts/substitute.scm (http-multiple-get): Define 'batch'.  Use
that for the 'write-request' loop.  Add 'processed' parameter to 'loop'
and use that to compute the remaining requests and call 'connect' in the
recursion base case.
2019-11-28 13:30:53 +01:00
Efraim Flashner
e8c6644af1
lint: Check for more packages which should be native.
* guix/lint.scm (check-inputs-should-be-native): Add yasm, nasm, fasm.
2019-11-28 12:30:42 +02:00
Marius Bakke
0897ad7fac
Merge branch 'master' into staging 2019-11-28 00:38:25 +01:00
Ludovic Courtès
434138e2f2
substitute: Make '%allow-unauthenticated-substitutes?' public.
* guix/scripts/substitute.scm (warn-about-missing-authentication): New
procedure.
(%allow-unauthenticated-substitutes?): Turn into a public parameter and
use 'warn-about-missing-authentication'.
(valid-narinfo?): Adjust accordingly.
* tests/substitute.scm (call-with-narinfo): Likewise.
2019-11-27 00:03:03 +01:00
Ludovic Courtès
7f3bbfaf8e
ui: Adjust SRFI-34 exception handling to Guile 2.9.5.
* guix/ui.scm (report-load-error, warn-about-load-error)
(read/eval): Match (or 'srfi-34 '%exception) instead of just 'srfi-34 to
match what Guile 2.9.5 does.
2019-11-27 00:03:03 +01:00
Hartmut Goebel
d1e4e64cd7
guix: Fix wrap-qt-program.
Directory names added here need to match qtbase's native-search-path
specifications.

* guix/build/qt-utils.scm (wrap-qt-program): Change paths used for
  QML2_IMPORT_PATH and QT_PLUGIN_PATH.
2019-11-26 12:31:39 +01:00
Ludovic Courtès
2ce08a5d79
guix build: '--keep-failed' implies '--no-offload'.
* guix/scripts/build.scm (set-build-options-from-command-line): Pass
 #:offload? #f when 'keep-failed? is true.
* doc/guix.texi (Common Build Options): Document it.
2019-11-26 00:16:36 +01:00
Ludovic Courtès
7f44ab48f9
Use 'offload?' instead of 'build-hook?' internally.
* guix/scripts/archive.scm (%default-options): Replace 'build-hook?'
with 'offload?'.
* guix/scripts/build.scm (set-build-options-from-command-line): Pass
 #:offload? instead of #:use-build-hook?.
(%standard-build-options): Use the 'offload? key instead of 'build-hook?.
(%default-options): Replace 'build-hook?' with 'offload?'.
* guix/scripts/copy.scm (%default-options): Likewise.
* guix/scripts/deploy.scm (%default-options): Likewise.
* guix/scripts/environment.scm (%default-options): Likewise.
* guix/scripts/pack.scm (%default-options): Likewise.
* guix/scripts/package.scm (%default-options): Likewise.
* guix/scripts/pull.scm (%default-options): Likewise.
* guix/scripts/system.scm (%default-options): Likewise.
* guix/scripts/time-machine.scm (%default-options): Likewise.
* guix/store.scm (set-build-options): Have #:use-build-hook? default
to *unspecified*.  Add #:offload?.  Add call to 'warn-about-deprecation'
when #:use-build-hook? is specified.
2019-11-26 00:16:36 +01:00
Ludovic Courtès
dc209d5a5d
guix build, daemon: Rename "--no-build-hook" to "--no-offload".
This is a followup to bc69ea2d60.

* guix/scripts/build.scm (show-build-options-help): Rename
"--no-build-hook" to "--no-offload".
(%standard-build-options): Likewise, and warn when "--no-build-hook" is
passed.
* nix/nix-daemon/guix-daemon.cc (options): Add "--no-offload" and mark
"--no-build-hook" as hidden.
* guix/scripts/offload.scm: Adjust comment.
* doc/guix.texi (Invoking guix-daemon, Common Build Options): Replace
"--no-build-hook" with "--no-offload".
* etc/completion/fish/guix.fish, etc/completion/zsh/_guix: Adjust
accordingly.
2019-11-26 00:16:36 +01:00
Ludovic Courtès
fed3632812
compile: Adjust for Guile 2.9.5.
* guix/build/compile.scm (optimizations-for-level): New procedure.
Include '%lightweight-optimizations' and '%default-optimizations'.
(optimization-options): Use 'optimizations-for-level'.
2019-11-23 22:45:21 +01:00
Mathieu Othacehe
74f1718081
utils: Use target-aarch64? and target-arm? helpers.
* guix/utils.scm (target-aarch64?, target-arm?): New exported procedures.
2019-11-22 16:33:42 +01:00
Ludovic Courtès
ca541f9ce6
pack: Allow multiple '--manifest' options.
* guix/scripts/pack.scm (guix-pack): Collect 'manifest' options, and
concatenate the resulting manifests.
* tests/guix-pack.sh: Test it.
* doc/guix.texi (Invoking guix pack): Document it.
2019-11-22 15:07:59 +01:00
Ludovic Courtès
bf9206d8ed
package: Allow multiple '--manifest' options.
* guix/scripts/package.scm (manifest-action): Remove.
(%actions): Remove it.
(load-manifest): New procedure.
(process-actions): Handle 'manifest' options.  Define 'files' from
'manifest' options.  Define 'manifest' based on FILES.  Define 'trans'
to represent the final transaction.
* tests/guix-package.sh: Test it.
* doc/guix.texi (Invoking guix package): Mention
2019-11-22 15:07:58 +01:00
Ludovic Courtès
ce30a0eb7e
profiles: Add 'concatenate-manifests'.
* guix/profiles.scm (concatenate-manifests): New procedure.
* tests/profiles.scm ("concatenate-manifests"): New test.
2019-11-22 15:07:58 +01:00
Ludovic Courtès
c0e9d470e1
import: texlive: Handle multi-license packages.
This fixes "guix import texlive translator".

* guix/import/texlive.scm (sxml->package): Add clause for when 'license'
is a list of licences, as is the case with the "translator" package.
2019-11-22 15:00:59 +01:00
Ludovic Courtès
4f5234be03
substitute: Don't fetch /nix-cache-info.
This avoids one GET request every time 'fetch-narinfos' is called.
The file itself was essentially useless.

* guix/scripts/substitute.scm (<cache-info>, download-cache-info):
Remove.
(%unreachable-hosts): New variable.
(open-connection-for-uri/maybe): New procedure.
(fetch-narinfos)[handle-narinfo-response]: Check whether NARINFO has its
'path' under (%store-prefix) and ignore it otherwise.  Move
'update-progress!' call before 'if'.
[do-fetch]: Remove 'port' parameter.  Use
'open-connection-for-uri/maybe'.
Remove call to 'download-cache-info'.
2019-11-22 12:17:42 +01:00
Marius Bakke
b60d2bfff9
Merge branch 'master' into staging 2019-11-21 22:44:15 +01:00
Ludovic Courtès
a2e661e95f
pack: Add "--derivation".
* guix/scripts/pack.scm (%options, show-help): Add "--derivation".
(guix-pack): Honor it.
* tests/guix-pack.sh: Test it.
* doc/guix.texi (Invoking guix pack): Document it.
2019-11-21 11:48:30 +01:00
Timothy Sample
064a967ba0
gnu: Use GHC 8.6.5 as the main Haskell compiler.
* gnu/package/haskell.scm (ghc-8): Change to 'ghc-8.6'.
* guix/import/hackage.scm (ghc-standard-libraries): Add 'ghc-heap'
and 'libiserv'.
2019-11-20 20:47:48 -05:00
Ludovic Courtès
1bdb63e73b
deploy: Handle "--version".
* guix/scripts/deploy.scm (%options): Add "--version".
2019-11-19 10:51:53 +01:00
Ludovic Courtès
6fbd8fde2f
pull: Acquire a lock for the target profile.
This is a followup to b1fb663404.

* guix/scripts/pull.scm (guix-pull): Wrap 'run-with-store' call in
'with-file-lock/no-wait'.
2019-11-19 10:51:52 +01:00
Ludovic Courtès
0d78d0f09c
download: Load *.crt certificate bundles when *.pem files are missing.
Fixes <https://bugs.gnu.org/38254>.

* guix/build/download.scm (make-credendials-with-ca-trust-files): Look
for *.crt files under DIRECTORY when *.pem files cannot be found.
2019-11-18 12:17:32 +01:00
Maxim Cournoyer
e1d31e6457
build-system: emacs: Simplify the SET-EMACS-LOAD-PATH phase.
It is no longer necessary to search for the Elisp libraries manually, as Emacs
now include a search path specification serving that purpose.

* guix/build/emacs-build-system.scm (set-emacs-load-path): Replace by...
(add-source-to-load-path): ...this.
(%standard-phases): Adjust accordingly.
2019-11-18 14:34:40 +09:00
Alex Sassmannshausen
b997d43214
utils: Handle #f file-name.
* guix/utils.scm (current-source-directory): Change dispatch to handle #f
file-name.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2019-11-18 13:18:41 +09:00