summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2021-10-31home: import: Compare procedures with 'eq?'.Ludovic Courtès
'procedure-name' is a debugging aid and cannot be reliably used to check for procedure equality. * guix/scripts/home/import.scm (configurations+modules): Remove use of 'procedure-name'.
2021-10-31guix home: import: Call ‘local-file’ with ‘name’Xinglu Chen
Set the name of the file to just the basename of the file passed to ‘local-file’. * guix/scripts/home/import.scm (basename+remove-dots): New procedure. (generate-bash-configuration+modules): Use it. * tests/home-import.scm (match-home-environment-bash-service): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31Add tests for ‘guix home import’.Xinglu Chen
* tests/home-import.scm: New file. * Makefile.am (SCM_TESTS): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31guix home: import: Delete duplicate modules when importing.Xinglu Chen
Two different services might require the same module(s), so delete duplicates when generating the ‘use-modules’ form. * import.scm (manifest->code): Delete duplicate modules. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31guix home: import: Don’t use 'slurp-file-gexp'.Xinglu Chen
‘slurp-file-gexp’ is not a bound procedure. * guix/scripts/home/import.scm (generate-bash-configuration+modules): Don’t use ‘slurp-file-gexp’. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31guix home: import: Fix module name for Bash service.Xinglu Chen
* guix/scripts/home/import.scm (generate-bash-configuration+modules): Change (gnu home-services bash) to (gnu home-services shells); add (guix gexp). Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31guix home: import: Allow multiple modules to be imported for each service.Xinglu Chen
Previously, only one module could be imported for each service, e.g., only (gnu home-services shell) could be imported when generating the Bash service declaration. However, for some services, multiple modules might need to be imported in order for it to work. * guix/scripts/home/import.scm (generate-bash-module+configuration): Rename to ... (generate-bash-configuration+modules): ... this. (%files-configurations-alist): Rename to ... (%files+configurations-alist): ... this. (modules+configurations): Rename to ... (configurations+modules): ... this. (manifest->code): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31guix home: import: Make the user to specify a destination directory.Xinglu Chen
Copy the appropriate the relevant configuration files to the destination directory, and call ‘local-file’ on them. Without this, ‘guix home import’ will generate a service declaration like this (service home-bash-service-type (home-bash-configuration (bashrc (list (slurp-file-gexp (local-file "/home/yoctocell/.bashrc")))))) but when running ‘guix home reconfigure’, the ~/.bashrc file would be moved, so when running ‘guix home reconfigure’ for the second time, it would read the ~/.bashrc which is itself a symlink to a file the store. * guix/scripts/home/import.scm (generate-bash-module+configuration): Take ‘destination-directory’ parameter (modules+configurations): Copy the user’s configuration file to ‘%destination-directory’. * guix/scripts/home.scm (process-command): Adjust accordingly; create ‘destination’ if it doesn’t exist. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-30shell: Error out when an unauthorized guix.scm/manifest.scm is found.Ludovic Courtès
The previous behavior was confusing: a warning would be printed and 'guix shell' would go on starting an empty environment. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/scripts/shell.scm (auto-detect-manifest): Change "not loading" case from warning to error. * tests/guix-shell.sh: Adjust accordingly.
2021-10-28packages: Optionally validate Texinfo markup at expansion time.Ludovic Courtès
* guix/packages.scm (validate-texinfo): New macro. (<package>)[synopsis, description]: Add 'sanitize' property.
2021-10-28ui: Gracefully handle invalid Texinfo markup in package blurbs.Ludovic Courtès
Previously 'guix search' & co. would crash when encountering invalid Texinfo. * guix/ui.scm (texi->plain-text*): New procedure. (package-field-string, package->recutils): Use it.
2021-10-28store: 'map/accumulate-builds' handler checks the store received.Ludovic Courtès
This is a followup to b19250eec6f92308f237a09a43e8e3e2355345b9, providing a proper fix for <https://issues.guix.gnu.org/46756>. * guix/remote.scm (remote-eval): Revert b19250eec6f92308f237a09a43e8e3e2355345b9. * guix/store.scm (build-accumulator): Turn into a procedure. Call CONTINUE when the store is not eq? to the initial store. (map/accumulate-builds): Adjust accordingly. * tests/store.scm ("map/accumulate-builds and different store"): New test.
2021-10-28import: cran: Use the standard diagnostic procedures.Ludovic Courtès
* guix/import/cran.scm (bioconductor-packages-list) (fetch-description): Use 'warning' instead of 'format'.
2021-10-28environment: Fix broken file-local variable.Zhu Zihao
* guix/scripts/environment.scm (Local Variables): Add missing eval. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-28remote: Really build things remotely when #:build-locally? is #false.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/46756>. Reported by pkill9 <pkill9@runbox.com>, Maxim Cournoyer <maxim.cournoyer@gmail.com>, and Katherine Cox-Buday <cox.katherine.e@gmail.com>. * guix/remote.scm (remote-eval): When BUILD-LOCALLY? is false, wrap 'build-derivations' call in 'with-build-handler'.
2021-10-26syscalls: Gracefully handle failure to load libc's libutil.Ludovic Courtès
In particular, libutil is not found when running code on a statically-linked Guile. Reported by mahmooz on #guix. * guix/build/syscalls.scm (syscall->procedure): Add #:library parameter and honor it. (openpty, login-tty): Use 'syscall->procedure' instead of calling 'dynamic-link' directly.
2021-10-26shell: Suggest running '--check' once for interactive use.Ludovic Courtès
* guix/scripts/shell.scm (hint-directory, hint-file, record-hint) (hint-given?): New procedures. (guix-shell): Record and probe the 'shell-check' hint.
2021-10-26environment: Add '--check'.Ludovic Courtès
* guix/scripts/environment.scm (show-environment-options-help) (%options): Add '--check'. * guix/scripts/environment.scm (child-shell-environment) (validate-child-shell-environment): New procedures. (guix-environment*): Call 'validate-child-shell-environment' when 'check?' key is in OPTS. * doc/guix.texi (Invoking guix shell): Shorten footnote about Bash startup files. Document '--check' and mention startup files. (Invoking guix environment): Document '--check'.
2021-10-26syscalls: Add 'openpty' and 'login-tty'.Ludovic Courtès
* guix/build/syscalls.scm (openpty, login-pty): New procedures. * tests/syscalls.scm ("openpty", "openpty + login-tty"): New tests.
2021-10-26packages: Optimize 'package-transitive-supported-systems'.Ludovic Courtès
With this change, the wall-clock time of: ./pre-inst-env guile -c '(use-modules (gnu) (guix)(ice-9 time)) (time (pk (fold-packages (lambda (p r)(supported-package? p)(+ 1 r)) 0)))' goes from 3.2s to 2.0s, a 37% improvement. * guix/packages.scm (package-transitive-supported-systems): Change 'supported-systems' to 'supported-systems-procedure', returning an 'mlambdaq' instead of the original 'mlambda'. Add 'procs'. Adjust body accordingly.
2021-10-25shell: Maintain a profile cache.Ludovic Courtès
shell: Maintain a profile cache. With this change, running "guix shell" (no arguments) is equivalent to: guix environment -r ~/.cache/guix/profiles/some-root -l guix.scm This is the cache miss. On cache hit, it's equivalent to: guix environment -p ~/.cache/guix/profiles/some-root ... which can run in 0.1s. * guix/scripts/shell.scm (options-with-caching): New procedure. (parse-args): Use it. (%profile-cache-directory): New variable. (profile-cache-key, profile-cached-gc-root): New procedures. (show-help, %options): Add '--rebuild-cache'. (guix-shell)[cache-entries, entry-expiration]: New procedures. Add call to 'maybe-remove-expired-cache-entries'. * doc/guix.texi (Invoking guix shell): Document '--rebuild-cache'.
2021-10-25cache: Gracefully handle non-existent cache.Ludovic Courtès
* guix/cache.scm (maybe-remove-expired-cache-entries): Ignore ENOENT when writing EXPIRY-FILE.
2021-10-25environment: Autoload some modules.Ludovic Courtès
This further speeds up the 'guix environment -p PROFILE' case. * guix/scripts/environment.scm: Autoload a bunch of modules.
2021-10-25environment: Do not connect to the daemon when '--profile' is used.Ludovic Courtès
This further speeds up the 'guix environment -p PROFILE' case. * guix/scripts/environment.scm (guix-environment*)[store-needed?]: New variable. [with-store/maybe]: New macro. Use it instead of 'with-store', and remove 'with-build-handler' form.
2021-10-25environment: Skip derivation computation when '--profile' is used.Ludovic Courtès
* guix/scripts/environment.scm (guix-environment*): Bypass calls to 'package-derivation' and to 'manifest->derivation' when PROFILE is true.
2021-10-25shell: By default load the local 'manifest.scm' or 'guix.scm' file.Ludovic Courtès
* guix/scripts/shell.scm (parse-args): Add call to 'auto-detect-manifest'. (authorized-directory-file, authorized-shell-directory?) (find-file-in-parent-directories, auto-detect-manifest): New procedures. * tests/guix-shell.sh: Add test. * doc/guix.texi (Invoking guix shell): Document it.
2021-10-25Add 'guix shell'.Ludovic Courtès
* guix/scripts/shell.scm, tests/guix-shell.sh: New files. * Makefile.am (MODULES): Add 'shell.scm'. (SH_TESTS): Add 'tests/guix-shell.sh'. * guix/scripts/environment.scm (show-environment-options-help): New procedure. (show-help): Use it. (guix-environment*): New procedure. (guix-environment): Use it. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Features): Refer to "guix shell" (Invoking guix package): Likewise. (Development): Likewise. (Invoking guix shell): New node. (Invoking guix environment): Add deprecation warning. (Debugging Build Failures): Use 'guix shell' in examples. (Invoking guix container): Refer to 'guix shell'. (Invoking guix processes, Virtualization Services): Adjust examples to use 'guix shell'. * doc/contributing.texi (Building from Git): Refer to 'guix shell'. * etc/completion/bash/guix: Handle "shell".
2021-10-25profiles: Add 'package->development-manifest'.Ludovic Courtès
* guix/profiles.scm (package->development-manifest): New procedure. * guix/scripts/environment.scm (input->manifest-entry) (package-environment-inputs): Remove. * guix/scripts/environment.scm (options/resolve-packages): Use 'package->development-manifest' instead of 'package-environment-inputs'. * tests/profiles.scm ("package->development-manifest"): New test.
2021-10-25packages: Add 'package-development-inputs'.Ludovic Courtès
* guix/packages.scm (package-development-inputs): New procedure. * guix/scripts/environment.scm (package-environment-inputs): Use it. * tests/packages.scm ("package-development-inputs") ("package-development-inputs, cross-compilation"): New tests. * doc/guix.texi (package Reference): Document it.
2021-10-24lint: Add description check for common typos.Vagrant Cascadian
Fixes: https://issues.guix.gnu.org/44675 * guix/lint.scm (check-description-typo): Add check for occurences of "This packages", "This modules", "allows to" and "permits to" in package descriptions. * tests/lint.scm: Add tests for "This packages" and "allows to".
2021-10-22guix: packages: Add comment on license field.jgart via Guix-patches via
* guix/packages/packages.scm (<package>): Add comment about the type that the license field expects as part of a package record. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-10-18build-system/go: Fix building on host's secondary architecture.Efraim Flashner
Before when building for i686-linux on x86_64-linux GOARCH would be set to amd64, not 386. * guix/build-system/go.scm (go-build): Set goarch and goos to #f when not cross-compiling. * guix/build/go-build-system.scm (setup-go-environment): Set GOARCH according to the calculated goarch or using GOHOSTARCH and GOOS according to the calculated goos or using GOHOSTOS.
2021-10-17maint: Factorize po xref translation.Julien Lepiller
This ensures we use the same method in "make" as in "guix/self.scm". * Makefile.am: Build guix/build/po.scm. * build-aux/convert-xref.scm: New file. * doc/local.mk (xref_command): Use it. * guix/self.scm (translate-cross-references): Move it... * guix/build/po.scm: Parse comments and flags separately to find fuzzy flags. (translate-cross-references): ...here. (parse-tree->assoc): Ignore fuzzy entries.
2021-10-16build-system/minetest: Install config.txt and _config.txt.Vivien Kraus
* guix/build/minetest-build-system.scm (mod-install-plan): Add "config.txt" and "_config.txt" to the list of installed files. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-10-16build-system/minetest: Gather whole failing test output.Vivien Kraus
* guix/build/minetest-build-system.scm (check): Gather the whole output when a test fails. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-10-15refresh: Report suggested input changes with 'info'.Ludovic Courtès
* guix/scripts/refresh.scm (update-package): Define 'field', 'name', 'loc', and 'change-name'. Use 'info' rather than 'format' to report suggested input changes.
2021-10-15import: pypi: Remove leftover 'pk' call.Ludovic Courtès
This is a followup to 7b75f90c5b0da896c486cae23d19d43e2a03bb56. * guix/import/pypi.scm (make-pypi-sexp)[maybe-upstream-name]: Remove leftover 'pk' call.
2021-10-15import: pypi: Support 'input-changes'.Xinglu Chen
* guix/import/pypi.scm (latest-release): Specify the ‘input-changes’ field. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-10-15swh: Allows token from Software Heritage authentication service.zimoun
The token is provided using the environment variable GUIX_SWH_TOKEN. * guix/swh.scm (%swh-token): New variable. (call): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-15download: "GUIX_DOWNLOAD_FALLBACK_TEST=none" disables fallback mechanisms.Ludovic Courtès
* guix/download.scm (url-fetch*): Handle (%download-fallback-test) set to 'none.
2021-10-15lint: archival: Remove extra newline in warning.Ludovic Courtès
* guix/lint.scm (check-archival): Remove extra newline in message.
2021-10-14download: Print URL of the Disarchive spec being read.Ludovic Courtès
* guix/build/download.scm (disarchive-fetch/any): Show URI of the Disarchive spec.
2021-10-14download: Add parameter to test download fallback mechanisms.Ludovic Courtès
This allows you to run, say: GUIX_DOWNLOAD_FALLBACK_TEST=disarchive-mirrors guix build -S r-ebimage --check or: GUIX_DOWNLOAD_FALLBACK_TEST=content-addressed-mirrors ./pre-inst-env guix build -S r-ebimage --check to check whether these fallback mechanisms work as expected. * guix/download.scm (%no-mirrors-file, %no-disarchive-mirrors-file) (%download-fallback-test): New variables. (url-fetch*): Honor (%download-fallback-test).
2021-10-14download: Add missing autoload.Ludovic Courtès
This is a followup to 6d02a994f911a75e3a223a22c05c2939cdfed2b5, which left '%verify-swh-certificate?' unbound. * guix/build/download.scm: Autoload for '%verify-swh-certificate'.
2021-10-14download: Add disarchive.guix.gnu.org.Ludovic Courtès
* guix/download.scm (%disarchive-mirrors): Add disarchive.guix.gnu.org.
2021-10-13self: Move core (guix script ...) modules to a separate derivation.Ludovic Courtès
This adds an opportunity for parallelism and reduces the amount of rebuild needed when "secondary" modules are modified. * guix/self.scm (compiled-guix)[*core-cli-modules*]: New variable. [*cli-modules*]: Depend on it. [built-modules]: Likewise.
2021-10-11gnu: Add platform support.Mathieu Othacehe
* gnu/platform.scm: New file. * gnu/platforms/arm.scm: Ditto. * gnu/platforms/hurd.scm: Ditto. * gnu/local.mk (GNU_SYSTEM_MODULES): Add them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-09home: services: configuration: Support file-like objects.Oleg Pykhalov
* gnu/home/services/configuration.scm (interpose): Operate only with file-like objects. (string-or-gexp?): Delete procedure. (serialize-string-or-gexp): Rename to 'serialize-file-like'. (text-config?): Call 'file-like' intead of 'string-or-gexp?'. * guix/scripts/home/import.scm: (generate-bash-module+configuration): Don't call slurp-file-gexp. * gnu/home/services/configuration.scm: Move content ... * gnu/services/configuration.scm: here. * gnu/home/services/shells.scm: Delete (gnu home services configuration). * gnu/home/services/xdg.scm: Same. * gnu/local.mk: Same. * tests/guix-home.sh: Test home-bash-service-type and extension with home-bash-extension.
2021-10-09scripts: home: Make sure profile directory exists.Oleg Pykhalov
* guix/scripts/home.scm (process-action): Make sure profile directory exists.
2021-10-09Move (gnu home-services) to (gnu home services).Oleg Pykhalov
* gnu/home-services.scm (%guix-home-root-directory): Replace gnu/home-services.scm with "gnu/home/services.scm". Rename to gnu/home/services.scm. * gnu/local.mk (GNU_SYSTEM_MODULES): Rename gnu/home-services.scm to gnu/home/services.scm. * doc/he-config-bare-bones.scm: Replace (gnu home-services) with (gnu home services). * gnu/home.scm: Same. * gnu/home/services/fontutils.scm: Same. * gnu/home/services/mcron.scm: Same. * gnu/home/services/shells.scm: Same. * gnu/home/services/shepherd.scm: Same. * gnu/home/services/symlink-manager.scm: Same. * gnu/home/services/xdg.scm: Same. * guix/scripts/home.scm: Same. * guix/self.scm: Same.