summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Vanicat <vanicat@debian.org>2016-07-11 15:29:45 +0200
committerRémi Vanicat <vanicat@debian.org>2016-07-11 16:13:21 +0200
commitf0067363fdc4617ed64c2a7f666d8778c294ff44 (patch)
treec39139c25547773414b4ab4f4289c22b5dbed5c1
parenta9e48a4b0eb6b45790cc12095bc7ba70fbe90589 (diff)
Use DEB_VERSION_UPSTREAM as elpa version.
-rw-r--r--debian/changelog6
-rw-r--r--dh-elpa.el45
2 files changed, 48 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog
index 2db5de6..0d3610a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,7 +15,11 @@ dh-elpa (1.0) UNRELEASED; urgency=medium
* depend on libdebian-source-perl in preference to dh-make-perl, if the
former is available.
- -- David Bremner <bremner@debian.org> Thu, 30 Jun 2016 13:11:49 +0200
+ [ Rémi Vanicat ]
+ * use DEB_VERSION_UPSTREAM as elpa version if there is no version line
+ in the main "*.el" file
+
+ -- Rémi Vanicat <vanicat@debian.org> Mon, 11 Jul 2016 15:29:38 +0200
dh-elpa (0.0.21) unstable; urgency=medium
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)))))