~ruther/guix-local

ref: d6bb6dffc0b4e6ec17cab3bf3ec41bdb47764b19 guix-local/guix d---------
d6a38187 — Ludovic Courtès 2 years ago
build-system/channel: Add support for additional channels.

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
96802f49 — Ludovic Courtès 2 years ago
ssh: ‘open-ssh-session’ displays the port number upon error.

* guix/ssh.scm (open-ssh-session): Show the port number in error message.

Change-Id: I18a3dc54223bb29782dcdd43d3252c720525c31d
a499d177 — Maxim Cournoyer 2 years ago
build: qt-utils: Use QML_IMPORT_PATH for Qt 6.

* 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
c9cd16c6 — Christopher Baines 2 years ago
store: database: Rename a couple of procedures.

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
c6cc9aeb — Christopher Baines 2 years ago
store: database: Refactor sqlite-register.

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
511d68c7 — Christopher Baines 2 years ago
store: database: Stop finalizing prepared statements.

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
cdd4a0c3 — Christopher Baines 2 years ago
store: database: Inline SQL to where it's used.

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
b914fb9b — Christopher Baines 2 years ago
store: database: Remove with-statement and associated code.

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
22fa92cf — Christopher Baines 2 years ago
store: database: Remove call-with-savepoint and associated code.

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
ecbab97f — Christopher Baines 2 years ago
scripts: substitute: Replace some leave calls with raise.

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
dcf0cca8 — Christopher Baines 2 years ago
scripts: substitute: Allow not using with-timeout in download-nar.

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
d9276a46 — Christopher Baines 2 years ago
scripts: substitute: Remove side effect warning from network-error?.

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
ac19e038 — Christopher Baines 2 years ago
Switch order of the default substitute servers.

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>
7bc1f7be — Ludovic Courtès 2 years ago
ui: Autoload some more.

* guix/ui.scm: Autoload a number of modules.

Change-Id: I22d4f719dae73594499522ce6dc8464948f564ec
72ca1a33 — Liliana Marie Prikler 2 years ago
Merge branch 'emacs-team'
a915a57d — Liliana Marie Prikler 2 years ago
Merge branch 'gnome-team'
ddc9d66f — Ludovic Courtès 2 years ago
substitute: Retry nar download upon networking error.

This allows ‘guix substitute’ to gracefully handle errors like:

  TLS error in procedure 'write_to_session_record_port': Error in the push function

instead of exiting (“`guix substitute' died unexpectedly”).

* guix/scripts/substitute.scm (download-nar)[try-fetch]: Catch
‘network-error?’ too.

Reported-by: Ada Stevenson <adanskana@gmail.com>
Change-Id: I91b92183b0165832645ee37d50c13445f9322525
80a135d6 — Ludovic Courtès 2 years ago
channels: Autoload several modules.

* guix/channels.scm: Autoload several Git-related modules.

Change-Id: I23e46eabdbfa9db340e26006419b4b87bb446853
4c70f524 — Liliana Marie Prikler 2 years ago
Merge branch 'master' into emacs-team
d282a31f — Richard Sent 2 years ago
reconfigure: Skip starting new shepherd services with auto-start? #f

Fixes <https://bugs.gnu.org/68093>.

* guix/scripts/system/reconfigure.scm (upgrade-shepherd-services): Only add
new shepherd services with auto-start? #t to to-start list.

Change-Id: I268b921336fb1195ed76746eb6178889dbc258b4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Next