gnu-maintenance: Add KDE updater.

* guix/gnu-maintenance.scm (kde-package?, latest-kde-release): New private
  functions.
  (%kde-updater): New public variable.
* guix/scripts/refresh.scm (list-updaters): Add %kde-updater.
* doc/guix.texi (Invoking guix refresh): Mention the new updater.
This commit is contained in:
David Craven 2016-08-01 11:05:28 +02:00
parent ff02b82678
commit 9c97afe858
No known key found for this signature in database
GPG Key ID: C5E051C79C0BECDB
4 changed files with 43 additions and 1 deletions

View File

@ -4985,6 +4985,8 @@ list of updaters). Currently, @var{updater} may be one of:
the updater for GNU packages;
@item gnome
the updater for GNOME packages;
@item kde
the updater for KDE packages;
@item xorg
the updater for X.org packages;
@item elpa

View File

@ -3,6 +3,7 @@
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -59,6 +59,7 @@
%gnu-updater
%gnome-updater
%kde-updater
%xorg-updater))
;;; Commentary:
@ -500,6 +501,33 @@ elpa.gnu.org, and all the GNOME packages."
;; checksums.
#:file->signature (const #f))))
(define (kde-package? package)
"Return true if PACKAGE is a KDE package, developed by KDE.org."
(define kde-uri?
(match-lambda
((? string? uri)
(string-prefix? "mirror://kde/" uri))
(_
#f)))
(match (package-source package)
((? origin? origin)
(match (origin-uri origin)
((? kde-uri?) #t)
(_ #f)))
(_ #f)))
(define (latest-kde-release package)
"Return the latest release of PACKAGE, the name of an KDE.org package."
(let ((uri (string->uri (origin-uri (package-source package)))))
(false-if-ftp-error
(latest-ftp-release
(package-name package)
#:server "mirrors.mit.edu"
#:directory
(string-append "/kde" (dirname (dirname (uri-path uri))))
#:file->signature (const #f)))))
(define (xorg-package? package)
"Return true if PACKAGE is an X.org package, developed by X.org."
(define xorg-uri?
@ -540,6 +568,13 @@ elpa.gnu.org, and all the GNOME packages."
(pred gnome-package?)
(latest latest-gnome-release)))
(define %kde-updater
(upstream-updater
(name 'kde)
(description "Updater for KDE packages")
(pred kde-package?)
(latest latest-kde-release)))
(define %xorg-updater
(upstream-updater
(name 'xorg)

View File

@ -32,7 +32,10 @@
#:use-module (guix scripts graph)
#:use-module (guix monads)
#:use-module ((guix gnu-maintenance)
#:select (%gnu-updater %gnome-updater %xorg-updater))
#:select (%gnu-updater
%gnome-updater
%kde-updater
%xorg-updater))
#:use-module (guix import elpa)
#:use-module (guix import cran)
#:use-module (guix import hackage)
@ -195,6 +198,7 @@ unavailable optional dependencies such as Guile-JSON."
;; List of "updaters" used by default. They are consulted in this order.
(list-updaters %gnu-updater
%gnome-updater
%kde-updater
%xorg-updater
%elpa-updater
%cran-updater