* [PATCH v3 1/3] build: write version.stamp file containing $(VERSION) string
2014-02-23 21:01 v3 of version change detection and notmuch emacs/hello version(s) Tomi Ollila
@ 2014-02-23 21:01 ` Tomi Ollila
2014-02-23 21:01 ` [PATCH v3 2/3] emacs: defconst notmuch-emacs-version to a value during byte compilation Tomi Ollila
2014-02-23 21:01 ` [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it Tomi Ollila
2 siblings, 0 replies; 10+ messages in thread
From: Tomi Ollila @ 2014-02-23 21:01 UTC (permalink / raw)
To: notmuch; +Cc: tomi.ollila
This version file will be as prerequisite to the target files
that use the version info for some purpose, like printing
it for the user to examine. The contents of the version.stamp
file is seldom read by the build system itself as the $(VERSION)
variable has the same information.
Thanks to Trevor, David and Mark for their contributions.
---
.gitignore | 1 +
Makefile.local | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index ef4f074..1fb3a71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
.first-build-message
Makefile.config
+version.stamp
TAGS
tags
*cscope*
diff --git a/Makefile.local b/Makefile.local
index 174506c..3a56c06 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -22,6 +22,11 @@ VERSION:=$(shell cat ${srcdir}/version)
ifeq ($(filter release release-message pre-release update-versions,$(MAKECMDGOALS)),)
ifeq ($(IS_GIT),yes)
VERSION:=$(shell git describe --match '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/)
+# Write the file 'version.stamp' in case its contents differ from $(VERSION)
+FILE_VERSION:=$(shell test -f version.stamp && read vs < version.stamp || vs=; echo $$vs)
+ifneq ($(FILE_VERSION),$(VERSION))
+ $(shell echo "$(VERSION)" > version.stamp)
+endif
endif
endif
@@ -69,6 +74,11 @@ ifeq ($(shell cat .first-build-message 2>/dev/null),)
endif
endif
+# Depend (also) on the file 'version'. In case of ifeq ($(IS_GIT),yes)
+# this file may already have been updated.
+version.stamp: version
+ echo $(VERSION) > $@
+
$(TAR_FILE):
if git tag -v $(VERSION) >/dev/null 2>&1; then \
ref=$(VERSION); \
@@ -280,6 +290,8 @@ notmuch_client_srcs = \
notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
+notmuch.o: version.stamp
+
notmuch: $(notmuch_client_modules) lib/libnotmuch.a util/libutil.a parse-time-string/libparse-time-string.a
$(call quiet,CXX $(CFLAGS)) $^ $(FINAL_LIBNOTMUCH_LDFLAGS) -o $@
@@ -318,7 +330,7 @@ install-desktop:
desktop-file-install --mode 0644 --dir "$(DESTDIR)$(desktop_dir)" notmuch.desktop
SRCS := $(SRCS) $(notmuch_client_srcs)
-CLEAN := $(CLEAN) notmuch notmuch-shared $(notmuch_client_modules) notmuch.elc
+CLEAN := $(CLEAN) notmuch notmuch-shared $(notmuch_client_modules) version.stamp
DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config
--
1.8.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/3] emacs: defconst notmuch-emacs-version to a value during byte compilation
2014-02-23 21:01 v3 of version change detection and notmuch emacs/hello version(s) Tomi Ollila
2014-02-23 21:01 ` [PATCH v3 1/3] build: write version.stamp file containing $(VERSION) string Tomi Ollila
@ 2014-02-23 21:01 ` Tomi Ollila
2014-02-23 21:01 ` [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it Tomi Ollila
2 siblings, 0 replies; 10+ messages in thread
From: Tomi Ollila @ 2014-02-23 21:01 UTC (permalink / raw)
To: notmuch; +Cc: tomi.ollila
The notmuch cli program and emacs lisp versions may differ. For now
we can help users with their emacs client problems better if we can
ask what version of emacs MUA they are running. In the future we can
put the emacs MUA version to User-Agent: string in outgoing mail.
---
emacs/Makefile.local | 6 +++++-
emacs/notmuch.el | 7 +++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/emacs/Makefile.local b/emacs/Makefile.local
index 6a39b32..9e3fb7a 100644
--- a/emacs/Makefile.local
+++ b/emacs/Makefile.local
@@ -24,6 +24,8 @@ emacs_images := \
emacs_bytecode = $(emacs_sources:.el=.elc)
+$(dir)/notmuch.elc: version.stamp
+
# Because of defmacro's and defsubst's, we have to account for load
# dependencies between Elisp files when byte compiling. Otherwise,
# the byte compiler may load an old .elc file when processing a
@@ -49,7 +51,9 @@ CLEAN+=$(dir)/.eldeps $(dir)/.eldeps.tmp $(dir)/.eldeps.x
ifeq ($(HAVE_EMACS),1)
%.elc: %.el $(global_deps)
- $(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
+ $(call quiet,EMACS) --directory emacs \
+ --eval "(setq notmuch--version \"$(VERSION)\")" \
+ -batch -f batch-byte-compile $<
endif
ifeq ($(WITH_EMACS),1)
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 0471750..1b15054 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -81,6 +81,13 @@ To enter a line break in customize, press \\[quoted-insert] C-j."
:type '(alist :key-type (string) :value-type (string))
:group 'notmuch-search)
+;; defconst notmuch-version to a value during build-time byte compilation...
+(defconst notmuch-emacs-version
+ (eval-when-compile (if (boundp 'notmuch--version)
+ notmuch--version
+ "unknown"))
+ "Version string of this version of Notmuch Emacs MUA.")
+
(defvar notmuch-query-history nil
"Variable to store minibuffer history for notmuch queries")
--
1.8.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it
2014-02-23 21:01 v3 of version change detection and notmuch emacs/hello version(s) Tomi Ollila
2014-02-23 21:01 ` [PATCH v3 1/3] build: write version.stamp file containing $(VERSION) string Tomi Ollila
2014-02-23 21:01 ` [PATCH v3 2/3] emacs: defconst notmuch-emacs-version to a value during byte compilation Tomi Ollila
@ 2014-02-23 21:01 ` Tomi Ollila
2014-03-08 13:14 ` David Bremner
2 siblings, 1 reply; 10+ messages in thread
From: Tomi Ollila @ 2014-02-23 21:01 UTC (permalink / raw)
To: notmuch; +Cc: tomi.ollila
If notmuch cli & notmuch emacs MUA versions differ, print also the
emacs MUA version string (along with the cli version) to the
minibuffer.
---
emacs/notmuch-hello.el | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index 7b3d76b..f5e7268 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -513,6 +513,18 @@ Such a list can be computed with `notmuch-hello-query-counts'."
(remove-hook 'window-configuration-change-hook
#'notmuch-hello-window-configuration-change))))
+;; the following variable is defined as being defconst in notmuch.el
+(defvar notmuch-emacs-version)
+
+(defun notmuch-hello-versions ()
+ "Display the notmuch version(s)"
+ (interactive)
+ (let ((notmuch-cli-version (notmuch-version)))
+ (message "notmuch version %s"
+ (if (string= notmuch-emacs-version notmuch-cli-version)
+ notmuch-cli-version
+ (concat notmuch-cli-version
+ " (emacs mua version " notmuch-emacs-version ")")))))
(defvar notmuch-hello-mode-map
(let ((map (if (fboundp 'make-composed-keymap)
@@ -523,8 +535,7 @@ Such a list can be computed with `notmuch-hello-query-counts'."
;; it's unlikely to change.
(copy-keymap widget-keymap))))
(set-keymap-parent map notmuch-common-keymap)
- (define-key map "v" (lambda () "Display the notmuch version" (interactive)
- (message "notmuch version %s" (notmuch-version))))
+ (define-key map "v" 'notmuch-hello-versions)
(define-key map (kbd "<C-tab>") 'widget-backward)
map)
"Keymap for \"notmuch hello\" buffers.")
--
1.8.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it
2014-02-23 21:01 ` [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it Tomi Ollila
@ 2014-03-08 13:14 ` David Bremner
2014-03-10 9:17 ` Tomi Ollila
2014-03-10 21:42 ` Tomi Ollila
0 siblings, 2 replies; 10+ messages in thread
From: David Bremner @ 2014-03-08 13:14 UTC (permalink / raw)
To: Tomi Ollila, notmuch; +Cc: tomi.ollila
Tomi Ollila <tomi.ollila@iki.fi> writes:
> If notmuch cli & notmuch emacs MUA versions differ, print also the
> emacs MUA version string (along with the cli version) to the
> minibuffer.
any idea why I get
notmuch version 0.17+111~g93cd619 (emacs mua version unknown)
when I "make debian-snapshot" after rebuilding this series?
d
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it
2014-03-08 13:14 ` David Bremner
@ 2014-03-10 9:17 ` Tomi Ollila
2014-03-10 21:42 ` Tomi Ollila
1 sibling, 0 replies; 10+ messages in thread
From: Tomi Ollila @ 2014-03-10 9:17 UTC (permalink / raw)
To: David Bremner, notmuch
On Sat, Mar 08 2014, David Bremner <david@tethera.net> wrote:
> Tomi Ollila <tomi.ollila@iki.fi> writes:
>
>> If notmuch cli & notmuch emacs MUA versions differ, print also the
>> emacs MUA version string (along with the cli version) to the
>> minibuffer.
>
> any idea why I get
>
> notmuch version 0.17+111~g93cd619 (emacs mua version unknown)
>
> when I "make debian-snapshot" after rebuilding this series?
Strange thing! -- does it load notmuch.el instead of notmuch.elc for some
reason?
I'll investigate this on my debian wheezy lxc container after the current
review round...
> d
Tomi
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it
2014-03-08 13:14 ` David Bremner
2014-03-10 9:17 ` Tomi Ollila
@ 2014-03-10 21:42 ` Tomi Ollila
2014-03-11 2:36 ` David Bremner
1 sibling, 1 reply; 10+ messages in thread
From: Tomi Ollila @ 2014-03-10 21:42 UTC (permalink / raw)
To: David Bremner, notmuch
On Sat, Mar 08 2014, David Bremner <david@tethera.net> wrote:
> Tomi Ollila <tomi.ollila@iki.fi> writes:
>
>> If notmuch cli & notmuch emacs MUA versions differ, print also the
>> emacs MUA version string (along with the cli version) to the
>> minibuffer.
>
> any idea why I get
>
> notmuch version 0.17+111~g93cd619 (emacs mua version unknown)
>
> when I "make debian-snapshot" after rebuilding this series?
OK, I did "make debian-snapshot" in my wheezy container (using
notmuch-0.17.tar.gz as a source).
notmuch-emacs_0.17+1_all.deb contains just the *.el files and no *.elc
files.
I can see the problem if *.el files is the way to install notmuch emacs
mua in any place...
> d
Tomi
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it
2014-03-10 21:42 ` Tomi Ollila
@ 2014-03-11 2:36 ` David Bremner
2014-03-12 11:42 ` David Bremner
0 siblings, 1 reply; 10+ messages in thread
From: David Bremner @ 2014-03-11 2:36 UTC (permalink / raw)
To: Tomi Ollila, notmuch
Tomi Ollila <tomi.ollila@iki.fi> writes:
>
> notmuch-emacs_0.17+1_all.deb contains just the *.el files and no *.elc
> files.
>
> I can see the problem if *.el files is the way to install notmuch emacs
> mua in any place...
Oh right. That's because Debian tries to support several versions of
emacs from one .deb.
d
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it
2014-03-11 2:36 ` David Bremner
@ 2014-03-12 11:42 ` David Bremner
2014-03-17 20:24 ` Tomi Ollila
0 siblings, 1 reply; 10+ messages in thread
From: David Bremner @ 2014-03-12 11:42 UTC (permalink / raw)
To: Tomi Ollila, notmuch
David Bremner <david@tethera.net> writes:
> Tomi Ollila <tomi.ollila@iki.fi> writes:
>
>>
>> notmuch-emacs_0.17+1_all.deb contains just the *.el files and no *.elc
>> files.
>>
>> I can see the problem if *.el files is the way to install notmuch emacs
>> mua in any place...
>
> Oh right. That's because Debian tries to support several versions of
> emacs from one .deb.
What about generating something like "notmuch-version.el" and requiring
that?
d
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] emacs: defun notmuch-hello-versions and bind 'v' in hello mode to it
2014-03-12 11:42 ` David Bremner
@ 2014-03-17 20:24 ` Tomi Ollila
0 siblings, 0 replies; 10+ messages in thread
From: Tomi Ollila @ 2014-03-17 20:24 UTC (permalink / raw)
To: David Bremner, notmuch
On Wed, Mar 12 2014, David Bremner <david@tethera.net> wrote:
> David Bremner <david@tethera.net> writes:
>
>> Tomi Ollila <tomi.ollila@iki.fi> writes:
>>
>>>
>>> notmuch-emacs_0.17+1_all.deb contains just the *.el files and no *.elc
>>> files.
>>>
>>> I can see the problem if *.el files is the way to install notmuch emacs
>>> mua in any place...
>>
>> Oh right. That's because Debian tries to support several versions of
>> emacs from one .deb.
>
> What about generating something like "notmuch-version.el" and requiring
> that?
Yes, I'll figure out something around that. patches 2/3 & 3/3 marked
moreinfo, as 1/3 should should still be usable.
>
> d
Tomi
^ permalink raw reply [flat|nested] 10+ messages in thread