profiles: Use 'with-extensions'.
* guix/profiles.scm (manual-database)[build]: Use 'with-extensions'. Remove 'add-to-load-path' call. * guix/man-db.scm: Use (gdbm) the normal way; remove 'module-autoload!' call.
This commit is contained in:
		
							parent
							
								
									33d8a87104
								
							
						
					
					
						commit
						331ac4cc23
					
				
					 2 changed files with 31 additions and 35 deletions
				
			
		|  | @ -1,5 +1,5 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -19,6 +19,7 @@ | |||
| (define-module (guix man-db) | ||||
|   #:use-module (guix zlib) | ||||
|   #:use-module ((guix build utils) #:select (find-files)) | ||||
|   #:use-module (gdbm)                             ;gdbm-ffi | ||||
|   #:use-module (srfi srfi-9) | ||||
|   #:use-module (srfi srfi-26) | ||||
|   #:use-module (ice-9 match) | ||||
|  | @ -44,9 +45,6 @@ | |||
| ;;; | ||||
| ;;; Code: | ||||
| 
 | ||||
| ;; Load 'gdbm-ffi' at run time to simplify the job of 'imported-modules' & co. | ||||
| (module-autoload! (current-module) '(gdbm) '(gdbm-open GDBM_WRCREAT)) | ||||
| 
 | ||||
| (define-record-type <mandb-entry> | ||||
|   (mandb-entry file-name name section synopsis kind) | ||||
|   mandb-entry? | ||||
|  |  | |||
|  | @ -1196,41 +1196,39 @@ the entries in MANIFEST." | |||
| 
 | ||||
|   (define build | ||||
|     (with-imported-modules modules | ||||
|       #~(begin | ||||
|           (add-to-load-path (string-append #$gdbm-ffi "/share/guile/site/" | ||||
|                                            (effective-version))) | ||||
|       (with-extensions (list gdbm-ffi)            ;for (guix man-db) | ||||
|         #~(begin | ||||
|             (use-modules (guix man-db) | ||||
|                          (guix build utils) | ||||
|                          (srfi srfi-1) | ||||
|                          (srfi srfi-19)) | ||||
| 
 | ||||
|           (use-modules (guix man-db) | ||||
|                        (guix build utils) | ||||
|                        (srfi srfi-1) | ||||
|                        (srfi srfi-19)) | ||||
|             (define (compute-entries) | ||||
|               (append-map (lambda (directory) | ||||
|                             (let ((man (string-append directory "/share/man"))) | ||||
|                               (if (directory-exists? man) | ||||
|                                   (mandb-entries man) | ||||
|                                   '()))) | ||||
|                           '#$(manifest-inputs manifest))) | ||||
| 
 | ||||
|           (define (compute-entries) | ||||
|             (append-map (lambda (directory) | ||||
|                           (let ((man (string-append directory "/share/man"))) | ||||
|                             (if (directory-exists? man) | ||||
|                                 (mandb-entries man) | ||||
|                                 '()))) | ||||
|                         '#$(manifest-inputs manifest))) | ||||
|             (define man-directory | ||||
|               (string-append #$output "/share/man")) | ||||
| 
 | ||||
|           (define man-directory | ||||
|             (string-append #$output "/share/man")) | ||||
|             (mkdir-p man-directory) | ||||
| 
 | ||||
|           (mkdir-p man-directory) | ||||
| 
 | ||||
|           (format #t "Creating manual page database...~%") | ||||
|           (force-output) | ||||
|           (let* ((start    (current-time)) | ||||
|                  (entries  (compute-entries)) | ||||
|                  (_        (write-mandb-database (string-append man-directory | ||||
|                                                                 "/index.db") | ||||
|                                                  entries)) | ||||
|                  (duration (time-difference (current-time) start))) | ||||
|             (format #t "~a entries processed in ~,1f s~%" | ||||
|                     (length entries) | ||||
|                     (+ (time-second duration) | ||||
|                        (* (time-nanosecond duration) (expt 10 -9)))) | ||||
|             (force-output))))) | ||||
|             (format #t "Creating manual page database...~%") | ||||
|             (force-output) | ||||
|             (let* ((start    (current-time)) | ||||
|                    (entries  (compute-entries)) | ||||
|                    (_        (write-mandb-database (string-append man-directory | ||||
|                                                                   "/index.db") | ||||
|                                                    entries)) | ||||
|                    (duration (time-difference (current-time) start))) | ||||
|               (format #t "~a entries processed in ~,1f s~%" | ||||
|                       (length entries) | ||||
|                       (+ (time-second duration) | ||||
|                          (* (time-nanosecond duration) (expt 10 -9)))) | ||||
|               (force-output)))))) | ||||
| 
 | ||||
|   (gexp->derivation "manual-database" build | ||||
| 
 | ||||
|  |  | |||
		Reference in a new issue