aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* WIP: Add package input loop detection.add-package-input-loop-detectionChristopher Baines2022-10-04
|
* gnu-maintenance: Remove retired 'gforge.inria.fr' site.Maxim Cournoyer2022-10-03
| | | | * guix/gnu-maintenance.scm (html-updatable-package?): Remove "gforge.inria.fr".
* read-print: Fix indentation rule for 'match-lambda*'.Ludovic Courtès2022-10-02
| | | | | | | | 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.
* transformations: Switch to SRFI-71.Ludovic Courtès2022-10-02
| | | | | | * guix/transformations.scm (package-with-source) (evaluate-source-replacement-specs): Use SRFI-71 'let' instead of 'let-values'.
* scripts: build: Format strings before calling display-hint.Zhu Zihao2022-09-30
| | | | | | | * guix/scripts/build.scm(%standard-cross-build-options): Format hint string. %standard-cross-build-options: Ditto. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* transformations: '--with-source' now operates in depth.Ludovic Courtès2022-09-29
| | | | | | | | | | | | | | | 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.
* import: print: Quasiquote propertiesitd2022-09-29
| | | | | | | | | * 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>
* import/utils: alist->package: Include properties.itd2022-09-29
| | | | | | | | * 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>
* substitute: Retry downloading when a nar is unavailable.Ludovic Courtès2022-09-28
| | | | | | | | | | | | | | | | | | | | | | 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.
* substitute: Split nar download.Ludovic Courtès2022-09-28
| | | | | | * guix/scripts/substitute.scm (download-nar): New procedure, with most of the code moved from... (process-substitution): ... here. Call it.
* import/cran: Process more complex license strings.Ricardo Wurmus2022-09-28
| | | | | | | * 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.
* import/cran: Use beautify-synopsis.Ricardo Wurmus2022-09-28
| | | | * guix/import/cran.scm (description->package): Use beautify-synopsis.
* import/utils: Add beautify-synopsis.Ricardo Wurmus2022-09-28
| | | | * guix/import/utils.scm (beautify-synopsis): New procedure.
* import/cran: Transform external package names to Guix names.Ricardo Wurmus2022-09-28
| | | | | * guix/import/cran.scm (transform-sysname): New procedure. (description->package): Use it on inputs that are derived from "sysdepends".
* import/cran: Add more strings to invalid-packages.Ricardo Wurmus2022-09-28
| | | | * guix/import/cran.scm (invalid-packages): Add none, windows, and xcode.
* debug-link: Clarify what CRC is.jgart2022-09-26
| | | | | | * guix/build/debug-link.scm: Clarify "CRC"; update bug URL. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu-maintenance: Remove unused procedures.Maxime Devos2022-09-26
| | | | | | | * guix/gnu-maintenance.scm (url-prefix-rewrite, adjusted-upstream-source): Remove. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu-maintenance: Simplify latest-kernel.org-release.Maxime Devos2022-09-26
| | | | | | | | | | | | | 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>
* download: Add a kernel.org mirror.Maxime Devos2022-09-26
| | | | | | | | | 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>
* gnu-maintenance: Simplify latest-savannah-release.Maxime Devos2022-09-26
| | | | | | | | | | | | 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>
* download: Switch savannah mirrors to HTTPS URLs.Maxime Devos2022-09-26
| | | | | | | | | | | | | | 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>
* gnu-maintenance: Produce mirror:// URIs in latest-html-release.Maxime Devos2022-09-26
| | | | | | | | | | | | | | 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>
* gnu-maintenance: Produce mirror:// URIs in latest-ftp-release.Maxime Devos2022-09-26
| | | | | | | | | | | | 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>
* lint: Extract logic of 'check-mirror-url'.Maxime Devos2022-09-26
| | | | | | | | | | 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>
* build-system/go: Respect #:imported-modules when cross-compiling.Maxime Devos2022-09-24
| | | | | | | | | | | | | | 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>
* narinfo: Fix misleading docstring.Ludovic Courtès2022-09-24
| | | | | | | The misleading docstring had been here from the start, in commit cdea30e061490a521f1e9c66ff870ca98ae5d7e5. * guix/narinfo.scm (valid-narinfo?): Fix docstring.
* gnu: Add compression module.Mathieu Othacehe2022-09-24
| | | | | | | | | | | 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.
* platforms: x86: Rename Hurd hurd to i586-gnu.Mathieu Othacehe2022-09-24
| | | | | | | * 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.
* home: import: Use (guix read-print) to render the config file.Ludovic Courtès2022-09-20
| | | | | | | | | * 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.
* read-print: Add rule for 'home-bash-configuration'.Ludovic Courtès2022-09-20
| | | | * guix/read-print.scm (%newline-forms): Add 'home-bash-configuration'.
* read-print: Correctly support multiple same-named newline forms.Ludovic Courtès2022-09-20
| | | | | | | | | 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.
* weather: Actually show the weather.Ludovic Courtès2022-09-20
| | | | * guix/scripts/weather.scm (report-server-coverage): Show a weather icon.
* import/cran: description->package: Use COND and computed booleans.Ricardo Wurmus2022-09-20
| | | | | * guix/import/cran.scm (description->package): Use COND with previously computed booleans instead of using CASE on REPOSITORY.
* import/cran: download: Accept optional REF argument.Ricardo Wurmus2022-09-20
| | | | * guix/import/cran.scm (download): Accept REF argument for git downloads.
* gnu-maintenance: Support // URLs in latest-html-release.Maxime Devos2022-09-17
| | | | | | | | | | | | | | | | | | | | 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>
* import: gem: Support importing a specific version of a gem.Taiju HIGASHI2022-09-17
| | | | | | | | | | | | * 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>
* import: gnome: Improve version handling logic.Maxim Cournoyer2022-09-13
| | | | | | | | | | | | | | | | | | 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.
* build-system: emacs: Use new function for autoloads generationMorgan Smith2022-09-11
| | | | | | | | * 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>
* build-system: emacs: Use native compilation.Liliana Marie Prikler2022-09-11
| | | | | | | | | * 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’.
* guix: emacs-utils: Add emacs-compile-directory.Liliana Marie Prikler2022-09-11
| | | | * guix/build/emacs-utils.scm (emacs-compile-directory): New variable.
* syscalls: Avoid repeated calls to 'syscall->procedure'.Ludovic Courtès2022-09-08
| | | | | | | | | | 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.
* import: gnome: Reject version strings such as "43.alpha".Ludovic Courtès2022-09-08
| | | | | | | | Reported by Maxim Cournoyer. This is a followup to 61b63e7fa73be8828af2b36d196c3676c974e119. * guix/import/gnome.scm (latest-gnome-release)[even-minor-version?]: Reject VERSION is the minor or micro part is not an integer.
* search-paths: Tweak $SSL_CERT_DIR comment.Ludovic Courtès2022-09-08
| | | | * guix/search-paths.scm ($SSL_CERT_DIR): Fix typos and tweak comment.
* search-paths: Clarify $GUIX_EXTENSIONS_PATH comment.Ludovic Courtès2022-09-08
| | | | * guix/search-paths.scm ($GUIX_EXTENSIONS_PATH): Clarify comment.
* search-paths: Remove redundant uses of 'define-public'.Ludovic Courtès2022-09-08
| | | | | * guix/search-paths.scm ($GUIX_EXTENSIONS_PATH, $SSL_CERT_DIR, $SSL_CERT_FILE): Use 'define', not 'define-public'.
* guix: platform: Use #false instead of #f.Mathieu Othacehe2022-09-07
| | | | * guix/platform.scm (<platform>): Adapt it.
* profiles: Implicitly set GUIX_EXTENSIONS_PATH.(unmatched-parenthesis2022-09-07
| | | | | | | | | | | * guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Always return a search path for GUIX_EXTENSIONS_PATH. * guix/search-paths.scm ($GUIX_EXTENSIONS_PATH): New variable. This allows Guix to find extensions without any need for users to set GUIX_EXTENSIONS_PATH manually. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* import: gnome: Do not require even minor for two-number version strings.Ludovic Courtès2022-09-06
| | | | | | | | | | That way, "guix refresh gnome-keyring" will properly return "42.1" instead of "42.0". Reported by Maxim Cournoyer. * guix/import/gnome.scm (latest-gnome-release)[even-minor-version?]: Tweak for GNOME applications.
* store: Open daemon connections with SOCK_CLOEXEC.Ludovic Courtès2022-09-04
| | | | | | | | | Previously, 'guix shell' for example would leak the socket that's connected to the daemon. * guix/store.scm (open-unix-domain-socket, open-inet-socket): Pass SOCK_CLOEXEC to 'socket'. * tests/guix-shell.sh: Add test.
* store: Remove unused variable and 'socket' call.Ludovic Courtès2022-09-04
| | | | * guix/store.scm (open-inet-socket): Remove unused 'sock' variable.