summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* git-download: Set locale to deal with Unicode in git metadata.Attila Lendvai2022-04-20
| | | | | | | | | | | | | | | | | | Without this the git-fetch GEXP is run in an environment that uses ASCII character encoding when strings are crossing the Guile - C boundary. It means that e.g. tag names that have Unicode chars in them will cause problems, e.g. when walking and deleting the .git directory. An example in the wild: https://github.com/klauspost/pgzip/tags Fixes <https://issues.guix.gnu.org/54893>. * guix/git-download.scm (git-fetch): Call 'setenv' and 'setlocale' to set it to en_US.utf8. * gnu/packages/commencement.scm (glibc-utf8-locales-final): Make public. Add 'properties' field. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* ui: Highlight package and service search results.Ludovic Courtès2022-04-19
| | | | | | | | | | | * guix/ui.scm (package->recutils): Add #:highlighting parameter and use it. (display-search-results): Add #:regexps parameter; call 'colorize-full-matches' and pass #:highlighting. * guix/scripts/package.scm (process-query): Pass #:regexps to 'display-search-results'. * guix/scripts/home.scm (search): Likewise. * guix/scripts/system/search.scm (service-type->recutils): Add #:highlighting parameter and use it.
* colors: Add 'colorize-full-matches'.Ludovic Courtès2022-04-19
| | | | * guix/colors.scm (colorize-full-matches): New procedure.
* ui: Highlight important bits in recutils output.Ludovic Courtès2022-04-19
| | | | | | * guix/scripts/system/search.scm (service-type->recutils): Highlight the value of the 'name' field. * guix/ui.scm (package->recutils): Likewise for 'name' and 'version'.
* publish: Support systemd-style socket activation.Ludovic Courtès2022-04-14
| | | | | | | * guix/scripts/publish.scm (systemd-socket): New procedure. (guix-publish): Add 'style' variable. Adjust startup message depending on whether STYLE is 'systemd. * doc/guix.texi (Invoking guix publish): Mention socket activation.
* publish: Use SRFI-71 instead of SRFI-11.Ludovic Courtès2022-04-14
| | | | | * guix/scripts/publish.scm (make-request-handler): Use 'let' instead of 'let-values'.
* style: Correctly read dots in pairs and improper lists.Ludovic Courtès2022-04-14
| | | | | | | | | | Until now dots were read as symbols. * guix/scripts/style.scm (read-with-comments)[dot]: New variable. [dot?, reverse/dot]: New procedures. Use 'reverse/dot' instead of 'reverse' when reading lists. * tests/style.scm ("read-with-comments: dot notation") ("((a . 1) (b . 2))", "(a b c . boom)"): New tests.
* guix: Add define-deprecated/public-alias.Liliana Marie Prikler2022-04-12
| | | | * guix/deprecation.scm (define-deprecated/public-alias): New variable.
* http-client: Fix redirection.Attila Lendvai2022-04-11
| | | | | | | * guix/http-client.scm (http-fetch): Use the right uri variable in case of redirection. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: opam: Factor out source import.Julien Lepiller2022-04-11
| | | | | | | | | | This also ensures a package can be imported even when it does not specify a URL. * guix/import/opam.scm (opam->guix-source): New procedure. (opam->guix-package): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: opam: Accept tabulations.Julien Lepiller2022-04-11
| | | | | | * guix/import/opam.scm (SP, SP2): Accept tabulation as whitespace. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* reconfigure: Fix typo on 'live-service-transient?'.Ludovic Courtès2022-04-11
| | | | | | | Fix typo introduced in e25eca35ff04e4234d0376fbb9a8e146869772c8. * guix/scripts/system/reconfigure.scm (running-services): Add question mark to 'live-service-transient?.
* services: herd: Adjust to <live-service> changes.Ludovic Courtès2022-04-10
| | | | | | | | | | | This is a followup to a2c759c8304c461d096ab763568e7f71546ff4e8. * guix/scripts/system/reconfigure.scm (running-services): Fill in the 'transient?' field of <live-service>. * tests/services.scm ("shepherd-service-upgrade: one unchanged, one upgraded, one new") ("shepherd-service-upgrade: service depended on is not unloaded") ("shepherd-service-upgrade: obsolete services that depend on each other"): Adjust calls to 'live-service'.
* guix describe: Add missing import.Ludovic Courtès2022-04-09
| | | | | | | Fixes a regression introduced in d4e858763c4303764729133c547b0a6dfe2354f9. * guix/scripts/describe.scm: Add missing autoload.
* diagnostics: Turn diagnostic locations into hyperlinks.Ludovic Courtès2022-04-08
| | | | | * guix/diagnostics.scm (print-diagnostic-prefix): Use 'location->hyperlink' when 'supports-hyperlinks?' returns true.
* ui: Move 'location->hyperlink' to (guix diagnostics).Ludovic Courtès2022-04-08
| | | | | | * guix/ui.scm (location->hyperlink): Move to... * guix/diagnostics.scm: ... here. * guix/scripts/system/search.scm: Adjust imports accordingly.
* ui: Move hyperlink facilities to (guix colors).Ludovic Courtès2022-04-08
| | | | | | | * guix/ui.scm (supports-hyperlinks?, file-hyperlink, hyperlink): Move to... * guix/colors.scm: ... here. * guix/scripts/home.scm, guix/scripts/system.scm, guix/scripts/system/search.scm: Adjust imports accordingly.
* shell: Add '--export-manifest'.Ludovic Courtès2022-04-04
| | | | | | | | | | | | * guix/scripts/shell.scm (show-help, %options): Add '--export-manifest'. (manifest-entry-version-prefix, manifest->code*) (export-manifest): New procedures. (guix-shell): Honor '--export-manifest'. * tests/guix-shell-export-manifest.sh: New file. * Makefile.am (SH_TESTS): Add it. * doc/guix.texi (Invoking guix shell): Document '--export-manifest'. (Invoking guix environment): Link to it. (Invoking guix pack): Likewise.
* environment: Export 'load-manifest'.Ludovic Courtès2022-04-04
| | | | | * guix/scripts/environment.scm (load-manifest): New procedure. (options/resolve-packages): Use it.
* packages: Add 'package-unique-version-prefix'.Ludovic Courtès2022-04-04
| | | | | | | * gnu/packages.scm (package-unique-version-prefix): New procedure. * guix/scripts/package.scm (manifest-entry-version-prefix): Use it. * tests/packages.scm ("package-unique-version-prefix, gcc@8") ("package-unique-version-prefix, grep"): New tests.
* build: emacs-utils: Add a (as-display) subform to `emacs-substitute-variables'.Maxim Cournoyer2022-04-04
| | | | | | | | * guix/build/emacs-utils.scm (as-display): New variable. (replacement-helper): New syntax helper. (emacs-substitute-sexps): Use it and update doc. (emacs-substitute-variables): Add an optional 'modifier' datum to the replacement specification, and document it.
* import: pypi: Use new style for the conditional unzip input.Maxim Cournoyer2022-04-04
| | | | * guix/import/pypi.scm (make-pypi-sexp)<unzip>: Use new style.
* weather: Colorize the output.Ludovic Courtès2022-04-01
| | | | | | * guix/colors.scm (coloring-procedure): Export. * guix/scripts/weather.scm (report-server-coverage): Highlight the server name and colorize the availability ratio.
* download: Use https for main KDE source.Efraim Flashner2022-03-29
| | | | | * guix/download.scm (%mirrors)[kde]: Use https URIs for main KDE mirrors. * tests/lint.scm ("mirror-url: kde suggestion"): New test.
* profiles: manual-database: Remove GDBM workaround.Maxim Cournoyer2022-03-22
| | | | | * guix/profiles.scm (manual-database): No longer set the MALLOC_PERTURB_ environment variable.
* packages: Clarify comment about build-system package record field.jgart2022-03-22
| | | | | | | * guix/packages.scm (<package>): Clarify that what goes in the build-system package record field is a build-system record instance. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* packages: Fix time-travel from Guix 1.1.0 / Guile < 2.2.7.Maxime Devos2022-03-21
| | | | | | | | * guix/packages.scm: Only set #:replace? #true when Guile is >= 2.2.7. Fixes: <https://issues.guix.gnu.org/53765> Reported-By: Peter Kois <kangus@gmail.com> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* home: import: Clarify alias parsing code.Ludovic Courtès2022-03-20
| | | | | | | * guix/scripts/home/import.scm (generate-bash-configuration+modules) [bash-alias->pair]: Return #f on match failure. [parse-aliases]: Adjust accordingly and use 'match'. Remove 'filter' call.
* home: import: Properly parse aliases that contain quotes.Ludovic Courtès2022-03-20
| | | | | | | | | * guix/scripts/home/import.scm (generate-bash-configuration+modules): Define 'alias-rx'. [bash-alias->pair]: Use it. * tests/home-import.scm (match-home-environment-bash-service-with-alias): New variable. ("manifest->code: Bash service with aliases"): New test.
* guix home: Show "container" in '--help' output.Ludovic Courtès2022-03-19
| | | | | | This is a followup to 094a2cfbe45c104d0da30ff9d975d052ca0c118c. * guix/scripts/home.scm (show-help): Add "container".
* guix home: Add 'container' command.Ludovic Courtès2022-03-19
| | | | | | | | | | | | | | | | | * guix/scripts/home.scm (show-help, %options): Add '--network', '--share', and '--expose'. (not-config?, user-shell, spawn-home-container): New procedures. (%default-system-profile): New variable. (perform-action): Add #:file-system-mappings, #:container-command, and #:network?; honor them. (process-action): Adjust accordingly. (guix-home)[parse-sub-command]: Add "container". [parse-args]: New procedure. Use it instead of 'parse-command-line'. * tests/guix-home.sh: Add tests. * doc/guix.texi (Declaring the Home Environment): Mention 'guix home container' as a way to test configuration. (Invoking guix home): Document it.
* guix system: Call 'export-graph' with the right port argument.Ludovic Courtès2022-03-18
| | | | | * guix/scripts/system.scm (export-extension-graph) (export-shepherd-graph): Honor PORT.
* guix home: Implement the 'extension-graph' and 'shepherd-graph' actions.Ludovic Courtès2022-03-18
| | | | | | | | | | | | | | | Until now these two actions were silently ignored. * guix/scripts/home.scm (show-help, %options): Add "--graph-backend". (%default-options): Add 'graph-backend' key. (export-extension-graph, export-shepherd-graph): New procedures. (perform-action): Add #:graph-backend parameter. Add cases for the 'extension-graph' and 'shepherd-graph' actions. (process-action): Pass #:graph-backend to 'perform-action'. * guix/scripts/system.scm (service-node-type) (shepherd-service-node-type): Export * tests/guix-home.sh: Add tests. * doc/guix.texi (Invoking guix home): Document it.
* graph: Factorize 'lookup-backend'.Ludovic Courtès2022-03-18
| | | | | | | * guix/graph.scm (lookup-backend): New procedure. * guix/scripts/graph.scm (lookup-backend): Remove. * guix/scripts/system.scm (lookup-backend): Remove. * po/guix/POTFILES.in: Add 'guix/graph.scm'.
* ui: 'show-what-to-build' highlights "would be downloaded" headings.Ludovic Courtès2022-03-18
| | | | * guix/ui.scm (show-what-to-build): Highlight "X MB would be downloaded".
* ui: 'show-what-to-build' highlights "The following [...] will be built".Ludovic Courtès2022-03-18
| | | | | | * guix/colors.scm (highlight/warn): New procedure. * guix/ui.scm (show-what-to-build): Use 'highlight/warn' when displaying what would/will be built.
* utils: Add ar-for-target and ld-for-target procedures.Maxim Cournoyer2022-03-18
| | | | * guix/utils.scm (ar-for-target, ld-for-target): New procedures.
* packages: 'modify-inputs' preserves outputs in 'replace' clauses.Ludovic Courtès2022-03-16
| | | | | | | | | Fixes <https://issues.guix.gnu.org/53915>. Reported by Gordon Quad <gordon@niflheim.info>. * guix/packages.scm (replace-input): Preserve the outputs of INPUT by default. * tests/packages.scm ("modify-inputs, replace, extra output"): New test.
* Revert "gnu: Add %final-inputs-riscv64."Efraim Flashner2022-03-16
| | | | | | This reverts commit 0444be868903356a37fc8ffd3cdf820ca038f3e6. This is no longer necessary after the gcc STARTFILE_PREFIX_SPEC commit.
* transformations: '--tune' prints supported micro-architectures upon error.Ludovic Courtès2022-03-14
| | | | | * guix/transformations.scm (build-system-with-tuning-compiler): Add &fix-hint condition when asked for an unsupported micro-architecture.
* build-system/ocaml: Use standard packages as "build inputs".Ludovic Courtès2022-03-14
| | | | | | | | | | Conceptually, "standard packages" (GCC, Coreutils, etc.) are "build inputs". In the absence of cross-compilation support, this change has no effect, except for things like '--tune' that expect the compiler to be among the build inputs. * guix/build-system/ocaml.scm (lower): Move (standard-packages) from 'host-inputs' to 'build-inputs'.
* gexp: Correctly handle #$output in 'gexp->approximate-sexp'.Maxime Devos2022-03-13
| | | | | | | | | | | | | | | | | | | | | | | | This addresses the following backtrace from "guix lint -c wrapper-inputs hostapd": Backtrace:ostapd@2.10 [wrapper-inputs]... [...] 174:9 3 (gexp->approximate-sexp #<gexp (modify-phases %standard?>) In srfi/srfi-1.scm: 586:17 2 (map1 (#<gexp-output out> #<gexp-input "pkg-config":o?>)) In guix/gexp.scm: 175:16 1 (_ _) In ice-9/boot-9.scm: 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: Throw to key `match-error' with args `("match" "no matching pattern" #<gexp-output out>)'. * guix/gexp.scm (gexp->approximate-sexp): Handle the case where 'reference' is a <gexp-output>,, by returning (*approximate*). * tests/gexp.scm ("gexp->approximate-sexp, outputs"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gexp: Correctly handle unquoting S-exp objects.Maxime Devos2022-03-13
| | | | | | | | | | | | This fixes a false-positive in the linter: guix lint -c 'wrapper-inputs' libaio * guix/gexp.scm (gexp->approximate-sexp): Allow the 'thing' in <gexp-input> to be a sexp, without approximation, by testing if it is a record. * tests/gexp.scm ("unquoted sexp (not a gexp!)"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* lint: check-tests-true: Allow #:tests? #t for some build systems.Maxime Devos2022-03-11
| | | | | | | | | | | | | | | | emacs-build-system sets #:tests? #f by default, so the linter shouldn't warn if #:tests? #t is set for packages using emacs-build-system. Likewise for texlive-build-system. * guix/lint.scm (check-tests-true): Do not warn if the build system is emacs-build-system or texlive-build-system. * tests/lint.scm ("tests-true: #:tests? #t acceptable for emacs packages") ("tests-true: #:tests? #t acceptable for texlive packages"): New tests. Fixes: <https://issues.guix.gnu.org/50299> Reported-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* import: hackage: Use SRFI-71 instead of SRFI-11.Ludovic Courtès2022-03-07
| | | | | | | * guix/import/hackage.scm (read-cabal-and-hash) (hackage-fetch-and-hash, hackage-fetch) (hackage->guix-package): Use 'let' and 'let*' instead of 'let-values' and 'let*-values'.
* import: hackage: Avoid pointless use of 'compose'.Ludovic Courtès2022-03-07
| | | | | | * guix/import/hackage.scm (hackage-module->sexp): Unroll pointless calls to 'compose'. (hackage->guix-package): Likewise.
* scripts: import: gem: Fix recursive error handling.zimoun2022-03-07
| | | | | | | | Partly fixes <https://bugs.gnu.org/44115>. * guix/scripts/import/gem.scm (guix-import-gem): Handle error. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: cran: Return multiple values for unknown packages.zimoun2022-03-07
| | | | | | | | Partly fixes <https://bugs.gnu.org/44115>. * guix/import/pypi.scm (cran->guix-package): Return 'values'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: elpa: Return multiple values for unknown packages.zimoun2022-03-07
| | | | | | | | Partly fixes <https://bugs.gnu.org/44115>. * guix/import/elpa.scm (elpa->guix-package): Return values. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: hackage: Return multiple values for unknown packages.zimoun2022-03-07
| | | | | | | | Partly fixes <https://bugs.gnu.org/44115>. * guix/import/hackage.scm (hackage->guix-package): Return 'values'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>