diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2016-08-12 18:53:11 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2016-08-12 18:53:22 -0700 |
commit | fa2090b76622569638d354898c939aa231e896f6 (patch) | |
tree | 23c18769177ac6f08288b514b5cf578872b13f98 | |
parent | 6e6dbbf995e42fc068dc166647cd6b3d9b85f888 (diff) |
better output & docs for when DEB_* isn't enough
-rw-r--r-- | dh-elpa.el | 20 | ||||
-rwxr-xr-x | dh_elpa.in | 15 |
2 files changed, 22 insertions, 13 deletions
@@ -114,18 +114,24 @@ Versions taken from environment variables are run through `dhelpa-sanitise-version'." ;; If one of these environment variables is the empty string, it's ;; as good as unset, so we replace that with the nil value. - (let ((upstream-version (null-empty-string - (dhelpa-sanitise-version - (getenv "DEB_UPSTREAM_VERSION")))) - (version-upstream (null-empty-string - (dhelpa-sanitise-version - (getenv "DEB_VERSION_UPSTREAM"))))) + (let* ((upstream-version (null-empty-string + (getenv "DEB_UPSTREAM_VERSION"))) + (version-upstream (null-empty-string + (getenv "DEB_VERSION_UPSTREAM"))) + (version (if upstream-version upstream-version version-upstream)) + (sanitised-version (dhelpa-sanitise-version version))) + ;; sanity check #1 (if (and upstream-version version-upstream (not (string= upstream-version version-upstream))) (error "The DEB_UPSTREAM_VERSION and DEB_VERSION_UPSTREAM environment variables are both set, but they disagree.") - (if upstream-version upstream-version version-upstream)))) + ;; sanity check #2 + (unless (ignore-errors (version-to-list sanitised-version)) + (error (concat "E: The Debian version " version " cannot be used as an ELPA version. +See dh_elpa(1) HINTS for how to deal with this."))) + ;; if we got this far, return it + sanitised-version))) ;;;###autoload (defun dhelpa-sanitise-version (version) @@ -326,9 +326,10 @@ substvars If dh_elpa can't determine the package version by looking at *.el files (usually because upstream has failed to include the proper -headers), it will fallback to the DEB_UPSTREAM_VERSION and -DEB_VERSION_UPSTREAM environment variables. An easy way to set one of -these is just to prepend the following to your rules file: +headers or *-pkg.el file), it will fallback to the +DEB_UPSTREAM_VERSION and DEB_VERSION_UPSTREAM environment variables. +An easy way to set one of these is just to prepend the following to +your rules file: =over 4 @@ -337,6 +338,8 @@ these is just to prepend the following to your rules file: =back -Note that this will fail in certain cases where the Debian upstream -version cannot be translated into an adequate Emacs version string. -See the documentation for the `dhelpa-sanitise-version' function. +Certain Debian upstream version strings cannot be translated into +version strings Emacs will accept (see the docstring for the Emacs +function `version-to-list' for details). dh_elpa will error out if +the version cannot be translated. You should resort to patching in a +Package-Version header or adding a *-pkg.el file. |