From f0067363fdc4617ed64c2a7f666d8778c294ff44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vanicat?= Date: Mon, 11 Jul 2016 15:29:45 +0200 Subject: Use DEB_VERSION_UPSTREAM as elpa version. --- dh-elpa.el | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'dh-elpa.el') diff --git a/dh-elpa.el b/dh-elpa.el index d76830b..31244ef 100644 --- a/dh-elpa.el +++ b/dh-elpa.el @@ -60,6 +60,47 @@ current time is used." #'dhelpa-autoload-insert-section-header) pkg-dir)) +;; Originally package-buffer-info from package.el in Emacs 24.5.1 +(defun dhelpa-buffer-info () + "Return a `package-desc' describing the package in the current buffer. + +If the buffer does not contain a conforming package, signal an +error. If there is a package, narrow the buffer to the file's +boundaries. + +If there is no version information, use DEB_VERSION_UPSTREAM" + (goto-char (point-min)) + (unless (re-search-forward "^;;; \\([^ ]*\\)\\.el ---[ \t]*\\(.*?\\)[ \t]*\\(-\\*-.*-\\*-[ \t]*\\)?$" nil t) + (error "Package lacks a file header")) + (let ((file-name (match-string-no-properties 1)) + (desc (match-string-no-properties 2)) + (start (line-beginning-position))) + (unless (search-forward (concat ";;; " file-name ".el ends here")) + (error "Package lacks a terminating comment")) + ;; Try to include a trailing newline. + (forward-line) + (narrow-to-region start (point)) + (require 'lisp-mnt) + ;; Use some headers we've invented to drive the process. + (let* ((requires-str (lm-header "package-requires")) + ;; Prefer Package-Version; if defined, the package author + ;; probably wants us to use it. Otherwise try Version. + (pkg-version + (or (package-strip-rcs-id (lm-header "package-version")) + (package-strip-rcs-id (lm-header "version")) + (getenv "DEB_VERSION_UPSTREAM"))) + (homepage (lm-homepage))) + (unless pkg-version + (error + "Package lacks a \"Version\" or \"Package-Version\" header")) + (package-desc-from-define + file-name pkg-version desc + (if requires-str + (package--prepare-dependencies + (package-read-from-string requires-str))) + :kind 'single + :url homepage)))) + (defun dhelpa-filter-deps-for-debian (deps) "Filter a list of package.el deps DEPS for Debian. @@ -109,7 +150,7 @@ autoload files." (interactive "D") (let ((pkg-desc (if (derived-mode-p 'tar-mode) (package-tar-file-info) - (package-buffer-info)))) + (dhelpa-buffer-info)))) (dhelpa-unpack pkg-desc destdir epoch-time) pkg-desc)) @@ -177,7 +218,7 @@ specifies time to use in generated autoloads files." (condition-case nil (with-temp-buffer (find-file root-file) - (package-buffer-info)) + (dhelpa-buffer-info)) (error (progn (message "dh_elpa: couldn't generate -pkg file; please write one") (kill-emacs -1))))) -- cgit v1.2.3