gnu-maintenance: Add kernel.org updater.

* guix/gnu-maintenance.scm (latest-kernel.org-release): New procedure.
(%kernel.org-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add it.
This commit is contained in:
Ludovic Courtès 2016-11-30 16:29:15 +01:00
parent 8d5d06282e
commit 2fd370e816
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 30 additions and 2 deletions

View File

@ -5342,6 +5342,8 @@ the updater for GNOME packages;
the updater for KDE packages; the updater for KDE packages;
@item xorg @item xorg
the updater for X.org packages; the updater for X.org packages;
@item kernel.org
the updater for packages hosted on kernel.org;
@item elpa @item elpa
the updater for @uref{http://elpa.gnu.org/, ELPA} packages; the updater for @uref{http://elpa.gnu.org/, ELPA} packages;
@item cran @item cran

View File

@ -60,7 +60,8 @@
%gnu-updater %gnu-updater
%gnome-updater %gnome-updater
%kde-updater %kde-updater
%xorg-updater)) %xorg-updater
%kernel.org-updater))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -532,6 +533,22 @@ source URLs starts with PREFIX."
#:directory #:directory
(string-append "/pub/xorg/" (dirname (uri-path uri))))))) (string-append "/pub/xorg/" (dirname (uri-path uri)))))))
(define (latest-kernel.org-release package)
"Return the latest release of PACKAGE, the name of a kernel.org package."
(let ((uri (string->uri (origin-uri (package-source package)))))
(false-if-ftp-error
(latest-ftp-release
(package-name package)
#:server "ftp.free.fr" ;a mirror reachable over FTP
#:directory (string-append "/mirrors/ftp.kernel.org"
(dirname (uri-path uri)))
;; kernel.org provides "foo-x.y.tar.sign" files, which are signatures of
;; the uncompressed tarball.
#:file->signature (lambda (tarball)
(string-append (file-sans-extension tarball)
".sign"))))))
(define %gnu-updater (define %gnu-updater
(upstream-updater (upstream-updater
(name 'gnu) (name 'gnu)
@ -560,4 +577,11 @@ source URLs starts with PREFIX."
(pred (url-prefix-predicate "mirror://xorg/")) (pred (url-prefix-predicate "mirror://xorg/"))
(latest latest-xorg-release))) (latest latest-xorg-release)))
(define %kernel.org-updater
(upstream-updater
(name 'kernel.org)
(description "Updater for packages hosted on kernel.org")
(pred (url-prefix-predicate "mirror://kernel.org/"))
(latest latest-kernel.org-release)))
;;; gnu-maintenance.scm ends here ;;; gnu-maintenance.scm ends here

View File

@ -35,7 +35,8 @@
#:select (%gnu-updater #:select (%gnu-updater
%gnome-updater %gnome-updater
%kde-updater %kde-updater
%xorg-updater)) %xorg-updater
%kernel.org-updater))
#:use-module (guix import elpa) #:use-module (guix import elpa)
#:use-module (guix import cran) #:use-module (guix import cran)
#:use-module (guix import hackage) #:use-module (guix import hackage)
@ -200,6 +201,7 @@ unavailable optional dependencies such as Guile-JSON."
%gnome-updater %gnome-updater
%kde-updater %kde-updater
%xorg-updater %xorg-updater
%kernel.org-updater
%elpa-updater %elpa-updater
%cran-updater %cran-updater
%bioconductor-updater %bioconductor-updater