summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* substitutes: Add #:keep-alive? keyword argument to download-nar.issue-70494Christopher Baines2024-04-21
| | | | | | | | | | To be consistent with other procedures that make network requests. * guix/substitutes.scm (download-nar): Add #:keep-alive? option. * guix/scripts/substitute.scm (process-substitution/fallback, process-substitution): Call download-nar with #:keep-alive? #t. Change-Id: I83b27d0c3a0916d058fbbbeb7aa77dbb8a742768
* substitutes: Move download-nar from substitutes script to here.Christopher Baines2024-04-21
| | | | | | | | | | | | | From the substitutes script. This makes it possible to use download-nar in the the Guile guix-daemon. * guix/scripts/substitute.scm (%fetch-timeout): Move down to where it's now used. (%random-state, with-timeout, catch-system-error, http-response-error?, download-nar): Move to… * guix/substitutes.scm: …here. Change-Id: I8c09bf4b33cb5c6d042057d4d9adeb36c24c11dc
* scripts: substitute: Don't enforce cached connections in download-nar.Christopher Baines2024-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is in preparation for moving the download-nar procedure out of the script. As well as calling open-connection-for-uri/cached, with-cached-connection adds a single retry to the expression passed in, in the case of a exception that suggests there's a problem with the cached connection. This is important because download-nar/http-fetch doesn't check if a connection used for multiple requests should be closed (because the servers set the relevant response header). To make download-nar more generic, have it take open-connection-for-uri as a keyword argument, and replicate the with-cached-connection single retry by closing the port in the case of a network error, and recalling open-connection-for-uri. This will work fine in the case when connection caching is not in use, as well as when open-connection-for-uri/cached is used, since open-connection-for-uri/cached will open a new connection if the cached port is closed. * guix/scripts/substitute.scm (kind-and-args-exception?): Remove and inline where necessary. (call-with-cached-connection): Remove procedure. (with-cached-connection): Remove syntax rule. (http-response-error?): New procedure. (download-nar): Add new #:open-connection-for-uri keyword argument and use it, also replace with-cached-connection. (process-substitution/fallback,process-substitution): Pass #:open-connection-for-uri open-connection-for-uri/cached to download-nar. Change-Id: I277b1d8dfef79aa1711755b10b9944da7c19157c
* scripts: substitute: Simplify with-timeout usage.Christopher Baines2024-04-21
| | | | | | | | | | To reduce the codepaths in download-nar. * guix/scripts/substitute.scm (with-timeout): Accept a #f duration and don't set a timeout. (download-nar): Remove the if for fetch-timeout. Change-Id: I4e944a425a8612e96659dd84dd0e315012f080ab
* http-client: Include EPIPE in network-error?.Christopher Baines2024-04-21
| | | | | | | | | The substitute script checks for EPIPE errors, so this allows using network-error?. * guix/http-client.scm (network-error?): Include EPIPE. Change-Id: I96d76d77997ed21a38bf9c41479fea67ab01e084
* guix: http-client: Add network-error?.Christopher Baines2024-04-21
| | | | | | | | | | | | Plus remove http-get-error? from network-error? as a http-get-error? doesn't indicate a network error. * guix/scripts/substitute.scm (system-error?, network-error?): Move from here. (process-substitution/fallback, process-substitution): Use http-get-error? with network-error?. * guix/http-client.scm: To here, and also don't use http-get-error?. Change-Id: I61ee9e5fbf90ebb76a34aa8b9ec8f5d74f8a3c54
* store: database: Export transaction helpers.Christopher Baines2024-04-21
| | | | | | | * guix/store/database.scm (call-with-transaction, call-with-retrying-transaction): Export procedures. Change-Id: I712f0056f263989769af7cb6f9e395a43f6e36b2
* store: database: Log when aborting transactions.Christopher Baines2024-04-21
| | | | | | | | Otherwise this has the effect of masking the backtrace/exception. * guix/store/database.scm (call-with-transaction): Log when aborting. Change-Id: Iee31905c4688dc62ef37a85b0208fd324ee67d70
* store: Export operation-id.Christopher Baines2024-04-21
| | | | | | * guix/store.scm (operation-id): Export. Change-Id: I03c83973c9056795fef935016df7321a69c1116d
* scripts: perform-download: Support configuring the %store-prefix.Christopher Baines2024-04-21
| | | | | | | | * guix/scripts/perform-download.scm (guix-perform-download): Use GUIX_STORE_DIRECTORY from the environment if it's set, as this allows using the perform-download script with a non-default store directory. Change-Id: Id96bb901a106e1b13be5b21b3ce436c680c616a2
* syscalls: Add unshare.Christopher Baines2024-04-21
| | | | | | * guix/build/syscalls.scm (unshare): New procedure. Change-Id: I7caad207117b17b349290e680277f650c51d2f3b
* scripts: substitute: Extract script specific output from download-nar.Christopher Baines2024-04-21
| | | | | | | | | | | | | | | | As this moves download-nar in a direction where it could be used outside the substitute script. * guix/scripts/substitute.scm (download-nar): Return expected and actual hashes and move status-port output to guix-substitute. (process-substitution/fallback): Remove port argument, and move output to port to guix-substitute. (process-substitution): Return hashes from download-nar or process-substitution/fallback, plus the narinfo. (guix-substitute): Don't pass the reply-port in to process-substitution and implement the messages to the reply-port here. Change-Id: Icbddb9a47620b3520cdd2e8095f37a99824c1ce0
* scripts: substitute: Untangle selecting fast vs small compressions.Christopher Baines2024-04-21
| | | | | | | | | | | | | | | | | | | Pulling the logic up to the script makes this code more portable and not reliant on setting a global variable. * guix/scripts/substitute.scm (%prefer-fast-decompression?): Rename to… (%default-prefer-fast-decompression?): this. (call-with-cpu-usage-monitoring): Use multiple values to return the results from the thunk as well as the cpu usage. (display-narinfo-data): Update accordingly. (download-nar): Add prefer-fast-decompression? as a keyword argument, remove code to set! it and monitor the cpu-usage. (process-substitution, process-substitution/fallback): Accept and pass through prefer-fast-decompression? to download-nar. (guix-substitute): Move the cpu usage monitoring and prefer fast decompression switching logic here. Change-Id: I4e80b457b55bcda8c0ff4ee224dd94a55e1b24fb
* store: database: Add procedures for querying valid paths.Christopher Baines2024-04-21
| | | | | | | * guix/store/database.scm (valid-path, all-valid-paths, valid-path-from-hash-part, valid-path-references): New procedures. Change-Id: Ib08837ee20f5a5a24a8089e611b5d67b003b62cc
* store: Add validate-store-name.Christopher Baines2024-04-21
| | | | | | * guix/store.scm (validate-store-name): New procedure. Change-Id: I507d070d1cfdbd433d93830ee2937b1a1dee315a
* store: Add text-output-path and text-output-path-from-hash.Christopher Baines2024-04-21
| | | | | | | * guix/store.scm (text-output-path, text-output-path-from-hash): New procedures. Change-Id: I38c3aaa0b304dd4f97a222a1065eb1b7f55bbfad
* serialization: Export read-byte-string.Christopher Baines2024-04-21
| | | | | | * guix/serialization.scm (read-byte-string): Export procedure. Change-Id: Ifcbf06a7b99c938dba66e25ef5adbd5feea8c85c
* store: Export protocol related constants.Christopher Baines2024-04-21
| | | | | | | | | | * guix/store.scm (%protocol-version, %worker-magic-1, %worker-magic-2): Export variables. (protocol-major, protocol-minor, protocol-version): Export procedures. (%stderr-next, %stderr-read, %stderr-write, %stderr-last, %stderr-error): Move from process-stderr and export variables. Change-Id: Id0b1b5e6feeac5260875558f33aa5d923d5e0903
* store: build-derivations: New module.Caleb Ristvedt2024-04-21
| | | | | | | | | | | | | * guix/store/build-derivations.scm (get-output-specs, builtin-download, add-to-trie, make-search-trie, remove-from-trie!, scanning-wrapper-port, scan-for-references, ensure-input-outputs-exist, build-derivation): New procedures. (builtins): New variable. (<trie-node>): New record types. * Makefile.am (STORE_MODULES): Add it. Co-authored-by: Christopher Baines <mail@cbaines.net> Change-Id: I904b75e3c58c5fb996c0c9d1ca19b2cb2beb90b6
* guix: store: environment: New module.Caleb Ristvedt2024-04-21
| | | | | | | | | | | | * guix/store/environment.scm: New file. * guix/store.scm: Export compressed-hash. * guix/store/database.scm (output-path-id-sql, outputs-exist?, references-sql, file-closure, all-input-output-paths, all-transitive-inputs): New variables. (outputs-exist?, file-closure, all-transitive-inputs): Export procedures. * Makefile.am (STORE_MODULES): Add guix/store/environment.scm. Co-authored-by: Christopher Baines <mail@cbaines.net> Change-Id: I71ac38fa8596a0c05b34880ca60e8a27ef3892d8
* syscalls: Add missing pieces for derivation build environment.Caleb Ristvedt2024-04-21
| | | | | | | | | | | | | * guix/build/syscalls.scm (ADDR_NO_RANDOMIZE, UNAME26, PER_LINUX32): New variables. Flags needed for improving determinism / impersonating a 32-bit machine on a 64-bit machine. (initialize-loopback, setdomainname, personality): New procedures. (octal-escaped): New procedure. (mount-points): Use octal-escaped to properly handle unusual characters in mount point filenames. Signed-off-by: Christopher Baines <mail@cbaines.net> Change-Id: I2f2aa38fe8f97f2565461d20331b95040a2d7539
* gnu: linux-container: Make it more suitable for derivation-building.Caleb Ristvedt2024-04-21
| | | | | | | | | | | | | | * gnu/build/linux-container.scm (mount-file-systems): First remount all filesystems in the current mount namespace as private (by mounting / with MS_PRIVATE and MS_REC), so that the set of mounts cannot increase except from within the container. Also, the tmpfs mounted over the chroot directory now inherits the chroot directory's permissions (p11-kit, for example, has a test that assumes that the root directory is not writable for the current user, and tmpfs is by default 1777 when created). * guix/build/syscalls.scm (MS_PRIVATE, MS_REC): new variables. Signed-off-by: Christopher Baines <mail@cbaines.net> Change-Id: Ie26e3ac4a12bbf9087180c56ab775a0f75c40100
* store: database: Register derivation outputs.Caleb Ristvedt2024-04-21
| | | | | | | | | * guix/store/database.scm (register-derivation-outputs, registered-derivation-outputs): New procedures (register-valid-path): Call register-derivation-outputs for derivations. Co-authored-by: Christopher Baines <mail@cbaines.net> Change-Id: Id958709f36f24ee1c9c375807e8146a9d1cc4259
* news: Add 'de' translation.base-for-issue-70494base-for-issue-70493base-for-issue-70482base-for-issue-70446Florian Pelz2024-04-20
| | | | | | * etc/news.scm: Add German translation for nss-certs entry. Change-Id: I82343fdc81c370a2a11e0c7bce55e5914187861f
* gnu: Add tomlplusplus.Daniel Ziltener2024-04-20
| | | | | | | | * gnu/packages/cpp.scm (tomlplusplus): New variable. Change-Id: I4b5c79e9fdcfdaa80c0c24bb89bf5b783f1a581f Modified-by: Hilton Chain <hako@ultrarare.space> Signed-off-by: Hilton Chain <hako@ultrarare.space>
* gnu: Add wl-mirror.Julian Flake2024-04-20
| | | | | | | | * gnu/packages/wm.scm (wl-mirror): New variable. Change-Id: Ib87959a40800a2a8219877611b8cfd301960c608 Modified-by: Hilton Chain <hako@ultrarare.space> Signed-off-by: Hilton Chain <hako@ultrarare.space>
* gnu: Add wlr-protocols.Julian Flake2024-04-20
| | | | | | | | * gnu/packages/freedesktop.scm (wlr-protocols): New variable. Change-Id: Ia8daffd7219b7bd573ae54e7cfc5ec6b6a5f4052 Modified-by: Hilton Chain <hako@ultrarare.space> Signed-off-by: Hilton Chain <hako@ultrarare.space>
* doc: Fix cross-references.Matthew Trzcinski2024-04-19
| | | | | | | | | * doc/guix.texi (Setting Up the Daemon): Use @xref to start sentence. (Build Systems): Capitalize "python" and start parenthesized reference with @pxref. Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de> Change-Id: I3504d8668d137029f5f76f025108b7023d9b4182
* gnu: mu: Update to 1.12.4.John Kehayias2024-04-19
| | | | | | * gnu/packages/mail.scm (mu): Update to 1.12.4. Change-Id: I6381136409b2c7dde2f85c0795425dc0272cbfee
* gnu: Add stb-image-resize.aurtzy2024-04-19
| | | | | | | * gnu/packages/stb.scm (stb-image-resize): New variable. Change-Id: Ia9d654277b26f1bce0f32d064a5d2ae6c434b677 Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
* Revert "maint: Generate 'doc/version.texi' reproducibly."Janneke Nieuwenhuizen2024-04-19
| | | | | | | | Using `build-aux/mdate-from-git.scm' makes this no longer necessary. This reverts commit e73ea7bd64f64709c71f89dfb111cf3e8ada3771. Change-Id: I29d1e36b13d255e5a65b7348e7ae4f2b2c24a518
* Revert "maint: Generate 'doc/version-LANG.texi' reproducibly."Janneke Nieuwenhuizen2024-04-19
| | | | | | | | Using `build-aux/mdate-from-git.scm' makes this no longer necessary. This reverts commit 0e4ead187d83a958ca0deb54857c04967e84d68b. Change-Id: I9177828f90fa7f7e256bc72fdff35a2fab355780
* maint: Generate doc/version[-LANG].texi using `mdate-from-git.scm'.Janneke Nieuwenhuizen2024-04-19
| | | | | | | | | | | | This replaces Automake's `build-aux/mdate-sh' with our own `build-aux/mdate-from-git.scm' to use reproducible timestamps from Git instead. * build-aux/mdate-from-git.scm: New script. * bootstrap: Use it to replace build-aux/mdate-sh. * Makefile.am (EXTRA_DIST): Add it. Change-Id: I17d0a7de9ffea397129c0db1728f86e28a4e245f
* maint: Support running `./bootstrap' from a tarball.Janneke Nieuwenhuizen2024-04-19
| | | | | | | | | This fixes VERSION being empty in ./configure, which may to documentation having empty version strings. * Makefile.am (EXTRA_DIST): Add build-aux/git-version-gen. Change-Id: If127519811b25e2df0f5caa6a83a4f860fd34eb2
* maint: Cater for running `make dist' from a tarball.Janneke Nieuwenhuizen2024-04-19
| | | | | | | | | | | | | | * Makefile.am: Use in_git_p conditional to disable Autotools' cache consistency assert and removal when bulding from tarball. (dist): Depend on doc-pot-update again when building from tarball. (dist-hook): Remove dependencies on gen-ChangeLog and gen-AUTHORS when building from tarball. (gen-ChangeLog, gen-AUTHORS): Remove guarding for building from tarball. Use set -e to avoid silently failing. (gen-tarball-version): Use $(SOURCE_DATE_EPOCH) instead of re-generating it using git; this also works running from a tarball. Change-Id: I9ebdd28a70837f6a4db610c4816bb283d176e2d9
* maint: Support `make doc-pot-update' from a tarball.Janneke Nieuwenhuizen2024-04-19
| | | | | | | | | | * build-aux/xgettext.scm: Move setting of environment variables to shell header. (main): Use SOURCE_DATE_EPOCH as fallback for timestamp. This fixes running from a tarball. * Makefile.am (EXTRA_DIST): Add it. Change-Id: Ic487587b22495868fd2a21545a13dc9e3458299c
* maint: Resurrect running `make' from a tarball.Janneke Nieuwenhuizen2024-04-19
| | | | | | | | | | | | This is a follow-up to commit 8b972da068708a8b17f3ab153ea940690ca49ca9 Makefile.am: Auto-configure Git on 'make'. * configure.ac (in_git_p): New conditional. * Makefile.am (nodist_noinst_DATA): Use it to only enable this when building from Git. Change-Id: I09a90a59a4933a8cdb04124467d38209171f2a57
* gnu: Add font-lxgw-heartserif.Zhu Zihao2024-04-19
| | | | | | | * gnu/packages/fonts.scm (font-lxgw-heartserif): New variable. Change-Id: I94cab117c35c536526e8f88d7ba05a3e6b5747d5 Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
* gnu: Add font-lxgw-neozhisong.Zhu Zihao2024-04-19
| | | | | | | * gnu/packages/fonts.scm (font-lxgw-neozhisong): New variable. Change-Id: I351bb86a22ad610f51d6e0e8aea290285529cbd3 Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
* gnu: Add font-plangothic.Zhu Zihao2024-04-19
| | | | | | | * gnu/packages/fonts.scm (font-plangothic): New variable. Change-Id: I5982af96057dbb7c354ebfa32c173b25cf883461 Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
* gnu: Add font-jigmo.Zhu Zihao2024-04-19
| | | | | | | * gnu/packages/fonts.scm (font-jigmo): New variable. Change-Id: Icdc619043d9f88eb413344fa9e7c2915ec86acc8 Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
* gnu: nanovna-saver: Update to 0.6.3.Guillaume Le Vaillant2024-04-19
| | | | | | | | | | * gnu/packages/radio.scm (nanovna-saver): Update to 0.6.3. [build-system]: Switch to pyproject-build-system. [native-inputs]: Add python-setuptools-scm. [inputs]: Replace python-pyqt by python-pyqt-6. [arguments]: Add 'set-version' phase. Change-Id: I1772dd67916c812148131e48424ca8a9948e008a
* gnu: hamlib: Update to 4.5.5.Guillaume Le Vaillant2024-04-19
| | | | | | | | * gnu/packages/radio.scm (hamlib): Update to 4.5.5. [source]: Switch to git-fetch method. [arguments]: Remove 'force-bootstrap' phase. Change-Id: Ia281f76ab0fd87b99c69eb56e004a3947455e539
* gnu: flmsg: Update to 4.0.23.Guillaume Le Vaillant2024-04-19
| | | | | | | * gnu/packages/radio.scm (flmsg): Update to 4.0.23. [native-inputs]: Replace autoconf by autoconf-2.71. Change-Id: Ieea1528458479af9e909b7df1b95955f2a6598eb
* gnu: flamp: Update to 2.2.12.Guillaume Le Vaillant2024-04-19
| | | | | | * gnu/packages/radio.scm (flamp): Update to 2.2.12. Change-Id: I1a88d6c2523220324c25cd8da0fb55e2442a8401
* gnu: flrig: Update to 2.0.04.Guillaume Le Vaillant2024-04-19
| | | | | | * gnu/packages/radio.scm (flrig): Update to 2.0.04. Change-Id: Ibabf51caca450bb01b9b146ad4e6410997222edd
* gnu: fldigi: Update to 4.2.04.Guillaume Le Vaillant2024-04-19
| | | | | | | * gnu/packages/radio.scm (fldigi): Update to 4.2.04. [native-inputs]: Replace autoconf by autoconf-2.71. Change-Id: Ic2844f6f6114e504877344bbd91b6ac6db93b0b0
* gnu: gqrx-scanner: Update to 1.0.5.Guillaume Le Vaillant2024-04-19
| | | | | | * gnu/packages/radio.scm (gqrx-scanner): Update to 1.0.5. Change-Id: I68f3363f6e164aa3274eecf4c2515609565b652f
* gnu: gqrx: Update to 2.17.5.Guillaume Le Vaillant2024-04-19
| | | | | | * gnu/packages/radio.scm (gqrx): Update to 2.17.5. Change-Id: I110d6e2e170203d7503760721b13e47e88b8d827
* news: Add entry for nss-certs being added to %base-packages.Maxim Cournoyer2024-04-18
| | | | | | | * etc/news.scm: New entry. * NEWS: Update news. Change-Id: I40e0b859f2af0bb0e652925a53d6447ea6fbacfb