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
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
|
v2.4:
Update to automake 1.11.1 and autoconf 2.67
Do not misidentify frontends which are prefixes of each other
v2.3:
Bump the version since there are various 2.2 tarballs floating
around the web. Shame on me for not releasing sooner, I guess.
v2.2:
Added support for specifying a umask for the database
Removed idiotic/wrong use of 'sg' in INSTALL's import example
Cleaned up HTML using firefox:
Double lang in redirects removed
<a name="..."> can't be a number
Fixed NaN errors in bar charts
Fixed a bug where a username with line breaks created broken XML
Compare the list address and reply-to insensitively
Fix foreground colour for people with reversed settings
Allow include'ing a directory --> read all files ending with .conf
Include filename and line number in config error messages
Some previously global settings can now be overriden for frontends
admin_{name,address}, archive, {hide,raw}_email, web_cache
Added Galician language
Updated to autoconf 2.61 and automake 1.10.1
Made compatible to gcc-4.4
Add missing includes for cstdlib cstring
Rebuilt getdate.y using bison 2.3
Switch from CVS to subversion
Place static web content into /usr/share/lurker/www not /var/www
Rewrote the markup regexps (linear-time and rfc-derived)
Fix pruning for list-ids with a '.' in their name
v2.1:
lurker.cgi uses the environment to provide location information:
LURKER_CONFIG over-rides the default config file
LURKER_FRONTEND chooses which frontend is being rendered
Updated the apache.conf and install docs to demonstrate this
Escape all user controllable text which is output as xml/html
Escape broken mailbox content displayed during import
Localization of the reply button
v2.0:
Zap XOPEN_SOURCE/GNU_SOURCE defines for broken systems (osx, freebsd)
Minor documentation fix in lurker.conf about list id limit (128)
Include a fix for Solaris my_timegm from Moritz Eysholdt
Add mimelib workaround for MacOS X
Extend the trimming of []s in subjects to 40 (for japanese lists)
Removed the 'regroupable' option, this is now manditory off
Language is now a manditory field for mailing lists
A single mailing list may now host multiple written languages
All tools now have a default config file location
ui/ files are now installed to ui
New automake 1.9.6, autoconf 2.59
Removed old '-b' option; '-m' remains to import a single message
Add configure option to control web directories
Every list must now be contained in a group
Added frontend support to the config file
Prune no longer needs/supports the '-d' option
Lurker-search uses a new trick to correct cache
Fixed searching for 'id:messsage-id'
lurker.cgi parameters are now 'document?config-file'
- document must be either a frontend path, or the missing document
- config-file is optional
Include an apache.conf which should work with the given settings
Messages from unavailable lists appear to completely not exist
Brought back an improved version of the reply link
Art no longer matches paragraph starts, only trailing signatures
Include trash can icon for deleting junk email
Adjusted gpg settings to be more modern
Modernized the INSTALL documentation
Updated lurker-regenerate to work with deleted email
Improved error reporting on bad command-line options
Fixed a bug in lurker-prune that aborted list loading or delete flags
lurker-search now supports specifying messages by raw id
Add a new command (zap) and option (delete) to delete from web
Include attached images in message view
v1.3:
Applied a patch from Benjamin Boksa to fix highlight under MacOS IE
Included French localization
Fixed an (unexploitable) stack-overflow from very repeated keywords
Changed date widths to 170 for MSIE under Windows 2000.
Decoding of international headers no longer injects incorrect spaces
Message-id now don't break in some timezones during daylight savings
Use sysexits.h if available for mailer compatible return codes
Increased maximum lengths of some config-file fields
Suggest attachment filenames via Content-Disposition
Due to popular demand, reversed the direction of thread arrows
Fixed transparency of the house icon under IE
v1.2:
Fixed a bug where 'From "john doe"@foo.com Mon Jan 1 10:11:11' was not
a message break due to quoted email address.
Lurker-prune now only deletes files which appear to be generated
Lurker rendering and pruning are now equally picky about formatting
Newer automake (1.8.5-2) and autoconf (2.59-7) used for build
Cache depends not only on the config file, but also included files
Slightly modified the deutsch.xsl translation
Made all parameters in manual pages use unicode hyphens
Added a new config option 'raw_email =' to disable mbox/ and attach/
Added an import option to select a file instead of stdin, '-i'
Improved the documentation for lurker-index -m and -b
Internal support for not, or, and, everything, and nothing searches
Added support for not searching ala google: '-foo', '+' is ignored
Searches now internally include a not(deleted) criterea
Removed a misguided use of pointers in the ConfigFile class
Group searching can now use internal 'or' search of included lists
Mailing lists may now be regrouped without reimporting
Deny formatting of unknown extensions
Include language code in the extension of all pages
Switch the rendered locale based on the extension
Include a language switching drop-down
New 'language = ' list option in lurker.conf
Searching by language is now possible; defaults to selected locale
The next year is no longer hard-coded
Added all ISO 639 language codes and included translated names
New 'offline =' list option added
Maildir support added
FAQ entries for new languages and maildir dates added
Removed all use of KeyReader in favour of Search (handles deletion)
Added a lurker-search command which can delete messages
Added a '-p' option to lurker-prune which kills off all cache
Hacks all over the place to make deleted messages never appear
Allow empty files to be included in the config file
Include a fixed version of Silas Jantzen's apache RewriteRule
Included a ton of lurker UI translations, see the AUTHORS file
Added a '-u' option to lurker-index to trust the user Date header
Added support for 3 digit language codes and 2 digit country code
Made the config file able to deal with translations in '[]'s
Added config file option 'regroupable' for large archives
Don't output CRs in message bodies
v1.1:
Create mbox and attach directory upon install
Add spaces between "version1.1" "by:foo"
Prefer to sort by list name in the list selection
Fixed ml: typo in the thread pages
Substitute dbdir in lurker.conf
Create dbdir during install target
Fixed lurker-regenerate for uncompressed databases
Removed obsolete Version.h.in
Spell checked lurker.conf.in
Added hide_email config option
Absolute urls now support SSL (https)
Create lurker.docroot during install
Empty admin_address now means unlinked administrator
Go directly to the message if there is only one new posting
Added 2005 to the search page
Fixed huge reply list with message-ids involving <...@[192.168.0.1]>
Include and build dump for help debugging databases
Added a work-around for mozilla 1.5 uri parsing bug (searchs with .)
Changed widths to work-around latest Safari table layout change
Set Content-Type for raw messages to message/rfc822 to allow reply
Newer automake and autoconf used for build
v1.0:
Froze the 1.* series against all changes other than bug fixes
v0.10:
New-Topics and Old-Topics should show the subject
Output "Permission denied" instead of "Bad file descriptor"
Inherit charset in nested mime components
Interpret mime headers relative to current charset
Print only the best alternative of multipart/alternative
Strip html tags from messages with only html
Fixed a bug with mixing compression and missing 'From ' lines
Unified all the copyrights to GPL v2
New config option can disable web cache for low traffic sites
New config options specify how to handle gpg signatures
Verify gpg signatures and format them for the user
Display included photos from the gpg keyring of signed emails
All displayed dates will be browser local time if javascript is on
Mail with an unescaped From is now converted to quoted-printable
Added a heuristic to try and detect unescaped 'From ' lines
Include links from the threading page to the list overview pages
Keep different Japanese subjects in different threads
Switch back to evil automake; too few systems have jam
Tweaked the css for better IE support
Reorder thread by in-reply-to + references if date sequence is wrong
More strict enforcement of sanity on dates
Worked around how Solaris #defines open
Renamed Config.h to ConfigFile.h for windows
Fixed rendering in konqueror
Got subject/author clipping working in IE+Konqueror
Double-click in list overview goes directly to the message
Prune off list related cruft from subjects
v0.9:
Don't segfault in rare cases if using '-d' on import (zero restart)
Ignore leading non-email cruft in broken mailboxes
Include the last message in statistics for '-v' output
Truncating long utf-8 fields fixed; spam is again viewable!
Truncate long personal names and message ids; fixes assertion failure
Timestamps of emails are clipped to [1970-01-01 00:00:01, now]
Capital bytes during import
Allow up to 32 byte list ids instead of 16
Depend on zlib and find it like mimelib
Added lurker-list and lurker-params to facilitate script writing
Added a group option which can be used to categorize the splash
Searching by group is now supported
Support 'include = ' files within configuration
Test mimelib last since mimelib local is not available during tests
Parse mailbox dates using GNU date's code
Fixed a race condition with multiple writers
Fixed a bug which prevented '-f' from actually working
Compress mailboxes in a manner compatible with gzip but seekable
Support searching for utf-8; german/russian/etc work
Make messages with no in-reply-to reachable in snippet view
Added new list page which include new topics
Current directory is now relative to generated content
Converted Wheat's html page to xslt and merged it in
Rewrote the entire UI to integrate the new topics page
Tidied up logic for author selection
Reject any email address with control or non-ascii chars
Retrieve attachment filename
Fixed a bug with databases over 6Gb
Ascii art is now either a signature or a whitespace indented line
v0.8:
@ signs are legitimate inside urls
Support iconv #define's used on MacOS
Renamed some files so filenames don't clash with case insentivity
Don't compile network-enabled bits of mimelib
Getopt.h is not required and unavailable on some platforms
Solaris has no grep -q, use /dev/null
Include fcntl.h for Solaris O_RDONLY
Don't use TZ for my_timegm; unsetenv is not in Solaris
Fsync files to disk for file-system transaction guarantees
Don't use flock if unavailable, try fcntl instead
Have better fallback behaviour for screwy charsets
Crop anything that even smells like a control char in xml
Include sys/types.h for off_t on BSD
Fixed some minor -Wall warnings
Tidied up the commit semantics
Provide an option to import without power-failure safety
Implemented a smart cache manager: lurker-prune
Improved the man pages with helpful information
Include a subject for emails without one
Fixed title display bug
Include UTF-8 as charset in response Content-Type
Missed cassert in some files; fixes compile under g++ 3.3
v0.7:
Made VERSION controlled by one place: configure.ac
Fixed a bug where mailing list names were kept from Reply-To
Unfold folded email headers for http; broke some attachments
Don't include control chars in output xml; drop them
Added mejo's manpage for lurker-index
Open mode of 0666 instead of 0644; rely on the umask
Support override for lurker.cgi location
Install cgis to cgi-bin rather than docroot
Replace list_host with archive
Don't use symlinks; not portable and jam doesn't do it
Support building against local mimelib for deployment without kde
Compatability with older g++ 2.95 versions
Support backwards reading in esort
Fixed a bug with the empty string inserted into the database
The database supports prefix partitioning
Make search work like mindex
Removed some debugging that was left in 0.6
A search for no keywords now returns everything
Added a '-d' option to save space on reimport
Added 'lurker-regenerate' to port databases
Truncate reply-to list to 50 messages
Have a valid 'jump-to' date even with no messages
Removed follow-ups; the tree already has them
Give nice error messages for non-existant messages
Don't reorder or prune chars from search terms
Don't import the empty string
Searches for keys with %, /, and + work
v0.6:
Jam replaces automake + overkill autoconf madness; hooray!
Mimelib replaces libc-client; hooray for a decent API!
libesort replaces libkap -- should index faster
Indexing is done atomically with lurker-index (command-line tool)
lurker.cgi takes atomic database snapshots directly (no ipc)
Basically, a reimplementation in C++
v0.1g:
Ignore reply-to address if equal to mailing list address
Fixes for things that gcc 3.2 correctly warns about
Updated build files to newer automake/autoconf
Fixed a redirection bug on older browsers with jump/*
Fixed file descriptor hack that broke Solaris
Fixed a segv on corrupt embedded rfc822 mime components
v0.1f:
Fixed overlong browser caching of last mindex for a list
Ignore SIGPIPE for cases where libst doesn't catch it
Turn off the warning about broken email headers
Corrected column formating
Center the entire search selection
v0.1e:
Don't warn if a maildrop adds whitespace before "From ..."
Allow port numbers in URLs ("http://localhost:8080/foo")
Report total number of messages on the front page
Include an Expires http-equiv to match lurker expiry
Output a Last-Modified and Date header from the lurker.cgi to match
what the webserver outputs
Removed an evil kludge that relies on C calling convention
Removed exslt dependency so IE6 xsl works again
Made output html w3c compliant
Got mozilla xslt to work!
Mangle mailto:s regardless of xf:escape-uri availability
Support utf-8 mailto if xf:escape-uri available
XSL support detection via javascript added
Forward/backward links within a message added
Display which replies are thread drift
Prettier arrows from Kevin Teague
Should compile on BSD again
Fixed alignment issue on ia64
Better decisions about how much to mmap
Added a FAQ
Added tail caching to libkap
v0.1d:
Fixed an off by one error in btree.c (could assert-fail)
Kap allowed wbuffers w/o append, which could consume a lot of RAM
during the backup script
Fixed a free(0) in mbox.c
Quatered the cache given to a write buffer
Quadrupled the cache dump frequency
Added command-line option for disabling import
Added command-line option for disabling service
Made the splash page display only list names in four column mode
Made the AVL trees reentrant
Reintegrated the read buffer into libkap -> faster searches
mmap is used for .append files to allow async writes
Fallback when out of address space to read()/write() added
We preallocate storage for append to prevent wasted writes
Threads can span 3 months instead of 1
No longer require numeric id tags for lists
Mboxs can be given arbitrary strings for tags
Automatically detect unconfigured mboxs
Load config files more cleanly -- will facilitate config reloading
Mailing lists are refered to by name in the UI instead of ID
Include version information in pages
Added command-line option to output import speed statistics
Made error message about direct CGI invocation more informative
URLs like www.debian.org with http:// are now non-relative
Fixed the search algorithm which was broken since libkap read cache
was implemented; now we get all hits again.
Fixed a bug where adjacent list items in the expiry heap led to
a SIGBUS error on swap
v0.1c:
Added libkap which completely replaces all of libdb3 and flatfile
-- this means the database needs to be reimported
-- we can now import >6Gb email with reasonable speed
Included a backup to text-file command
-- allows migration for future database versions
-- deals with cases of power-failure killing db
Improved the regexps for email markup
Added date-range keyword searching
configure no longer tries to rebuild Makefile.in / aclocal.m4 / etc
Japanese added
Thorough unit tests for the database
Much better conformance to strict ansi C
Beautified XSLT ala Max
Many smaller things that got lost in the frenzied switch to libkap
v0.1b:
Improved installation documentation
Configure allows dependencies to be in non root locations
Fixed a configure problem on MacOS X
Switched everything to ISO C99
Added the write caching algorithm (about a 15x import speedup)
Added a new database format for flatfile (about 2x speedup)
Breaders can now reclaim boundary info memory
Attempt to save the database on a segfault
Profiling code added
Minor bugfixes
v0.1a:
Initial alpha release to test core lurker functionality.
|