From a4d7fb9d93768a075b6a6bbbba711bf815f8663f Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Sat, 20 Feb 2016 15:50:13 -0700 Subject: fix generation of *-pkg.el file Exclude dependencies on dash-el and s-el. --- dh-elpa.el | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to 'dh-elpa.el') 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 -- cgit v1.2.3