[RFC Patch v2 3/3] debian: install info files

2013-04-24 Thread da...@tethera.net
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.

2013-04-24 Thread da...@tethera.net
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


Second draft of info manual

2013-04-24 Thread da...@tethera.net
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. 



[PATCH] go: use a different goconfig package

2013-04-24 Thread Tomi Ollila
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


forwarding multiple messages from notmuch emacs

2013-04-24 Thread Jeremy Nickurak
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>


remove unused tags from the database / emacs ui?

2013-04-24 Thread Jani Nikula
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.


[PATCH] debian: package ruby bindings

2013-04-24 Thread Felipe Contreras
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


Re: [PATCH] debian: package ruby bindings

2013-04-24 Thread Felipe Contreras
On Tue, Apr 23, 2013 at 6:35 PM, David Bremner brem...@debian.org wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:

 On Mon, Apr 15, 2013 at 5:34 AM, David Bremner brem...@debian.org 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?

2013-04-24 Thread ingo
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?

2013-04-24 Thread Jani Nikula
On Wed, 24 Apr 2013, ingo ma...@2b1.de 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?

2013-04-24 Thread ingo
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

2013-04-24 Thread Tomi Ollila
On Wed, Apr 24 2013, David Bremner da...@tethera.net 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

2013-04-24 Thread Justus Winter
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

2013-04-24 Thread Jeremy Nickurak
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


Re: forwarding multiple messages from notmuch emacs

2013-04-24 Thread Jeremy Nickurak
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../#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
not-m...@trk.nickurak.cawrote:

 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

2013-04-24 Thread david
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.

2013-04-24 Thread david
From: David Bremner brem...@debian.org

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 21; then
 printf Yes.\n
@@ -367,6 +371,24 @@ else
 have_emacs=0
 fi
 
+printf Checking for makeinfo... 
+if makeinfo --version  /dev/null 21; 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 21; 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 mode 

[RFC Patch v2 3/3] debian: install info files

2013-04-24 Thread david
From: David Bremner brem...@debian.org

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.

2013-04-24 Thread david
From: David Bremner brem...@debian.org

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 21; 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 21; 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 := $(CLEAN) $(COMPRESSED_MAN)