RELEASE_DIR=/srv/notmuchmail.org/www/releases
RELEASE_URL=http://notmuchmail.org/releases
TAR_FILE=$(PACKAGE)-$(VERSION).tar.gz
+DEB_TAR_FILE=$(PACKAGE)_$(VERSION).orig.tar.gz
SHA1_FILE=$(TAR_FILE).sha1
GPG_FILE=$(SHA1_FILE).asc
endif
$(TAR_FILE):
- git archive --format=tar --prefix=$(PACKAGE)-$(VERSION)/ HEAD > $(TAR_FILE).tmp
+ if git tag -v $(VERSION) >/dev/null 2>&1; then \
+ ref=$(VERSION); \
+ else \
+ ref="HEAD" ; \
+ echo "Warning: No signed tag for $(VERSION)"; \
+ fi ; \
+ git archive --format=tar --prefix=$(PACKAGE)-$(VERSION)/ $$ref > $(TAR_FILE).tmp
echo $(VERSION) > version.tmp
tar --append -f $(TAR_FILE).tmp --transform s_^_$(PACKAGE)-$(VERSION)/_ --transform 's_.tmp$$__' version.tmp
rm version.tmp
.PHONY: release
release: verify-source-tree-and-version
$(MAKE) VERSION=$(VERSION) verify-newer
+ $(MAKE) VERSION=$(VERSION) clean
$(MAKE) VERSION=$(VERSION) test
- rm -rf ./debian-build
- git-buildpackage
- cp debian-build/notmuch_$(VERSION).tar.gz notmuch-$(VERSION).tar.gz
+ git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION)
$(MAKE) VERSION=$(VERSION) $(GPG_FILE)
- scp $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) $(RELEASE_HOST):$(RELEASE_DIR)
- ssh $(RELEASE_HOST) "rm -f $(RELEASE_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(TAR_FILE) $(RELEASE_DIR)/LATEST-$(PACKAGE)-$(VERSION)"
+ ln -sf $(TAR_FILE) $(DEB_TAR_FILE)
+ pristine-tar commit $(DEB_TAR_FILE) $(VERSION)
+ git tag -s -m "$(PACKAGE) Debian $(VERSION)-1 upload (same as $(VERSION))" debian/$(VERSION)-1
mkdir -p releases
mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases
- (cd debian-build; dput *.changes)
- mv debian-build/* releases
- rmdir debian-build
- git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION)
- git push origin $(VERSION)
$(MAKE) VERSION=$(VERSION) release-message > $(PACKAGE)-$(VERSION).announce
+ifeq ($(REALLY_UPLOAD),yes)
+ git push origin $(VERSION)
+ cd releases && scp $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) $(RELEASE_HOST):$(RELEASE_DIR)
+ ssh $(RELEASE_HOST) "rm -f $(RELEASE_DIR)/LATEST-$(PACKAGE)-[0-9]* ; ln -s $(TAR_FILE) $(RELEASE_DIR)/LATEST-$(PACKAGE)-$(VERSION)"
+endif
@echo "Please send a release announcement using $(PACKAGE)-$(VERSION).announce as a template."
.PHONY: release-message
.PHONY: verify-version-debian
verify-version-debian: verify-version-components
- @echo -n "Checking that Debian package version is $(VERSION)..."
- @if [ "$(VERSION)" != $$(dpkg-parsechangelog | grep ^Version | awk '{print $$2}') ] ; then \
+ @echo -n "Checking that Debian package version is $(VERSION)-1..."
+ @if [ "$(VERSION)-1" != $$(dpkg-parsechangelog | grep ^Version | awk '{print $$2}') ] ; then \
(echo "No." && \
echo "Please edit version and debian/changelog to have consistent versions." && false) \
fi
.PHONY: verify-newer
verify-newer:
@echo -n "Checking that no $(VERSION) release already exists..."
- @ssh $(RELEASE_HOST) test ! -e $(RELEASE_DIR)/$(TAR_FILE) \
- || (echo "Ouch." && echo "Found: $(RELEASE_HOST):$(RELEASE_DIR)/$(TAR_FILE)" \
- && echo "Refusing to replace an existing release." \
- && echo "Don't forget to update \"version\" as described in RELEASING before release." && false)
- @echo "Good."
+ @wget -q -O /dev/null $(RELEASE_URL)/$(TAR_FILE) ; \
+ case $$? in \
+ 8) echo "Good." ;; \
+ 0) echo "Ouch."; \
+ echo "Found: $(RELEASE_URL)/$(TAR_FILE)"; \
+ echo "Refusing to replace an existing release."; \
+ echo "Don't forget to update \"version\" as described in RELEASING before release." ; \
+ false ;; \
+ *) echo "An unexpected error occured"; \
+ false;; esac
# The user has not set any verbosity, default to quiet mode and inform the
# user how to enable verbose compiles.
+Notmuch 0.6.1 (2011-07-17)
+==========================
+
+Bug-fix release.
+----------------
+
+Re-export Xapian exception typeinfo symbols.
+
+ It turned out our aggressive symbol hiding caused problems for
+ people running gcc 4.4.5.
+
Notmuch 0.6 (2011-07-01)
=======================
New, general features
+++ /dev/null
-
-* This package currently works only with emacs 23. Users of
- pre-release snapshots of emacs 24 can expect problems.
-
-* For help in getting started with notmuch and the emacs interface,
- see /usr/share/doc/notmuch/README.
-
- -- David Bremner <bremner@debian.org>, Fri, 1 Jul 2011 11:41:26 -0300
+++ /dev/null
-notmuch for Debian
-==================
-
-To use the vim plugin, please install it using vim-addons(1)
-
-See also /usr/share/doc/notmuch/README.
-
- -- David Bremner <bremner@debian.org>, Fri, 1 Jul 2011 11:34:39 -0300
+notmuch (0.6.1-1) unstable; urgency=low
+
+ * Properly install README.Debian in notmuch-vim (Closes: #632992).
+ Thanks to Jason Woofenden for the report.
+ * Force notmuch to depend on the same version of libnotmuch. Thanks to
+ Uwe Kleine-König for the patch.
+ * Export typeinfo for Xapian exceptions from libnotmuch. This fixes
+ certain mysterious uncaught exception problems.
+
+ -- David Bremner <bremner@debian.org> Sun, 17 Jul 2011 10:20:42 -0300
+
notmuch (0.6) unstable; urgency=low
* New upstream release; see /usr/share/doc/notmuch/NEWS for
Package: notmuch
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: libnotmuch1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Recommends: notmuch-emacs | notmuch-vim
Description: thread-based email index, search and tagging
Notmuch is a system for indexing, searching, reading, and tagging
notmuch_threads_get@Base 0.3
notmuch_threads_move_to_next@Base 0.3
notmuch_threads_valid@Base 0.3
+ (c++)"typeinfo for Xapian::LogicError@Base" 0.6.1
+ (c++)"typeinfo for Xapian::RuntimeError@Base" 0.6.1
+ (c++)"typeinfo for Xapian::DocNotFoundError@Base" 0.6.1
+ (c++)"typeinfo for Xapian::InvalidArgumentError@Base" 0.6.1
+ (c++)"typeinfo for Xapian::Error@Base" 0.6.1
+ (c++)"typeinfo name for Xapian::LogicError@Base" 0.6.1
+ (c++)"typeinfo name for Xapian::RuntimeError@Base" 0.6.1
+ (c++)"typeinfo name for Xapian::DocNotFoundError@Base" 0.6.1
+ (c++)"typeinfo name for Xapian::InvalidArgumentError@Base" 0.6.1
+ (c++)"typeinfo name for Xapian::Error@Base" 0.6.1
--- /dev/null
+
+* This package currently works only with emacs 23. Users of
+ pre-release snapshots of emacs 24 can expect problems.
+
+* For help in getting started with notmuch and the emacs interface,
+ see /usr/share/doc/notmuch/README.
+
+ -- David Bremner <bremner@debian.org>, Fri, 1 Jul 2011 11:41:26 -0300
--- /dev/null
+notmuch for Debian
+==================
+
+To use the vim plugin, please install it using vim-addons(1)
+
+See also /usr/share/doc/notmuch/README.
+
+ -- David Bremner <bremner@debian.org>, Fri, 1 Jul 2011 11:34:39 -0300
-3.0 (native)
+3.0 (quilt)
$(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@
notmuch.sym: lib/notmuch.h
- printf "{\nglobal:\n" > notmuch.sym
- sed -n 's/^[[:space:]]*\(notmuch_[a-z_]*\)[[:space:]]*(.*/'"`printf "\t"`"'\1;/p' $< >> notmuch.sym
- printf "local: *;\n};\n" >> notmuch.sym
+ sh lib/gen-version-script.sh $< $(libnotmuch_modules) > $@
$(dir)/$(SONAME): $(dir)/$(LIBNAME)
ln -sf $(LIBNAME) $@
--- /dev/null
+
+# we go through a bit of work to get the unmangled names of the
+# typeinfo symbols because of
+# http://sourceware.org/bugzilla/show_bug.cgi?id=10326
+
+if [ $# -lt 2 ]; then
+ echo Usage: $0 header obj1 obj2 obj3
+ exit 1;
+fi
+
+HEADER=$1
+shift
+
+printf '{\nglobal:\n'
+nm --defined $* | awk '$3 ~ "Xapian.*Error" {print $3}' | sort | uniq | \
+while read sym; do
+ demangled=$(c++filt $sym)
+ case $demangled in
+ typeinfo*)
+ printf "\t$sym;\n"
+ ;;
+ *)
+ ;;
+ esac
+done
+sed -n 's/^\s*\(notmuch_[a-z_]*\)\s*(.*/\t\1;/p' $HEADER
+printf "local: *;\n};\n"