summaryrefslogtreecommitdiff
path: root/guix/build/emacs-build-system.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/build/emacs-build-system.scm')
-rw-r--r--guix/build/emacs-build-system.scm43
1 files changed, 7 insertions, 36 deletions
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index c01b24fe9a..f0a9a6e125 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -83,7 +83,8 @@ store in '.el' files."
(let* ((out (assoc-ref outputs "out"))
(elpa-name-ver (store-directory->elpa-name-version out))
(el-dir (string-append out %install-suffix "/" elpa-name-ver))
- (info-dir (string-append out "/share/info"))
+ (name-ver (strip-store-file-name out))
+ (info-dir (string-append out "/share/info/"))
(info-files (find-files el-dir "\\.info$")))
(unless (null? info-files)
(mkdir-p info-dir)
@@ -115,7 +116,7 @@ store in '.el' files."
(filter (match-lambda
((label . directory)
(emacs-package? ((compose package-name->name+version
- store-directory->name-version)
+ strip-store-file-name)
directory)))
(_ #f))
inputs))
@@ -137,47 +138,17 @@ DIRS."
(define (package-name-version->elpa-name-version name-ver)
"Convert the Guix package NAME-VER to the corresponding ELPA name-version
format. Essnetially drop the prefix used in Guix."
- (let ((name (store-directory->name-version name-ver)))
- (if (emacs-package? name-ver)
- (store-directory->name-version name-ver)
- name-ver)))
+ (if (emacs-package? name-ver) ; checks for "emacs-" prefix
+ (string-drop name-ver (string-length "emacs-"))
+ name-ver))
(define (store-directory->elpa-name-version store-dir)
"Given a store directory STORE-DIR return the part of the basename after the
second hyphen. This corresponds to 'name-version' as used in ELPA packages."
((compose package-name-version->elpa-name-version
- store-directory->name-version)
+ strip-store-file-name)
store-dir))
-(define (store-directory->name-version store-dir)
- "Given a store directory STORE-DIR return the part of the basename
-after the first hyphen. This corresponds to 'name-version' of the package."
- (let* ((base (basename store-dir)))
- (string-drop base
- (+ 1 (string-index base #\-)))))
-
-;; from (guix utils). Should we put it in (guix build utils)?
-(define (package-name->name+version name)
- "Given NAME, a package name like \"foo-0.9.1b\", return two values:
-\"foo\" and \"0.9.1b\". When the version part is unavailable, NAME and
-#f are returned. The first hyphen followed by a digit is considered to
-introduce the version part."
- ;; See also `DrvName' in Nix.
-
- (define number?
- (cut char-set-contains? char-set:digit <>))
-
- (let loop ((chars (string->list name))
- (prefix '()))
- (match chars
- (()
- (values name #f))
- ((#\- (? number? n) rest ...)
- (values (list->string (reverse prefix))
- (list->string (cons n rest))))
- ((head tail ...)
- (loop tail (cons head prefix))))))
-
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'configure)