Commit Graph

6892 Commits

Author SHA1 Message Date
pukkamustard
052ec8bcc7
guix: ocaml: Add package-with-ocaml5.0.
* guix/build-system/ocaml.scm (package-with-ocaml5.0)
(strip-ocaml5.0-variant): New variables.
* gnu/packages/ocaml.scm (ocaml5.0-dune-bootstrap)
(ocaml5.0-dune, ocaml5.0-dune-configurator)
(ocaml5.0-csexp, ocaml5.0-result): New variables.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2022-12-21 21:58:56 +01:00
Maxim Cournoyer
30465558bd
guix system: Skip initrd modules check when using --target.
* guix/scripts/system.scm (perform-action): Do not call CHECK-INITRD-MODULES
when the %current-target-system parameter is set.
2022-12-21 14:22:13 -05:00
Maxim Cournoyer
68330e7797
kconfig: Streamline comment in 'modify-defconfig'.
* guix/build/kconfig.scm (modify-defconfig): Streamline comment.
2022-12-20 21:19:33 -05:00
Maxim Cournoyer
1d44866280
kconfig: Mostly preserve keys ordering of original defconfig.
* guix/build/kconfig.scm (defconfig->alist): Reverse the results of lists
constructed with cons.
2022-12-20 21:19:30 -05:00
Maxim Cournoyer
d368210af5
kconfig: Move pair->config-string up.
* guix/build/kconfig.scm (pair->config-string): Move earlier, to match the
natural dependency of declarations (useful when experimenting at the REPL).
2022-12-20 21:19:26 -05:00
Ludovic Courtès
fcc4e51e61
read-print: Add special forms.
* guix/read-print.scm (%special-forms): Add 'define-configuration' and
'match-record'.
2022-12-20 16:56:04 +01:00
Ricardo Wurmus
5a1a5677cd
import/cran: Add more mappings from sysnames to Guix package names.
* guix/import/cran.scm (transform-sysname): Add more mappings.
2022-12-19 18:29:45 +01:00
jgart
061609ee57
guix: packages: Add type hint comment to home-page record field.
* guix/packages.scm (package)[home-page]: Add type comment.

Signed-off-by: Andrew Tropin <andrew@trop.in>
2022-12-19 15:26:41 +04:00
Lars-Dominik Braun
bbcd06e56c
ui: Take package upstream name into account when searching.
* guix/ui.scm (%package-metrics): Add PACKAGE-UPSTREAM-NAME*.
* tests/ui.scm ("package-relevance and upstream name"): New test.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-12-13 17:46:39 +01:00
Lars-Dominik Braun
052faadde7
packages: Add 'package-upstream-name*'.
* guix/packages.scm (package-upstream-name*): New procedure.
* tests/packages.scm ("package-upstream-name*"): New test.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-13 17:46:39 +01:00
Ludovic Courtès
302a84a593
Merge branch 'version-1.4.0' 2022-12-12 15:03:35 +01:00
Ludovic Courtès
3677b97030
pki: 'public-keys->acl' deduplicates entries.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>
in <https://issues.guix.gnu.org/50892>.

* guix/pki.scm (public-keys->acl): Add call to 'delete-duplicates'.
* tests/pki.scm ("public-keys->acl deduplication"): New test.
2022-12-12 15:03:05 +01:00
Ludovic Courtès
7866294e32
deduplicate: Use 'sendfile' only with file ports.
Fixes a regression introduced in b129026e2e.

* guix/store/deduplication.scm (dump-file/deduplicate): Use 'sendfile'
only when INPUT' is a file port.
2022-12-10 18:13:39 +01:00
Ludovic Courtès
b129026e2e
deduplicate: Use 'sendfile' for small file copies.
* guix/store/deduplication.scm (dump-file/deduplicate): Use 'sendfile'
instead of 'dump-port'.
* tests/store-deduplication.scm ("copy-file/deduplicate, below %deduplication-minimum-size"):
New test.
2022-12-10 10:56:48 +01:00
Ludovic Courtès
0406df0b9b
environment: '-C' doesn't throw when the NSS is dysfunctional.
Previously, if the name service switch was dysfunctional, as can happen
on foreign distros lacking nscd, "guix shell -C" would crash with a
backtrace on the uncaught 'getpwuid' exception.  To address that, catch
the exception and deal with it gracefully.

