Age | Commit message (Expand) | Author |
2022-10-13 | shell: Handle '--emulate-fhs' in 'guix shell', not in 'guix environment'....Previously, using 'guix shell -CF coreutils' twice (such that the
profile is cache) would result in:
guix shell: error: '--profile' cannot be used with package options
This patch fixes it by moving argument handling to (guix scripts shell),
before 'options-with-caching' is called.
* guix/scripts/environment.scm (show-environment-options-help)
(%options): Remove '--emulate-fhs'.
(guix-environment*): Pass OPTS as-is to 'options/resolve-packages'.
* guix/scripts/shell.scm (show-help, %options): Add '--emulate-fhs'.
Add the (expression . ...) component to RESULT right from the argument
handler.
* tests/guix-environment-container.sh: Change '--emulate-fhs' tests to
use 'guix shell' instead of 'guix environment'.
| Ludovic Courtès |
2022-10-13 | environment: Add '--emulate-fhs'....* guix/scripts/environment.scm (show-environment-options-help, %options): Add
'--emulate-fhs'.
(setup-fhs): New procedure. Setup for the Filesystem Hierarchy Standard (FHS)
container. Defines and uses FHS-SYMLINKS and LINK-CONTENTS to create FHS
expected directories and creates /etc/ld.so.conf.
(launch-environment): Add 'emulate-fhs?' key and implement it to set $PATH and
generate /etc/ld.so.cache before calling COMMAND.
(launch-environment/container): Add 'emulate-fhs?' and 'setup-hook' keys and
implement them. Define and use FHS-MAPPINGS, to set up additional bind mounts
in the container to follow FHS expectations.
(guix-environment*): Add glibc-for-fhs to the container packages when
'emulate-fhs?' key is in OPTS.
* doc/guix.texi (Invoking guix shell): Document '--emulate-fhs'.
(Invoking guix environment): Document '--emulate-fhs'.
* tests/guix-environment-container.sh: Add tests for '--emulate-fhs'.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| John Kehayias |
2022-10-11 | Revert "guix system: Remove unused 'read-operating-system' procedure."...This reverts commit d11a432adffe9308eafec6b77cddd3145029109e.
The 'read-operating-system' is used in Emacs-Guix.
| Ludovic Courtès |
2022-10-11 | git: Factorize 'commit-id?' predicate....* guix/git.scm (commit-id?): New procedure, copied from (guix swh).
(resolve-reference): Use it instead of inline code.
* guix/inferior.scm (channel-full-commit): Likewise.
| Ludovic Courtès |
2022-10-11 | guix import: Add a blank line after each package definition....Starting from commit 371a83b764c4993d198666e1674454eecbefcdf1, 'guix
import crate -r' (or similar) would no longer print a blank line in
between definitions. This patch fixes it.
Reported by jgart <jgart@dismail.de>.
* guix/scripts/import.scm (guix-import): Add second 'newline' call.
| Ludovic Courtès |
2022-10-10 | packages: Raise an exception for invalid 'license' values....This is written in such a way that the type check turns into a no-op at
macro-expansion time for trivial cases:
> ,optimize (validate-license gpl3+)
$18 = gpl3+
> ,optimize (validate-license (list gpl3+ gpl2+))
$19 = (list gpl3+ gpl2+)
* guix/packages.scm (valid-license-value?, validate-license): New
macros.
(<package>)[license]: Add 'sanitize' option.
(&package-license-error): New error condition type.
* tests/packages.scm ("license type checking"): New test.
| Ludovic Courtès |
2022-10-10 | licenses: Let 'license?' expand to #t in trivial cases....With this change, we have:
> ,expand (license? gpl3+)
$2 = #t
> ,expand (license? something-else)
$3 = (let ((obj something-else))
(and ((@@ (srfi srfi-9) struct?) obj)
((@@ (srfi srfi-9) eq?)
((@@ (srfi srfi-9) struct-vtable) obj)
(@@ (guix licenses) <license>))))
* guix/licenses.scm (define-license-predicate)
(begin-license-definitions): New macros
<top level>: Wrap definitions in 'begin-license-definitions'.
| Ludovic Courtès |
2022-10-05 | import/utils: beautify-description: Update to pass tests....* guix/import/utils.scm (beautify-description): Remove single quote wrapping;
escape @; exclude common abbreviations and titles from double-spacing; detect
more sentence fragments.
| Ricardo Wurmus |
2022-10-04 | channels: Warn about missing introductions....* guix/channels.scm (latest-channel-instance): Warn when CHANNEL has no
introduction and CHECKOUT contains '.guix-authorizations'.
| Ludovic Courtès |
2022-10-04 | deploy: Fix error message....* guix/scripts/deploy.scm (guix-deploy): Fix error message.
| Andrew Tropin |
2022-10-03 | gnu-maintenance: Remove retired 'gforge.inria.fr' site....* guix/gnu-maintenance.scm (html-updatable-package?): Remove "gforge.inria.fr".
| Maxim Cournoyer |
2022-10-02 | read-print: Fix indentation rule for 'match-lambda*'....Fixes <https://issues.guix.gnu.org/58040>.
Reported by Maxime Devos <maximedevos@telenet.be>.
* guix/read-print.scm (%special-forms): Set 'match-lambda*' parameter
count to 1.
| Ludovic Courtès |
2022-10-02 | transformations: Switch to SRFI-71....* guix/transformations.scm (package-with-source)
(evaluate-source-replacement-specs): Use SRFI-71 'let' instead of
'let-values'.
| Ludovic Courtès |
2022-09-30 | scripts: build: Format strings before calling display-hint....* guix/scripts/build.scm(%standard-cross-build-options): Format hint string.
%standard-cross-build-options: Ditto.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| Zhu Zihao |
2022-09-29 | transformations: '--with-source' now operates in depth....The '--with-source' option is the first one that was implemented, and
it's the only one that would operate only on leaf packages rather than
traversing the dependency graph. This change makes it consistent with
the rest of the transformation options.
* guix/transformations.scm (evaluate-source-replacement-specs): New
procedure.
(transform-package-source): Rewrite using it.
* tests/transformations.scm ("options->transformation, with-source, no
matches"): Rewrite since we no longer get a warning.
("options->transformation, with-source, in depth"): New test.
* doc/guix.texi (Package Transformation Options): Adjust examples.
| Ludovic Courtès |
2022-09-29 | import: print: Quasiquote properties...* guix/import/print.scm (package->code): Quasiquote properties.
* tests/print.scm (pkg-with-properties, pkg-with-properties-source):
New variables.
("package with properties"): New test
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| itd |
2022-09-29 | import/utils: alist->package: Include properties....* guix/import/utils.scm (alist->package): Process properties field in input
data and include it in the generated package.
* tests/import-utils.scm ("alist->package with properties"): New test.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| itd |
2022-09-28 | substitute: Retry downloading when a nar is unavailable....Fixes <https://issues.guix.gnu.org/57978>
Reported by Attila Lendvai <attila@lendvai.name>.
Previously, if a narinfo was available but its corresponding nar was
missing (for instance because the narinfo was cached and the server
became unreachable in the meantime), 'guix substitute --substitute'
would try to download the nar from its preferred location and abort when
that fails. This change forces one retry with each of the URLs.
* guix/scripts/substitute.scm (download-nar): Do not catch
'http-get-error?' exceptions.
(system-error?, network-error?, process-substitution/fallback): New
procedures.
(process-substitution): Call 'process-substitution/fallback' upon
'network-error?'.
* tests/substitute.scm ("substitute, first URL has narinfo but lacks nar, second URL unauthorized")
("substitute, first URL has narinfo but nar is 404, both URLs authorized")
("substitute, first URL has narinfo but nar is 404, one URL authorized")
("substitute, narinfo is available but nar is missing"): New tests.
| Ludovic Courtès |
2022-09-28 | substitute: Split nar download....* guix/scripts/substitute.scm (download-nar): New procedure, with most
of the code moved from...
(process-substitution): ... here. Call it.
| Ludovic Courtès |
2022-09-28 | import/cran: Process more complex license strings....* guix/import/cran.scm (string->license): Add more match clauses.
(string->licenses): Split license conjunctions at "|" and apply
string->license on each license.
(description->package): Use string->licenses.
| Ricardo Wurmus |
2022-09-28 | import/cran: Use beautify-synopsis....* guix/import/cran.scm (description->package): Use beautify-synopsis.
| Ricardo Wurmus |
2022-09-28 | import/utils: Add beautify-synopsis....* guix/import/utils.scm (beautify-synopsis): New procedure.
| Ricardo Wurmus |
2022-09-28 | import/cran: Transform external package names to Guix names....* guix/import/cran.scm (transform-sysname): New procedure.
(description->package): Use it on inputs that are derived from "sysdepends".
| Ricardo Wurmus |
2022-09-28 | import/cran: Add more strings to invalid-packages....* guix/import/cran.scm (invalid-packages): Add none, windows, and xcode.
| Ricardo Wurmus |
2022-09-26 | debug-link: Clarify what CRC is....* guix/build/debug-link.scm: Clarify "CRC"; update bug URL.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| jgart |
2022-09-26 | gnu-maintenance: Remove unused procedures....* guix/gnu-maintenance.scm (url-prefix-rewrite, adjusted-upstream-source):
Remove.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-26 | gnu-maintenance: Simplify latest-kernel.org-release....As latest-html-release now produces mirror:// URIs where possible,
the additional post-processing is not necessary anymore.
As a test, revert the dtc package back to 1.6.0 and try updating 'gash',
the mirror:// URI remains.
* gnu-maintenance.scm (latest-kernel.org-release): Do not call
adjusted-upstream-source on the result.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-26 | download: Add a kernel.org mirror....Add the mirror from (guix gnu-maintenance) to make the simplified
linux.org updater (of a later commit) work.
* download.scm (%mirrors)[kernel.org]: Add mirrors.edge.kernel.org mirror.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-26 | gnu-maintenance: Simplify latest-savannah-release....As latest-html-release now produces mirror:// URIs where possible,
the additional post-processing is not necessary anymore.
As a test, try updating 'gash', the mirror:// URI remains.
* gnu-maintenance.scm (latest-savannah-release): Do not call
adjusted-upstream-source on the result.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-26 | download: Switch savannah mirrors to HTTPS URLs....The URI scheme used for nongnu.freemirror.org needs to be consistent
between (guix download) and (guix gnu-maintenance) to make the simplified
savannah-updater (of a later commit) work. While we're at it, switch the
other mirrors to https as well.
http://download.savannah.gnu.org/releases-noredirect/ is left unmodified
because it 404s
* download.scm (%mirrors)[savannah]: Switch from http to https where possible.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-26 | gnu-maintenance: Produce mirror:// URIs in latest-html-release....Partially fixes <https://issues.guix.gnu.org/57477>.
I'm not aware of a package using both latest-html-release and mirrors, so it
has not been completely tested. However, updating "yt-dlp" appears to work
(except for git-fetch not being supported yet). The expression for the
signature-urls field had to be tweaked to not call uri-mirror-rewrite on #false.
* guix/gnu-maintenance.scm (latest-html-release)[url->research]{urls,signature-urls}:
Call uri-mirror-rewrite on the URLs.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-26 | gnu-maintenance: Produce mirror:// URIs in latest-ftp-release....Partially fixes <https://issues.guix.gnu.org/57477>.
As a test, try updating gnupg. Before the patch, a ftp:// URL was produced,
now the mirror:// is preserved.
* guix/gnu-maintenance.scm (latest-ftp-release)[file->source]{urls,signature-urls}:
Call uri-mirror-rewrite on the URLs.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-26 | lint: Extract logic of 'check-mirror-url'....It will be useful for fixing <https://issues.guix.gnu.org/57477>.
* guix/lint.scm (check-mirror-url): Extract mirror://-constructing code to ...
* guix/gnu-maintenance.scm (uri-mirror-rewrite): ... here, tweaking the API
and implementation in anticipation of future users.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-24 | build-system/go: Respect #:imported-modules when cross-compiling....Previously, #:imported-modules was ignored, causing cross-compilation
failures. This bug seems seems to have been introduced in
e37dcf63dcea0817ffd74722ee5ff2d103aa2157.
After this commit, there remain other cross-compilation problems,
e.g. <https://issues.guix.gnu.org/51981> fixes one of them.
* guix/build-system/go.scm (go-cross-build)[builder]: Wrap in
with-imported-modules.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2022-09-24 | narinfo: Fix misleading docstring....The misleading docstring had been here from the start, in commit
cdea30e061490a521f1e9c66ff870ca98ae5d7e5.
* guix/narinfo.scm (valid-narinfo?): Fix docstring.
| Ludovic Courtès |
2022-09-24 | gnu: Add compression module....Move the compression record to a dedicated module so that it can be used
outside (guix scripts pack) module.
* guix/scripts/pack.scm (<compressor>, %compressors, lookup-compressor): Move
it to ...
* gnu/compression.scm: ... this new file.
* gnu/ci.scm: Adapt it.
* local.mk (GNU_SYSTEM_MODULES): Add it.
| Mathieu Othacehe |
2022-09-24 | platforms: x86: Rename Hurd hurd to i586-gnu....* guix/platforms/x86.scm (hurd): Rename it to ...
(i586-gnu): ... this variable.
* gnu/system/images/hurd.scm (hurd-disk-image, hurd-barebones-disk-image,
hurd-barebones-qcow2-image): Adapt those.
| Mathieu Othacehe |
2022-09-20 | home: import: Use (guix read-print) to render the config file....* guix/scripts/home/import.scm (manifest+configuration-files->code):
Insert calls to 'comment' and 'vertical-space'.
(import-manifest): Use 'pretty-print-with-comments/splice' instead of a
loop on 'pretty-print'.
* tests/home-import.scm (remove-recursively): New procedure.
(eval-test-with-home-environment): Use it.
| Ludovic Courtès |
2022-09-20 | read-print: Add rule for 'home-bash-configuration'....* guix/read-print.scm (%newline-forms): Add 'home-bash-configuration'.
| Ludovic Courtès |
2022-09-20 | read-print: Correctly support multiple same-named newline forms....Previously (home-environment (services ...)) would not be considered a
"newline form". This fixes it.
* guix/read-print.scm (newline-form?): Use 'vhash-foldq*' instead of
'vhash-assq' and iterate over candidates.
* tests/read-print.scm: Add test.
| Ludovic Courtès |
2022-09-20 | weather: Actually show the weather....* guix/scripts/weather.scm (report-server-coverage): Show a weather icon.
| Ludovic Courtès |
2022-09-20 | import/cran: description->package: Use COND and computed booleans....* guix/import/cran.scm (description->package): Use COND with previously
computed booleans instead of using CASE on REPOSITORY.
| Ricardo Wurmus |
2022-09-20 | import/cran: download: Accept optional REF argument....* guix/import/cran.scm (download): Accept REF argument for git downloads.
| Ricardo Wurmus |
2022-09-17 | gnu-maintenance: Support // URLs in latest-html-release....This makes "./pre-inst-env guix refresh -u" download the release tarball from
the right place -- previously, it downloaded from
https://www.libreoffice.org//download.documentfoundation.org/libreoffice/src/7.4.0/libreoffice-7.4.0.3.tar.xz?idx=1
whereas it should download from
https://download.documentfoundation.org/libreoffice/src/7.4.0/libreoffice-7.4.0.3.tar.xz?idx=1
instead.
* guix/gnu-maintenance.scm (latest-html-release)[url-release]: Adjust
computation in the case of an absolute URI-reference without a scheme.
* tests/gnu-maintenance.scm ("latest-html-release, scheme-less URIs"):
Test it.
Signed-off-by: Christopher Baines <mail@cbaines.net>
| Maxime Devos |
2022-09-17 | import: gem: Support importing a specific version of a gem....* guix/import/gem.scm: (rubygems-fetch, gem->guix-package)
(gem-recursive-import): Fix to fetch the specified version of the gem.
* guix/scripts/import/gem.scm (show-help): Update the help message.
(guix-import-gem): Modify so the version number to be passed to subsequent
procedures.
* tests/gem.scm: Add tests.
* doc/guix.texi (Invoking guix import): Document.
Signed-off-by: Christopher Baines <mail@cbaines.net>
| Taiju HIGASHI |
2022-09-13 | import: gnome: Improve version handling logic....Before this change, we'd get:
$ guix refresh gedit
updating from version 40.1 to version 43.alpha...
This is because the new GNOME version scheme introduced in 2021 with GNOME 40
was not treated correctly. Also, no longer ignore odd numbered minor
versions, as this appears to be a declining practice in GNOME.
* guix/import/gnome.scm (latest-gnome-release)
<pre-release-text?>: New predicate.
<even-minor-version?>: Rename to...
<release-version?>: ...this. Return #f in case the version corresponds to a
development release.
* guix/import/gnome.scm (latest-gnome-release): Adjust accordingly.
| Maxim Cournoyer |
2022-09-11 | build-system: emacs: Use new function for autoloads generation...* guix/build/emacs-utils.scm (emacs-generate-autoloads): Use
'loaddefs-generate' to create autoloads instead of
'update-directory-autoloads' if we are using a new enough Emacs
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
| Morgan Smith |
2022-09-11 | build-system: emacs: Use native compilation....* guix/build/emacs-build-system.scm (add-install-to-native-load-path):
New variable.
(build): Replace ‘emacs-byte-compile-directory’ with ‘emacs-compile-directory’.
Delete already compiled files in the working directory prior to compilation.
(%standard-phases): Add ‘add-install-to-native-load-path’ after
‘expand-load-path’.
| Liliana Marie Prikler |
2022-09-11 | guix: emacs-utils: Add emacs-compile-directory....* guix/build/emacs-utils.scm (emacs-compile-directory): New variable.
| Liliana Marie Prikler |
2022-09-08 | syscalls: Avoid repeated calls to 'syscall->procedure'....Commit 7df4d3465d305271d4fdf4e6f886a248d63b82c4 and others changed
'mount', 'umount', & co. so they would call 'syscall->procedure' at each
call. This change reverts to the previous behavior, where
'syscall->procedure' is called once.
* guix/build/syscalls.scm (mount, umount, reboot, load-linux-module):
Call 'syscall->procedure' only once.
| Ludovic Courtès |