summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2021-12-10environment: Suggestion code gracefully handles empty "/bin" directories....* guix/scripts/environment.scm (suggest-command-name): Handle the case where 'scandir' returns #f. Ludovic Courtès
2021-12-10shell: When using '-D -f', '-D' has no effect on remaining packages....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. Ludovic Courtès
2021-12-10shell: Fix '--file' description in '--help' output....Reported by pinoaffe on #guix. * guix/scripts/shell.scm (show-help): Fix '--file' description. Ludovic Courtès
2021-12-05import: PyPI: Validate GPG signatures when applicable....* guix/import/pypi.scm (<distribution>): Fix funny typo. (latest-release): When the distribution has a cryptographic signature, pass it along to UPSTREAM-SOURCE. Marius Bakke
2021-12-03build-system: emacs: Keep -pkg.el files....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$". Liliana Marie Prikler
2021-12-03guix system vm: Add --no-graphic CLI argument....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> Attila Lendvai
2021-12-01build-system: haskell: Add ‘hackage-uri’ procedure....* 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> Xinglu Chen
2021-12-01inferior: 'cached-channel-instance' does not cache unauthenticated instances....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. Ludovic Courtès
2021-11-23guix graph: Show '-M' in '--help' output....* guix/scripts/graph.scm (show-help): Add -M shorthand. Ludovic Courtès
2021-11-23system: Add swap flags....* gnu/system/file-systems.scm (swap-space)[priority, discard?]: Add them. * guix/build/syscalls.scm (SWAP_FLAG_PREFER, SWAP_FLAG_PRIO_MASK, SWAP_FLAG_PRIO_SHIFT, SWAP_FLAG_DISCARD): Add them. * gnu/build/file-systems.scm (swap-space->flags-bit-mask): Add it. * gnu/services/base.scm (swap-service-type): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret
2021-11-23docker: Enable arm64 docker image building for 'guix pack'....* guix/docker.scm (build-docker-image): Recognize "aarch64". Signed-off-by: Ludovic Courtès <ludo@gnu.org> Collin J. Doering
2021-11-22import: opam: Fix error on unknown field value....* guix/import/opam.scm (metadata-ref): Return #f if field is present, but its content is of unknown form. Julien Lepiller
2021-11-19import: opam: Warn instead of leave when fetching fails....* guix/import/opam.scm (opam-featch): Warn instead of leave when fetching fails. Signed-off-by: Julien Lepiller <julien@lepiller.eu> zimoun
2021-11-19build-system/asdf: Don't fail in sbcl-package->cl-source-package on non-packa......Inputs can be non-packages, for instance (origin ...). sbcl-package->cl-source-package used to fail if such inputs were present in the parent sbcl-* package. * guix/build-system/asdf.scm (package-with-build-system): Fix 'has-from-build-system?' function. Pierre Neidhardt
2021-11-18gnupg: Honor GnuPG's configuration for the key server....The previous default "pool.sks-keyservers.net" doesn't seem to work anymore; besides, users know best. * guix/gnupg.scm (%openpgp-key-server): Default to #f, meaning not provided. (gnupg-receive-keys): Make SERVER and KEYRING keyword arguments. Adjust doc. Provide the '--keyserver' argument only when %openpgp-key-server is not #f. (gnupg-verify*): Do not set a default value for SERVER. Adjust accordingly. Maxim Cournoyer
2021-11-18import: texlive: Take different package database as optional argument....* guix/import/texlive.scm (tlpdb->package): Expect PACKAGE-DATABASE as argument. (texlive->guix-package): Accept PACKAGE-DATABASE keyword. Ricardo Wurmus
2021-11-18import: texlive: Print inputs with labels and guixified names....* guix/import/texlive.scm (tlpdb->package): Improve handling of propagated-inputs. Ricardo Wurmus
2021-11-17diagnostics: Add syntax to capture arguments' syntax-properties....* guix/diagnostics.scm (define-with-syntax-properties): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret
2021-11-17scripts: home: Make ‘guix home import’ write home-configuration.scm....* guix/scripts/home.scm (process-command): Populate ‘home-configuration.scm’ in the destination directory instead of printing to stdout. * doc/guix.texi (Declaring the Home Environment): Adjust accordingly. (Invoking guix home): Likewise. Suggested-by: Ludovic Courtès <ludo@gnu.org> Co-authored-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-11-17import: texlive: Remove leftover 'pk'....* guix/import/texlive.scm (files->directories): Remove leftover 'pk' call. Ludovic Courtès
2021-11-17import: texlive: Load (gnu packages tex) dynamically....Fixes a bug whereby 'guix pull' would fail with this guix-extra.drv build failure: ice-9/eval.scm:163:9: ERROR: 1. &formatted-message: format: "~a: patch not found\n" arguments: ("nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch") Reported by ekaitz on #guix. Regression introduced in 3b1a12c5bff5a0c108284d19a6982bdf663bbceb. * guix/import/texlive.scm: Autoload (gnu packages tex). fixlet Ludovic Courtès
2021-11-17import: Replace texlive importer....* guix/import/texlive.scm (fetch-sxml, sxml->package): Remove procedures. (tlpdb-file, tlpdb, files->directories, tlpdb->package): New procedures. (string->license): Add case for lpplgpl license combination. (guix-name): Remove COMPONENT argument. (texlive->guix-package): Use new procedures. (texlive-recursive-import): New procedure. * guix/scripts/import/texlive.scm (show-help, %options): Remove --archive option. (guix-import-texlive): Adjust call of texlive->guix-package. * doc/guix.texi (Invoking guix import): Update documentation. Ricardo Wurmus
2021-11-17guix: Add download-multi-svn-to-store....* guix/svn-download.scm (download-multi-svn-to-store): New procedure. Ricardo Wurmus
2021-11-16daemon: Do not deduplicate files smaller than 8 KiB....Files smaller than 8 KiB typically represent ~70% of the entries in /gnu/store/.links but only contribute to ~4% of the space savings afforded by deduplication. Not considering these files for deduplication speeds up file insertion in the store and, more importantly, leaves 'removeUnusedLinks' with fewer entries to traverse, thereby speeding it up proportionally. Partly fixes <https://issues.guix.gnu.org/24937>. * config-daemon.ac: Remove symlink hard link check and CAN_LINK_SYMLINK definition. * guix/store/deduplication.scm (%deduplication-minimum-size): New variable. (deduplicate)[loop]: Do not recurse when FILE's size is below %DEDUPLICATION-MINIMUM-SIZE. (dump-port): New procedure. (dump-file/deduplicate)[hash]: Turn into... [dump-and-compute-hash]: ... this thunk. Call 'deduplicate' only when SIZE is greater than %DEDUPLICATION-MINIMUM-SIZE; otherwise call 'dump-port'. * nix/libstore/gc.cc (LocalStore::removeUnusedLinks): Drop files where st.st_size < deduplicationMinSize. * nix/libstore/local-store.hh (deduplicationMinSize): New declaration. * nix/libstore/optimise-store.cc (deduplicationMinSize): New variable. (LocalStore::optimisePath_): Return when PATH is a symlink or smaller than 'deduplicationMinSize'. * tests/derivations.scm ("identical files are deduplicated"): Produce files bigger than %DEDUPLICATION-MINIMUM-SIZE. * tests/nar.scm ("restore-file-set with directories (signed, valid)"): Likewise. * tests/store-deduplication.scm ("deduplicate, below %deduplication-minimum-size"): New test. ("deduplicate", "deduplicate, ENOSPC"): Produce files bigger than %DEDUPLICATION-MINIMUM-SIZE. * tests/store.scm ("substitute, deduplication"): Likewise. Ludovic Courtès
2021-11-16tests: Factorize 'file=?'....* guix/tests.scm (file=?): Add optional 'stat' parameter. Add fast patch comparing inode numbers. * tests/gexp.scm ("imported-files with file-like objects"): Remove 'file=?' procedure and use the one from (guix tests). Ludovic Courtès
2021-11-16build-system/julia: Enable Julia Pkg to find installed packages....Julia's built-in package manager (Pkg) looks for packages in JULIA_DEPOT_PATH/packages/PACKAGENAME/XXXX, where XXXX is a string encoding package UUID and SHA1 of files. The link-depot phase creates a link at the correct location to allow Pkg to find packages that were already installed by Guix. * guix/build/julia-build-system.scm (link-depot): New phase. (%package-path): Modified package path from packages/ to loadpath/. (project.toml->uuid): New procedure, retrive package uuid from TOML file. (precompile, check): Adjust to the change in paths. (%standard-phases): Add link-depot phase. (julia-build): Add julia-package-uuid keyword. * guix/build-system/julia.scm (julia-build): Also use the julia-package-uuid keyword. * gnu/packages/julia-jll.scm (julia-bzip2-jll, julia-cairo-jll, julia-compilersupportlibraries-jll, julia-expat-jll, julia-ffmpeg-jll, julia-fontconfig-jll, julia-freetype2-jll, julia-fribidi-jll, julia-gettext-jll, julia-glib-jll, julia-gr-jll, julia-gumbo-jll, julia-imagemagick-jll, julia-jllwrappers-jll, julia-jpegturbo-jll, julia-lame-jll, julia-libass-jll, julia-libfdk-aac-jll, julia-libffi-jll, julia-libgcrypt-jll, julia-libglvnd-jll, julia-libgpg-error-jll, juli-libiconv-jll, julia-libmount-jll, julia-libpng-jll, julia-libsass-jll, julia-libtiff-jll, julia-libuuid-jll, julia-libvorbis-jll, julia-lzo-jll, julia-mbedtls-jll, julia-ogg-jll, julia-openspecfun-jll, julia-openssl-jll, julia-opus-jll, julia-pcre-jll, julia-pixman-jll, julia-qt5base-jll, julia-wayland-jll, julia-wayland-protocols-jll, julia-x264-jll, julia-x265-jll, julia-xkbcommon-jll, julia-xml2-jll, julia-xorg-libpthread-stubs-jll, julia-xorg-libx11-jll, julia-xorg-libxau-jll, julia-xorg-libxcb-jll, julia-xorg-libxcursor-jll, julia-xorg-libxdmcp-jll, julia-xorg-libxext-jll, julia-xorg-libxfixes-jll, julia-xorg-libxi-jll, julia-xorg-libxinerama-jll, julia-xorg-libxkbfile-jll, julia-xorg-libxrandr-jll, julia-xorg-libxrender-jll, julia-xorg-xcb-util-jll, julia-xorg-xcb-util-keysyms-jll, julia-xorg-xcb-util-renderutil-jll, julia-xorg-xcb-util-wm-jll, julia-xorg-xkbcomp-jll, julia-xorg-xkeyboard-config-jll, julia-xorg-xtrans-jll, julia-xslt-jll, julia-zlib-jll, julia-zstd-jll) [argument]: Adjust the order of the phases to the change in the julia-build-system. * gnu/packages/julia-xyz.scm (julia-bufferedstreams, julia-calculus, julia-dataframes, julia-datavalues, julia-distances, julia-documenter, julia-dualnumbers, julia-ellipsisnotation, julia-expronicon, julia-fileio, julia-fixedpointnumbers, julia-functionwrappers, julia-fuzzycompletions, julia-genericlinearalgebra, julia-genericschur, julia-geometrybasics, julia-imagemagick, julia-infinity, julia-matrixfactorizations, julia-media, julia-missings, julia-nnlib, julia-optimtestproblems, julia-orderedcollections, julia-prettytables, julia-pycall, julia-quadmath, julia-safetests, julia-stackviews) [arguments]: Correct paths to reflect change of %package-path modify order of phases as link-depot needs to run on an unmodified src directory add package-name-uuid keyword argument to packages without Project.toml file. * gnu/packages/julia.scm (julia)[native-search-paths]: Correct paths to reflect change of %package-path modify order of phases as link-depot needs to run on an unmodified src directory. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Jean-Baptiste Volatier
2021-11-14build: wrap-qt-program: Fix typo....* gnu/build/qt-utils.scm (wrap-qt-program): Fix spelling of "program". Vagrant Cascadian
2021-11-14environment: Fix ‘--check’ with exported PS1 variable....If your .bashrc (unnecessarily) exports PS1 and you’re in a non-login shell, Guix crashes: user@popigai:~$ guix shell --check coreutils guix shell: checking the environment variables visible from shell '/bin/bash'... Backtrace: 14 (primitive-load "/home/user/.config/guix/current/bin/g…") In guix/ui.scm: 2206:7 13 (run-guix . _) 2169:10 12 (run-guix-command _ . _) In ice-9/boot-9.scm: 1752:10 11 (with-exception-handler _ _ #:unwind? _ # _) 1752:10 10 (with-exception-handler _ _ #:unwind? _ # _) In guix/store.scm: 658:37 9 (thunk) 1320:8 8 (call-with-build-handler _ _) 1320:8 7 (call-with-build-handler #<procedure 7fe393b7c420 at g…> …) In guix/status.scm: 800:4 6 (call-with-status-report _ _) In guix/scripts/environment.scm: 951:12 5 (_) In guix/store.scm: 2119:24 4 (run-with-store #<store-connection 256.99 7fe39627e500> …) In guix/scripts/environment.scm: 521:35 3 (_ _) In unknown file: 2 (string=? ("PS1" . "${debian_chroot:+($debian_chroot)…") …) In ice-9/boot-9.scm: 1685:16 1 (raise-exception _ #:continuable? _) 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure string=: Wrong type argument in position 1 (expecting string): ("PS1" . "${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]${EXTRA}\\$ ") user@popigai:~$ This is because the match pattern doesn’t expect `(vhash-assoc "PS1" actual)` to return a pair. * guix/scripts/environment.scm (validate-child-shell-environment): Change match pattern to expect a pair. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Thiago Jung Bauermann
2021-11-13guix: packages: Clarify that list is a list of <license> records....* guix/packages/packages.scm (<package>): Clarify that the license field takes a list of licenses rather than a generic list. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> jgart
2021-11-12import: utils: Add more licenses and extend their detection....* guix/import/utils.scm (spdx-string->license): Identify more licenses (CC-BY-4.0, Freetype, HPND). * guix/licenses.scm: Add a comment that mentions "MIT" so that people who grep for MIT end up there. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Attila Lendvai
2021-11-11import: print: Replace packages and origins in 'arguments'....* guix/import/print.scm (package->code)[variable-reference] [object->code]: New procedures. [package-lists->code]: Rewrite in terms of 'object->code'. Pass the 'arguments' field through 'object->code'. * tests/print.scm (pkg-with-arguments, pkg-with-arguments-source): New variables. ("package with arguments"): New test. Ludovic Courtès
2021-11-11import: print: Handle patches that are origins....* guix/import/print.scm (package->code)[source->code]: Handle patches that are origins. * tests/print.scm (pkg-with-origin-input): Add 'patches' field. (pkg-with-origin-patch, pkg-with-origin-patch-source): New variables. ("package with origin patch"): New test. Ludovic Courtès
2021-11-11import: print: Correctly handle URI lists....* guix/import/print.scm (package->code)[factorized-uri-code]: New procedure. [source->code]: Use it, and factorize URI when it's a list. * tests/print.scm (pkg-with-origin-input): Check origin URI to a list. Ludovic Courtès
2021-11-11import: print: Properly render packages with origins as inputs....* guix/import/print.scm (package->code)[source->code]: Check whether VERSION is true before calling 'factorize-uri'. [package-lists->code]: Add clause for inputs that are origins. * tests/print.scm (pkg-with-origin-input, pkg-with-origin-input-source): New variables. ("package with origin input"): New test. Ludovic Courtès
2021-11-11import: cran: Allow imports of a specific version....* guix/import/cran.scm (download): Handle the case where URL is a list. (fetch-description-from-tarball): New procedure. (fetch-description): Add #:version parameter. Honor it when REPOSITORY is 'cran. Use 'fetch-description-from-tarball' when REPOSITORY is 'bioconductor. (description->package): SOURCE-URL may now be a list. (cran->guix-package): Pass VERSION to 'fetch-description'. (cran-recursive-import): Add #:version parameter. * guix/scripts/import/cran.scm (guix-import-cran): Expect a spec rather than a mere package name. * doc/guix.texi (Invoking guix import): Document it. Ludovic Courtès
2021-11-11import: pypi: Allow imports of a specific version....* guix/import/pypi.scm (latest-version): New procedure. (latest-source-release): Rename to... (source-release): ... this. Add 'version' parameter. (latest-wheel-release): Rename to... (wheel-release): ... this. Add 'version' parameter. (pypi->guix-package): Honor 'version' parameter. (pypi-recursive-import): Add 'version' parameter and honor it. * guix/scripts/import/pypi.scm (guix-import-pypi): Expect a spec. Pass it to 'package-name->name+version'. Pass the 'version' parameter. * tests/pypi.scm ("pypi->guix-package, no wheel"): Exercise the #:version parameter. * doc/guix.texi (Invoking guix import): Document it. Ludovic Courtès
2021-11-07guix: Upgrade to Bioconductor 3.14....* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to 3.14. * guix/import/cran.scm (%bioconductor-version): Same. Ricardo Wurmus
2021-11-07shell: Actually clean up the profile cache....Previously, most actions would leave the cache as-is because 'guix-environment*' would indirectly call 'exit', and thus its continuation was never reached. * guix/scripts/shell.scm (guix-shell): Move call to 'maybe-remove-expired-cache-entries' to EXIT-HOOK. Ludovic Courtès
2021-11-07import: egg: Allow imports of a specific version....* guix/import/egg.scm (eggs-repository): Change URL. (egg-metadata): Accept optional #:version keyword argument. (egg->guix-package): Accept ‘version’ argument. (egg-recursive-import): Add ‘version’ argument and honor it. * guix/scripts/import/egg.scm (guix-import-egg): Parse a specification instead of just a package name. * doc/guix.texi (Invoking guix import): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-11-07home: services: bash: Add ‘aliases’ field....* doc/guix.texi (Shells Home Services): Document it. * gnu/home/services/shells.scm (bash-serialize-aliases): New procedure. (home-bash-configuration, home-bash-extension): Add ‘aliases’ field. (home-bash-extensions): Adjust accordingly. * guix/scripts/home/import.scm (generate-bash-configuration+modules): Populate the ‘alias’ field. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-11-07ui: 'load*' correctly reports 'read-error' in all cases....Previously, 'read-error' exceptions other than "missing closing paren" would not be reported; instead, we'd directly call (exit 1) without printing anything. Fixes <https://issues.guix.gnu.org/51463>. Reported by Alice BRENON <alice.brenon@ens-lyon.fr>. * guix/ui.scm (report-load-error): Report the error without re-throwing upon 'read-error'. * tests/guix-build.sh: Add test. Ludovic Courtès
2021-11-07utils: Define a target-x86-32? and target-x86-64? predicate....* guix/utils.scm (target-x86-32?, target-x86-64?): New predicates. * tests/utils.scm ("target-x86-32?", "target-x86-64?"): New tests. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-11-06environment: Suggest command upon 'execlp' failure....* guix/scripts/environment.scm (launch-environment): Call 'primitive-_exit' upon 'system-error. (suggest-command-name, validate-exit-status): New procedures. (launch-environment/fork): Call 'validate-exit-status'. (launch-environment/container)[exit/status*]: New procedure. Use it instead of 'exit/status'. Ludovic Courtès
2021-11-06profiles: Build the man database only if 'man-db' is in the profile....This allows us to skip the expensive man-db profile hook in most cases. Suggested by Liliana Marie Prikler <liliana.prikler@gmail.com>. * guix/profiles.scm (manual-database/optional): New procedure. (%default-profile-hooks): Use it instead of 'manual-database'. * doc/guix.texi (Documentation): Add footnote about 'man -k' database creation. Ludovic Courtès
2021-11-06import: elpa: Work around Guile 3.0.[5-7] compiler bug....Fixes <https://issues.guix.gnu.org/49006>. Reported by Xinglu Chen <public@yoctocell.xyz>. * guix/import/elpa.scm (elpa-package->sexp)[melpa-recipe]: Add call to 'identity'. Ludovic Courtès
2021-11-02import: stackage: Update to release 18.14....* guix/import/stackage.scm (%default-lts-version): Update to 18.14. Lars-Dominik Braun
2021-10-31ui: Use DISPLAY in SHOW-GUIX-HELP....* guix/ui.scm (show-guix-help): Use DISPLAY where FORMAT isn't needed. Tobias Geerinckx-Rice
2021-10-31ui: Add top-level options to help text....This also makes automated ‘guix --h<Tab>’ completion possible. * guix/ui.scm (show-guix-help): Document that an OPTION's an option, and all valid options. Tobias Geerinckx-Rice
2021-10-31home: import: Avoid duplication of 'manifest->code'....* guix/scripts/home/import.scm (manifest->code): Remove. (manifest+configuration-files->code): New procedure. (import-manifest): Use 'manifest+configuration-files->code' instead of 'manifest->code'. * tests/home-import.scm (eval-test-with-home-environment): Likewise. (match-home-environment-transformations): New procedure. ("manifest->code: No services, package transformations"): New test. Ludovic Courtès
2021-10-31home: import: Factorize triplicated 'version-spec' procedure....* guix/scripts/package.scm (manifest-entry-version-prefix): New procedure, moved from... (export-manifest)[version-spec]: ... here. Adjust caller. * tests/home-import.scm (version-spec): Remove. (eval-test-with-home-environment): Use 'manifest-entry-version-prefix' instead. * guix/scripts/home/import.scm (import-manifest): Likewise. Ludovic Courtès