summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2019-12-04Merge branch 'staging'Marius Bakke
2019-12-04ssh: 'open-ssh-session' can be passed the expected host key.Ludovic Courtès
* 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-04ssh: Always authenticate the server [security fix].Ludovic Courtès
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-04ssh: Add 'authenticate-server*' and use it for offloading.Ludovic Courtès
* 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-04substitute: Remove unused procedure.Ludovic Courtès
This became unused with commit a9468b422b6df2349a3f4d1451c9302c3d77011b. * guix/scripts/substitute.scm (assert-valid-signature): Remove.
2019-12-04build: emacs-build-system: Unify the installation directory.Maxim Cournoyer
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-04build-system/linux-module: Accept a #:make-flags keyword.Tobias Geerinckx-Rice
Fixes bug#37882. * guix/build-system/linux-module.scm (linux-module-build): Accept a MAKE-FLAGS argument. <builder>: Pass it on.
2019-12-02lint: archival: Gracefully handle network failures.Ludovic Courtès
* guix/lint.scm (check-archival): Wrap re-throw in 'with-networking-fail-safe'.
2019-12-01guix: Add the 'qt' build system.Hartmut Goebel
* 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-01scripts: system: Add --target option.Mathieu Othacehe
* 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-11-30gexp: 'local-file' properly resolves non-literal relative file names.Ludovic Courtès
* 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-30guix: import: Fix importing dune project.Julien Lepiller
* guix/import/opam.scm: Detect dune projects from dependencies, then filter dune from dependencies.
2019-11-30guix: import: Fix opam importer.Julien Lepiller
* guix/import/opam.scm: Allow line breaks in strings.
2019-11-29ui: 'with-profile-lock' keeps going upon ENOLCK.Ludovic Courtès
* 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-29ui: Factorize 'with-profile-lock'.Ludovic Courtès
* 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-28pull, describe: Emit hyperlinks for commit identifiers.Ludovic Courtès
* 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-28Merge branch 'master' into stagingMarius Bakke
2019-11-28ui: 'display-generation' emits a hyperlink for the generation.Ludovic Courtès
* guix/ui.scm (supports-hyperlinks?): Make 'port' optional. (display-generation): Use 'file-hyperlink' for the heading when 'supports-hyperlinks?' returns true.
2019-11-28ui: Add 'file-hyperlink'.Ludovic Courtès
* guix/ui.scm (file-hyperlink): New procedure. (location->hyperlink): Use it.
2019-11-28substitute: 'http-multiple-get' no longer drops requests above 1,000.Ludovic Courtès
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-28lint: Check for more packages which should be native.Efraim Flashner
* guix/lint.scm (check-inputs-should-be-native): Add yasm, nasm, fasm.
2019-11-28Merge branch 'master' into stagingMarius Bakke
2019-11-27substitute: Make '%allow-unauthenticated-substitutes?' public.Ludovic Courtès
* 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-27ui: Adjust SRFI-34 exception handling to Guile 2.9.5.Ludovic Courtès
* 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-26guix: Fix wrap-qt-program.Hartmut Goebel
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-26guix build: '--keep-failed' implies '--no-offload'.Ludovic Courtès
* 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-26Use 'offload?' instead of 'build-hook?' internally.Ludovic Courtès
* 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-26guix build, daemon: Rename "--no-build-hook" to "--no-offload".Ludovic Courtès
This is a followup to bc69ea2d605810cc32e13ed03d5848b8dc358b61. * 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-23compile: Adjust for Guile 2.9.5.Ludovic Courtès
* guix/build/compile.scm (optimizations-for-level): New procedure. Include '%lightweight-optimizations' and '%default-optimizations'. (optimization-options): Use 'optimizations-for-level'.
2019-11-22utils: Use target-aarch64? and target-arm? helpers.Mathieu Othacehe
* guix/utils.scm (target-aarch64?, target-arm?): New exported procedures.
2019-11-22pack: Allow multiple '--manifest' options.Ludovic Courtès
* 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-22package: Allow multiple '--manifest' options.Ludovic Courtès
* 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-22profiles: Add 'concatenate-manifests'.Ludovic Courtès
* guix/profiles.scm (concatenate-manifests): New procedure. * tests/profiles.scm ("concatenate-manifests"): New test.
2019-11-22import: texlive: Handle multi-license packages.Ludovic Courtès
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-22substitute: Don't fetch /nix-cache-info.Ludovic Courtès
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-21Merge branch 'master' into stagingMarius Bakke
2019-11-21pack: Add "--derivation".Ludovic Courtès
* 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-20gnu: Use GHC 8.6.5 as the main Haskell compiler.Timothy Sample
* 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-19deploy: Handle "--version".Ludovic Courtès
* guix/scripts/deploy.scm (%options): Add "--version".
2019-11-19pull: Acquire a lock for the target profile.Ludovic Courtès
This is a followup to b1fb663404894268b5ee92c040f12c52c0bee425. * guix/scripts/pull.scm (guix-pull): Wrap 'run-with-store' call in 'with-file-lock/no-wait'.
2019-11-18download: Load *.crt certificate bundles when *.pem files are missing.Ludovic Courtès
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-18build-system: emacs: Simplify the SET-EMACS-LOAD-PATH phase.Maxim Cournoyer
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-18utils: Handle #f file-name.Alex Sassmannshausen
* guix/utils.scm (current-source-directory): Change dispatch to handle #f file-name. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2019-11-17guix build: Handle "guix build /….drv" correctly for non-existent derivations.Ludovic Courtès
This lets the daemon substitute missing derivations, as in the example at <https://bugs.gnu.org/38226>, instead of failing with ENOENT. * guix/scripts/build.scm (options->things-to-build): In the 'derivation-path?' case, don't fail when 'read-derivation-from-file' raises to ENOENT; return the empty list in that case. (guix-build): Add non-existent '.drv' files to ITEMS. Pass ITEMS in addition to DRV to 'build-derivations'. * tests/guix-build.sh: Add test.
2019-11-15time-machine: Honor the standard build options.Ludovic Courtès
* 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.
2019-11-15time-machine: Handle 'git-error' exceptions.Ludovic Courtès
* guix/scripts/pull.scm (with-git-error-handling): Export. * guix/scripts/time-machine.scm (guix-time-machine): Wrap body in 'with-git-error-handling'.
2019-11-15inferior: 'cached-channel-instance' takes an open store connection.Konrad Hinsen
* 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>
2019-11-15Add 'guix time-machine'.Konrad Hinsen
* 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>
2019-11-15pull: Remove unused '--verbose' option.Ludovic Courtès
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.
2019-11-15Merge branch 'master' into stagingMarius Bakke