guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#26559: [PATCH] build: emacs: Install only a subset of files.


From: tumashu
Subject: bug#26559: [PATCH] build: emacs: Install only a subset of files.
Date: Wed, 19 Apr 2017 15:43:00 +0800 (CST)

What about  package-pkg.el  file?.






At 2017-04-19 15:35:25, "Arun Isaac" <address@hidden> wrote: >* guix/build/emacs-build-system.scm (install): Install files matching > #:include while excluding files matching #:exclude. >* guix/build-system/emacs.scm (emacs-build): Add keyword arguments #:include > and #:exclude. >--- > guix/build-system/emacs.scm | 6 ++++++ > guix/build/emacs-build-system.scm | 24 +++++++++++++++++++++--- > 2 files changed, 27 insertions(+), 3 deletions(-) > >diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm >index a7982002b..e6c021c7e 100644 >--- a/guix/build-system/emacs.scm >+++ b/guix/build-system/emacs.scm >@@ -83,6 +83,10 @@ > (phases '(@ (guix build emacs-build-system) > %standard-phases)) > (outputs '("out")) >+ (include ''(".*.el$" ".*.el.in$" "^dir$" >+ ".*.info$" ".*.texi$" ".*.texinfo$" >+ "doc/dir" "doc/*.info$" "doc/*.texi$" "doc/*.texinfo$")) >+ (exclude ''("^.dir-locals.el$" "^test.el$" "^tests.el$" ".*-test.el$" ".*-tests.el$")) > (search-paths '()) > (system (%current-system)) > (guile #f) >@@ -108,6 +112,8 @@ > #:tests? ,tests? > #:phases ,phases > #:outputs %outputs >+ #:include ,include >+ #:exclude ,exclude > #:search-paths ',(map search-path-specification->sexp > search-paths) > #:inputs %build-inputs))) >diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm >index 44e8b0d31..579596d72 100644 >--- a/guix/build/emacs-build-system.scm >+++ b/guix/build/emacs-build-system.scm >@@ -28,6 +28,7 @@ > #:use-module (ice-9 rdelim) > #:use-module (ice-9 regex) > #:use-module (ice-9 match) >+ #:use-module (ice-9 ftw) > #:export (%standard-phases > emacs-build)) > >@@ -93,14 +94,31 @@ store in '.el' files." > (substitute-cmd)))) > #t)) > >-(define* (install #:key outputs #:allow-other-keys) >+(define* (install #:key outputs >+ (include '(".*.el$" ".*.el.in$" "^dir$" >+ ".*.info$" ".*.texi$" ".*.texinfo$" >+ "^doc/dir" "^doc/*.info$" "^doc/*.texi$" "^doc/*.texinfo$")) >+ (exclude '("^.dir-locals.el$" "^test.el$" "^tests.el$" ".*-test.el$" ".*-tests.el$")) >+ #:allow-other-keys) > "Install the package contents." >+ >+ (define (include-file? file) >+ (and (any (cut string-match <> file) include) >+ (not (any (cut string-match <> file) exclude)))) >+ > (let* ((out (assoc-ref outputs "out")) > (elpa-name-ver (store-directory->elpa-name-version out)) > (src-dir (getcwd)) > (tgt-dir (string-append out %install-suffix "/" elpa-name-ver))) >- (copy-recursively src-dir tgt-dir) >- #t)) >+ (ftw src-dir >+ (lambda (file stat flag) >+ (let ((stripped-file (substring file (string-length src-dir)))) >+ (when (and (eq? flag 'regular) >+ (include-file? (string-trim stripped-file #\/))) >+ (format #t "`~a' -> `~a'~%" >+ file (string-append tgt-dir stripped-file)) >+ (install-file file tgt-dir))) >+ #t)))) > > (define* (move-doc #:key outputs #:allow-other-keys) > "Move info files from the ELPA package directory to the info directory." >-- >2.12.2 > > > >

reply via email to

[Prev in Thread] Current Thread [Next in Thread]