[DRAFT PATCH] emacs: notmuch-version and version comparison with CLI
authorTomi Ollila <tomi.ollila@iki.fi>
Wed, 17 Jul 2013 19:53:02 +0000 (22:53 +0300)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:56:01 +0000 (09:56 -0800)
bf/aad8f1eb26c679e3f6cc32939622555ae40aaa [new file with mode: 0644]

diff --git a/bf/aad8f1eb26c679e3f6cc32939622555ae40aaa b/bf/aad8f1eb26c679e3f6cc32939622555ae40aaa
new file mode 100644 (file)
index 0000000..49fa49a
--- /dev/null
@@ -0,0 +1,123 @@
+Return-Path: <too@guru-group.fi>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 623B7431FC0\r
+       for <notmuch@notmuchmail.org>; Wed, 17 Jul 2013 12:53:20 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+       autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id 6HJRZq5UTnET for <notmuch@notmuchmail.org>;\r
+       Wed, 17 Jul 2013 12:53:12 -0700 (PDT)\r
+Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34])\r
+       by olra.theworths.org (Postfix) with ESMTP id CB5E5431FBF\r
+       for <notmuch@notmuchmail.org>; Wed, 17 Jul 2013 12:53:11 -0700 (PDT)\r
+Received: by guru.guru-group.fi (Postfix, from userid 501)\r
+       id 5478F1000F4; Wed, 17 Jul 2013 22:53:04 +0300 (EEST)\r
+From: Tomi Ollila <tomi.ollila@iki.fi>\r
+To: notmuch@notmuchmail.org\r
+Subject: [DRAFT PATCH] emacs: notmuch-version and version comparison with CLI\r
+Date: Wed, 17 Jul 2013 22:53:02 +0300\r
+Message-Id: <1374090782-10273-1-git-send-email-tomi.ollila@iki.fi>\r
+X-Mailer: git-send-email 1.8.0\r
+Cc: tomi.ollila@iki.fi\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 17 Jul 2013 19:53:20 -0000\r
+\r
+---\r
+\r
+This is continuation of id:m2y59ag9yj.fsf@guru.guru-group.fi\r
+\r
+This is draft of code which could be used to do exact version comparison\r
+between notmuch cli and notmuch Emacs MUA.\r
+\r
+In case the versions aren't exactly same a warning message is shown\r
+to the user before notmuch-hello window is filled the first time.\r
+\r
+If this approach gets support I'll write more prepared patches\r
+(in addition to make fully working patch...).\r
+\r
+Tomi\r
+\r
+ emacs/Makefile.local   |  4 +++-\r
+ emacs/notmuch-hello.el | 26 +++++++++++++++++++++++++-\r
+ 2 files changed, 28 insertions(+), 2 deletions(-)\r
+\r
+diff --git a/emacs/Makefile.local b/emacs/Makefile.local\r
+index a910aff..fd45d4a 100644\r
+--- a/emacs/Makefile.local\r
++++ b/emacs/Makefile.local\r
+@@ -36,7 +36,9 @@ $(dir)/.eldeps: $(dir)/Makefile.local $(dir)/make-deps.el $(emacs_sources)\r
+ CLEAN+=$(dir)/.eldeps $(dir)/.eldeps.tmp\r
\r
+ %.elc: %.el $(global_deps)\r
+-      $(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<\r
++      $(call quiet,EMACS) --directory emacs \\r
++              --eval "(setq notmuch--version \"$(VERSION)\")" \\r
++              -batch -f batch-byte-compile $<\r
\r
+ ifeq ($(WITH_EMACS),1)\r
+ ifeq ($(HAVE_EMACS),1)\r
+diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el\r
+index 147c08c..d97aee3 100644\r
+--- a/emacs/notmuch-hello.el\r
++++ b/emacs/notmuch-hello.el\r
+@@ -29,6 +29,18 @@\r
+ (declare-function notmuch-search "notmuch" (&optional query oldest-first target-thread target-line continuation))\r
+ (declare-function notmuch-poll "notmuch" ())\r
\r
++;; defconst notmuch-version to a value during build-time byte compilation...\r
++;; the compiled output will only contain the defconst definition\r
++(eval-when-compile\r
++  (defmacro expand-defconst-notmuch-version ()\r
++    `(if ,(boundp 'notmuch--version)\r
++         (defconst notmuch-version ,notmuch--version\r
++           "Version string for this version of Notmuch.")\r
++       (defconst notmuch-version "unknown"\r
++         "Placeholder for Notmuch version string. Set during build process.")))\r
++)\r
++(expand-defconst-notmuch-version)\r
++\r
+ (defcustom notmuch-hello-recent-searches-max 10\r
+   "The number of recent searches to display."\r
+   :type 'integer\r
+@@ -762,7 +774,19 @@ following:\r
\r
+   (if no-display\r
+       (set-buffer "*notmuch-hello*")\r
+-    (switch-to-buffer "*notmuch-hello*"))\r
++    (switch-to-buffer "*notmuch-hello*")\r
++    (if notmuch-hello-first-run\r
++      (let ((v (replace-regexp-in-string "^notmuch " ""\r
++                                         (car (process-lines notmuch-command\r
++                                                             "--version")))))\r
++        (unless (string= v notmuch-version)\r
++          (save-excursion\r
++            (erase-buffer)\r
++            (insert "\r
++Notmuch CLI version: " v "\r
++Notmuch Emacs version: " notmuch-version "\r
++\r
++XXX") (y-or-n-p "Press y or n to continue"))))))\r
\r
+   (let ((target-line (line-number-at-pos))\r
+       (target-column (current-column))\r
+-- \r
+1.8.1.4\r
+\r