Reported by remsd1 on #guix.

* guix/scripts/environment.scm (launch-environment/container): Wrap
'getpwuid' call in 'false-if-exception'.
2022-12-09 09:59:53 +01:00
Ludovic Courtès
754a7660a1
records: 'match-record' checks fields at macro-expansion time.
This allows 'match-record' to be more efficient (field offsets are
computed at compilation time) and to report unknown fields at
macro-expansion time.

* guix/records.scm (map-fields): New macro.
(define-record-type*)[rtd-identifier]: New procedure.
Define TYPE as a macro and use a separate identifier for the RTD.
(lookup-field, match-record-inner): New macros.
(match-record): Rewrite in terms of 'match-error-inner'.
* tests/records.scm ("match-record, simple")
("match-record, unknown field"): New tests.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Rename 'log-file'
local variable to 'main-log-file'.
* gnu/services/getmail.scm (serialize-getmail-configuration-file): Move
after <getmail-configuration-file> definition.
2022-12-08 13:21:23 +01:00
Ludovic Courtès
e625e9b194
environment: '-C' doesn't throw when the NSS is dysfunctional.
Previously, if the name service switch was dysfunctional, as can happen
on foreign distros lacking nscd, "guix shell -C" would crash with a
backtrace on the uncaught 'getpwuid' exception.  To address that, catch
the exception and deal with it gracefully.

Reported by remsd1 on #guix.

* guix/scripts/environment.scm (launch-environment/container): Wrap
'getpwuid' call in 'false-if-exception'.
2022-12-09 08:46:21 +01:00
Ludovic Courtès
c370998f01
gnu-maintenance: 'generic-html' updater ignores invalid host names.
Previously "guix refresh xkbset" for example would crash with a
getaddrinfo-error because the domain name is invalid.  Now it reports
failure to update.

Reported by Tyler Wolf <tyler@twolf.io>
in <https://issues.guix.gnu.org/59598>.

* guix/gnu-maintenance.scm (latest-html-updatable-release): Return #f
upon 'getaddrinfo-error' as well.
2022-12-08 13:07:45 +01:00
Maxim Cournoyer
f57fbc2fb1
gnu: linux-libre: Move documentation to a separate package.
* gnu/packages/linux.scm (linux-libre-5.15-source)
(linux-libre-5.10-source): Do not apply linux-libre-infodocs-target.patch.
(make-linux-libre): Remove BUILD-DOC? argument, and
adjust patches conditional.
(make-linux-libre*): Likewise.  Remove build-doc? validation.
[arguments]: Move documentation related phases to the new
linux-libre-documentation.
[native-inputs]: Move the documentation related native inputs to
linux-libre-documentation.
(linux-libre-documentation): New variable.
* guix/build-system/linux-module.scm
(make-linux-module-builder) [arguments]: Do not delete build-doc and
install-doc phases, which no longer exist for linux-libre.
2022-12-06 22:03:44 -05:00
Christopher Baines
981f01d0cc
gnu: Resolve derivation lint warnings.
Computing derivations for these systems (i686-gnu and riscv32-linux) fails
with an error like the following:

  could not find bootstrap binary 'tar' for system

* gnu/packages/mes.scm (mescc-tools)[supported-systems]: Remove riscv32-linux.
* guix/packages.scm (%hurd-system): Remove i686-gnu.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-12-06 11:14:53 +00:00
Ludovic Courtès
7fde166715
Merge branch 'version-1.4.0' 2022-12-05 15:51:04 +01:00
Ludovic Courtès
bcbf9713da
substitute: Fix typo in 'open-connection-for-uri/cached' docstring.
* guix/scripts/substitute.scm (open-connection-for-uri/cached):
Fix docstring.
2022-12-05 15:50:23 +01:00
Ludovic Courtès
1b06e77108
modules: Recognize #:declarative?.
This addition has become necessary since commit
54003af85c, which makes use
of #:declarative? in modules produced by 'make-config.scm'.

