summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2021-09-15store: 'map/accumulate-builds' processes the whole list in case of cutoff.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/50264>. Reported by Lars-Dominik Braun <lars@6xq.net>. This fixes a regression introduced in fa81971cbae85b39183ccf8f51e8d96ac88fb4ac whereby 'map/accumulate-builds' would return REST (the tail of LST) without applying PROC on it. The effect would be that 'lower-inputs' in (guix gexp) would dismiss those elements, leading to derivations with correct builders but only a subset of the inputs they should have had. * guix/store.scm (map/accumulate-builds): Add #:cutoff parameter and remove 'accumulation-cutoff' variable. Call PROC on the elements of REST. * tests/store.scm ("map/accumulate-builds cutoff"): New test.
2021-09-15import: cabal: Treat identifier names correctly.Xinglu Chen
* guix/import/cabal.scm (is-id): Accept the location as an argument. Don’t check if the identifier name is a reserved keyword unless it is the first word on the line. (lex-word): Adjust accordingly. * tests/hackage ("hackage->guix-package tests flag executable"): Expect it to pass. Fixes: <https://issues.guix.gnu.org/25138> Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2021-09-14build-system: linux-module: Support source-directory.Liliana Marie Prikler
As with guile-build-system, the module to be build need not necessarily live at the root of the build tree. * guix/build/linux-module-build-system.scm (build, install): Add source-directory argument and append it to "M" variable when invoking make. * guix/build-system/linux-module.scm (linux-module-build): Add source-directory argument.
2021-09-14scripts: import: Increase column width for pretty-printer.Xinglu Chen
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>
2021-09-14download: Disarchive mirrors can be URL-returning procedures.Ludovic Courtès
As discussed at <https://issues.guix.gnu.org/47336#16>. * guix/build/download.scm (url-fetch)[disarchive-uris]: Accept MIRROR as a procedure. * guix/download.scm (%disarchive-mirrors): Add comment. This change can only be made once a 'guix perform-download' that understands procedures is widely deployed.
2021-09-14download: Remove obsolete workaround.Ludovic Courtès
* guix/download.scm (%content-addressed-mirrors): Use (guix base16) unconditionally.
2021-09-13build/go: Support cross compiling.Efraim Flashner
* guix/build-system/go.scm (go-target): New procedure. (go-build): Add goarch, goos keywords. Adjust bag depending if doing a native or cross compile. (go-cross-build): New procedure. * guix/build/go-build-system.scm (setup-go-environment): Accept goarch, goos keywords. Set go environment variables based on target architecture. * doc/guix.texi (Build Systems): Mention new go-build-system keywords.
2021-09-13packages: Add 'package-definition-location'.Ludovic Courtès
Suggested by Maxime Devos <maximedevos@telenet.be>. * guix/packages.scm (current-definition-location): New syntax parameter. (define-public*): New macro. (<package>)[definition-location]: New field. (package-definition-location): New procedure. * tests/packages.scm ("package-definition-location"): New test.
2021-09-13packages: Store 'location' field as a literal vector.Ludovic Courtès
This is slightly more efficient than storing an alist in terms of .go file size (< 1% smaller) and load time. * guix/packages.scm (current-location-vector): New macro. (sanitize-location): New procedure. (<package>)[location]: Change 'default' and add 'sanitize'. (package-location): New procedure.
2021-09-10import: elpa: Don't hardcode default branch to 'master'.Xinglu Chen
Otherwise, remotes without a branch named 'master' will cause an error when importing. * guix/import/elpa (git-repository->origin): Fallback to HEAD instead of the 'master' branch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-10swh: 'swh-download' reports revision lookup failures.Ludovic Courtès
* guix/swh.scm (swh-download): Log lookup failures.
2021-09-10swh: Adjust to new vault API.Ludovic Courtès
Previously the path to query the vault or request cooking of a directory was /api/1/vault/directory/ID. It is now deprecated in favor if /api/1/vault/flat/SWHID. This commit adjusts code accordingly and also prepares for 'git-bare' support. * guix/swh.scm (vault-url): New procedure. (query-vault, request-cooking): Make 'kind' optional, and add #:archive-type. Use 'vault-url'. (vault-fetch): Make 'kind' optional and add #:archive-type. Adjust 'query-vault' and 'request-cooking' calls accordingly.
2021-09-10lint: archival: Warn about non-origin sources.Ludovic Courtès
* guix/lint.scm (check-archival): Warn about non-origin sources.
2021-09-10base32: Provide an open-coded 'bit-field'.Ludovic Courtès
This improves the throughput of 'bytevector->base32-string' a bit. * guix/base32.scm (bit-field): New macro.
2021-09-10base16: Reduce GC pressure in bytevector->base16-string.Maxime Devos
This makes bytevector->base16-string two times faster. * guix/base16.scm (bytevector->base16-string): Use utf8->string and iteration instead of string-concatenate and named let. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-09swh: Adjust <vault-reply> to latest API changes.Ludovic Courtès
Fixes uses of 'swh-download' as reported at <https://lists.gnu.org/archive/html/guix-devel/2021-09/msg00115.html>. Reported by zimoun. * guix/swh.scm (<vault-reply>)[object-id, object-type]: Remove. These two fields are no longer provided in JSON replies. [swhid]: New field.
2021-09-08transformations: Git tags and 'git describe' style IDs are used as version.Marius Bakke
* guix/transformations.scm (commit->version-string): New procedure. Use git tags and 'git describe' style identifiers directly. (transform-package-source-commit): Adjust accordingly. * tests/transformations.scm ("options->transformation, with-commit, version transformation"): New test. * doc/guix.texi (Package Transformation Options): Mention the 'git describe' style.
2021-09-08git: 'resolve-reference' handles 'git describe'-style commit IDs.Marius Bakke
* guix/git.scm (resolve-reference): Rewrite tag-or-commit case to recognize 'git describe' style identifiers and resolve them as commits. * doc/guix.texi (origin Reference): Mention it.
2021-09-08guix: dune-build-system: Put dune into a reproducible release mode.pukkamustard
* guix/build/dune-build-system.scm (build,check): Replace the profile parameter with the appropriate release flags. * guix/build-system/dune.scm: Remove the profile parameter. * doc/guix.texi: Remove paragraph on profile parameter. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-09-07import: go: Fix import when import path redirects.Sarah Morgensen
* guix/import/go.scm (fetch-module-meta-data): If no meta entries have a matching import prefix, return the first entry instead of #f. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07import: elpa: Support NonGNU ELPA.Xinglu Chen
* guix/import/elpa.scm (elpa-url): Add NonGNU ELPA URL. * doc/guix.texi (Invoking guix import): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07system: Add hint for action typo.zimoun
* guix/scripts/system.scm (actions): New variable. (define-command): Add hint for action typo. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07import: Add hint for importer typo.zimoun
* guix/scripts/import.scm (define-command): Add hint. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-06swh: Add 'lookup-snapshot-branch'.Ludovic Courtès
* guix/swh.scm (<snapshot>)[id]: New field. (snapshot-url, lookup-snapshot-branch): New procedures.
2021-09-06swh: <revisions> accept null 'date' fields.Ludovic Courtès
* guix/swh.scm (maybe-null): New procedure. (<revision>)[date]: Use it.
2021-09-06swh: Export <snapshot> accessors.Ludovic Courtès
* guix/swh.scm: Export <snapshot> accessors.
2021-09-03weather: Don't look for exported package replacements twice.Christopher Baines
* guix/scripts/weather.scm (all-packages): Delete duplicates, so that exported replacements aren't included twice.
2021-09-03publish: Simplify 'narinfo-string'.Ludovic Courtès
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".
2021-09-01import: go: Improve error handling.zimoun
* 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>
2021-09-01import: utils: Skip not found packages.Sarah Morgensen
* guix/import/utils.scm (recursive-import): Skip packages when the package returned by 'repo->guix-package' is false. * tests/import-utils.scm: New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-01import: go: Return false for package not found.Sarah Morgensen
* guix/import/go.scm (go-module-recursive-import): Explicitly return false when packages are not found. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-08-31publish: Do not render the narinfo "System" field.Mathieu Othacehe
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.
2021-08-30build-system: chicken: Add 'egg-uri' procedure.Xinglu Chen
Once Chicken 6 gets released, we can just adjust the URL in the ‘egg-uri’ procedure, instead of having to change the URL for all the Chicken packages. Making things a little more future-proof. * guix/build-system/chicken.scm (egg-uri): New procedure. * guix/import/egg.scm (egg-source-url): Adjust accordingly. (egg->guix-package): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-08-29gnu: bootloader: Support multiple targets.Maxim Cournoyer
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.
2021-08-22ci: Add jobs history support.Mathieu Othacehe
* guix/ci.scm (history?, history-evaluation, history-checkouts, history-jobs, jobs-history): New procedures. (<history>): New record.
2021-08-21guix: opam: More flexibility in the importer.Alice BRENON
* 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>
2021-08-20guix: dune-build-system: Add a profile parameter.pukkamustard
* guix/build-system/dune.scm: Add a profile parameter. * guix/build/dune-build-system.scm (build): Use it. * doc/guix.texi: Document it. * gnu/packages/ocaml.scm: Remove profile being set from build flags. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-08-20gnu: minetest: move to minetest.scm.Leo Prikler
* gnu/packages/games.scm (minetest, minetest-data): Move from here... * gnu/packages/minetest.scm (minetest, minetest-data): ... to here. * guix/build-system/minetest.scm (default-minetest): Adjust accordingly.
2021-08-20guix: Add ContentDB importer.Maxime Devos
* 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>
2021-08-20import/utils: Recognise GPL-3.0-or-later and friends.Maxime Devos
* guix/import/utils.scm (spdx-string->license): Recognise GPL-N-only and GPL-N-or-later. Likewise for LGPL and AGPL. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-08-20build-system: Add 'minetest-mod-build-system'.Maxime Devos
* guix/build-system/minetest.scm: New module. * guix/build/minetest-build-system.scm: Likewise. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document 'minetest-mod-build-system'. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-08-15import: gem: Fix typo.Brice Waegeneire
* guix/scripts/import/gem.scm (%options): Fix typo.
2021-08-12records: Support field sanitizers.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor): Add #:sanitizers. [field-sanitizer]: New procedure. [wrap-field-value]: Honor F's sanitizer. (define-record-type*)[field-sanitizer]: New procedure. Pass #:sanitizer to 'make-syntactic-constructor'. * tests/records.scm ("define-record-type* & sanitize") ("define-record-type* & sanitize & thunked"): New tests.
2021-08-11transformations: 'with-patch' works on non-origin sources.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/49697>. Reported by Philippe Swartvagher <philippe.swartvagher@inria.fr>. * guix/transformations.scm (patched-source): New procedure. (transform-package-patches)[package-with-extra-patches]: Use it when (package-source p) is not an origin. * tests/transformations.scm ("options->transformation, with-commit + with-patch"): New test.
2021-08-10store: Add 'map/accumulate-builds' cutoff to address pathological cases.Ludovic Courtès
Fixes <https://bugs.gnu.org/49439>. Reported by Ricardo Wurmus <rekado@elephly.net>. Previously, a command such as: guix environment pigx-scrnaseq could lead to unbounded memory growth and could even fail to complete when some items are missing from the store. This was because 'map/accumulate-builds' callees would keep making .drv build requests that were turned into <unresolved> nodes; in this case, there are often many identical build requests. Stopping accumulation earlier allows us to unlock the situation by proceeding with the first few build requests instead of spinning until we've accumulated all the build requests. * guix/store.scm (map/accumulate-builds): Define 'accumulation-cutoff'. Use a loop when iterating over LST and maintain a counter of unresolved nodes met so far; return when the counter exceeds ACCUMULATION-CUTOFF.
2021-08-10scripts: publish: Remove leftover comment.Mathieu Othacehe
* guix/scripts/publish.scm (render-narinfo/cached): Remove leftover comment.
2021-08-10scripts: publish: Remove unused argument.Mathieu Othacehe
2021-08-09inferior: 'cached-channel-instance' no longer calls 'show-what-to-build'.Ludovic Courtès
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'.
2021-08-09self: Use default config variable values for derivations.Ludovic Courtès
The value of %localstatedir, %storedir, and %sysconfdir is known to have no impact on the compilation of the Guix modules. Thus, explicitly build those modules against a (guix config) module that uses all the default values. That way, a Guix installation that uses different config values can still benefit from substitutes. Reported by Ricardo Wurmus. * guix/self.scm (%default-config-variables): New variable. (make-config.scm): Add #:config-variables and honor it. (compiled-guix)[*core-modules*]: Pass #:config-variables to 'make-config.scm'.
2021-07-27download: Remove defunct GNOME mirrors.Leo Famulari
* guix/download.scm (%mirrors): Remove defunct GNOME mirrors, and try the canonical site first.