aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* import: beautify-description: Fix ". ." case.Nicolas Graves3 days
| | | | | | | | * guix/import/utils.scm (beautify-description): Ensure the matched string pre is long enough not to fail. Change-Id: I3172d9a41350b98222cd9ab758487485f26650b3 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* pack: ‘-R’ (once) does not include fakechroot fallback.Ludovic Courtès4 days
| | | | | | | | | | | | Previously, ‘guix pack -R’ would build a wrapper containing both the “userns” and “fakechroot” engines, instead of providing nothing but the “userns” engine as the manual says. This patch fixes it. * guix/scripts/pack.scm (wrapped-package): Add #:fakechroot? [build]: When FAKECHROOT? is false, ‘elf-loader-compile-flags’ always returns '(). Change-Id: Ic75cc8c36bf0a3881f299b274d78bd9fc2d4e2bb
* publish: Catch all compression errors.Ludovic Courtès5 days
| | | | | | | | | * guix/scripts/publish.scm (swallow-zlib-error): Remove. (exception-with-kind-and-args?): New variable. (swallow-compression-error): New macro. (http-write): Use it instead of ‘swallow-zlib-error’. Change-Id: I835a1eddd9686741d48365ed37f82b1e1d6f6bdd
* guix: Add xtensa-ath9k-elf platform.Jean-Pierre De Jesus DIAZ2024-04-17
| | | | | | | | | * Makefile.am (MODULES): Add guix/platforms/xtensa.scm. * guix/platforms/xtensa.scm (xtensa-ath9k-elf): New variable. * doc/guix.texi: Add xtensa-ath9k-elf documentation. Change-Id: I51eef245142ed58613340c16d4bf7266e6bf6adb Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: github: Recognize more URLs.Giacomo Leidi2024-04-17
| | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/66396>. This allows more packages to be refreshed, such as launchmon, love, retux, preseq, edgar, antlr3, and runc. * guix/import/github.scm (updated-github-url)[updated-url]: Add additional heuristics to Github url updater. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Change-Id: I6409b3f61872a954f53480afd63b307d16d0b9c0
* Autoload (gcrypt hash).Ludovic Courtès2024-04-15
| | | | | | | * guix/derivations.scm: Autoload (guix utils) and (gcrypt hash). * guix/git.scm, guix/store.scm: Autoload (gcrypt hash). Change-Id: I6145231d41c61f2d8c36e28f29e91074910bdd15
* Autoload (guix build syscalls).Ludovic Courtès2024-04-15
| | | | | | | | * guix/discovery.scm, guix/git.scm, guix/nar.scm, guix/scripts.scm, guix/scripts/build.scm: Autoload (guix build syscalls). * guix/packages.scm: Autoload (guix build utils). Change-Id: Ia7703b5f46e55fbfadff63b13c35bfe097ce2220
* ui: Delay use of (guix build syscalls).Ludovic Courtès2024-04-15
| | | | | | | | | | | This ensures (guix build syscalls) is loaded only when needed. * guix/ui.scm (%text-width): Unconditionally alias ‘*line-width*’. Remove initialization. <top level>: Remove code for Guile < 2.2.7. (package->recutils): Change default #:width to (terminal-columns). Change-Id: I990a1b5b0f20a6243e47e314d1d3d4f8298b7151
* guix: Delay loading of (gnutls).Ludovic Courtès2024-04-15
| | | | | | | | | | | | | | (web …) modules pull in (gnutls) indirectly. Arrange to load them lazily, thereby reducing I/O and allocations when GnuTLS is not needed such as when running ‘guix describe’ or ‘guix shell’ on a cache hit. * guix/download.scm: Autoload (web uri). * guix/scripts/describe.scm: Likewise. * guix/store.scm: Likewise. (%default-substitute-urls): Remove ‘resolve-interface’ call and use https URLs unconditionally. Change-Id: Ide470c556a14866e8740966d25821df487a79859
* utils: Don’t re-export ‘call-with-temporary-output-file’.Ludovic Courtès2024-04-15
| | | | | | | | | | | | * guix/utils.scm: Remove re-export of ‘call-with-temporary-output-file’. Autoload a number of modules. * guix/download.scm, guix/import/hackage.scm, guix/import/hexpm.scm, guix/import/opam.scm, guix/import/pypi.scm, tests/cpio.scm, tests/egg.scm, tests/opam.scm, tests/publish.scm, tests/store-database.scm, tests/utils.scm: Adjust imports accordingly. Change-Id: I3f5e94631397996a30be2ea4ff8b50a3371e8ee7
* guix system: Autoload some more.Ludovic Courtès2024-04-15
| | | | | | * guix/scripts/system.scm: Autoload more modules. Change-Id: I665857109bbfd1e3755135daacc01affcb3eb2eb
* channels: Autoload (git …) modules.Ludovic Courtès2024-04-15
| | | | | | | | | | | | | | | | | | | | Autoloading Guile-Git is important in cases where (guix channels) is used for little more than the <channel> definition. This is the case, for example, of ‘guix describe’ or ‘guix shell’. This reduces from 177 to 121 the number of .go files loaded when running: ./pre-inst-env strace -e openat -o /tmp/log.strace \ guix describe -p /var/guix/profiles/per-user/$USER/current-guix grep 'openat.*\.go.* = [0-9]' < /tmp/log.strace |wc -l Likewise, it reduces the max RSS (as measured by ‘time -f %M guix describe -p …’) from 54 to 37 MiB. * guix/channels.scm: Autoload (git …) modules. Change-Id: Ia58a99c865bf0f6fe461a1e71390d075e760f8d6
* git: Add ‘tag->commit’ and use it in (guix channels).Ludovic Courtès2024-04-15
| | | | | | | | | * guix/git.scm (tag->commit): New procedure, taken from… (resolve-reference): … here. Use it in the ‘tag’ case. * guix/channels.scm (resolve-channel-news-entry-tag): Use ‘tag->commit’ instead of custom code. Change-Id: I46ea387345dc1b695ce0702991a52d0cde29e2f0
* channels: Move ‘commit-short-id’ to (guix git).Ludovic Courtès2024-04-15
| | | | | | | * guix/channels.scm (commit-short-id): Move to… * guix/git.scm (commit-short-id): … here. Change-Id: If4b34b1d82b1aa5068d157f26e57e8aecc967061
* git: Add ‘repository-info’ and use it in (guix channels).Ludovic Courtès2024-04-15
| | | | | | | | * guix/git.scm (repository-info): New procedure. * guix/channels.scm (repository->guix-channel): Use it instead of local code. Change-Id: I74c758c73a22e16031571ca4271cc9cab0492f6e
* channels: Use SRFI-71 instead of SRFI-11.Ludovic Courtès2024-04-15
| | | | | | * guix/channels.scm (latest-channel-instance): Use SRFI-71. Change-Id: I73531c98b3034e228006ed91518cc7bfedc784fd
* gexp: Add #:guile parameter to ‘gexp->file’ and ‘scheme-file’.Ludovic Courtès2024-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | This brings ‘gexp->file’ in line with its documentation and mirrors what’s done for ‘gexp->script’ and ‘program-file’. Fixes <https://issues.guix.gnu.org/69401>. * guix/gexp.scm (gexp->file): Add #:guile, as was already documented. (<scheme-file>)[guile]: New field. (scheme-file): Add #:guile. (scheme-file-compiler): Honor ‘guile’ field. * tests/gexp.scm ("gexp->file") ("gexp->file + file-append", "gexp->file + #:splice?") ("gexp->file, cross-compilation") ("gexp->file, cross-compilation with default target") Add #:guile to ‘gexp->file’ calls. ("gexp-modules deletes duplicates") ("gexp->derivation & with-imported-module & computed module") ("gexp->derivation & with-extensions", "scheme-file"): Likewise for ‘scheme-file’ calls. Change-Id: I47536063d5e411e561ec321e535267e92dd06044 Reported-by: Efraim Flashner <efraim@flashner.co.il> Change-Id: I58d653c7fbe65c665bafcbd332ac9b264ddeab64
* reconfigure: /run/current-system points to generation.Ludovic Courtès2024-04-08
| | | | | | | | | | * guix/scripts/system/reconfigure.scm (switch-system-program): Set ‘GUIX_NEW_SYSTEM’ to GENERATION rather than OS, for consistency with what ‘boot-system’ does. * gnu/tests/reconfigure.scm (run-switch-to-system-test) ["script activated the new generation"]: Adjust accordingly. Change-Id: I57b693606a41b8c952df32bbdc2b9120c6dbfd6a
* gnu: open-ssh-session: Don’t require public key.Ian Eure2024-04-07
| | | | | | | | | | | Public keys aren’t required for client connections, and this binding is unused. The behavior of assuming a ".pub"-suffixed file exists in the same directory as the secret key is undocumented and surprising. * guix/scripts/offload.scm (open-ssh-session): Delete `public' binding. Signed-off-by: Christopher Baines <mail@cbaines.net> Change-Id: I9b532be2abe68dae0323e4ef6e1ceab1e5603359
* guix: nar: Update path-id to valid-path-id.Christopher Baines2024-04-07
| | | | | | | | To match the change in (guix store database). * guix/nar.scm (finalize-store-file): Update path-id to valid-path-id. Change-Id: I69255c7acc1ea4e4855a4621bfcec54f595dd24d
* store: database: Use correct function name in assertion.Wojtek Kosior2024-04-07
| | | | | | | | * guix/store/database.scm (register-valid-path): Replace "sqlite-register" with "register-valid-path" as argument to `assert-integer'. Change-Id: Id93687e90d0a806d715006ca0b2498a1d10cfba6 Signed-off-by: Christopher Baines <mail@cbaines.net>
* scripts: system: Rename `sqlite-register'.Wojtek Kosior2024-04-07
| | | | | | | | | * guix/scripts/system.scm (define-module): #:autoload `register-valid-path' instead of `sqlite-register'. (copy-item): Call it with the new name. Change-Id: I24f71f822a5f400a47adee43f61184a4fbcb9741 Signed-off-by: Christopher Baines <mail@cbaines.net>
* build: qt-utils: Use QML_IMPORT_PATH2 for Qt 5 (fixup).Zheng Junjie2024-04-06
| | | | | | | | | | | This follows a499d1772df63784e7df1767e58ca1dd5a4b1124 ("build: qt-utils: Use QML_IMPORT_PATH for Qt 6."). * guix/build/qt-utils.scm (variables-for-wrapping): Use QML_IMPORT_PATH2 when the Qt major version is <= 6, QML_IMPORT_PATH otherwise. Change-Id: I2dd1d426aef117105708cc4004078deaa28c15cd Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* build-system/channel: Add support for additional channels.Ludovic Courtès2024-04-05
| | | | | | | | | | | | | Until now, ‘channel-build-system’ would assume a single channel, the ‘guix’ channel. This change lets users specify additional channels using the #:channels parameter. * guix/build-system/channel.scm (build-channels): Add #:channels and honor it. (channel-build-system): In ‘lower’, add #:channels and honor it. * doc/guix.texi (Build Systems): Document it. Change-Id: I36c1d19cbeee02a4d1144de089b78df0390774a0
* ssh: ‘open-ssh-session’ displays the port number upon error.Ludovic Courtès2024-04-04
| | | | | | * guix/ssh.scm (open-ssh-session): Show the port number in error message. Change-Id: I18a3dc54223bb29782dcdd43d3252c720525c31d
* build: qt-utils: Use QML_IMPORT_PATH for Qt 6.Maxim Cournoyer2024-04-03
| | | | | | | * guix/build/qt-utils.scm (variables-for-wrapping): Use QML_IMPORT_PATH instead of QML2_IMPORT_PATH when the major version is greater or equal to 6. Change-Id: I3480b540d3c0caafd3cc3d6574442dc97f540953
* store: database: Rename a couple of procedures.Christopher Baines2024-04-03
| | | | | | | | | | These names should be more descriptive. * guix/store/database.scm (path-id): Rename to select-valid-path-id. (sqlite-register): Rename to register-valid-path. (register-items): Update accordingly. Change-Id: I6d4a14d4cde9d71ab34d6ffdbfbfde51b2c0e1db
* store: database: Refactor sqlite-register.Christopher Baines2024-04-03
| | | | | | | | | | The update-or-insert procedure name was unhelpfully generic, and these changes should improve the code readability. * guix/store/database.scm (update-or-insert): Remove procedure and inline functionality in to sqlite-register. Change-Id: Ifab0cdb7972d095460cc1f79b8b2f0e9b958059c
* store: database: Stop finalizing prepared statements.Christopher Baines2024-04-03
| | | | | | | | | | | | | | | | Especially since we're asking for these to be cached. Management of prepared statements isn't trivial, since you don't want to keep them forever as this can lead to poor query performance, but I don't think that finalizing them immediately is the right solution. Change-Id: I61706b4d09d771835bb8f074b8f6a6ee871f5e2d * guix/store/database.scm (sqlite-step-and-reset): New procedure. (last-insert-row, path-id, update-or-insert, add-references): Don't finalize prepared statements. Change-Id: I2a2c6deb43935d67df9e43000a5105343d72b3e6
* store: database: Inline SQL to where it's used.Christopher Baines2024-04-03
| | | | | | | | | | | This makes the code easier to read, as you don't have to keep jumping between the two places. * guix/store/database.scm (path-id-sql, update-sql, insert-sql, add-reference-sql): Remove variables. (path-id, update-or-insert, add-references): Include SQL. Change-Id: I53b4ab973be8d0cd10a0f35ba25972f1c9680353
* store: database: Remove with-statement and associated code.Christopher Baines2024-04-03
| | | | | | | | | | | | | | | | | | I think using dynamic-wind to finalize all statements is the wrong approach. Firstly it would be good to allow reseting statements rather than finalizing them. Then for the problem of handling errors, the approach I've settled on in the build coordinator is to close the database connection, since that'll trigger guile-sqlite3 to finalize all the cached statements. This reverts commit 5d6e2255286e591def122ec2f4a3cbda497fea21. * .dir-locals.el (scheme-mode): Remove with-statement. * guix/store/database.scm (call-with-statement): Remove procedure. (with-statement): Remove syntax rule. (call-with-transaction, last-insert-row-id, path-id, update-or-insert, add-references): Don't use with-statement. Change-Id: I2fd976b3f12ec8105cc56350933a953cf53647e8
* store: database: Remove call-with-savepoint and associated code.Christopher Baines2024-04-03
| | | | | | | | | | | | | | | | | | While care does need to be taken with making updates or inserts to the ValidPaths table, I think that trying to ensure this within update-or-insert is the wrong approach. Instead, when working with the store database, only one connection should be used to make changes to the database and those changes should happen in transactions that ideally begin immediately. This reverts commit 37545de4a3bf59611c184b31506fe9a16abe4c8b. * .dir-locals.el (scheme-mode): Remove entries for call-with-savepoint and call-with-retrying-savepoint. * guix/store/database.scm (call-with-savepoint, call-with-retrying-savepoint): Remove procedures. (update-or-insert): Remove use of call-with-savepoint. Change-Id: I2f986e8623d8235a90c40d5f219c1292c1ab157b
* scripts: substitute: Replace some leave calls with raise.Christopher Baines2024-04-03
| | | | | | | | | | | | | These calls happen inside of with-error-handling, so the effect should be the same, but this opens up the possibility of using this code in a program that doesn't want to exit when one of these error conditions is met. Change-Id: I15d963615d85d419559fa0f4333fa4dc1dfbfd3b * guix/scripts/substitute.scm (download-nar, process-substitution): Use raise formatted-message rather than leave. Change-Id: Idd0880206b69e3903e19e0536b87d65a52c200d5
* scripts: substitute: Allow not using with-timeout in download-nar.Christopher Baines2024-04-03
| | | | | | | | | | | I don't think the approach of using SIGALARM here for the timeout will work well in all cases (e.g. when using Guile Fibers), so make it possible to avoid this. * guix/scripts/substitute.scm (download-nar): Pass the fetch timeout in as an option. Change-Id: I8cbe6cdfa10cdaa7d41974cbea56a95f5efecfe6
* scripts: substitute: Remove side effect warning from network-error?.Christopher Baines2024-04-03
| | | | | | | | | | | | | Instead, display the warning from process-substitution and process-substitution/fallback in the relevant places. I'm looking at this because I want to make the substitute code less tied to the script and usable in the Guile guix-daemon. * guix/scripts/substitute.scm (network-error?): Move warning to… (process-substitution/fallback, process-substitution): here. Change-Id: I082b482c0e6ec7e02a8d437ba22dcefca5c40787
* Switch order of the default substitute servers.Christopher Baines2024-04-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | The aim here is to improve the user experience. There's anecdotal evidence that the network performance for bordeaux is better compared to ci at least for some users, and I don't know of any issues with rate limiting or access restriction for bordeaux compared to ci. It also has IPv6 support. Additionally, bordeaux generally had more substitutes than ci, particularly for aarch64-linux and armhf-linux. This change will offer a very slight speedup for those substitutes that only bordeaux has. Bordeaux has been a default substitute server for nearly 3 years now and I think this change is overdue. I'm also hopeful that we'll be able to build on the testing regarding mirrors for bordeaux, and that'll allow potentially improving the hosting setup (through providing more redundancy) and further improving substitute fetching for users who currently have issues with substitute access. * config-daemon.ac: Switch substitute urls order. * doc/guix.texi: Ditto. * etc/guix-install.sh: Ditto. * gnu/installer/newt/network.scm (wait-service-online): Ditto. * guix/store.scm (%default-substitute-urls): Ditto. Change-Id: I4f6d93ae1fc8b03d80b47b18b5749a51f1fde17b Signed-off-by: Christopher Baines <mail@cbaines.net>
* ui: Autoload some more.Ludovic Courtès2024-03-31
| | | | | | * guix/ui.scm: Autoload a number of modules. Change-Id: I22d4f719dae73594499522ce6dc8464948f564ec
* Merge branch 'emacs-team'Liliana Marie Prikler2024-03-30
|\
| * Merge branch 'master' into emacs-teamLiliana Marie Prikler2024-03-27
| |\
| * \ Merge branch 'master' into emacs-teamLiliana Marie Prikler2024-03-09
| |\ \
| * | | guix: emacs-utils: Make emacs-compile-directory forwards-compatible.Liliana Marie Prikler2024-03-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer (development) builds of Emacs 30 mark a number of functions related to native compilation as ‘internal’. Since we rely on such functions and there does not appear to be a high-level replacement at the moment, let's work around this case. * guix/build/emacs-utils.scm (emacs-compile-directory): Require comp early and check if ‘comp-write-bytecode-file’ is available. Fixes: Upstream renamed comp-write-bytecode-file <https://bugs.gnu.org/69201>
| * | | Merge branch 'master' into emacs-teamLiliana Marie Prikler2024-03-02
| |\ \ \
| * | | | build-system: emacs: Compute relative file names.Liliana Marie Prikler2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the previous commit, relative file names are expanded relative to ELN_DIR -- more or less. To make use of this in emacs-build-system, we must also pass relative file names. * guix/build/emacs-build-system.scm (emacs-compile-directory): Compute the relative file names of the files to compile. Change-Id: I8983f80fb0fe1573e46748222403ba8873f1599f
| * | | | Merge branch 'master' into emacs-teamLiliana Marie Prikler2024-01-21
| |\ \ \ \
| * | | | | guix: emacs-build-system: Process package source in build tree.Liliana Marie Prikler2023-11-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build/emacs-build-system.scm (ensure-package-description) (patch-el-files, make-autoloads): Operate on the current working directory, either implicitly, or through (getcwd). (enable-autoloads-compilation): Deleted variable, logic moved into make-autoloads. (%standard-phases): Adjust accordingly.
* | | | | | Merge branch 'gnome-team'Liliana Marie Prikler2024-03-30
|\ \ \ \ \ \
| * \ \ \ \ \ Merge remote-tracking branch 'savannah/master' into gnome-teamChristopher Baines2024-03-20
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iec8e15b79c6fde516294c2bfcaf8ee3575b1f745
| * \ \ \ \ \ \ Merge remote-tracking branch 'savannah/master' into gnome-teamChristopher Baines2024-03-16
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I775274c2693536e2efa36c9abca4c54c5c458e26
| * \ \ \ \ \ \ \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-03-10
| |\ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ Merge branch 'master' into gnome-teamLiliana Marie Prikler2024-03-02
| |\ \ \ \ \ \ \ \ \ | | | |_|_|_|_|/ / / | | |/| | | | | | |