Commit Graph

7411 Commits

Author SHA1 Message Date
Simon Tournier
cba0fa6f4f
scripts: git: Handle EPIPE errors when displaying help.
* guix/scripts/git.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:57 +02:00
Simon Tournier
330540b638
scripts: gc: Handle EPIPE errors when displaying help.
* guix/scripts/gc.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:57 +02:00
Simon Tournier
8ed377978e
scripts: edit: Handle EPIPE errors when displaying help.
* guix/scripts/edit.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:56 +02:00
Simon Tournier
25331ae62b
scripts: download: Handle EPIPE errors when displaying help.
* guix/scripts/download.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:56 +02:00
Simon Tournier
6c6071faf9
scripts: discover: Handle EPIPE errors when displaying help.
* guix/scripts/discover.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:56 +02:00
Simon Tournier
a53e5fb121
scripts: describe: Handle EPIPE errors when displaying help.
* guix/scripts/describe.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:55 +02:00
Simon Tournier
c150267648
scripts: deploy: Handle EPIPE errors when displaying help.
* guix/scripts/deploy.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:55 +02:00
Simon Tournier
fb231e09cb
scripts: copy: Handle EPIPE errors when displaying help.
* guix/scripts/copy.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:55 +02:00
Simon Tournier
f814d33cbd
scripts: container: Handle EPIPE errors when displaying help.
* guix/scripts/container.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:54 +02:00
Simon Tournier
2ac8e95dba
scripts: challenge: Handle EPIPE errors when displaying help.
* guix/scripts/challenge.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:54 +02:00
Simon Tournier
de63efc802
scripts: build: Handle EPIPE errors when displaying help.
* guix/scripts/build.scm (%options): Handle EPIPE errors when displaying help.
2023-10-17 14:51:54 +02:00
Simon Tournier
b53742def3
scripts: archive: Handle EPIPE errors when displaying help.
* guix/scripts/archive.scm (%options): Handle EPIPE errors when displaying
help.
2023-10-17 14:51:53 +02:00
Simon Tournier
b4d1eb53c0
ui: Handle EPIPE errors when displaying Guix version.
Fixes <https://issues.guix.gnu.org/66254>.
Reported by Clément Lassieur <clement@lassieur.org>.

* guix/ui.scm (show-version-and-exit): Handle EPIPE errors when displaying
version.
2023-10-17 14:51:53 +02:00
Sören Tempel
435090fa3f
pack: Allow setting a custom image tag for Docker images
Previously, the image repository name was automatically computed from
the packages in the manifest without allowing the user to set a custom
one. As such, changing the packages in the manifest would result in a
new image name. Thereby requiring updating documentation et cetera when
using `docker load` directory on the resulting image.

Inspired by `docker build -t`, this commit adds a new Docker-specific
option to `guix pack` which allows setting a custom repository name for
the resulting image. If this option is not specified, pack falls back
to computing the name from the manifest. Therefore, this change is
entirely backwards compatible.

Documentation has been added with: 373ec2cf8c.

* guix/scripts/pack.scm (guix-pack): Add --image-tag option.
(%docker-format-options): New constant.
(show-docker-format-options): New procedure.
(show-docker-format-options/detailed): New procedure.
(docker-image): Allow setting a custom
repository name for the created docker image via extra-options.

Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-16 09:08:13 +02:00
Ludovic Courtès
d0fed2f4df
locate: Do not return the system database when it is too old.
Fixes a bug whereby ‘guix locate’ would pick the system database, then
decide it’s too old, try to update it, and fail because it’s not
writable by unprivileged users.

Fixes <https://issues.guix.gnu.org/66612>.

* guix/scripts/locate.scm (file-age): New procedure.
(suitable-database): Add ‘age-update-threshold’ parameter and honor it.
(guix-locate): Remove ‘file-age’.  Pass ‘age-update-threshold’ to the
‘database’ option.

