diff --git a/Makefile.local b/Makefile.local index 8a8832da..33fdcc93 100644 --- a/Makefile.local +++ b/Makefile.local @@ -25,6 +25,7 @@ RELEASE_HOST=notmuchmail.org 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 @@ -60,7 +61,13 @@ endif 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 @@ -87,21 +94,21 @@ dist: $(TAR_FILE) .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 @@ -161,8 +168,8 @@ endif .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 @@ -180,11 +187,16 @@ verify-version-components: .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. diff --git a/NEWS b/NEWS index f3fefad1..bb58d6b7 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +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 diff --git a/debian/changelog b/debian/changelog index 0fad868a..37a228c4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +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 Sun, 17 Jul 2011 10:20:42 -0300 + notmuch (0.6) unstable; urgency=low * New upstream release; see /usr/share/doc/notmuch/NEWS for diff --git a/debian/control b/debian/control index 78c9849b..03afdf44 100644 --- a/debian/control +++ b/debian/control @@ -15,7 +15,7 @@ Dm-Upload-Allowed: yes 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 diff --git a/debian/libnotmuch1.symbols b/debian/libnotmuch1.symbols index 8df6fec1..05d86e6d 100644 --- a/debian/libnotmuch1.symbols +++ b/debian/libnotmuch1.symbols @@ -70,3 +70,13 @@ libnotmuch.so.1 libnotmuch1 #MINVER# 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 diff --git a/debian/README.notmuch-emacs b/debian/notmuch-emacs.README.Debian similarity index 100% rename from debian/README.notmuch-emacs rename to debian/notmuch-emacs.README.Debian diff --git a/debian/README.notmuch-vim b/debian/notmuch-vim.README.Debian similarity index 100% rename from debian/README.notmuch-vim rename to debian/notmuch-vim.README.Debian diff --git a/debian/source/format b/debian/source/format index 89ae9db8..163aaf8d 100644 --- a/debian/source/format +++ b/debian/source/format @@ -1 +1 @@ -3.0 (native) +3.0 (quilt) diff --git a/lib/Makefile.local b/lib/Makefile.local index 88d8debc..9210f0e5 100644 --- a/lib/Makefile.local +++ b/lib/Makefile.local @@ -75,9 +75,7 @@ $(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym $(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) $@ diff --git a/lib/gen-version-script.sh b/lib/gen-version-script.sh new file mode 100644 index 00000000..e753eaf5 --- /dev/null +++ b/lib/gen-version-script.sh @@ -0,0 +1,27 @@ + +# 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" diff --git a/version b/version index 5a2a5806..ee6cdce3 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.6 +0.6.1