summaryrefslogtreecommitdiff
path: root/dh-elpa.el
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2016-02-20 15:50:13 -0700
committerDavid Bremner <bremner@debian.org>2016-02-21 09:17:32 -0400
commita4d7fb9d93768a075b6a6bbbba711bf815f8663f (patch)
treeadf9b5db07e1e1b1730adbcacc417f1d85b0c746 /dh-elpa.el
parent1a89128489ef6ac75ee8b9689daa9b9ad18aa425 (diff)
fix generation of *-pkg.el file
Exclude dependencies on dash-el and s-el.
Diffstat (limited to 'dh-elpa.el')
-rw-r--r--dh-elpa.el42
1 files changed, 25 insertions, 17 deletions
diff --git a/dh-elpa.el b/dh-elpa.el
index a7630b6..4c387c7 100644
--- a/dh-elpa.el
+++ b/dh-elpa.el
@@ -60,29 +60,36 @@ current time is used."
#'dhelpa-autoload-insert-section-header)
pkg-dir))
+(defun dhelpa-filter-deps-for-debian (deps)
+ "Filter a list of package.el deps DEPS for Debian.
+
+Remove packages that are maintained outside of the elpa-*
+namespace in Debian, plus Emacs itself."
+ (let ((non-elpa (list 'emacs 's 'dash)))
+ (cl-remove-if (lambda (dep)
+ (or (memq (car dep) non-elpa)
+ (package-built-in-p (car dep))))
+ deps)))
+
+(defun dhelpa-filter-pkg-desc (desc)
+ "Filter the dependencies of package description DESC for Debian."
+ (callf 'dhelpa-filter-deps-for-debian (pkg-desc-reqs desc)))
+
(defun dhelpa-debianise-deps (deps)
"Convert a list of package.el deps DEPS to debian/control format."
- ;; `non-elpa' is a list of libraries that are packaged in Debian
- ;; outside the elpa-* namespace, plus Emacs itself
- (let* ((non-elpa (list 'emacs 's 'dash))
- (filtered-deps (cl-remove-if
- (lambda (dep)
- (or (memq (car dep) non-elpa)
- (package-built-in-p (car dep))))
- deps)))
- (mapconcat
- (lambda (dep)
- (let ((pkg-name (format "elpa-%s" (car dep)))
- (pkg-ver (mapconcat 'number-to-string (car (cdr dep)) ".")))
- (concat pkg-name " (>= " pkg-ver ")")))
- filtered-deps ", ")))
+ (mapconcat
+ (lambda (dep)
+ (let ((pkg-name (format "elpa-%s" (car dep)))
+ (pkg-ver (mapconcat 'number-to-string (car (cdr dep)) ".")))
+ (concat pkg-name " (>= " pkg-ver ")")))
+ deps ", "))
;; Write out (partial) package description in a form easily parsed by
;; non-lisp tools.
(defun dhelpa-write-desc (desc dest)
(let* ((name (package-desc-name desc))
(version (package-version-join (package-desc-version desc)))
- (deps (dhelpa-debianise-deps (package-desc-reqs desc)))
+ (deps (dhelpa-debianise-deps (package-desc-reqs (dhelpa-filter-pkg-desc desc))))
(desc-file (expand-file-name (format "%s.desc" name) dest)))
(with-temp-file desc-file
(insert (format "ELPA-Name: %s\n" name))
@@ -171,11 +178,12 @@ specifies time to use in generated autoloads files."
(package-buffer-info))
(error (progn
(message "dh_elpa: couldn't generate -pkg file; please write one")
- (kill-emacs -1))))))
+ (kill-emacs -1)))))
+ (filtered-pkg-desc (dhelpa-filter-pkg-desc pkg-desc)))
;; although the docstring for `package-generate-description-file'
;; says that it generates a description for single-file packages,
;; there is in fact no difference between the descriptions for
;; single-file and multifile packages
- (package-generate-description-file pkg-desc pkg-file)))
+ (package-generate-description-file filtered-pkg-desc pkg-file)))
;;; dh-elpa.el ends here