1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
The Little Brother's Database
Roland Rosenfeld <roland@spinnaker.de> (current maintainer)
Thomas Roessler <roessler@guug.de> (initial author)
This package was inspired by the Big Brother Database package
available for various Emacs mailers, and by Brandon Long's "external
query" patch for the mutt mail user agent (Note that this patch has
been incorporated into the main-line mutt versions as of mutt 0.93.)
The package doesn't use any formal database libraries or languages,
although it should be quite easy to extend it to use, e.g., an
installed PostgreSQL server as it's backend.
For querying the Little Brother, just type "lbdbq <something>". lbdbq
will now attempt to invoke various modules to gather information about
persons matching "<something>". E.g., it may look at a list of
addresses from which you have received mail, it may look at YP maps,
or it may try to finger <something>@<various hosts>.
The behavior is configurable: Upon startup, lbdbq will source the
shell scripts
/usr/local/etc/lbdb.rc (or where your @sysconfdir@ points to)
$HOME/.lbdbrc
$HOME/.lbdb/lbdbrc
$HOME/.lbdb/rc
if they exist.
They can be used to set the following global variables:
- MODULES_PATH: Where lbdbq should look for modules
- METHODS: What modules to use.
- SORT_OUTPUT: Set this to "false" or "no" and lbdbq won't sort the
addresses but returns them in reverse order (which means that the
most recent address in m_inmail database is first). If you set this
to "name", lbdbq sorts the output by real name. If you set this to
"comment", it sort the output by the comment (for example the date
in m_inmail). If you set this to "address", lbdbq sorts the output
by addresses (that's the default).
Note that there _are_ defaults, so you should most probably modify
these variables using constructs like this:
MODULES_PATH="MODULES_PATH $HOME/lbdb_modules"
Additionally, modules may have configuration variables of their own.
Currently the following modules are supplied with lbdb:
m_finger
This module will use finger to find out something more about a
person. The list of hosts do be asked is configurable; use the
M_FINGER_HOSTS variable. Note that "localhost" will mean an
invocation of your local finger(1) binary, and should thus work
even if you don't provide the finger service to the network.
m_finger tries to find out the machines mail domain name in
/etc/mailname, by parsing a sendmail.cf file (if it finds one)
and by reading /etc/hostname and /etc/HOSTNAME.
m_inmail
This module will look up user name fragments in a list of mail
addresses created by lbdb-fetchaddr(1).
m_passwd
This module searches for matching entries in your local
/etc/passwd file. It evaluates the local machine mail domain in
the same way m_finger does. If you set PASSWD_IGNORESYS=true,
this module ignores all system accounts and only finds UIDs
between 1000 and 29999 (all other UIDs are reserved on a Debian
system).
m_yppasswd
This module searches for matching entries in your NIS password
file using the command "ypcat passwd".
m_nispasswd
This module searches for matching entries in the NIS+ password
database using the command ``niscat passwd.org_dir''.
m_getent
This module searches for matching entries in whatever password
database is configured using the command ``getent passwd''.
m_pgp2, m_pgp5, m_gpg
These modules scan your PGP 2.*, PGP 5.* or GnuPG public key
ring for data. They use the programs pgp(1), pgpk(1), or gpg(1)
to get the data.
m_fido
This module searches your Fido nodelist, stored in
$HOME/.lbdb/nodelist created by nodelist2lbdb(1).
m_abook
This module uses the program abook
(http://www.linuxstart.com/~jheinonen/abook/), a text based
address book application to search for addresses. You can
define multiple abook address books by setting the variable
ABOOK_FILES to a space separated list.
m_addr_email
This module uses addr-email from the addressbook
(http://red.roses.de/~clemens/addressbook/) Tk program to
search for addresses.
m_muttalias
This module searches the variable MUTTALIAS_FILES (a space
separated list) of files in MUTT_DIRECTORY that contain mutt
aliases. File names without leading slash will have
MUTT_DIRECTORY (defaults to $HOME/.mutt or $HOME, if
$HOME/.mutt does not exist) prepended before the file name.
Absolute file names (beginning with /) will be taken direct.
m_pine
This module searches pine(1) addressbook files for
aliases. To realize this it first inspects the variable PINERC.
If it isn't set, the default `/etc/pine.conf
/etc/pine.conf.fixed .pinerc' is used. To suppress inspecting
the PINERC variable, set it to "no". It than takes all
address-book and global-address-book entries from these pinerc
files and adds the contents of the variable PINE_ADDRESSBOOKS
to the list, which defaults to `/etc/addressbook .addressbook'.
Then these addressbooks are searched for aliases. All filenames
without leading slash are searched in $HOME.
m_palm
This module searches the Palm address database using the
Palm::PDB and Palm::Address Perl modules from CPAN. It
searches in the variable PALM_ADDRESS_DATABASE or if this isn't
set in $HOME/.jpilot/AddressDB.pdb.
m_gnomecard
This module searches for addresses in your GnomeCard database
files. The variable GNOMECARD_FILES is a whitespace separated
list of GnomeCard data files. If this variable isn't defined,
the module searches in $HOME/.gnome/GnomeCard for the GnomeCard
database or at least falls back to $HOME/.gnome/GnomeCard.gcrd.
If a filename does not start with a slash, it is prefixed with
$HOME/.
m_bbdb
This module searches for addresses in your (X)Emacs BBDB (big
brother database). It doesn't access ~/.bbdb directly (yet)
but calls (x)emacs with a special mode to get the information
(so don't expect too much performance in this module). You can
configure the EMACS variable to tell this module which emacsen
to use. Otherwise it will fall back to emacs or xemacs.
m_ldap
This module queries an LDAP server using the Net::LDAP Perl
modules from CPAN. It can be configured using an external
resource file (for more details please refer to the
mutt_ldap_query(1) manual page).
m_wanderlust
This module searches for addresses stored in your
$WANDERLUST_ADDRESSES (or by default in $HOME/.addresses) file,
an addressbook of WanderLust.
m_osx_addressbook
This module queries the OS X AddressBook. It is only available
on OS X systems.
m_evolution
This module queries the Ximian Evolution address book using the
evolution-addressbook-export application.
m_vcf
This module uses libvformat to search for addresses from the
space-separated set of vCard files defined in $VCF_FILES.
Feel free to create your own modules to query other kinds of
databases. m_finger should be a good example of how to do it.
If you create your own modules or have other changes and feel that
they could be helpful for others, don't hesitate to submit them to me
for inclusion in later releases.
Finally, to use lbdbq from mutt, add the following line to your
~/.muttrc:
set query_command="lbdbq %s"
CREDITS
-------
Most of the really interesting code of this program (namely, the RFC
822 address parser used by lbdb-fetchaddr) was stolen from Michael
Elkins' mutt mail user agent. Additional credits go to Brandon Long
for putting the query functionality into mutt.
Many thanks to the authors of the several modules and extensions:
- Ross Campbell <rcampbel@us.oracle.com> (m_abook, m_yppasswd)
- Marc de Courville <marc@courville.org> (m_ldap, mutt_ldap_query)
- Brendan Cully <brendan@kublai.com> (m_osx_addressbook, m_vcf)
- Gabor Fleischer <flocsy@mtesz.hu> (m_pine)
- Rick Frankel <rick@rickster.com> (m_gnomecard)
- Guido Guenther <agx@sigxcpu.org> (m_evolution)
- Utz-Uwe Haus <haus@uuhaus.de> (m_bbdb, m_nispasswd)
- Torsten Jerzembeck <toje@nightingale.ms.sub.org> (m_addr_email)
- Gergely Nagy <algernon@debian.org> (m_wanderlust)
- Dave Pearson <davep@davep.org> (m_palm, lbdb.el)
- Brian Salter-Duke <b_duke@bigpond.net.au> (m_muttalias)
|