Reported by zimoun <zimon.toutoune@gmail.com>.

* guix/modules.scm (extract-dependencies): Recognize #:declarative?,
which was introduced in Guile 3.0.8.
2022-12-02 23:20:54 +01:00
Ludovic Courtès
9672db290a
modules: Recognize #:declarative?.
This addition has become necessary since commit
54003af85c, which makes use
of #:declarative? in modules produced by 'make-config.scm'.

Reported by zimoun <zimon.toutoune@gmail.com>.

* guix/modules.scm (extract-dependencies): Recognize #:declarative?,
which was introduced in Guile 3.0.8.
2022-12-02 23:11:09 +01:00
Ludovic Courtès
047425a662
syscalls: Adjust for lack of 'libutil.so' on glibc >= 2.34.
This is a re-implementation of 3c8b6fd94c
done in a way that works for both glibc >= 2.34 and earlier versions.

* guix/build/syscalls.scm (syscall->procedure): When LIBRARY is true,
fall back to global symbols if (dynamic-link library) fails.

(cherry picked from commit 3f6c32a88f)
2022-12-02 14:58:26 +01:00
Maxim Cournoyer
4781f0458d
Revert "gnu: linux-libre: Move info manual to doc output."
This reverts commit 748ec62882.  It broke the
linux-libre-module-builder like so:

   builder for
   `/gnu/store/293jxydym9z7ck7afmrjqhiw3xpfs4i1-linux-libre-module-builder-6.0.10.drv'
   failed to produce output path
   `/gnu/store/ghmp1q5w6r1s9364rz53jd42152wgz2v-linux-libre-module-builder-6.0.10-doc'

for reasons difficult to understand.
2022-12-01 21:37:12 -05:00
Ludovic Courtès
7c1161dba4
records: 'match-record' checks fields at macro-expansion time.
This allows 'match-record' to be more efficient (field offsets are
computed at compilation time) and to report unknown fields at
macro-expansion time.

* guix/records.scm (map-fields): New macro.
(define-record-type*)[rtd-identifier]: New procedure.
Define TYPE as a macro and use a separate identifier for the RTD.
(lookup-field, match-record-inner): New macros.
(match-record): Rewrite in terms of 'match-error-inner'.
* tests/records.scm ("match-record, simple")
("match-record, unknown field"): New tests.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Rename 'log-file'
local variable to 'main-log-file'.
* gnu/services/getmail.scm (serialize-getmail-configuration-file): Move
after <getmail-configuration-file> definition.
2022-12-02 00:02:12 +01:00
Stefan
a3f638e748
build: kconfig: Add new module to modify defconfig files.
* guix/build/kconfig.scm: New file.
* Makefile.am: Register it.
* gnu/packages/bootloaders.scm (make-u-boot-package)
(make-u-boot-sunxi64-package): Add DEFCONFIGS and CONFIGS arguments.  Remove
dead code.
(u-boot-am335x-boneblack, u-boot-pinebook)
(u-boot-novena,u-boot-rockpro64-rk3399): Simplify packages by using the new
keyword arguments.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-12-01 11:57:06 -05:00
Maxim Cournoyer
748ec62882
gnu: linux-libre: Move info manual to doc output.
The kernel Linux is installed in the system profile, which means the manual
was not easily discoverable.  Move it to the "doc" output, so that users can
install the Linux documentation explicitly in their user profile without
pulling the whole Linux package.

