build: Add `sync-synopses.scm'.
* build-aux/sync-synopses.scm: New file. * Makefile.am (EXTRA_DIST): Add it. (dist-hook): New target.
This commit is contained in:
		
							parent
							
								
									f50d2669e3
								
							
						
					
					
						commit
						0e993428ce
					
				
					 2 changed files with 66 additions and 0 deletions
				
			
		| 
						 | 
					@ -319,6 +319,7 @@ EXTRA_DIST =					\
 | 
				
			||||||
  .dir-locals.el				\
 | 
					  .dir-locals.el				\
 | 
				
			||||||
  hydra.scm					\
 | 
					  hydra.scm					\
 | 
				
			||||||
  build-aux/download.scm			\
 | 
					  build-aux/download.scm			\
 | 
				
			||||||
 | 
					  build-aux/sync-synopses.scm			\
 | 
				
			||||||
  srfi/srfi-64.scm				\
 | 
					  srfi/srfi-64.scm				\
 | 
				
			||||||
  srfi/srfi-64.upstream.scm			\
 | 
					  srfi/srfi-64.upstream.scm			\
 | 
				
			||||||
  tests/test.drv				\
 | 
					  tests/test.drv				\
 | 
				
			||||||
| 
						 | 
					@ -366,3 +367,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS =			\
 | 
				
			||||||
  --with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)"	\
 | 
					  --with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)"	\
 | 
				
			||||||
  --with-nix-prefix="$(NIX_PREFIX)"		\
 | 
					  --with-nix-prefix="$(NIX_PREFIX)"		\
 | 
				
			||||||
  --enable-daemon
 | 
					  --enable-daemon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dist-hook:
 | 
				
			||||||
 | 
						-$(top_builddir)/pre-inst-env $(GUILE)		\
 | 
				
			||||||
 | 
						   $(top_srcdir)/build-aux/sync-synopses.scm
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										61
									
								
								build-aux/sync-synopses.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								build-aux/sync-synopses.scm
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,61 @@
 | 
				
			||||||
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
 | 
					;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is free software; you can redistribute it and/or modify it
 | 
				
			||||||
 | 
					;;; under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					;;; the Free Software Foundation; either version 3 of the License, or (at
 | 
				
			||||||
 | 
					;;; your option) any later version.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					;;; WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					;;; GNU General Public License for more details.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Report synopses that defer from those found in the GNU Womb.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-modules (guix gnu-maintenance)
 | 
				
			||||||
 | 
					             (guix packages)
 | 
				
			||||||
 | 
					             (guix utils)
 | 
				
			||||||
 | 
					             (guix ui)
 | 
				
			||||||
 | 
					             (gnu packages)
 | 
				
			||||||
 | 
					             (srfi srfi-1)
 | 
				
			||||||
 | 
					             (srfi srfi-26)
 | 
				
			||||||
 | 
					             (ice-9 match))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define official
 | 
				
			||||||
 | 
					  ;; GNU package descriptors from the Womb.
 | 
				
			||||||
 | 
					  (official-gnu-packages))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define gnus
 | 
				
			||||||
 | 
					  ;; GNU packages available in the distro.
 | 
				
			||||||
 | 
					  (let ((lookup (lambda (p)
 | 
				
			||||||
 | 
					                  (find (lambda (descriptor)
 | 
				
			||||||
 | 
					                          (equal? (gnu-package-name descriptor)
 | 
				
			||||||
 | 
					                                  (package-name p)))
 | 
				
			||||||
 | 
					                        official))))
 | 
				
			||||||
 | 
					    (fold-packages (lambda (package result)
 | 
				
			||||||
 | 
					                     (or (and=> (lookup package)
 | 
				
			||||||
 | 
					                                (cut alist-cons package <> result))
 | 
				
			||||||
 | 
					                         result))
 | 
				
			||||||
 | 
					                   '())))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Iterate over GNU packages.  Report those whose synopsis defers from that
 | 
				
			||||||
 | 
					;; found upstream.
 | 
				
			||||||
 | 
					(for-each (match-lambda
 | 
				
			||||||
 | 
					           ((package . descriptor)
 | 
				
			||||||
 | 
					            (let ((upstream   (gnu-package-doc-summary descriptor))
 | 
				
			||||||
 | 
					                  (downstream (package-synopsis package))
 | 
				
			||||||
 | 
					                  (loc        (package-location package)))
 | 
				
			||||||
 | 
					              (unless (and upstream (string=? upstream downstream))
 | 
				
			||||||
 | 
					                (format (guix-warning-port)
 | 
				
			||||||
 | 
					                        "~a: ~a: proposed synopsis: ~s~%"
 | 
				
			||||||
 | 
					                        (location->string loc) (package-name package)
 | 
				
			||||||
 | 
					                        upstream)))))
 | 
				
			||||||
 | 
					          gnus)
 | 
				
			||||||
		Reference in a new issue