[PATCH] debian: package ruby bindings
On Tue, Apr 23, 2013 at 6:35 PM, David Bremner wrote: > Felipe Contreras writes: > >> On Mon, Apr 15, 2013 at 5:34 AM, David Bremner wrote: >>> >>> OK, but that doesn't really help us deal with support requests e.g. on IRC. >>> Some "feature requests" for the bindings: >> >> Can you point to some of these requests, or are they hypothetical? > > I don't know how many support requests we've got, but yes, I remember at > least one. That's not a huge motivation. >> Moreover, wouldn't making sure that the bindings are package mostly >> solve this issue? > > Well, people wouldn't have to build and install the bindings, _if_ they > happened to be using an OS with packages available. But not everyone > uses binary packages. I guess for me it's just a software quality issue > to have some minimal level of documentation. If somebody needs that information it's very easy find, just googling 'notmuch ruby bindings', or looking at the way packages do it, which this patch actually helps to solve. -- Felipe Contreras
remove unused tags from the database / emacs ui?
Hi all, I have recently started using notmuch, and may stick with it ;-) There's one thing, though. I have some tags which were created by afew tests, or just misspelling tags. These tags are now unused, but seem to still be in the database, or cached in the emacs ui, because I get these tags as possibilities in "add tags" list. I tried to compress the database, and this didn't change anything in this regard. Any ideas on how I can get rid of them? (notmuch 0.15.2 / emacs ui) Kind regards, Ingo Hohmann -- View this message in context: http://notmuch.198994.n3.nabble.com/remove-unused-tags-from-the-database-emacs-ui-tp4027748.html Sent from the notmuch mailing list archive at Nabble.com.
remove unused tags from the database / emacs ui?
On Wed, 24 Apr 2013, ingo wrote: > I have some tags which were created by afew tests, or just misspelling tags. > These tags are now unused, but seem to still be in the database, or cached > in the emacs ui, because I get these tags as possibilities in "add tags" > list. Apparently you still have some messages tagged with these tags. You can get a list of all the tags in all the messages in the database using: $ notmuch search --output=tags '*' Or view the "All tags" section in notmuch-hello in Emacs. There you can also query which messages have these "undesirable" tags. > Any ideas on how I can get rid of them? On the command line, if you wanted, for example, "foo" and "bar" tags removed from all the messages: $ notmuch tag -foo -bar -- '*' Alternatively, do a search for all messages in emacs, and hit '*' in the search view to tag all messages matching the query. List the ones you want removed. HTH, Jani.
remove unused tags from the database / emacs ui?
Hi Jani, thank you for your help, you helped in the right direction. All mails tagged with some of those unwanted tags was also tagged spam. And spam is configured to not show up in normal searches, that's why I was unable to find them. Now all those tags have been removed, and it even seems to speed up searches, great. Kind regards, Ingo -- View this message in context: http://notmuch.198994.n3.nabble.com/remove-unused-tags-from-the-database-emacs-ui-tp4027748p4027750.html Sent from the notmuch mailing list archive at Nabble.com.
[PATCH] go: use a different goconfig package
On Wed, Apr 24 2013, David Bremner wrote: > Justus Winter <4winter at informatik.uni-hamburg.de> writes: > >> The notmuch-addrlookup utility uses a third party library to read the >> notmuch configuration file. The previously used implementation at >> "github.com/kless/goconfig" vanished, so this patch switches to the >> implementation at "github.com/msbranco/goconfig". As the >> implementations differ at the API level, the code is updated >> accordingly. > > It's great that you fixed this, but the whole idea of something failing > to build depending on the status of a website makes me pretty > uncomfortable. Me too, but this is the status quo (atm(*)). The patch looks good and state of things tolerable to me. (*) and probably things won't change in (near) future ;/ > d Tomi
[PATCH] go: use a different goconfig package
Quoting David Bremner (2013-04-24 00:51:11) > Justus Winter <4winter at informatik.uni-hamburg.de> writes: > > > The notmuch-addrlookup utility uses a third party library to read the > > notmuch configuration file. The previously used implementation at > > "github.com/kless/goconfig" vanished, so this patch switches to the > > implementation at "github.com/msbranco/goconfig". As the > > implementations differ at the API level, the code is updated > > accordingly. > > It's great that you fixed this, but the whole idea of something failing > to build depending on the status of a website makes me pretty > uncomfortable. > > d Ah, I pondered whether I should write more about the lib change. Maybe I should have. So there are two libs, kless and msbranco for short. kless is a fork of msbranco, and it seems like the author abandoned his fork. So we are now using the original lib, msbranco. msbranco seems to be in "maintenance" mode, but has recently received updates to fix some minor issues wrt. go 1.1. There are a lot of forks of msbranco on github, so even if msbranco vanishes as well, we can pick the next most promising fork. So yeah, I feel the same way, it's unfortunately that I had to patch this, but we're better of now (it builds again and we moved to a more "vanilla" goconfig API (assuming the other forks do not change the api as much as kless did)). And I think you are being a bit harsh with the "status of the website" comment. In case you are not familiar with go, "github.com/kless/goconfig" is a package path, not a website. It just happens to also be the host+resource part of a URL that points to the github project page. So what happened here is that the VCS repository specified by the package path vanished, not some web site (well, that vanished too, but that didn't cause the build failure). If you happen to have golang installed, type "go help remote" for more information. Cheers, Justus
forwarding multiple messages from notmuch emacs
Adam On Tue, Apr 23, 2013 at 10:33 AM, Daniel Kahn Gillmor wrote: > hi notmuch folks-- > > i'd like to be able to forward several messages from a given thread (up > to and including the whole thread) to someone else. I use > notmuch-emacs. > > I don't think it's possible to do this at the moment; > notmuch-show-forward-message just forwards the message where the point > is located, even if the current region covers more than one message. > > I'd be happy to have a notmuch-show-forward-thread or > notmuch-show-forward-all-expanded-messages or > notmuch-show-forward-messages-from-region capability, but my elisp-fu is > weak. I'd be happy to test if someone wanted to send me a patch though > :) > > Background: one of the reasons that people often give for the terrible > e-mail practice of top-posting-with-all-previous-messages-trailing is > that they want to be able to send a message to someone else and have > them be able to see the whole thread (never mind that these kind of > reverse-chronological forwarded messages are difficult to read). I'd > like to be able to respond to those claims with something like > "reasonable MUAs should let you easily forward all messages in a thread > if you want to catch someone up." > > I consider notmuch-emacs a reasonable MUA :) > > thanks everyone for notmuch, > > --dkg > > ___ > notmuch mailing list > notmuch at notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch > > -- next part -- An HTML attachment was scrubbed... URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20130424/e6285eb3/attachment.html>
forwarding multiple messages from notmuch emacs
Sigh. Premature posting... Adam Wolfe Gordon on here gave me a tip for this. It's not perfect, but it works: Start forwarding each of the emails, and just cut-and-paste the <#mml>.. sections out of the buffers into a new email. That'll have the effect of forwarding all the emails. On Wed, Apr 24, 2013 at 12:09 PM, Jeremy Nickurak wrote: > Adam > > > On Tue, Apr 23, 2013 at 10:33 AM, Daniel Kahn Gillmor < > dkg at fifthhorseman.net> wrote: > >> hi notmuch folks-- >> >> i'd like to be able to forward several messages from a given thread (up >> to and including the whole thread) to someone else. I use >> notmuch-emacs. >> >> I don't think it's possible to do this at the moment; >> notmuch-show-forward-message just forwards the message where the point >> is located, even if the current region covers more than one message. >> >> I'd be happy to have a notmuch-show-forward-thread or >> notmuch-show-forward-all-expanded-messages or >> notmuch-show-forward-messages-from-region capability, but my elisp-fu is >> weak. I'd be happy to test if someone wanted to send me a patch though >> :) >> >> Background: one of the reasons that people often give for the terrible >> e-mail practice of top-posting-with-all-previous-messages-trailing is >> that they want to be able to send a message to someone else and have >> them be able to see the whole thread (never mind that these kind of >> reverse-chronological forwarded messages are difficult to read). I'd >> like to be able to respond to those claims with something like >> "reasonable MUAs should let you easily forward all messages in a thread >> if you want to catch someone up." >> >> I consider notmuch-emacs a reasonable MUA :) >> >> thanks everyone for notmuch, >> >> --dkg >> >> ___ >> notmuch mailing list >> notmuch at notmuchmail.org >> http://notmuchmail.org/mailman/listinfo/notmuch >> >> > -- next part -- An HTML attachment was scrubbed... URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20130424/80e94de3/attachment.html>
Second draft of info manual
In order to get docs both as man pages and as info docs for reading in emacs, I decided to try converting a couple man pages to pod. There turned out to a painful amount of infrastructure needed to get this working, so I didn't get much done on the notmuch-emacs docs. I think all the infrastructure is in place at this point. I'm probably not going to do much more work into the actual docs until I get some feedback on the basic approach; it's clear that the autoconverted pod files need a bit of tidying. As far as build depends, this needs only perl for the basic docs (pod2man is part of perl since a while). To build the info docs needs pod2texi and makinfo, which are part of recent texinfo releases.
[RFC Patch v2 1/3] info: start info documentation.
From: David Bremner Initially, just a skeleton of documentation for the emacs interface. There are a few dangling references to other info pages; these are to be generated from the man pages in a following commit. As far as actual documentation, so far this contains only a brief intro to notmuch-hello. --- INSTALL | 12 ++- Makefile| 5 +- configure | 32 ++ info/Makefile | 7 ++ info/Makefile.local | 33 ++ info/notmuch-emacs.texi | 270 6 files changed, 356 insertions(+), 3 deletions(-) create mode 100644 info/Makefile create mode 100644 info/Makefile.local create mode 100644 info/notmuch-emacs.texi diff --git a/INSTALL b/INSTALL index fce9352..451bf05 100644 --- a/INSTALL +++ b/INSTALL @@ -60,16 +60,24 @@ Talloc which are each described below: Talloc is available from http://talloc.samba.org/ + texinfo + --- + + To build the info documentation, you need makeinfo and + pod2texi. To install the info documentation, you need + install-info; these are all part of the texinfo distribution + as of version 5.0. + On a modern, package-based operating system you can install all of the dependencies with a simple simple command line. For example: For Debian and similar: -sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev +sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev makeinfo texinfo For Fedora and similar: - sudo yum install xapian-core-devel gmime-devel libtalloc-devel + sudo yum install xapian-core-devel gmime-devel libtalloc-devel texinfo On other systems, a similar command can be used, but the details of the package names may be different. diff --git a/Makefile b/Makefile index 73a8554..250fbaa 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,10 @@ all: # List all subdirectories here. Each contains its own Makefile.local subdirs := compat completion emacs lib man parse-time-string -subdirs += performance-test util test +subdirs += performance-test util info +# it seems to be important to keep test last. +subdirs += test + # We make all targets depend on the Makefiles themselves. global_deps = Makefile Makefile.config Makefile.local \ diff --git a/configure b/configure index 460fcfc..5243f6a 100755 --- a/configure +++ b/configure @@ -358,6 +358,10 @@ if [ -z "${EMACSETCDIR}" ]; then fi fi +if [ -z "${INFODIR}" ]; then +INFODIR='$(prefix)/share/info' +fi + printf "Checking if emacs is available... " if emacs --quick --batch > /dev/null 2>&1; then printf "Yes.\n" @@ -367,6 +371,24 @@ else have_emacs=0 fi +printf "Checking for makeinfo... " +if makeinfo --version > /dev/null 2>&1; then +printf "Yes.\n" +have_makeinfo=1 +else +printf "No (so will not info docs)\n" +have_makeinfo=0 +fi + +printf "Checking for install-info... " +if install-info --version > /dev/null 2>&1; then +printf "Yes.\n" +have_installinfo=1 +else +printf "No (so will not install info docs)\n" +have_installinfo=0 +fi + libdir_in_ldconfig=0 printf "Checking which platform we are on... " @@ -659,6 +681,16 @@ emacsetcdir=${EMACSETCDIR} # Whether there's an emacs binary available for byte-compiling HAVE_EMACS = ${have_emacs} +# Whether there's a makeinfo binary available to build info docs +HAVE_MAKEINFO = ${have_makeinfo} + +# Whether there's an install-info binary available +HAVE_INSTALLINFO = ${have_installinfo} + +# where to install info files + +INFODIR = ${INFODIR} + # The directory to which desktop files should be installed desktop_dir = \$(prefix)/share/applications diff --git a/info/Makefile b/info/Makefile new file mode 100644 index 000..de492a7 --- /dev/null +++ b/info/Makefile @@ -0,0 +1,7 @@ +# See Makefile.local for the list of files to be compiled in this +# directory. +all: + $(MAKE) -C .. all + +.DEFAULT: + $(MAKE) -C .. $@ diff --git a/info/Makefile.local b/info/Makefile.local new file mode 100644 index 000..55e9740 --- /dev/null +++ b/info/Makefile.local @@ -0,0 +1,33 @@ +# -*- makefile -*- + +dir := info + +texi_sources := $(dir)/notmuch-emacs.texi +emacs_info := $(texi_sources:.texi=.info) + +info := $(emacs_info) + +ifeq ($(HAVE_MAKEINFO),1) +all: $(info) +endif + +ifeq ($(HAVE_INSTALLINFO),1) +install: install-info +endif + +%.info: %.texi + makeinfo --no-split -o $@ $< + +$(dir)/notmuch-emacs.info: $(dir)/notmuch-emacs.texi $(dir)/version.texi + +.PHONY: $(dir)/version.texi +$(dir)/version.texi: version + printf "@set VERSION ${VERSION}\n" > $@ + +.PHONY: install-info +install-info: ${info} + mkdir -p "$(DESTDIR)$(INFODIR)" + install -m0644 $(info) "$(DESTDIR)$(INFODIR)" + install-info --section=Notmuch --info-dir=${DESTDIR}${INFODIR} $(emacs_info) + +CLEAN := $(CLEAN) $(info) diff --git a/info/notmuch-emacs.texi b/info/notmuch-emacs.texi new file m
[RFC Patch v2 3/3] debian: install info files
From: David Bremner It seems dh_installinfo doesn't understand wildcards or look in debian/tmp --- debian/notmuch-emacs.info | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 debian/notmuch-emacs.info diff --git a/debian/notmuch-emacs.info b/debian/notmuch-emacs.info new file mode 100644 index 000..2de46d3 --- /dev/null +++ b/debian/notmuch-emacs.info @@ -0,0 +1,3 @@ +info/notmuch.info +info/notmuch-emacs.info +info/notmuch-search-terms.info -- 1.8.2.rc2
[RFC Patch v2 2/3] man: partial conversion to pod.
From: David Bremner This allows generation of man page and info document from the same source. It is also a bit more friendly to edit for most people. The conversion was done as follows: % groff -e -mandoc -Tascii -rHY=0 $* | rman -f POD | sed -e '/./,/^$/!d' -e 's/ Some small hand-editing of the .pod may be needed afterwards. --- INSTALL | 6 + configure | 12 ++ info/Makefile.local | 25 +++- man/Makefile.local | 19 ++- man/man1/notmuch.1 | 184 --- man/man7/notmuch-search-terms.7 | 266 pod/notmuch-search-terms.pod| 233 +++ pod/notmuch.pod | 149 ++ 8 files changed, 440 insertions(+), 454 deletions(-) delete mode 100644 man/man1/notmuch.1 delete mode 100644 man/man7/notmuch-search-terms.7 create mode 100644 pod/notmuch-search-terms.pod create mode 100644 pod/notmuch.pod diff --git a/INSTALL b/INSTALL index 451bf05..697b7b2 100644 --- a/INSTALL +++ b/INSTALL @@ -60,6 +60,12 @@ Talloc which are each described below: Talloc is available from http://talloc.samba.org/ + pod2man + --- + + Some of the documentation is built with pod2man. This is part + of the standard Perl distribution since Perl 5.6.0 + texinfo --- diff --git a/configure b/configure index 5243f6a..a0c53e2 100755 --- a/configure +++ b/configure @@ -371,6 +371,15 @@ else have_emacs=0 fi +printf "Checking for pod2man... " +if pod2man --help > /dev/null 2>&1; then +printf "Yes.\n" +have_pod2man=1 +else +printf "No (man page install may fail)\n" +have_pod2man=0 +fi + printf "Checking for makeinfo... " if makeinfo --version > /dev/null 2>&1; then printf "Yes.\n" @@ -687,6 +696,9 @@ HAVE_MAKEINFO = ${have_makeinfo} # Whether there's an install-info binary available HAVE_INSTALLINFO = ${have_installinfo} +# Is pod2man in the path? +HAVE_POD2MAN = ${have_pod2man} + # where to install info files INFODIR = ${INFODIR} diff --git a/info/Makefile.local b/info/Makefile.local index 55e9740..cca891a 100644 --- a/info/Makefile.local +++ b/info/Makefile.local @@ -2,10 +2,14 @@ dir := info +man_texi := $(dir)/notmuch.texi $(dir)/notmuch-search-terms.texi +man_info := $(man_texi:.texi=.info) +man_entry := $(man_texi:.texi=.entry) + texi_sources := $(dir)/notmuch-emacs.texi emacs_info := $(texi_sources:.texi=.info) -info := $(emacs_info) +info := $(emacs_info) $(man_info) ifeq ($(HAVE_MAKEINFO),1) all: $(info) @@ -15,11 +19,23 @@ ifeq ($(HAVE_INSTALLINFO),1) install: install-info endif -%.info: %.texi +%.entry: ../pod/%.pod + printf "@dircategory Notmuch\n at direntry\n" > $@ + printf "* %s: (%s). " $(*F) $(*F) >> $@ + podselect -section Name $< | \ + perl -n -e 's/notmuch.* - (.*)/\u\L$$1/ && print' >> $@ + printf "@end direntry\n" >> $@ + +%.info: %.texi %.entry makeinfo --no-split -o $@ $< $(dir)/notmuch-emacs.info: $(dir)/notmuch-emacs.texi $(dir)/version.texi +%.texi: ../pod/%.pod + # a nasty hack, but the nicer ways seem to have bugs. + pod2texi $< | \ + sed 's/@node Top/@include $(*F).entry\n at node Top/' > $@ + .PHONY: $(dir)/version.texi $(dir)/version.texi: version printf "@set VERSION ${VERSION}\n" > $@ @@ -29,5 +45,8 @@ install-info: ${info} mkdir -p "$(DESTDIR)$(INFODIR)" install -m0644 $(info) "$(DESTDIR)$(INFODIR)" install-info --section=Notmuch --info-dir=${DESTDIR}${INFODIR} $(emacs_info) + for ifile in $(man_info); do \ + install-info --info-dir=${DESTDIR}${INFODIR} $${ifile}; \ + done -CLEAN := $(CLEAN) $(info) +CLEAN := $(CLEAN) $(info) $(man_entry) $(dir)/version.texi diff --git a/man/Makefile.local b/man/Makefile.local index 72e2a18..ceb5063 100644 --- a/man/Makefile.local +++ b/man/Makefile.local @@ -21,6 +21,8 @@ MAN1 := \ MAN5 := $(dir)/man5/notmuch-hooks.5 MAN7 := $(dir)/man7/notmuch-search-terms.7 +GENERATED_MAN := $(MAIN_PAGE) $(MAN7) + MAN1_GZ := $(addsuffix .gz,$(MAN1)) MAN5_GZ := $(addsuffix .gz,$(MAN5)) MAN7_GZ := $(addsuffix .gz,$(MAN7)) @@ -32,6 +34,21 @@ COMPRESSED_MAN := $(MAN1_GZ) $(MAN5_GZ) $(MAN7_GZ) %.gz: % gzip --stdout $^ > $@ +POD2MAN_RECIPE = mkdir -p $(@D) && \ +pod2man --section=$(subst .,,$(suffix $@)) \ +--center="Notmuch Documentation" --release=${VERSION} $< > $@ + +$(dir)/man1/%.1: $(dir)/../pod/%.pod + $(POD2MAN_RECIPE) + +$(dir)/man5/%.5: $(dir)/../pod/%.pod + $(POD2MAN_RECIPE) + +$(dir)/man7/%.7: $(dir)/../pod/%.pod + $(POD2MAN_RECIPE) + +CLEAN := $(CLEAN) $(NROFF7) + .PHONY: install-man update-man-versions install-man: $(COMPRESSED_MAN) @@ -50,4 +67,4 @@ update-man-versions: $(MAN_SOURCE) < $$file.bak > $$file; \ done -CLEAN := $(CLEAN) $(COM
Re: [PATCH] debian: package ruby bindings
On Tue, Apr 23, 2013 at 6:35 PM, David Bremner wrote: > Felipe Contreras writes: > >> On Mon, Apr 15, 2013 at 5:34 AM, David Bremner wrote: >>> >>> OK, but that doesn't really help us deal with support requests e.g. on IRC. >>> Some "feature requests" for the bindings: >> >> Can you point to some of these requests, or are they hypothetical? > > I don't know how many support requests we've got, but yes, I remember at > least one. That's not a huge motivation. >> Moreover, wouldn't making sure that the bindings are package mostly >> solve this issue? > > Well, people wouldn't have to build and install the bindings, _if_ they > happened to be using an OS with packages available. But not everyone > uses binary packages. I guess for me it's just a software quality issue > to have some minimal level of documentation. If somebody needs that information it's very easy find, just googling 'notmuch ruby bindings', or looking at the way packages do it, which this patch actually helps to solve. -- Felipe Contreras ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
remove unused tags from the database / emacs ui?
Hi all, I have recently started using notmuch, and may stick with it ;-) There's one thing, though. I have some tags which were created by afew tests, or just misspelling tags. These tags are now unused, but seem to still be in the database, or cached in the emacs ui, because I get these tags as possibilities in "add tags" list. I tried to compress the database, and this didn't change anything in this regard. Any ideas on how I can get rid of them? (notmuch 0.15.2 / emacs ui) Kind regards, Ingo Hohmann -- View this message in context: http://notmuch.198994.n3.nabble.com/remove-unused-tags-from-the-database-emacs-ui-tp4027748.html Sent from the notmuch mailing list archive at Nabble.com. ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: remove unused tags from the database / emacs ui?
On Wed, 24 Apr 2013, ingo wrote: > I have some tags which were created by afew tests, or just misspelling tags. > These tags are now unused, but seem to still be in the database, or cached > in the emacs ui, because I get these tags as possibilities in "add tags" > list. Apparently you still have some messages tagged with these tags. You can get a list of all the tags in all the messages in the database using: $ notmuch search --output=tags '*' Or view the "All tags" section in notmuch-hello in Emacs. There you can also query which messages have these "undesirable" tags. > Any ideas on how I can get rid of them? On the command line, if you wanted, for example, "foo" and "bar" tags removed from all the messages: $ notmuch tag -foo -bar -- '*' Alternatively, do a search for all messages in emacs, and hit '*' in the search view to tag all messages matching the query. List the ones you want removed. HTH, Jani. ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: remove unused tags from the database / emacs ui?
Hi Jani, thank you for your help, you helped in the right direction. All mails tagged with some of those unwanted tags was also tagged spam. And spam is configured to not show up in normal searches, that's why I was unable to find them. Now all those tags have been removed, and it even seems to speed up searches, great. Kind regards, Ingo -- View this message in context: http://notmuch.198994.n3.nabble.com/remove-unused-tags-from-the-database-emacs-ui-tp4027748p4027750.html Sent from the notmuch mailing list archive at Nabble.com. ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: [PATCH] go: use a different goconfig package
On Wed, Apr 24 2013, David Bremner wrote: > Justus Winter <4win...@informatik.uni-hamburg.de> writes: > >> The notmuch-addrlookup utility uses a third party library to read the >> notmuch configuration file. The previously used implementation at >> "github.com/kless/goconfig" vanished, so this patch switches to the >> implementation at "github.com/msbranco/goconfig". As the >> implementations differ at the API level, the code is updated >> accordingly. > > It's great that you fixed this, but the whole idea of something failing > to build depending on the status of a website makes me pretty > uncomfortable. Me too, but this is the status quo (atm(*)). The patch looks good and state of things tolerable to me. (*) and probably things won't change in (near) future ;/ > d Tomi ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: [PATCH] go: use a different goconfig package
Quoting David Bremner (2013-04-24 00:51:11) > Justus Winter <4win...@informatik.uni-hamburg.de> writes: > > > The notmuch-addrlookup utility uses a third party library to read the > > notmuch configuration file. The previously used implementation at > > "github.com/kless/goconfig" vanished, so this patch switches to the > > implementation at "github.com/msbranco/goconfig". As the > > implementations differ at the API level, the code is updated > > accordingly. > > It's great that you fixed this, but the whole idea of something failing > to build depending on the status of a website makes me pretty > uncomfortable. > > d Ah, I pondered whether I should write more about the lib change. Maybe I should have. So there are two libs, kless and msbranco for short. kless is a fork of msbranco, and it seems like the author abandoned his fork. So we are now using the original lib, msbranco. msbranco seems to be in "maintenance" mode, but has recently received updates to fix some minor issues wrt. go 1.1. There are a lot of forks of msbranco on github, so even if msbranco vanishes as well, we can pick the next most promising fork. So yeah, I feel the same way, it's unfortunately that I had to patch this, but we're better of now (it builds again and we moved to a more "vanilla" goconfig API (assuming the other forks do not change the api as much as kless did)). And I think you are being a bit harsh with the "status of the website" comment. In case you are not familiar with go, "github.com/kless/goconfig" is a package path, not a website. It just happens to also be the host+resource part of a URL that points to the github project page. So what happened here is that the VCS repository specified by the package path vanished, not some web site (well, that vanished too, but that didn't cause the build failure). If you happen to have golang installed, type "go help remote" for more information. Cheers, Justus ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: forwarding multiple messages from notmuch emacs
Adam On Tue, Apr 23, 2013 at 10:33 AM, Daniel Kahn Gillmor wrote: > hi notmuch folks-- > > i'd like to be able to forward several messages from a given thread (up > to and including the whole thread) to someone else. I use > notmuch-emacs. > > I don't think it's possible to do this at the moment; > notmuch-show-forward-message just forwards the message where the point > is located, even if the current region covers more than one message. > > I'd be happy to have a notmuch-show-forward-thread or > notmuch-show-forward-all-expanded-messages or > notmuch-show-forward-messages-from-region capability, but my elisp-fu is > weak. I'd be happy to test if someone wanted to send me a patch though > :) > > Background: one of the reasons that people often give for the terrible > e-mail practice of top-posting-with-all-previous-messages-trailing is > that they want to be able to send a message to someone else and have > them be able to see the whole thread (never mind that these kind of > reverse-chronological forwarded messages are difficult to read). I'd > like to be able to respond to those claims with something like > "reasonable MUAs should let you easily forward all messages in a thread > if you want to catch someone up." > > I consider notmuch-emacs a reasonable MUA :) > > thanks everyone for notmuch, > > --dkg > > ___ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch > > ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Re: forwarding multiple messages from notmuch emacs
Sigh. Premature posting... Adam Wolfe Gordon on here gave me a tip for this. It's not perfect, but it works: Start forwarding each of the emails, and just cut-and-paste the <#mml>.. sections out of the buffers into a new email. That'll have the effect of forwarding all the emails. On Wed, Apr 24, 2013 at 12:09 PM, Jeremy Nickurak wrote: > Adam > > > On Tue, Apr 23, 2013 at 10:33 AM, Daniel Kahn Gillmor < > d...@fifthhorseman.net> wrote: > >> hi notmuch folks-- >> >> i'd like to be able to forward several messages from a given thread (up >> to and including the whole thread) to someone else. I use >> notmuch-emacs. >> >> I don't think it's possible to do this at the moment; >> notmuch-show-forward-message just forwards the message where the point >> is located, even if the current region covers more than one message. >> >> I'd be happy to have a notmuch-show-forward-thread or >> notmuch-show-forward-all-expanded-messages or >> notmuch-show-forward-messages-from-region capability, but my elisp-fu is >> weak. I'd be happy to test if someone wanted to send me a patch though >> :) >> >> Background: one of the reasons that people often give for the terrible >> e-mail practice of top-posting-with-all-previous-messages-trailing is >> that they want to be able to send a message to someone else and have >> them be able to see the whole thread (never mind that these kind of >> reverse-chronological forwarded messages are difficult to read). I'd >> like to be able to respond to those claims with something like >> "reasonable MUAs should let you easily forward all messages in a thread >> if you want to catch someone up." >> >> I consider notmuch-emacs a reasonable MUA :) >> >> thanks everyone for notmuch, >> >> --dkg >> >> ___ >> notmuch mailing list >> notmuch@notmuchmail.org >> http://notmuchmail.org/mailman/listinfo/notmuch >> >> > ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
Second draft of info manual
In order to get docs both as man pages and as info docs for reading in emacs, I decided to try converting a couple man pages to pod. There turned out to a painful amount of infrastructure needed to get this working, so I didn't get much done on the notmuch-emacs docs. I think all the infrastructure is in place at this point. I'm probably not going to do much more work into the actual docs until I get some feedback on the basic approach; it's clear that the autoconverted pod files need a bit of tidying. As far as build depends, this needs only perl for the basic docs (pod2man is part of perl since a while). To build the info docs needs pod2texi and makinfo, which are part of recent texinfo releases. ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
[RFC Patch v2 1/3] info: start info documentation.
From: David Bremner Initially, just a skeleton of documentation for the emacs interface. There are a few dangling references to other info pages; these are to be generated from the man pages in a following commit. As far as actual documentation, so far this contains only a brief intro to notmuch-hello. --- INSTALL | 12 ++- Makefile| 5 +- configure | 32 ++ info/Makefile | 7 ++ info/Makefile.local | 33 ++ info/notmuch-emacs.texi | 270 6 files changed, 356 insertions(+), 3 deletions(-) create mode 100644 info/Makefile create mode 100644 info/Makefile.local create mode 100644 info/notmuch-emacs.texi diff --git a/INSTALL b/INSTALL index fce9352..451bf05 100644 --- a/INSTALL +++ b/INSTALL @@ -60,16 +60,24 @@ Talloc which are each described below: Talloc is available from http://talloc.samba.org/ + texinfo + --- + + To build the info documentation, you need makeinfo and + pod2texi. To install the info documentation, you need + install-info; these are all part of the texinfo distribution + as of version 5.0. + On a modern, package-based operating system you can install all of the dependencies with a simple simple command line. For example: For Debian and similar: -sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev +sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev makeinfo texinfo For Fedora and similar: - sudo yum install xapian-core-devel gmime-devel libtalloc-devel + sudo yum install xapian-core-devel gmime-devel libtalloc-devel texinfo On other systems, a similar command can be used, but the details of the package names may be different. diff --git a/Makefile b/Makefile index 73a8554..250fbaa 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,10 @@ all: # List all subdirectories here. Each contains its own Makefile.local subdirs := compat completion emacs lib man parse-time-string -subdirs += performance-test util test +subdirs += performance-test util info +# it seems to be important to keep test last. +subdirs += test + # We make all targets depend on the Makefiles themselves. global_deps = Makefile Makefile.config Makefile.local \ diff --git a/configure b/configure index 460fcfc..5243f6a 100755 --- a/configure +++ b/configure @@ -358,6 +358,10 @@ if [ -z "${EMACSETCDIR}" ]; then fi fi +if [ -z "${INFODIR}" ]; then +INFODIR='$(prefix)/share/info' +fi + printf "Checking if emacs is available... " if emacs --quick --batch > /dev/null 2>&1; then printf "Yes.\n" @@ -367,6 +371,24 @@ else have_emacs=0 fi +printf "Checking for makeinfo... " +if makeinfo --version > /dev/null 2>&1; then +printf "Yes.\n" +have_makeinfo=1 +else +printf "No (so will not info docs)\n" +have_makeinfo=0 +fi + +printf "Checking for install-info... " +if install-info --version > /dev/null 2>&1; then +printf "Yes.\n" +have_installinfo=1 +else +printf "No (so will not install info docs)\n" +have_installinfo=0 +fi + libdir_in_ldconfig=0 printf "Checking which platform we are on... " @@ -659,6 +681,16 @@ emacsetcdir=${EMACSETCDIR} # Whether there's an emacs binary available for byte-compiling HAVE_EMACS = ${have_emacs} +# Whether there's a makeinfo binary available to build info docs +HAVE_MAKEINFO = ${have_makeinfo} + +# Whether there's an install-info binary available +HAVE_INSTALLINFO = ${have_installinfo} + +# where to install info files + +INFODIR = ${INFODIR} + # The directory to which desktop files should be installed desktop_dir = \$(prefix)/share/applications diff --git a/info/Makefile b/info/Makefile new file mode 100644 index 000..de492a7 --- /dev/null +++ b/info/Makefile @@ -0,0 +1,7 @@ +# See Makefile.local for the list of files to be compiled in this +# directory. +all: + $(MAKE) -C .. all + +.DEFAULT: + $(MAKE) -C .. $@ diff --git a/info/Makefile.local b/info/Makefile.local new file mode 100644 index 000..55e9740 --- /dev/null +++ b/info/Makefile.local @@ -0,0 +1,33 @@ +# -*- makefile -*- + +dir := info + +texi_sources := $(dir)/notmuch-emacs.texi +emacs_info := $(texi_sources:.texi=.info) + +info := $(emacs_info) + +ifeq ($(HAVE_MAKEINFO),1) +all: $(info) +endif + +ifeq ($(HAVE_INSTALLINFO),1) +install: install-info +endif + +%.info: %.texi + makeinfo --no-split -o $@ $< + +$(dir)/notmuch-emacs.info: $(dir)/notmuch-emacs.texi $(dir)/version.texi + +.PHONY: $(dir)/version.texi +$(dir)/version.texi: version + printf "@set VERSION ${VERSION}\n" > $@ + +.PHONY: install-info +install-info: ${info} + mkdir -p "$(DESTDIR)$(INFODIR)" + install -m0644 $(info) "$(DESTDIR)$(INFODIR)" + install-info --section=Notmuch --info-dir=${DESTDIR}${INFODIR} $(emacs_info) + +CLEAN := $(CLEAN) $(info) diff --git a/info/notmuch-emacs.texi b/info/notmuch-emacs.t
[RFC Patch v2 3/3] debian: install info files
From: David Bremner It seems dh_installinfo doesn't understand wildcards or look in debian/tmp --- debian/notmuch-emacs.info | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 debian/notmuch-emacs.info diff --git a/debian/notmuch-emacs.info b/debian/notmuch-emacs.info new file mode 100644 index 000..2de46d3 --- /dev/null +++ b/debian/notmuch-emacs.info @@ -0,0 +1,3 @@ +info/notmuch.info +info/notmuch-emacs.info +info/notmuch-search-terms.info -- 1.8.2.rc2 ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch
[RFC Patch v2 2/3] man: partial conversion to pod.
From: David Bremner This allows generation of man page and info document from the same source. It is also a bit more friendly to edit for most people. The conversion was done as follows: % groff -e -mandoc -Tascii -rHY=0 $* | rman -f POD | sed -e '/./,/^$/!d' -e 's/ Some small hand-editing of the .pod may be needed afterwards. --- INSTALL | 6 + configure | 12 ++ info/Makefile.local | 25 +++- man/Makefile.local | 19 ++- man/man1/notmuch.1 | 184 --- man/man7/notmuch-search-terms.7 | 266 pod/notmuch-search-terms.pod| 233 +++ pod/notmuch.pod | 149 ++ 8 files changed, 440 insertions(+), 454 deletions(-) delete mode 100644 man/man1/notmuch.1 delete mode 100644 man/man7/notmuch-search-terms.7 create mode 100644 pod/notmuch-search-terms.pod create mode 100644 pod/notmuch.pod diff --git a/INSTALL b/INSTALL index 451bf05..697b7b2 100644 --- a/INSTALL +++ b/INSTALL @@ -60,6 +60,12 @@ Talloc which are each described below: Talloc is available from http://talloc.samba.org/ + pod2man + --- + + Some of the documentation is built with pod2man. This is part + of the standard Perl distribution since Perl 5.6.0 + texinfo --- diff --git a/configure b/configure index 5243f6a..a0c53e2 100755 --- a/configure +++ b/configure @@ -371,6 +371,15 @@ else have_emacs=0 fi +printf "Checking for pod2man... " +if pod2man --help > /dev/null 2>&1; then +printf "Yes.\n" +have_pod2man=1 +else +printf "No (man page install may fail)\n" +have_pod2man=0 +fi + printf "Checking for makeinfo... " if makeinfo --version > /dev/null 2>&1; then printf "Yes.\n" @@ -687,6 +696,9 @@ HAVE_MAKEINFO = ${have_makeinfo} # Whether there's an install-info binary available HAVE_INSTALLINFO = ${have_installinfo} +# Is pod2man in the path? +HAVE_POD2MAN = ${have_pod2man} + # where to install info files INFODIR = ${INFODIR} diff --git a/info/Makefile.local b/info/Makefile.local index 55e9740..cca891a 100644 --- a/info/Makefile.local +++ b/info/Makefile.local @@ -2,10 +2,14 @@ dir := info +man_texi := $(dir)/notmuch.texi $(dir)/notmuch-search-terms.texi +man_info := $(man_texi:.texi=.info) +man_entry := $(man_texi:.texi=.entry) + texi_sources := $(dir)/notmuch-emacs.texi emacs_info := $(texi_sources:.texi=.info) -info := $(emacs_info) +info := $(emacs_info) $(man_info) ifeq ($(HAVE_MAKEINFO),1) all: $(info) @@ -15,11 +19,23 @@ ifeq ($(HAVE_INSTALLINFO),1) install: install-info endif -%.info: %.texi +%.entry: ../pod/%.pod + printf "@dircategory Notmuch\n@direntry\n" > $@ + printf "* %s: (%s). " $(*F) $(*F) >> $@ + podselect -section Name $< | \ + perl -n -e 's/notmuch.* - (.*)/\u\L$$1/ && print' >> $@ + printf "@end direntry\n" >> $@ + +%.info: %.texi %.entry makeinfo --no-split -o $@ $< $(dir)/notmuch-emacs.info: $(dir)/notmuch-emacs.texi $(dir)/version.texi +%.texi: ../pod/%.pod + # a nasty hack, but the nicer ways seem to have bugs. + pod2texi $< | \ + sed 's/@node Top/@include $(*F).entry\n@node Top/' > $@ + .PHONY: $(dir)/version.texi $(dir)/version.texi: version printf "@set VERSION ${VERSION}\n" > $@ @@ -29,5 +45,8 @@ install-info: ${info} mkdir -p "$(DESTDIR)$(INFODIR)" install -m0644 $(info) "$(DESTDIR)$(INFODIR)" install-info --section=Notmuch --info-dir=${DESTDIR}${INFODIR} $(emacs_info) + for ifile in $(man_info); do \ + install-info --info-dir=${DESTDIR}${INFODIR} $${ifile}; \ + done -CLEAN := $(CLEAN) $(info) +CLEAN := $(CLEAN) $(info) $(man_entry) $(dir)/version.texi diff --git a/man/Makefile.local b/man/Makefile.local index 72e2a18..ceb5063 100644 --- a/man/Makefile.local +++ b/man/Makefile.local @@ -21,6 +21,8 @@ MAN1 := \ MAN5 := $(dir)/man5/notmuch-hooks.5 MAN7 := $(dir)/man7/notmuch-search-terms.7 +GENERATED_MAN := $(MAIN_PAGE) $(MAN7) + MAN1_GZ := $(addsuffix .gz,$(MAN1)) MAN5_GZ := $(addsuffix .gz,$(MAN5)) MAN7_GZ := $(addsuffix .gz,$(MAN7)) @@ -32,6 +34,21 @@ COMPRESSED_MAN := $(MAN1_GZ) $(MAN5_GZ) $(MAN7_GZ) %.gz: % gzip --stdout $^ > $@ +POD2MAN_RECIPE = mkdir -p $(@D) && \ +pod2man --section=$(subst .,,$(suffix $@)) \ +--center="Notmuch Documentation" --release=${VERSION} $< > $@ + +$(dir)/man1/%.1: $(dir)/../pod/%.pod + $(POD2MAN_RECIPE) + +$(dir)/man5/%.5: $(dir)/../pod/%.pod + $(POD2MAN_RECIPE) + +$(dir)/man7/%.7: $(dir)/../pod/%.pod + $(POD2MAN_RECIPE) + +CLEAN := $(CLEAN) $(NROFF7) + .PHONY: install-man update-man-versions install-man: $(COMPRESSED_MAN) @@ -50,4 +67,4 @@ update-man-versions: $(MAN_SOURCE) < $$file.bak > $$file; \ done -CLEAN := $(