* gnu/packages/linux.scm (make-linux-libre*) [outputs]: Conditionally add a
"doc" output.
[phases] {install-doc}: Install the info manual to the doc output, an create a
"linux" symlink to it for convenience.
* guix/build-system/linux-module.scm (make-linux-module-builder): Delete the
"doc" output, if present.
2022-12-01 10:53:49 -05:00
Maxim Cournoyer
b4be83b6ac
build: linux-module: Do not inherit the install-doc phase.
This is a followup commit to aaf1f18b80, itself
a followup to 82c43b276d (gnu:
linux-libre: Enable building info doc).

* guix/build-system/linux-module.scm
(make-linux-module-builder) [phases]: Also delete inherited 'install-doc phase.

Reported-by: John Kehayias <john.kehayias@protonmail.com>
2022-11-29 20:15:23 -05:00
Maxim Cournoyer
aaf1f18b80
build: linux-module: Do not inherit the build-doc phase.
This is a followup commit to 82c43b276d (gnu:
linux-libre: Enable building info doc).

* guix/build-system/linux-module.scm
(make-linux-module-builder) [phases]: Delete inherited 'build-doc phase.

Reported-by: John Kehayias <john.kehayias@protonmail.com>
2022-11-29 15:38:43 -05:00
Ricardo Wurmus
993ef4af7e
import/cran: Add package name mapping.
* guix/import/cran.scm (transform-sysname): Add mapping from sqlite3 to sqlite.
2022-11-29 15:27:20 +01:00
Antero Mejr
50546f9c0c
licenses: Add EUPL 1.1.
* guix/licenses.scm (eupl1.1): New variable.

Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2022-11-26 09:07:29 +01:00
zimoun
f4a7ccc976
guix: Upgrade to Bioconductor 3.16.
* guix/build-system/r.scm (bioconductor-uri): Bump Bioconductor version to
3.16.
* guix/import/cran.scm (%bioconductor-version): Same.
2022-11-24 12:31:11 +01:00
Ludovic Courtès
d33ed58169
offload: Increase default 'overload-threshold' value.
When offloading to a single machine, the previous default value would
lead 'guix offload' to wait possibly for several minutes between
subsequent builds until normalized load would finally go below 0.6.
Increasing it mitigates that.

* guix/scripts/offload.scm (<build-machine>)[overload-threshold]: Bump
to 0.8.
* doc/guix.texi (Daemon Offload Setup): Likewise.
2022-11-23 19:34:42 +01:00
Ludovic Courtès
d07dd4ccdf
reconfigure: Use SRFI-71 instead of SRFI-11.
* guix/scripts/system/reconfigure.scm (upgrade-shepherd-services)
(channel-relations): Use SRFI-71.
2022-11-22 09:43:54 +01:00
Ludovic Courtès
b2b9571935
offload: Gracefully handle 'guix repl' protocol errors.
Fixes <https://issues.guix.gnu.org/59447>.
Reported by Mathieu Othacehe <othacehe@gnu.org>.

Previously, if a machine had a buggy 'guix repl', 'guix offload' would
crash with a backtrace instead of just ignoring the machine.

* guix/scripts/offload.scm (remote-inferior*): New procedure.
(check-machine-availability)[if-true]: New procedure.
Use 'remote-inferior*' and 'if-true'.
(check-machine-status): Use 'remote-inferior*'.
2022-11-22 09:43:54 +01:00
Ludovic Courtès
60bea07593
inferior: Raise '&inferior-protocol-error' on invalid response.
* guix/inferior.scm (&inferior-protocol-error): New condition type.
(read-repl-response): Add default 'match' clause and raise it.
2022-11-22 09:43:54 +01:00
Vivien Kraus
9283c80e60
guix: modify-input: Recommend prepend instead of append.
* doc/guix.texi (Defining Package Variants): Document the "prepend" clause of
modify-inputs first.
* guix/packages.scm (modify-inputs): use "prepend" in the docstring.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-21 14:25:13 +00:00
Ludovic Courtès
82bde985f4
style: '-f' reads input files as UTF-8 by default.
Reported by mirai on #guix.

