~ruther/guix-local

6efa6f7645a95a08b0d4c663cd4a873eb0003555 — Ludovic Courtès 10 years ago e80c0f8
gnu-maintenance: ftp.gnome.org does not provide signatures.

* guix/gnu-maintenance.scm (latest-ftp-release): Add #:file->signature
parameter.  Honor it.
(latest-gnome-release): Pass #:file->signature.
* guix/upstream.scm (coalesce-sources): Keep 'signature-urls' as #f
unless both sources provide it.
2 files changed, 15 insertions(+), 5 deletions(-)

M guix/gnu-maintenance.scm
M guix/upstream.scm
M guix/gnu-maintenance.scm => guix/gnu-maintenance.scm +12 -3
@@ 321,10 321,13 @@ pairs.  Example: (\"mit-scheme-9.0.1\" . \"/gnu/mit-scheme/stable.pkg/9.0.1\"). 
                             #:key
                             (server "ftp.gnu.org")
                             (directory (string-append "/gnu/" project))
                             (file->signature (cut string-append <> ".sig"))
                             (ftp-open ftp-open) (ftp-close ftp-close))
  "Return an <upstream-source> for the latest release of PROJECT on SERVER
under DIRECTORY, or #f.  Use FTP-OPEN and FTP-CLOSE to open (resp. close) FTP
connections; this can be useful to reuse connections."
connections; this can be useful to reuse connections.  FILE->SIGNATURE must be
a procedure; it is passed a source file URL and must return the corresponding
signature URL, or #f it signatures are unavailable."
  (define (latest a b)
    (if (version>? a b) a b))



@@ 350,7 353,9 @@ connections; this can be useful to reuse connections."
       (package project)
       (version (tarball->version file))
       (urls (list url))
       (signature-urls (list (string-append url ".sig"))))))
       (signature-urls (match (file->signature url)
                         (#f #f)
                         (sig (list sig)))))))

  (let loop ((directory directory)
             (result    #f))


@@ 468,7 473,11 @@ elpa.gnu.org, and all the GNOME packages."
                       #:directory (string-append "/pub/gnome/sources/"
                                                  (match package
                                                    ("gconf" "GConf")
                                                    (x       x))))))
                                                    (x       x)))

                       ;; ftp.gnome.org provides no signatures, only
                       ;; checksums.
                       #:file->signature (const #f))))

(define %gnu-updater
  (upstream-updater

M guix/upstream.scm => guix/upstream.scm +3 -2
@@ 98,8 98,9 @@ correspond to the same version."
                        (urls (append (upstream-source-urls release)
                                      (upstream-source-urls head)))
                        (signature-urls
                         (append (upstream-source-signature-urls release)
                                 (upstream-source-signature-urls head))))
                         (let ((one (upstream-source-signature-urls release))
                               (two (upstream-source-signature-urls release)))
                           (and one two (append one two)))))
                       tail)
                 (cons release result)))
            (()