Reported-by: Matt Wette <matt.wette@gmail.com>
2023-10-18 18:21:04 +02:00
Ludovic Courtès
75bdf8e06a
shell: Take grafting into account when caching.
Fixes <https://issues.guix.gnu.org/64856>.

* guix/scripts/shell.scm (profile-file-cache-key)
(profile-spec-cache-key): Take (%graft?) into account.

Reported-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-12 18:53:07 +02:00
Ricardo Wurmus
9d4339afb1
build-system/minify: Use esbuild.
* guix/build-system/minify.scm (default-uglify-js): Replace this procedure...
(default-esbuild): ...with this new procedure.
(lower): Use it, and add "esbuild" to build inputs.
* guix/build/minify-build-system.scm (minify): Invoke esbuild instead of
setting up a pipe to uglifyjs.
* gnu/packages/cran.scm (r-shiny)[native-inputs]: Replace node-uglify-js with
esbuild.
* gnu/packages/statistics.scm (r-dt)[native-inputs]: Same.
2023-10-06 16:37:16 +02:00
Ludovic Courtès
762fdbdef5
perform-download: Set PATH before invoking ‘git’.
Fixes <https://issues.guix.gnu.org/66305>.
Reported by Guillaume Le Vaillant <glv@posteo.net>.

* guix/scripts/perform-download.scm (perform-git-download): Add call to
‘setenv’.
2023-10-05 23:14:53 +02:00
Ricardo Wurmus
3fba8cd274
refresh: Fix sorting of updates by file and line number.
* guix/scripts/refresh.scm (guix-refresh): Add cascade-sort procedure and use
it to sort specs by package location.
2023-10-05 15:16:26 +02:00
Maxim Cournoyer
2d8aa104aa
search-paths: Add GCC search paths.
* guix/search-paths.scm ($C_INCLUDE_PATH, $CPLUS_INCLUDE_PATH)
($LIBRARY_PATH, %gcc-search-paths): New variables.
2023-10-04 23:30:41 -04:00
Jean-Pierre De Jesus DIAZ
3ba8f3f0d8
guix: meson-configuration: Fix boolean assigment.
* guix/build/meson-configuration.scm (write-assigment): Print true for
  #t and false for #f.  Previously it was inverting the values.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-04 14:58:42 +02:00
Nikolaos Chatzikonstantinou
c6eed13c87
archive: Fix ‘--version’ typo.
* guix/scripts/archive.scm (%options): Replace 'build' by 'archive'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-28 11:44:09 +02:00
Tobias Geerinckx-Rice
974b04ab80
read-print: Be more mindful of horizontal space in packages.
Perhaps due to their staged nature, packages tend to be ‘lopsided’: deeply
nested, with the most elaborate code on the {build,right-hand-,in}side, in
snippets and phases.

When we indent outer forms too eagerly, we can easily run short on
columns by the time we get to the build code, reducing readability.  A
few strategically-placed newlines early on can make a big difference.

* guix/read-print.scm (%newline-forms): Add a newline after opening a
<package> source field or an argument list.  Compensate by removing the
base32 special case, which is now unnecessary.
2023-09-24 02:00:00 +02:00
Ludovic Courtès
13b0cf85eb
git-download: Use “builtin:git-download” when available.
Fixes <https://issues.guix.gnu.org/63331>.

Longer-term this will remove Git from the derivation graph when its sole
use is to perform a checkout for a fixed-output derivation, thereby
breaking dependency cycles that can arise in these situations.

* guix/git-download.scm (git-fetch): Rename to…
(git-fetch/in-band): … this.  Deal with GIT or GUILE being #f.
(git-fetch/built-in, built-in-builders*, git-fetch): New procedures.
* tests/builders.scm ("git-fetch, file URI"): New test.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
c4a1d69a69
perform-download: Use the ‘git’ command captured at configure time.
* guix/scripts/perform-download.scm (perform-git-download): Pass #:git-command
to ‘git-fetch-with-fallback’.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
f651a35969
build: Add dependency on Git.
* configure.ac: Check for ‘git’ and substitute ‘GIT’.
* guix/config.scm.in (%git): New variable.
* guix/self.scm (compiled-guix): Define ‘git’ and pass it to
‘make-config.scm’.
(make-config.scm): Add #:git; emit a ‘%git’ variable.
* doc/guix.texi (Requirements): Add it.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
95f2123135
daemon: Add “git-download” built-in builder.
The new builder makes it possible to break cycles that occurs when the
fixed-output derivation for the source of a dependency of ‘git’ would
itself depend on ‘git’.

