summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2021-12-23self: Add guile-lzma as a dependency.Timothy Sample
This is a follow-up to 35ce3e5de6d39d4959ecae31e8f8ce2bbb645e0a, fixing Disarchive recovery when the download script is run from a 'guix pull' profile. * guix/self.scm (specification->package): Add "guile-lzma". (compiled-guix): Add GUILE-LZMA to DEPENDENCIES in the #:dependencies argument to 'guix-command'.
2021-12-23scripts: system: Add a missing module.Mathieu Othacehe
* guix/scripts/system.scm: Add a missing module.
2021-12-23scripts: system: Use the disk-image size argument for VM generation.Mathieu Othacehe
* guix/scripts/system.scm (system-derivation-for-action): Use the given image-size unconditionnaly when calling system-qemu-image/shared-store-script.
2021-12-23scripts: system: Pass the volatile field to VM generation.Mathieu Othacehe
* guix/scripts/system.scm (system-derivation-for-action): Add new volatile? argument and pass it to system-qemu-image/shared-store-script. (perform-action): Add new volatile? argument and pass it to system-derivation-for-action. (process-action): Pass the volatile? argument to perform-action.
2021-12-23scripts: system: Deprecate the docker-image command.Mathieu Othacehe
* guix/scripts/system.scm (system-derivation-for-action): Use the image API to generate the docker images and deprecate the docker-image command. (process-action): Ditto. * doc/guix.texi (Invoking guix system): Adapt it.
2021-12-22packages: Avoid #:re-export-and-replace to allow upgrades from 1.2.0.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/52694>. Reported by Carl Dong <contact@carldong.me>. Use of #:re-export-and-replace would prevent upgrades from 1.2.0, whose 'source-module-closure' procedure did not recognize #:re-export-and-replace. * guix/packages.scm: Remove #:re-export-and-replace and add top-level call to 'module-re-export!'
2021-12-22tests: Move keys into ./tests/keys/ and add a third ed25519 key.Attila Lendvai
The third key will be used in an upcoming commit. Rename public keys to .pub. * guix/tests/gnupg.scm (%ed25519-3-public-key-file): New variable. (%ed25519-3-secret-key-file): New variable. (%ed25519-2-public-key-file): Renamed from %ed25519bis-public-key-file. (%ed25519-2-secret-key-file): Renamed from %ed25519bis-secret-key-file. * tests/keys/ed25519-3.key: New file. * tests/keys/ed25519-3.sec: New file. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-12-20combinators: Add 'define-compile-time-procedure'.Ludovic Courtès
* guix/combinators.scm (procedure-call-location): New syntax parameter. (define-compile-time-procedure): New macro.
2021-12-20build-system/meson: Define build variables when cross-compiling.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/52574>. Reported by L p R n d n <guix@lprndn.info>. * guix/build-system/meson.scm (meson-cross-build)[builder]: Define '%build-host-inputs', '%build-target-inputs', '%build-inputs', and '%outputs'.
2021-12-19ci: Restrict substitute search to guix jobset.Andrew Whatson
* guix/ci.scm (latest-builds): Add jobset keyword. (find-latest-commit-with-substitutes): Pass jobset "guix". Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-12-18style: Gracefully handle errors such as EACCES when opening files.Ludovic Courtès
* guix/scripts/style.scm (guix-style): Wrap body in 'with-error-handling'.
2021-12-18style: Refer to source files by absolute file names.Ludovic Courtès
Previously, "guix style PACKAGE" would end up modifying a file looked up under the current directory since the location associated with PACKAGE is usually a relative file name. * guix/scripts/style.scm (absolute-location): New procedure. (simplify-package-inputs): Use it.
2021-12-18import: elpa: Support ‘upstream-name’ property.Xinglu Chen
* guix/import/elpa.scm: (guix-package->elpa-name): New procedure. (latest-release): Use it. * tests/elpa.scm ("guix-package->elpa-name: without 'upstream-name' property") ("guix-package->elpa-name: with 'upstream-name' property"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17lint: Adjust patch file length check.Vagrant Cascadian
With the switch to "ustar" format in commit bdf5c16ac052af2ca9d5c3acc4acbc08fd9fdbea, the maximum file length has increased. * guix/lint.scm (check-patch-file-names): Adjust margin used to check for patch file lengths. Increase allowable patch file length appropriate to new tar format. Extend warning to explain that long files may break 'make dist'. * tests/lint.scm: Update tests accordingly.
2021-12-17guix hash: Add git serializer.zimoun
* guix/scripts/hash.scm (git-hash): New procedure. (%options): Use it. * tests/guix-hash.sh: Test it. * doc/guix.texi: Update. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17guix hash: Add 'serializer' option.zimoun
* guix/scripts/hash.scm (%options): Deprecate 'recursive', add 'serializer'. (%default-options): Add 'serializer'. (nar-hash): New procedure. (default-hash): New procedure. (guix-hash)[file-hash]: Use them. (show-help): Adjust. * tests/guix-hash.scm: Adjust. * doc/guix.texi: Update. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17guix hash: Support several files.zimoun
* guix/scripts/hash.scm (guix-hash): Allow several files. [file-hash]: Catch system-error. [formatted-hash]: New procedure. * tests/guix-hash.sh: Add test. * doc/guix.texi (Invoking guix hash): Mention "one or more files". Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17import: Beautify descriptions when appropriate.Xinglu Chen
* guix/import/elpa.scm (elpa-package->sexp) * guix/import/gnu.scm (gnu-package->sexp) * guix/import/hackage.scm (hackage-module->sexp) * guix/import/minetest.scm (make-minetest-sexp) * guix/import/opam.scm (opam->guix-package) * guix/import/pypi.scm (make-pypi-sexp): Beautify descriptions. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17import: utils: Wrap lines in description.Xinglu Chen
* guix/import/utils.scm (beautify-description): Use ‘fill-paragraph’; add optional ‘length’ argument. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-16lint: 'kdoctools' is typically used only while building.Leo Famulari
* guix/lint.scm (check-inputs-should-be-native): Add kdoctools.
2021-12-15offload: Autoload Guile-SSH.Ludovic Courtès
This halves the number of syscalls made by "guix offload" during startup and delays loading of Guile-SSH until there are actually machines to offload to. * guix/scripts/offload.scm: Remove unused module imports. Autoload many modules. (check-ssh-zlib-support): New procedure. (process-request): Call it when accepting. (guix-offload): Remove 'zlib-support?' check, now moved to 'check-ssh-zlib-support'.
2021-12-15offload: Delay call to 'read-derivation-from-file'.Ludovic Courtès
This significantly reduces the amount of work done by "guix offload" when there's no machine to offload to. * guix/scripts/offload.scm (process-request): Add call to 'read-derivation-from-file', moved from... (guix-offload): ... here.
2021-12-15build-system/linux-module: Wrap with build variables.Tobias Geerinckx-Rice
* guix/build-system/linux-module.scm (linux-module-build): Wrap the builder gexp WITH-BUILD-VARIABLES to restore %build-inputs after commit 7d873f194ca69d6096d28d7a224ab78e83e34fe1 removed all old certainties. Reported by lfam in #guix.
2021-12-14build-system: emacs: Do not rely on input labels in the 'build' phase.Maxim Cournoyer
This commit repairs the Emacs build system for packages using the new label-less "guix style". Tested with emacs-libgit. * guix/build/emacs-build-system.scm (build): Use search-input-file to locate emacs.
2021-12-14guix: Fix typo in last commit.Nicolas Goaziou
* guix/build/emacs-build-system.scm (make-autoloads): Fix typo.
2021-12-14guix: Do not assume "emacs" label in make-autoloads.Nicolas Goaziou
* guix/build/emacs-build-system.scm (make-autoloads): Look for "emacs" executable independently on the label.
2021-12-13packages: 'modify-inputs' preserves and introduces input labels if needed.Ludovic Courtès
Fixes a bug whereby, in an expression like this: (modify-inputs lst (delete ...) (prepend ...)) the 'delete' clause would have no effect because 'prepend' would pass it a label-less input list. * guix/packages.scm (inputs-sans-labels): Remove. (modify-inputs): In the 'prepend' and 'append' cases, preserve/add input labels instead of removing them.
2021-12-13Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-12-12progress: Rate limit drawing in the progress-reporter/bar.Christopher Baines
This helps smooth the output in cases where the bar is updated very quickly, for example in guix weather where it's computing derivations. * guix/progress.scm (progress-reporter/bar): Wrap the drawing code with the rate-limited procedure.
2021-12-12narinfo: Do not repeat slash when building nar URLs.Ludovic Courtès
* guix/narinfo.scm (narinfo-maker): When one of URLS is relative, do not repeat trailing slash if it's already present in CACHE-URL.
2021-12-12substitutes: Build correct narinfo URLs for cache URLs without trailing slash.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/51441>. Reported by Z572 <873216071@qq.com> and Peng Mei Yu <pengmeiyu@riseup.net>. Previously, passing '--substitute-urls=https://mirror.sjtu.edu.cn/guix', without a trailing slash, would fail due to incorrectly constructed narinfo URLs. Users would have to explicitly add a trailing slash. * guix/substitutes.scm (narinfo-request): Ensure BASE has a trailing slash.
2021-12-12challenge: Store item contents are returned in canonical order.Ludovic Courtès
This allows the 'delete-duplicates' call in 'differing-files' to have the intended effect. Before that, a "guix challenge" invocation with three builds of a store item, two of which are identical, would lead 'differing-files' to not print anything, as in this example: $ ./pre-inst-env guix challenge python-numpy /gnu/store/…-python-numpy-1.17.3 contents differ: local hash: 07var0wn8fywxchldz5pjqpnlavrlbc8s81aqwsqyi0i7qlh6ka7 https://ci.guix.gnu.org/nar/lzip/…-python-numpy-1.17.3: 07var0wn8fywxchldz5pjqpnlavrlbc8s81aqwsqyi0i7qlh6ka7 https://bordeaux.guix.gnu.org/nar/lzip/…-python-numpy-1.17.3: 0cbl3q19bshb6ddz8xkcrjzkcmillsqii4z852ybzixyp7rg40qa 1 store items were analyzed: - 0 (0.0%) were identical - 1 (100.0%) differed - 0 (0.0%) were inconclusive With this change, 'differing-files' prints additional info as intended: differing file: /lib/python3.8/site-packages/numpy/distutils/fcompiler/__pycache__/vast.cpython-38.pyc * guix/scripts/challenge.scm (archive-contents): Add tail call to 'reverse'. (store-item-contents): Rewrite to use 'scandir' and recursive calls instead of 'file-system-fold'.
2021-12-12challenge: Use SRFI-71 instead of SRFI-11.Ludovic Courtès
* guix/scripts/challenge.scm (port-sha256*, call-with-nar): Use SRFI-71.
2021-12-10Merge remote-tracking branch 'signed/master' into core-updatesMathieu Othacehe
2021-12-10environment: Suggestion code gracefully handles empty "/bin" directories.Ludovic Courtès
* guix/scripts/environment.scm (suggest-command-name): Handle the case where 'scandir' returns #f.
2021-12-10shell: When using '-D -f', '-D' has no effect on remaining packages.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/52093>. Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/scripts/shell.scm (%options): In "--file" handler, add call to 'ensure-ad-hoc'. * tests/guix-shell.sh: Add test.
2021-12-10shell: Fix '--file' description in '--help' output.Ludovic Courtès
Reported by pinoaffe on #guix. * guix/scripts/shell.scm (show-help): Fix '--file' description.
2021-12-05Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus
2021-12-05import: PyPI: Validate GPG signatures when applicable.Marius Bakke
* guix/import/pypi.scm (<distribution>): Fix funny typo. (latest-release): When the distribution has a cryptographic signature, pass it along to UPSTREAM-SOURCE.
2021-12-03build-system: emacs: Keep -pkg.el files.Liliana Marie Prikler
Partly fixes <https://bugs.gnu.org/48331> -- package descriptions can now be found in the install directory. * guix/build/emacs-build-system.scm (%default-exclude): Remove "-pkg\\.el$".
2021-12-03guix system vm: Add --no-graphic CLI argument.Attila Lendvai
It configures QEMU to use the tty it was started in for IO (as opposed to opening a separate graphical window). This enables copy-pasting and scrollback. Exit QEMU with C-a x. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Also add the '-nographic' QEMU argument when called with #:graphic? #false. * guix/scripts/system.scm (system-derivation-for-action): Propagate the #:graphic? keyword arg. (perform-action): Add and propagate the #:graphic? keyword arg. (show-help): Add --no-graphic CLI arg. (%options): Process the new --no-graphic CLI arg. (process-action): Feed in the CLI arg through the #:graphic? keyword arg. * doc/guix.texi (Invoking guix system): Add example to combine guix system and invoking the vm start script into one command. Split the description of the various options into separate paragraphs. Add a paragraph to describe --no-graphic. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-12-01build-system: haskell: Add ‘hackage-uri’ procedure.Xinglu Chen
* guix/build-system/haskell (hackage-uri): New procedure. * guix/import/hackage.scm (hackage-module->sexp, latest-release): Use it. * tests/hackage.scm (match-ghc-foo, match-ghc-foo-6, match-ghc-foo-revision, match-ghc-foo-import): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-01inferior: 'cached-channel-instance' does not cache unauthenticated instances.Ludovic Courtès
The comment saying that caching is fine even when AUTHENTICATE? is false was true in commit 838ac881ec98cb71d4a4e4b20773573f99ecbf25, but it became incorrect in 7cfd789150f448cf5256b88915bae4163cc9db03, which no longer calls 'latest-channel-instances' on cache hits. * guix/inferior.scm (cached-channel-instance): Do not create CACHED when AUTHENTICATE? is false.
2021-11-27gexp: 'file-append' correctly handles bases without an expander.Ludovic Courtès
This fixes this use case: (file-append (let-system ...) ...) * guix/gexp.scm (file-append-compiler): When BASE lacks an expander, delegate to LOWERED. * tests/gexp.scm ("let-system in file-append"): New test.
2021-11-27build: julia-build-system: Correctly disable parallel tests.zimoun
* guix/build/julia-build-system.scm: Remove phases trailing #t. [phases]{check}: Omit the --procs argument when parallel tests are to be disabled. Substract 1 from the number of parallel jobs otherwise. Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-11-25profiles: Also handle package objects in GDK-PIXBUF-LOADERS-CACHE-FILE.Maxim Cournoyer
* guix/profiles.scm (gdk-pixbuf-loaders-cache-file): Handle both a string or a package object for GDK-PIXBUF, as these are the two types that can be returned by MANIFEST-LOOKUP-PACKAGE. Suggested-by: Ludovic Courtès <ludo@gnu.org>
2021-11-25profiles: Fix the gdk-pixbuf-loaders-cache-file hook.Maxim Cournoyer
'guix install' would otherwise fail with a wrong type argument whet attempting to call the hook. * guix/profiles.scm (gdk-pixbuf-loaders-cache-file) <file-append>: Replace with... <string-append>: ... this, as gdk-pixbuf has already been expanded to a string at this point.
2021-11-25build: julia-build-system: Add support for parallel tests.zimoun
The tests are defined by the script 'test/runtests.jl' from packages and the parallelism depends on the implementation of this script. Therefore, 'julia' is launched using local worker processes accordingly with 'parallel?'. * guix/build/julia-build-system.scm (check): Set the JULIA_CPU_THREADS environment variable and invoke julia with the '--procs' option. * guix/build-system/julia.scm (julia-build)[parallel-tests?]: New argument. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-11-23style: Add '--dry-run'.Ludovic Courtès
* guix/scripts/style.scm (edit-expression/dry-run): New procedure. (simplify-package-inputs): Add #:edit-expression parameter. (%options, show-help): Add '--dry-run'. (guix-style): Honor '--dry-run'.
2021-11-23Merge branch 'master' into core-updates-frozenLudovic Courtès