diff options
Diffstat (limited to 'guix')
-rw-r--r-- | guix/build/po.scm | 17 | ||||
-rw-r--r-- | guix/build/qt-utils.scm | 5 | ||||
-rw-r--r-- | guix/build/syscalls.scm | 5 | ||||
-rw-r--r-- | guix/import/cpan.scm | 3 | ||||
-rw-r--r-- | guix/import/elpa.scm | 3 | ||||
-rw-r--r-- | guix/import/hackage.scm | 2 | ||||
-rw-r--r-- | guix/import/minetest.scm | 3 | ||||
-rw-r--r-- | guix/import/opam.scm | 10 | ||||
-rw-r--r-- | guix/import/stackage.scm | 2 | ||||
-rw-r--r-- | guix/import/texlive.scm | 55 | ||||
-rw-r--r-- | guix/lint.scm | 14 | ||||
-rw-r--r-- | guix/packages.scm | 9 | ||||
-rw-r--r-- | guix/scripts/environment.scm | 66 | ||||
-rw-r--r-- | guix/scripts/import/opam.scm | 4 | ||||
-rw-r--r-- | guix/scripts/refresh.scm | 4 | ||||
-rw-r--r-- | guix/scripts/shell.scm | 2 | ||||
-rw-r--r-- | guix/substitutes.scm | 10 | ||||
-rw-r--r-- | guix/svn-download.scm | 6 |
18 files changed, 155 insertions, 65 deletions
diff --git a/guix/build/po.scm b/guix/build/po.scm index 7f88164cd8..62362e933e 100644 --- a/guix/build/po.scm +++ b/guix/build/po.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019, 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2023 Florian Pelz <pelzflorian@pelzflorian.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -123,7 +124,15 @@ and the value is the msgstr. The result only contains non fuzzy strings." (define xref-regexp ;; Texinfo cross-reference regexp. - (make-regexp "@(px|x)?ref\\{([^,}]+)")) + (make-regexp + (string-append "@(px|x)?ref\\{([^,}]+)(" + "\\}" ;Match xref with one argument + "|,[^,}]*\\}" ;or two arguments + "|,[^,}]*,[^,}]*\\}" ;or three arguments + ;; or with an *empty* fourth argument: + "|,[^,}]*,[^,}]*, *," + "|,[^,}]*,[^,}]*, *\\}" + ")"))) (define (translate-cross-references texi pofile) "Translate the cross-references that appear in @var{texi}, the initial @@ -157,13 +166,15 @@ translation of a Texinfo file, using the msgid/msgstr pairs from @var{pofile}." (cons (string-drop content offset) result))) ((head . tail) (let ((prefix (match:substring head 1)) - (ref (canonicalize-whitespace (match:substring head 2)))) + (ref (canonicalize-whitespace (match:substring head 2))) + (rest (match:substring head 3))) (define translated (string-append "@" (or prefix "") "ref{" (match (vhash-assoc ref translation-map) (#f ref) - ((_ . str) str)))) + ((_ . str) str)) + (or rest ""))) (loop tail (match:end head) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index b8ecfedd43..f52e3f7af5 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> ;;; ;;; This file is part of GNU Guix. @@ -87,9 +88,7 @@ "/applications" "/cursors" "/fonts" "/icons" "/glib-2.0/schemas" "/mime" "/sounds" "/themes" "/wallpapers") '("XDG_CONFIG_DIRS" suffix directory "/etc/xdg") - ;; We wrap exactly to avoid potentially mixing Qt5/Qt6 components, which - ;; would cause warnings, perhaps problems. - `("QT_PLUGIN_PATH" = directory + `("QT_PLUGIN_PATH" prefix directory ,(format #f "/lib/qt~a/plugins" qt-major-version)) `("QML2_IMPORT_PATH" = directory ,(format #f "/lib/qt~a/qml" qt-major-version)) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index df9b9f6ac7..d947b010d3 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -970,7 +970,10 @@ backend device." (string->pointer key) (string->pointer "") 0))) - (cond ((< size 0) #f) + (cond ((< size 0) + (throw 'system-error "getxattr" "~S: ~A" + (list file key (strerror err)) + (list err))) ((zero? size) "") ;; Get VALUE in buffer of SIZE. XXX actual size can race. (else (let*-values (((buf) (make-bytevector size)) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index eeb142a9b8..da47018c35 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -28,6 +28,7 @@ #:use-module ((ice-9 rdelim) #:select (read-line)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) #:use-module (json) #:use-module (gcrypt hash) #:use-module (guix diagnostics) @@ -310,7 +311,7 @@ in RELEASE, a <cpan-release> record." (define* (latest-release package #:key (version #f)) "Return an <upstream-source> for the latest release of PACKAGE." (when version - (error + (raise (formatted-message (G_ "~a updater doesn't support updating to a specific version, sorry.") "cpan"))) diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index f71e758db4..8ebebcafb3 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -34,6 +34,7 @@ #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (guix i18n) #:use-module (guix diagnostics) @@ -405,7 +406,7 @@ type '<elpa-package>'." (define repo (elpa-repository package)) (when version - (error + (raise (formatted-message (G_ "~a updater doesn't support updating to a specific version, sorry.") "elpa"))) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 83ad85f3fe..56c8696ad7 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -356,7 +356,7 @@ respectively." (define* (latest-release package #:key (version #f)) "Return an <upstream-source> for the latest release of PACKAGE." (when version - (error + (raise (formatted-message (G_ "~a updater doesn't support updating to a specific version, sorry.") "hackage"))) diff --git a/guix/import/minetest.scm b/guix/import/minetest.scm index 7e7b6dd6ac..5ea6e023ce 100644 --- a/guix/import/minetest.scm +++ b/guix/import/minetest.scm @@ -22,6 +22,7 @@ #:use-module (ice-9 threads) #:use-module (ice-9 hash-table) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) #:use-module (guix diagnostics) #:use-module ((guix packages) #:prefix package:) #:use-module (guix upstream) @@ -492,7 +493,7 @@ or #false if the latest release couldn't be determined." (define source (package:package-source pkg)) (when version - (error + (raise (formatted-message (G_ "~a updater doesn't support updating to a specific version, sorry.") "minetest"))) diff --git a/guix/import/opam.scm b/guix/import/opam.scm index e336936306..e67146e593 100644 --- a/guix/import/opam.scm +++ b/guix/import/opam.scm @@ -29,6 +29,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-2) #:use-module ((srfi srfi-26) #:select (cut)) + #:use-module (srfi srfi-34) #:use-module ((web uri) #:select (string->uri uri->string)) #:use-module ((guix build utils) #:select (dump-port find-files mkdir-p)) #:use-module (guix build-system) @@ -335,10 +336,9 @@ path to the repository." (sha256 (base32 ,(guix-hash-url temp))))))) 'no-source-information))) -(define* (opam->guix-package name #:key (repo 'opam) version #:allow-other-keys) - "Import OPAM package NAME from REPOSITORY (a directory name) or, if -REPOSITORY is #f, from the official OPAM repository. Return a 'package' sexp -or #f on failure." +(define* (opam->guix-package name #:key (repo '("opam")) version #:allow-other-keys) + "Import OPAM package NAME from REPO, a list of repository names, URLs, or +file names. Return a 'package' sexp or #f on failure." (and-let* ((with-opam (if (member "opam" repo) repo (cons "opam" repo))) (opam-file (opam-fetch name with-opam)) (version (assoc-ref opam-file "version")) @@ -417,7 +417,7 @@ package in OPAM." (define* (latest-release package #:key (version #f)) "Return an <upstream-source> for the latest release of PACKAGE." (when version - (error + (raise (formatted-message (G_ "~a updater doesn't support updating to a specific version, sorry.") "opam"))) diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 735eeb75f7..f98b86c334 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -145,7 +145,7 @@ included in the Stackage LTS release." "Return an <upstream-source> for the latest Stackage LTS release of PACKAGE or #f if the package is not included in the Stackage LTS release." (when version - (error + (raise (formatted-message (G_ "~a updater doesn't support updating to a specific version, sorry.") "stackage"))) diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm index 82014ee568..086cd363a9 100644 --- a/guix/import/texlive.scm +++ b/guix/import/texlive.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -246,11 +246,15 @@ of those files are returned that are unexpectedly installed." (define (tlpdb->package name version package-database) (and-let* ((data (assoc-ref package-database name)) (dirs (files->directories - (map (lambda (dir) - (string-drop dir (string-length "texmf-dist/"))) - (append (or (assoc-ref data 'docfiles) (list)) - (or (assoc-ref data 'runfiles) (list)) - (or (assoc-ref data 'srcfiles) (list)))))) + (filter-map (lambda (dir) + ;; Ignore any file not starting with the + ;; expected prefix. Nothing good can come + ;; from this. + (and (string-prefix? "texmf-dist/" dir) + (string-drop dir (string-length "texmf-dist/")))) + (append (or (assoc-ref data 'docfiles) (list)) + (or (assoc-ref data 'runfiles) (list)) + (or (assoc-ref data 'srcfiles) (list)))))) (name (guix-name name)) ;; TODO: we're ignoring the VERSION argument because that ;; information is distributed across %texlive-tag and @@ -260,6 +264,12 @@ of those files are returned that are unexpectedly installed." %texlive-tag "/Master/texmf-dist")) (locations dirs) (revision %texlive-revision))) + ;; Ignore arch-dependent packages. + (filtered-depends + (or (and=> (assoc-ref data 'depend) + (lambda (inputs) + (remove (cut string-suffix? ".ARCH" <>) inputs))) + '())) (source (with-store store (download-multi-svn-to-store store ref (string-append name "-svn-multi-checkout"))))) @@ -278,24 +288,25 @@ of those files are returned that are unexpectedly installed." ;; package->definition in (guix import utils) expects to see a ;; version field. (version ,version) - ,@(or (and=> (assoc-ref data 'depend) - (lambda (inputs) - `((propagated-inputs - (list ,@(map (lambda (tex-name) - (let ((name (guix-name tex-name))) - (string->symbol name))) - inputs)))))) - '()) - ,@(or (and=> (assoc-ref data 'catalogue-ctan) - (lambda (url) - `((home-page ,(string-append "https://ctan.org" url))))) + ,@(match filtered-depends + (() '()) + (inputs + `((propagated-inputs + (list ,@(map + (lambda (tex-name) + (let ((name (guix-name tex-name))) + (string->symbol name))) + inputs)))))) + ,@(or (and=> (assoc-ref data 'name) + (lambda (name) + `((home-page ,(string-append "https://ctan.org/pkg/" + name))))) '((home-page "https://www.tug.org/texlive/"))) (synopsis ,(assoc-ref data 'shortdesc)) - (description ,(beautify-description - (assoc-ref data 'longdesc))) - (license ,(string->license - (assoc-ref data 'catalogue-license)))) - (or (assoc-ref data 'depend) (list))))) + (description ,(and=> (assoc-ref data 'longdesc) beautify-description)) + (license ,(and=> (assoc-ref data 'catalogue-license) + string->license))) + filtered-depends))) (define texlive->guix-package (memoize diff --git a/guix/lint.scm b/guix/lint.scm index ea43a15141..0ed5b8dc98 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> @@ -1484,6 +1484,9 @@ the NIST server non-fatal." (package-version package)))) ((force lookup) name version))))) +;; Prevent Guile 3 from inlining this procedure so we can mock it in tests. +(set! package-vulnerabilities package-vulnerabilities) + (define* (check-vulnerabilities package #:optional (package-vulnerabilities package-vulnerabilities)) @@ -1862,6 +1865,10 @@ them for PACKAGE." (description "Validate package descriptions") (check check-description-style)) (lint-checker + (name 'synopsis) + (description "Validate package synopses") + (check check-synopsis-style)) + (lint-checker (name 'inputs-should-be-native) (description "Identify inputs that should be native inputs") (check check-inputs-should-be-native)) @@ -1925,10 +1932,7 @@ or a list thereof") (define %network-dependent-checkers (list - (lint-checker - (name 'synopsis) - (description "Validate package synopses") - (check check-synopsis-style)) + (lint-checker (name 'gnu-description) (description "Validate synopsis & description of GNU packages") diff --git a/guix/packages.scm b/guix/packages.scm index 4c0c194652..2d33212f44 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -74,7 +74,6 @@ origin-uri origin-method origin-hash - origin-sha256 ;deprecated origin-file-name origin-actual-file-name origin-patches @@ -346,14 +345,6 @@ as base32. Otherwise, it must be a bytevector." specifications to 'hash'." (origin-compatibility-helper (fields ...) ())) -(define-deprecated (origin-sha256 origin) - origin-hash - (let ((hash (origin-hash origin))) - (unless (eq? (content-hash-algorithm hash) 'sha256) - (raise (condition (&message - (message (G_ "no SHA256 hash for origin")))))) - (content-hash-value hash))) - (define (print-origin origin port) "Write a concise representation of ORIGIN to PORT." (match origin diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index a4939ea63c..ebfc05731c 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -31,6 +31,8 @@ #:use-module (guix build utils) #:use-module (guix monads) #:use-module ((guix gexp) #:select (lower-object)) + #:autoload (guix describe) (current-profile current-channels) + #:autoload (guix channels) (guix-channel? channel-commit) #:use-module (guix scripts) #:use-module (guix scripts build) #:autoload (guix scripts pack) (symlink-spec-option-parser) @@ -49,9 +51,11 @@ #:autoload (gnu packages) (specification->package+output) #:autoload (gnu packages bash) (bash) #:autoload (gnu packages bootstrap) (bootstrap-executable %bootstrap-guile) + #:autoload (gnu packages package-management) (guix) #:use-module (ice-9 match) #:autoload (ice-9 rdelim) (read-line) #:use-module (ice-9 vlist) + #:autoload (web uri) (string->uri uri-scheme) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) @@ -108,6 +112,8 @@ shell'." -P, --link-profile link environment profile to ~/.guix-profile within an isolated container")) (display (G_ " + -W, --nesting make Guix available within the container")) + (display (G_ " -u, --user=USER instead of copying the name and home of the current user into an isolated container, use the name USER with home directory /home/USER")) @@ -238,6 +244,9 @@ use '--preserve' instead~%")) (option '(#\N "network") #f #f (lambda (opt name arg result) (alist-cons 'network? #t result))) + (option '(#\W "nesting") #f #f + (lambda (opt name arg result) + (alist-cons 'nesting? #t result))) (option '(#\P "link-profile") #f #f (lambda (opt name arg result) (alist-cons 'link-profile? #t result))) @@ -342,6 +351,26 @@ for the corresponding packages." (packages->outputs (load* file module) mode))) (('manifest . file) (manifest-entries (load-manifest file))) + (('nesting? . #t) + (if (assoc-ref opts 'profile) + '() + (let ((profile (and=> (current-profile) readlink*))) + (if (or (not profile) (not (store-path? profile))) + (begin + (warning (G_ "\ +could not add current Guix to the profile~%")) + '()) + (list (manifest-entry + (name "guix") + (version + (or (any (lambda (channel) + (and (guix-channel? channel) + (channel-commit channel))) + (current-channels)) + "0")) + (item profile) + (search-paths + (package-native-search-paths guix)))))))) (_ '())) opts) manifest-entry=?))) @@ -688,7 +717,8 @@ regexps in WHITE-LIST." (define* (launch-environment/container #:key command bash user user-mappings profile manifest link-profile? network? - map-cwd? emulate-fhs? (setup-hook #f) + map-cwd? emulate-fhs? nesting? + (setup-hook #f) (symlinks '()) (white-list '())) "Run COMMAND within a container that features the software in PROFILE. Environment variables are set according to the search paths of MANIFEST. The @@ -704,6 +734,9 @@ Standard and provide a glibc that reads the cache from /etc/ld.so.cache. SETUP-HOOK is an additional setup procedure to be called, currently only used with the EMULATE-FHS? option. +When NESTING? is true, share all the store with the container and add Guix to +its profile, allowing its use from within the container. + LINK-PROFILE? creates a symbolic link from ~/.guix-profile to the environment profile. @@ -731,8 +764,26 @@ WHILE-LIST." ("/libexec" . "/usr/libexec") ("/share" . "/usr/share")))) - (mlet %store-monad ((reqs (inputs->requisites - (list (direct-store-path bash) profile)))) + (define (nesting-mappings) + ;; Files shared with the host when enabling nesting. + (cons* (file-system-mapping + (source (%store-prefix)) + (target source)) + (file-system-mapping + (source (cache-directory)) + (target source) + (writable? #t)) + (let ((uri (string->uri (%daemon-socket-uri)))) + (if (or (not uri) (eq? 'file (uri-scheme uri))) + (list (file-system-mapping + (source (%daemon-socket-uri)) + (target source))) + '())))) + + (mlet %store-monad ((reqs (if nesting? + (return '()) + (inputs->requisites + (list (direct-store-path bash) profile))))) (return (let* ((cwd (getcwd)) (home (getenv "HOME")) @@ -795,11 +846,14 @@ WHILE-LIST." (filter-map optional-mapping->fs %network-file-mappings) '()) - ;; Mappings for an FHS container. (if emulate-fhs? (filter-map optional-mapping->fs fhs-mappings) '()) + (if nesting? + (filter-map optional-mapping->fs + (nesting-mappings)) + '()) (map file-system-mapping->bind-mount mappings)))) (exit/status @@ -1013,6 +1067,7 @@ command-line option processing with 'parse-command-line'." (network? (assoc-ref opts 'network?)) (no-cwd? (assoc-ref opts 'no-cwd?)) (emulate-fhs? (assoc-ref opts 'emulate-fhs?)) + (nesting? (assoc-ref opts 'nesting?)) (user (assoc-ref opts 'user)) (bootstrap? (assoc-ref opts 'bootstrap?)) (system (assoc-ref opts 'system)) @@ -1059,6 +1114,8 @@ command-line option processing with 'parse-command-line'." (leave (G_ "--no-cwd cannot be used without '--container'~%"))) (when emulate-fhs? (leave (G_ "'--emulate-fhs' cannot be used without '--container~%'"))) + (when nesting? + (leave (G_ "'--nesting' cannot be used without '--container~%'"))) (when (pair? symlinks) (leave (G_ "'--symlink' cannot be used without '--container~%'")))) @@ -1141,6 +1198,7 @@ when using '--container'; doing nothing~%")) #:network? network? #:map-cwd? (not no-cwd?) #:emulate-fhs? emulate-fhs? + #:nesting? nesting? #:symlinks symlinks #:setup-hook (and emulate-fhs? diff --git a/guix/scripts/import/opam.scm b/guix/scripts/import/opam.scm index 834ac34cb0..5bc7ad2122 100644 --- a/guix/scripts/import/opam.scm +++ b/guix/scripts/import/opam.scm @@ -47,8 +47,8 @@ Import and convert the opam package for PACKAGE-NAME.\n")) (display (G_ " -r, --recursive import packages recursively")) (display (G_ " - --repo import packages from this opam repository (name, URL or local path) - can be used more than once")) + --repo=REPOSITORY import packages from REPOSITORY (name, URL, or + file name); can be used more than once")) (display (G_ " -V, --version display version information and exit")) (newline) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index ee94ed29a1..bc6c24967a 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -98,7 +98,7 @@ (option '(#\r "recursive") #f #f (lambda (opt name arg result) (alist-cons 'recursive? #t result))) - (option '("list-transitive") #f #f + (option '(#\T "list-transitive") #f #f (lambda (opt name arg result) (alist-cons 'list-transitive? #t result))) @@ -156,7 +156,7 @@ specified with `--select'.\n")) (display (G_ " -r, --recursive check the PACKAGE and its inputs for upgrades")) (display (G_ " - --list-transitive list all the packages that PACKAGE depends on")) + -T, --list-transitive list all the packages that PACKAGE depends on")) (newline) (display (G_ " --keyring=FILE use FILE as the keyring of upstream OpenPGP keys")) diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index 92bbfb04d0..1b42cc2af0 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -389,6 +389,8 @@ return #f and #f." (if (not file) (loop rest system file (cons spec specs)) (values #f #f))) + ((('nesting? . #t) . rest) + (loop rest system file (append specs '("nested guix")))) ((('load . ('package candidate)) . rest) (if (and (not file) (null? specs)) (loop rest system candidate specs) diff --git a/guix/substitutes.scm b/guix/substitutes.scm index 84c7be83ca..e732096933 100644 --- a/guix/substitutes.scm +++ b/guix/substitutes.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2021, 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2020 Christopher Baines <mail@cbaines.net> @@ -35,6 +35,7 @@ #:select ((open-connection-for-uri . guix:open-connection-for-uri) resolve-uri-reference)) + #:autoload (gnutls) (error->string error/premature-termination) #:use-module (guix progress) #:use-module (ice-9 match) #:use-module (ice-9 format) @@ -152,6 +153,13 @@ indicates that PATH is unavailable at CACHE-URL." (strerror (system-error-errno `(system-error ,@args))))) #f) + (('gnutls-error error proc . rest) + (if (eq? error error/premature-termination) + (begin + (warning (G_ "~a: TLS connection failed: in ~a: ~a~%") host + proc (error->string error)) + #f) + (apply throw 'gnutls-error error proc rest))) (args (apply throw args))))) diff --git a/guix/svn-download.scm b/guix/svn-download.scm index e0a26b73ee..769571b5f6 100644 --- a/guix/svn-download.scm +++ b/guix/svn-download.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014-2016, 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2016, 2019, 2021-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> ;;; Copyright © 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; @@ -63,7 +63,7 @@ svn-reference? (url svn-reference-url) ; string (revision svn-reference-revision) ; number - (recursive? svn-reference-recursive? (default #t)) + (recursive? svn-reference-recursive? (default #f)) (user-name svn-reference-user-name (default #f)) (password svn-reference-password (default #f))) @@ -132,7 +132,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." (url svn-multi-reference-url) ; string (revision svn-multi-reference-revision) ; number (locations svn-multi-reference-locations) ; list of strings - (recursive? svn-multi-reference-recursive? (default #t)) + (recursive? svn-multi-reference-recursive? (default #f)) (user-name svn-multi-reference-user-name (default #f)) (password svn-multi-reference-password (default #f))) |