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:
		
							parent
							
								
									ff02b82678
								
							
						
					
					
						commit
						9c97afe858
					
				
					 4 changed files with 43 additions and 1 deletions
				
			
		| 
						 | 
					@ -4985,6 +4985,8 @@ list of updaters).  Currently, @var{updater} may be one of:
 | 
				
			||||||
the updater for GNU packages;
 | 
					the updater for GNU packages;
 | 
				
			||||||
@item gnome
 | 
					@item gnome
 | 
				
			||||||
the updater for GNOME packages;
 | 
					the updater for GNOME packages;
 | 
				
			||||||
 | 
					@item kde
 | 
				
			||||||
 | 
					the updater for KDE packages;
 | 
				
			||||||
@item xorg
 | 
					@item xorg
 | 
				
			||||||
the updater for X.org packages;
 | 
					the updater for X.org packages;
 | 
				
			||||||
@item elpa
 | 
					@item elpa
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 | 
					;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 | 
					;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 | 
				
			||||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 | 
					;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2016 David Craven <david@craven.ch>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,6 +59,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            %gnu-updater
 | 
					            %gnu-updater
 | 
				
			||||||
            %gnome-updater
 | 
					            %gnome-updater
 | 
				
			||||||
 | 
					            %kde-updater
 | 
				
			||||||
            %xorg-updater))
 | 
					            %xorg-updater))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Commentary:
 | 
					;;; Commentary:
 | 
				
			||||||
| 
						 | 
					@ -500,6 +501,33 @@ elpa.gnu.org, and all the GNOME packages."
 | 
				
			||||||
                       ;; checksums.
 | 
					                       ;; checksums.
 | 
				
			||||||
                       #:file->signature (const #f))))
 | 
					                       #: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)
 | 
					(define (xorg-package? package)
 | 
				
			||||||
  "Return true if PACKAGE is an X.org package, developed by X.org."
 | 
					  "Return true if PACKAGE is an X.org package, developed by X.org."
 | 
				
			||||||
  (define xorg-uri?
 | 
					  (define xorg-uri?
 | 
				
			||||||
| 
						 | 
					@ -540,6 +568,13 @@ elpa.gnu.org, and all the GNOME packages."
 | 
				
			||||||
   (pred gnome-package?)
 | 
					   (pred gnome-package?)
 | 
				
			||||||
   (latest latest-gnome-release)))
 | 
					   (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
 | 
					(define %xorg-updater
 | 
				
			||||||
  (upstream-updater
 | 
					  (upstream-updater
 | 
				
			||||||
   (name 'xorg)
 | 
					   (name 'xorg)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,7 +32,10 @@
 | 
				
			||||||
  #:use-module (guix scripts graph)
 | 
					  #:use-module (guix scripts graph)
 | 
				
			||||||
  #:use-module (guix monads)
 | 
					  #:use-module (guix monads)
 | 
				
			||||||
  #:use-module ((guix gnu-maintenance)
 | 
					  #: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 elpa)
 | 
				
			||||||
  #:use-module (guix import cran)
 | 
					  #:use-module (guix import cran)
 | 
				
			||||||
  #:use-module (guix import hackage)
 | 
					  #: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 of "updaters" used by default.  They are consulted in this order.
 | 
				
			||||||
  (list-updaters %gnu-updater
 | 
					  (list-updaters %gnu-updater
 | 
				
			||||||
                 %gnome-updater
 | 
					                 %gnome-updater
 | 
				
			||||||
 | 
					                 %kde-updater
 | 
				
			||||||
                 %xorg-updater
 | 
					                 %xorg-updater
 | 
				
			||||||
                 %elpa-updater
 | 
					                 %elpa-updater
 | 
				
			||||||
                 %cran-updater
 | 
					                 %cran-updater
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue