From cab1415a94f09c529ca7323904c5a159c996cbe0 Mon Sep 17 00:00:00 2001
From: Tomi Ollila <tomi.ollila@iki.fi>
Date: Wed, 19 Mar 2014 22:37:10 +0200
Subject: [PATCH] emacs: add notmuch-version.el.tmpl and create
 notmuch-version.el from it

The notmuch cli program and emacs lisp versions may differ (especially
in remote usage). It helps to resolve problems if we can determine
the versions of notmuch cli and notmuch emacs mua separately.

The build process now creates notmuch-version.el from template file
by filling the version info to notmuch-emacs-version variable.
---
 emacs/.gitignore              |  1 +
 emacs/Makefile.local          | 11 +++++++++--
 emacs/notmuch-version.el.tmpl | 23 +++++++++++++++++++++++
 emacs/notmuch.el              |  4 ++++
 4 files changed, 37 insertions(+), 2 deletions(-)
 create mode 100644 emacs/notmuch-version.el.tmpl

diff --git a/emacs/.gitignore b/emacs/.gitignore
index 5421301c..9fa1c44e 100644
--- a/emacs/.gitignore
+++ b/emacs/.gitignore
@@ -1,2 +1,3 @@
 .eldeps*
 *.elc
+notmuch-version.el
diff --git a/emacs/Makefile.local b/emacs/Makefile.local
index 6a39b32d..ca039e59 100644
--- a/emacs/Makefile.local
+++ b/emacs/Makefile.local
@@ -17,7 +17,14 @@ emacs_sources := \
 	$(dir)/notmuch-crypto.el \
 	$(dir)/notmuch-tag.el \
 	$(dir)/coolj.el \
-	$(dir)/notmuch-print.el
+	$(dir)/notmuch-print.el \
+	$(dir)/notmuch-version.el
+
+$(dir)/notmuch-version.el: $(dir)/Makefile.local version.stamp
+$(dir)/notmuch-version.el: $(dir)/notmuch-version.el.tmpl
+	@sed -e 's/%AG%/Generated file (from $(<F)) -- do not edit!/' \
+	     -e 's/%VERSION%/"$(VERSION)"/' $< > $@
+
 
 emacs_images := \
 	$(srcdir)/$(dir)/notmuch-logo.png
@@ -71,4 +78,4 @@ endif
 	mkdir -p "$(DESTDIR)$(emacsetcdir)"
 	install -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)"
 
-CLEAN := $(CLEAN) $(emacs_bytecode)
+CLEAN := $(CLEAN) $(emacs_bytecode) $(dir)/notmuch-version.el
diff --git a/emacs/notmuch-version.el.tmpl b/emacs/notmuch-version.el.tmpl
new file mode 100644
index 00000000..236aaf7d
--- /dev/null
+++ b/emacs/notmuch-version.el.tmpl
@@ -0,0 +1,23 @@
+;; -*- emacs-lisp -*-
+;;
+;; %AG%
+;;
+;; This file is part of Notmuch.
+;;
+;; Notmuch is free software: you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; Notmuch is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with Notmuch.  If not, see <http://www.gnu.org/licenses/>.
+
+(defconst notmuch-emacs-version %VERSION%
+  "Version of Notmuch Emacs MUA.")
+
+(provide 'notmuch-version)
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 233c784d..64295ac9 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -61,6 +61,10 @@
 (require 'notmuch-message)
 (require 'notmuch-parser)
 
+(unless (require 'notmuch-version nil t)
+  (defconst notmuch-emacs-version "unknown"
+    "Placeholder variable when notmuch-version.el[c] is not available."))
+
 (defcustom notmuch-search-result-format
   `(("date" . "%12s ")
     ("count" . "%-7s ")
-- 
2.45.2