summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2023-09-22git: Avoid touching the network unless needed in 'reference-available?'.Simon Tournier
Follow-up of 756e336fa008c2469b4a7317ad5c641ed48f25d6 fixing the issue. * guix/git/scm (reference-available?): Address case by case to determine whether the reference exists in the local Git checkout.
2023-09-20image: Introduce the mbr-hybrid-raw image type.Mathieu Othacehe
Until 209204e23b39af09e0ea92540b6fa00a60e6a0ae and d57cab764122af69d52d8cc9c843456044e5d7bc, the default image type used by "guix system image" was an MBR image with an ESP partition. Having both an MBR image and an ESP partition is handy because the image will boot on most x86 based systems using legacy BIOS and/or UEFI. We now have a distinction between MBR images and EFI images. Introduce a new MBR hybrid image type and default to it to restore the default behaviour. This also fixes the images section of (gnu ci) that was trying to install a BIOS bootloader on an EFI, GPT image and failing to do so. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-09-19self: Compile guix-packages-base in chunks of 10 files.Janneke Nieuwenhuizen
This fixes or greatly increases the chances for `guix pull' to succeed on the Hurd, see <https://issues.guix.gnu.org/65456>. * guix/self.scm (compiled-modules)[process-directory]: Move hardcoded size to keyword parameter #:size. Set it to 10 when compiling "guix-packages-base".
2023-09-18self: Build directories in chunks of max 25 files at a time.Janneke Nieuwenhuizen
This increases the chances of a successful `guix pull' on the Hurd, see <https://issues.guix.gnu.org/65456>. * guix/self.scm (compiled-modules)[process-directory]: Split building of directories into chunks of max 25 files. Also call gc.
2023-09-17transformations: tuned-package: Use target on cross-compile.Jean-Pierre De Jesus DIAZ
* guix/transformations.scm (tuned-package): Use either bag-target if available or bag-system to select the CPU architecture of the package that is going to be tuned. This enables the tuning of cross-compiled packages. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-13upstream: Compare symbols to symbols.Ricardo Wurmus
The UNCHANGED? comparison would always yield #FALSE, because we have been comparing lists of strings with lists of symbols. * guix/upstream.scm (update-package-inputs): Convert string labels to symbols before comparison.
2023-09-12search-paths: Add $TZDIR.Maxim Cournoyer
* guix/search-paths.scm ($TZDIR): New search path.
2023-09-11gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs.Maxim Cournoyer
This reinstate commit a5b5df7f7fbbb98487b2e7a59941efee6492bc7f with a fix to the inner expand-uri procedure.
2023-09-11Revert "gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs."Maxim Cournoyer
This reverts commit a5b5df7f7fbbb98487b2e7a59941efee6492bc7f. Pushed too early.
2023-09-11gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/58697>. * guix/gnu-maintenance.scm (import-html-updatable-release): Update doc. <expand-uri>: New nested procedure. Apply it to the origin URI. Reported-by: kiasoc5 <kiasoc5@disroot.org>
2023-09-08guix: shell: Don't whitelist / by typo in `shell-authorized-directories'.Janneke Nieuwenhuizen
Fixes <https://issues.guix.gnu.org/65832>. * guix/scripts/shell.scm (authorized-shell-directory?): After warning, continue LOOP to return valid query result for DIRECTORY.
2023-09-08lint: Check that (cc-for-target) and friends are used.Maxime Devos
"CC=gcc" is almost always incorrect; people often just don't notice the incorrectness because they are compiling natively. For an exception, see tzdata. "guix style" partially made things worse, so I partially ignored it. * guix/lint.scm (check-compiler-for-target): New linter. * tests/lint.scm ("compiler-for-target: unconditional CC=gcc is unacceptable") ("compiler-for-target: looks through G-expressions") ("compiler-for-target: (cc-for-target) is acceptable") ("compiler-for-target: CC=gcc is acceptable when target=#false"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-06guix: packages: Support package/inherit by package-field-location.Simon Tournier
Fixes <https://issues.guix.gnu.org/65236>. * guix/packages.scm (package-field-location): Add package/inherit case. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Reported-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-09-06gnu-maintenance: Do not error when there are no candidates.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/65773>. * guix/gnu-maintenance.scm (rewrite-url): Do not error when there are no candidates. This may well be possible, depending on the site.
2023-09-05git: Fix typo in reference-available? comment.Maxim Cournoyer
* guix/git.scm (reference-available?): Fix typo.
2023-09-05time-machine: Also validate the reference from a channels file.Maxim Cournoyer
* guix/scripts/time-machine.scm (guix-time-machine) <validate-guix-channel>: Update doc. Fall-back to use the Guix channel reference when REF is #f. Reported-by: Simon Tournier <zimon.toutoune@gmail.com> Co-authored-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-09-05Revert "guix: git: Avoid touching the network unless needed in ↵Maxim Cournoyer
'reference-available?'." This reverts commit a789dd58656d5f7f1b8edf790d77753fc71670af, which broke e.g.: guix time-machine -C <(echo %default-channels) -- describe Add an explanatory comment as suggested. Reported-by: Ludovic Courtès <ludo@gnu.org>
2023-09-05gnu-maintenance: Do not crash on refresh when origin URI is a list.Maxim Cournoyer
Updating the simh package would fail with: ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure string-prefix?: Wrong type argument in position 2 (expecting string): ("http://simh.trailing-edge.com/sources/simhv312-4.zip" "http://simh.trailing-edge.com/sources/archive/simhv312-4.zip") This is because it expects a scalar value, but lists are allowed for URIs. * guix/gnu-maintenance.scm (import-html-updatable-release): Check that URI is a string before checking if it has the mirror:// prefix.
2023-08-29scripts: pull: Teach 'channels-list' to use 'tag' git references.Simon Tournier
* guix/scripts/pull.scm (channel-list): Add support for 'tag' references, to honor the various possible references types as defined in the documentation of the update-cached-checkout procedure. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-08-29guix: git: Avoid touching the network unless needed in 'reference-available?'.Simon Tournier
* guix/git/scm (reference-available?): Use the resolve-reference procedure to determine whether the reference exists in the local Git checkout. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-08-28import-utils: Do not include punctuation when wrapping in @code{}.Ricardo Wurmus
* guix/import/utils.scm (beautify-description): Exclude punctuation. * tests/import-utils.scm: Add new test.
2023-08-26gnu-maintenance: Consider Qt source tarballs as "release files".Maxim Cournoyer
* guix/gnu-maintenance.scm (release-file?): Use positive logic in doc. Add a special case for Qt source archives. * tests/gnu-maintenance.scm ("release-file?"): Update test.
2023-08-26gnu-maintenance: Allow mirror URLs to fallback to the generic HTML updater.Maxim Cournoyer
* guix/gnu-maintenance.scm (http-url?): Extract from html-updatable-package?, modify to return the HTTP URL, and support the mirror:// scheme. (%disallowed-hosting-sites): New variable, extracted from html-updatable-package. (html-updatable-package?): Rewrite a mirror:// URL to an HTTP or HTTPS one. * guix/download.scm (%mirrors): Update comment.
2023-08-26gnu-maintenance: Add support to rewrite version in URL path.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/64015>. Fixes <https://issues.guix.gnu.org/65304>. Previously, the generic HTML updater would only look for the list of files found at the parent of its current source URL, ignoring that the URL may embed the version elsewhere in its path. This could cause 'guix refresh' to report no updates available, while in fact there were, such as for 'libuv'. * guix/gnu-maintenance.scm (strip-trailing-slash): New procedure. (%version-rx): New variable. (rewrite-url): New procedure. (import-html-release): New rewrite-url? argument. When true, use the above procedure. (import-html-updatable-release): Call import-html-release with #:rewrite-url set to #t. * tests/gnu-maintenance.scm ("rewrite-url, to-version specified") ("rewrite-url, without to-version"): New tests.
2023-08-26gnu-maintenance: Extract 'canonicalize-url' from 'import-html-release'.Maxim Cournoyer
* guix/gnu-maintenance.scm (canonicalize-url): New procedure, extracted from... (import-html-release): ... here. Use it. Rename inner PACKAGE variable to NAME, to explicit it is a string and not a package object.
2023-08-26gnu-maintenance: Document nested procedures in 'import-html-release'.Maxim Cournoyer
* guix/gnu-maintenance.scm (import-html-release): Add docstring to the 'file->signature/guess' and 'url->release' nested procedures.
2023-08-26gnu-maintenance: Accept package object in 'import-html-release' procedure.Maxim Cournoyer
This is in preparation for a new URL rewriting feature, which will need to have the current version information available. * guix/gnu-maintenance.scm (import-html-release): Update doc. Adjust default value of the DIRECTORY argument. Bind PACKAGE in lexical scope so that its value there is unchanged. (import-savannah-release, import-kernel.org-release) (import-html-updatable-release): Adjust accordingly.
2023-08-26gnu-maintenance: Fix indentation.Maxim Cournoyer
* guix/gnu-maintenance.scm: Re-indent file.
2023-08-26gnu-maintenance: Extract url->links procedure.Maxim Cournoyer
* guix/gnu-maintenance.scm (url->links): New procedure. (import-html-release): Use it.
2023-08-26gnu-maintenance: Fix docstring.Maxim Cournoyer
* guix/gnu-maintenance.scm (import-kernel.org-release): Fix docstring.
2023-08-26gnu-maintenance: Make base-url argument of import-html-release required.Maxim Cournoyer
It doesn't make sense to have it default to something like "https://kernel.org/pub"; it should always be provided explicitly. * guix/gnu-maintenance.scm (import-html-release) <#:base-url>: Turn keyword argument into a positional argument. Update doc. * guix/gnu-maintenance.scm (import-savannah-release): Adjust call accordingly. (import-kernel.org-release): Likewise. (import-html-updatable-release): Likewise.
2023-08-25graph: Add GraphML backend.Josselin Poiret
* guix/graph.scm (emit-graphml-prologue, emit-graphml-epilogue, emit-graphml-node, emit-graphml-edge): New procedures. (%graphml-backend): New variable. (%graph-backends): Add %graphml-backend.
2023-08-25image: Add mbr-raw-image-type and use by default.Josselin Poiret
* gnu/system/image.scm (mbr-disk-image, mbr-raw-image-type): New variables. (qcow2-image-type): Inherit mbr-disk-image. * guix/scripts/system.scm (%default-options): Use mbr-raw-image-type by default. * gnu/tests/install.scm (run-install): Use mbr-raw in the tests. * doc/guix-cookbook.texi (Guix System Image API): Update the list of image types. * doc/guix.texi (Invoking guix system, System Images, image-type Reference): Add mbr-raw and switch documented default to it.
2023-08-24guix: profiles: Detect TeX Live packages propagated from non-TeX Live inputs.Nicolas Goaziou
This fixes <https://issues.guix.gnu.org/65474>. * guix/profiles.scm (texlive-font-maps): Also check for TeX Live dependencies in non "texlive-" prefixed packages. For example, PYTHON-NBCONVERT propagates TeX Live inputs. Those need to be found out when building ".map"" files. Co-authored-by: Andreas Enge <andreas@enge.fr>
2023-08-22Revert "self: Build gnu/packages/*.go in 26 steps."Ludovic Courtès
This reverts commit 5898b2e8a3dbf7797e83b39a2783c5b543015725, which led to Guix where many .go files would be missing, as reported in <https://issues.guix.gnu.org/65456>.
2023-08-22self: Build gnu/packages/*.go in 26 steps.Janneke Nieuwenhuizen
Similar to the Makefile.am change, this breaks-up gnu/packages into 26 chunks when building on 32bit. Also force garbage collection. * guix/self.scm (compiled-modules)[process-directory]: Split building of "gnu/packages" into 26 chunks.
2023-08-22gnu-maintenance: Improve check for disabled host names.Maxim Cournoyer
Found while investigating <https://issues.guix.gnu.org/65304>. * guix/gnu-maintenance.scm (html-updatable-package?): Tighten predicate. Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-08-22download: Add mirrors for Qt.Maxim Cournoyer
* guix/download.scm (%mirrors): Augment with qt mirrors. Series-changes: 2 - Move authoritative mirror last, as it's too slow.
2023-08-22ssh: Also print the user when authentication fails.Attila Lendvai
* guix/ssh.scm (open-ssh-session): Show user in error message. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-08-19Merge branch 'kde-updates'宋文武
2023-08-17pull, time-machine: Add '-q' to ignore channel files.Ludovic Courtès
This also fixes <https://issues.guix.gnu.org/63726>. * guix/scripts/pull.scm (show-help, %options): Add '-q'. (channel-list): Honor it. * guix/scripts/time-machine.scm (show-help, %options): Add '-q'. * doc/guix.texi (Invoking guix pull, Invoking guix time-machine): Document it. Reported-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-08-17ui: 'load*' accepts /dev/fd/N files pointing to a pipe.Ludovic Courtès
This allows users to write Bash commands like: guix time-machine -C <(echo %default-channels) -- ... or: guix build -m <(echo '(specifications->manifest (list "guile"))') Previously, on GNU/Linux, they would fail with: error: failed to load '/dev/fd/63': No such file or directory * guix/ui.scm (try-canonicalize-path): New procedure. (load*): Use it. * tests/guix-build.sh: Test 'guix build -m' with a /dev/fd/N file.
2023-08-17Merge remote-tracking branch 'origin/master' into kde-updates宋文武
2023-08-16scripts: time-machine: Error when attempting to visit too old commits.Maxim Cournoyer
* doc/guix.texi (Invoking guix time-machine): Document limitation. * guix/inferior.scm (cached-channel-instance): New VALIDATE-CHANNELS argument. Use it to validate channels when there are no cache hit. * guix/scripts/time-machine.scm (%options): Tag the given reference with 'tag-or-commit instead of 'commit. (%oldest-possible-commit): New variable. (guix-time-machine) <validate-guix-channel>: New nested procedure. Pass it to the 'cached-channel-instance' call. * tests/guix-time-machine.sh: New test. * Makefile.am (SH_TESTS): Register it. Suggested-by: Simon Tournier <zimon.toutoune@gmail.com> Reviewed-by: Ludovic Courtès <ludo@gnu.org> Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-08-16pull: Tag commit argument with 'tag-or-commit.Maxim Cournoyer
For compatibility with (guix git) procedures. * guix/scripts/pull.scm (channel-list): Also accept tag-or-commit tagged refspec.
2023-08-16git: Clarify commit relation reference in doc.Maxim Cournoyer
* guix/git.scm (update-cached-checkout): Clarify that it is the relation of STARTING-COMMIT that is returned, relative to the new commit, not the other way around.
2023-08-16guix home: Create /tmp in container if needed.Ludovic Courtès
Previously 'guix home container' would create a container without /tmp, which would prevent 'least-authority-wrapper' programs from starting, for example. * guix/scripts/home.scm (spawn-home-container): Create /tmp if it doesn't exist yet.
2023-08-16guix: import: texlive importer handles Ruby linked scripts.Nicolas Goaziou
* guix/import/texlive.scm (linked-scripts): Also check for scripts with ".rb" extension. (tlpdb->package): Add proper RUBY input for Ruby linked scripts.
2023-08-15refresh: Add --target-version option.Maxim Cournoyer
* guix/scripts/refresh.scm (%options): Register 'target-version' long version. (update-specification->update-spec): Add a fallback-version argument. (options->update-specs): Honor target-version option. * tests/guix-refresh.sh: Test it. * doc/guix.texi (Invoking guix refresh): Document it. Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-08-14guix: import: Do not prefix `fsf-free' with "license:" in texlive.Nicolas Goaziou
* guix/import/texlive.scm (tlpdb->package): For consistency with other imported licenses, `fsf-free' need not be prefixed with "license:".