summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2024-03-21reconfigure: Skip starting new shepherd services with auto-start? #fRichard Sent
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>
2024-03-19git authenticate: Document ‘--end’.Ludovic Courtès
* guix/scripts/git/authenticate.scm (show-help): Document ‘--end’. * doc/guix.texi (Invoking guix git authenticate): Likewise. Reported-by: Tomas Volf <~@wolfsden.cz> Change-Id: Ia646203ce2f721487de547c76b9488754c70db66
2024-03-19describe: Try harder to find the ‘guix pull’ profile.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/66705>. The strategy used by ‘current-profile’ so far would fail to find the right profile (the one created by ‘guix pull’ or ‘guix time-machine’) in cases where said profile is itself included in another profile. This happens, for instance, when running ‘guix shell -CW -- guix describe’, which, as a result, would display nothing but the ‘guix’ channel. This patch fixes that by having ‘current-profile’ not just check for the presence of a ‘manifest’ file but also parse it to determine whether it’s a ‘guix pull’ kind of manifest. * guix/describe.scm (find-profile): New procedure. (current-profile): Adjust to use it. Change-Id: I9194f54ce1496a6591e247c76203f497f28c330b
2024-03-19profiles: ‘read-manifest’ raises to ‘&profile-error’ upon version ↵Ludovic Courtès
mismatch. * guix/profiles.scm (sexp->manifest): In the catch-all clause, raise to ‘&profile-error’ in addition to ‘&message’. Change-Id: Ieb08187b388531c2157bfe67fb1b7319dbbb4ff3
2024-03-11time-machine: Allow time travels to v0.16.0.Ludovic Courtès
* guix/scripts/time-machine.scm (%oldest-possible-commit): Change to v0.16.0. * tests/guix-time-machine.sh: Adjust comment. Change-Id: I9ad82bd45fee0d172b5348a8ae16e990338a3a97
2024-03-10transformations: Add support for rust.Efraim Flashner
* guix/transformations.scm (tuning-compiler): Add support for rustc. Change-Id: I6db596a586eda648666550cdcadaa5e1704cb79c
2024-03-09download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable.Ludovic Courtès
This replaces ‘GUIX_DOWNLOAD_FALLBACK_TEST’ and allows you to test various download methods, like so: GUIX_DOWNLOAD_METHODS=nar guix build guile-gcrypt -S --check GUIX_DOWNLOAD_METHODS=disarchive guix build hello -S --check * guix/build/download.scm (%download-methods): New variable. (download-method-enabled?): New procedure. (url-fetch): Define ‘initial-uris’; honor ‘download-method-enabled?’. Call ‘disarchive-fetch/any’ only when the 'disarchive method is enabled. * guix/build/git.scm (git-fetch-with-fallback): Honor ‘download-method-enabled?’. * guix/download.scm (%download-methods): New variable. (%download-fallback-test): Remove. (built-in-download): Add #:download-methods parameter and honor it. (url-fetch*): Pass #:content-addressed-mirrors and #:disarchive-mirrors unconditionally. * guix/git-download.scm (git-fetch/in-band*): Pass “git url” unconditionally. (git-fetch/built-in): Likewise. Pass “download-methods”. * guix/bzr-download.scm (bzr-fetch)[build]: Honor ‘download-method-enabled?’. Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars. * guix/cvs-download.scm (cvs-fetch)[build]: Honor ‘download-method-enabled?’. Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars. * guix/hg-download.scm (hg-fetch): Honor ‘download-method-enabled?’. Pass #:env-vars to ‘gexp->derivation’. * guix/scripts/perform-download.scm (perform-download): Honor “download-methods” from DRV. Parameterize ‘%download-methods’ before calling ‘url-fetch’. (perform-git-download): Likewise. * guix/svn-download.scm (svn-fetch): Honor ‘download-method-enabled?’. Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars. (svn-multi-fetch): Likewise. Change-Id: Ia3402e17f0303dfa964bdc761265efe8a1dd69ab
2024-03-09perform-download: Allow use of ‘download-nar’ for ‘--check’ builds.Ludovic Courtès
Previously, the nar fallback would always fail on ‘--check’ build because the output directory in that case is different from the store file name. This change fixes that. * guix/build/git.scm (git-fetch-with-fallback): Add #:item parameter and pass it to ‘download-nar’. * guix/scripts/perform-download.scm (perform-git-download): Pass #:item to ‘git-fetch-with-fallback’. Change-Id: I30fc948718e99574005150bba5215a51ef153c49
2024-03-09download-nar: Distinguish ‘output’ and ‘item’ parameter.Ludovic Courtès
This is useful when running a ‘--check’ build, where the output file name differs from the store file name we are trying to restore. * guix/build/download-nar.scm (download-nar): Add ‘output’ parameter and distinguish it from ‘item’. Change-Id: I42219b6d4c8fd1ed506720301384efc1aa351561
2024-03-09bzr-download: Implement nar fallback.Ludovic Courtès
* guix/bzr-download.scm (bzr-fetch)[guile-json, guile-lzlib, guile-gnutls]: New variables. [build]: Add ‘with-extensions’ and import more modules. Invoke ‘download-nar’ when ‘bzr-fetch’ returns #f. * guix/build/bzr.scm (bzr-fetch): Actually return #t on success. Change-Id: Id5d4ebd0f9ddc3c44b6456d3b46c0000cc7b9997
2024-03-09svn-download: Use ‘swh-download-directory-by-nar-hash’.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/43442>. * guix/svn-download.scm (svn-fetch)[build]: Add ‘swh-download-directory-by-nar-hash’ call as a last resort. Import (guix swh). * guix/svn-download.scm (svn-multi-fetch)[build]: Likewise. Change-Id: Ifcb9be1e9c2b05ce172c44e45dcf3a3ea6df8e76
2024-03-09hg-download: Use ‘swh-download-directory-by-nar-hash’.Ludovic Courtès
This allows content-addressed access to the checkout, which is preferable. * guix/hg-download.scm (hg-fetch): Add call to ‘swh-download-directory-by-nar-hash’ before ‘swh-download’ call. Change-Id: I2afc8badc1f8bb2c8bdd3a47abbb72d455d93e64
2024-03-09swh: ‘lookup-origin-revision’ handles branches pointing to directories.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/69070>. * guix/swh.scm (branch-target): Add clause for 'directory and 'alias. (lookup-origin-revision): Iterate over all the visits of ORIGIN instead of just the first one. Handle the case where ‘branch-target’ returns something other than a release or revision. * tests/swh.scm ("lookup-origin-revision"): New test. Change-Id: I7f636739a719908763bca1d3e7376341dd62e816
2024-03-09swh: ‘origin-visits’ takes an optional ‘max’ parameter.Ludovic Courtès
* guix/swh.scm (origin-visits): Add optional ‘max’ parameter and honor it. Change-Id: I642d7d4b0672b68fb5c7ce2b49161307e13d3c95
2024-03-09swh: Add ‘type’ field to <visit>.Ludovic Courtès
* guix/swh.scm (<visit>)[type]: New field. Change-Id: I7677984c7daef38d8f3c3bef19723fa0efb035ba
2024-03-09lint: archival: Trigger “Save Code Now” for VCSes other than Git.Ludovic Courtès
Until now, ‘save-origin’ would be called only when given a <git-reference>. With this change, ‘save-origin’ gets called for other version control systems as well. * guix/lint.scm (swh-response->warning): New procedure, formerly in ‘check-archival’. (vcs-origin, save-package-source): New procedures. (check-archival)[response->warning]: Remove. Call ‘save-package-source’ in both the Git and the non-Git cases. * tests/lint.scm ("archival: missing svn revision"): New test. Change-Id: I535e4ec89488faf83bfa544d5e4935fa73ef54fb
2024-03-09lint: archival: Fix crash in non-Git case.Ludovic Courtès
Fixes a bug introduced in 29f3089c841f00144f24f5c32296aebf22d752cc where ‘guix lint -c archival guile-wisp’ (for instance) would crash with a match error because ‘lookup-by-nar-hash’ returns a string. * guix/lint.scm (check-archival): Add SWHID case in the non-Git case. Change-Id: I66fb060172d372041df47d90a14df168b0fa762d
2024-03-09lint: Switch to SRFI-71.Ludovic Courtès
* guix/lint.scm: Switch from SRFI-11 to SRFI-71. Change-Id: I62e6cd304ad73570bd12bd67f7051566205596bb
2024-03-07cpu: Enable tuning for i686-linux.Efraim Flashner
* gnu/packages/gcc.scm (gcc-7, gcc-10, gcc-11, gcc-12, gcc-13) [properties]: In compiler-cpu-architectures use the x86_64-micro-architectures list for i686. * guix/cpu.scm (cpu->gcc-architecture): Expand the x86_64 case to also support i686. Change-Id: I0b820ceb715960db5e702814fa278dc8c619a836
2024-03-07cpu: Rename x86-64-v1 to x86-64.Efraim Flashner
This is the actual micro-architecture designation used by compilers. * gnu/packages/gcc.scm (%gcc-11-x86_64-micro-architectures): Rename x86-64-v1 to x86-64. * gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Same. * guix/cpu.scm (cpu->micro-architecture-level): Same. (gcc-architecture->micro-architecture-level): Same. Change-Id: I19ed556a7e8deb4a77f4c63fca3b794f25092788
2024-03-07cpu: Be consistent with x86_64 micro-architecture names.Efraim Flashner
* gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Rename micro-architectures from x86_64-v* to x86-64-v*. * guix/cpu.scm (cpu->gcc-architecture): Return x86-64 as the fallback. (cpu->micro-architecture-level): Rename micro-architectures from x86_64-v* to x86-64-v*. (gcc-architecture->micro-architecture-level): Same. Change-Id: I37db65970417c22699ae8097b0361bccf76c1267
2024-03-06scripts: import: elpa: Unquote-splice package sexp contents.Carlo Zancanaro
* guix/scripts/import/elpa.scm (guix-import-elpa): Unquote-splice the contents of the package sexp so the matched package definition is returned unchanged. Change-Id: Iaaa7e72390c73c6d6671811fe9ac284d599b44c6 Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2024-03-06import/cran: Add one more invalid package.Ricardo Wurmus
* guix/import/cran.scm (invalid-packages): Add "use_c17". Change-Id: Ie3b6455d4eff97811057cd82dca460367a4583e5
2024-03-05guix: cpu: Update aarch64 CPUs.Efraim Flashner
* guix/cpu.scm (cpu->gcc-architecture): Update list of CPUs from the list in gcc. Change-Id: Ifcd26c143fc9e3aaa0c5514e1dac4908d2780255
2024-03-05guix: cpu: Autodetect the x86-64-v4 microarchitecture.Efraim Flashner
* guix/cpu.scm (gcc-architecture->micro-architecture-level): Sort gcc-architectures which have AVX512F support into x86-64-v4. Change-Id: I8af0ceb692eefec7433e1fd5149379244da799c4
2024-03-05guix: cpu: Update x86_64 CPUs.Efraim Flashner
* guix/cpu.scm (cpu->gcc-architecture): Add graniterapids-d, pantherlake, clearwaterforest, arrowlake-s, yongfeng. Remove grandridge. Update CPU flags for searching to match architecture. (gcc-architecture->micro-architecture-level): Adjust listed architectures and sort in order used above. Change-Id: I186ab6e396e36c34f7c61827e02f637716993141
2024-03-04gnu: perl6-tap-harness: Update to 0.3.5.Paul A. Patience
* gnu/packages/perl6.scm (perl6-tap-harness): Update to 0.3.5. [source]: Update URL. Reindent. [arguments]: Replace obsolete prove6 script with manual Raku invocation in 'check' phase. [home-page]: Update. [synopsis]: Replace mention of Perl with Raku. * gnu/packages/rakudo-build-system.scm (check): Replace obsolete prove6 script with manual Raku invocation. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2024-03-04gnu: rakudo: Update to 2022.04.Paul A. Patience
* gnu/packages/perl6.scm (rakudo): Update to 2022.04. [source]: Add snippet to delete bundled 3rdparty directory. [arguments]: Add 'remove-calls-to-git', 'fix-paths' and 'disable-failing-tests' phases. Remove 'patch-source-date' phase. Adjust files in 'patch-more-shebangs' phase and sort them. Remove redundant './' from 'configure' phase. Replace Perl extensions and paths with Raku equivalents in 'install-dist-tool' phase. [native-inputs]: Add nqp-configure. [synopsis, description]: Replace mentions of Perl with Raku. * guix/build/rakudo-build-system.scm (install): Replace Perl extension with Raku extension. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2024-03-02build-system/guile: Install .scm files first.Tomas Volf
Until now the .go files were generated first, and only after that the .scm files were installed into the target location. That led to a lot of messages about `source file ... newer than compiled' if the custom 'check phase tried to load the compiled files. Swapping the order of the actions resolves the issue allowing the tests to be written without lot of noise in the build log. For final artifacts it was not a problem, since daemon resets the timestamps. * guix/build/guile-build-system.scm (build): Install .scm before producing .go. Change-Id: I3428d144fcbaa6c904ee662193c3bca82589e344 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-02build-system/guile: Fix indentation.Tomas Volf
The inner (let) was on the same level as the outer one, which was confusing. * guix/build/guile-build-system.scm (build): Fix indentation. Change-Id: I701b61747c270b185eac9377b066748baa2b3d20 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-02build-system/guile: Fix typo in documentation string.Tomas Volf
* guix/build/guile-build-system.scm (install-documentation): Fix typo in documentation string. Change-Id: I8940591fcbf8222c8f8365dabbac0e8300cad84c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-28Merge branch 'rust-team'Efraim Flashner
Change-Id: Iee31c5de29c357c822f60df4fa8ce758779eb349
2024-02-23import: Do not return package name with json importer.Herman Rimm
* guix/import/json.scm (json->code): Do not return package names after package expressions. * doc/package-hello.json: Fix comma errors and use valid greeter URL. Change-Id: Id71924e72f690a9bda5fbfdb65a443029adfd158 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23import: Discard args after --version and --help.Herman Rimm
* guix/scripts/import.scm (guix-import): Discard args. Change-Id: Icce5cd0daf9011f7ddde7904113b31b547f063ef Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23import: Insert packages into modules alphabetically.Herman Rimm
* guix/scripts/import.scm (guix-import): Add 'insert' option. (import-as-definitions): Add procedure. * doc/guix.texi (Invoking guix import): Describe 'insert' option. Change-Id: Id87ea707123630e12bcb6788599acac6895b26c4 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23utils: Add find-definition-insertion-location procedure.Herman Rimm
* guix/utils.scm (find-definition-insertion-location): Add and export procedure. * tests/utils.scm ("find-definition-insertion-location"): Add test. Change-Id: Ie17e1b4a94790f58518ce121411a38d357f49feb Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23utils: Add insert-expression procedure.Herman Rimm
* guix/utils.scm (define-module): Use (guix read-print) and export (insert-expression). (insert-expression): Add procedure. * tests/utils.scm ("insert-expression"): Add test. Change-Id: I971a43a78aa6ecaaef33c1a7a0db4b287eb85036 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-23import: Wrap package expressions with define-public.Herman Rimm
* guix/scripts/import.scm (guix-import): Wrap package expressions. Change-Id: Ic4d986a4706a692b2fecd6fded8ac72ab6311687 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-02-20build: cargo: Add support for x86_64-linux-gnux32.Efraim Flashner
* guix/build/cargo-build-system.scm (configure): Add entry for x86_64-linux-gnux32 in CARGO_BUILD_TARGET. Change-Id: Iae363d4e7962af1ebd4f2ed0f4276663b2245580
2024-02-20syscalls: ‘processes’ really omits kernel threads.Ludovic Courtès
Fixes a bug whereby ‘processes’ would include kernel threads, thereby leading the ‘stop’ method of ‘user-processes’ to wait indefinitely for a kernel thread. Code taken from the Shepherd. Fixes <https://issues.guix.gnu.org/68800>. * guix/build/syscalls.scm (kernel?): Remove. (linux-process-flags, linux-kernel-thread?, pseudo-process?): New procedures. (PF_KTHREAD): New variable. (processes): Use ‘pseudo-process?’ instead of ‘kernel?’. Reported-by: Tomas Volf <~@wolfsden.cz> Change-Id: I8c439cdaf868a8f899de7fe500ce8bf10e5fc290
2024-02-20import/cran: Use downstream name when using specifications.Ricardo Wurmus
Reported by Alexander Blume at <https://github.com/BIMSBbioinfo/guix.install/issues/4>. * guix/import/cran.scm (format-inputs): Use UPSTREAM-INPUT-DOWNSTREAM-NAME when %INPUT-STYLE is set to 'SPECIFICATION. Change-Id: I2f0963af197896aafd613b253d8712e41a716e52
2024-02-19upstream: update-package-inputs: Sort extra inputs.Ricardo Wurmus
Ensure that extra inputs end up in the correct order. * guix/upstream.scm (update-package-inputs)[filtered-inputs]: Sort new list of inputs. Change-Id: Ia5fddd8103a33c79426995057fcce61c2e9e5a72
2024-02-12gnu: disarchive: Update to 0.6.0.Timothy Sample
* gnu/packages/backup.scm (disarchive): Update to 0.6.0; add 'guile-bzip2' as an input. * gnu/packages/package-management.scm (guix): Add 'guile-bzip2' as an input to enable bzip2 support when using Disarchive. * guix/self.scm (%packages): Add 'guile-bzip2'. (compiled-guix): Include 'guile-bzip2' as a dependency when building the 'guix' command. * etc/disarchive-manifest.scm (tarball-origin?): Include bzip2 tarballs. Co-authored-by: Ludovic Courtès <ludovic.courtes@inria.fr> Change-Id: I4da479054f6bef225f5ea979c091152f8a9e51d5
2024-02-12swh: Fix docstring of ‘lookup-directory’.Ludovic Courtès
* guix/swh.scm (lookup-directory): Fix docstring. Change-Id: Ia1fd9b2bc9184364cebbd30ee84c9fdea4ba897c
2024-02-12git-download: Download from SWH by nar hash when possible.Ludovic Courtès
* guix/build/git.scm (git-fetch-with-fallback): Add #:hash and #:hash-algorithm. Try ‘swh-download-directory-by-nar-hash’ before ‘swh-download’ when #:hash is provided. * guix/git-download.scm (git-fetch/in-band*): Pass #:hash and #:hash-algorithm to ‘git-fetch-with-fallback’. * guix/scripts/perform-download.scm (perform-git-download): Likewise. Change-Id: Ic875a7022fd78c9fac32e92ad4f8ce4d81646ec5
2024-02-12lint: archival: Check with ‘lookup-directory-by-nar-hash’.Ludovic Courtès
While this method is new and nar-sha256 ExtIDs are currently available only for new visits, it is fundamentally more reliable than the other methods, which is why it comes first. * guix/lint.scm (check-archival)[lookup-by-nar-hash]: New procedure. Call ‘lookup-by-nar-hash’ before the other lookup methods. * tests/lint.scm ("archival: content available") ("archival: content unavailable but disarchive available") ("archival: missing revision") ("archival: revision available"): Add a 404 response corresponding to the ‘lookup-external-id’ request. * tests/lint.scm ("archival: nar-sha256 extid available"): New test. Change-Id: I4a81d6e022a3b72e6484726549d7fbae627f8e73
2024-02-12swh: Add ‘swh-download-directory-by-nar-hash’.Ludovic Courtès
This allows us to take advantage of content addressing by giving SWH the expected nar hash. * guix/swh.scm (swh-download-directory-by-nar-hash): New procedure. Change-Id: I0494ee15a3cde390a22552de7c2246e0314ba7b5
2024-02-12swh: Add bindings for the “ExtID” API.Ludovic Courtès
This interface was deployed at archive.softwareheritage.org a few days ago. Our main use case will be looking up directories by “nar-sha256” hashes. * guix/swh.scm (<external-id>): New JSON-mapped record type. (lookup-external-id, lookup-directory-by-nar-hash): New procedures. * tests/swh.scm (%external-id): New variable. ("lookup-directory-by-nar-hash"): New test. Change-Id: Ib671c7798aeb6f8132ac78f2b06b9285da8e7bd5
2024-02-12swh: ‘vault-fetch’ follows redirects.Ludovic Courtès
Today, URLs like https://archive.softwareheritage.org/api/1/vault/flat/swh:1:dir:84a8b34591712c0a90bab0af604188bcd1fe3153/raw/ redirect to https://swhvaultstorage.blob.core.windows.net/…. This change fixes ‘vault-fetch’ to follow these. Fixes <https://issues.guix.gnu.org/69058>. * guix/swh.scm (http-get/follow): New procedure. (vault-fetch): Use it instead of ‘http-get*’. Change-Id: Id6b9585a9ce6699a2274b99c9a6d4edda1018b02
2024-02-12git authenticate: Gracefully handle invalid fingerprints.Ludovic Courtès
Previously the command would crash when passed an invalid fingerprint on the command line. * guix/scripts/git/authenticate.scm (guix-git-authenticate) [openpgp-fingerprint*]: New procedure. Use it instead of ‘openpgp-fingerprint’. Change-Id: I99e0549781382f36a684a84449b603e00b53778d