Commit Graph

5712 Commits

Author SHA1 Message Date
Ludovic Courtès
709f30b8e4
lint: refresh: Warn about missing or dysfunctional updaters.
This feedback should help us improve updaters.

* guix/lint.scm (check-for-updates): Return a warning when PACKAGE lacks
an updater or when the updater returns #f.
2021-04-06 23:59:46 +02:00
Ludovic Courtès
35ca3cfbcf
upstream: 'package-latest-release' tries all the matching updaters.
* guix/upstream.scm (package-latest-release): Try UPDATERS until one of
them returns an upstream source.  This is useful for packages with
several matching updaters, such a zlib ('sourceforge' and
'generic-html').
2021-04-06 23:59:46 +02:00
Ludovic Courtès
b92cfc322d
gnu-maintenance: Add 'sourceforge' updater.
This updater currently covers 2.4% of the packages.

* guix/gnu-maintenance.scm (latest-sourceforge-release): New procedure.
(%sourceforge-updater): New variable.
* doc/guix.texi (Invoking guix refresh): Document it.
2021-04-06 23:59:46 +02:00
Ludovic Courtès
ceeea60bbc
gnu-maintenance: Recognize more source tarball naming schemes.
* guix/gnu-maintenance.scm (%package-name-rx): Add ".src" and ".orig"
suffixes.
* tests/gnu-maintenance.scm ("release-file?"): Add mpg321 and bvi
examples.
("tarball->version"): New test.
2021-04-05 12:03:09 +02:00
Ludovic Courtès
6f32e27e97
utils: 'tarball-sans-extension' recognizes ".tgz".
* guix/utils.scm (tarball-sans-extension): Add ".tgz".
2021-04-05 12:03:09 +02:00
Ludovic Courtès
e917027d1f
gnu-maintenance: Remove unused procedure.
* guix/gnu-maintenance.scm (savannah-package?): Remove.
2021-04-05 12:03:08 +02:00
Ludovic Courtès
b3679f2d10
gnu-maintenance: 'generic-html' updates packages with the right property.
* guix/gnu-maintenance.scm (html-updatable-package?): Return true for
packages with a 'release-monitoring-url' property.  This allows us to
cater for packages with source fetched over, say, FTP, but with an HTML
page to monitor.
2021-04-05 12:03:08 +02:00
Xinglu Chen
426ade6c8b
import: go: Replace underscores with hyphens in package names.
As per section '16.4.2 Package Naming' in the manual, use hypens instead
of underscores in package names.

* guix/import/go.scm (go-module->guix-package-name): Replace underscores
with hyphens.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-04-04 13:42:43 -04:00
Ludovic Courtès
973b8af725
git: Remove unused variables.
This is a followup to 298f9d29d6, which
left those variables despite being unnecessary.

* guix/git.scm (clone*, update-cached-checkout): Remove unused
'auth-method' variable.
2021-04-02 23:22:14 +02:00
Jelle Licht
f6c43c932a
gnu: Add node-lts.
* gnu/packages/node.scm (node-lts): New variable.
* guix/build-system/node.scm (default-node): Use it.
2021-04-02 18:04:24 +02:00
Jelle Licht
23ea84cdf0
build-system: Rewrite node build system.
* guix/build/node-build-system.scm: Rewrite it.
* guix/build-system/node.scm: Adjust accordingly.
* gnu/packages/node-xyz.scm (node-semver): Likewise.

Co-authored-by: Timothy Sample <samplet@ngyro.com>
2021-04-02 18:04:22 +02:00
zimoun
4056ba3645
scripts: show: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/show.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:55 +02:00
zimoun
0fac33a8ea
scripts: search: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/search.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:55 +02:00
zimoun
f1bf6d3dbd
scripts: repl: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/repl.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:54 +02:00
zimoun
ec3090e0c2
scripts: publish: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/publish.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:54 +02:00
zimoun
f4070b153d
scripts: edit: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/edit.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:54 +02:00
zimoun
d8382d1ef6
scripts: download: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/download.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:54 +02:00
zimoun
8e4ca1b1d0
scripts: discover: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/discover.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:54 +02:00
zimoun
946f563d91
scripts: describe: Replace 'args-fold*' by 'parse-command-line'.
* guix/scripts/describe.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-01 14:58:54 +02:00
Tobias Geerinckx-Rice via Bug reports for GNU Guix
1126bb9cf3
lint: Warn about single-character package names.
A common-sense exception is made for R.

* guix/lint.scm (check-name): New procedure.
(%local-checkers): Add it.
2021-04-01 14:35:59 +02:00
Ludovic Courtès
8f9052d543
scripts: Scripts that defaulted to -v2 now default to -v3.
This is a followup to e45ef9a648.

* guix/scripts/archive.scm (%default-options): Change 'verbosity' to 3.
* guix/scripts/build.scm (%default-options): Likewise.
* guix/scripts/copy.scm (%default-options): Likewise.
2021-03-31 16:08:05 +02:00
Ludovic Courtès
e45ef9a648
status: Don't display download URLs for '--verbosity=1'.
With this change, each substitute occupies a single line of
output (instead of two) when using '-v1', the default for 'guix package'
& co.

* guix/status.scm (print-build-event): Add #:print-urls? and honor it.
(print-build-event/quiet): Pass #:print-urls? #f.
(print-build-event/quiet-with-urls): New procedure.
(logger-for-level): Add case for LEVEL 2.
* doc/guix.texi (Common Build Options): Adjust '--verbosity'
documentation.
2021-03-31 15:57:46 +02:00
Ludovic Courtès
1fa4aff1fb
substitute: Emit a single newline upon completion.
The immediate effect is that, with '--verbosity=1', only two lines are
displayed for each substitute, instead of two lines followed by an empty
line.

* guix/scripts/substitute.scm (process-substitution): Emit a single
newline upon completion when PRINT-BUILD-TRACE? is true.
2021-03-31 15:57:46 +02:00
Ludovic Courtès
1575da6062
gnu-maintenance: Recognize "-source" tarball suffix.
Fixes <https://bugs.gnu.org/47398>.
Reported by Léo Le Bouter <lle-bout@zaclys.net>.

* guix/gnu-maintenance.scm (%tarball-rx): Add "-[Ss]ource" suffix.
* tests/gnu-maintenance.scm ("release-file?"): Add exiv2 example.
2021-03-29 23:33:40 +02:00
zimoun
55c25ee4c5
scripts: import: cran: Add missing help for 'style' option.
* guix/scripts/import/cran.scm (show-help): Add help message for 'style'
option.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2021-03-29 19:53:50 +01:00
Mathieu Othacehe
e733f66b5b
Fix substitutes server discovery.
This is a follow-up of bc3896db25.

* guix/scripts/substitute.scm (%local-substitute-urls): Test for "true"
instead of "yes".
2021-03-29 16:57:10 +02:00
Ludovic Courtès
19c6ea9ca4
gexp: 'gexp->script' uses #:guile also as the guile-for-build.
Previously 'gexp->script' would unconditionally use the
default #:guile-for-build value of 'gexp->derivation'.

* guix/gexp.scm (gexp->script): Pass #:guile to 'load-path-expression'.
Pass #:guile-for-build to 'gexp->derivation'.
2021-03-29 16:47:23 +02:00
Ludovic Courtès
58210fbea2
gexp: Add #:guile parameter to 'load-path-expression'.
* guix/gexp.scm (load-path-expression): Add #:guile parameter and honor it.
2021-03-29 16:47:23 +02:00
Ludovic Courtès
3a5fbced6f
gexp: 'imported+compiled-modules' fully honors #:guile.
* guix/gexp.scm (imported+compiled-modules): Pass #:guile to
'imported-modules'.
2021-03-29 16:47:22 +02:00
zimoun
9f7b599037
build-system/julia: Turn on deprecation warnings.
* guix/build/julia-build-system.scm (check): Set option '--depwarn=yes'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-03-29 16:47:18 +02:00
Felix Gruber
74a625ebad
licenses: Add Free Art License 1.3.
* guix/licenses.scm (lal1.3): New variable.
* guix/import/utils.scm (spdx-string->license): Add LAL-1.3.

Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2021-03-29 11:56:05 +02:00
Ludovic Courtès
673e5276f6
http-client: Don't drop failed query when reconnecting.
Reported by Christopher Baines <mail@cbaines.net>.

