From: David Bremner Date: Thu, 17 Nov 2016 12:25:08 +0000 (-0400) Subject: Merge branch 'release' X-Git-Tag: 0.24_rc0~87 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=60ac94fe58635f9c40724afa0f35965fc9ff1afc;hp=0abcad7c0ec2099750720d02b97aa84ce0255f91 Merge branch 'release' Updates for 0.23.2 --- diff --git a/Makefile.local b/Makefile.local index d1b0585f..0a122ab0 100644 --- a/Makefile.local +++ b/Makefile.local @@ -19,9 +19,12 @@ DATE:=$(shell date +%F) endif VERSION:=$(shell cat ${srcdir}/version) +ELPA_VERSION:=$(subst ~,_,$(VERSION)) ifeq ($(filter release release-message pre-release update-versions,$(MAKECMDGOALS)),) ifeq ($(IS_GIT),yes) VERSION:=$(shell git --git-dir=${srcdir}/.git describe --abbrev=7 --match '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/) +# drop the ~g$sha1 part +ELPA_VERSION:=$(word 1,$(subst ~, ,$(VERSION))) # 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)) diff --git a/bindings/python/notmuch/version.py b/bindings/python/notmuch/version.py index 4bbe0cdc..5f234565 100644 --- a/bindings/python/notmuch/version.py +++ b/bindings/python/notmuch/version.py @@ -1,3 +1,3 @@ # this file should be kept in sync with ../../../version -__VERSION__ = '0.23.1' +__VERSION__ = '0.23.2' SOVERSION = '4' diff --git a/debian/changelog b/debian/changelog index 2c7cd234..66634034 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +notmuch (0.23.2-1) unstable; urgency=medium + + * New upstream bugfix release + * Convert notmuch-emacs to dh-elpa, new binary package elpa-notmuch + * Bug fix: "maintainer script(s) do not start on #!", thanks to + treinen@debian.org; (Closes: #843287). + + -- David Bremner Thu, 10 Nov 2016 22:36:04 -0400 + notmuch (0.23.1-1) unstable; urgency=medium * New upstream bugfix release diff --git a/debian/control b/debian/control index 4027a79b..a8c7ce20 100644 --- a/debian/control +++ b/debian/control @@ -17,6 +17,7 @@ Build-Depends: python-all (>= 2.6.6-3~), python3-all (>= 3.1.2-7~), dh-python, + dh-elpa (>= 1.3), python-sphinx (>= 1.0), ruby, ruby-dev (>>1:1.9.3~), emacs24-nox | emacs24 (>=24~) | emacs24-lucid (>=24~) | @@ -111,13 +112,12 @@ Description: Ruby interface to the notmuch mail search and index library Package: notmuch-emacs Architecture: all -Section: mail -Breaks: notmuch (<<0.6~254~) -Replaces: notmuch (<<0.6~254~) -Depends: ${misc:Depends}, notmuch (>= ${source:Version}), - emacs23 (>= 23~) | emacs23-nox (>=23~) | emacs23-lucid (>=23~) | - emacs24 (>= 24~) | emacs24-nox (>=24~) | emacs24-lucid (>=24~), - emacsen-common (>= 2.0.8) +Description: thread-based email index, search and tagging (transitional package) + This dummy package help ease transition to the new package elpa-notmuch + +Package: elpa-notmuch +Architecture: all +Depends: ${misc:Depends}, ${elpa:Depends} Description: thread-based email index, search and tagging (emacs interface) Notmuch is a system for indexing, searching, reading, and tagging large collections of email messages in maildir or mh format. It uses diff --git a/debian/elpa-notmuch.elpa b/debian/elpa-notmuch.elpa new file mode 100644 index 00000000..b4e9e172 --- /dev/null +++ b/debian/elpa-notmuch.elpa @@ -0,0 +1 @@ +emacs/*.el diff --git a/debian/notmuch-emacs.dirs b/debian/notmuch-emacs.dirs deleted file mode 100644 index caeb4003..00000000 --- a/debian/notmuch-emacs.dirs +++ /dev/null @@ -1 +0,0 @@ -usr/share/emacs/site-lisp/notmuch diff --git a/debian/notmuch-emacs.emacsen-compat b/debian/notmuch-emacs.emacsen-compat deleted file mode 100644 index 573541ac..00000000 --- a/debian/notmuch-emacs.emacsen-compat +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/debian/notmuch-emacs.emacsen-install b/debian/notmuch-emacs.emacsen-install deleted file mode 100755 index cce95c34..00000000 --- a/debian/notmuch-emacs.emacsen-install +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# /usr/lib/emacsen-common/packages/install/notmuch-emacs -set -e - -FLAVOR=$1 -PACKAGE=notmuch - -case "${FLAVOR}" in - emacs) - return 0 - ;; - xemacs*|emacs2[12]) - # patches welcome. - echo install/${PACKAGE}: skipping install for unsupported emacsen flavor ${FLAVOR} - exit 0 - ;; - *) - echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} -esac - - -elc_dir=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} -el_dir=/usr/share/emacs/site-lisp/${PACKAGE} - -byte_compile_options="--quick --directory=${el_dir} -batch -f batch-byte-compile" - -echo install/${PACKAGE}: byte-compiling for ${FLAVOR} - -[ -d ${elc_dir} ] || mkdir ${elc_dir} - -# Create symlinks to the .el files (see section 6E in debian-emacs -# polcy). This makes complation easy, and also allows find-function -# and find-library to work properly. -(cd ${elc_dir} && ln -sf ${el_dir}/*.el .) - -# Byte compile them -(cd ${elc_dir} - set +e - ${FLAVOR} ${byte_compile_options} *.el > Install.log 2>&1 - if test $? -ne 0 - then - cat Install.log - exit 1 - fi - set -e - gzip -9f Install.log) - -exit 0; diff --git a/debian/notmuch-emacs.emacsen-remove b/debian/notmuch-emacs.emacsen-remove deleted file mode 100755 index a5553209..00000000 --- a/debian/notmuch-emacs.emacsen-remove +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# /usr/lib/emacsen-common/packages/remove/notmuch - -set -e - -FLAVOR=$1 -PACKAGE=notmuch -elc_dir=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} - -case "${FLAVOR}" in - emacs) - return 0 - ;; - xemacs*|emacs2[12]) - # patches welcome. - echo install/${PACKAGE}: skipping removal for unsupported emacsen flavor ${FLAVOR} - exit 0 - ;; - *) - echo remove/${PACKAGE}: Handling removal for emacsen flavor ${FLAVOR} -esac - -echo remove/${PACKAGE}: Handling removal of emacsen flavor ${FLAVOR} - -echo emacsen-common: purging byte-compiled files for ${FLAVOR} -rm -f ${elc_dir}/*.elc -rm -f ${elc_dir}/*.el -rm -f ${elc_dir}/Install.log* -if test -e "${elc_dir}" -then - rmdir --ignore-fail-on-non-empty "${elc_dir}" -fi - -exit 0; diff --git a/debian/notmuch-emacs.install b/debian/notmuch-emacs.install deleted file mode 100644 index c73aecef..00000000 --- a/debian/notmuch-emacs.install +++ /dev/null @@ -1 +0,0 @@ -usr/share/emacs/site-lisp/notmuch/*.el diff --git a/debian/notmuch-emacs.postinst b/debian/notmuch-emacs.postinst deleted file mode 100644 index 1237237d..00000000 --- a/debian/notmuch-emacs.postinst +++ /dev/null @@ -1,7 +0,0 @@ -dir="/var/lib/emacsen-common/state/package/installed" -mkdir -p -m 0755 ${dir} -touch ${dir}/notmuch-emacs -#DEBHELPER# -if [ -d /0755 ]; then - rmdir /0755 || true -fi diff --git a/debian/notmuch-emacs.prerm b/debian/notmuch-emacs.prerm deleted file mode 100644 index 5e2758d3..00000000 --- a/debian/notmuch-emacs.prerm +++ /dev/null @@ -1,3 +0,0 @@ -#DEBHELPER# -dir="/var/lib/emacsen-common/state/package/installed" -rm -f ${dir}/notmuch-emacs diff --git a/debian/rules b/debian/rules index 04f0062a..15710a89 100755 --- a/debian/rules +++ b/debian/rules @@ -3,7 +3,7 @@ python3_all = py3versions -s | xargs -n1 | xargs -t -I {} env {} %: - dh $@ --with python2,python3 + dh $@ --with python2,python3,elpa override_dh_auto_configure: ./configure --prefix=/usr \ diff --git a/emacs/.gitignore b/emacs/.gitignore index 9fa1c44e..8e15eed7 100644 --- a/emacs/.gitignore +++ b/emacs/.gitignore @@ -1,3 +1,4 @@ .eldeps* *.elc notmuch-version.el +notmuch-pkg.el diff --git a/emacs/Makefile.local b/emacs/Makefile.local index 6896ff90..90a57cca 100644 --- a/emacs/Makefile.local +++ b/emacs/Makefile.local @@ -3,6 +3,7 @@ dir := emacs emacs_sources := \ $(dir)/notmuch-lib.el \ + $(dir)/notmuch-compat.el \ $(dir)/notmuch-parser.el \ $(dir)/notmuch.el \ $(dir)/notmuch-query.el \ @@ -28,6 +29,12 @@ $(dir)/notmuch-version.el: $(srcdir)/$(dir)/notmuch-version.el.tmpl @sed -e 's/%AG%/Generated file (from $( $@ +$(dir)/notmuch-pkg.el: $(srcdir)/$(dir)/notmuch-pkg.el.tmpl + @sed -e 's/%AG%/Generated file (from $( $@ + +all: $(dir)/notmuch-pkg.el +install-emacs: $(dir)/notmuch-pkg.el emacs_images := \ $(srcdir)/$(dir)/notmuch-logo.png @@ -85,4 +92,4 @@ endif mkdir -p "$(DESTDIR)$(emacsetcdir)" install -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)" -CLEAN := $(CLEAN) $(emacs_bytecode) $(dir)/notmuch-version.el +CLEAN := $(CLEAN) $(emacs_bytecode) $(dir)/notmuch-version.el $(dir)/notmuch-pkg.el diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el index 5b2beefe..b3c56cfa 100644 --- a/emacs/notmuch-address.el +++ b/emacs/notmuch-address.el @@ -147,11 +147,11 @@ toggles the setting in this buffer." (interactive) (if (local-variable-p 'notmuch-address-command) (kill-local-variable 'notmuch-address-command) - (setq-local notmuch-address-command 'internal)) + (notmuch-setq-local notmuch-address-command 'internal)) (if (boundp 'company-idle-delay) (if (local-variable-p 'company-idle-delay) (kill-local-variable 'company-idle-delay) - (setq-local company-idle-delay nil)))) + (notmuch-setq-local company-idle-delay nil)))) (defun notmuch-address-matching (substring) "Returns a list of completion candidates matching SUBSTRING. diff --git a/emacs/notmuch-company.el b/emacs/notmuch-company.el index b0f97821..ebe2c084 100644 --- a/emacs/notmuch-company.el +++ b/emacs/notmuch-company.el @@ -28,6 +28,7 @@ ;;; Code: (eval-when-compile (require 'cl)) +(require 'notmuch-lib) (defvar notmuch-company-last-prefix nil) (make-variable-buffer-local 'notmuch-company-last-prefix) @@ -53,7 +54,7 @@ ;; internal completion) can still be accessed via standard company ;; functions, e.g., company-complete. (unless (eq notmuch-address-command 'internal) - (setq-local company-idle-delay nil))) + (notmuch-setq-local company-idle-delay nil))) ;;;###autoload (defun notmuch-company (command &optional arg &rest _ignore) diff --git a/emacs/notmuch-compat.el b/emacs/notmuch-compat.el new file mode 100644 index 00000000..c3d827af --- /dev/null +++ b/emacs/notmuch-compat.el @@ -0,0 +1,73 @@ +;; Compatibility functions for emacs 23 and 24 pre 24.4 + +;; The functions in this file are copied from eamcs 24.4 and are +;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2014 Free Software +;; Foundation, Inc. + +(if (fboundp 'setq-local) + (defalias 'notmuch-setq-local 'setq-local) + (defmacro notmuch-setq-local (var val) + "Set variable VAR to value VAL in current buffer. + +Backport of setq-local for emacs without setq-local (pre 24.3)." + `(set (make-local-variable ',var) ,val))) + +(if (fboundp 'read-char-choice) + (defalias 'notmuch-read-char-choice 'read-char-choice) + (defun notmuch-read-char-choice (prompt chars &optional inhibit-keyboard-quit) + "Read and return one of CHARS, prompting for PROMPT. +Any input that is not one of CHARS is ignored. + +If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore +keyboard-quit events while waiting for a valid input. + +This is an exact copy of this function from emacs 24 for use on +emacs 23, except with the one emacs 24 only function it calls +inlined." + (unless (consp chars) + (error "Called `read-char-choice' without valid char choices")) + (let (char done show-help (helpbuf " *Char Help*")) + (let ((cursor-in-echo-area t) + (executing-kbd-macro executing-kbd-macro) + (esc-flag nil)) + (save-window-excursion ; in case we call help-form-show + (while (not done) + (unless (get-text-property 0 'face prompt) + (setq prompt (propertize prompt 'face 'minibuffer-prompt))) + (setq char (let ((inhibit-quit inhibit-keyboard-quit)) + (read-key prompt))) + (and show-help (buffer-live-p (get-buffer helpbuf)) + (kill-buffer helpbuf)) + (cond + ((not (numberp char))) + ;; If caller has set help-form, that's enough. + ;; They don't explicitly have to add help-char to chars. + ((and help-form + (eq char help-char) + (setq show-help t) + ;; This is an inlined copy of help-form-show as that + ;; was introduced in emacs 24 too. + (let ((msg (eval help-form))) + (if (stringp msg) + (with-output-to-temp-buffer " *Char Help*" + (princ msg)))))) + ((memq char chars) + (setq done t)) + ((and executing-kbd-macro (= char -1)) + ;; read-event returns -1 if we are in a kbd macro and + ;; there are no more events in the macro. Attempt to + ;; get an event interactively. + (setq executing-kbd-macro nil)) + ((not inhibit-keyboard-quit) + (cond + ((and (null esc-flag) (eq char ?\e)) + (setq esc-flag t)) + ((memq char '(?\C-g ?\e)) + (keyboard-quit)))))))) + ;; Display the question with the answer. But without cursor-in-echo-area. + (message "%s%s" prompt (char-to-string char)) + char))) + +;; End of compatibility functions + +(provide 'notmuch-compat) diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 1f0d1678..5dc67970 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -27,6 +27,7 @@ (require 'mm-view) (require 'mm-decode) (require 'cl) +(require 'notmuch-compat) (unless (require 'notmuch-version nil t) (defconst notmuch-emacs-version "unknown" diff --git a/emacs/notmuch-maildir-fcc.el b/emacs/notmuch-maildir-fcc.el index ea75bb9e..a754b60c 100644 --- a/emacs/notmuch-maildir-fcc.el +++ b/emacs/notmuch-maildir-fcc.el @@ -249,7 +249,7 @@ If CREATE is non-nil then create the folder if necessary." ;; typo, or just the user want a new folder, let the user decide ;; how to deal with it. (error - (let ((response (read-char-choice + (let ((response (notmuch-read-char-choice "Insert failed: (r)etry, (c)reate folder, (i)gnore, or (e)dit the header? " '(?r ?c ?i ?e)))) (case response @@ -335,7 +335,7 @@ if needed." ;; fix it in some way. (let* ((prompt (format "Fcc %s is not a maildir: (r)etry, (c)reate folder, (i)gnore, or (e)dit the header? " fcc-header)) - (response (read-char-choice prompt '(?r ?c ?i ?e)))) + (response (notmuch-read-char-choice prompt '(?r ?c ?i ?e)))) (case response (?r (notmuch-maildir-fcc-file-fcc fcc-header)) (?c (if (file-writable-p fcc-header) diff --git a/emacs/notmuch-pkg.el.tmpl b/emacs/notmuch-pkg.el.tmpl new file mode 100644 index 00000000..de97baac --- /dev/null +++ b/emacs/notmuch-pkg.el.tmpl @@ -0,0 +1,6 @@ +;; %AG% +(define-package + "notmuch" + %VERSION% + "Emacs based front-end (MUA) for notmuch" + nil) diff --git a/version b/version index 610e2872..fda96dcf 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.23.1 +0.23.2