mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 23:46:13 -05:00
gnu-maintenance: Get GNU metadata from rec files.
Suggested by Mike Gerwitz <mtg@gnu.org>. * guix/gnu-maintenance.scm (%package-list-url): Use the .rec file. (%package-description-url): Likewise. (official-gnu-packages)[read-records]: Skip record descriptors. Rename fields to use underscores instead of hyphens.
This commit is contained in:
parent
cd6ae1cee9
commit
daf76c7cd5
1 changed files with 16 additions and 10 deletions
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
|
@ -82,13 +82,14 @@ (define %gnumaint-base-url
|
||||||
|
|
||||||
(define %package-list-url
|
(define %package-list-url
|
||||||
(string->uri
|
(string->uri
|
||||||
(string-append %gnumaint-base-url "gnupackages.txt")))
|
(string-append %gnumaint-base-url "rec/gnupackages.rec")))
|
||||||
|
|
||||||
(define %package-description-url
|
(define %package-description-url
|
||||||
;; This file contains package descriptions in recutils format.
|
;; This file contains package descriptions in recutils format.
|
||||||
;; See <https://lists.gnu.org/archive/html/guix-devel/2013-10/msg00071.html>.
|
;; See <https://lists.gnu.org/archive/html/guix-devel/2013-10/msg00071.html>
|
||||||
|
;; and <https://lists.gnu.org/archive/html/guix-devel/2018-06/msg00362.html>.
|
||||||
(string->uri
|
(string->uri
|
||||||
(string-append %gnumaint-base-url "pkgblurbs.txt")))
|
(string-append %gnumaint-base-url "rec/pkgblurbs.rec")))
|
||||||
|
|
||||||
(define-record-type* <gnu-package-descriptor>
|
(define-record-type* <gnu-package-descriptor>
|
||||||
gnu-package-descriptor
|
gnu-package-descriptor
|
||||||
|
@ -121,7 +122,12 @@ (define (read-records port)
|
||||||
(if (null? alist)
|
(if (null? alist)
|
||||||
(reverse result)
|
(reverse result)
|
||||||
(loop (recutils->alist port)
|
(loop (recutils->alist port)
|
||||||
(cons alist result)))))
|
|
||||||
|
;; Ignore things like "%rec" (info "(recutils) Record
|
||||||
|
;; Descriptors").
|
||||||
|
(if (assoc-ref alist "package")
|
||||||
|
(cons alist result)
|
||||||
|
result)))))
|
||||||
|
|
||||||
(define official-description
|
(define official-description
|
||||||
(let ((db (read-records (fetch %package-description-url #:text? #t))))
|
(let ((db (read-records (fetch %package-description-url #:text? #t))))
|
||||||
|
@ -148,12 +154,12 @@ (define official-description
|
||||||
(alist->record `(("description" . ,(official-description name))
|
(alist->record `(("description" . ,(official-description name))
|
||||||
,@alist)
|
,@alist)
|
||||||
make-gnu-package-descriptor
|
make-gnu-package-descriptor
|
||||||
(list "package" "mundane-name" "copyright-holder"
|
(list "package" "mundane_name" "copyright_holder"
|
||||||
"savannah" "fsd" "language" "logo"
|
"savannah" "fsd" "language" "logo"
|
||||||
"doc-category" "doc-summary" "description"
|
"doc_category" "doc_summary" "description"
|
||||||
"doc-url"
|
"doc_url"
|
||||||
"download-url")
|
"download_url")
|
||||||
'("doc-url" "language"))))
|
'("doc_url" "language"))))
|
||||||
(let* ((port (fetch %package-list-url #:text? #t))
|
(let* ((port (fetch %package-list-url #:text? #t))
|
||||||
(lst (read-records port)))
|
(lst (read-records port)))
|
||||||
(close-port port)
|
(close-port port)
|
||||||
|
|
Loading…
Reference in a new issue