* guix/http-client.scm (http-multiple-get): Change 2nd argument to
'drop' to PROCESSED when (false-if-networking-error ...) returns #f.
2021-03-28 22:30:59 +02:00
Ludovic Courtès
45fce38fb0
http-client: 'http-multiple-get' is tail-recursive again.
Fixes <https://bugs.gnu.org/47283>.

Commit 205833b72c made 'http-multiple-get'
non-tail-recursive.  Each recursive call would install an exception
handler.  As the number of iterations grows beyond 1,000, quadratic
complexity of 'raise-exception' would show and we'd spend most of our
time there.

* guix/http-client.scm (false-if-networking-error): New macro.
(http-multiple-get): Use it around 'write-request' and 'put-bytevector'
calls, and around 'read-response' call, in lieu of the inline 'catch'
forms.
2021-03-27 22:52:51 +01:00
Ludovic Courtès
96aa98b6ca
import: print: Improve origin method name guesswork.
Fixes <https://bugs.gnu.org/47375>.
Reported by Léo Le Bouter <lle-bout@zaclys.net>.

* guix/import/print.scm (package->code): For METHOD, use 'variable-name'
preferably, and call 'procedure-name' as a last resort.
2021-03-26 00:04:04 +01:00
Ludovic Courtès
4ac3e010c9
lint: archival: Gracefully handle packages with a #f hash value.
Fixes <https://bugs.gnu.org/47293>.
Reported by Luis Felipe.

* guix/lint.scm (check-archival): Check whether 'content-hash-value'
returns true.
2021-03-26 00:04:04 +01:00
Chris Marusich
93f21e1a35
utils: Fix target-64bit? on powerpc64le-linux.
* guix/utils.scm (target-64bit?): Change the string from "ppc64" to
"powerpc64", which matches Guix system names like "powerpc64le-linux".
2021-03-23 23:19:58 -07:00
Chris Marusich
c29bfbfc78
syscalls: Fix RNDADDTOENTCNT on powerpc64le-linux.
This fixes the failing test add-to-entropy-count in tests/syscalls.scm on
powerpc64le-linux.

* guix/build/syscalls.scm (RNDADDTOENTCNT): When %host-type starts with
"powerpc64le", set this to #x80045201.  Otherwise, set it to #x40045201 as
before.
2021-03-23 23:19:58 -07:00
Chris Marusich
b57de27d03
syscalls: Fix clone on powerpc64le-linux.
This makes the clone procedure work correctly and fixes some test failures on
powerpc64le-linux, including tests/containers.scm.

* guix/build/syscalls.scm (clone): Add an entry for ppc64le.
2021-03-23 23:19:57 -07:00
Chris Marusich
a16eb6c5f9
Add powerpc64le-linux as a supported Guix architecture.
This makes powerpc64le-linux a supported architecture for Guix, but not for
Guix System.

* Makefile.am (SUPPORTED_SYSTEMS): Add an entry for powerpc64le-linux.
* etc/guix-install.sh (chk_sys_arch): Same.
* guix/packages.scm (%supported-systems): Same.
* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): Same.
* tests/guix-build.sh (all_systems): Same.
2021-03-23 23:19:57 -07:00
Chris Marusich
fc7cf0c1ec
utils: Add target-powerpc? procedure.
* guix/utils.scm (target-powerpc?): New exported procedure.
2021-03-23 23:19:55 -07:00
Ludovic Courtès
cab1831528
gnu-maintenance: Exclude GNU Radio from the 'gnu-ftp' updater predicate.
'gnu-ftp' would only list old GNU Radio releases since new releases are
no longer uploaded to ftp.gnu.org.  With this change, 'generic-html' is
picked up instead.

* guix/gnu-maintenance.scm (pure-gnu-package?): Return #f for GNU Radio.
2021-03-21 23:41:02 +01:00
Ludovic Courtès
9da5ec7099
substitute: Choose compression method based on past CPU usage.
This stems from the observation that substitute download can be
CPU-bound when high-speed networks are in use:

  https://lists.gnu.org/archive/html/guix-devel/2020-12/msg00177.html

* guix/narinfo.scm (decompresses-faster?): New procedure.
(narinfo-best-uri): Add #:fast-decompression?.
* guix/scripts/substitute.scm (%prefer-fast-decompression?): New
variable.
(call-with-cpu-usage-monitoring): New procedure.
(with-cpu-usage-monitoring): New macro.
(display-narinfo-data, process-substitution): Pass #:fast-decompression?
to 'narinfo-best-uri'.
(process-substitution): Wrap 'restore-file' call in
'with-cpu-usage-monitoring'.  Set '%prefer-fast-decompression?'.
2021-03-21 23:41:01 +01:00
Ludovic Courtès
1710e8cb59
gnu-maintenance: Accept underscores as package/version separators.
Fixes <https://bugs.gnu.org/47256>.
Reported by Léo Le Bouter <lle-bout@zaclys.net>.

* guix/gnu-maintenance.scm (%tarball-rx, %package-name-rx): Accept
underscore as the package/version separator in tarball names.
* tests/gnu-maintenance.scm ("release-file?"): Add "mediainfo" test.
2021-03-20 22:29:14 +01:00
Ludovic Courtès
43937666ba
download: 'tls-wrap' treats premature TLS termination as EOF.
This is a backport of Guile commit
076276c4f580368b4106316a77752d69c8f1494a.

* guix/build/download.scm (tls-wrap)[read!]: Wrap 'get-bytevector-n!'
call in 'catch' and handle 'error/premature-termination' GnuTLS errors.
2021-03-19 21:44:36 +01:00
Ludovic Courtès
813cddfa57
build-system/node: Remove unnecessary imports.
* guix/build-system/node.scm: Remove unnecessary imports.
2021-03-19 13:23:27 +01:00
Ludovic Courtès
f7008ca713
download: Autoload (guix build download).
* guix/download.scm: Autoload (guix build download).
(url-fetch): Rename to...
(url-fetch*): ... this, locally, to allow for #:autoload.
* guix/status.scm: Autoload (guix build download).
2021-03-19 13:23:27 +01:00
Ludovic Courtès
c1940fde43
git-download: Autoload Guile-Git.
* guix/git-download.scm: Autoload (git ...) modules.
2021-03-19 13:23:27 +01:00
Ludovic Courtès
065d832fc2
guix package: Autoload Guile-JSON and (guix describe).
* guix/scripts/build.scm: Autoload (guix import json).
* guix/scripts/package.scm: Autoload (guix import json) and (guix
describe).
2021-03-19 13:23:27 +01:00
Ludovic Courtès
4f04155232
guix describe: Autoload Guile-JSON.
* guix/scripts/describe.scm: Autoload (json).
2021-03-19 13:23:27 +01:00
Ludovic Courtès
a0f83602f8
gnu-maintenance: Better handle empty #:directory for 'latest-html-release'.
In particular, this makes sure we don't add a trailing slash when the
user specified a 'release-monitoring-url' property for the
'generic-html' updater.

* guix/gnu-maintenance.scm (latest-html-release): When DIRECTORY is
empty, do not append it.
2021-03-19 13:23:26 +01:00