* guix/scripts/style.scm (format-whole-file): Wrap body in
'with-fluids'.  Pass #:guess-encoding to 'call-with-input-file'.
2022-11-20 23:20:31 +01:00
Ricardo Wurmus
c585b4bc68
file-systems: Always do recursive bind mounts.
Fixes <https://issues.guix.gnu.org/59185>.

* guix/build/syscalls.scm (MS_REC): New variable.
* gnu/build/file-systems.scm (mount-flags->bit-mask): Set MS_REC bit when
bind-mounting.
2022-11-20 21:27:10 +01:00
pelzflorian (Florian Pelz)
da6c6763fa
scripts: Use translations for guix.pot for service descriptions.
Previously, service descriptions appeared in both guix.pot and
packages.pot, but only translations of packages.pot were used.
Now, translations are only done with guix.pot.

This is better, because translators are more likely to translate
guix.pot, and is also easier, because files in gnu/{home/,}services
need to be in po/guix/POTFILES.in anyway and po/guix/Makevars
already acts on the 'description' keyword because of lint checkers.

* guix/scripts/home.scm (service-type-description-string):
Use translations from guix.pot.
* guix/scripts/system/search.scm (service-type-description-string)
(service-type->recutils): Likewise.
* po/packages/POTFILES.in: Move files in gnu/services to ...
* po/guix/POTFILES.in: ... here.
2022-11-20 16:01:08 +01:00
jgart
670d30972f
import: egg: Fix typo in docstring.
* gnu/import/egg.scm (Commentary): Fix typo in Commentary docstring.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-20 12:00:04 +00:00
jgart
b50be211c0
scripts: describe: Add branch information to recutils output.
* guix/scripts/describe.scm (channel->recutils): Add branch information.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-19 19:54:15 +01:00
jgart
f1354e7926
scripts: describe: Add branch information to json output.
* guix/scripts/describe.scm (channel->json): Add branch information.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-19 19:54:14 +01:00
Ludovic Courtès
a644c3a375
pack: Remove use of GOOPS in 'deb' backend.
* guix/scripts/pack.scm (debian-archive)[build]: Remove use of (oop goops).
Introduce 'keyword-ref' and use it instead of 'get-keyword'.
2022-11-19 19:54:14 +01:00
Philip McGrath
fd5e642513
import/utils: spdx-string->license: Support '+' operator.
Previously, '+' was supported only via special cases for deprecated
GNU identifiers like 'GPL-N+'.  This commit adds support
for other uses of '+', such as 'AFL-2.0+' and 'LPPL-1.0+'.

Strictly speaking, '+' is an operator, not part of the SPDX license
identifier, but it is useful to handle it here.

* guix/import/utils.scm (spdx-string->license): Support '+' operator.
* tests/import-utils.scm ("spdx-string->license"): Test it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-18 15:44:38 +01:00
Philip McGrath
07482dc051
import/utils: spdx-string->license: Match case-insensitively.
SPDX specifies that license identifiers (unlike the 'AND', 'OR', and
'WITH' operators) are matched case-insensitively.

* guix/import/utils.scm (%spdx-license-identifiers): New variable.
(spdx-string->license): Search in '%spdx-license-identifiers' using
'string-ci=?'.
* tests/import-utils.scm ("spdx-string->license"): New test.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-11-18 15:44:38 +01:00
Philip McGrath
b253efef23
import/utils: spdx-string->license: Fix incorrect docstring.
The result of 'spdx-string->license' is a symbol, not a license object.

* guix/import/utils.scm (spdx-string->license): Fix docstring.
(license->symbol): Mention 'license:' prefix in docstring.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-11-18 15:44:38 +01:00
Tobias Geerinckx-Rice
0081807e16
guix: Replace defective freemirror.org.
This ‘mirror’ is particularly problematic because it's the only one checked
by ‘guix refresh’.

* guix/gnu-maintenance.scm (%savannah-base): Substitute freedif.org.
* guix/download.scm (%mirrors): Likewise.

Reported by sash-kan on #guix.
2022-11-13 01:00:07 +01:00