summaryrefslogtreecommitdiff
path: root/guix/scripts
AgeCommit message (Expand)Author
2021-10-25shell: By default load the local 'manifest.scm' or 'guix.scm' file....* 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. Ludovic Courtès
2021-10-25Add 'guix shell'....* 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". Ludovic Courtès
2021-10-25profiles: Add 'package->development-manifest'....* 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. Ludovic Courtès
2021-10-25packages: Add 'package-development-inputs'....* 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. Ludovic Courtès
2021-10-18Merge remote-tracking branch 'signed/master' into core-updatesMathieu Othacehe
2021-10-15refresh: Report suggested input changes with 'info'....* guix/scripts/refresh.scm (update-package): Define 'field', 'name', 'loc', and 'change-name'. Use 'info' rather than 'format' to report suggested input changes. Ludovic Courtès
2021-10-12Merge remote-tracking branch 'origin/master' into core-updates-frozen.Mathieu Othacehe
2021-10-11gnu: Add platform support....* 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> Mathieu Othacehe
2021-10-09home: services: configuration: Support file-like objects....* 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. Oleg Pykhalov
2021-10-09scripts: home: Make sure profile directory exists....* guix/scripts/home.scm (process-action): Make sure profile directory exists. Oleg Pykhalov
2021-10-09Move (gnu home-services) to (gnu home services)....* 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. Oleg Pykhalov
2021-10-08Revert the #51061 patch series for now....This reverts commits f63c79bf7674df012517f8e9148f94c611e35f32 ..f86f7e24b39928247729020df0134e2e1c4cde62 for more chillax reviewing. See <https://issues.guix.gnu.org/51061#32>. Tobias Geerinckx-Rice
2021-10-08gnu: Move (gnu home-services) to (gnu home services)....* gnu/home-services/configuration.scm: Move the content ... * gnu/home/services/configuration.scm: ... here. * doc/guix.texi: Replace (gnu home-services mcron) with (gnu home services mcron). Replace (gnu home-services) with (gnu home services). * gnu/home.scm: Replace (gnu home-services fontutils) with (gnu services fontutils). Replace (gnu home-services shells) with (gnu home services shells). Replace (gnu home-services symlink-manager) with (gnu home services symlink-manager). Replace (gnu home-services xdg) with (gnu home services xdg). * gnu/home-services/fontutils.scm: Rename to gnu/services/fontutils.scm. * gnu/home-services/mcron.scm: Move to gnu/home/services/mcron.scm. Replace (gnu home-services shepherd) with (gnu home services shepherd). * gnu/home-services.scm (%service-type-path): Search home services in "gnu/services". * gnu/home-services/shells.scm: Replace (gnu home-services configuration) with (gnu home services configuration). Rename to gnu/home/services/shells.scm. Replace (gnu home-services utils) with (gnu home services utils). * gnu/home-services/shepherd.scm: Move to gnu/home/services/shepherd.scm. * gnu/home-services/symlink-manager.scm: Rename to gnu/home/services/symlink-manager.scm. * gnu/home-services/utils.scm: Rename to gnu/home/services/utils.scm. * gnu/home-services/xdg.scm: Rename to gnu/home/services/xdg.scm. * guix/scripts/home/import.scm: Replace (gnu home-services bash) with (gnu home services bash). * gnu/home-services.scm: Update documentation string. * doc/he-config-bare-bones.scm: Apply new (gnu home-services ...) modules location. * gnu/local.mk (GNU_SYSTEM_MODULES): Same. Oleg Pykhalov
2021-10-07import: Add hex.pm importer....hex.pm is a package repository for Erlang and Elixir. * guix/scripts/import.scm (importers): Add "hexpm". * guix/scripts/import/hexpm.scm, guix/import/hexpm.scm, guix/hexpm-download.scm: New files. * guix/import/utils.scm (source-spec->object): Add "hexpm-fetch" to list of fetch methods. * guix/upstream.scm (package-update/hexpm-fetch): New function. (%method-updates) Add it. * Makefile.am: Add them. Hartmut Goebel
2021-10-07guix system: Adjust bootloader message to plural "targets"....This is a followup to 2ca982ff41270288913ad6b7d5d9e1cad87b06d9. * guix/scripts/system.scm (install): Adjust message to plural 'targets'. Ludovic Courtès
2021-10-05publish: Defer narinfo string creation to the http-write....The "narinfo-string" procedure is expensive in term of IO operations and can take a while under IO pressure, such a GC collecting. Defer its call to a new thread created in the http-write procedure. Fixes: <https://issues.guix.gnu.org/48468> Partially fixes: <https://issues.guix.gnu.org/49089> * guix/scripts/publish.scm (render-narinfo): Defer the narinfo string creation to the http-write procedure. (compression->sexp, sexp->compression): New procedures. ("X-Nar-Compression"): Use them. ("X-Narinfo-Compressions"): New custom header. (strip-headers): Add the x-nar-path header. (http-write): Add narinfo on-the-fly creation support. It happens in a separated thread to prevent blocking the main thread. Mathieu Othacehe
2021-10-04scripts: home: Support dry-run....* guix/scripts/home.scm (%options): Add option for dry-run. Efraim Flashner
2021-10-02scripts: home: Wire and document --expression flag....* guix/scripts/home.scm (show-help): Add --expression option. (%options): Likewise. * doc/guix.texi (Invoking guix home): Document it. Pierre Langlois
2021-09-30style: Really honor '--input-simplification=always'....* guix/scripts/style.scm (simplify-package-inputs): Use (const #t) when POLICY is 'always. Ludovic Courtès
2021-09-28home-services: Add missing imports and function definition....* gnu/home-services/configuration.scm: Add missing imports. * gnu/home-services/utils.scm (list->human-readable-list): Add new function. * gnu/home-services/configuration.scm: Add missing imports. * gnu/home-services/xdg.scm: Fix ensure-list function. * guix/scripts/home/import.scm: Add missing imports. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com> Andrew Tropin
2021-09-27Merge branch 'wip-guix-home'Oleg Pykhalov
2021-09-21graph: Add '--max-depth'....* guix/graph.scm (export-graph): Add #:max-depth and honor it, adding 'depths' argument to 'loop'. * guix/scripts/graph.scm (%options, show-help): Add '--max-depth'. (%default-options): Add 'max-depth'. (guix-graph): Pass #:max-depth to 'export-graph'. * tests/graph.scm ("package DAG, limited depth"): New test. * doc/guix.texi (Invoking guix graph): Document it. Ludovic Courtès
2021-09-17Merge branch 'master' into core-updates-frozen... Conflicts: gnu/packages/bioinformatics.scm gnu/packages/chez.scm gnu/packages/docbook.scm gnu/packages/ebook.scm gnu/packages/gnome.scm gnu/packages/linux.scm gnu/packages/networking.scm gnu/packages/python-web.scm gnu/packages/python-xyz.scm gnu/packages/tex.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/dune.scm guix/build-system/go.scm guix/build-system/linux-module.scm guix/packages.scm Marius Bakke
2021-09-14scripts: import: Increase column width for pretty-printer....Previously, the max column width for the pretty-printer was 50, which caused generated package definitions to include unnecessary newlines, e.g., (home-page "https://gitlab.com/ttyperacer/terminal-typeracer") instead of (home-page "https://gitlab.com/ttyperacer/terminal-typeracer") * guix/scripts/import.scm (guix-import): Set max expression width to 80 when pretty-printing. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-09-09scripts: home: Add import subcommand....* guix/scripts/home/import.scm: New file. * Makefile.am (MODULES): Add it. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com> Andrew Tropin
2021-09-09scripts: Add 'guix home'....* guix/scripts/home.scm: New file. * Makefile.am (MODULES): Add it. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com> Andrew Tropin
2021-09-07system: Add hint for action typo....* guix/scripts/system.scm (actions): New variable. (define-command): Add hint for action typo. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-09-07import: Add hint for importer typo....* guix/scripts/import.scm (define-command): Add hint. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-09-07Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-09-03weather: Don't look for exported package replacements twice....* guix/scripts/weather.scm (all-packages): Delete duplicates, so that exported replacements aren't included twice. Christopher Baines
2021-09-03publish: Simplify 'narinfo-string'....This is a followup to 222f4661ed11b225f458cbe495a296f233129bec, which was intended to improve performance of 'narinfo-string'. * guix/scripts/publish.scm (narinfo-string): Remove 'catch' and 'read-derivation-from-file' call when rendering "Deriver". Ludovic Courtès
2021-09-01import: go: Improve error handling....* guix/import/go.scm (go-module->guix-package*): Handle errors, remove memoize. (go-module-recursive-import): Remove 'guard', add memoize. * guix/scripts/import/go.scm (guix-import-go): Adjust. * tests/go.scm: Adjust. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-08-31publish: Do not render the narinfo "System" field....This has been discussed here: https://issues.guix.gnu.org/50040. * guix/scripts/publish.scm (narinfo-string): Do not render the "System" field that is expensive to compute and currently unused. Mathieu Othacehe
2021-08-12Merge branch 'master' into core-updates-frozen... Conflicts: gnu/packages/algebra.scm gnu/packages/games.scm gnu/packages/golang.scm gnu/packages/kerberos.scm gnu/packages/mail.scm gnu/packages/python.scm gnu/packages/ruby.scm gnu/packages/scheme.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm Marius Bakke
2021-08-29gnu: bootloader: Support multiple targets....Fixes <https://issues.guix.gnu.org/40997>. * gnu/bootloader.scm (<bootloader-configuration>): New 'targets' field. (%bootloader-configuration-target): New procedure. (bootloader-configuration-target): Add deprecation warning. (bootloader-configuration-targets): New procedure. * guix/scripts/system.scm (install): Access targets via bootloader-configuration-targets. (perform-action)[bootloader-target]: Remove unused argument and update doc. Access targets via bootloader-configuration-targets and fix indentation. (process-action): Access targets via bootloader-configuration-targets. Do not provide the unused BOOTLOADER-TARGET argument when applying `perform-action'. * guix/scripts/system/reconfigure.scm (install-bootloader-program): Rename DEVICE argument to DEVICES. Adjust doc and comment. Apply `installer' and `disk-installer' for every DEVICES. (install-bootloader): Access targets via bootloader-configuration-targets and rename variable from DEVICE to DEVICES. * gnu/tests/install.scm: Adjust accordingly. * tests/guix-system.sh: Likewise. * gnu/tests/reconfigure.scm (run-install-bootloader-test): Adjust the DEVICES argument so that it is a list. * doc/guix.texi: Update doc. Maxim Cournoyer
2021-08-21guix: opam: More flexibility in the importer....* guix/scripts/import/opam.scm: Pass all instances of --repo as a list to the importer. * guix/import/opam.scm (opam-fetch): Stop expecting "expanded" repositories and call get-opam-repository instead to keep values "symbolic" as long as possible and factorize. (get-opam-repository): Use the same repository source as CLI opam does (i.e. HTTP-served index.tar.gz instead of git repositories). (find-latest-version): Be more flexible on the repositories structure instead of expecting packages/PACKAGE-NAME/PACKAGE-NAME.VERSION/. * tests/opam.scm: Update the call to opam->guix-package since repo is now expected to be a list and remove the mocked get-opam-repository deprecated by the support for local folders by the actual implementation. * doc/guix.texi: Document the new semantics and valid arguments for the --repo option. Signed-off-by: Julien Lepiller <julien@lepiller.eu> Alice BRENON
2021-08-20guix: Add ContentDB importer....* guix/import/contentdb.scm: New file. * guix/scripts/import/contentdb.scm: New file. * tests/contentdb.scm: New file. * Makefile.am (MODULES, SCM_TESTS): Register them. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Invoking guix import): Document it. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at> Maxime Devos
2021-08-10scripts: publish: Remove leftover comment....* guix/scripts/publish.scm (render-narinfo/cached): Remove leftover comment. Mathieu Othacehe
2021-08-10scripts: publish: Remove unused argument.Mathieu Othacehe
2021-08-09inferior: 'cached-channel-instance' no longer calls 'show-what-to-build'....This allows the user of 'cached-channel-instance' to install the build handler of its choice. In particular, it allows "guix time-machine" to install a build notifier with the right options instead of using the defaults that 'cached-channel-instance' would pass to 'show-what-to-build*'. * guix/inferior.scm (cached-channel-instance): Remove call to 'show-what-to-build*'. (inferior-for-channels): Wrap body in 'with-build-handler'. * guix/scripts/time-machine.scm (guix-time-machine): Use 'with-build-handler'. Ludovic Courtès
2021-08-15import: gem: Fix typo....* guix/scripts/import/gem.scm (%options): Fix typo. Brice Waegeneire
2021-08-04import: Use PARSE-COMMAND-LINE for options....* guix/scripts/import/go.scm (guix-import-go)[parse-options]: Use PARSE-COMMAND-LINE instead of ARGS-FOLD*. * guix/scripts/import/egg.scm (guix-import-egg)[parse-options]: Likewise. * guix/scripts/import/gem.scm (guix-import-gem)[parse-options]: Likewise. * guix/scripts/import/gnu.scm (guix-import-gnu)[parse-options]: Likewise. * guix/scripts/import/cpan.scm (guix-import-cpan)[parse-options]: Likewise. * guix/scripts/import/cran.scm (guix-import-cran)[parse-options]: Likewise. * guix/scripts/import/elpa.scm (guix-import-elpa)[parse-options]: Likewise. * guix/scripts/import/json.scm (guix-import-json)[parse-options]: Likewise. * guix/scripts/import/opam.scm (guix-import-opam)[parse-options]: Likewise. * guix/scripts/import/pypi.scm (guix-import-pypi)[parse-options]: Likewise. * guix/scripts/import/crate.scm (guix-import-crate)[parse-options]: Likewise. * guix/scripts/import/texlive.scm (guix-import-texlive)[parse-options]: Likewise. * guix/scripts/import/hackage.scm (guix-import-hackage)[parse-options]: Likewise. * guix/scripts/import/stackage.scm (guix-import-stackage)[parse-options]: Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sarah Morgensen
2021-07-18Merge branch 'master' into core-updatesLudovic Courtès
2021-07-18pack: Streamline how files are included in tarballs....Thanks to Guillem Jover <guillem@debian.org> on the OFTC's #debian-dpkg channel for helping with troubleshooting. Letting GNU Tar recursively walk the complete files hierarchy side-steps the risks associated with providing a list of file names: 1. Duplicated files in the archive (recorded as hard links by GNU Tar) 2. Missing parent directories. The above would cause dpkg to malfunction, for example by aborting early and skipping triggers when there were missing parent directories. * guix/scripts/pack.scm (self-contained-tarball/builder): Do not call POPULATE-SINGLE-PROFILE-DIRECTORY, which creates extraneous files such as /root. Instead, call POPULATE-STORE and INSTALL-DATABASE-AND-GC-ROOTS individually to more precisely generate the file system. Replace the list of files by the current directory, "." and streamline the way options are passed. * gnu/system/file-systems.scm (reduce-directories): Remove procedure. * tests/file-systems.scm ("reduce-directories"): Remove test. Maxim Cournoyer
2021-07-18pack/deb: Add default section and priority fields to the control file....These fields, while optional per dpkg, are required by other tools such as reprepro, commonly used to generate apt repositories. * guix/scripts/pack.scm (debian-archive): Set the control file section field to 'misc' and the priority field to 'optional'. Maxim Cournoyer
2021-07-18pack: Allow embedding custom control files in deb packs....* guix/scripts/pack.scm (self-contained-tarball/builder) [extra-options]: New argument. (self-contained-tarball, squashfs-image, docker-image) (debian-archive): Likewise. Remove two TODO comments. Document EXTRA-OPTIONS. Use the custom control files when provided. (%deb-format-options): New variable. (show-deb-format-options, show-deb-format-options/detailed): New procedures. (%options): Register new options. (show-help): Augment with new usage. (guix-pack): Validate and propagate new argument values. * doc/guix.texi (Invoking guix pack)[deb]: Document how to list advanced options. Add an example. * tests/pack.scm (deb archive...): Provide extra-options to the debian-archive procedure, and validate that the provided files are embedded in the pack. Maxim Cournoyer
2021-07-16substitute: Fix handling of short option "-h"....The short option was listed in the help-text, but not recognized. Hartmut Goebel
2021-07-15package: Improve output appearance when listing packages....* guix/scripts/package.scm (process-query): Use pretty-print-table when listing installed and available packages. Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Steve Sprang
2021-07-11Add 'guix style'....* guix/scripts/style.scm, tests/style.scm: New files. * Makefile.am (MODULES, SCM_TESTS): Add them. * po/guix/POTFILES.in: Add 'guix/scripts/style.scm'. * doc/guix.texi (Invoking guix style): New node. (package Reference): Reference it. (Invoking guix lint): Likewise. Ludovic Courtès
2021-06-29pack: Add support for the deb format....* .dir-locals.el (scheme-mode)[gexp->derivation]: Define indentation rule. * guix/scripts/pack.scm (debian-archive): New procedure. (%formats): Register the new deb format. (show-formats): Add it to the usage string. * tests/pack.scm (%ar-bootstrap): New variable. (deb archive with symlinks): New test. * doc/guix.texi (Invoking guix pack): Document it. * NEWS: Add news entry. Maxim Cournoyer