* guix/scripts/perform-download.scm (perform-git-download): New
procedure.
(perform-download): Move fixed-output derivation check to…
(guix-perform-download): … here.  Invoke ‘perform-download’ or
‘perform-git-download’ depending on what ‘derivation-builder’ returns.
* nix/libstore/builtins.cc (builtins): Add “git-download”.
* tests/derivations.scm ("built-in-builders"): Update.
("'git-download' built-in builder")
("'git-download' built-in builder, invalid hash")
("'git-download' built-in builder, invalid commit")
("'git-download' built-in builder, not found"): New tests.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
9d0e2002a5
perform-download: Remove unused one-argument clause.
Code in ‘builtins.cc’ only ever invokes ‘guix perform-download’ with two
arguments.

* guix/scripts/perform-download.scm (guix-perform-download): Remove
unused one-argument clause.
(perform-download): Make ‘output’ parameter mandatory; remove ‘output*’
variable.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
c7ed1e0160
git-download: Honor the ‘GUIX_DOWNLOAD_FALLBACK_TEST’ environment variable.
* guix/git-download.scm (git-fetch): Honor ‘%download-fallback-test’.
2023-09-26 17:36:58 +02:00
Ludovic Courtès
811b249397
git-download: Move fallback code to (guix build git).
* guix/build/git.scm (git-fetch-with-fallback): New procedure, with code
taken from…
* guix/git-download.scm (git-fetch): … here.
[modules]: Remove modules that are no longer directly used in ‘build’.
[build]: Use ‘git-fetch-with-fallback’.
2023-09-26 17:36:57 +02:00
Simon Tournier
94f3831e5b
git: Restore 'false-if-git-not-found' in 'reference-available?'.
* guix/git/scm (reference-available?): Add 'false-if-git-not-found' for the
case 'commit.
2023-09-25 12:00:18 +02:00
Liliana Marie Prikler
cdbd81ce14
Merge branch 'master' into emacs-team 2023-09-22 23:54:34 +02:00
Simon Tournier
6d33c1f806
git: Avoid touching the network unless needed in 'reference-available?'.
Follow-up of 756e336fa0 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-22 14:42:56 +02:00
Mathieu Othacehe
e5ed1712da
image: Introduce the mbr-hybrid-raw image type.
Until 209204e23b and
d57cab7641, 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-20 09:38:36 +02:00
Janneke Nieuwenhuizen
15c5f1a2c2
self: Compile guix-packages-base in chunks of 10 files.
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-19 11:01:14 +02:00
Janneke Nieuwenhuizen
658de25e99
self: Build directories in chunks of max 25 files at a time.
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-18 06:46:03 +02:00
Jean-Pierre De Jesus DIAZ
19b6173708
transformations: tuned-package: Use target on cross-compile.
* 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-17 15:31:03 +02:00
Liliana Marie Prikler
94ca5b4357
Merge branch 'master' into emacs-team 2023-09-09 12:22:14 +02:00
Janneke Nieuwenhuizen
1ef4974be9
guix: shell: Don't whitelist / by typo in `shell-authorized-directories'.
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-08 22:51:25 +02:00
Maxime Devos
96eda590e1
lint: Check that (cc-for-target) and friends are used.
"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-08 19:12:15 +02:00
Hilton Chain
4a00fa9bea
build: emacs-utils: Adjust ‘emacs-compile-directory’ for Emacs 29.
* guix/build/emacs-utils.scm (emacs-compile-directory): After native
compilation, write the bytecode file with ‘comp-write-bytecode-file’.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-09-07 20:25:06 +02:00
Simon Tournier
d552c2508f
guix: packages: Support package/inherit by package-field-location.
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-06 16:41:06 -04:00
Maxim Cournoyer
87dab3e36b
gnu-maintenance: Do not error when there are no candidates.
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-06 01:03:27 -04:00
Maxim Cournoyer
a87d722570
git: Fix typo in reference-available? comment.
* guix/git.scm (reference-available?): Fix typo.
2023-09-05 23:04:26 -04:00
Maxim Cournoyer
c3d48d024b
time-machine: Also validate the reference from a channels file.
* 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-05 19:52:20 -04:00
Maxim Cournoyer
756e336fa0
Revert "guix: git: Avoid touching the network unless needed in 'reference-available?'."
This reverts commit a789dd5865, 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-05 19:52:20 -04:00
Maxim Cournoyer
fd09e7b053
gnu-maintenance: Do not crash on refresh when origin URI is a list.
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-09-05 19:52:19 -04:00
Liliana Marie Prikler
9d074e16c7
Merge branch 'master' into emacs-team 2023-08-26 07:08:03 +02:00
Josselin Poiret
106ad23ae4
graph: Add GraphML backend.
* 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-25 14:24:43 +02:00
Josselin Poiret
d57cab7641
image: Add mbr-raw-image-type and use by default.
* 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-25 14:24:21 +02:00
Nicolas Goaziou
738b0e4ccc
guix: profiles: Detect TeX Live packages propagated from non-TeX Live inputs.
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-24 16:03:18 +02:00
Ludovic Courtès
f4d0d0bd5e
Revert "self: Build gnu/packages/*.go in 26 steps."
This reverts commit 5898b2e8a3, which led
to Guix where many .go files would be missing, as reported in
<https://issues.guix.gnu.org/65456>.
2023-08-22 23:50:53 +02:00
Janneke Nieuwenhuizen
5898b2e8a3
self: Build gnu/packages/*.go in 26 steps.
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-22 21:21:34 +02:00
Maxim Cournoyer
c655231b72
gnu-maintenance: Improve check for disabled host names.
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-22 12:38:50 -04:00
Maxim Cournoyer
91c8bd01f8
download: Add mirrors for Qt.
* guix/download.scm (%mirrors): Augment with qt mirrors.

Series-changes: 2
- Move authoritative mirror last, as it's too slow.
2023-08-22 12:32:19 -04:00
Attila Lendvai
e318b62df3
ssh: Also print the user when authentication fails.
* guix/ssh.scm (open-ssh-session): Show user in error message.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-08-22 11:17:53 +02:00
Liliana Marie Prikler
50b2db40ea
guix: emacs-utils: Add ert-number-tests.
* guix/build/utils.scm (ert-number-tests): New variable.
2023-08-19 01:37:20 +02:00
Nicolas Graves
9be28375cf
reconfigure: Use let* from srfi-71.
* guix/scripts/system/reconfigure.scm (upgrade-shepherd-services): Merge
'let' + 'let*' in just 'let*'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-12 23:07:40 +02:00
fanquake
bcdafd00a3
platform: Add powerpc64-linux.
* guix/platforms/powerpc.scm (powerpc64-linux): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-08-12 23:02:31 +02:00
Ricardo Wurmus
b6441f7bd0
upstream: Compare symbols to symbols.
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-13 22:17:21 +02:00
Maxim Cournoyer
f0e05411bd
search-paths: Add $TZDIR.
* guix/search-paths.scm ($TZDIR): New search path.
2023-09-12 10:03:44 -04:00
Maxim Cournoyer
2a7f031ca9
gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs.
This reinstate commit a5b5df7f7f with a fix to
the inner expand-uri procedure.
2023-09-11 23:39:13 -04:00
Maxim Cournoyer
a9d5d1d9dd
Revert "gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs."
This reverts commit a5b5df7f7f.  Pushed too
early.
2023-09-11 23:30:43 -04:00
Maxim Cournoyer
a5b5df7f7f
gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs.
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-11 22:53:38 -04:00
宋文武
597af70fd2
Merge branch 'kde-updates' 2023-08-19 05:02:00 +08:00
Ludovic Courtès
9c8098424b
pull, time-machine: Add '-q' to ignore channel files.
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-17 17:33:53 +02:00
Ludovic Courtès
3363ff1867
ui: 'load*' accepts /dev/fd/N files pointing to a pipe.
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-17 17:33:53 +02:00
宋文武
0ffbdf3456
Merge remote-tracking branch 'origin/master' into kde-updates 2023-08-17 18:38:23 +08:00
Maxim Cournoyer
79ec651a28
scripts: time-machine: Error when attempting to visit too old commits.
* 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-16 21:34:13 -04:00
Maxim Cournoyer
ecab937897
pull: Tag commit argument with 'tag-or-commit.
For compatibility with (guix git) procedures.

* guix/scripts/pull.scm (channel-list): Also accept tag-or-commit tagged
refspec.
2023-08-16 21:34:13 -04:00
Maxim Cournoyer
addffd0988
git: Clarify commit relation reference in doc.
* 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-16 21:34:13 -04:00
Ludovic Courtès
bb7369ba8a
guix home: Create /tmp in container if needed.
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-16 22:09:38 +02:00
Nicolas Goaziou
1804a99d05
guix: import: texlive importer handles Ruby linked scripts.
* 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-16 11:47:09 +02:00
Maxim Cournoyer
2884abb3df
refresh: Add --target-version option.
* 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-15 09:38:29 -04:00
Nicolas Goaziou
1619f2c18c
guix: import: Do not prefix `fsf-free' with "license:" in texlive.
* guix/import/texlive.scm (tlpdb->package): For consistency with other
imported licenses, `fsf-free' need not be prefixed with "license:".
2023-08-14 13:44:06 +02:00
Nicolas Goaziou
6f03e4be85
guix: import: Handle X11 license in texlive importer.
* guix/import/texlive.scm (string->license): Recognize X11 license.
2023-08-14 13:42:52 +02:00
宋文武
770f3f587d
Merge remote-tracking branch 'origin/master' into kde-updates 2023-08-11 20:19:52 +08:00
Zheng Junjie
3e5192e6bb
build: qt-utils: Wrap QML2_IMPORT_PATH with 'prefix' location.
Some qml files have optional or circular dependencies, use 'prefix' instead of
'=' to get those dependencies from environment/profile.

* guix/build/qt-utils.scm (variables-for-wrapping): Use 'prefix' for
QML2_IMPORT_PATH.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-08-02 22:27:43 +08:00
walky_talky
3f092e4d76
licenses: Add Arphic-1999 (Aprhic Public License).
* guix/licenses.scm (arphic-1999): New variable.
* guix/import/utils.scm (%spdx-license-identifiers): Add Arphic-1999.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-08-01 19:40:19 +08:00
Simon Tournier
5025a68c71
scripts: pull: Teach 'channels-list' to use 'tag' git references.
* 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-29 15:24:49 -04:00
Simon Tournier
a789dd5865
guix: git: Avoid touching the network unless needed in 'reference-available?'.
* 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-29 15:23:58 -04:00
Ricardo Wurmus
c8a642de9a
import-utils: Do not include punctuation when wrapping in @code{}.
* guix/import/utils.scm (beautify-description): Exclude punctuation.
* tests/import-utils.scm: Add new test.
2023-08-28 19:08:38 +02:00
Maxim Cournoyer
1dce887776
gnu-maintenance: Consider Qt source tarballs as "release files".
* 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-26 11:38:56 -04:00
Maxim Cournoyer
bdaef69556
gnu-maintenance: Allow mirror URLs to fallback to the generic HTML updater.
* 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-26 11:38:56 -04:00
Maxim Cournoyer
6953fb9241
gnu-maintenance: Add support to rewrite version in URL path.
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-26 11:38:56 -04:00
Maxim Cournoyer
6fb8cc312d
gnu-maintenance: Extract 'canonicalize-url' from 'import-html-release'.
* 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-26 11:38:56 -04:00
Maxim Cournoyer
2654232660
gnu-maintenance: Document nested procedures in 'import-html-release'.
* guix/gnu-maintenance.scm (import-html-release): Add docstring to the
'file->signature/guess' and 'url->release' nested procedures.
2023-08-26 11:38:56 -04:00
Maxim Cournoyer
c6b5eeac92
gnu-maintenance: Accept package object in 'import-html-release' procedure.
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-26 11:38:56 -04:00
Maxim Cournoyer
a5e67dec2a
gnu-maintenance: Fix indentation.
* guix/gnu-maintenance.scm: Re-indent file.
2023-08-26 11:38:55 -04:00
Maxim Cournoyer
f6cfc993ac
gnu-maintenance: Extract url->links procedure.
* guix/gnu-maintenance.scm (url->links): New procedure.
(import-html-release): Use it.
2023-08-26 11:38:55 -04:00
Maxim Cournoyer
610d0e30e0
gnu-maintenance: Fix docstring.
* guix/gnu-maintenance.scm (import-kernel.org-release): Fix docstring.
2023-08-26 11:38:55 -04:00
Maxim Cournoyer
4110cc4f75
gnu-maintenance: Make base-url argument of import-html-release required.
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-26 11:38:55 -04:00
Nicolas Goaziou
3481a5cb37
guix: profiles: Do not raise error on incomplete TeX Live setups.
* guix/profiles.scm (texlive-font-maps): Check if TEXLIVE-SCRIPTS is present
in the manifest before trying to generate font maps.
2023-08-09 18:27:10 +02:00
Ludovic Courtès
5652c2e147
system: Do not check initrd modules for pseudo file systems.
Reported by hako on #guix.

* gnu/machine/ssh.scm (machine-check-initrd-modules): Filter out pseudo
file systems from 'file-systems'.
* guix/scripts/system.scm (check-initrd-modules): Likewise.
2023-08-08 18:01:54 +02:00
Nicolas Goaziou
c173819c8e
guix: profiles: Fix auto-generated file deletion.
* guix/profiles.scm (texlive-font-maps): Make sure auto-generated file exists
before deleting it, which is not guaranteed when creating the initial texmf
tree union.

This is a followup to e43cbeafd1.
2023-07-30 10:57:41 +02:00
Nicolas Goaziou
e43cbeafd1
guix: profiles: Delete generated files.
* guix/profiles.scm (texlive-font-maps): Delete generated files.

Fixes <https://issues.guix.gnu.org/64906>.
2023-07-29 01:09:40 +02:00
Christopher Baines
3bb3fddb5c
download-nar: Improve output.
Report errors that occur, output the "Downloading from " line before starting
to report progress and end the output with a newline.
2023-07-28 18:08:17 +01:00
Hilton Chain
8874f2da2c
scripts: system: Remove duplicated "--target=TRIPLET" in help messages.
It's already included in (show-cross-build-options-help).

* guix/scripts/system.scm (show-help): Remove "--target=TRIPLET".

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2023-07-28 21:52:18 +08:00
Efraim Flashner
1fd4f544b3
transformations: Wrap go binary.
* guix/transformations.scm (tuning-compiler): Adjust to wrap the go
binary with the appropriate environment variable.
(build-system-with-tuning-compiler): Remove custom 'set-microarchitecture
phase.
2023-07-25 16:07:02 +03:00
Ricardo Wurmus
b9bd1bcce9
import/utils: beautify-description: Wrap class names in @code{...}.
* guix/import/utils.scm (beautify-description): Add procedure to wrap words in
@code{...} markup.
* tests/import-utils.scm: Add two tests.
2023-07-19 15:53:28 +02:00