Subversion Repositories prayer

Compare Revisions

Ignore whitespace Rev 1 → Rev HEAD

/tags/1.3.5-dfsg1-4/debian/changelog
0,0 → 1,423
prayer (1.3.5-dfsg1-4) unstable; urgency=low
 
* Switch from CDBS to dh and debhelper compat level 9.
* openssl1.1.patch: Support OpenSSL 1.1 API changes (Closes: #828512).
* Support for Entropy Gathering Daemon removed because it's really old
and support for it is no longer enabled in OpenSSL by default.
* Add missing lsb-base dependencies.
* prayer.postrm: remove hard-coded path to deluser.
* Bump Standards-Version to 3.9.8.
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 29 Oct 2016 14:15:05 +0200
 
prayer (1.3.5-dfsg1-3) unstable; urgency=low
 
* disable_ssl3.patch (new): Disable SSL 3.0 due to CVE-2014-3566
(POODLE).
* debian/Config: Disable ACCOUNTD_SSL_ENABLE since the SSL/TLS support
in prayer-accountd and prayer-session is incomplete and never was
functional.
 
-- Magnus Holmgren <holmgren@debian.org> Wed, 29 Oct 2014 22:32:18 +0100
 
prayer (1.3.5-dfsg1-2) unstable; urgency=high
 
* dlopen_templates.patch: Use MYCFLAGS (which is initialized to the
value of CFLAGS from dpkg-buildflags in the Config file) instead of
CFLAGS in templates/{src,cam,old}/Makefile (Closes: #715310, LP:
#1201216). The --defsym options were lost when we let CDBS override
CFLAGS in the previous upload.
 
-- Magnus Holmgren <holmgren@debian.org> Thu, 18 Jul 2013 22:47:08 +0200
 
prayer (1.3.5-dfsg1-1) unstable; urgency=low
 
* New upstream release.
* Refresh patches.
* Drop dummy package prayer-templates.
* No longer override CDBS overriding CFLAGS, thereby allowing hardening
flags to be properly propagated. I think it caused internal include
flags to be lost, but since at least 1.3.2 that's no longer the case.
* Bump Standards-Version to 3.9.4.
* hurd.patch: Always define HAVE_SHADOW. The test for BSD4_4 seems
bogus; it is defined on Hurd, but crypt(3) is available there.
 
-- Magnus Holmgren <holmgren@debian.org> Wed, 12 Jun 2013 00:09:05 +0200
 
prayer (1.3.4-dfsg1-1) unstable; urgency=low
 
* New upstream release.
- Drop ipv6_v6only.patch; fixed upstream.
* template_sdk.patch: templates/src/build_index.pl no longer need to
be patched.
* Bump Standards-Version to 3.9.2.
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 27 Aug 2011 22:24:50 +0200
 
prayer (1.3.3-dfsg1-4) unstable; urgency=low
 
* Merge ld-as-needed.diff from Ubuntu into dlopen_templates.patch
(Closes: #607559).
* dlopen_templates.patch: Add missing #include "dlopen_templates.h" to
servers/prayer_shared.h.
* hurd.patch (new): Use the SPT_CHANGEARGV implementation of
setproctitle() on the Hurd.
* Add basic manpage for prayer-accountd(8).
* unbrand_accountd.patch: Remove some Cambridge-specific parts of the
filter handling.
* Drop obsolete Build-Depends alternative libc-client2007b-dev.
* Increase Debhelper compat level to 7.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 27 Mar 2011 22:49:18 +0200
 
prayer (1.3.3-dfsg1-3ubuntu1) natty; urgency=low
 
* Fix FTBFS with ld --as-needed.
 
-- Matthias Klose <doko@ubuntu.com> Sun, 19 Dec 2010 19:07:04 +0100
 
prayer (1.3.3-dfsg1-3) unstable; urgency=high
 
* ipv6_v6only.patch (new): Set the IPV6_V6ONLY socket option on
AF_INET6 sockets; since Prayer by default enumerates available address
families and calls bind() once for each, conflicts will occur
otherwise (Closes: #607261).
 
-- Magnus Holmgren <holmgren@debian.org> Thu, 16 Dec 2010 20:16:41 +0100
 
prayer (1.3.3-dfsg1-2) unstable; urgency=high
 
* Convert (trivially, since CDBS with quilt was already used) to source
format 3.0 (quilt).
* no_db_version_check.patch: Remove unnecessary and incorrect check that
not only the major and minor version numbers of the current libdb are
the same as at compile time, but also that the patch number is equal
or greater, which should not be a concern (Closes: #592119).
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 07 Aug 2010 21:07:53 +0200
 
prayer (1.3.3-dfsg1-1) unstable; urgency=low
 
* New upstream release.
- Dropped kfreebsd.patch, clean_completely.patch, and
manpage_error.patch; all incorporated upstream.
* makefile_install_config.patch: Updated; some parts incorporated
upstream.
* prayer-templates-dev.install: Only template_structs.h and misc.h
needed henceforth, since only those files are #included by compiled
templates.
* template_sdk.patch: The #include that templates/src/build_index.pl
generates was not changed, though.
* debian/Config, debian/control: Enable libtidy for HTML parsing and
sanitisation, fixing certain XSS problems, which were due to simple
substring matching being used.
* prayer.init, prayer-accountd.init: Add $remote_fs to, and move
$local_fs to, Required-Start.
* Upgrade to Standards-Version 3.9.0:
* Use Breaks instead of Conflicts to handle the renaming of
prayer-templates.
 
-- Magnus Holmgren <holmgren@debian.org> Thu, 22 Jul 2010 03:27:52 +0200
 
prayer (1.3.2-dfsg1-4) unstable; urgency=low
 
* Undo inadvertent inclusion of /usr/include/prayer in
prayer-templates-src (Closes: #557056).
 
-- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
 
prayer (1.3.2-dfsg1-3) unstable; urgency=low
 
* Replace non-existing libc-client2007-dev with new libc-client2007e-dev
among the libc-client Build-Depends alternatives (Closes: #552717).
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
 
prayer (1.3.2-dfsg1-2) unstable; urgency=low
 
* dlopen_templates.patch:
* templates/{cam,old}/Makefile: Define the symbols template_map and
template_map_count as aliases to the template_$(TYPE)_map and
template_$(TYPE)_map_count when linking, so that template libraries
can be loaded by other names than the original one. Also remove some
cruft.
* shared/dlopen_templates.c: Use those symbols instead.
* Add symlinks so that template_set = xhtml_strict will still work.
* Update the names of the directories for locally modified templates
(under /etc/prayer/templates) to reflect the new template names.
* template_sdk.patch (new): Create makefile for building template set
libraries. Install it together with binaries and scripts needed.
* Rename prayer-templates as prayer-templates-src and add new binary
package prayer-templates-dev containing the aforementioned
template-building tools as well as a README.Debian explaining how to
use it all.
* Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
prayer-templates-src in addition to prayer-templates-dev.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
 
prayer (1.3.2-dfsg1-1) unstable; urgency=low
 
* New upstream release (Closes: #546918).
* The set of available template sets has changed and several
obsolete configuration options are no longer recognized. Please
see NEWS.Debian for more information.
- Repacked without University of Cambridge logos with dubious
copyright/license status (more info in debian/copyright).
- unbrand_cam_template.patch: Remove said Cambridge-specific graphics
from 'cam' template set.
- Drop unlimit_login_username.patch (fixed upstream when replacing
the old login screen with frontend templates) and
usernames_with_at.patch (incorporated upstream).
* clean_completely.patch: Partially implemented upstream.
* Manpages incorporated upstream.
* dlopen_templates.patch: Experimental support for dynamically loading
templates.
* Update README.Debian.
* makefile_install_config.patch(share/config.c): Change default
template_set to "old".
* makefile_install_config.patch(files/Makefile): Fix permissions on
icons and static files.
* manpage_error.patch: Fix missing .El in prayer-session(8).
 
-- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
 
prayer (1.2.3-2) unstable; urgency=low
 
* welcome_is_template.patch wasn't fully incorporated upstream. Remove
the help_dir setting and check in makefile_install_config.patch instead.c
* Make Prayer work on kFreeBSD. Unfortunately there is no support for
SysV semaphores.
* kfreebsd.patch: Include the right headers under glibc. Detect that
semtimedop is a stub.
* debian/Config: Add -lutils to LIBS.
* makefile_install_config.patch: put back a default value for
lock_dir.
* makefile_install_config.patch: Set imap_server to localhost/notls in
default prayer.cf (Closes: #531801).
* Depend on exim4 | mail-transport-agent.
* Increase Standards-Version to 3.8.3.
 
-- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
 
prayer (1.2.3-1) unstable; urgency=low
 
* New upstream release.
- Drop repair_ssl_session_db_on_version_mismatch.patch,
remove_old_db_logfiles_from_prayer-ssl-prune.patch,
welcome_is_template.patch, template_find_bug.patch; all incorporated
upstream.
- Update makefile_install_config.patch after welcome.html gone.
* kfreebsd.patch (new): Try to get Prayer to work on Debian
GNU/kFreeBSD.
* Add ${misc:Depends} to Depends for prayer-templates.
* Upgrade to Standards-Version 3.8.1.
+ Add debian/README.source.
* clean_completely.patch (new): Fix a few makefiles that didn't remove
their build targets in the clean target (Closes: #521369). Thanks to
Simon McVittie.
 
-- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
 
prayer (1.2.2.1-7) unstable; urgency=high
 
* Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
as part of the package but create it in the init script (LP: #304071).
Also, var_prefix, pid_dir and prayer_user will by default be overriden
from the command line to make sure that they get the values expected by
the init script.
 
-- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
 
prayer (1.2.2.1-6) unstable; urgency=low
 
* prayer.init: Correctly check for the presence of the executables.
* Split out templates to a separate arch-indep package.
* Change the default value of the tmp_dir option back to
${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
secure.
* usernames_with_at.patch (new, from upstream CVS): If a username
contains an @, it will be assumed to be a valid email address and be
used as envelope sender address and default "From" address when
sending mail (Closes: #497016).
 
-- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
 
prayer (1.2.2.1-5a) unstable; urgency=medium
 
* Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
language code.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
 
prayer (1.2.2.1-4) unstable; urgency=medium
 
* Urgency medium since fixing fairly serious bug(s).
* debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
environment or command line, breaking a circular definition of
LDFLAGS (FTBFS on Ubuntu; LP: #256220).
* unlimit_login_username.patch (new):
- servers/prayer_login.c: Remove 8 character username limit from login
form (Closes: #494517).
* prayer.init, prayer-accountd.init: Sleep 1 second between stop and
start in restart.
* Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
versions from source package.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
 
prayer (1.2.2.1-3) unstable; urgency=low
 
* welcome_is_template.patch:
- shared/config.c: Don't require that the help_dir option, which was
removed from the default prayer.cf earlier, is defined
(Closes: #493009).
* makefile_install_config.patch:
- shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
 
-- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
 
prayer (1.2.2.1-2) unstable; urgency=low
 
* Acknowledge NMU, but change the build dependency to
libc-client2007b-dev | libc-client2007-dev | libc-client-dev
(>= 7:2007~), since we need at least that version.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
 
prayer (1.2.2.1-1.1) unstable; urgency=low
 
* Non-maintainer upload.
* Build-depend on unversioned libc-client-dev to allow BinNMUs.
Closes: bug#492285.
 
-- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
 
prayer (1.2.2.1-1) unstable; urgency=low
 
* New upstream release featuring XHTML templates and fixes to various
bugs created by the reorganisation.
- Drop accountd_makefile_typo.patch; fixed upstream.
* makefile_install_config.patch: Changes to the default config:
- Disable SSL session caching.
- Clean out "direct connection stuff". Remove lock_dir since we use
SysV semaphores.
* Point login_prefix_path, motd_path, and login_suffix_path towards
/etc/prayer.
* Change postponed-mail and sent-mail to Drafts and Sent.
* Improve SSL/TLS configuration:
* makefile_install_config.patch: Point ssl_cert_file and
ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ Add dependency on ssl-cert (>= 1.0.11).
+ prayer.postinst: Add prayer to group ssl-cert on fresh install or
when upgrading from versions prior to this one.
* welcome_is_template.patch (new): Although the welcome screen is now a
template among others, cmd_welcome.c still tried to read the file
specified by welcome_path (welcome.html by default) and wouldn't show
the welcome screen if the option was unset or the file couldn't be
read. This patch removes that check as well as the welcome_path and
help_path options from prayer.cf.
* No longer install welcome.html (see above) and motd.html (no real
content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
and motd.html (the versions found in files/etc.hermes in the
distribution tarball) in /usr/share/doc/prayer/examples instead.
* Do not install prayer-chroot (too experimental, hardcoded chroot path)
or prayer-sem-prune (does nothing that ipcrm cannot do).
* templates_fallback_to_compiled.patch (new): If the
template_use_compiled option is false, nevertheless use compiled-in
templates in template_expand.c if the requested template cannot be
found on disk. Change default template_path to /etc/prayer/templates.
Install said directory as well as subdirectories for available
template sets.
* Update and improve README.Debian.
* Add logrotate dependency.
* makefile_install_config.patch: Remove call to install.sh from
files/Makefile and replace it with single tar pipeline; thus
install.sh no longer needs to be patched.
* remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
myarchive() in lib/mydb_db3.c so that it only deletes obsolete
transaction logs if dirname = NULL, then call it (via DB->archive())
from ssl_prune_sessions() in lib/ssl.c.
- prayer-db-prune thus unnecessary.
* template_find_bug.patch (new): Fix segfault in template_find() when
template_set specifies a non-existing set. Also update default set.
 
-- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
 
prayer (1.2.0-1) unstable; urgency=low
 
* New upstream release featuring a major code reorganisation and a new
template system.
- Drop obsolete folder_list_cosmetics.patch and includes.patch.
- Note: SSL support has been removed from prayer-accountd for now.
* Changed defaults (manual intervention may be needed):
- Let prayer-accountd.pid reside in /var/run; letting the two packages
share /var/run/prayer caused too much trouble.
- prayer.cf (makefile_install_config.patch and debian/Config):
var_prefix set to /var/run/prayer and referred to in other
settings. socket_split_dir disabled by default and default sockets
directory changed to /var/run/prayer/sockets.
* debian/control:
+ Build-depend on latest Berkley DB library (libdb-dev).
+ Add Homepage field.
* repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
environment when upgrading from a version of Prayer that used an older
BDB library.
* prayer.postinst: Set HOME of prayer user to /var/run/prayer.
* prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
on remove or disappear and correctly remove statoverrides (Closes: #483176).
Also check that deluser exists; it may be gone at purge time.
* Package build details:
- Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
- Override CDBS overriding CFLAGS.
* debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
not to be used.
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
 
prayer (1.1.0-2) unstable; urgency=low
 
* Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
used.
* makefile_install_config.patch: Modify prayer/Makefile so that the
above definition isn't lost if CFLAGS is overridden.
* Improve prayer.postrm to clean /var/run/prayer on removal and
disappearence.
* Use dpkg-override to allow the administrator to change mode of
/var/run/prayer and /var/log/prayer.
* Add postinst and postrm scripts for prayer-accountd.
* makefile_install_config.patch: Set authtype = pam in accountd.cf so
that accountd will start.
* Bump Standards-Version to 3.7.3. No changes necessary.
* Override Lintian warnings about GPL code linked with OpenSSL. Special
exception has been granted.
* Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
 
-- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
 
prayer (1.1.0-1) unstable; urgency=low
 
* First upload to unstable.
* New upstream release.
+ Requires development version of the c-client library (libc-client2007-dev).
- Drop pidfiles_extension.patch, session_unix_bugs.patch,
session_server_bugs.patch; all incorporated upstream.
- Drop ipv6.patch; incorporated upstream.
- Drop utf8.patch; incorporated and improved upstream.
- Drop hasnochildren_means_noinferiors.patch since upstream now
handles dual-use mailboxes.
* New maintainer email address.
* Update README.Debian, removing lies about TLS not being possible to
disable (Closes: #440462).
* folder_list_cosmetics.patch: Remove space between expand/collapse
arrow and folder icon in the folder list and change the alt texts so
that the tree looks nicer in text browsers.
 
-- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
 
prayer (1.0.18-1) experimental; urgency=low
 
* Initial release (Closes: #392823)
 
-- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
/tags/1.3.5-dfsg1-4/debian/compat
0,0 → 1,0
9
/tags/1.3.5-dfsg1-4/debian/control
0,0 → 1,96
Source: prayer
Section: mail
Priority: optional
Maintainer: Magnus Holmgren <holmgren@debian.org>
Build-Depends: debhelper (>= 9), libc-client2007e-dev | libc-client-dev,
libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev, libtidy-dev
Standards-Version: 3.9.8
Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
Vcs-Browser: http://svn.kibibyte.se/prayer
Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
 
Package: prayer
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
lsb-base (>= 3.0-6), logrotate, exim4 | mail-transport-agent
Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
Description: standalone IMAP-based webmail server
Prayer is yet another Webmail interface.
.
It is unusual in that it is a complete, standalone, HTTP server and proxy
rather a Apache/mod_php plugin. Prayer maintains persistent connections to
the IMAP server and is written entirely in C. Consequently it is much
faster than most open source Webmail interfaces and puts very little load
on either the machines running the Web server or the backend IMAP servers
(even if traditional Unix format mailfolders are in use).
.
Prayer has very few external dependencies as user preferences are stored on
the IMAP server rather than in a SQL database. It does however implement a
full range of features and user preference settings.
 
Package: prayer-templates-src
Architecture: all
Depends: ${misc:Depends}
Recommends: prayer (>= 1.3.0)
Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
Breaks: prayer-templates (<< 1.3.2-dfsg1-2)
Suggests: prayer-templates-dev
Description: templates for customizing Prayer Webmail
Prayer is yet another Webmail interface.
.
It is unusual in that it is a complete, standalone, HTTP server and proxy
rather a Apache/mod_php plugin. Prayer maintains persistent connections to
the IMAP server and is written entirely in C. Consequently it is much
faster than most open source Webmail interfaces and puts very little load
on either the machines running the Web server or the backend IMAP servers
(even if traditional Unix format mailfolders are in use).
.
This package contains, in source form, the templates for the HTML
that Prayer outputs.
.
As all the templates are included with the main prayer package in
compiled form, you only need to install this package if you need to
customize one or more pages and you want something to start from.
 
Package: prayer-templates-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
Suggests: prayer-templates-src, prayer
Description: tools for compiling Prayer templates
Prayer is yet another Webmail interface.
.
It is unusual in that it is a complete, standalone, HTTP server and proxy
rather a Apache/mod_php plugin. Prayer maintains persistent connections to
the IMAP server and is written entirely in C. Consequently it is much
faster than most open source Webmail interfaces and puts very little load
on either the machines running the Web server or the backend IMAP servers
(even if traditional Unix format mailfolders are in use).
.
Prayer uses its own macro expansion language for the HTML it
outputs. This package contains the programs and scripts needed to
build template libraries, as well as a makefile to facilitate the
process.
 
Package: prayer-accountd
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-6)
Suggests: prayer
Recommends: exim4
Description: account management daemon for Prayer
Prayer is yet another Webmail interface.
.
It is unusual in that it is a complete, standalone, HTTP server and proxy
rather a Apache/mod_php plugin. Prayer maintains persistent connections to
the IMAP server and is written entirely in C. Consequently it is much
faster than most open source Webmail interfaces and puts very little load
on either the machines running the Web server or the backend IMAP servers
(even if traditional Unix format mailfolders are in use).
.
This package contains a daemon that can do the following for users:
.
* Change passwords
* Change their full name
* Manage mail filtering (requires Exim) and forwarding
* Manage vacation messages and logs
.
NOTE: This package is currently not very useful.
/tags/1.3.5-dfsg1-4/debian/rules
0,0 → 1,19
#!/usr/bin/make -f
%:
dh $@ -Smakefile
 
override_dh_auto_clean:
$(MAKE) clean MAKE=$(MAKE)
cp defaults/Config .
 
override_dh_auto_configure:
cp debian/Config .
 
override_dh_auto_install:
dh_auto_install -- BROOT=$(CURDIR)/debian/tmp
 
override_dh_installchangelogs:
dh_installchangelogs docs/DONE
 
override_dh_installman:
dh_installman --language=C
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.5-dfsg1-4/debian/prayer.postrm
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.postrm (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x "`which deluser 2>/dev/null`" ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.5-dfsg1-4/debian/patches/openssl1.1.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/openssl1.1.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/openssl1.1.patch (revision 180)
@@ -0,0 +1,119 @@
+Bug-Debian: https://bugs.debian.org/828512
+Description: Support OpenSSL 1.1 API changes
+ SSL_CTX_set_tmp_rsa_callback() (used for export-weakened keys) no longer does anything.
+
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -78,17 +78,6 @@ static void os_initialize_prng(struct ss
+ int totbytes = 0;
+ int bytes;
+
+- if (ssl_config->egd_socket) {
+- if ((bytes = RAND_egd(ssl_config->egd_socket)) == -1) {
+- log_fatal("EGD Socket %s failed", ssl_config->egd_socket);
+- } else {
+- totbytes += bytes;
+- log_debug("Snagged %d random bytes from EGD Socket %s",
+- bytes, ssl_config->egd_socket);
+- goto SEEDED; /* ditto */
+- }
+- }
+-
+ /* Try the good-old default /dev/urandom, if available */
+ totbytes += add_rand_file("/dev/urandom");
+ if (prng_seeded(totbytes)) {
+@@ -212,6 +201,8 @@ static int new_session_cb(SSL * ssl, SSL
+ unsigned char *data = NULL, *asn;
+ time_t expire;
+ int ret = -1;
++ unsigned int session_id_length;
++ unsigned char *session_id = SSL_SESSION_get_id(sess, &session_id_length);
+
+ if (!sess_dbopen)
+ return 0;
+@@ -241,8 +232,7 @@ static int new_session_cb(SSL * ssl, SSL
+ if (data && len) {
+ /* store the session in our database */
+ do {
+- ret = DB->store(sessdb, (void *) sess->session_id,
+- sess->session_id_length,
++ ret = DB->store(sessdb, (void *) session_id, session_id_length,
+ (void *) data, len + sizeof(time_t), NULL);
+ }
+ while (ret == MYDB_AGAIN);
+@@ -255,8 +245,8 @@ static int new_session_cb(SSL * ssl, SSL
+ if (ssl_verbose_logging) {
+ int i;
+ char idstr[SSL_MAX_SSL_SESSION_ID_LENGTH * 2 + 1];
+- for (i = 0; i < sess->session_id_length; i++)
+- sprintf(idstr + i * 2, "%02X", sess->session_id[i]);
++ for (i = 0; i < session_id_length; i++)
++ sprintf(idstr + i * 2, "%02X", session_id[i]);
+
+ log_debug("new SSL session: id=%s, expire=%s, status=%s",
+ idstr, ctime(&expire), ret ? "failed" : "ok");
+@@ -298,7 +288,10 @@ static void remove_session(unsigned char
+ */
+ static void remove_session_cb(SSL_CTX * ctx, SSL_SESSION * sess)
+ {
+- remove_session(sess->session_id, sess->session_id_length);
++ unsigned int session_id_length;
++ unsigned char *session_id = SSL_SESSION_get_id(sess, &session_id_length);
++
++ remove_session(session_id, session_id_length);
+ }
+
+ /*
+@@ -398,9 +391,6 @@ void ssl_context_init(struct ssl_config
+ /* SSLv3 now also obsolete */
+ SSL_CTX_set_options(client_ctx, SSL_OP_NO_SSLv3);
+
+- if (SSL_CTX_need_tmp_RSA(client_ctx))
+- SSL_CTX_set_tmp_rsa_callback(client_ctx, rsa_callback);
+-
+ /* Don't bother with session cache for client side: not enough
+ * connections to worry about caching */
+ SSL_CTX_set_session_cache_mode(client_ctx, SSL_SESS_CACHE_OFF);
+@@ -509,10 +499,6 @@ void ssl_context_init(struct ssl_config
+ log_fatal("SSL_CTX_set_options(SSL_OP_CIPHER_SERVER_PREFERENCE)"
+ "failed");
+
+- /* Set up RSA temporary key callback routine */
+- if (SSL_CTX_need_tmp_RSA(server_ctx))
+- SSL_CTX_set_tmp_rsa_callback(server_ctx, rsa_callback);
+-
+ /* Initialise RSA temporary key (will take a couple of secs to complete) */
+ ssl_init_rsakey(ssl_config);
+ }
+@@ -621,7 +607,7 @@ void *ssl_start_server(int fd, unsigned
+ else
+ log_debug("SSL: No client certificate");
+
+- switch (ssl->session->ssl_version) {
++ switch (SSL_version(ssl)) {
+ case SSL2_VERSION:
+ ver = "SSLv2";
+ break;
+@@ -680,7 +666,7 @@ void *ssl_start_client(int fd, unsigned
+
+ /* Verify certificate here? Need local context to play with? */
+
+- switch (((SSL *) ssl)->session->ssl_version) {
++ switch (SSL_version(ssl)) {
+ case SSL2_VERSION:
+ ver = "SSLv2";
+ break;
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -455,9 +455,9 @@ static struct {
+ "draft_att_total_max", config_number, OFFSET(draft_att_total_max)}
+ , {
+ "dualuse", config_bool, OFFSET(dualuse)}
+- , {
++ , /*{
+ "egd_socket", config_path, OFFSET(egd_socket)}
+- , {
++ , */{
+ "expunge_on_exit", config_bool, OFFSET(expunge_on_exit)}
+ , {
+ "fatal_dump_core", config_bool, OFFSET(fatal_dump_core)}
Index: 1.3.5-dfsg1-4/debian/patches/series
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/series (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/series (revision 180)
@@ -0,0 +1,10 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+unbrand_accountd.patch
+template_sdk.patch
+no_db_version_check.patch
+hurd.patch
+disable_ssl3.patch
+openssl1.1.patch
Index: 1.3.5-dfsg1-4/debian/patches/disable_ssl3.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/disable_ssl3.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/disable_ssl3.patch (revision 180)
@@ -0,0 +1,58 @@
+Description: Disable SSL 3.0 on client as well as server side
+Author: Magnus Holmgren <holmgren@debian.org>
+
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -387,12 +387,16 @@ void ssl_context_init(struct ssl_config
+ SSL_load_error_strings();
+
+ /* Set up client context: only used by accountd */
+- client_ctx = SSL_CTX_new(SSLv3_client_method());
++ client_ctx = SSL_CTX_new(SSLv23_client_method());
+ SSL_CTX_set_session_cache_mode(client_ctx, SSL_SESS_CACHE_BOTH);
+ SSL_CTX_set_info_callback(client_ctx, info_callback);
+ #ifdef SSL_MODE_AUTO_RETRY
+ SSL_CTX_set_mode(client_ctx, SSL_MODE_AUTO_RETRY);
+ #endif
++ /* SSLv2 now obsolete */
++ SSL_CTX_set_options(client_ctx, SSL_OP_NO_SSLv2);
++ /* SSLv3 now also obsolete */
++ SSL_CTX_set_options(client_ctx, SSL_OP_NO_SSLv3);
+
+ if (SSL_CTX_need_tmp_RSA(client_ctx))
+ SSL_CTX_set_tmp_rsa_callback(client_ctx, rsa_callback);
+@@ -420,6 +424,8 @@ void ssl_context_init(struct ssl_config
+
+ /* SSLv2 now obsolete */
+ SSL_CTX_set_options(server_ctx, SSL_OP_NO_SSLv2);
++ /* SSLv3 now also obsolete */
++ SSL_CTX_set_options(server_ctx, SSL_OP_NO_SSLv3);
+
+ /* Start off with the session cache disabled */
+ SSL_CTX_set_session_cache_mode(server_ctx, SSL_SESS_CACHE_OFF);
+@@ -625,6 +631,12 @@ void *ssl_start_server(int fd, unsigned
+ case TLS1_VERSION:
+ ver = "TLSv1";
+ break;
++ case TLS1_1_VERSION:
++ ver = "TLSv1.1";
++ break;
++ case TLS1_2_VERSION:
++ ver = "TLSv1.2";
++ break;
+ default:
+ ver = "UNKNOWN";
+ }
+@@ -678,6 +690,12 @@ void *ssl_start_client(int fd, unsigned
+ case TLS1_VERSION:
+ ver = "TLSv1";
+ break;
++ case TLS1_1_VERSION:
++ ver = "TLSv1.1";
++ break;
++ case TLS1_2_VERSION:
++ ver = "TLSv1.2";
++ break;
+ default:
+ ver = "UNKNOWN";
+ }
Index: 1.3.5-dfsg1-4/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,241 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++MYCFLAGS = $(BASECFLAGS) -fPIC
++MYLDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++MYLDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,8 +115,14 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+- $(CC) $(CFLAGS) -I../../lib -c $<
++ $(CC) $(MYCFLAGS) -I../../lib -c $<
+
+ _template_index_frontend.c:
+ ../src/build_index.pl $(TYPE) $(T_FILES_FRONTEND) > _template_index_frontend.c
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++MYCFLAGS = $(BASECFLAGS) -fPIC
++MYLDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++MYLDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,8 +114,14 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+- $(CC) $(CFLAGS) -I../../lib -c $<
++ $(CC) $(MYCFLAGS) -I../../lib -c $<
+
+ _template_index_frontend.c:
+ ../src/build_index.pl $(TYPE) $(T_FILES_FRONTEND) > _template_index_frontend.c
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -60,8 +60,8 @@ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+ endif
+ endif
+
+-PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS)
+-SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS)
++PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS) -ldl
++SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS) -ldl
+
+ # Add SSL if c-client needs SSL
+ ifeq ($(strip $(CCLIENT_SSL_ENABLE)), true)
+@@ -90,15 +90,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -146,6 +146,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
+--- a/servers/prayer_shared.h
++++ b/servers/prayer_shared.h
+@@ -44,3 +44,4 @@ extern int errno; /* just
+ #include "mymutex.h"
+ #include "log.h"
+ #include "utf8.h"
++#include "dlopen_templates.h"
Index: 1.3.5-dfsg1-4/debian/patches/hurd.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/hurd.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/hurd.patch (revision 180)
@@ -0,0 +1,27 @@
+--- a/lib/setproctitle.h
++++ b/lib/setproctitle.h
+@@ -8,7 +8,9 @@
+
+ #include <sys/param.h>
+
+-#ifdef __linux__
++#if defined(__GNU__)
++# define SPT_TYPE SPT_CHANGEARGV
++#elif defined(__linux__)
+ # define SPT_TYPE SPT_REUSEARGV
+ # define SPT_PADCHAR '\0' /* pad process title with nulls */
+ #elif (defined(BSD) && BSD >= 199306)
+--- a/accountd/authenticate.c
++++ b/accountd/authenticate.c
+@@ -8,11 +8,7 @@
+
+ #include "accountd.h"
+
+-#ifdef BSD4_4
+-#define HAVE_SHADOW 0
+-#else
+ #define HAVE_SHADOW 1
+-#endif
+
+ #include <pwd.h>
+ #if HAVE_SHADOW
Index: 1.3.5-dfsg1-4/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,170 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,8 +282,9 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+@@ -374,13 +375,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
+-
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -409,10 +412,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -420,7 +424,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -434,7 +438,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -452,7 +456,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -601,14 +605,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.3.5-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -455,7 +455,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.5-dfsg1-4/debian/patches/sighandling.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,67 @@
+--- a/lib/os.h
++++ b/lib/os.h
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+--- a/servers/session_server.c
++++ b/servers/session_server.c
+@@ -286,6 +286,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -348,6 +349,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+--- a/shared/log.c
++++ b/shared/log.c
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+--- a/shared/log.h
++++ b/shared/log.h
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.5-dfsg1-4/debian/patches/template_sdk.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,195 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB) $(BASE_LIBS)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB) $(BASE_LIBS)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- a/templates/src/makedeps.pl
++++ b/templates/src/makedeps.pl
+@@ -4,51 +4,44 @@
+ #
+ # Generate proper list of dependancies between templates
+
+-%uses = ();
++my %index = ();
++my %uses = ();
+
+-while ($file=shift(@ARGV)) {
+- $file = $1 if ($file =~ /([\w-_]+)\.t/);
++sub scan {
++ my ($file) = @_;
+
+- open(FILE, "<${file}.t") or die "failed to open ${file}: $!\n";
+-
+- while (<FILE>) {
+- next unless /^%\s+CALL ([\w-_]+)/;
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
+
+- $uses{$file} = [] if (not $uses{$file});
+- push(@{$uses{$file}}, $1);
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
+ }
+-
+- close(FILE);
++ return $uses{$file}
+ }
+
+-foreach $i (sort keys %uses) {
+- # Sort and uniq
+- @{$uses{$i}} = keys %{{ map { $_ => 1 } sort(@{$uses{$i}}) }};
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
+ }
++my $name = shift;
+
+-foreach $i (sort keys %uses) {
+- printf("%s.html: %s.t", $i, $i);
+- foreach $j (@{$uses{$i}}) {
+- @list = ();
+- recurse($j, {}, \@list);
+- foreach $k (@list) {
+- printf(" %s.t", $k);
+- }
+- }
+- printf("\n");
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
+ }
+
+-exit(0);
+-
+-sub recurse {
+- my ($i, $usedref, $listref) = @_;
+-
+- # Remove repeated references to any given template/
+- return if defined($$usedref{$i});
+- $$usedref{$i} = 1;
+-
+- push (@{$listref}, $i);
+- foreach $j (@{$uses{$i}}) {
+- recurse($j, $usedref, $listref);
+- }
+-}
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.5-dfsg1-4/debian/patches/unbrand_accountd.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/unbrand_accountd.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/unbrand_accountd.patch (revision 180)
@@ -0,0 +1,32 @@
+--- a/accountd/filter.c
++++ b/accountd/filter.c
+@@ -266,7 +266,6 @@ filter_print_vacation(struct config *con
+
+ fprintf(file, "# MSshell :: vacation\n");
+ fprintf(file, "if personal\n");
+- fprintf(file, " alias %s@cam.ac.uk\n", pwd->pw_name);
+
+ if (!filter_print_aliases(config, file))
+ return (NIL);
+@@ -278,7 +277,7 @@ filter_print_vacation(struct config *con
+ fprintf(file, ("This message is automatically generated "
+ "in response to your mail\\n\\" "\n"));
+ fprintf(file, ("message (perhaps re-directed) to "
+- "$local_part@hermes.cam.ac.uk.\\n\\n\"\n"));
++ "$local_part@$local_domain.\\n\\n\"\n"));
+ fprintf(file, " file ${home}/vacation.message\n");
+ fprintf(file, " log ${home}/vacation.log\n");
+ fprintf(file, " once ${home}/vacation.once\n");
+@@ -307,10 +306,10 @@ filter_print_spam(struct config *config,
+ threshold = atoi(filter->threshold);
+
+ /* XXX (threshold == 0) okay? */
+- fprintf(file, "if $h_X-Cam-SpamScore contains \"");
++ fprintf(file, "if $h_X-Spam-Level contains \"");
+
+ for (i=0 ; i < threshold; i++)
+- fputc('s', file);
++ fputc('*', file);
+
+ fprintf(file, "\" then\n");
+ fprintf(file, " save mail/spam\n");
Index: 1.3.5-dfsg1-4/debian/patches/no_db_version_check.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/no_db_version_check.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/no_db_version_check.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -190,21 +190,10 @@ static int myinit(const char *dbdir, int
+
+ static int init(const char *dbdir, int myflags)
+ {
+- int maj, min, patch;
+- char *vstr;
+ int r;
+
+ if (dbinit++) return 0;
+
+- vstr = db_version(&maj, &min, &patch);
+- if (maj != DB_VERSION_MAJOR || min != DB_VERSION_MINOR ||
+- DB_VERSION_PATCH > patch) {
+- log_fatal("incorrect version of Berkeley db: "
+- "compiled against %d.%d.%d, linked against %d.%d.%d",
+- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+- maj, min, patch);
+- }
+-
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
Index: 1.3.5-dfsg1-4/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.5-dfsg1-4/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.5-dfsg1-4/debian/Config
===================================================================
--- 1.3.5-dfsg1-4/debian/Config (nonexistent)
+++ 1.3.5-dfsg1-4/debian/Config (revision 180)
@@ -0,0 +1,154 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+TIDY_ENABLE = true # Use libtidy for HTML sanitisation
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = false # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Tidy library (required if TIDY_ENABLE set)
+TIDY_INCLUDE=-I/usr/include/tidy
+TIDY_LIBS=-ltidy
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.5-dfsg1-4/debian/watch
===================================================================
--- 1.3.5-dfsg1-4/debian/watch (nonexistent)
+++ 1.3.5-dfsg1-4/debian/watch (revision 180)
@@ -0,0 +1,4 @@
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.5-dfsg1-4/debian/copyright
===================================================================
--- 1.3.5-dfsg1-4/debian/copyright (nonexistent)
+++ 1.3.5-dfsg1-4/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2011 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.5-dfsg1-4/debian/prayer-accountd.8
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-accountd.8 (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-accountd.8 (revision 180)
@@ -0,0 +1,78 @@
+.Dd 27 March 2011
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-ACCOUNTD 8
+.Sh NAME
+.Nm prayer-accountd
+.Nd Prayer system account helper daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -enable-fork | -disable-fork
+.
+.Sh DESCRIPTION
+.Nm
+is an auxilliary daemon that allows users to perform various tasks
+with respect to their UNIX system account:
+.Bl -bullet
+.It
+Change passwords
+.It
+Change their name
+.It
+Check filesystem quota
+.El
+.Pp
+Furthermore it can help users set up an
+.Sy ( Exim-only )
+.Pa .forward
+file for Spam filtering, vacation auto-replies etc.
+.Pp
+.Nm
+can be installed on a separate host from the main Prayer services if necessary.
+It needs to be able to run
+.Xr passwd 1 ,
+.Xr chfn 1 ,
+and
+.Xr quota 1
+for the user, and access users' home directories.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -enable-fork
+Fork subprocesses as requests come in. This is the default.
+.It Fl -disable-fork
+Don't fork; process one request in at the time (debug mode).
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/accountd.cf
+Default configuration file.
+.El
+.
+.Sh BUGS
+.Nm
+is rather customized to the needs of the University of Cambridge,
+though some patches have been applied to the Debian package. System
+administrators should study the source code to see what this means.
+.
+.Sh AUTHORS
+.
+This introductory manual page was put together for Debian by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org> .
Index: 1.3.5-dfsg1-4/debian/prayer-accountd.manpages
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-accountd.manpages (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-accountd.manpages (revision 180)
@@ -0,0 +1 @@
+debian/prayer-accountd.8
Index: 1.3.5-dfsg1-4/debian/source/format
===================================================================
--- 1.3.5-dfsg1-4/debian/source/format (nonexistent)
+++ 1.3.5-dfsg1-4/debian/source/format (revision 180)
@@ -0,0 +1 @@
+3.0 (quilt)
Index: 1.3.5-dfsg1-4/debian/prayer-accountd.init
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-accountd.init (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg1-4/debian/prayer.init
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.init (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg1-4/debian/prayer-templates-dev.install
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,5 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer/template_structs.h
+/usr/include/prayer/misc.h
+/usr/share/prayer/*.make
Index: 1.3.5-dfsg1-4/debian/prayer-templates-src.install
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.5-dfsg1-4/debian/prayer-templates-src.docs
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg1-4/debian/prayer.docs
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.docs (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg1-4/debian/prayer.NEWS
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.NEWS (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.5-dfsg1-4/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.5-dfsg1-4/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg1-4/debian/prayer.install
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.install (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.5-dfsg1-4/debian/prayer.dirs
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.dirs (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.5-dfsg1-4/debian/prayer.links
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.links (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.5-dfsg1-4/debian/README.Debian
===================================================================
--- 1.3.5-dfsg1-4/debian/README.Debian (nonexistent)
+++ 1.3.5-dfsg1-4/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.5-dfsg1-4/debian/prayer.manpages
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.manpages (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.5-dfsg1-4/debian/prayer.postinst
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.postinst (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.5-dfsg1-4/debian/prayer.default
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.default (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.5-dfsg1-4/debian/prayer.examples
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.examples (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.5-dfsg1-4/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg1-4/debian/prayer.lintian-overrides
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg1-4/debian/prayer-accountd.docs
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg1-4/debian/prayer.logrotate
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer.logrotate (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.5-dfsg1-4/debian/prayer-accountd.install
===================================================================
--- 1.3.5-dfsg1-4/debian/prayer-accountd.install (nonexistent)
+++ 1.3.5-dfsg1-4/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.5-dfsg1-4/debian
===================================================================
--- 1.3.5-dfsg1-4/debian (nonexistent)
+++ 1.3.5-dfsg1-4/debian (revision 180)
/1.3.5-dfsg1-4/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.5-dfsg1-4
===================================================================
--- 1.3.5-dfsg1-4 (nonexistent)
+++ 1.3.5-dfsg1-4 (revision 180)
/1.3.5-dfsg1-4
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.5-dfsg1-3/debian/Config
===================================================================
--- 1.3.5-dfsg1-3/debian/Config (nonexistent)
+++ 1.3.5-dfsg1-3/debian/Config (revision 180)
@@ -0,0 +1,154 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+TIDY_ENABLE = true # Use libtidy for HTML sanitisation
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = false # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Tidy library (required if TIDY_ENABLE set)
+TIDY_INCLUDE=-I/usr/include/tidy
+TIDY_LIBS=-ltidy
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.5-dfsg1-3/debian/changelog
===================================================================
--- 1.3.5-dfsg1-3/debian/changelog (nonexistent)
+++ 1.3.5-dfsg1-3/debian/changelog (revision 180)
@@ -0,0 +1,411 @@
+prayer (1.3.5-dfsg1-3) unstable; urgency=low
+
+ * disable_ssl3.patch (new): Disable SSL 3.0 due to CVE-2014-3566
+ (POODLE).
+ * debian/Config: Disable ACCOUNTD_SSL_ENABLE since the SSL/TLS support
+ in prayer-accountd and prayer-session is incomplete and never was
+ functional.
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 29 Oct 2014 22:32:18 +0100
+
+prayer (1.3.5-dfsg1-2) unstable; urgency=high
+
+ * dlopen_templates.patch: Use MYCFLAGS (which is initialized to the
+ value of CFLAGS from dpkg-buildflags in the Config file) instead of
+ CFLAGS in templates/{src,cam,old}/Makefile (Closes: #715310, LP:
+ #1201216). The --defsym options were lost when we let CDBS override
+ CFLAGS in the previous upload.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 18 Jul 2013 22:47:08 +0200
+
+prayer (1.3.5-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Refresh patches.
+ * Drop dummy package prayer-templates.
+ * No longer override CDBS overriding CFLAGS, thereby allowing hardening
+ flags to be properly propagated. I think it caused internal include
+ flags to be lost, but since at least 1.3.2 that's no longer the case.
+ * Bump Standards-Version to 3.9.4.
+ * hurd.patch: Always define HAVE_SHADOW. The test for BSD4_4 seems
+ bogus; it is defined on Hurd, but crypt(3) is available there.
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 12 Jun 2013 00:09:05 +0200
+
+prayer (1.3.4-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop ipv6_v6only.patch; fixed upstream.
+ * template_sdk.patch: templates/src/build_index.pl no longer need to
+ be patched.
+ * Bump Standards-Version to 3.9.2.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 27 Aug 2011 22:24:50 +0200
+
+prayer (1.3.3-dfsg1-4) unstable; urgency=low
+
+ * Merge ld-as-needed.diff from Ubuntu into dlopen_templates.patch
+ (Closes: #607559).
+ * dlopen_templates.patch: Add missing #include "dlopen_templates.h" to
+ servers/prayer_shared.h.
+ * hurd.patch (new): Use the SPT_CHANGEARGV implementation of
+ setproctitle() on the Hurd.
+ * Add basic manpage for prayer-accountd(8).
+ * unbrand_accountd.patch: Remove some Cambridge-specific parts of the
+ filter handling.
+ * Drop obsolete Build-Depends alternative libc-client2007b-dev.
+ * Increase Debhelper compat level to 7.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Mar 2011 22:49:18 +0200
+
+prayer (1.3.3-dfsg1-3ubuntu1) natty; urgency=low
+
+ * Fix FTBFS with ld --as-needed.
+
+ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Dec 2010 19:07:04 +0100
+
+prayer (1.3.3-dfsg1-3) unstable; urgency=high
+
+ * ipv6_v6only.patch (new): Set the IPV6_V6ONLY socket option on
+ AF_INET6 sockets; since Prayer by default enumerates available address
+ families and calls bind() once for each, conflicts will occur
+ otherwise (Closes: #607261).
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 16 Dec 2010 20:16:41 +0100
+
+prayer (1.3.3-dfsg1-2) unstable; urgency=high
+
+ * Convert (trivially, since CDBS with quilt was already used) to source
+ format 3.0 (quilt).
+ * no_db_version_check.patch: Remove unnecessary and incorrect check that
+ not only the major and minor version numbers of the current libdb are
+ the same as at compile time, but also that the patch number is equal
+ or greater, which should not be a concern (Closes: #592119).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 07 Aug 2010 21:07:53 +0200
+
+prayer (1.3.3-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Dropped kfreebsd.patch, clean_completely.patch, and
+ manpage_error.patch; all incorporated upstream.
+ * makefile_install_config.patch: Updated; some parts incorporated
+ upstream.
+ * prayer-templates-dev.install: Only template_structs.h and misc.h
+ needed henceforth, since only those files are #included by compiled
+ templates.
+ * template_sdk.patch: The #include that templates/src/build_index.pl
+ generates was not changed, though.
+ * debian/Config, debian/control: Enable libtidy for HTML parsing and
+ sanitisation, fixing certain XSS problems, which were due to simple
+ substring matching being used.
+ * prayer.init, prayer-accountd.init: Add $remote_fs to, and move
+ $local_fs to, Required-Start.
+ * Upgrade to Standards-Version 3.9.0:
+ * Use Breaks instead of Conflicts to handle the renaming of
+ prayer-templates.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 22 Jul 2010 03:27:52 +0200
+
+prayer (1.3.2-dfsg1-4) unstable; urgency=low
+
+ * Undo inadvertent inclusion of /usr/include/prayer in
+ prayer-templates-src (Closes: #557056).
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
+
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.5-dfsg1-3/debian/control
===================================================================
--- 1.3.5-dfsg1-3/debian/control (nonexistent)
+++ 1.3.5-dfsg1-3/debian/control (revision 180)
@@ -0,0 +1,97 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 7),
+ libc-client2007e-dev | libc-client-dev,
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev, libtidy-dev
+Standards-Version: 3.9.4
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Breaks: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.5-dfsg1-3/debian/patches/disable_ssl3.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/disable_ssl3.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/disable_ssl3.patch (revision 180)
@@ -0,0 +1,58 @@
+Description: Disable SSL 3.0 on client as well as server side
+Author: Magnus Holmgren <holmgren@debian.org>
+
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -387,12 +387,16 @@ void ssl_context_init(struct ssl_config
+ SSL_load_error_strings();
+
+ /* Set up client context: only used by accountd */
+- client_ctx = SSL_CTX_new(SSLv3_client_method());
++ client_ctx = SSL_CTX_new(SSLv23_client_method());
+ SSL_CTX_set_session_cache_mode(client_ctx, SSL_SESS_CACHE_BOTH);
+ SSL_CTX_set_info_callback(client_ctx, info_callback);
+ #ifdef SSL_MODE_AUTO_RETRY
+ SSL_CTX_set_mode(client_ctx, SSL_MODE_AUTO_RETRY);
+ #endif
++ /* SSLv2 now obsolete */
++ SSL_CTX_set_options(client_ctx, SSL_OP_NO_SSLv2);
++ /* SSLv3 now also obsolete */
++ SSL_CTX_set_options(client_ctx, SSL_OP_NO_SSLv3);
+
+ if (SSL_CTX_need_tmp_RSA(client_ctx))
+ SSL_CTX_set_tmp_rsa_callback(client_ctx, rsa_callback);
+@@ -420,6 +424,8 @@ void ssl_context_init(struct ssl_config
+
+ /* SSLv2 now obsolete */
+ SSL_CTX_set_options(server_ctx, SSL_OP_NO_SSLv2);
++ /* SSLv3 now also obsolete */
++ SSL_CTX_set_options(server_ctx, SSL_OP_NO_SSLv3);
+
+ /* Start off with the session cache disabled */
+ SSL_CTX_set_session_cache_mode(server_ctx, SSL_SESS_CACHE_OFF);
+@@ -625,6 +631,12 @@ void *ssl_start_server(int fd, unsigned
+ case TLS1_VERSION:
+ ver = "TLSv1";
+ break;
++ case TLS1_1_VERSION:
++ ver = "TLSv1.1";
++ break;
++ case TLS1_2_VERSION:
++ ver = "TLSv1.2";
++ break;
+ default:
+ ver = "UNKNOWN";
+ }
+@@ -678,6 +690,12 @@ void *ssl_start_client(int fd, unsigned
+ case TLS1_VERSION:
+ ver = "TLSv1";
+ break;
++ case TLS1_1_VERSION:
++ ver = "TLSv1.1";
++ break;
++ case TLS1_2_VERSION:
++ ver = "TLSv1.2";
++ break;
+ default:
+ ver = "UNKNOWN";
+ }
Index: 1.3.5-dfsg1-3/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,241 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++MYCFLAGS = $(BASECFLAGS) -fPIC
++MYLDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++MYLDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,8 +115,14 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+- $(CC) $(CFLAGS) -I../../lib -c $<
++ $(CC) $(MYCFLAGS) -I../../lib -c $<
+
+ _template_index_frontend.c:
+ ../src/build_index.pl $(TYPE) $(T_FILES_FRONTEND) > _template_index_frontend.c
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++MYCFLAGS = $(BASECFLAGS) -fPIC
++MYLDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++MYLDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,8 +114,14 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+- $(CC) $(CFLAGS) -I../../lib -c $<
++ $(CC) $(MYCFLAGS) -I../../lib -c $<
+
+ _template_index_frontend.c:
+ ../src/build_index.pl $(TYPE) $(T_FILES_FRONTEND) > _template_index_frontend.c
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -60,8 +60,8 @@ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+ endif
+ endif
+
+-PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS)
+-SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS)
++PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS) -ldl
++SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS) -ldl
+
+ # Add SSL if c-client needs SSL
+ ifeq ($(strip $(CCLIENT_SSL_ENABLE)), true)
+@@ -90,15 +90,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -146,6 +146,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
+--- a/servers/prayer_shared.h
++++ b/servers/prayer_shared.h
+@@ -44,3 +44,4 @@ extern int errno; /* just
+ #include "mymutex.h"
+ #include "log.h"
+ #include "utf8.h"
++#include "dlopen_templates.h"
Index: 1.3.5-dfsg1-3/debian/patches/hurd.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/hurd.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/hurd.patch (revision 180)
@@ -0,0 +1,27 @@
+--- a/lib/setproctitle.h
++++ b/lib/setproctitle.h
+@@ -8,7 +8,9 @@
+
+ #include <sys/param.h>
+
+-#ifdef __linux__
++#if defined(__GNU__)
++# define SPT_TYPE SPT_CHANGEARGV
++#elif defined(__linux__)
+ # define SPT_TYPE SPT_REUSEARGV
+ # define SPT_PADCHAR '\0' /* pad process title with nulls */
+ #elif (defined(BSD) && BSD >= 199306)
+--- a/accountd/authenticate.c
++++ b/accountd/authenticate.c
+@@ -8,11 +8,7 @@
+
+ #include "accountd.h"
+
+-#ifdef BSD4_4
+-#define HAVE_SHADOW 0
+-#else
+ #define HAVE_SHADOW 1
+-#endif
+
+ #include <pwd.h>
+ #if HAVE_SHADOW
Index: 1.3.5-dfsg1-3/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,170 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,8 +282,9 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+@@ -374,13 +375,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
+-
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -409,10 +412,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -420,7 +424,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -434,7 +438,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -452,7 +456,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -601,14 +605,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.3.5-dfsg1-3/debian/patches/series
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/series (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/series (revision 180)
@@ -0,0 +1,9 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+unbrand_accountd.patch
+template_sdk.patch
+no_db_version_check.patch
+hurd.patch
+disable_ssl3.patch
Index: 1.3.5-dfsg1-3/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -455,7 +455,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.5-dfsg1-3/debian/patches/sighandling.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,67 @@
+--- a/lib/os.h
++++ b/lib/os.h
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+--- a/servers/session_server.c
++++ b/servers/session_server.c
+@@ -286,6 +286,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -348,6 +349,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+--- a/shared/log.c
++++ b/shared/log.c
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+--- a/shared/log.h
++++ b/shared/log.h
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.5-dfsg1-3/debian/patches/template_sdk.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,195 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB) $(BASE_LIBS)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB) $(BASE_LIBS)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- a/templates/src/makedeps.pl
++++ b/templates/src/makedeps.pl
+@@ -4,51 +4,44 @@
+ #
+ # Generate proper list of dependancies between templates
+
+-%uses = ();
++my %index = ();
++my %uses = ();
+
+-while ($file=shift(@ARGV)) {
+- $file = $1 if ($file =~ /([\w-_]+)\.t/);
++sub scan {
++ my ($file) = @_;
+
+- open(FILE, "<${file}.t") or die "failed to open ${file}: $!\n";
+-
+- while (<FILE>) {
+- next unless /^%\s+CALL ([\w-_]+)/;
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
+
+- $uses{$file} = [] if (not $uses{$file});
+- push(@{$uses{$file}}, $1);
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
+ }
+-
+- close(FILE);
++ return $uses{$file}
+ }
+
+-foreach $i (sort keys %uses) {
+- # Sort and uniq
+- @{$uses{$i}} = keys %{{ map { $_ => 1 } sort(@{$uses{$i}}) }};
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
+ }
++my $name = shift;
+
+-foreach $i (sort keys %uses) {
+- printf("%s.html: %s.t", $i, $i);
+- foreach $j (@{$uses{$i}}) {
+- @list = ();
+- recurse($j, {}, \@list);
+- foreach $k (@list) {
+- printf(" %s.t", $k);
+- }
+- }
+- printf("\n");
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
+ }
+
+-exit(0);
+-
+-sub recurse {
+- my ($i, $usedref, $listref) = @_;
+-
+- # Remove repeated references to any given template/
+- return if defined($$usedref{$i});
+- $$usedref{$i} = 1;
+-
+- push (@{$listref}, $i);
+- foreach $j (@{$uses{$i}}) {
+- recurse($j, $usedref, $listref);
+- }
+-}
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.5-dfsg1-3/debian/patches/unbrand_accountd.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/unbrand_accountd.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/unbrand_accountd.patch (revision 180)
@@ -0,0 +1,32 @@
+--- a/accountd/filter.c
++++ b/accountd/filter.c
+@@ -266,7 +266,6 @@ filter_print_vacation(struct config *con
+
+ fprintf(file, "# MSshell :: vacation\n");
+ fprintf(file, "if personal\n");
+- fprintf(file, " alias %s@cam.ac.uk\n", pwd->pw_name);
+
+ if (!filter_print_aliases(config, file))
+ return (NIL);
+@@ -278,7 +277,7 @@ filter_print_vacation(struct config *con
+ fprintf(file, ("This message is automatically generated "
+ "in response to your mail\\n\\" "\n"));
+ fprintf(file, ("message (perhaps re-directed) to "
+- "$local_part@hermes.cam.ac.uk.\\n\\n\"\n"));
++ "$local_part@$local_domain.\\n\\n\"\n"));
+ fprintf(file, " file ${home}/vacation.message\n");
+ fprintf(file, " log ${home}/vacation.log\n");
+ fprintf(file, " once ${home}/vacation.once\n");
+@@ -307,10 +306,10 @@ filter_print_spam(struct config *config,
+ threshold = atoi(filter->threshold);
+
+ /* XXX (threshold == 0) okay? */
+- fprintf(file, "if $h_X-Cam-SpamScore contains \"");
++ fprintf(file, "if $h_X-Spam-Level contains \"");
+
+ for (i=0 ; i < threshold; i++)
+- fputc('s', file);
++ fputc('*', file);
+
+ fprintf(file, "\" then\n");
+ fprintf(file, " save mail/spam\n");
Index: 1.3.5-dfsg1-3/debian/patches/no_db_version_check.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/no_db_version_check.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/no_db_version_check.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -190,21 +190,10 @@ static int myinit(const char *dbdir, int
+
+ static int init(const char *dbdir, int myflags)
+ {
+- int maj, min, patch;
+- char *vstr;
+ int r;
+
+ if (dbinit++) return 0;
+
+- vstr = db_version(&maj, &min, &patch);
+- if (maj != DB_VERSION_MAJOR || min != DB_VERSION_MINOR ||
+- DB_VERSION_PATCH > patch) {
+- log_fatal("incorrect version of Berkeley db: "
+- "compiled against %d.%d.%d, linked against %d.%d.%d",
+- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+- maj, min, patch);
+- }
+-
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
Index: 1.3.5-dfsg1-3/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.5-dfsg1-3/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.5-dfsg1-3/debian/rules
===================================================================
--- 1.3.5-dfsg1-3/debian/rules (nonexistent)
+++ 1.3.5-dfsg1-3/debian/rules (revision 180)
@@ -0,0 +1,16 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.5-dfsg1-3/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.5-dfsg1-3/debian/watch
===================================================================
--- 1.3.5-dfsg1-3/debian/watch (nonexistent)
+++ 1.3.5-dfsg1-3/debian/watch (revision 180)
@@ -0,0 +1,4 @@
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.5-dfsg1-3/debian/copyright
===================================================================
--- 1.3.5-dfsg1-3/debian/copyright (nonexistent)
+++ 1.3.5-dfsg1-3/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2011 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.5-dfsg1-3/debian/compat
===================================================================
--- 1.3.5-dfsg1-3/debian/compat (nonexistent)
+++ 1.3.5-dfsg1-3/debian/compat (revision 180)
@@ -0,0 +1 @@
+7
Index: 1.3.5-dfsg1-3/debian/prayer-accountd.8
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-accountd.8 (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-accountd.8 (revision 180)
@@ -0,0 +1,78 @@
+.Dd 27 March 2011
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-ACCOUNTD 8
+.Sh NAME
+.Nm prayer-accountd
+.Nd Prayer system account helper daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -enable-fork | -disable-fork
+.
+.Sh DESCRIPTION
+.Nm
+is an auxilliary daemon that allows users to perform various tasks
+with respect to their UNIX system account:
+.Bl -bullet
+.It
+Change passwords
+.It
+Change their name
+.It
+Check filesystem quota
+.El
+.Pp
+Furthermore it can help users set up an
+.Sy ( Exim-only )
+.Pa .forward
+file for Spam filtering, vacation auto-replies etc.
+.Pp
+.Nm
+can be installed on a separate host from the main Prayer services if necessary.
+It needs to be able to run
+.Xr passwd 1 ,
+.Xr chfn 1 ,
+and
+.Xr quota 1
+for the user, and access users' home directories.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -enable-fork
+Fork subprocesses as requests come in. This is the default.
+.It Fl -disable-fork
+Don't fork; process one request in at the time (debug mode).
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/accountd.cf
+Default configuration file.
+.El
+.
+.Sh BUGS
+.Nm
+is rather customized to the needs of the University of Cambridge,
+though some patches have been applied to the Debian package. System
+administrators should study the source code to see what this means.
+.
+.Sh AUTHORS
+.
+This introductory manual page was put together for Debian by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org> .
Index: 1.3.5-dfsg1-3/debian/prayer-accountd.manpages
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-accountd.manpages (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-accountd.manpages (revision 180)
@@ -0,0 +1 @@
+debian/prayer-accountd.8
Index: 1.3.5-dfsg1-3/debian/source/format
===================================================================
--- 1.3.5-dfsg1-3/debian/source/format (nonexistent)
+++ 1.3.5-dfsg1-3/debian/source/format (revision 180)
@@ -0,0 +1 @@
+3.0 (quilt)
Index: 1.3.5-dfsg1-3/debian/prayer-accountd.init
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-accountd.init (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg1-3/debian/prayer.init
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.init (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg1-3/debian/prayer-templates-dev.install
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,5 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer/template_structs.h
+/usr/include/prayer/misc.h
+/usr/share/prayer/*.make
Index: 1.3.5-dfsg1-3/debian/prayer-templates-src.install
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.5-dfsg1-3/debian/prayer-templates-src.docs
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg1-3/debian/prayer.docs
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.docs (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg1-3/debian/prayer.NEWS
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.NEWS (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.5-dfsg1-3/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.5-dfsg1-3/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg1-3/debian/prayer.install
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.install (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.5-dfsg1-3/debian/prayer.dirs
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.dirs (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.5-dfsg1-3/debian/prayer.links
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.links (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.5-dfsg1-3/debian/README.Debian
===================================================================
--- 1.3.5-dfsg1-3/debian/README.Debian (nonexistent)
+++ 1.3.5-dfsg1-3/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.5-dfsg1-3/debian/prayer.manpages
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.manpages (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.5-dfsg1-3/debian/prayer.postinst
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.postinst (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.5-dfsg1-3/debian/prayer.postrm
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.postrm (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.5-dfsg1-3/debian/prayer.default
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.default (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.5-dfsg1-3/debian/prayer.examples
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.examples (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.5-dfsg1-3/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg1-3/debian/prayer.lintian-overrides
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg1-3/debian/prayer-accountd.docs
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg1-3/debian/prayer.logrotate
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer.logrotate (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.5-dfsg1-3/debian/prayer-accountd.install
===================================================================
--- 1.3.5-dfsg1-3/debian/prayer-accountd.install (nonexistent)
+++ 1.3.5-dfsg1-3/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.5-dfsg1-3/debian
===================================================================
--- 1.3.5-dfsg1-3/debian (nonexistent)
+++ 1.3.5-dfsg1-3/debian (revision 180)
/1.3.5-dfsg1-3/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.5-dfsg1-3
===================================================================
--- 1.3.5-dfsg1-3 (nonexistent)
+++ 1.3.5-dfsg1-3 (revision 180)
/1.3.5-dfsg1-3
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.5-dfsg1-2/debian/watch
===================================================================
--- 1.3.5-dfsg1-2/debian/watch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/watch (revision 180)
@@ -0,0 +1,4 @@
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.5-dfsg1-2/debian/changelog
===================================================================
--- 1.3.5-dfsg1-2/debian/changelog (nonexistent)
+++ 1.3.5-dfsg1-2/debian/changelog (revision 180)
@@ -0,0 +1,401 @@
+prayer (1.3.5-dfsg1-2) unstable; urgency=high
+
+ * dlopen_templates.patch: Use MYCFLAGS (which is initialized to the
+ value of CFLAGS from dpkg-buildflags in the Config file) instead of
+ CFLAGS in templates/{src,cam,old}/Makefile (Closes: #715310, LP:
+ #1201216). The --defsym options were lost when we let CDBS override
+ CFLAGS in the previous upload.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 18 Jul 2013 22:47:08 +0200
+
+prayer (1.3.5-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Refresh patches.
+ * Drop dummy package prayer-templates.
+ * No longer override CDBS overriding CFLAGS, thereby allowing hardening
+ flags to be properly propagated. I think it caused internal include
+ flags to be lost, but since at least 1.3.2 that's no longer the case.
+ * Bump Standards-Version to 3.9.4.
+ * hurd.patch: Always define HAVE_SHADOW. The test for BSD4_4 seems
+ bogus; it is defined on Hurd, but crypt(3) is available there.
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 12 Jun 2013 00:09:05 +0200
+
+prayer (1.3.4-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop ipv6_v6only.patch; fixed upstream.
+ * template_sdk.patch: templates/src/build_index.pl no longer need to
+ be patched.
+ * Bump Standards-Version to 3.9.2.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 27 Aug 2011 22:24:50 +0200
+
+prayer (1.3.3-dfsg1-4) unstable; urgency=low
+
+ * Merge ld-as-needed.diff from Ubuntu into dlopen_templates.patch
+ (Closes: #607559).
+ * dlopen_templates.patch: Add missing #include "dlopen_templates.h" to
+ servers/prayer_shared.h.
+ * hurd.patch (new): Use the SPT_CHANGEARGV implementation of
+ setproctitle() on the Hurd.
+ * Add basic manpage for prayer-accountd(8).
+ * unbrand_accountd.patch: Remove some Cambridge-specific parts of the
+ filter handling.
+ * Drop obsolete Build-Depends alternative libc-client2007b-dev.
+ * Increase Debhelper compat level to 7.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Mar 2011 22:49:18 +0200
+
+prayer (1.3.3-dfsg1-3ubuntu1) natty; urgency=low
+
+ * Fix FTBFS with ld --as-needed.
+
+ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Dec 2010 19:07:04 +0100
+
+prayer (1.3.3-dfsg1-3) unstable; urgency=high
+
+ * ipv6_v6only.patch (new): Set the IPV6_V6ONLY socket option on
+ AF_INET6 sockets; since Prayer by default enumerates available address
+ families and calls bind() once for each, conflicts will occur
+ otherwise (Closes: #607261).
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 16 Dec 2010 20:16:41 +0100
+
+prayer (1.3.3-dfsg1-2) unstable; urgency=high
+
+ * Convert (trivially, since CDBS with quilt was already used) to source
+ format 3.0 (quilt).
+ * no_db_version_check.patch: Remove unnecessary and incorrect check that
+ not only the major and minor version numbers of the current libdb are
+ the same as at compile time, but also that the patch number is equal
+ or greater, which should not be a concern (Closes: #592119).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 07 Aug 2010 21:07:53 +0200
+
+prayer (1.3.3-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Dropped kfreebsd.patch, clean_completely.patch, and
+ manpage_error.patch; all incorporated upstream.
+ * makefile_install_config.patch: Updated; some parts incorporated
+ upstream.
+ * prayer-templates-dev.install: Only template_structs.h and misc.h
+ needed henceforth, since only those files are #included by compiled
+ templates.
+ * template_sdk.patch: The #include that templates/src/build_index.pl
+ generates was not changed, though.
+ * debian/Config, debian/control: Enable libtidy for HTML parsing and
+ sanitisation, fixing certain XSS problems, which were due to simple
+ substring matching being used.
+ * prayer.init, prayer-accountd.init: Add $remote_fs to, and move
+ $local_fs to, Required-Start.
+ * Upgrade to Standards-Version 3.9.0:
+ * Use Breaks instead of Conflicts to handle the renaming of
+ prayer-templates.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 22 Jul 2010 03:27:52 +0200
+
+prayer (1.3.2-dfsg1-4) unstable; urgency=low
+
+ * Undo inadvertent inclusion of /usr/include/prayer in
+ prayer-templates-src (Closes: #557056).
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
+
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.5-dfsg1-2/debian/rules
===================================================================
--- 1.3.5-dfsg1-2/debian/rules (nonexistent)
+++ 1.3.5-dfsg1-2/debian/rules (revision 180)
@@ -0,0 +1,16 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.5-dfsg1-2/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.5-dfsg1-2/debian/control
===================================================================
--- 1.3.5-dfsg1-2/debian/control (nonexistent)
+++ 1.3.5-dfsg1-2/debian/control (revision 180)
@@ -0,0 +1,97 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 7),
+ libc-client2007e-dev | libc-client-dev,
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev, libtidy-dev
+Standards-Version: 3.9.4
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Breaks: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.5-dfsg1-2/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -455,7 +455,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.5-dfsg1-2/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,241 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++MYCFLAGS = $(BASECFLAGS) -fPIC
++MYLDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++MYLDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,8 +115,14 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+- $(CC) $(CFLAGS) -I../../lib -c $<
++ $(CC) $(MYCFLAGS) -I../../lib -c $<
+
+ _template_index_frontend.c:
+ ../src/build_index.pl $(TYPE) $(T_FILES_FRONTEND) > _template_index_frontend.c
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++MYCFLAGS = $(BASECFLAGS) -fPIC
++MYLDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++MYLDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,8 +114,14 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(MYLDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+- $(CC) $(CFLAGS) -I../../lib -c $<
++ $(CC) $(MYCFLAGS) -I../../lib -c $<
+
+ _template_index_frontend.c:
+ ../src/build_index.pl $(TYPE) $(T_FILES_FRONTEND) > _template_index_frontend.c
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -60,8 +60,8 @@ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+ endif
+ endif
+
+-PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS)
+-SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS)
++PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS) -ldl
++SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS) -ldl
+
+ # Add SSL if c-client needs SSL
+ ifeq ($(strip $(CCLIENT_SSL_ENABLE)), true)
+@@ -90,15 +90,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -146,6 +146,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
+--- a/servers/prayer_shared.h
++++ b/servers/prayer_shared.h
+@@ -44,3 +44,4 @@ extern int errno; /* just
+ #include "mymutex.h"
+ #include "log.h"
+ #include "utf8.h"
++#include "dlopen_templates.h"
Index: 1.3.5-dfsg1-2/debian/patches/hurd.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/hurd.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/hurd.patch (revision 180)
@@ -0,0 +1,27 @@
+--- a/lib/setproctitle.h
++++ b/lib/setproctitle.h
+@@ -8,7 +8,9 @@
+
+ #include <sys/param.h>
+
+-#ifdef __linux__
++#if defined(__GNU__)
++# define SPT_TYPE SPT_CHANGEARGV
++#elif defined(__linux__)
+ # define SPT_TYPE SPT_REUSEARGV
+ # define SPT_PADCHAR '\0' /* pad process title with nulls */
+ #elif (defined(BSD) && BSD >= 199306)
+--- a/accountd/authenticate.c
++++ b/accountd/authenticate.c
+@@ -8,11 +8,7 @@
+
+ #include "accountd.h"
+
+-#ifdef BSD4_4
+-#define HAVE_SHADOW 0
+-#else
+ #define HAVE_SHADOW 1
+-#endif
+
+ #include <pwd.h>
+ #if HAVE_SHADOW
Index: 1.3.5-dfsg1-2/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,170 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,8 +282,9 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+@@ -374,13 +375,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
+-
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -409,10 +412,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -420,7 +424,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -434,7 +438,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -452,7 +456,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -601,14 +605,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.3.5-dfsg1-2/debian/patches/sighandling.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,67 @@
+--- a/lib/os.h
++++ b/lib/os.h
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+--- a/servers/session_server.c
++++ b/servers/session_server.c
+@@ -286,6 +286,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -348,6 +349,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+--- a/shared/log.c
++++ b/shared/log.c
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+--- a/shared/log.h
++++ b/shared/log.h
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.5-dfsg1-2/debian/patches/series
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/series (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+unbrand_accountd.patch
+template_sdk.patch
+no_db_version_check.patch
+hurd.patch
Index: 1.3.5-dfsg1-2/debian/patches/template_sdk.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,195 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB) $(BASE_LIBS)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB) $(BASE_LIBS)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- a/templates/src/makedeps.pl
++++ b/templates/src/makedeps.pl
+@@ -4,51 +4,44 @@
+ #
+ # Generate proper list of dependancies between templates
+
+-%uses = ();
++my %index = ();
++my %uses = ();
+
+-while ($file=shift(@ARGV)) {
+- $file = $1 if ($file =~ /([\w-_]+)\.t/);
++sub scan {
++ my ($file) = @_;
+
+- open(FILE, "<${file}.t") or die "failed to open ${file}: $!\n";
+-
+- while (<FILE>) {
+- next unless /^%\s+CALL ([\w-_]+)/;
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
+
+- $uses{$file} = [] if (not $uses{$file});
+- push(@{$uses{$file}}, $1);
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
+ }
+-
+- close(FILE);
++ return $uses{$file}
+ }
+
+-foreach $i (sort keys %uses) {
+- # Sort and uniq
+- @{$uses{$i}} = keys %{{ map { $_ => 1 } sort(@{$uses{$i}}) }};
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
+ }
++my $name = shift;
+
+-foreach $i (sort keys %uses) {
+- printf("%s.html: %s.t", $i, $i);
+- foreach $j (@{$uses{$i}}) {
+- @list = ();
+- recurse($j, {}, \@list);
+- foreach $k (@list) {
+- printf(" %s.t", $k);
+- }
+- }
+- printf("\n");
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
+ }
+
+-exit(0);
+-
+-sub recurse {
+- my ($i, $usedref, $listref) = @_;
+-
+- # Remove repeated references to any given template/
+- return if defined($$usedref{$i});
+- $$usedref{$i} = 1;
+-
+- push (@{$listref}, $i);
+- foreach $j (@{$uses{$i}}) {
+- recurse($j, $usedref, $listref);
+- }
+-}
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.5-dfsg1-2/debian/patches/unbrand_accountd.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/unbrand_accountd.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/unbrand_accountd.patch (revision 180)
@@ -0,0 +1,32 @@
+--- a/accountd/filter.c
++++ b/accountd/filter.c
+@@ -266,7 +266,6 @@ filter_print_vacation(struct config *con
+
+ fprintf(file, "# MSshell :: vacation\n");
+ fprintf(file, "if personal\n");
+- fprintf(file, " alias %s@cam.ac.uk\n", pwd->pw_name);
+
+ if (!filter_print_aliases(config, file))
+ return (NIL);
+@@ -278,7 +277,7 @@ filter_print_vacation(struct config *con
+ fprintf(file, ("This message is automatically generated "
+ "in response to your mail\\n\\" "\n"));
+ fprintf(file, ("message (perhaps re-directed) to "
+- "$local_part@hermes.cam.ac.uk.\\n\\n\"\n"));
++ "$local_part@$local_domain.\\n\\n\"\n"));
+ fprintf(file, " file ${home}/vacation.message\n");
+ fprintf(file, " log ${home}/vacation.log\n");
+ fprintf(file, " once ${home}/vacation.once\n");
+@@ -307,10 +306,10 @@ filter_print_spam(struct config *config,
+ threshold = atoi(filter->threshold);
+
+ /* XXX (threshold == 0) okay? */
+- fprintf(file, "if $h_X-Cam-SpamScore contains \"");
++ fprintf(file, "if $h_X-Spam-Level contains \"");
+
+ for (i=0 ; i < threshold; i++)
+- fputc('s', file);
++ fputc('*', file);
+
+ fprintf(file, "\" then\n");
+ fprintf(file, " save mail/spam\n");
Index: 1.3.5-dfsg1-2/debian/patches/no_db_version_check.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/no_db_version_check.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/no_db_version_check.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -190,21 +190,10 @@ static int myinit(const char *dbdir, int
+
+ static int init(const char *dbdir, int myflags)
+ {
+- int maj, min, patch;
+- char *vstr;
+ int r;
+
+ if (dbinit++) return 0;
+
+- vstr = db_version(&maj, &min, &patch);
+- if (maj != DB_VERSION_MAJOR || min != DB_VERSION_MINOR ||
+- DB_VERSION_PATCH > patch) {
+- log_fatal("incorrect version of Berkeley db: "
+- "compiled against %d.%d.%d, linked against %d.%d.%d",
+- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+- maj, min, patch);
+- }
+-
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
Index: 1.3.5-dfsg1-2/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.5-dfsg1-2/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.5-dfsg1-2/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.5-dfsg1-2/debian/copyright
===================================================================
--- 1.3.5-dfsg1-2/debian/copyright (nonexistent)
+++ 1.3.5-dfsg1-2/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2011 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.5-dfsg1-2/debian/compat
===================================================================
--- 1.3.5-dfsg1-2/debian/compat (nonexistent)
+++ 1.3.5-dfsg1-2/debian/compat (revision 180)
@@ -0,0 +1 @@
+7
Index: 1.3.5-dfsg1-2/debian/prayer-accountd.8
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-accountd.8 (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-accountd.8 (revision 180)
@@ -0,0 +1,78 @@
+.Dd 27 March 2011
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-ACCOUNTD 8
+.Sh NAME
+.Nm prayer-accountd
+.Nd Prayer system account helper daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -enable-fork | -disable-fork
+.
+.Sh DESCRIPTION
+.Nm
+is an auxilliary daemon that allows users to perform various tasks
+with respect to their UNIX system account:
+.Bl -bullet
+.It
+Change passwords
+.It
+Change their name
+.It
+Check filesystem quota
+.El
+.Pp
+Furthermore it can help users set up an
+.Sy ( Exim-only )
+.Pa .forward
+file for Spam filtering, vacation auto-replies etc.
+.Pp
+.Nm
+can be installed on a separate host from the main Prayer services if necessary.
+It needs to be able to run
+.Xr passwd 1 ,
+.Xr chfn 1 ,
+and
+.Xr quota 1
+for the user, and access users' home directories.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -enable-fork
+Fork subprocesses as requests come in. This is the default.
+.It Fl -disable-fork
+Don't fork; process one request in at the time (debug mode).
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/accountd.cf
+Default configuration file.
+.El
+.
+.Sh BUGS
+.Nm
+is rather customized to the needs of the University of Cambridge,
+though some patches have been applied to the Debian package. System
+administrators should study the source code to see what this means.
+.
+.Sh AUTHORS
+.
+This introductory manual page was put together for Debian by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org> .
Index: 1.3.5-dfsg1-2/debian/prayer-accountd.manpages
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-accountd.manpages (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-accountd.manpages (revision 180)
@@ -0,0 +1 @@
+debian/prayer-accountd.8
Index: 1.3.5-dfsg1-2/debian/source/format
===================================================================
--- 1.3.5-dfsg1-2/debian/source/format (nonexistent)
+++ 1.3.5-dfsg1-2/debian/source/format (revision 180)
@@ -0,0 +1 @@
+3.0 (quilt)
Index: 1.3.5-dfsg1-2/debian/prayer-accountd.init
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-accountd.init (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg1-2/debian/prayer.init
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.init (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg1-2/debian/Config
===================================================================
--- 1.3.5-dfsg1-2/debian/Config (nonexistent)
+++ 1.3.5-dfsg1-2/debian/Config (revision 180)
@@ -0,0 +1,154 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+TIDY_ENABLE = true # Use libtidy for HTML sanitisation
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Tidy library (required if TIDY_ENABLE set)
+TIDY_INCLUDE=-I/usr/include/tidy
+TIDY_LIBS=-ltidy
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.5-dfsg1-2/debian/prayer-templates-dev.install
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,5 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer/template_structs.h
+/usr/include/prayer/misc.h
+/usr/share/prayer/*.make
Index: 1.3.5-dfsg1-2/debian/prayer-templates-src.install
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.5-dfsg1-2/debian/prayer-templates-src.docs
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg1-2/debian/prayer.docs
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.docs (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg1-2/debian/prayer.NEWS
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.NEWS (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.5-dfsg1-2/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.5-dfsg1-2/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg1-2/debian/prayer.install
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.install (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.5-dfsg1-2/debian/prayer.dirs
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.dirs (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.5-dfsg1-2/debian/prayer.links
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.links (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.5-dfsg1-2/debian/README.Debian
===================================================================
--- 1.3.5-dfsg1-2/debian/README.Debian (nonexistent)
+++ 1.3.5-dfsg1-2/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.5-dfsg1-2/debian/prayer.manpages
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.manpages (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.5-dfsg1-2/debian/prayer.postinst
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.postinst (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.5-dfsg1-2/debian/prayer.postrm
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.postrm (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.5-dfsg1-2/debian/prayer.default
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.default (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.5-dfsg1-2/debian/prayer.examples
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.examples (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.5-dfsg1-2/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg1-2/debian/prayer.lintian-overrides
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg1-2/debian/prayer-accountd.docs
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg1-2/debian/prayer.logrotate
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer.logrotate (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.5-dfsg1-2/debian/prayer-accountd.install
===================================================================
--- 1.3.5-dfsg1-2/debian/prayer-accountd.install (nonexistent)
+++ 1.3.5-dfsg1-2/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.5-dfsg1-2/debian
===================================================================
--- 1.3.5-dfsg1-2/debian (nonexistent)
+++ 1.3.5-dfsg1-2/debian (revision 180)
/1.3.5-dfsg1-2/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.5-dfsg1-2
===================================================================
--- 1.3.5-dfsg1-2 (nonexistent)
+++ 1.3.5-dfsg1-2 (revision 180)
/1.3.5-dfsg1-2
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.5-dfsg-1/debian/changelog
===================================================================
--- 1.3.5-dfsg-1/debian/changelog (nonexistent)
+++ 1.3.5-dfsg-1/debian/changelog (revision 180)
@@ -0,0 +1,391 @@
+prayer (1.3.5-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Refresh patches.
+ * Drop dummy package prayer-templates.
+ * No longer override CDBS overriding CFLAGS, thereby allowing hardening
+ flags to be properly propagated. I think it caused internal include
+ flags to be lost, but since at least 1.3.2 that's no longer the case.
+ * Bump Standards-Version to 3.9.4.
+ * hurd.patch: Always define HAVE_SHADOW. The test for BSD4_4 seems
+ bogus; it is defined on Hurd, but crypt(3) is available there.
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 12 Jun 2013 00:09:05 +0200
+
+prayer (1.3.4-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop ipv6_v6only.patch; fixed upstream.
+ * template_sdk.patch: templates/src/build_index.pl no longer need to
+ be patched.
+ * Bump Standards-Version to 3.9.2.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 27 Aug 2011 22:24:50 +0200
+
+prayer (1.3.3-dfsg1-4) unstable; urgency=low
+
+ * Merge ld-as-needed.diff from Ubuntu into dlopen_templates.patch
+ (Closes: #607559).
+ * dlopen_templates.patch: Add missing #include "dlopen_templates.h" to
+ servers/prayer_shared.h.
+ * hurd.patch (new): Use the SPT_CHANGEARGV implementation of
+ setproctitle() on the Hurd.
+ * Add basic manpage for prayer-accountd(8).
+ * unbrand_accountd.patch: Remove some Cambridge-specific parts of the
+ filter handling.
+ * Drop obsolete Build-Depends alternative libc-client2007b-dev.
+ * Increase Debhelper compat level to 7.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Mar 2011 22:49:18 +0200
+
+prayer (1.3.3-dfsg1-3ubuntu1) natty; urgency=low
+
+ * Fix FTBFS with ld --as-needed.
+
+ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Dec 2010 19:07:04 +0100
+
+prayer (1.3.3-dfsg1-3) unstable; urgency=high
+
+ * ipv6_v6only.patch (new): Set the IPV6_V6ONLY socket option on
+ AF_INET6 sockets; since Prayer by default enumerates available address
+ families and calls bind() once for each, conflicts will occur
+ otherwise (Closes: #607261).
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 16 Dec 2010 20:16:41 +0100
+
+prayer (1.3.3-dfsg1-2) unstable; urgency=high
+
+ * Convert (trivially, since CDBS with quilt was already used) to source
+ format 3.0 (quilt).
+ * no_db_version_check.patch: Remove unnecessary and incorrect check that
+ not only the major and minor version numbers of the current libdb are
+ the same as at compile time, but also that the patch number is equal
+ or greater, which should not be a concern (Closes: #592119).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 07 Aug 2010 21:07:53 +0200
+
+prayer (1.3.3-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Dropped kfreebsd.patch, clean_completely.patch, and
+ manpage_error.patch; all incorporated upstream.
+ * makefile_install_config.patch: Updated; some parts incorporated
+ upstream.
+ * prayer-templates-dev.install: Only template_structs.h and misc.h
+ needed henceforth, since only those files are #included by compiled
+ templates.
+ * template_sdk.patch: The #include that templates/src/build_index.pl
+ generates was not changed, though.
+ * debian/Config, debian/control: Enable libtidy for HTML parsing and
+ sanitisation, fixing certain XSS problems, which were due to simple
+ substring matching being used.
+ * prayer.init, prayer-accountd.init: Add $remote_fs to, and move
+ $local_fs to, Required-Start.
+ * Upgrade to Standards-Version 3.9.0:
+ * Use Breaks instead of Conflicts to handle the renaming of
+ prayer-templates.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 22 Jul 2010 03:27:52 +0200
+
+prayer (1.3.2-dfsg1-4) unstable; urgency=low
+
+ * Undo inadvertent inclusion of /usr/include/prayer in
+ prayer-templates-src (Closes: #557056).
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
+
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.5-dfsg-1/debian/patches/hurd.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/hurd.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/hurd.patch (revision 180)
@@ -0,0 +1,27 @@
+--- a/lib/setproctitle.h
++++ b/lib/setproctitle.h
+@@ -8,7 +8,9 @@
+
+ #include <sys/param.h>
+
+-#ifdef __linux__
++#if defined(__GNU__)
++# define SPT_TYPE SPT_CHANGEARGV
++#elif defined(__linux__)
+ # define SPT_TYPE SPT_REUSEARGV
+ # define SPT_PADCHAR '\0' /* pad process title with nulls */
+ #elif (defined(BSD) && BSD >= 199306)
+--- a/accountd/authenticate.c
++++ b/accountd/authenticate.c
+@@ -8,11 +8,7 @@
+
+ #include "accountd.h"
+
+-#ifdef BSD4_4
+-#define HAVE_SHADOW 0
+-#else
+ #define HAVE_SHADOW 1
+-#endif
+
+ #include <pwd.h>
+ #if HAVE_SHADOW
Index: 1.3.5-dfsg-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,170 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,8 +282,9 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+@@ -374,13 +375,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
+-
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -409,10 +412,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -420,7 +424,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -434,7 +438,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -452,7 +456,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -601,14 +605,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.3.5-dfsg-1/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -455,7 +455,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.5-dfsg-1/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,235 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,6 +115,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,6 +114,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -60,8 +60,8 @@ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+ endif
+ endif
+
+-PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS)
+-SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS)
++PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS) -ldl
++SESSION_LIBS = $(CCLIENT_LIBS) $(BASE_LIBS) -ldl
+
+ # Add SSL if c-client needs SSL
+ ifeq ($(strip $(CCLIENT_SSL_ENABLE)), true)
+@@ -90,15 +90,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -146,6 +146,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
+--- a/servers/prayer_shared.h
++++ b/servers/prayer_shared.h
+@@ -44,3 +44,4 @@ extern int errno; /* just
+ #include "mymutex.h"
+ #include "log.h"
+ #include "utf8.h"
++#include "dlopen_templates.h"
Index: 1.3.5-dfsg-1/debian/patches/sighandling.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,67 @@
+--- a/lib/os.h
++++ b/lib/os.h
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+--- a/servers/session_server.c
++++ b/servers/session_server.c
+@@ -286,6 +286,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -348,6 +349,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+--- a/shared/log.c
++++ b/shared/log.c
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+--- a/shared/log.h
++++ b/shared/log.h
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.5-dfsg-1/debian/patches/series
===================================================================
--- 1.3.5-dfsg-1/debian/patches/series (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+unbrand_accountd.patch
+template_sdk.patch
+no_db_version_check.patch
+hurd.patch
Index: 1.3.5-dfsg-1/debian/patches/template_sdk.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,195 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB) $(BASE_LIBS)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB) $(BASE_LIBS)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- a/templates/src/makedeps.pl
++++ b/templates/src/makedeps.pl
+@@ -4,51 +4,44 @@
+ #
+ # Generate proper list of dependancies between templates
+
+-%uses = ();
++my %index = ();
++my %uses = ();
+
+-while ($file=shift(@ARGV)) {
+- $file = $1 if ($file =~ /([\w-_]+)\.t/);
++sub scan {
++ my ($file) = @_;
+
+- open(FILE, "<${file}.t") or die "failed to open ${file}: $!\n";
+-
+- while (<FILE>) {
+- next unless /^%\s+CALL ([\w-_]+)/;
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
+
+- $uses{$file} = [] if (not $uses{$file});
+- push(@{$uses{$file}}, $1);
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
+ }
+-
+- close(FILE);
++ return $uses{$file}
+ }
+
+-foreach $i (sort keys %uses) {
+- # Sort and uniq
+- @{$uses{$i}} = keys %{{ map { $_ => 1 } sort(@{$uses{$i}}) }};
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
+ }
++my $name = shift;
+
+-foreach $i (sort keys %uses) {
+- printf("%s.html: %s.t", $i, $i);
+- foreach $j (@{$uses{$i}}) {
+- @list = ();
+- recurse($j, {}, \@list);
+- foreach $k (@list) {
+- printf(" %s.t", $k);
+- }
+- }
+- printf("\n");
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
+ }
+
+-exit(0);
+-
+-sub recurse {
+- my ($i, $usedref, $listref) = @_;
+-
+- # Remove repeated references to any given template/
+- return if defined($$usedref{$i});
+- $$usedref{$i} = 1;
+-
+- push (@{$listref}, $i);
+- foreach $j (@{$uses{$i}}) {
+- recurse($j, $usedref, $listref);
+- }
+-}
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.5-dfsg-1/debian/patches/unbrand_accountd.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/unbrand_accountd.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/unbrand_accountd.patch (revision 180)
@@ -0,0 +1,32 @@
+--- a/accountd/filter.c
++++ b/accountd/filter.c
+@@ -266,7 +266,6 @@ filter_print_vacation(struct config *con
+
+ fprintf(file, "# MSshell :: vacation\n");
+ fprintf(file, "if personal\n");
+- fprintf(file, " alias %s@cam.ac.uk\n", pwd->pw_name);
+
+ if (!filter_print_aliases(config, file))
+ return (NIL);
+@@ -278,7 +277,7 @@ filter_print_vacation(struct config *con
+ fprintf(file, ("This message is automatically generated "
+ "in response to your mail\\n\\" "\n"));
+ fprintf(file, ("message (perhaps re-directed) to "
+- "$local_part@hermes.cam.ac.uk.\\n\\n\"\n"));
++ "$local_part@$local_domain.\\n\\n\"\n"));
+ fprintf(file, " file ${home}/vacation.message\n");
+ fprintf(file, " log ${home}/vacation.log\n");
+ fprintf(file, " once ${home}/vacation.once\n");
+@@ -307,10 +306,10 @@ filter_print_spam(struct config *config,
+ threshold = atoi(filter->threshold);
+
+ /* XXX (threshold == 0) okay? */
+- fprintf(file, "if $h_X-Cam-SpamScore contains \"");
++ fprintf(file, "if $h_X-Spam-Level contains \"");
+
+ for (i=0 ; i < threshold; i++)
+- fputc('s', file);
++ fputc('*', file);
+
+ fprintf(file, "\" then\n");
+ fprintf(file, " save mail/spam\n");
Index: 1.3.5-dfsg-1/debian/patches/no_db_version_check.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/no_db_version_check.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/no_db_version_check.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -190,21 +190,10 @@ static int myinit(const char *dbdir, int
+
+ static int init(const char *dbdir, int myflags)
+ {
+- int maj, min, patch;
+- char *vstr;
+ int r;
+
+ if (dbinit++) return 0;
+
+- vstr = db_version(&maj, &min, &patch);
+- if (maj != DB_VERSION_MAJOR || min != DB_VERSION_MINOR ||
+- DB_VERSION_PATCH > patch) {
+- log_fatal("incorrect version of Berkeley db: "
+- "compiled against %d.%d.%d, linked against %d.%d.%d",
+- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+- maj, min, patch);
+- }
+-
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
Index: 1.3.5-dfsg-1/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.5-dfsg-1/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.5-dfsg-1/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.5-dfsg-1/debian/control
===================================================================
--- 1.3.5-dfsg-1/debian/control (nonexistent)
+++ 1.3.5-dfsg-1/debian/control (revision 180)
@@ -0,0 +1,97 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 7),
+ libc-client2007e-dev | libc-client-dev,
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev, libtidy-dev
+Standards-Version: 3.9.4
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Breaks: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.5-dfsg-1/debian/rules
===================================================================
--- 1.3.5-dfsg-1/debian/rules (nonexistent)
+++ 1.3.5-dfsg-1/debian/rules (revision 180)
@@ -0,0 +1,16 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.5-dfsg-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.5-dfsg-1/debian/watch
===================================================================
--- 1.3.5-dfsg-1/debian/watch (nonexistent)
+++ 1.3.5-dfsg-1/debian/watch (revision 180)
@@ -0,0 +1,4 @@
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.5-dfsg-1/debian/copyright
===================================================================
--- 1.3.5-dfsg-1/debian/copyright (nonexistent)
+++ 1.3.5-dfsg-1/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2011 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.5-dfsg-1/debian/compat
===================================================================
--- 1.3.5-dfsg-1/debian/compat (nonexistent)
+++ 1.3.5-dfsg-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+7
Index: 1.3.5-dfsg-1/debian/prayer-accountd.8
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-accountd.8 (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-accountd.8 (revision 180)
@@ -0,0 +1,78 @@
+.Dd 27 March 2011
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-ACCOUNTD 8
+.Sh NAME
+.Nm prayer-accountd
+.Nd Prayer system account helper daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -enable-fork | -disable-fork
+.
+.Sh DESCRIPTION
+.Nm
+is an auxilliary daemon that allows users to perform various tasks
+with respect to their UNIX system account:
+.Bl -bullet
+.It
+Change passwords
+.It
+Change their name
+.It
+Check filesystem quota
+.El
+.Pp
+Furthermore it can help users set up an
+.Sy ( Exim-only )
+.Pa .forward
+file for Spam filtering, vacation auto-replies etc.
+.Pp
+.Nm
+can be installed on a separate host from the main Prayer services if necessary.
+It needs to be able to run
+.Xr passwd 1 ,
+.Xr chfn 1 ,
+and
+.Xr quota 1
+for the user, and access users' home directories.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -enable-fork
+Fork subprocesses as requests come in. This is the default.
+.It Fl -disable-fork
+Don't fork; process one request in at the time (debug mode).
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/accountd.cf
+Default configuration file.
+.El
+.
+.Sh BUGS
+.Nm
+is rather customized to the needs of the University of Cambridge,
+though some patches have been applied to the Debian package. System
+administrators should study the source code to see what this means.
+.
+.Sh AUTHORS
+.
+This introductory manual page was put together for Debian by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org> .
Index: 1.3.5-dfsg-1/debian/prayer-accountd.manpages
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-accountd.manpages (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-accountd.manpages (revision 180)
@@ -0,0 +1 @@
+debian/prayer-accountd.8
Index: 1.3.5-dfsg-1/debian/source/format
===================================================================
--- 1.3.5-dfsg-1/debian/source/format (nonexistent)
+++ 1.3.5-dfsg-1/debian/source/format (revision 180)
@@ -0,0 +1 @@
+3.0 (quilt)
Index: 1.3.5-dfsg-1/debian/prayer-accountd.init
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-accountd.init (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg-1/debian/prayer.init
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.init (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.5-dfsg-1/debian/Config
===================================================================
--- 1.3.5-dfsg-1/debian/Config (nonexistent)
+++ 1.3.5-dfsg-1/debian/Config (revision 180)
@@ -0,0 +1,154 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+TIDY_ENABLE = true # Use libtidy for HTML sanitisation
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Tidy library (required if TIDY_ENABLE set)
+TIDY_INCLUDE=-I/usr/include/tidy
+TIDY_LIBS=-ltidy
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.5-dfsg-1/debian/prayer-templates-dev.install
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,5 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer/template_structs.h
+/usr/include/prayer/misc.h
+/usr/share/prayer/*.make
Index: 1.3.5-dfsg-1/debian/prayer-templates-src.install
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.5-dfsg-1/debian/prayer-templates-src.docs
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg-1/debian/prayer.docs
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.docs (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg-1/debian/prayer.NEWS
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.NEWS (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.5-dfsg-1/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.5-dfsg-1/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.5-dfsg-1/debian/prayer.install
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.install (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.5-dfsg-1/debian/prayer.dirs
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.dirs (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.5-dfsg-1/debian/prayer.links
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.links (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.5-dfsg-1/debian/README.Debian
===================================================================
--- 1.3.5-dfsg-1/debian/README.Debian (nonexistent)
+++ 1.3.5-dfsg-1/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.5-dfsg-1/debian/prayer.manpages
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.manpages (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.5-dfsg-1/debian/prayer.postinst
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.postinst (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.5-dfsg-1/debian/prayer.postrm
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.postrm (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.5-dfsg-1/debian/prayer.default
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.default (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.5-dfsg-1/debian/prayer.examples
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.examples (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.5-dfsg-1/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg-1/debian/prayer.lintian-overrides
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.5-dfsg-1/debian/prayer-accountd.docs
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.5-dfsg-1/debian/prayer.logrotate
===================================================================
--- 1.3.5-dfsg-1/debian/prayer.logrotate (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.5-dfsg-1/debian/prayer-accountd.install
===================================================================
--- 1.3.5-dfsg-1/debian/prayer-accountd.install (nonexistent)
+++ 1.3.5-dfsg-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.5-dfsg-1/debian
===================================================================
--- 1.3.5-dfsg-1/debian (nonexistent)
+++ 1.3.5-dfsg-1/debian (revision 180)
/1.3.5-dfsg-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.5-dfsg-1
===================================================================
--- 1.3.5-dfsg-1 (nonexistent)
+++ 1.3.5-dfsg-1 (revision 180)
/1.3.5-dfsg-1
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.4-dfsg1-1/debian/patches/sighandling.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,67 @@
+--- a/lib/os.h
++++ b/lib/os.h
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+--- a/servers/session_server.c
++++ b/servers/session_server.c
+@@ -286,6 +286,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -348,6 +349,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+--- a/shared/log.c
++++ b/shared/log.c
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+--- a/shared/log.h
++++ b/shared/log.h
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.4-dfsg1-1/debian/patches/series
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/series (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+unbrand_accountd.patch
+template_sdk.patch
+no_db_version_check.patch
+hurd.patch
Index: 1.3.4-dfsg1-1/debian/patches/template_sdk.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,195 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB) $(BASE_LIBS)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB) $(BASE_LIBS)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- a/templates/src/makedeps.pl
++++ b/templates/src/makedeps.pl
+@@ -4,51 +4,44 @@
+ #
+ # Generate proper list of dependancies between templates
+
+-%uses = ();
++my %index = ();
++my %uses = ();
+
+-while ($file=shift(@ARGV)) {
+- $file = $1 if ($file =~ /([\w-_]+)\.t/);
++sub scan {
++ my ($file) = @_;
+
+- open(FILE, "<${file}.t") or die "failed to open ${file}: $!\n";
+-
+- while (<FILE>) {
+- next unless /^%\s+CALL ([\w-_]+)/;
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
+
+- $uses{$file} = [] if (not $uses{$file});
+- push(@{$uses{$file}}, $1);
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
+ }
+-
+- close(FILE);
++ return $uses{$file}
+ }
+
+-foreach $i (sort keys %uses) {
+- # Sort and uniq
+- @{$uses{$i}} = keys %{{ map { $_ => 1 } sort(@{$uses{$i}}) }};
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
+ }
++my $name = shift;
+
+-foreach $i (sort keys %uses) {
+- printf("%s.html: %s.t", $i, $i);
+- foreach $j (@{$uses{$i}}) {
+- @list = ();
+- recurse($j, {}, \@list);
+- foreach $k (@list) {
+- printf(" %s.t", $k);
+- }
+- }
+- printf("\n");
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
+ }
+
+-exit(0);
+-
+-sub recurse {
+- my ($i, $usedref, $listref) = @_;
+-
+- # Remove repeated references to any given template/
+- return if defined($$usedref{$i});
+- $$usedref{$i} = 1;
+-
+- push (@{$listref}, $i);
+- foreach $j (@{$uses{$i}}) {
+- recurse($j, $usedref, $listref);
+- }
+-}
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.4-dfsg1-1/debian/patches/unbrand_accountd.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/unbrand_accountd.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/unbrand_accountd.patch (revision 180)
@@ -0,0 +1,32 @@
+--- a/accountd/filter.c
++++ b/accountd/filter.c
+@@ -266,7 +266,6 @@ filter_print_vacation(struct config *con
+
+ fprintf(file, "# MSshell :: vacation\n");
+ fprintf(file, "if personal\n");
+- fprintf(file, " alias %s@cam.ac.uk\n", pwd->pw_name);
+
+ if (!filter_print_aliases(config, file))
+ return (NIL);
+@@ -278,7 +277,7 @@ filter_print_vacation(struct config *con
+ fprintf(file, ("This message is automatically generated "
+ "in response to your mail\\n\\" "\n"));
+ fprintf(file, ("message (perhaps re-directed) to "
+- "$local_part@hermes.cam.ac.uk.\\n\\n\"\n"));
++ "$local_part@$local_domain.\\n\\n\"\n"));
+ fprintf(file, " file ${home}/vacation.message\n");
+ fprintf(file, " log ${home}/vacation.log\n");
+ fprintf(file, " once ${home}/vacation.once\n");
+@@ -307,10 +306,10 @@ filter_print_spam(struct config *config,
+ threshold = atoi(filter->threshold);
+
+ /* XXX (threshold == 0) okay? */
+- fprintf(file, "if $h_X-Cam-SpamScore contains \"");
++ fprintf(file, "if $h_X-Spam-Level contains \"");
+
+ for (i=0 ; i < threshold; i++)
+- fputc('s', file);
++ fputc('*', file);
+
+ fprintf(file, "\" then\n");
+ fprintf(file, " save mail/spam\n");
Index: 1.3.4-dfsg1-1/debian/patches/hurd.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/hurd.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/hurd.patch (revision 180)
@@ -0,0 +1,13 @@
+--- a/lib/setproctitle.h
++++ b/lib/setproctitle.h
+@@ -8,7 +8,9 @@
+
+ #include <sys/param.h>
+
+-#ifdef __linux__
++#if defined(__GNU__)
++# define SPT_TYPE SPT_CHANGEARGV
++#elif defined(__linux__)
+ # define SPT_TYPE SPT_REUSEARGV
+ # define SPT_PADCHAR '\0' /* pad process title with nulls */
+ #elif (defined(BSD) && BSD >= 199306)
Index: 1.3.4-dfsg1-1/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,235 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,6 +115,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,6 +114,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -60,8 +60,8 @@ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+ endif
+ endif
+
+-PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS)
+-SESSION_LIBS = $(BASE_LIBS) $(CCLIENT_LIBS)
++PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS) -ldl
++SESSION_LIBS = $(BASE_LIBS) $(CCLIENT_LIBS) -ldl
+
+ # Add SSL if c-client needs SSL
+ ifeq ($(strip $(CCLIENT_SSL_ENABLE)), true)
+@@ -90,15 +90,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -144,6 +144,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
+--- a/servers/prayer_shared.h
++++ b/servers/prayer_shared.h
+@@ -44,3 +44,4 @@ extern int errno; /* just
+ #include "mymutex.h"
+ #include "log.h"
+ #include "utf8.h"
++#include "dlopen_templates.h"
Index: 1.3.4-dfsg1-1/debian/patches/no_db_version_check.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/no_db_version_check.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/no_db_version_check.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -190,21 +190,10 @@ static int myinit(const char *dbdir, int
+
+ static int init(const char *dbdir, int myflags)
+ {
+- int maj, min, patch;
+- char *vstr;
+ int r;
+
+ if (dbinit++) return 0;
+
+- vstr = db_version(&maj, &min, &patch);
+- if (maj != DB_VERSION_MAJOR || min != DB_VERSION_MINOR ||
+- DB_VERSION_PATCH > patch) {
+- log_fatal("incorrect version of Berkeley db: "
+- "compiled against %d.%d.%d, linked against %d.%d.%d",
+- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+- maj, min, patch);
+- }
+-
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
Index: 1.3.4-dfsg1-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,170 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,8 +282,9 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+@@ -376,13 +364,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
+-
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -411,10 +401,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -422,7 +413,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -436,7 +427,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -454,7 +445,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -603,14 +594,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.3.4-dfsg1-1/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.4-dfsg1-1/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.4-dfsg1-1/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -444,7 +444,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.4-dfsg1-1/debian/control
===================================================================
--- 1.3.4-dfsg1-1/debian/control (nonexistent)
+++ 1.3.4-dfsg1-1/debian/control (revision 180)
@@ -0,0 +1,104 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 7),
+ libc-client2007e-dev | libc-client-dev,
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev, libtidy-dev
+Standards-Version: 3.9.2
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: prayer-templates-src, ${misc:Depends}
+Description: dummy package depending on prayer-templates-src
+ The Prayer template source package is now called prayer-templates-src.
+ This package can safely be removed after upgrade.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Breaks: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.4-dfsg1-1/debian/changelog
===================================================================
--- 1.3.4-dfsg1-1/debian/changelog (nonexistent)
+++ 1.3.4-dfsg1-1/debian/changelog (revision 180)
@@ -0,0 +1,377 @@
+prayer (1.3.4-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop ipv6_v6only.patch; fixed upstream.
+ * template_sdk.patch: templates/src/build_index.pl no longer need to
+ be patched.
+ * Bump Standards-Version to 3.9.2.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 27 Aug 2011 22:24:50 +0200
+
+prayer (1.3.3-dfsg1-4) unstable; urgency=low
+
+ * Merge ld-as-needed.diff from Ubuntu into dlopen_templates.patch
+ (Closes: #607559).
+ * dlopen_templates.patch: Add missing #include "dlopen_templates.h" to
+ servers/prayer_shared.h.
+ * hurd.patch (new): Use the SPT_CHANGEARGV implementation of
+ setproctitle() on the Hurd.
+ * Add basic manpage for prayer-accountd(8).
+ * unbrand_accountd.patch: Remove some Cambridge-specific parts of the
+ filter handling.
+ * Drop obsolete Build-Depends alternative libc-client2007b-dev.
+ * Increase Debhelper compat level to 7.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Mar 2011 22:49:18 +0200
+
+prayer (1.3.3-dfsg1-3ubuntu1) natty; urgency=low
+
+ * Fix FTBFS with ld --as-needed.
+
+ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Dec 2010 19:07:04 +0100
+
+prayer (1.3.3-dfsg1-3) unstable; urgency=high
+
+ * ipv6_v6only.patch (new): Set the IPV6_V6ONLY socket option on
+ AF_INET6 sockets; since Prayer by default enumerates available address
+ families and calls bind() once for each, conflicts will occur
+ otherwise (Closes: #607261).
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 16 Dec 2010 20:16:41 +0100
+
+prayer (1.3.3-dfsg1-2) unstable; urgency=high
+
+ * Convert (trivially, since CDBS with quilt was already used) to source
+ format 3.0 (quilt).
+ * no_db_version_check.patch: Remove unnecessary and incorrect check that
+ not only the major and minor version numbers of the current libdb are
+ the same as at compile time, but also that the patch number is equal
+ or greater, which should not be a concern (Closes: #592119).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 07 Aug 2010 21:07:53 +0200
+
+prayer (1.3.3-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Dropped kfreebsd.patch, clean_completely.patch, and
+ manpage_error.patch; all incorporated upstream.
+ * makefile_install_config.patch: Updated; some parts incorporated
+ upstream.
+ * prayer-templates-dev.install: Only template_structs.h and misc.h
+ needed henceforth, since only those files are #included by compiled
+ templates.
+ * template_sdk.patch: The #include that templates/src/build_index.pl
+ generates was not changed, though.
+ * debian/Config, debian/control: Enable libtidy for HTML parsing and
+ sanitisation, fixing certain XSS problems, which were due to simple
+ substring matching being used.
+ * prayer.init, prayer-accountd.init: Add $remote_fs to, and move
+ $local_fs to, Required-Start.
+ * Upgrade to Standards-Version 3.9.0:
+ * Use Breaks instead of Conflicts to handle the renaming of
+ prayer-templates.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 22 Jul 2010 03:27:52 +0200
+
+prayer (1.3.2-dfsg1-4) unstable; urgency=low
+
+ * Undo inadvertent inclusion of /usr/include/prayer in
+ prayer-templates-src (Closes: #557056).
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
+
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.4-dfsg1-1/debian/copyright
===================================================================
--- 1.3.4-dfsg1-1/debian/copyright (nonexistent)
+++ 1.3.4-dfsg1-1/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2011 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.4-dfsg1-1/debian/compat
===================================================================
--- 1.3.4-dfsg1-1/debian/compat (nonexistent)
+++ 1.3.4-dfsg1-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+7
Index: 1.3.4-dfsg1-1/debian/prayer-accountd.8
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-accountd.8 (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-accountd.8 (revision 180)
@@ -0,0 +1,78 @@
+.Dd 27 March 2011
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-ACCOUNTD 8
+.Sh NAME
+.Nm prayer-accountd
+.Nd Prayer system account helper daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -enable-fork | -disable-fork
+.
+.Sh DESCRIPTION
+.Nm
+is an auxilliary daemon that allows users to perform various tasks
+with respect to their UNIX system account:
+.Bl -bullet
+.It
+Change passwords
+.It
+Change their name
+.It
+Check filesystem quota
+.El
+.Pp
+Furthermore it can help users set up an
+.Sy ( Exim-only )
+.Pa .forward
+file for Spam filtering, vacation auto-replies etc.
+.Pp
+.Nm
+can be installed on a separate host from the main Prayer services if necessary.
+It needs to be able to run
+.Xr passwd 1 ,
+.Xr chfn 1 ,
+and
+.Xr quota 1
+for the user, and access users' home directories.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -enable-fork
+Fork subprocesses as requests come in. This is the default.
+.It Fl -disable-fork
+Don't fork; process one request in at the time (debug mode).
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/accountd.cf
+Default configuration file.
+.El
+.
+.Sh BUGS
+.Nm
+is rather customized to the needs of the University of Cambridge,
+though some patches have been applied to the Debian package. System
+administrators should study the source code to see what this means.
+.
+.Sh AUTHORS
+.
+This introductory manual page was put together for Debian by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org> .
Index: 1.3.4-dfsg1-1/debian/prayer-accountd.manpages
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-accountd.manpages (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-accountd.manpages (revision 180)
@@ -0,0 +1 @@
+debian/prayer-accountd.8
Index: 1.3.4-dfsg1-1/debian/rules
===================================================================
--- 1.3.4-dfsg1-1/debian/rules (nonexistent)
+++ 1.3.4-dfsg1-1/debian/rules (revision 180)
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_prayer-templates = --link-doc=prayer-templates-src
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.4-dfsg1-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.4-dfsg1-1/debian/source/format
===================================================================
--- 1.3.4-dfsg1-1/debian/source/format (nonexistent)
+++ 1.3.4-dfsg1-1/debian/source/format (revision 180)
@@ -0,0 +1 @@
+3.0 (quilt)
Index: 1.3.4-dfsg1-1/debian/prayer-accountd.init
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-accountd.init (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.4-dfsg1-1/debian/prayer.init
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.init (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.4-dfsg1-1/debian/Config
===================================================================
--- 1.3.4-dfsg1-1/debian/Config (nonexistent)
+++ 1.3.4-dfsg1-1/debian/Config (revision 180)
@@ -0,0 +1,154 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+TIDY_ENABLE = true # Use libtidy for HTML sanitisation
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Tidy library (required if TIDY_ENABLE set)
+TIDY_INCLUDE=-I/usr/include/tidy
+TIDY_LIBS=-ltidy
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.4-dfsg1-1/debian/prayer-templates-dev.install
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,5 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer/template_structs.h
+/usr/include/prayer/misc.h
+/usr/share/prayer/*.make
Index: 1.3.4-dfsg1-1/debian/prayer-templates-src.install
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.4-dfsg1-1/debian/prayer-templates-src.docs
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.4-dfsg1-1/debian/prayer.docs
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.docs (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.4-dfsg1-1/debian/prayer.NEWS
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.NEWS (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.4-dfsg1-1/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.4-dfsg1-1/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.4-dfsg1-1/debian/prayer.install
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.install (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.4-dfsg1-1/debian/prayer.dirs
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.dirs (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.4-dfsg1-1/debian/prayer.links
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.links (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.4-dfsg1-1/debian/README.Debian
===================================================================
--- 1.3.4-dfsg1-1/debian/README.Debian (nonexistent)
+++ 1.3.4-dfsg1-1/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.4-dfsg1-1/debian/watch
===================================================================
--- 1.3.4-dfsg1-1/debian/watch (nonexistent)
+++ 1.3.4-dfsg1-1/debian/watch (revision 180)
@@ -0,0 +1,10 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.4-dfsg1-1/debian/prayer.manpages
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.manpages (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.4-dfsg1-1/debian/prayer.postinst
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.postinst (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.4-dfsg1-1/debian/prayer.postrm
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.postrm (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.4-dfsg1-1/debian/prayer.default
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.default (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.4-dfsg1-1/debian/prayer.examples
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.examples (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.4-dfsg1-1/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.4-dfsg1-1/debian/prayer.lintian-overrides
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.4-dfsg1-1/debian/prayer-accountd.docs
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.4-dfsg1-1/debian/prayer.logrotate
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer.logrotate (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.4-dfsg1-1/debian/prayer-accountd.install
===================================================================
--- 1.3.4-dfsg1-1/debian/prayer-accountd.install (nonexistent)
+++ 1.3.4-dfsg1-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.4-dfsg1-1/debian
===================================================================
--- 1.3.4-dfsg1-1/debian (nonexistent)
+++ 1.3.4-dfsg1-1/debian (revision 180)
/1.3.4-dfsg1-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.4-dfsg1-1
===================================================================
--- 1.3.4-dfsg1-1 (nonexistent)
+++ 1.3.4-dfsg1-1 (revision 180)
/1.3.4-dfsg1-1
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.3-dfsg1-4/debian/control
===================================================================
--- 1.3.3-dfsg1-4/debian/control (nonexistent)
+++ 1.3.3-dfsg1-4/debian/control (revision 180)
@@ -0,0 +1,104 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 7),
+ libc-client2007e-dev | libc-client-dev,
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev, libtidy-dev
+Standards-Version: 3.9.1
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: prayer-templates-src, ${misc:Depends}
+Description: dummy package depending on prayer-templates-src
+ The Prayer template source package is now called prayer-templates-src.
+ This package can safely be removed after upgrade.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Breaks: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.3-dfsg1-4/debian/patches/ipv6_v6only.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/ipv6_v6only.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/ipv6_v6only.patch (revision 180)
@@ -0,0 +1,18 @@
+--- a/lib/os.c
++++ b/lib/os.c
+@@ -217,6 +217,15 @@ int *os_bind_inet_socket(unsigned long p
+ close(sockfd);
+ return(NIL);
+ }
++#if defined(IPV6_V6ONLY) && defined(AF_INET6)
++ if (ai->ai_family == AF_INET6) {
++ if (setsockopt
++ (sockfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *) &optval, sizeof(int)))
++ log_misc(("[os_bind_inet_socket()] setsockopt() failed: "
++ "couldn't set IPV6_V6ONLY: %s"), strerror(errno));
++ }
++#endif
++
+
+ /* bind() as Internet domain socket */
+ memcpy(&serv_addr, ai->ai_addr, ai->ai_addrlen);
Index: 1.3.3-dfsg1-4/debian/patches/hurd.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/hurd.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/hurd.patch (revision 180)
@@ -0,0 +1,13 @@
+--- a/lib/setproctitle.h
++++ b/lib/setproctitle.h
+@@ -8,7 +8,9 @@
+
+ #include <sys/param.h>
+
+-#ifdef __linux__
++#if defined(__GNU__)
++# define SPT_TYPE SPT_CHANGEARGV
++#elif defined(__linux__)
+ # define SPT_TYPE SPT_REUSEARGV
+ # define SPT_PADCHAR '\0' /* pad process title with nulls */
+ #elif (defined(BSD) && BSD >= 199306)
Index: 1.3.3-dfsg1-4/debian/patches/no_db_version_check.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/no_db_version_check.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/no_db_version_check.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -190,21 +190,10 @@ static int myinit(const char *dbdir, int
+
+ static int init(const char *dbdir, int myflags)
+ {
+- int maj, min, patch;
+- char *vstr;
+ int r;
+
+ if (dbinit++) return 0;
+
+- vstr = db_version(&maj, &min, &patch);
+- if (maj != DB_VERSION_MAJOR || min != DB_VERSION_MINOR ||
+- DB_VERSION_PATCH > patch) {
+- log_fatal("incorrect version of Berkeley db: "
+- "compiled against %d.%d.%d, linked against %d.%d.%d",
+- DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH,
+- maj, min, patch);
+- }
+-
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
Index: 1.3.3-dfsg1-4/debian/patches/unbrand_accountd.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/unbrand_accountd.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/unbrand_accountd.patch (revision 180)
@@ -0,0 +1,32 @@
+--- a/accountd/filter.c
++++ b/accountd/filter.c
+@@ -266,7 +266,6 @@ filter_print_vacation(struct config *con
+
+ fprintf(file, "# MSshell :: vacation\n");
+ fprintf(file, "if personal\n");
+- fprintf(file, " alias %s@cam.ac.uk\n", pwd->pw_name);
+
+ if (!filter_print_aliases(config, file))
+ return (NIL);
+@@ -278,7 +277,7 @@ filter_print_vacation(struct config *con
+ fprintf(file, ("This message is automatically generated "
+ "in response to your mail\\n\\" "\n"));
+ fprintf(file, ("message (perhaps re-directed) to "
+- "$local_part@hermes.cam.ac.uk.\\n\\n\"\n"));
++ "$local_part@$local_domain.\\n\\n\"\n"));
+ fprintf(file, " file ${home}/vacation.message\n");
+ fprintf(file, " log ${home}/vacation.log\n");
+ fprintf(file, " once ${home}/vacation.once\n");
+@@ -307,10 +306,10 @@ filter_print_spam(struct config *config,
+ threshold = atoi(filter->threshold);
+
+ /* XXX (threshold == 0) okay? */
+- fprintf(file, "if $h_X-Cam-SpamScore contains \"");
++ fprintf(file, "if $h_X-Spam-Level contains \"");
+
+ for (i=0 ; i < threshold; i++)
+- fputc('s', file);
++ fputc('*', file);
+
+ fprintf(file, "\" then\n");
+ fprintf(file, " save mail/spam\n");
Index: 1.3.3-dfsg1-4/debian/patches/series
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/series (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/series (revision 180)
@@ -0,0 +1,9 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+unbrand_accountd.patch
+template_sdk.patch
+no_db_version_check.patch
+ipv6_v6only.patch
+hurd.patch
Index: 1.3.3-dfsg1-4/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,235 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,6 +115,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,6 +114,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -60,8 +60,8 @@ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+ endif
+ endif
+
+-PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS)
+-SESSION_LIBS = $(BASE_LIBS) $(CCLIENT_LIBS)
++PRAYER_LIBS = $(BASE_LIBS) $(SERVER_SSL_LIBS) -ldl
++SESSION_LIBS = $(BASE_LIBS) $(CCLIENT_LIBS) -ldl
+
+ # Add SSL if c-client needs SSL
+ ifeq ($(strip $(CCLIENT_SSL_ENABLE)), true)
+@@ -90,15 +90,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -144,6 +144,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
+--- a/servers/prayer_shared.h
++++ b/servers/prayer_shared.h
+@@ -44,3 +44,4 @@ extern int errno; /* just
+ #include "mymutex.h"
+ #include "log.h"
+ #include "utf8.h"
++#include "dlopen_templates.h"
Index: 1.3.3-dfsg1-4/debian/patches/template_sdk.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,207 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB) $(BASE_LIBS)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB) $(BASE_LIBS)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- a/templates/src/makedeps.pl
++++ b/templates/src/makedeps.pl
+@@ -4,51 +4,44 @@
+ #
+ # Generate proper list of dependancies between templates
+
+-%uses = ();
++my %index = ();
++my %uses = ();
+
+-while ($file=shift(@ARGV)) {
+- $file = $1 if ($file =~ /([\w-_]+)\.t/);
++sub scan {
++ my ($file) = @_;
+
+- open(FILE, "<${file}.t") or die "failed to open ${file}: $!\n";
+-
+- while (<FILE>) {
+- next unless /^%\s+CALL ([\w-_]+)/;
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
+
+- $uses{$file} = [] if (not $uses{$file});
+- push(@{$uses{$file}}, $1);
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
+ }
+-
+- close(FILE);
++ return $uses{$file}
+ }
+
+-foreach $i (sort keys %uses) {
+- # Sort and uniq
+- @{$uses{$i}} = keys %{{ map { $_ => 1 } sort(@{$uses{$i}}) }};
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
+ }
++my $name = shift;
+
+-foreach $i (sort keys %uses) {
+- printf("%s.html: %s.t", $i, $i);
+- foreach $j (@{$uses{$i}}) {
+- @list = ();
+- recurse($j, {}, \@list);
+- foreach $k (@list) {
+- printf(" %s.t", $k);
+- }
+- }
+- printf("\n");
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
+ }
+
+-exit(0);
+-
+-sub recurse {
+- my ($i, $usedref, $listref) = @_;
+-
+- # Remove repeated references to any given template/
+- return if defined($$usedref{$i});
+- $$usedref{$i} = 1;
+-
+- push (@{$listref}, $i);
+- foreach $j (@{$uses{$i}}) {
+- recurse($j, $usedref, $listref);
+- }
+-}
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
+--- a/templates/src/build_index.pl
++++ b/templates/src/build_index.pl
+@@ -18,7 +18,8 @@ foreach $i (@ARGV) {
+ @templates = sort(@templates);
+
+ print <<'EOM';
+-#include "lib.h"
++#include "misc.h"
++#include "template_structs.h"
+
+ EOM
+
Index: 1.3.3-dfsg1-4/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,170 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,8 +282,9 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+@@ -376,13 +364,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
+-
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -411,10 +401,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -422,7 +413,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -436,7 +427,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -454,7 +445,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -603,14 +594,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.3.3-dfsg1-4/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.3-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -444,7 +444,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.3-dfsg1-4/debian/patches/sighandling.patch
===================================================================
--- 1.3.3-dfsg1-4/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.3-dfsg1-4/debian/prayer-accountd.manpages
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-accountd.manpages (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-accountd.manpages (revision 180)
@@ -0,0 +1 @@
+debian/prayer-accountd.8
Index: 1.3.3-dfsg1-4/debian/compat
===================================================================
--- 1.3.3-dfsg1-4/debian/compat (nonexistent)
+++ 1.3.3-dfsg1-4/debian/compat (revision 180)
@@ -0,0 +1 @@
+7
Index: 1.3.3-dfsg1-4/debian/changelog
===================================================================
--- 1.3.3-dfsg1-4/debian/changelog (nonexistent)
+++ 1.3.3-dfsg1-4/debian/changelog (revision 180)
@@ -0,0 +1,367 @@
+prayer (1.3.3-dfsg1-4) unstable; urgency=low
+
+ * Merge ld-as-needed.diff from Ubuntu into dlopen_templates.patch
+ (Closes: #607559).
+ * dlopen_templates.patch: Add missing #include "dlopen_templates.h" to
+ servers/prayer_shared.h.
+ * hurd.patch (new): Use the SPT_CHANGEARGV implementation of
+ setproctitle() on the Hurd.
+ * Add basic manpage for prayer-accountd(8).
+ * unbrand_accountd.patch: Remove some Cambridge-specific parts of the
+ filter handling.
+ * Drop obsolete Build-Depends alternative libc-client2007b-dev.
+ * Increase Debhelper compat level to 7.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Mar 2011 22:49:18 +0200
+
+prayer (1.3.3-dfsg1-3ubuntu1) natty; urgency=low
+
+ * Fix FTBFS with ld --as-needed.
+
+ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Dec 2010 19:07:04 +0100
+
+prayer (1.3.3-dfsg1-3) unstable; urgency=high
+
+ * ipv6_v6only.patch (new): Set the IPV6_V6ONLY socket option on
+ AF_INET6 sockets; since Prayer by default enumerates available address
+ families and calls bind() once for each, conflicts will occur
+ otherwise (Closes: #607261).
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 16 Dec 2010 20:16:41 +0100
+
+prayer (1.3.3-dfsg1-2) unstable; urgency=high
+
+ * Convert (trivially, since CDBS with quilt was already used) to source
+ format 3.0 (quilt).
+ * no_db_version_check.patch: Remove unnecessary and incorrect check that
+ not only the major and minor version numbers of the current libdb are
+ the same as at compile time, but also that the patch number is equal
+ or greater, which should not be a concern (Closes: #592119).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 07 Aug 2010 21:07:53 +0200
+
+prayer (1.3.3-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Dropped kfreebsd.patch, clean_completely.patch, and
+ manpage_error.patch; all incorporated upstream.
+ * makefile_install_config.patch: Updated; some parts incorporated
+ upstream.
+ * prayer-templates-dev.install: Only template_structs.h and misc.h
+ needed henceforth, since only those files are #included by compiled
+ templates.
+ * template_sdk.patch: The #include that templates/src/build_index.pl
+ generates was not changed, though.
+ * debian/Config, debian/control: Enable libtidy for HTML parsing and
+ sanitisation, fixing certain XSS problems, which were due to simple
+ substring matching being used.
+ * prayer.init, prayer-accountd.init: Add $remote_fs to, and move
+ $local_fs to, Required-Start.
+ * Upgrade to Standards-Version 3.9.0:
+ * Use Breaks instead of Conflicts to handle the renaming of
+ prayer-templates.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 22 Jul 2010 03:27:52 +0200
+
+prayer (1.3.2-dfsg1-4) unstable; urgency=low
+
+ * Undo inadvertent inclusion of /usr/include/prayer in
+ prayer-templates-src (Closes: #557056).
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
+
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.3-dfsg1-4/debian/rules
===================================================================
--- 1.3.3-dfsg1-4/debian/rules (nonexistent)
+++ 1.3.3-dfsg1-4/debian/rules (revision 180)
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_prayer-templates = --link-doc=prayer-templates-src
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.3-dfsg1-4/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.3-dfsg1-4/debian/source/format
===================================================================
--- 1.3.3-dfsg1-4/debian/source/format (nonexistent)
+++ 1.3.3-dfsg1-4/debian/source/format (revision 180)
@@ -0,0 +1 @@
+3.0 (quilt)
Index: 1.3.3-dfsg1-4/debian/prayer-accountd.8
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-accountd.8 (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-accountd.8 (revision 180)
@@ -0,0 +1,78 @@
+.Dd 27 March 2011
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-ACCOUNTD 8
+.Sh NAME
+.Nm prayer-accountd
+.Nd Prayer system account helper daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -enable-fork | -disable-fork
+.
+.Sh DESCRIPTION
+.Nm
+is an auxilliary daemon that allows users to perform various tasks
+with respect to their UNIX system account:
+.Bl -bullet
+.It
+Change passwords
+.It
+Change their name
+.It
+Check filesystem quota
+.El
+.Pp
+Furthermore it can help users set up an
+.Sy ( Exim-only )
+.Pa .forward
+file for Spam filtering, vacation auto-replies etc.
+.Pp
+.Nm
+can be installed on a separate host from the main Prayer services if necessary.
+It needs to be able to run
+.Xr passwd 1 ,
+.Xr chfn 1 ,
+and
+.Xr quota 1
+for the user, and access users' home directories.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -enable-fork
+Fork subprocesses as requests come in. This is the default.
+.It Fl -disable-fork
+Don't fork; process one request in at the time (debug mode).
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/accountd.cf
+Default configuration file.
+.El
+.
+.Sh BUGS
+.Nm
+is rather customized to the needs of the University of Cambridge,
+though some patches have been applied to the Debian package. System
+administrators should study the source code to see what this means.
+.
+.Sh AUTHORS
+.
+This introductory manual page was put together for Debian by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org> .
Index: 1.3.3-dfsg1-4/debian/prayer-accountd.init
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-accountd.init (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.3-dfsg1-4/debian/prayer.init
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.init (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.3-dfsg1-4/debian/Config
===================================================================
--- 1.3.3-dfsg1-4/debian/Config (nonexistent)
+++ 1.3.3-dfsg1-4/debian/Config (revision 180)
@@ -0,0 +1,154 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+TIDY_ENABLE = true # Use libtidy for HTML sanitisation
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Tidy library (required if TIDY_ENABLE set)
+TIDY_INCLUDE=-I/usr/include/tidy
+TIDY_LIBS=-ltidy
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.3-dfsg1-4/debian/prayer-templates-dev.install
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,5 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer/template_structs.h
+/usr/include/prayer/misc.h
+/usr/share/prayer/*.make
Index: 1.3.3-dfsg1-4/debian/prayer-templates-src.install
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.3-dfsg1-4/debian/prayer-templates-src.docs
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.3-dfsg1-4/debian/prayer.docs
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.docs (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.3-dfsg1-4/debian/prayer.NEWS
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.NEWS (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.3-dfsg1-4/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.3-dfsg1-4/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.3-dfsg1-4/debian/prayer.install
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.install (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.3-dfsg1-4/debian/prayer.dirs
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.dirs (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.3-dfsg1-4/debian/prayer.links
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.links (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.3-dfsg1-4/debian/README.Debian
===================================================================
--- 1.3.3-dfsg1-4/debian/README.Debian (nonexistent)
+++ 1.3.3-dfsg1-4/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.3-dfsg1-4/debian/watch
===================================================================
--- 1.3.3-dfsg1-4/debian/watch (nonexistent)
+++ 1.3.3-dfsg1-4/debian/watch (revision 180)
@@ -0,0 +1,10 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.3-dfsg1-4/debian/copyright
===================================================================
--- 1.3.3-dfsg1-4/debian/copyright (nonexistent)
+++ 1.3.3-dfsg1-4/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.3-dfsg1-4/debian/prayer.manpages
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.manpages (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.3-dfsg1-4/debian/prayer.postinst
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.postinst (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.3-dfsg1-4/debian/prayer.postrm
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.postrm (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.3-dfsg1-4/debian/prayer.default
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.default (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.3-dfsg1-4/debian/prayer.examples
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.examples (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.3-dfsg1-4/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.3-dfsg1-4/debian/prayer.lintian-overrides
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.3-dfsg1-4/debian/prayer-accountd.docs
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.3-dfsg1-4/debian/prayer.logrotate
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer.logrotate (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.3-dfsg1-4/debian/prayer-accountd.install
===================================================================
--- 1.3.3-dfsg1-4/debian/prayer-accountd.install (nonexistent)
+++ 1.3.3-dfsg1-4/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.3-dfsg1-4/debian
===================================================================
--- 1.3.3-dfsg1-4/debian (nonexistent)
+++ 1.3.3-dfsg1-4/debian (revision 180)
/1.3.3-dfsg1-4/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.3-dfsg1-4
===================================================================
--- 1.3.3-dfsg1-4 (nonexistent)
+++ 1.3.3-dfsg1-4 (revision 180)
/1.3.3-dfsg1-4
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.3-dfsg1-1/debian/changelog
===================================================================
--- 1.3.3-dfsg1-1/debian/changelog (nonexistent)
+++ 1.3.3-dfsg1-1/debian/changelog (revision 180)
@@ -0,0 +1,325 @@
+prayer (1.3.3-dfsg1-1) unstable; urgency=low
+
+ * New upstream release.
+ - Dropped kfreebsd.patch, clean_completely.patch, and
+ manpage_error.patch; all incorporated upstream.
+ * makefile_install_config.patch: Updated; some parts incorporated
+ upstream.
+ * prayer-templates-dev.install: Only template_structs.h and misc.h
+ needed henceforth, since only those files are #included by compiled
+ templates.
+ * template_sdk.patch: The #include that templates/src/build_index.pl
+ generates was not changed, though.
+ * debian/Config, debian/control: Enable libtidy for HTML parsing and
+ sanitisation, fixing certain XSS problems, which were due to simple
+ substring matching being used.
+ * prayer.init, prayer-accountd.init: Add $remote_fs to, and move
+ $local_fs to, Required-Start.
+ * Upgrade to Standards-Version 3.9.0:
+ * Use Breaks instead of Conflicts to handle the renaming of
+ prayer-templates.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 22 Jul 2010 03:27:52 +0200
+
+prayer (1.3.2-dfsg1-4) unstable; urgency=low
+
+ * Undo inadvertent inclusion of /usr/include/prayer in
+ prayer-templates-src (Closes: #557056).
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
+
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.3-dfsg1-1/debian/patches/template_sdk.patch
===================================================================
--- 1.3.3-dfsg1-1/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.3-dfsg1-1/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,207 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB) $(BASE_LIBS)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB) $(BASE_LIBS)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- a/templates/src/makedeps.pl
++++ b/templates/src/makedeps.pl
+@@ -4,51 +4,44 @@
+ #
+ # Generate proper list of dependancies between templates
+
+-%uses = ();
++my %index = ();
++my %uses = ();
+
+-while ($file=shift(@ARGV)) {
+- $file = $1 if ($file =~ /([\w-_]+)\.t/);
++sub scan {
++ my ($file) = @_;
+
+- open(FILE, "<${file}.t") or die "failed to open ${file}: $!\n";
+-
+- while (<FILE>) {
+- next unless /^%\s+CALL ([\w-_]+)/;
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
+
+- $uses{$file} = [] if (not $uses{$file});
+- push(@{$uses{$file}}, $1);
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
+ }
+-
+- close(FILE);
++ return $uses{$file}
+ }
+
+-foreach $i (sort keys %uses) {
+- # Sort and uniq
+- @{$uses{$i}} = keys %{{ map { $_ => 1 } sort(@{$uses{$i}}) }};
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
+ }
++my $name = shift;
+
+-foreach $i (sort keys %uses) {
+- printf("%s.html: %s.t", $i, $i);
+- foreach $j (@{$uses{$i}}) {
+- @list = ();
+- recurse($j, {}, \@list);
+- foreach $k (@list) {
+- printf(" %s.t", $k);
+- }
+- }
+- printf("\n");
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
+ }
+
+-exit(0);
+-
+-sub recurse {
+- my ($i, $usedref, $listref) = @_;
+-
+- # Remove repeated references to any given template/
+- return if defined($$usedref{$i});
+- $$usedref{$i} = 1;
+-
+- push (@{$listref}, $i);
+- foreach $j (@{$uses{$i}}) {
+- recurse($j, $usedref, $listref);
+- }
+-}
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
+--- a/templates/src/build_index.pl
++++ b/templates/src/build_index.pl
+@@ -18,7 +18,8 @@ foreach $i (@ARGV) {
+ @templates = sort(@templates);
+
+ print <<'EOM';
+-#include "lib.h"
++#include "misc.h"
++#include "template_structs.h"
+
+ EOM
+
Index: 1.3.3-dfsg1-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.3-dfsg1-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.3-dfsg1-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,170 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,8 +282,9 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+@@ -376,13 +364,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
+-
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -411,10 +401,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -422,7 +413,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -436,7 +427,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -454,7 +445,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -603,14 +594,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.3.3-dfsg1-1/debian/patches/series
===================================================================
--- 1.3.3-dfsg1-1/debian/patches/series (nonexistent)
+++ 1.3.3-dfsg1-1/debian/patches/series (revision 180)
@@ -0,0 +1,5 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+template_sdk.patch
Index: 1.3.3-dfsg1-1/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.3-dfsg1-1/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.3-dfsg1-1/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,226 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,6 +115,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,6 +114,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -73,7 +73,7 @@ ifeq ($(strip $(CCLIENT_KERB_ENABLE)), t
+ endif
+
+ MYCFLAGS = $(BASECFLAGS) $(SERVER_SSL_INCLUDE) $(CCLIENT_INCLUDE)
+-MYLDFLAGS = $(BASELDFLAGS)
++MYLDFLAGS = $(BASELDFLAGS) -ldl
+
+ TEMPLATES= ../templates/index.o \
+ ../templates/old/templates.a \
+@@ -84,15 +84,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -212,6 +212,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
Index: 1.3.3-dfsg1-1/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.3-dfsg1-1/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.3-dfsg1-1/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.3-dfsg1-1/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.3-dfsg1-1/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.3-dfsg1-1/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -444,7 +444,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.3-dfsg1-1/debian/patches/sighandling.patch
===================================================================
--- 1.3.3-dfsg1-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.3-dfsg1-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.3-dfsg1-1/debian/control
===================================================================
--- 1.3.3-dfsg1-1/debian/control (nonexistent)
+++ 1.3.3-dfsg1-1/debian/control (revision 180)
@@ -0,0 +1,104 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007e-dev | libc-client2007b-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev, libtidy-dev
+Standards-Version: 3.9.0
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: prayer-templates-src, ${misc:Depends}
+Description: dummy package depending on prayer-templates-src
+ The Prayer template source package is now called prayer-templates-src.
+ This package can safely be removed after upgrade.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Breaks: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.3-dfsg1-1/debian/prayer-accountd.init
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-accountd.init (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.3-dfsg1-1/debian/prayer.init
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.init (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Should-Start:
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.3-dfsg1-1/debian/Config
===================================================================
--- 1.3.3-dfsg1-1/debian/Config (nonexistent)
+++ 1.3.3-dfsg1-1/debian/Config (revision 180)
@@ -0,0 +1,154 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+TIDY_ENABLE = true # Use libtidy for HTML sanitisation
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Tidy library (required if TIDY_ENABLE set)
+TIDY_INCLUDE=-I/usr/include/tidy
+TIDY_LIBS=-ltidy
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.3-dfsg1-1/debian/prayer-templates-dev.install
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,5 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer/template_structs.h
+/usr/include/prayer/misc.h
+/usr/share/prayer/*.make
Index: 1.3.3-dfsg1-1/debian/prayer-templates-src.install
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.3-dfsg1-1/debian/prayer-templates-src.docs
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.3-dfsg1-1/debian/prayer.docs
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.docs (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.3-dfsg1-1/debian/prayer.NEWS
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.NEWS (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.3-dfsg1-1/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.3-dfsg1-1/debian/rules
===================================================================
--- 1.3.3-dfsg1-1/debian/rules (nonexistent)
+++ 1.3.3-dfsg1-1/debian/rules (revision 180)
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_prayer-templates = --link-doc=prayer-templates-src
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.3-dfsg1-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.3-dfsg1-1/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.3-dfsg1-1/debian/prayer.install
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.install (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.3-dfsg1-1/debian/prayer.dirs
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.dirs (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.3-dfsg1-1/debian/prayer.links
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.links (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.3-dfsg1-1/debian/README.Debian
===================================================================
--- 1.3.3-dfsg1-1/debian/README.Debian (nonexistent)
+++ 1.3.3-dfsg1-1/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.3-dfsg1-1/debian/watch
===================================================================
--- 1.3.3-dfsg1-1/debian/watch (nonexistent)
+++ 1.3.3-dfsg1-1/debian/watch (revision 180)
@@ -0,0 +1,10 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.3-dfsg1-1/debian/copyright
===================================================================
--- 1.3.3-dfsg1-1/debian/copyright (nonexistent)
+++ 1.3.3-dfsg1-1/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.3-dfsg1-1/debian/prayer.manpages
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.manpages (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.3-dfsg1-1/debian/README.source
===================================================================
--- 1.3.3-dfsg1-1/debian/README.source (nonexistent)
+++ 1.3.3-dfsg1-1/debian/README.source (revision 180)
@@ -0,0 +1,8 @@
+This package uses quilt to manage all modifications to the upstream
+source. Changes are stored in the source package as diffs in
+debian/patches and applied during the build. For basic usage
+information, see
+
+ /usr/share/doc/quilt/README.source
+
+(after installing quilt).
Index: 1.3.3-dfsg1-1/debian/prayer.postinst
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.postinst (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.3-dfsg1-1/debian/prayer.postrm
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.postrm (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.3-dfsg1-1/debian/prayer.default
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.default (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.3-dfsg1-1/debian/prayer.examples
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.examples (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.3-dfsg1-1/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.3-dfsg1-1/debian/prayer.lintian-overrides
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.3-dfsg1-1/debian/compat
===================================================================
--- 1.3.3-dfsg1-1/debian/compat (nonexistent)
+++ 1.3.3-dfsg1-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.3.3-dfsg1-1/debian/prayer-accountd.docs
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.3-dfsg1-1/debian/prayer.logrotate
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer.logrotate (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.3-dfsg1-1/debian/prayer-accountd.install
===================================================================
--- 1.3.3-dfsg1-1/debian/prayer-accountd.install (nonexistent)
+++ 1.3.3-dfsg1-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.3-dfsg1-1/debian
===================================================================
--- 1.3.3-dfsg1-1/debian (nonexistent)
+++ 1.3.3-dfsg1-1/debian (revision 180)
/1.3.3-dfsg1-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.3-dfsg1-1
===================================================================
--- 1.3.3-dfsg1-1 (nonexistent)
+++ 1.3.3-dfsg1-1 (revision 180)
/1.3.3-dfsg1-1
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.2-dfsg1-4/debian/prayer-templates-src.install
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.3.2-dfsg1-4/debian/changelog
===================================================================
--- 1.3.2-dfsg1-4/debian/changelog (nonexistent)
+++ 1.3.2-dfsg1-4/debian/changelog (revision 180)
@@ -0,0 +1,302 @@
+prayer (1.3.2-dfsg1-4) unstable; urgency=low
+
+ * Undo inadvertent inclusion of /usr/include/prayer in
+ prayer-templates-src (Closes: #557056).
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Nov 2009 23:14:12 +0100
+
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.2-dfsg1-4/debian/control
===================================================================
--- 1.3.2-dfsg1-4/debian/control (nonexistent)
+++ 1.3.2-dfsg1-4/debian/control (revision 180)
@@ -0,0 +1,104 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007e-dev | libc-client2007b-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev
+Standards-Version: 3.8.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: prayer-templates-src, ${misc:Depends}
+Description: dummy package depending on prayer-templates-src
+ The Prayer template source package is now called prayer-templates-src.
+ This package can safely be removed after upgrade.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Conflicts: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.2-dfsg1-4/debian/patches/template_sdk.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,158 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a $(BASE_LIBS)
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- /dev/null
++++ b/templates/src/makedeps.pl
+@@ -0,0 +1,45 @@
++#!/usr/bin/perl
++#
++# Generate proper list of dependancies between templates
++
++my %index = ();
++my %uses = ();
++
++sub scan {
++ my ($file) = @_;
++
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
++
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
++ }
++ return $uses{$file}
++}
++
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
++}
++my $name = shift;
++
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
++}
++
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.2-dfsg1-4/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,226 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,6 +115,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,6 +114,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -73,7 +73,7 @@ ifeq ($(strip $(CCLIENT_KERB_ENABLE)), t
+ endif
+
+ MYCFLAGS = $(BASECFLAGS) $(SERVER_SSL_INCLUDE) $(CCLIENT_INCLUDE)
+-MYLDFLAGS = $(BASELDFLAGS)
++MYLDFLAGS = $(BASELDFLAGS) -ldl
+
+ TEMPLATES= ../templates/index.o \
+ ../templates/old/templates.a \
+@@ -84,15 +84,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -212,6 +212,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
Index: 1.3.2-dfsg1-4/debian/patches/series
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/series (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+kfreebsd.patch
+clean_completely.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+manpage_error.patch
+template_sdk.patch
Index: 1.3.2-dfsg1-4/debian/patches/manpage_error.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/manpage_error.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/manpage_error.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/man/prayer-session.8
++++ b/man/prayer-session.8
+@@ -72,7 +72,7 @@ Location of standard templates. The temp
+ .Nm
+ for performance reasons, so the template files are actually not
+ used, but they are available for customization.
+-.
++.El
+ .Sh SEE ALSO
+ .
+ .Xr prayer 8 ,
Index: 1.3.2-dfsg1-4/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.2-dfsg1-4/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,199 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,26 +282,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -376,13 +364,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
+-
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -411,10 +401,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -422,7 +413,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -436,7 +427,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -454,7 +445,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -603,14 +594,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -167,7 +167,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "xhtml_strict";
++ config->template_set = "old";
+ config->template_use_compiled = T;
+ config->template_list = NIL;
+
Index: 1.3.2-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -444,7 +444,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.2-dfsg1-4/debian/patches/clean_completely.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/clean_completely.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/clean_completely.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -71,7 +71,7 @@ mymutex.o: mymutex.c mymutex_sem.c mymu
+ $(CC) $(MYCFLAGS) $(MUTEX_DEF) -c $<
+
+ clean:
+- rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\#
++ rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\# $(TARGETS)
+
+ install: all
+ cp template_expand template_compile ../bin
Index: 1.3.2-dfsg1-4/debian/patches/kfreebsd.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/kfreebsd.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/kfreebsd.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/lib/os.c
++++ b/lib/os.c
+@@ -26,7 +26,7 @@
+ #include "os_linux.c"
+ #elif (defined(SOLARIS))
+ #include "os_solaris.c"
+-#elif (defined(BSD) && BSD >= 199306)
++#elif defined(__FreeBSD_kernel__) || (defined(BSD) && BSD >= 199306)
+ #include "os_bsd.c"
+ #else
+ #error "No support for this operating system yet. Sorry!"
+--- a/lib/os_bsd.c
++++ b/lib/os_bsd.c
+@@ -16,8 +16,12 @@
+ #include <arpa/inet.h>
+ #include <signal.h>
+ #include <netdb.h>
+-
++#ifdef __GLIBC__
++#include <sys/file.h>
++#include <pty.h>
++#else
+ #include <libutil.h>
++#endif
+
+ /* ====================================================================== */
+
+--- a/lib/mymutex.c
++++ b/lib/mymutex.c
+@@ -9,7 +9,7 @@
+
+ #include "lib.h"
+
+-#ifdef MUTEX_SEMAPHORE
++#if defined(MUTEX_SEMAPHORE) && !defined(__stub_semtimedop)
+ # include "mymutex_sem.c"
+ #else
+ # include "mymutex_file.c"
Index: 1.3.2-dfsg1-4/debian/patches/sighandling.patch
===================================================================
--- 1.3.2-dfsg1-4/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.2-dfsg1-4/debian/prayer-templates-src.docs
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.2-dfsg1-4/debian/prayer.docs
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.docs (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.2-dfsg1-4/debian/prayer.NEWS
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.NEWS (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.2-dfsg1-4/debian/prayer-templates-dev.install
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,4 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer
+/usr/share/prayer/*.make
Index: 1.3.2-dfsg1-4/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.2-dfsg1-4/debian/rules
===================================================================
--- 1.3.2-dfsg1-4/debian/rules (nonexistent)
+++ 1.3.2-dfsg1-4/debian/rules (revision 180)
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_prayer-templates = --link-doc=prayer-templates-src
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.2-dfsg1-4/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.2-dfsg1-4/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.2-dfsg1-4/debian/prayer.install
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.install (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.2-dfsg1-4/debian/Config
===================================================================
--- 1.3.2-dfsg1-4/debian/Config (nonexistent)
+++ 1.3.2-dfsg1-4/debian/Config (revision 180)
@@ -0,0 +1,149 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.2-dfsg1-4/debian/prayer.dirs
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.dirs (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.2-dfsg1-4/debian/prayer.links
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.links (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.2-dfsg1-4/debian/README.Debian
===================================================================
--- 1.3.2-dfsg1-4/debian/README.Debian (nonexistent)
+++ 1.3.2-dfsg1-4/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.2-dfsg1-4/debian/watch
===================================================================
--- 1.3.2-dfsg1-4/debian/watch (nonexistent)
+++ 1.3.2-dfsg1-4/debian/watch (revision 180)
@@ -0,0 +1,10 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.2-dfsg1-4/debian/copyright
===================================================================
--- 1.3.2-dfsg1-4/debian/copyright (nonexistent)
+++ 1.3.2-dfsg1-4/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.2-dfsg1-4/debian/prayer.manpages
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.manpages (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.2-dfsg1-4/debian/README.source
===================================================================
--- 1.3.2-dfsg1-4/debian/README.source (nonexistent)
+++ 1.3.2-dfsg1-4/debian/README.source (revision 180)
@@ -0,0 +1,8 @@
+This package uses quilt to manage all modifications to the upstream
+source. Changes are stored in the source package as diffs in
+debian/patches and applied during the build. For basic usage
+information, see
+
+ /usr/share/doc/quilt/README.source
+
+(after installing quilt).
Index: 1.3.2-dfsg1-4/debian/prayer.postinst
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.postinst (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.2-dfsg1-4/debian/prayer.postrm
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.postrm (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.2-dfsg1-4/debian/prayer.default
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.default (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.2-dfsg1-4/debian/prayer.init
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.init (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.2-dfsg1-4/debian/prayer-accountd.init
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-accountd.init (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.2-dfsg1-4/debian/prayer.examples
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.examples (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.2-dfsg1-4/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.2-dfsg1-4/debian/prayer.lintian-overrides
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.2-dfsg1-4/debian/compat
===================================================================
--- 1.3.2-dfsg1-4/debian/compat (nonexistent)
+++ 1.3.2-dfsg1-4/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.3.2-dfsg1-4/debian/prayer-accountd.docs
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.2-dfsg1-4/debian/prayer.logrotate
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer.logrotate (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.2-dfsg1-4/debian/prayer-accountd.install
===================================================================
--- 1.3.2-dfsg1-4/debian/prayer-accountd.install (nonexistent)
+++ 1.3.2-dfsg1-4/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.2-dfsg1-4/debian
===================================================================
--- 1.3.2-dfsg1-4/debian (nonexistent)
+++ 1.3.2-dfsg1-4/debian (revision 180)
/1.3.2-dfsg1-4/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.2-dfsg1-4
===================================================================
--- 1.3.2-dfsg1-4 (nonexistent)
+++ 1.3.2-dfsg1-4 (revision 180)
/1.3.2-dfsg1-4
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.2-dfsg1-3/debian/control
===================================================================
--- 1.3.2-dfsg1-3/debian/control (nonexistent)
+++ 1.3.2-dfsg1-3/debian/control (revision 180)
@@ -0,0 +1,104 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007e-dev | libc-client2007b-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev
+Standards-Version: 3.8.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: prayer-templates-src, ${misc:Depends}
+Description: dummy package depending on prayer-templates-src
+ The Prayer template source package is now called prayer-templates-src.
+ This package can safely be removed after upgrade.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Conflicts: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.2-dfsg1-3/debian/changelog
===================================================================
--- 1.3.2-dfsg1-3/debian/changelog (nonexistent)
+++ 1.3.2-dfsg1-3/debian/changelog (revision 180)
@@ -0,0 +1,295 @@
+prayer (1.3.2-dfsg1-3) unstable; urgency=low
+
+ * Replace non-existing libc-client2007-dev with new libc-client2007e-dev
+ among the libc-client Build-Depends alternatives (Closes: #552717).
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 Oct 2009 13:57:08 +0100
+
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.2-dfsg1-3/debian/patches/template_sdk.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,158 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a $(BASE_LIBS)
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- /dev/null
++++ b/templates/src/makedeps.pl
+@@ -0,0 +1,45 @@
++#!/usr/bin/perl
++#
++# Generate proper list of dependancies between templates
++
++my %index = ();
++my %uses = ();
++
++sub scan {
++ my ($file) = @_;
++
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
++
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
++ }
++ return $uses{$file}
++}
++
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
++}
++my $name = shift;
++
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
++}
++
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.2-dfsg1-3/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,226 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,6 +115,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,6 +114,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -73,7 +73,7 @@ ifeq ($(strip $(CCLIENT_KERB_ENABLE)), t
+ endif
+
+ MYCFLAGS = $(BASECFLAGS) $(SERVER_SSL_INCLUDE) $(CCLIENT_INCLUDE)
+-MYLDFLAGS = $(BASELDFLAGS)
++MYLDFLAGS = $(BASELDFLAGS) -ldl
+
+ TEMPLATES= ../templates/index.o \
+ ../templates/old/templates.a \
+@@ -84,15 +84,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -212,6 +212,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
Index: 1.3.2-dfsg1-3/debian/patches/series
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/series (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+kfreebsd.patch
+clean_completely.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+manpage_error.patch
+template_sdk.patch
Index: 1.3.2-dfsg1-3/debian/patches/manpage_error.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/manpage_error.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/manpage_error.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/man/prayer-session.8
++++ b/man/prayer-session.8
+@@ -72,7 +72,7 @@ Location of standard templates. The temp
+ .Nm
+ for performance reasons, so the template files are actually not
+ used, but they are available for customization.
+-.
++.El
+ .Sh SEE ALSO
+ .
+ .Xr prayer 8 ,
Index: 1.3.2-dfsg1-3/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.2-dfsg1-3/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,199 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,26 +282,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -376,13 +364,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
+-
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -411,10 +401,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -422,7 +413,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -436,7 +427,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -454,7 +445,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -603,14 +594,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -167,7 +167,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "xhtml_strict";
++ config->template_set = "old";
+ config->template_use_compiled = T;
+ config->template_list = NIL;
+
Index: 1.3.2-dfsg1-3/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -444,7 +444,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.2-dfsg1-3/debian/patches/clean_completely.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/clean_completely.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/clean_completely.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -71,7 +71,7 @@ mymutex.o: mymutex.c mymutex_sem.c mymu
+ $(CC) $(MYCFLAGS) $(MUTEX_DEF) -c $<
+
+ clean:
+- rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\#
++ rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\# $(TARGETS)
+
+ install: all
+ cp template_expand template_compile ../bin
Index: 1.3.2-dfsg1-3/debian/patches/kfreebsd.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/kfreebsd.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/kfreebsd.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/lib/os.c
++++ b/lib/os.c
+@@ -26,7 +26,7 @@
+ #include "os_linux.c"
+ #elif (defined(SOLARIS))
+ #include "os_solaris.c"
+-#elif (defined(BSD) && BSD >= 199306)
++#elif defined(__FreeBSD_kernel__) || (defined(BSD) && BSD >= 199306)
+ #include "os_bsd.c"
+ #else
+ #error "No support for this operating system yet. Sorry!"
+--- a/lib/os_bsd.c
++++ b/lib/os_bsd.c
+@@ -16,8 +16,12 @@
+ #include <arpa/inet.h>
+ #include <signal.h>
+ #include <netdb.h>
+-
++#ifdef __GLIBC__
++#include <sys/file.h>
++#include <pty.h>
++#else
+ #include <libutil.h>
++#endif
+
+ /* ====================================================================== */
+
+--- a/lib/mymutex.c
++++ b/lib/mymutex.c
+@@ -9,7 +9,7 @@
+
+ #include "lib.h"
+
+-#ifdef MUTEX_SEMAPHORE
++#if defined(MUTEX_SEMAPHORE) && !defined(__stub_semtimedop)
+ # include "mymutex_sem.c"
+ #else
+ # include "mymutex_file.c"
Index: 1.3.2-dfsg1-3/debian/patches/sighandling.patch
===================================================================
--- 1.3.2-dfsg1-3/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.2-dfsg1-3/debian/prayer-templates-src.docs
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.2-dfsg1-3/debian/prayer.docs
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.docs (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.2-dfsg1-3/debian/prayer.NEWS
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.NEWS (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.2-dfsg1-3/debian/prayer-templates-dev.install
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,4 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer
+/usr/share/prayer/*.make
Index: 1.3.2-dfsg1-3/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.2-dfsg1-3/debian/prayer-templates-src.install
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1,2 @@
+usr/share/prayer/templates
+usr/include/prayer
Index: 1.3.2-dfsg1-3/debian/rules
===================================================================
--- 1.3.2-dfsg1-3/debian/rules (nonexistent)
+++ 1.3.2-dfsg1-3/debian/rules (revision 180)
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_prayer-templates = --link-doc=prayer-templates-src
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.2-dfsg1-3/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.2-dfsg1-3/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.2-dfsg1-3/debian/prayer.install
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.install (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.2-dfsg1-3/debian/Config
===================================================================
--- 1.3.2-dfsg1-3/debian/Config (nonexistent)
+++ 1.3.2-dfsg1-3/debian/Config (revision 180)
@@ -0,0 +1,149 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.2-dfsg1-3/debian/prayer.dirs
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.dirs (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.2-dfsg1-3/debian/prayer.links
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.links (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.2-dfsg1-3/debian/README.Debian
===================================================================
--- 1.3.2-dfsg1-3/debian/README.Debian (nonexistent)
+++ 1.3.2-dfsg1-3/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.2-dfsg1-3/debian/watch
===================================================================
--- 1.3.2-dfsg1-3/debian/watch (nonexistent)
+++ 1.3.2-dfsg1-3/debian/watch (revision 180)
@@ -0,0 +1,10 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.2-dfsg1-3/debian/copyright
===================================================================
--- 1.3.2-dfsg1-3/debian/copyright (nonexistent)
+++ 1.3.2-dfsg1-3/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.2-dfsg1-3/debian/prayer.manpages
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.manpages (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.2-dfsg1-3/debian/README.source
===================================================================
--- 1.3.2-dfsg1-3/debian/README.source (nonexistent)
+++ 1.3.2-dfsg1-3/debian/README.source (revision 180)
@@ -0,0 +1,8 @@
+This package uses quilt to manage all modifications to the upstream
+source. Changes are stored in the source package as diffs in
+debian/patches and applied during the build. For basic usage
+information, see
+
+ /usr/share/doc/quilt/README.source
+
+(after installing quilt).
Index: 1.3.2-dfsg1-3/debian/prayer.postinst
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.postinst (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.2-dfsg1-3/debian/prayer.postrm
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.postrm (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.2-dfsg1-3/debian/prayer.default
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.default (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.2-dfsg1-3/debian/prayer.init
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.init (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.2-dfsg1-3/debian/prayer-accountd.init
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-accountd.init (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.2-dfsg1-3/debian/prayer.examples
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.examples (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.2-dfsg1-3/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.2-dfsg1-3/debian/prayer.lintian-overrides
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.2-dfsg1-3/debian/compat
===================================================================
--- 1.3.2-dfsg1-3/debian/compat (nonexistent)
+++ 1.3.2-dfsg1-3/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.3.2-dfsg1-3/debian/prayer-accountd.docs
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.2-dfsg1-3/debian/prayer.logrotate
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer.logrotate (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.2-dfsg1-3/debian/prayer-accountd.install
===================================================================
--- 1.3.2-dfsg1-3/debian/prayer-accountd.install (nonexistent)
+++ 1.3.2-dfsg1-3/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.2-dfsg1-3/debian
===================================================================
--- 1.3.2-dfsg1-3/debian (nonexistent)
+++ 1.3.2-dfsg1-3/debian (revision 180)
/1.3.2-dfsg1-3/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.2-dfsg1-3
===================================================================
--- 1.3.2-dfsg1-3 (nonexistent)
+++ 1.3.2-dfsg1-3 (revision 180)
/1.3.2-dfsg1-3
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.3.2-dfsg1-2/debian/patches/template_sdk.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/template_sdk.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/template_sdk.patch (revision 180)
@@ -0,0 +1,158 @@
+--- a/templates/src/Makefile
++++ b/templates/src/Makefile
+@@ -11,7 +11,7 @@ LDFLAGS = $(BASELDFLAGS)
+
+ LIB= ../../lib/lib_nossl.a $(BASE_LIBS)
+
+-all: template_expand template_compile
++all: template_expand template_compile template-set.make
+
+ template_expand: template_expand_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_expand log.o empty.o template_expand_main.o $(LIB)
+@@ -19,10 +19,28 @@ template_expand: template_expand_main.o
+ template_compile: template_compile_main.o log.o empty.o $(LIB)
+ $(CC) $(LDFLAGS) -o template_compile log.o empty.o template_compile_main.o $(LIB)
+
++template-set.make: template-set.make.in
++ find_templates () { sed -rn 's/.*template_expand\("([^"]*)".*/\1/p' "$$@" | sort -u; };\
++ format_variable () { (echo $$1 '='; shift; echo -n ' '$$@) | fmt -c | sed '$$!s/$$/ \\/'; };\
++ (echo include $(PREFIX)/config.make; echo;\
++ format_variable TEMPLATES `find_templates ../../cmd/cmd_*`; echo;\
++ format_variable TEMPLATES_FRONTEND login `find_templates ../../servers/prayer*`; echo;\
++ cat template-set.make.in) > template-set.make
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+ install:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(BROOT)$(LIB_PREFIX) $(BROOT)$(PREFIX) $(BROOT)/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
++ template_compile template_expand build_index.pl makedeps.pl ${BROOT}${LIB_PREFIX}
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../lib/*.h ${BROOT}/usr/include/prayer
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ template-set.make ${BROOT}$(PREFIX)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ ../../Config ${BROOT}$(PREFIX)/config.make
+
+ clean:
+ rm -f template_expand template_compile *.o *~ \#*\#
+--- /dev/null
++++ b/templates/src/makedeps.pl
+@@ -0,0 +1,45 @@
++#!/usr/bin/perl
++#
++# Generate proper list of dependancies between templates
++
++my %index = ();
++my %uses = ();
++
++sub scan {
++ my ($file) = @_;
++
++ if (!exists $uses{$file}) {
++ grep {
++ $_ ne '' and open(FILE, '<', "$_/${file}.t")
++ } '.', split(/ :/, $ENV{'VPATH'} || '')
++ or die "failed to open ${file}: $!\n";
++ while (<FILE>) {
++ $uses{$file}{$1} = 1 if /^%\s+CALL ([\w-_]+)/;
++ }
++ close(FILE);
++
++ foreach (keys %{$uses{$file}}) {
++ $uses{$file}{$_} = 1 foreach keys %{scan($_)};
++ }
++ $uses{$file}{$file} = 1;
++ $index{$file} = 1;
++ }
++ return $uses{$file}
++}
++
++my $suffix = '';
++if ($ARGV[0] eq '--frontend') {
++ shift;
++ $suffix = '_frontend';
++}
++my $name = shift;
++
++$, = ' '; $\ = "\n";
++foreach my $i (@ARGV) {
++ $i =~ s/([\w-_]+)\.t/$1/;
++ print "$i.html:", map {"$_.t"} sort keys %{scan($i)};
++}
++
++my @all = sort keys %index;
++print "_template_index$suffix.c:", map {"$_.t"} @all;
++print "$name$suffix.so:", "_template_index$suffix.o", map {"$_.o"} @all;
+--- /dev/null
++++ b/templates/src/template-set.make.in
+@@ -0,0 +1,67 @@
++ifndef NAME
++NAME := $(notdir $(CURDIR))
++endif
++
++CPPFLAGS = -I/usr/include/prayer
++CFLAGS += -fPIC
++LDFLAGS_TEMPLATELIB = -shared -fPIC \
++ -Wl,--defsym=template_map=template_map_$(NAME) \
++ -Wl,--defsym=template_map_count=template_map_$(NAME)_count
++
++EXPAND = $(LIB_PREFIX)/template_expand
++COMPILE = $(LIB_PREFIX)/template_compile
++MKINDEX = $(LIB_PREFIX)/build_index.pl
++MKDEPS = $(LIB_PREFIX)/makedeps.pl
++
++SESSION_LIB = $(NAME)$(SHLIBEXT)
++FRONTEND_LIB = $(NAME)_frontend$(SHLIBEXT)
++TEMPLATE_LIBS ?= $(SESSION_LIB) $(FRONTEND_LIB)
++TARGETS ?= $(TEMPLATE_LIBS)
++
++VARS=$(filter-out common.vars,$(wildcard *.vars))
++HTML=$(VARS:.vars=.html)
++
++all: $(TARGETS)
++
++$(TEMPLATE_LIBS):
++ $(CC) $(LDFLAGS) $(LDFLAGS_TEMPLATELIB) -o $@ $^
++
++_template_index.c _template_index_frontend.c:
++ $(MKINDEX) $(NAME) $(^F) > $@
++
++%.c: %.t
++ $(COMPILE) $(NAME) $@ $(basename $<)
++
++install-sources:
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(PREFIX)/templates/$(NAME)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ *.t *.vars $(DESTDIR)$(PREFIX)/templates/$(NAME)
++
++install-libs: $(TEMPLATE_LIBS)
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) \
++ -d $(DESTDIR)$(LIB_PREFIX)/templates
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
++ $(TEMPLATE_LIBS) $(DESTDIR)$(LIB_PREFIX)/templates/
++
++clean:
++ rm -f $(TARGETS) *.html *.o *.c
++distclean: clean
++ rm -f *.d
++
++test: $(HTML)
++
++%.html: %.t %.vars common.vars
++ $(EXPAND) $@ $* common.vars $*.vars
++
++%_frontend.d: FRONTEND_FLAG = --frontend
++%_frontend.d: TEMPLATES = $(TEMPLATES_FRONTEND)
++export VPATH
++$(TEMPLATE_LIBS:$(SHLIBEXT)=.d):
++ $(MKDEPS) $(FRONTEND_FLAG) $(NAME) $(TEMPLATES) > $@
++ sed -ri 's/^(_template_index[^:]*)/\1 $@/' $@
++
++include $(TEMPLATE_LIBS:$(SHLIBEXT)=.d)
++
++.PHONY: all install-sources install-libs clean distclean test
++.DELETE_ON_ERROR:
Index: 1.3.2-dfsg1-2/debian/patches/dlopen_templates.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/dlopen_templates.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/dlopen_templates.patch (revision 180)
@@ -0,0 +1,226 @@
+Experimental support for dynamically loading templates. Low-level template handling is unchanged;
+main programs call dlopen_templates() at appropriate times. If template set has changed, the old
+one is unloaded first.
+--- /dev/null
++++ b/shared/dlopen_templates.c
+@@ -0,0 +1,34 @@
++#include <dlfcn.h>
++#include "shared.h"
++
++struct template_map_index template_map_index[] = {
++ {NIL, NIL, NIL},
++ {NIL, NIL, NIL}
++};
++
++struct template_map_index *
++dlopen_templates(const char *set, const char *suffix)
++{
++ struct template_map_index *tmi = &template_map_index[0];
++ static void *handle = 0;
++
++ if (!handle || strcmp(tmi->name, set)) {
++ char *filename = pool_printf(NIL, "/usr/lib/prayer/templates/%s%s.so",
++ set, suffix);
++
++ if (handle) {
++ dlclose(handle);
++ free(tmi->name);
++ }
++ tmi->name = pool_strdup(NIL, set);
++ if (!(handle = dlopen(filename, RTLD_NOW))
++ || !(tmi->template_map = dlsym(handle, "template_map"))
++ || !(tmi->count = dlsym(handle, "template_map_count"))) {
++ log_fatal("Failed to load template library: %s",
++ dlerror());
++ }
++ log_debug("Loaded library %s with %d templates", filename, *tmi->count);
++ free(filename);
++ }
++ return tmi;
++}
+--- /dev/null
++++ b/shared/dlopen_templates.h
+@@ -0,0 +1 @@
++struct template_map_index *dlopen_templates(const char *set, const char *suffix);
+--- a/templates/cam/Makefile
++++ b/templates/cam/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=cam
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t login_hermes.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -111,6 +115,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -129,6 +139,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/templates/old/Makefile
++++ b/templates/old/Makefile
+@@ -6,12 +6,16 @@ else
+ include ../../Config
+ endif
+
+-CFLAGS = $(BASECFLAGS)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS) -fPIC
++LDFLAGS = $(BASELDFLAGS) -fPIC
++LDFLAGS_TEMPLATELIB = \
++ -Wl,--defsym=template_map=template_map_$(TYPE) \
++ -Wl,--defsym=template_map_count=template_map_$(TYPE)_count
++LDFLAGS += $(LDFLAGS_TEMPLATELIB)
+
+ TYPE=old
+
+-TARGETS=templates.a templates_frontend.a
++TARGETS=templates.a templates_frontend.a $(TYPE).so $(TYPE)_frontend.so
+
+ T_FILES_FRONTEND=login.t \
+ frontend_login_error.t frontend_security.t frontend_session.t \
+@@ -110,6 +114,12 @@ templates.a: $(O_FILES)
+ rm -f templates.a
+ ar q templates.a $(O_FILES)
+
++$(TYPE)_frontend.so: $(O_FILES_FRONTEND)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES_FRONTEND)
++
++$(TYPE).so: $(O_FILES)
++ $(CC) $(LDFLAGS) -shared -o $@ $(O_FILES)
++
+ %.o: %.c Makefile
+ $(CC) $(CFLAGS) -I../../lib -c $<
+
+@@ -128,6 +138,10 @@ install:
+ cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
++ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
++ $(BROOT)$(LIB_PREFIX)/templates
++ cp *.so $(BROOT)$(LIB_PREFIX)/templates/
++
+ clean:
+ rm -f $(TARGETS) *.html *.o *.c \#*\# *~
+
+--- a/servers/prayer_chroot.c
++++ b/servers/prayer_chroot.c
+@@ -255,6 +255,8 @@ int main(int argc, char *argv[])
+ if (list_length(prayer->http_port_list) == 0L)
+ prayer_fatal(prayer, "No HTTP or HTTPS ports active");
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->prayer_background && !want_foreground) {
+ pid_t pid = fork();
+
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -33,7 +33,7 @@ MYCFLAGS = $(BASECFLAGS)
+
+ SHARED_OBJS = \
+ config.o gzip.o html_common.o log.o \
+- request.o response.o user_agent.o
++ request.o response.o user_agent.o dlopen_templates.o
+
+
+ all: $(SHARED_OBJS)
+--- a/servers/prayer_main.c
++++ b/servers/prayer_main.c
+@@ -290,6 +290,8 @@ int main(int argc, char *argv[])
+
+ prayer_log_open(prayer);
+
++ dlopen_templates(config->template_set, "_frontend");
++
+ if (config->limit_vm)
+ os_limit_vm(config->limit_vm);
+
+--- a/shared/shared.h
++++ b/shared/shared.h
+@@ -40,3 +40,4 @@ extern int errno; /* just
+ #include "setproctitle.h"
+ #include "mymutex.h"
+ #include "log.h"
++#include "dlopen_templates.h"
+--- a/servers/Makefile
++++ b/servers/Makefile
+@@ -73,7 +73,7 @@ ifeq ($(strip $(CCLIENT_KERB_ENABLE)), t
+ endif
+
+ MYCFLAGS = $(BASECFLAGS) $(SERVER_SSL_INCLUDE) $(CCLIENT_INCLUDE)
+-MYLDFLAGS = $(BASELDFLAGS)
++MYLDFLAGS = $(BASELDFLAGS) -ldl
+
+ TEMPLATES= ../templates/index.o \
+ ../templates/old/templates.a \
+@@ -84,15 +84,13 @@ TEMPLATES_FRONTEND= ../templates/index.o
+ ../templates/cam/templates_frontend.a
+
+ PRAYER_OBJS= prayer.o prayer_login.o prayer_server.o portlist.o \
+- ../shared/shared.a $(LIB) $(TEMPLATES_FRONTEND)
++ ../shared/shared.a $(LIB)
+
+ SESSION_OBJS= \
+ session_config.o session_exchange.o session_unix.o session_server.o \
+ session_main.o portlist.o ../cmd/cmd.a ../session/session.a \
+ ../shared/shared.a ../lib/lib_nossl.a
+
+-SESSION_OBJS += $(TEMPLATES)
+-
+ #########################################################################
+
+ all: $(BIN)
+--- a/Makefile
++++ b/Makefile
+@@ -28,7 +28,7 @@ install-cert:
+ install:
+ $(MAKE) -C files install
+ $(MAKE) -C man install
+-# $(MAKE) -C templates install
++ $(MAKE) -C templates install
+ $(MAKE) -C servers install
+ $(MAKE) -C utils install
+ ifeq ($(strip $(ACCOUNTD_ENABLE)), true)
+--- a/servers/session_exchange.c
++++ b/servers/session_exchange.c
+@@ -212,6 +212,8 @@ BOOL session_exchange(struct session * s
+ else
+ template_set = config->template_set; /* Safe default */
+
++ dlopen_templates(template_set, "");
++
+ /* Set up template_vars ready for dispatch */
+ session->template_vals = tvals
+ = template_vals_create(request->pool,
Index: 1.3.2-dfsg1-2/debian/patches/series
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/series (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+kfreebsd.patch
+clean_completely.patch
+dlopen_templates.patch
+unbrand_cam_template.patch
+manpage_error.patch
+template_sdk.patch
Index: 1.3.2-dfsg1-2/debian/patches/manpage_error.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/manpage_error.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/manpage_error.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/man/prayer-session.8
++++ b/man/prayer-session.8
+@@ -72,7 +72,7 @@ Location of standard templates. The temp
+ .Nm
+ for performance reasons, so the template files are actually not
+ used, but they are available for customization.
+-.
++.El
+ .Sh SEE ALSO
+ .
+ .Xr prayer 8 ,
Index: 1.3.2-dfsg1-2/debian/patches/unbrand_cam_template.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/unbrand_cam_template.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/unbrand_cam_template.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/templates/cam/compose_toolbar.t
++++ b/templates/cam/compose_toolbar.t
+@@ -2,8 +2,6 @@
+ <div id="skip"> <a href="#skip-content" accesskey="2">Skip to content</a></div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" /></a>
+ </div>
+ <div id="change-to">
+ <div class="change">
+--- a/templates/cam/login.t
++++ b/templates/cam/login.t
+@@ -42,11 +42,6 @@ table#login td input {margin:0 0 0.5em 0
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+-<a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/identifier.gif"
+- alt="University of Cambridge" class="ucam" />
+- <img src="/icons/ucs.gif" alt="" class="logo" />
+-</a>
+ </div>
+ </div>
+ %
+--- a/templates/cam/toolbar.t
++++ b/templates/cam/toolbar.t
+@@ -4,9 +4,7 @@
+ href="#skip-content" accesskey="2">Skip to content</a> </div>
+ <div id="header">
+ <div id="branding">
+- <a href="http://www.cam.ac.uk/" accesskey="1">
+- <img src="/icons/ucs-id-small.jpg" alt="" class="logo" />
+-</a></div>
++</div>
+ <div id="change-to">
+ <form method="post" accept-charset="UTF-8"
+ enctype="multipart/form-data" action="<% change |s %>">
Index: 1.3.2-dfsg1-2/debian/patches/makefile_install_config.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,199 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -66,21 +66,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} --mode "a-x+X" icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -270,11 +270,11 @@ icon_expire_timeout = 7d
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -282,26 +282,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -376,13 +364,15 @@ sendmail_path = /usr/lib/sendmail
+ ispell_path = /usr/bin/ispell
+
+ # Message of the day file
+-motd_path = "$prefix/etc/motd.html"
+-
+-# HTML to insert into login page
+-#login_insert1_path = "$prefix/etc/ucsnews.html"
++#motd_path = "/etc/prayer/motd.html"
+
+-# HTML to insert into login page
+-#login_insert2_path = "$prefix/etc/ucsnews.html"
++# HTML to make available to login template as $login_insert1
++# (only used in "cam" template set).
++#login_insert1_path = "/etc/prayer/login1.html"
++
++# HTML to make available to login template as $login_insert2
++# (currently not used in any template set).
++#login_insert2_path = "/etc/prayer/login2.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -411,10 +401,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -422,7 +413,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -436,7 +427,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -454,7 +445,7 @@ pid_dir = "$var_prefix/pid"
+ # Template stuff
+
+ template_path = "__PREFIX__/templates"
+-template_set = "cam"
++template_set = "old"
+ template_use_compiled = TRUE
+
+ template old "Traditional"
+@@ -603,14 +594,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -167,7 +167,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "xhtml_strict";
++ config->template_set = "old";
+ config->template_use_compiled = T;
+ config->template_list = NIL;
+
Index: 1.3.2-dfsg1-2/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -475,11 +475,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -558,11 +558,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())\n",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -444,7 +444,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "old"
+ template_use_compiled = TRUE
+
Index: 1.3.2-dfsg1-2/debian/patches/clean_completely.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/clean_completely.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/clean_completely.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -71,7 +71,7 @@ mymutex.o: mymutex.c mymutex_sem.c mymu
+ $(CC) $(MYCFLAGS) $(MUTEX_DEF) -c $<
+
+ clean:
+- rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\#
++ rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\# $(TARGETS)
+
+ install: all
+ cp template_expand template_compile ../bin
Index: 1.3.2-dfsg1-2/debian/patches/kfreebsd.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/kfreebsd.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/kfreebsd.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/lib/os.c
++++ b/lib/os.c
+@@ -26,7 +26,7 @@
+ #include "os_linux.c"
+ #elif (defined(SOLARIS))
+ #include "os_solaris.c"
+-#elif (defined(BSD) && BSD >= 199306)
++#elif defined(__FreeBSD_kernel__) || (defined(BSD) && BSD >= 199306)
+ #include "os_bsd.c"
+ #else
+ #error "No support for this operating system yet. Sorry!"
+--- a/lib/os_bsd.c
++++ b/lib/os_bsd.c
+@@ -16,8 +16,12 @@
+ #include <arpa/inet.h>
+ #include <signal.h>
+ #include <netdb.h>
+-
++#ifdef __GLIBC__
++#include <sys/file.h>
++#include <pty.h>
++#else
+ #include <libutil.h>
++#endif
+
+ /* ====================================================================== */
+
+--- a/lib/mymutex.c
++++ b/lib/mymutex.c
+@@ -9,7 +9,7 @@
+
+ #include "lib.h"
+
+-#ifdef MUTEX_SEMAPHORE
++#if defined(MUTEX_SEMAPHORE) && !defined(__stub_semtimedop)
+ # include "mymutex_sem.c"
+ #else
+ # include "mymutex_file.c"
Index: 1.3.2-dfsg1-2/debian/patches/sighandling.patch
===================================================================
--- 1.3.2-dfsg1-2/debian/patches/sighandling.patch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.3.2-dfsg1-2/debian/prayer-templates-src.docs
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-templates-src.docs (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-templates-src.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.2-dfsg1-2/debian/changelog
===================================================================
--- 1.3.2-dfsg1-2/debian/changelog (nonexistent)
+++ 1.3.2-dfsg1-2/debian/changelog (revision 180)
@@ -0,0 +1,288 @@
+prayer (1.3.2-dfsg1-2) unstable; urgency=low
+
+ * dlopen_templates.patch:
+ * templates/{cam,old}/Makefile: Define the symbols template_map and
+ template_map_count as aliases to the template_$(TYPE)_map and
+ template_$(TYPE)_map_count when linking, so that template libraries
+ can be loaded by other names than the original one. Also remove some
+ cruft.
+ * shared/dlopen_templates.c: Use those symbols instead.
+ * Add symlinks so that template_set = xhtml_strict will still work.
+ * Update the names of the directories for locally modified templates
+ (under /etc/prayer/templates) to reflect the new template names.
+ * template_sdk.patch (new): Create makefile for building template set
+ libraries. Install it together with binaries and scripts needed.
+ * Rename prayer-templates as prayer-templates-src and add new binary
+ package prayer-templates-dev containing the aforementioned
+ template-building tools as well as a README.Debian explaining how to
+ use it all.
+ * Ship NEWS.Debian only in the prayer package. Ship TEMPLATES in
+ prayer-templates-src in addition to prayer-templates-dev.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 25 Oct 2009 19:22:13 +0100
+
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #546918).
+ * The set of available template sets has changed and several
+ obsolete configuration options are no longer recognized. Please
+ see NEWS.Debian for more information.
+ - Repacked without University of Cambridge logos with dubious
+ copyright/license status (more info in debian/copyright).
+ - unbrand_cam_template.patch: Remove said Cambridge-specific graphics
+ from 'cam' template set.
+ - Drop unlimit_login_username.patch (fixed upstream when replacing
+ the old login screen with frontend templates) and
+ usernames_with_at.patch (incorporated upstream).
+ * clean_completely.patch: Partially implemented upstream.
+ * Manpages incorporated upstream.
+ * dlopen_templates.patch: Experimental support for dynamically loading
+ templates.
+ * Update README.Debian.
+ * makefile_install_config.patch(share/config.c): Change default
+ template_set to "old".
+ * makefile_install_config.patch(files/Makefile): Fix permissions on
+ icons and static files.
+ * manpage_error.patch: Fix missing .El in prayer-session(8).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 07 Oct 2009 22:50:45 +0200
+
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.3.2-dfsg1-2/debian/prayer.docs
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.docs (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.docs (revision 180)
@@ -0,0 +1,10 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.2-dfsg1-2/debian/prayer.NEWS
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.NEWS (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.NEWS (revision 180)
@@ -0,0 +1,21 @@
+prayer (1.3.2-dfsg1-1) unstable; urgency=low
+
+ * This version of Prayer Webmail (again) changes the set of available
+ templates sets. The "xhtml_transitional" set is removed and
+ "xhtml_strict" is now called "old". A new set is added: "cam" is the
+ style used at the University of Cambridge.
+ * This version also removes several obsolete configuration options:
+ - login_prefix_path, login_suffix_path: login page is now a
+ template.
+ - session_banner_path, help_dir, contact_email: unused since
+ templates were introduced in 1.2.0.
+ - contact_warning: unused since before 1.0.18.
+ - use_embed_http, http_icon_embed, http_icon_port: Serving icons from
+ a different port is no longer supported.
+ - is_netscape4: Netscape 4 is long obsolete.
+ * You will probably have to edit /etc/prayer/prayer.cf to choose a new
+ default template set and delete any instances of the aforementioned
+ configuration options.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 04 Oct 2009 20:36:42 +0200
+
Index: 1.3.2-dfsg1-2/debian/prayer-templates-dev.install
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-templates-dev.install (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-templates-dev.install (revision 180)
@@ -0,0 +1,4 @@
+/usr/lib/prayer/template_*
+/usr/lib/prayer/*.pl
+/usr/include/prayer
+/usr/share/prayer/*.make
Index: 1.3.2-dfsg1-2/debian/control
===================================================================
--- 1.3.2-dfsg1-2/debian/control (nonexistent)
+++ 1.3.2-dfsg1-2/debian/control (revision 180)
@@ -0,0 +1,104 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev
+Standards-Version: 3.8.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates-src, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: prayer-templates-src, ${misc:Depends}
+Description: dummy package depending on prayer-templates-src
+ The Prayer template source package is now called prayer-templates-src.
+ This package can safely be removed after upgrade.
+
+Package: prayer-templates-src
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.3.0)
+Replaces: prayer-templates (<< 1.3.2-dfsg1-2)
+Conflicts: prayer-templates (<< 1.3.2-dfsg1-2)
+Suggests: prayer-templates-dev
+Description: templates for customizing Prayer Webmail
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are included with the main prayer package in
+ compiled form, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-templates-dev
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, make, gcc
+Suggests: prayer-templates-src, prayer
+Description: tools for compiling Prayer templates
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer uses its own macro expansion language for the HTML it
+ outputs. This package contains the programs and scripts needed to
+ build template libraries, as well as a makefile to facilitate the
+ process.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.3.2-dfsg1-2/debian/prayer-templates-dev.README.Debian
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-templates-dev.README.Debian (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-templates-dev.README.Debian (revision 180)
@@ -0,0 +1,73 @@
+How to build new template packages for Prayer Webmail
+=================================================
+
+Prayer uses its own macro expansion language, which is documented in
+TEMPLATES. The templates (filename extension .t) are first translated
+into C code (actually no executable code, merely data structures),
+which is then compiled to object form. Originally, the object files
+had to be linked with the prayer executables, but as a Debian
+extension they can be assembled in shared libraries and loaded
+dynamically.
+
+This package contains the programs and scripts needed to build
+template libraries, as well as a makefile to facilitate the process.
+
+
+template-set.make
+-----------------
+
+/usr/share/prayer/template-set.make can be used directly (via make -f)
+or included from an ordinary Makefile.
+
+The variable NAME defines the name of the template set. By default
+it's set to the name of the current directory. NAME must be set on the
+command line or *before* including template-set.make. An alternative
+is to follow chapter 3.8 in the GNU Make documentation and _delegate_
+certain or all targets to template-set.make:
+
+ %: force
+ @$(MAKE) -f /usr/share/prayer/template-set.make NAME=foobar
+ force: ;
+
+The variables TEMPLATES and TEMPLATES_FRONTEND list the top-level
+templates that Prayer is known to use, and which should be defined
+lest the user be met with a page saying nothing but "Template not
+found". Unless all those templates are defined, or you redefine the
+variables, the build will fail, but you can set VPATH to a directory
+containing an existing template set to take the missing templates from
+there. Just be sure that there are no intermediate files lying around!
+
+Templates can call other templates by means of the CALL macro. They
+are scanned recursively to make sure that all referenced templates are
+included in the respective library.
+
+A complete template package should consist of two libraries: one for
+the session daemon and one for the front-end. The latter contains the
+templates for the login screen and certain messages when no session
+exists or none can be found, and since the users can't choose the
+front-end template set it can be considered pretty much optional. To
+skip building the front-end library, set TEMPLATE_LIBS = $(SESSION_LIB)
+(also on the command line or before including template-set.make).
+
+
+Installing
+----------
+
+To help build separate architecture-independent and architecture-
+specific packages (as well as to avoid conflicts with the "install"
+target you may want to use yourself), template-set.make provides two
+install targets, "install-sources" and "install-libs", which do the
+right thing. The standard DESTDIR variable is supported (instead of
+BROOT, which is used in Prayer's own makefiles).
+
+
+Images and CSS files
+--------------------
+
+This package contains no tools to organise static files. Those should
+simply be installed in /usr/share/prayer/icons and
+/usr/share/prayer/static. Note that Prayer doesn't support sub-
+directories, so files should be named in a way that avoids conflicts.
+
+
+ -- Magnus Holmgren <holmgren@debian.org>, Sun, 25 Oct 2009 18:36:44 +0100
Index: 1.3.2-dfsg1-2/debian/prayer-templates-src.install
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-templates-src.install (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-templates-src.install (revision 180)
@@ -0,0 +1,2 @@
+usr/share/prayer/templates
+usr/include/prayer
Index: 1.3.2-dfsg1-2/debian/rules
===================================================================
--- 1.3.2-dfsg1-2/debian/rules (nonexistent)
+++ 1.3.2-dfsg1-2/debian/rules (revision 180)
@@ -0,0 +1,19 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_prayer-templates = --link-doc=prayer-templates-src
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.3.2-dfsg1-2/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.3.2-dfsg1-2/debian/prayer-templates-dev.docs
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-templates-dev.docs (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-templates-dev.docs (revision 180)
@@ -0,0 +1 @@
+docs/TEMPLATES
Index: 1.3.2-dfsg1-2/debian/prayer.install
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.install (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.install (revision 180)
@@ -0,0 +1,7 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+usr/lib/prayer/templates/
+etc/prayer/prayer.cf
Index: 1.3.2-dfsg1-2/debian/Config
===================================================================
--- 1.3.2-dfsg1-2/debian/Config (nonexistent)
+++ 1.3.2-dfsg1-2/debian/Config (revision 180)
@@ -0,0 +1,149 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+LIB_PREFIX = /usr/lib/prayer
+SHLIBEXT = .so
+
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.3.2-dfsg1-2/debian/prayer.dirs
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.dirs (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/old
+etc/prayer/templates/cam
Index: 1.3.2-dfsg1-2/debian/prayer.links
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.links (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.links (revision 180)
@@ -0,0 +1,2 @@
+usr/lib/prayer/templates/old.so usr/lib/prayer/templates/xhtml_strict.so
+usr/lib/prayer/templates/old_frontend.so usr/lib/prayer/templates/xhtml_strict_frontend.so
Index: 1.3.2-dfsg1-2/debian/README.Debian
===================================================================
--- 1.3.2-dfsg1-2/debian/README.Debian (nonexistent)
+++ 1.3.2-dfsg1-2/debian/README.Debian (revision 180)
@@ -0,0 +1,104 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using the latest libdb, gzip Content-Transfer-Encoding, LDAP,
+and System V mutex support. The initial Debian release, which was only
+uloaded to the experimental distribution, was heavily patched to add
+UTF-8 and IPv6 support among other things. All that has been
+incorporated and improved by upstream in 1.1.0. The remaining patches
+concern changes to the default configuration as detailed below, or fix
+bugs. You can always find information about patches in
+changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), the SSL session cache
+ (ssl_session_dir), and temporary storage of uploaded attachments
+ (tmp_dir), is /var/run/prayer and subdirectories. Log files are
+ written to /var/log/prayer (log_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Wed, 30 Sep 2009 22:57:19 +0200
+
Index: 1.3.2-dfsg1-2/debian/watch
===================================================================
--- 1.3.2-dfsg1-2/debian/watch (nonexistent)
+++ 1.3.2-dfsg1-2/debian/watch (revision 180)
@@ -0,0 +1,10 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+opts=dversionmangle=s/-dfsg\d*$// \
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz
Index: 1.3.2-dfsg1-2/debian/copyright
===================================================================
--- 1.3.2-dfsg1-2/debian/copyright (nonexistent)
+++ 1.3.2-dfsg1-2/debian/copyright (revision 180)
@@ -0,0 +1,93 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+However, due to dubious copyright/licensing status of the coat of
+arms/logo of the University of Cambridge, the upstream (.orig) tarball
+has been modified by removing the following files from the files/icons
+directory:
+
+ identifier.gif
+ identifier800.gif
+ ucs-id-small.jpg
+ univheader.gif
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.3.2-dfsg1-2/debian/prayer.manpages
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.manpages (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+man/prayer.8
+man/prayer-session.8
+man/prayer.cf.5
+man/prayer-ssl-prune.8
Index: 1.3.2-dfsg1-2/debian/README.source
===================================================================
--- 1.3.2-dfsg1-2/debian/README.source (nonexistent)
+++ 1.3.2-dfsg1-2/debian/README.source (revision 180)
@@ -0,0 +1,8 @@
+This package uses quilt to manage all modifications to the upstream
+source. Changes are stored in the source package as diffs in
+debian/patches and applied during the build. For basic usage
+information, see
+
+ /usr/share/doc/quilt/README.source
+
+(after installing quilt).
Index: 1.3.2-dfsg1-2/debian/prayer.postinst
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.postinst (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.3.2-dfsg1-2/debian/prayer.postrm
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.postrm (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.3.2-dfsg1-2/debian/prayer.default
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.default (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.3.2-dfsg1-2/debian/prayer.init
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.init (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.2-dfsg1-2/debian/prayer-accountd.init
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-accountd.init (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.3.2-dfsg1-2/debian/prayer.examples
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.examples (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.3.2-dfsg1-2/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.3.2-dfsg1-2/debian/prayer.lintian-overrides
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.lintian-overrides (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.3.2-dfsg1-2/debian/compat
===================================================================
--- 1.3.2-dfsg1-2/debian/compat (nonexistent)
+++ 1.3.2-dfsg1-2/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.3.2-dfsg1-2/debian/prayer-accountd.docs
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-accountd.docs (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.3.2-dfsg1-2/debian/prayer.logrotate
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer.logrotate (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.3.2-dfsg1-2/debian/prayer-accountd.install
===================================================================
--- 1.3.2-dfsg1-2/debian/prayer-accountd.install (nonexistent)
+++ 1.3.2-dfsg1-2/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.3.2-dfsg1-2/debian
===================================================================
--- 1.3.2-dfsg1-2/debian (nonexistent)
+++ 1.3.2-dfsg1-2/debian (revision 180)
/1.3.2-dfsg1-2/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.3.2-dfsg1-2
===================================================================
--- 1.3.2-dfsg1-2 (nonexistent)
+++ 1.3.2-dfsg1-2 (revision 180)
/1.3.2-dfsg1-2
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.2.3-2/debian/changelog
===================================================================
--- 1.2.3-2/debian/changelog (nonexistent)
+++ 1.2.3-2/debian/changelog (revision 180)
@@ -0,0 +1,239 @@
+prayer (1.2.3-2) unstable; urgency=low
+
+ * welcome_is_template.patch wasn't fully incorporated upstream. Remove
+ the help_dir setting and check in makefile_install_config.patch instead.c
+ * Make Prayer work on kFreeBSD. Unfortunately there is no support for
+ SysV semaphores.
+ * kfreebsd.patch: Include the right headers under glibc. Detect that
+ semtimedop is a stub.
+ * debian/Config: Add -lutils to LIBS.
+ * makefile_install_config.patch: put back a default value for
+ lock_dir.
+ * makefile_install_config.patch: Set imap_server to localhost/notls in
+ default prayer.cf (Closes: #531801).
+ * Depend on exim4 | mail-transport-agent.
+ * Increase Standards-Version to 3.8.3.
+
+ -- Magnus Holmgren <holmgren@debian.org> Mon, 31 Aug 2009 23:48:04 +0200
+
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: #304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.3-2/debian/control
===================================================================
--- 1.2.3-2/debian/control (nonexistent)
+++ 1.2.3-2/debian/control (revision 180)
@@ -0,0 +1,67 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev
+Standards-Version: 3.8.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate, exim4 | mail-transport-agent
+Suggests: prayer-accountd, prayer-templates, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.2.0)
+Replaces: prayer (<< 1.2.2.1-6)
+Description: templates for customizing Prayer Webmail
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are compiled into the session daemon,
+ prayer-session, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.3-2/debian/patches/kfreebsd.patch
===================================================================
--- 1.2.3-2/debian/patches/kfreebsd.patch (nonexistent)
+++ 1.2.3-2/debian/patches/kfreebsd.patch (revision 180)
@@ -0,0 +1,38 @@
+--- a/lib/os.c
++++ b/lib/os.c
+@@ -26,7 +26,7 @@
+ #include "os_linux.c"
+ #elif (defined(SOLARIS))
+ #include "os_solaris.c"
+-#elif (defined(BSD) && BSD >= 199306)
++#elif defined(__FreeBSD_kernel__) || (defined(BSD) && BSD >= 199306)
+ #include "os_bsd.c"
+ #else
+ #error "No support for this operating system yet. Sorry!"
+--- a/lib/os_bsd.c
++++ b/lib/os_bsd.c
+@@ -16,8 +16,12 @@
+ #include <arpa/inet.h>
+ #include <signal.h>
+ #include <netdb.h>
+-
++#ifdef __GLIBC__
++#include <sys/file.h>
++#include <pty.h>
++#else
+ #include <libutil.h>
++#endif
+
+ /* ====================================================================== */
+
+--- a/lib/mymutex.c
++++ b/lib/mymutex.c
+@@ -9,7 +9,7 @@
+
+ #include "lib.h"
+
+-#ifdef MUTEX_SEMAPHORE
++#if defined(MUTEX_SEMAPHORE) && !defined(__stub_semtimedop)
+ # include "mymutex_sem.c"
+ #else
+ # include "mymutex_file.c"
Index: 1.2.3-2/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.3-2/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.3-2/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,199 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,21 +65,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -53,7 +53,7 @@ directory_perms = 0750
+ imapd_user_map = ""
+
+ # Default imapd server.
+-imapd_server = localhost
++imapd_server = localhost/notls
+
+ # Name of Prayer user preferences file on IMAP server
+ prefs_folder_name = ".prayer"
+@@ -266,11 +266,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -278,26 +278,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -382,13 +370,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/prayer/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -409,9 +397,6 @@ ssl_required = FALSE
+ # Session banner (local HTML inserted into each page of login session)
+ #session_banner_path = "$prefix/etc/session_banner.html"
+
+-# Location of help files
+-help_dir = "$prefix/help"
+-
+ # Location of icon files
+ icon_dir = "$prefix/icons"
+
+@@ -423,10 +408,11 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++# (only on Debian GNU/kFreeBSD)
++lock_dir = "$var_prefix"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -434,7 +420,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -448,7 +434,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -609,14 +595,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2139,12 +2139,10 @@ BOOL config_check(struct config * config
+ struct config_http_port *chp;
+ char hostname[MAX_ADDRESS+1], domainname[MAX_ADDRESS+1];
+
+- TEST_STRING(config->help_dir, "help_dir");
+ TEST_STRING(config->icon_dir, "icon_dir");
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
+ TEST_STRING(config->ssl_session_dir, "ssl_session_dir");
+- TEST_STRING(config->lock_dir, "lock_dir");
+ TEST_STRING(config->log_dir, "log_dir");
+ TEST_STRING(config->tmp_dir, "tmp_dir");
+ TEST_STRING(config->pid_dir, "pid_dir");
Index: 1.2.3-2/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.3-2/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.3-2/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -450,7 +447,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.3-2/debian/patches/series
===================================================================
--- 1.2.3-2/debian/patches/series (nonexistent)
+++ 1.2.3-2/debian/patches/series (revision 180)
@@ -0,0 +1,6 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+kfreebsd.patch
+unlimit_login_username.patch
+usernames_with_at.patch
+clean_completely.patch
Index: 1.2.3-2/debian/patches/clean_completely.patch
===================================================================
--- 1.2.3-2/debian/patches/clean_completely.patch (nonexistent)
+++ 1.2.3-2/debian/patches/clean_completely.patch (revision 180)
@@ -0,0 +1,33 @@
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -74,7 +74,7 @@ mymutex.o: mymutex.c mymutex_sem.c mymu
+ $(CC) $(CFLAGS) $(MUTEX_DEF) -c $<
+
+ clean:
+- rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\#
++ rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\# $(TARGETS)
+
+ install: all
+ cp template_expand template_compile ../bin
+--- a/templates/xhtml_strict/Makefile
++++ b/templates/xhtml_strict/Makefile
+@@ -108,7 +108,7 @@ install:
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
+ clean:
+- rm -f *.html *.o *.c \#*\# *~
++ rm -f *.html *.o *.c \#*\# *~ $(TARGET)
+
+ include Makefile.deps
+
+--- a/templates/xhtml_transitional/Makefile
++++ b/templates/xhtml_transitional/Makefile
+@@ -108,7 +108,7 @@ install:
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
+ clean:
+- rm -f *.html *.o *.c \#*\# *~
++ rm -f *.html *.o *.c \#*\# *~ $(TARGET)
+
+ include Makefile.deps
+
Index: 1.2.3-2/debian/patches/unlimit_login_username.patch
===================================================================
--- 1.2.3-2/debian/patches/unlimit_login_username.patch (nonexistent)
+++ 1.2.3-2/debian/patches/unlimit_login_username.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/servers/prayer_login.c
++++ b/servers/prayer_login.c
+@@ -118,7 +118,7 @@ prayer_login_generate(struct prayer *pra
+ bprintf(b, "<input name=\"username\" value=\"");
+ if (user)
+ html_quote_string(b, user);
+- bputs(b, "\" size=\"8\" maxlength=\"8\" />");
++ bputs(b, "\" size=\"16\" />");
+ bputs(b, "</td>" CRLF);
+ bputs(b, "</tr>" CRLF);
+
Index: 1.2.3-2/debian/patches/usernames_with_at.patch
===================================================================
--- 1.2.3-2/debian/patches/usernames_with_at.patch (nonexistent)
+++ 1.2.3-2/debian/patches/usernames_with_at.patch (revision 180)
@@ -0,0 +1,53 @@
+--- a/session/draft.c
++++ b/session/draft.c
+@@ -1399,10 +1399,12 @@ char *draft_make_msg(struct draft *draft
+ if (draft->from_address && draft->from_address[0]) {
+ from_address = draft->from_address;
+ use_sender = T;
+- } else
+- from_address
+- =
++ } else if (strchr(session->username, '@')) {
++ from_address = pool_strdup(pool, session->username);
++ } else {
++ from_address =
+ pool_printf(pool, "%s@%s", session->username, default_domain);
++ }
+
+ if (draft->from_personal && draft->from_personal[0]) {
+ from_personal = draft->from_personal;
+@@ -1431,9 +1433,14 @@ char *draft_make_msg(struct draft *draft
+ NIL);
+ bputs(mb, "" CRLF);
+
+- if (use_sender)
+- bprintf(mb, "Sender: %s@%s" CRLF, session->username,
+- default_domain);
++ if (use_sender) {
++ if (strchr(session->username, '@')) {
++ bprintf(mb, "Sender: %s" CRLF, session->username);
++ } else {
++ bprintf(mb, "Sender: %s@%s" CRLF, session->username,
++ default_domain);
++ }
++ }
+
+ if (!(draft_make_abook_address(session, mb, "To", draft->to) &&
+ draft_make_abook_address(session, mb, "Cc", draft->cc) &&
+--- a/cmd/cmd_prefs.c
++++ b/cmd/cmd_prefs.c
+@@ -474,9 +474,12 @@ generate_compose1_form(struct session *s
+ template_vals_string(tvals, "from_address", prefs->from_address);
+
+ if (!(prefs->from_address && prefs->from_address[0])) {
+- char *s = pool_printf(request->pool, "%s@%s",
+- session->username, prefs->default_domain);
++ char *s = session->username;
+
++ if (!strchr(session->username, '@')) {
++ s = pool_printf(request->pool, "%s@%s",
++ session->username, prefs->default_domain);
++ }
+ template_vals_string(tvals, "default_from_address", s);
+ }
+
Index: 1.2.3-2/debian/patches/sighandling.patch
===================================================================
--- 1.2.3-2/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.3-2/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.3-2/debian/Config
===================================================================
--- 1.2.3-2/debian/Config (nonexistent)
+++ 1.2.3-2/debian/Config (revision 180)
@@ -0,0 +1,146 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt -lutil
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.3-2/debian/README.source
===================================================================
--- 1.2.3-2/debian/README.source (nonexistent)
+++ 1.2.3-2/debian/README.source (revision 180)
@@ -0,0 +1,8 @@
+This package uses quilt to manage all modifications to the upstream
+source. Changes are stored in the source package as diffs in
+debian/patches and applied during the build. For basic usage
+information, see
+
+ /usr/share/doc/quilt/README.source
+
+(after installing quilt).
Index: 1.2.3-2/debian/prayer.postinst
===================================================================
--- 1.2.3-2/debian/prayer.postinst (nonexistent)
+++ 1.2.3-2/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.3-2/debian/prayer.postrm
===================================================================
--- 1.2.3-2/debian/prayer.postrm (nonexistent)
+++ 1.2.3-2/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.3-2/debian/prayer.default
===================================================================
--- 1.2.3-2/debian/prayer.default (nonexistent)
+++ 1.2.3-2/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.3-2/debian/prayer.dirs
===================================================================
--- 1.2.3-2/debian/prayer.dirs (nonexistent)
+++ 1.2.3-2/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.3-2/debian/prayer.init
===================================================================
--- 1.2.3-2/debian/prayer.init (nonexistent)
+++ 1.2.3-2/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.3-2/debian/prayer-session.8
===================================================================
--- 1.2.3-2/debian/prayer-session.8 (nonexistent)
+++ 1.2.3-2/debian/prayer-session.8 (revision 180)
@@ -0,0 +1,96 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SESSION 8
+.Sh NAME
+.Nm prayer-session
+.Nd Prayer user session backend daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground
+.Sh DESCRIPTION
+.Nm
+is the backend process in the Prayer Webmail system. A fresh
+.Nm
+backend is forked off whenever a user logs in.
+.Pp
+This process contains all of the permanent state associated with that login
+session including one or more connections to a IMAP server and possibly
+connections to accountd servers. prayer-session communicates with the user
+using HTML over HTTP connections via the
+.Xr prayer 8 proxy. Each login has a session ID that the front end processes
+use to find the correct backend.
+.Pp
+Backend server processes move into a dormant state after a certain period
+of inactivity, shutting down IMAP and accountd connections which can be
+easily resuscitated when the session wakes up. After a long period of
+inactivity, typically several hours the session process shuts down.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width Ds
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default
+.Pa /etc/prayer/prayer.cf .
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name
+to
+.Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width Ds
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use. The
+.Fl -config-file
+option takes precedence over this variable.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.Sh FILES
+.Bl -tag -width Ds
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It /usr/share/prayer/templates/
+Location of standard templates (in the separate
+.Em prayer-templates
+package). The templates are compiled into
+.Nm
+for performance reasons, so the template files are actually not
+used, but they are available for customization.
+.It /etc/prayer/templates/
+The Debian pre-configured
+.Cd template_path .
+As a Debian extension,
+.Nm
+looks here before falling back to the compiled template if
+.Cd template_use_compiled No is Li false .
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.3-2/debian/rules
===================================================================
--- 1.2.3-2/debian/rules (nonexistent)
+++ 1.2.3-2/debian/rules (revision 180)
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.2.3-2/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.3-2/debian/prayer.manpages
===================================================================
--- 1.2.3-2/debian/prayer.manpages (nonexistent)
+++ 1.2.3-2/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+debian/prayer.8
+debian/prayer-session.8
+debian/prayer.cf.5
+debian/prayer-ssl-prune.8
Index: 1.2.3-2/debian/prayer.cf.5
===================================================================
--- 1.2.3-2/debian/prayer.cf.5 (nonexistent)
+++ 1.2.3-2/debian/prayer.cf.5 (revision 180)
@@ -0,0 +1,1015 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER.CF 5
+.Sh NAME
+.Nm prayer.cf
+.Nd main Prayer configuration file
+.
+.Sh DESCRIPTION
+.
+.Pa prayer.cf
+is the configuration file of
+.Xr prayer 8
+and
+.Xr prayer-session 8 .
+.
+.Sh SYNTAX
+For the most part, prayer.cf consists of
+.Ar option No = Ar value
+pairs, but some configuration items are more complex. All values may
+be enclosed in double quotes, which are stripped. Quotes must be used
+if a value contains a
+.Ql #
+character. Otherwise, everything following it is treated as a comment.
+Any line can be folded using a
+.Ql \(rs
+character at the end of the line; any linear white space at the beginning
+of the next line is removed.
+.Pp
+Simple options can be of the following types:
+.Bl -tag
+.
+.It Vt string
+No particular restrictions.
+.It Vt path
+A file or directory name. The configuration parser expands occurences of a few macros
+in settings of this type. See
+.Cd prefix
+.No and Cd var_prefix
+below.
+.It Vt boolean
+The following forms are interpreted as
+.Sy true :
+.Ql true ,
+.Ql t ,
+and
+.Ql 1 .
+The following forms are interpreted as
+.Sy false :
+.Ql false ,
+.Ql nil ,
+.Ql 0 .
+Capitalisation does not matter.
+.
+.It Vt number
+An integer number (sequence of digits 0-9), optionally immediately followed by a single letter
+.Ql K ,
+causing the number to be multiplied by 1024, or
+.Ql M
+multiplying it by 1024 \(pc 1024.
+.
+.It Vt time
+An integer number (sequence of digits 0-9) of seconds, optionally immediately
+followed by a single case-insignificant letter
+.Ql s ,
+which has no effect,
+.Ql m ,
+causing the number to be multiplied by 60,
+.Ql h ,
+multiplying it by 60 \(pc 60, or
+.Ql d ,
+for a multiple of 24 \(pc 60 \(pc 60.
+.It Vt perm
+A file permission mode; an octal number of exactly four digits, where the first digit must be 0.
+.El
+.
+.Sh OPTIONS
+.
+.Bl -tag -width Ds
+.
+.It Cd prefix Vt ( string ) , Cd var_prefix Vt ( string )
+The values of these options can be referred to as
+.Li $prefix
+(or
+.Li ${prefix} ) ,
+and
+.Li $var_prefix
+(or
+.Li ${var_prefix} ) ,
+respectively, in settings of type
+.Vt path
+in the rest of the file.
+.Pp
+.Sy Default : No none. Need to be set only if referenced later.
+.
+.It Cd prayer_user Vt ( string ) , Cd prayer_uid Vt ( number )
+User name or ID to
+.Xr setuid 2
+to if started as root. Either, but not both, must be set and must not specify
+.Li uid 0 .
+.Sy Default :
+none.
+.
+.It Cd prayer_group Vt ( string ) , Cd prayer_gid Vt ( number )
+Group name or ID to
+.Xr setgid 2
+to if we start off as root. In addition, prayer calls
+.Xr initgroups 3
+if
+.Cd prayer_user
+is set.
+.Sy Default :
+none.
+.
+.It Cd prayer_background Vt ( boolean )
+Run prayer as background process. If true, prayer will return as soon
+as valid configuration is found.
+.Sy Default : Li true
+.
+.It Cd file_perms Vt ( perm )
+Create mode for new files.
+.Sy Default : Li 0640 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0644 .
+.
+.It Cd directory_perms Vt ( perm )
+Create mode for new directories.
+.Sy Default : Li 0750 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0755 .
+.
+.It Cd check_directory_perms Vt ( boolean )
+Check existing directories under
+.Li ${var_prefix} ?
+.El
+.
+.Ss Mail server settings
+.
+.Bl -tag -width Ds
+.It Cd imapd_server Vt ( string )
+Specifies the default IMAP server(s) using libc-client syntax:
+.Bd -literal -offset indent
+.Sm Ar host Oo : Ar port Oc Op / Ar flag Oo / Ar flag Oc Ar ...
+.Sm on
+.Ed
+.Pp
+Multiple server specifications can be listed, separated by commas. Common flags are:
+.Bl -tag -compact
+.It Li /ssl
+Use SSL-on-connect (on port 993 by default).
+.It Li /tls
+Force use of TLS (using STARTTLS on the normal IMAP port) to encrypt the
+session. Recommended if the server is remote, since otherwise a
+downgrade attack is possible.
+.It Li /notls
+Don't issue STARTTLS even if the server supports it. Recommended if
+the server is
+.Li localhost .
+.It Li /novalidate-cert
+Don't check the integrity of the server certificate.
+.El
+For the full list of flags, see naming.txt.gz in the current
+libc-client package.
+.
+.It Cd imapd_user_map Vt ( path )
+CDB lookup map overriding default imapd_server location. For information on CDB, see
+.Bl -bullet -compact
+.It
+http://cr.yp.to/cdb.html
+.It
+http://en.wikipedia.org/wiki/Constant_Data_Base
+.El
+.
+.It Cd prefs_folder_name Vt ( string )
+Name of Prayer user preferences folder on IMAP server.
+.
+.It Cd use_namespace ( Vt boolean )
+Use IMAP NAMESPACE command to find
+.Cd personal_hierarchy No and Cd hiersep .
+.Sy Default : Li true .
+.
+.It Cd personal_hierarchy ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """""" .
+.
+.It Cd hiersep ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """/""" .
+.
+.It Cd dualuse ( Vt boolean )
+Hint to Prayer that new mailboxes are dual use (i.e. can contain both
+mail and inferior mailboxes). Things will mostly work if dualuse set to
+.Li false No on a server which supports it, but people will be
+unable to create children of newly created mailboxes without
+refreshing the view.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd sieved_server Vt ( string )
+Talk to Cyrus timsieved using MANAGESIEVE protocol. Syntax is similar to
+.Cd imapd_server ,
+except the only recognised flag is
+.Li /ssl .
+.
+.It Cd sieved_user_map Vt ( path )
+Can be used to provide individualised imapd_server settings in the form of a CDB file.
+.
+.It Cd sieved_timeout Vt ( time )
+Default timsieved timeout is 10 minutes
+.El
+.
+.Ss Mail domain configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd local_domain
+Define a valid local domain, and optionally the valid local parts in that domain.
+This is a special directive that can appear multiple times and does not use an equals sign:
+.Bd -unfilled
+.Cd local_domain Ar domain Op Ar map
+.Ed
+.Pp
+.No Without Ar map , Cd local_domain
+simply defines a domain which will appear on the list visible to user
+preferences. With
+.Ar map ,
+it also defines a list a CDB map file which defines valid entries in
+that domain; used for personal name expansion and checking for valid
+addresses: The keys are the valid local parts and the values are the
+corresponding full names of the users.
+.Pp
+.Sy Default : No A single entry which corresponds to
+.Cd default_domain .
+.
+.It Cd return_path_domain Vt ( string )
+Domain used in the return address given to
+.Xr sendmail 8 .
+.Sy Default : No the default domain.
+.
+.It Cd filter_domain_pattern Vt ( string )
+A filter pattern which is equivalent to, or at least approximates the
+list of local domains.
+.Sy Default : No the default domain.
+.
+.It Cd hostname Vt ( string )
+Hostname is the canonical name for this particular system, used in
+session and icon URLs which are generated by Prayer. This is derived
+automatically using
+.Xr gethostname 2
+.No and Xr gethostbyname 3
+if no value is provided. However, there are situations, especially
+involving SSL certificates, where the default hostname may not be
+appropriate. The special value
+.Ql __UNDEFINED__
+here means the startup script or command line must provide a hostname
+using a
+.Fl -config-option
+override or via the environment variable
+.Ev PRAYER_HOSTNAME .
+This is just a safeguard for systems which use DNS round robining to
+distribute load across a number of machines.
+.
+.It Cd hostname_service Vt ( string )
+Host name common for all Prayer installations part of the same webmail
+service. (Only) useful for large installations using DNS round robin
+for load balancing (example: webmail.hermes.cam.ac.uk is an alias for
+webmail[123].hermes.cam.ac.uk). This setting is used for two things:
+The user is redirected to this hostname after logging out, and HTTP
+requests are sanity checked against it in addition to the canonical
+hostname.
+.Pp
+.Sy Default : No none
+.
+.It Cd fix_from_address ( Vt boolean )
+suppresses the From address option from the Preferences and Roles
+screens.
+.Sy Default : Li false .
+.
+.It Cd lookup_rpasswd ( Vt path )
+Path to a CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Sy Note : No Keys must be Em lowercase ;
+Prayer converts search strings to lowercase in order to provide
+case-insensitive lookup.
+.
+.It Cd lookup_rusername ( Vt path )
+Path to a second CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Pp
+If the user enters a valid and existing username according to
+.Xr getpwnam 3 , Prayer does not search these first two CDB files,
+but skips directly to the second stage of looking up user information.
+.
+.It Cd lookup_username ( Vt path )
+Path to a CDB file that maps usernames to records consisting of the user's
+.Dq registered name
+and his/her affiliation (department), separated by a vertical bar
+.Ql ( "|" ) .
+Additionally, if a second vertical bar follows, the account is
+regarded as cancelled.
+.Pp
+When presenting the search results, the usernames found are combined with the
+.Cd default_domain
+to form email addresses. It is not possible at this time to let users
+search for addresses in more than one domain using this facility.
+.
+.It Cd lookup_fullname ( Vt path )
+Path to a CDB file that maps usernames to
+.Dq display names ,
+possibly provided by the users themselves in some way. The display name
+of a user is used together with the email address in recipient fields
+.Pp
+Note that all four lookup options must be set to valid CDB files for
+the local lookup to work, but more than one option may conceivably
+point to the same file.
+.
+.It Cd ldap_server ( Vt string )
+Name or address of LDAP server.
+.
+.It Cd ldap_base_dn ( Vt string )
+Base DN to search. After binding anonymously, Prayer performs a
+one-level-scope search for entries with
+.Li surname No or Li mail No attributes containing the search string.
+The following attributes are fetched and presented:
+.Bl -bullet -compact
+.It
+.Li uid
+.It
+.Li displayName
+.It
+.Li cn Dq ( registered name )
+.It
+.Li ou Dq ( affiliation )
+.It
+.Li mail
+.It
+.Li telephoneNumber
+.El
+.
+.It Cd ldap_timeout ( Vt time )
+Search timeout.
+.Sy Default : Li 30s .
+.El
+.
+.Ss HTTP and other frontend settings
+.
+.Bl -tag -width Ds
+.
+.It Cd use_http_port , use_https_port
+Define a single HTTP[S] port to bind to. You can define an arbitary list
+of ports of both kinds by using a series of separate
+.Cd use_http_port No and Cd use_https_port
+directives, with one port on each line. Syntax:
+.Bd -literal -offset indent
+.Cd use_http_port Oo Ar interface : Oc Ns Ar port
+.Cd use_https_port Oo Ar interface : Oc Ns Ar port
+.Ed
+.Pp
+.Ar interface
+can be an IP (v4 or v6) address or a hostname. If provided, it is passed to
+.Xr getaddrinfo 3
+for resolution, and the first resulting address is used to bind to. Otherwise,
+.Xr prayer 8
+.No binds to Ar port No on all interfaces.
+.
+.It Cd ssl_default_port Vt ( number )
+Prayer will put a warning on the login page for HTTP connections if
+both HTTP and HTTPS sessions are available. This will provide a link
+to the SSL version of the service, defaulting to port 443 or failing
+that the first defined HTTPS port. ssl_default_port overrides the
+built in logic.
+.Pp
+Should be rarely required now that Prayer automatically derives an
+appropriate port if none is provided here.
+.
+.It Cd ssl_cert_file Vt ( path )
+Locatation of SSL certificate file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_privatekey_file Vt ( path )
+Location of SSL private key file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_rsakey_lifespan Vt ( time )
+Master server will regenerate shared RSA key at this interval.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_rsakey_freshen Vt ( time )
+RSA key remains fresh in child process for this long after first actual use.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_session_timeout Vt ( time )
+SSL session cache TTL.
+.Sy Default : Li 0 No (SSL session cache not used).
+.Xr prayer-ssl-prune 8 should be run periodically to purge any stale session
+data from the DBD database.
+.
+.It Cd egd_socket Vt ( path )
+Path to entropy gathering daemon socket. If provided, it will be used in place of
+or in addition to
+.Pa /dev/urandom
+.
+.It Cd contact_email Vt ( string )
+System administrator email address.
+.Sy This setting is currently not used.
+If you want to display support information to your users, customise the templates.
+.
+.It Cd fatal_dump_core Vt ( boolean )
+Dump core on
+.Fn fatal
+error.
+.Sy Default : No false.
+.
+.It Cd log_debug Vt ( boolean )
+Enable somewhat more verbose logging, mainly in relation to SSL.
+.Sy Default : No false.
+.
+.It Cd fix_client_ipaddr Vt ( boolean )
+Client must connect from consistent IP addresses. May be useful as
+a security measure in LAN environments. Painful for dialup users
+whose connections may drop out.
+.Sy Default : No false.
+.
+.It Cd gzip_allow_nets Vt ( string ) , Cd gzip_deny_nets Vt ( string )
+.Xr prayer-session 8
+gzip-compresses pages sent to clients if:
+.Bl -enum -compact
+.It
+gzip compression enabled at compile time,
+.It
+.Cd use_gzip No is set in user preferences,
+.It
+User agent is known to support Content-Encoding: gzip,
+.It
+User agent asks for Content-Encoding: gzip or x-gzip,
+.It
+IP address of client appears in
+.Cd gzip_allow_nets
+.Em or No IP address of client does Em not No appear in Cd gzip_deny_nets .
+.El
+.Pp
+The format of these options is a sequence of
+.Ar ipaddr Ns Op / Ns Ar masklen
+items, separated by colons
+.Em and No whitespace (to allow for IPv6 addresses to be parsed easily). If
+.Ar masklen No is omitted, the item is interpreted as a full host address.
+.
+.It Cd log_name_nets Vt ( string )
+A network list in the same format as
+.Cd gzip_allow_nets
+above. To avoid delay when a user logs in,
+.Xr prayer-session 8
+only performs a reverse lookup of the remote address if matches this list.
+.Sy Default : No empty; no reverse lookup are performed.
+.
+.It Cd limit_vm Vt ( number )
+Virtual memory limit imposed on each process to stop runaway process killing system. See
+.Xr setrlimit 2 .
+.Sy Default : No no limit.
+.
+.It Cd http_max_method_size Vt ( number )
+Prayer should in theory be able to cope with input of arbitrary
+size. In practice however, the incoming request has to be stored
+somewhere and without limits an attacker may exhaust available memory,
+causing a denial of service attack.
+.Pp
+This sets the maximum size of the initial line of an HTTP request.
+.Sy Default : No no limit.
+.
+.It Cd http_max_hdr_size Vt ( number )
+Maximum for headers associated with this request.
+.
+.It Cd http_max_body_size Vt ( number )
+Maximum for HTTP payload. This is the most significant one in normal use.
+.
+.It Cd draft_att_single_max ( Vt number )
+Maximum size of a single attachment when composing a mail.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd draft_att_total_max ( Vt number )
+Maximum size of all attachments.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd http_min_servers Vt ( number )
+Minimum number of preforked
+.Xr prayer 8 HTTP servers. The master process forks new slave processes
+whenever the number of idle slaves falls below this number, unless the
+total number of slaves would exceed
+.Cd http_max_servers .
+.Sy Default : Li 4.
+.
+.It Cd http_max_servers Vt ( number )
+Maximum number of preforked
+.Xr prayer 8 HTTP servers (active and idle). The master process does not,
+however, enforce any maximum number of
+.Em idle No slave processes; they have to terminate voluntarily by timing out
+or serving the maximum number of connections.
+.Sy Default : Li 64 .
+.
+.It Cd http_max_connections Vt ( number )
+Maximum number of connections that each frontend server will process.
+.Sy Default : Li 0 No (no limit).
+.
+.It Cd http_timeout_idle Vt ( time )
+Timeout for (dirty) spare server waiting for another HTTP connection.
+.Sy Default : Li 30s .
+.
+.It Cd http_timeout_icons Vt ( time )
+Timeout for HTTP connection that last served static content.
+.Sy Default : Li 10s .
+.
+.It Cd http_timeout_session Vt ( time )
+Timeout for HTTP connection that last served a session URL or has not served anything yet.
+.Sy Default : Li 60s .
+.
+.It Cd http_cookie_use_port Vt ( boolean )
+Present HTTP cookies to browser as
+.Dq Li username:port=value
+rather than
+.Dq Li username=value .
+Allows simultaneous login sessions from a single client browser.
+However can leave a trail of cookies behind. Probably don't want this
+in the long term, it's here for experimentation purposes only at the
+moment.
+.
+.It Cd icon_expire_timeout Vt ( time )
+The amount of time in the future to set the HTTP
+.Li Expires: No field for static content.
+.Sy Default : Li 7d .
+(In contrast sessions URLs expire immediately: Browsers really
+shouldn't be trying to cache this stuff, especially when it is coming
+in over HTTPS).
+.El
+.
+.Ss Session specific configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd session_idle_time Vt ( time )
+Session switches to idle mode after this much time: connections to
+IMAP and accountd servers are shut down.
+.Sy Default : Li 0 No (idle mode disabled).
+.
+.It Cd session_timeout Vt ( time )
+Session terminates after this much idle time.
+.Ql 0
+means session never times out.
+.Sy Default : Li 4h .
+.
+.It Cd session_timeout_compose Vt ( time )
+Session terminates after this much idle time instead when the last command was
+.Ql compose
+.No or Ql sieve .
+It should probably not be set lower than
+.Cd session_timeout .
+.Sy Default : Li 0 No (always use the same timeout).
+.
+.It Cd stream_ping_interval Vt ( time )
+Ping INBOX, Other, and Draft streams at this interval.
+.Sy Default : Li 5m .
+.
+.It Cd stream_checkpoint Vt ( boolean )
+.No Use Li CHECKPOINT No instead of Li PING Li to \(lqping\(rq streams.
+.Sy Default : Li true .
+.
+.It Cd stream_misc_timeout Vt ( time )
+Shut down Postponed, Preferences and Transfer streams entirely
+after this much idle time, but only if idle mode doesn't beat us to it.
+.Sy Default : Li 0 No (disabled).
+.
+.It Cd log_ping_interval Vt ( time )
+.Xr stat 2 log files at this interval to see if target file has been
+renamed or removed.
+.Ql 0s
+means stat() log file every time something is logged.
+.Sy Default : Li 5m .
+.
+.It Cd db_ping_interval Vt ( time )
+Interval at which to re-read CDB files containing the local domain.
+.Sy Default : Li 30m .
+.El
+.
+.Ss Display specific configuration
+.
+.Bl -tag -width Ds
+.It Cd login_banner Vt ( string )
+Used in the
+.Li <title>
+and heading of the login page, unless
+.Cd login_prefix_path
+specifies a custom first HTML part.
+.Sy Default : Li """Webmail Service Login""" .
+.
+.It Cd login_service_name Vt ( string )
+Used in the
+.Li <title> No and elsewhere to refer to the webmail system
+.Em after No the user has logged in.
+.Sy Default : Li """Prayer""" .
+.
+.It Cd login_prefix_path Vt ( path )
+File to use as the part of the login page before the login
+form. Should include everything including DOCTYPE and <html> tag. If
+unset, Prayer constructs a fairly safe and boring login page
+consisting of the
+.Cd login_banner .
+on the background colour of the default main theme.
+.
+.It Cd motd_path Vt ( path )
+File to use as the part of the login page immediately following the login form.
+.
+.It Cd login_suffix_path Vt ( path )
+File to use as the last part of the login page. If unset, Prayer simply outputs
+.Dq Li </body></html> .
+.
+.It Cd ssl_encouraged ( Vt boolean )
+If the user connects over unencrypted HTTP, do not show the login form on the start
+.Pa ( / ) No page. A link to Pa /login , No where the form is still displayed, is still provided.
+.Sy Default : Li false . No Ignored if Cd ssl_redirect No or Cd ssl_required No is Li true .
+.
+.It Cd ssl_redirect ( Vt boolean )
+If the user connects over unencrypted HTTP, return a
+.Ql 302
+redirect to the default SSL port. Only the start
+.Pa ( / ) No page is redirected and it may be possible to switch between http and
+https after loggin in, subject to cookie rules.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd ssl_required ( Vt boolean )
+Return a
+.Ql 403 Forbidden
+error if the user tries to access anything over unencrypted HTTP.
+.Cd ssl_redirect No still has effect, however.
+.
+.It Cd list_addr_maxlen Vt ( number )
+The maximum number of characters to show from addresses on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd list_subject_maxlen Vt ( number )
+The maximum number of characters to show from the subject on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd change_max_folders ( Vt number )
+The maximum number of folders allowed in the quick folder change
+dropdown list. If there would be too many folders, the quick list is
+disabled altogether. Only folders that are expanded in the folder view
+are included.
+.Pp
+.Sy Default : Li 20 .
+.
+.It Cd template_path ( Vt path )
+Path to uncompiled template sets (directories).
+.Sy Default : Li """../templates""" No (relative to
+.Cd tmp_dir ) .
+.
+.It Cd template_set ( Vt string )
+Template set to use.
+.Sy Default : Li """xhtml_strict""" .
+.
+.It Cd template_use_compiled ( Vt boolean )
+Use the compiled-in templates, ignoring
+.Cd template_path .
+.Sy Default : Li true .
+.Pp
+As a Debian extension,
+.Xr prayer-session 8
+will fall back to the compiled-in template version of any template
+that it cannot find in the template directory. This enables
+customization of some templates without having to compile all of them
+at run time, although attempting to open each template still incurs a
+certain penalty.
+.
+.It Cd theme
+Define themes and their colors.
+.Em Semi-deprecated ; No Colours set with this directive are only used by the
+.Li xhtml_transitional No template set. The
+.Li xhtml_strict No template set, as well as the login screen, use CSS instead.
+It is still necessary to tell Prayer which themes are available, however.
+.Pp
+Syntax:
+.Bd -literal -offset indent
+.Cd theme Ar name Li description Ar description
+.Cd theme Ar name element colour
+.Cd theme Ar name element colour
+\&...
+.Ed
+.Pp
+.Ar description No is the label shown in the theme dropdown lists on the
+General Preferences page.
+.Pp
+.Ar element No is one of
+.Li fgcolor , fgcolor_link , bgcolor , bgcolor_banner , bgcolor_row1 , bgcolor_row2 ,
+.Li bgcolor_status , bgcolor_status_none , fgcolor_quote1 , fgcolor_quote2 ,
+.Li fgcolor_quote3 , No and Li fgcolor_quote4 .
+The first three are not used by any standard template set, but are
+available. Please study the templates to understand how the rest are
+used.
+.Pp
+.Ar colour No is any valid HTML Vt %Color No value.
+Remember that strings containing hash marks need to be quoted.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme.
+.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme in help mode.
+.
+.It Cd use_ispell_language
+Ispell languages that we want to support, with some descriptive text
+for the preferences screen. Syntax:
+.Bd -literal -offset indent
+.Cd use_ispell_language Ar wordlist Ar description
+.Ed
+.Pp
+Example:
+.Bd -literal -offset indent
+.Li use_ispell_language british Qq British English
+.Ed
+.El
+.
+.Ss Paths etc.
+.
+.Bl -tag -width Ds
+.
+.It Cd aspell_path ( Vt path )
+Location of Aspell Binary (takes precedence over
+.Cd ispell_path ) .
+.
+.It Cd bin_dir ( Vt path )
+Location of Prayer binaries
+.Xr ( prayer 8 and
+.Xr prayer-session 8 ) .
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd icon_dir ( Vt path )
+Location of icon files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ispell_path ( Vt path )
+Location of Ispell Binary (backwards compatibility only).
+.
+.It Cd log_dir ( Vt path )
+Location of log files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd pid_dir ( Vt path )
+Location for PID files of prayer and prayer-session master processes.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd sendmail_path ( Vt path )
+Location of sendmail binary or drop in replacement such as Exim.
+.Sy Default : Pa /usr/lib/sendmail .
+.
+.It Cd socket_dir ( Vt path )
+Location for unix domain sockets which connect
+.Xr ( prayer 8 to
+.Xr prayer-session 8 ) .
+.
+.It Cd socket_split_dir ( Vt boolean )
+Split socket directory into 64 subdirs keyed on first letter of
+sessionID. It is possible to switch back and forth without moving
+sockets or killing sessions, since
+.Xr prayer 8 tries both variants. \&In effect, this setting merely controls where
+.Xr prayer-session 8 creates the socket files.
+.Sy Default : Li false .
+.
+.It Cd init_socket_name ( Vt string )
+Name of Unix domain socket (in
+.Cd socket_dir ) No used for initial handshake
+between prayer and prayer-session processes when a user logs in.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ssl_session_dir ( Vt path )
+Location of the SSL session cache database.
+.Sy Default : No none. Sy Must be set , No even if the SSL session cache is disabled.
+.
+.It Cd static_dir ( Vt path )
+Location of other static files (CSS).
+.Sy Default : No none. If unset, Prayer will not serve CSS files.
+.
+.It Cd tmp_dir ( Vt path )
+As the directory both daemons
+.Xr chdir 2
+to at startup, it is where temporary files, such as attachments and
+folders in transist during upload and download operations, are
+written. Core files also end up here.
+.Sy Default : No none. Sy Must be set.
+.El
+.
+.Ss Defaults for user preferences
+.
+.Bl -tag -width Ds
+.
+.It Cd confirm_logout ( Vt boolean )
+Confirmation dialogue when user logs out.
+.Sy Default : Li true .
+.
+.It Cd confirm_expunge ( Vt boolean )
+Confirmation dialogue when user hits expunge.
+.Sy Default : Li false .
+.
+.It Cd confirm_rm ( Vt boolean )
+Confirmation dialogue when user deletes mail folder or directory.
+.Sy Default : Li true .
+.
+.It Cd default_domain Vt ( string )
+Default domain for outgoing mail. Defaults to
+.Cd hostname No setting.
+.
+.It Cd html_inline ( Vt boolean )
+Show text/html bodyparts inline. Content is scrubbed to remove
+dangerous tags; see documentation for more details.
+.Sy Default : Li true .
+.
+.It Cd html_inline_auto ( Vt boolean )
+Same as above for text/* bodyparts which start "<HTML>" (case-independent!)
+Does anyone other than spammers actually use this?
+.Sy Default : Li true .
+.
+.It Cd ispell_language ( Vt string )
+Language for ispell.
+.Sy Default : Li """british""" .
+.
+.It Cd msgs_per_page ( Vt number )
+Number of messages per screen on message list screen.
+.Sy Default : Li 12 .
+.
+.It Cd msgs_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd msgs_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd abook_per_page ( Vt number )
+Number of addressbook entries per page on address book list screen.
+.Sy Default : Li 12 .
+.
+.It Cd abook_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd abook_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd maildir ( Vt string )
+Mail directory in user's account.
+.Sy Default : Li """""" .
+Typically needed with uw-imap. Typically not needed with e.g. Dovecot or Courier.
+.
+.It Cd suppress_dotfiles ( Vt boolean )
+Supress dotfiles from directory listing.
+.Sy Default : Li true .
+.
+.It Cd postponed_folder ( Vt string )
+Name of the folder where messages to be sent later, a.k.a. drafts, are stored.
+.Sy Default : Li """postponed-msgs""" .
+.
+.It Cd sent_mail_folder ( Vt string )
+Name of folder for sent mail.
+.Sy Default : Li """sent-mail""" .
+.
+.It Cd small_cols ( Vt number )
+Width of small compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd small_rows ( Vt number )
+Height of small compose textarea in lines.
+.Sy Default : Li 18 .
+.
+.It Cd large_cols ( Vt number )
+Width of large compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd large_rows ( Vt number )
+Height of large compose textarea in lines.
+.Sy Default : Li 32 .
+.
+.It Cd sort_mode ( Vt string )
+Default Sort mode for mailbox list. One of
+.Li ARRIVAL , DATE , FROM , TO , CC , SIZE , SUBJECT , REFERENCES , ORDEREDSUBJECT .
+.Sy Default : Li ARRIVAL No is most efficient, and recommended.
+.
+.It Cd sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd abook_sort_mode ( Vt string )
+Default Sort mode for addressbook list. One of:
+.Li ORDERED , ALIAS , NAME , COMMENT , ADDRESS .
+.Sy Default : Li ORDERED .
+.
+.It Cd abook_sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_len ( Vt number )
+Wrap lines at this many characters.
+.Sy Default : Li 76 .
+.
+.It Cd line_wrap_advanced ( Vt boolean )
+Enable advanced line wrap options?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_on_reply ( Vt boolean )
+Line wrap automatically on reply.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_spell ( Vt boolean )
+Line wrap automatically on spell check.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_send ( Vt boolean )
+Line wrap automatically on send.
+.Sy Default : Li true .
+.
+.It Cd preserve_mimetype ( Vt boolean )
+Send message Content-Type through to browser. If
+.Li false , No Content-Type is replaced with
+.Ql application/octet-stream
+which should force download to local disk, bypassing any automatic
+processing of bodyparts by the User-Agent. Unclear at the moment
+whether we need to do this, or whether this should be done selectively
+based on the User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_sent_mail ( Vt boolean )
+.No Make the Dq Save copy
+checkbox on the compose screen checked default.
+.Sy Default : Li true .
+.
+.It Cd use_mark_persist ( Vt boolean )
+Use persistent mark for aggregate operations.
+.Sy Default : Li false .
+.
+.It Cd use_search_zoom ( Vt boolean )
+Zoom automatically after sucessful search
+.Sy Default : Li true .
+.
+.It Cd use_agg_unmark ( Vt boolean )
+Unmark messages after sucessful aggregate operation.
+.Sy Default : Li true .
+.
+.It Cd use_icons ( Vt boolean )
+Use icons: may be overriden by value of User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_welcome ( Vt boolean )
+Enable welcome screen .
+.Sy Default : Li true .
+.
+.It Cd use_tail_banner ( Vt boolean )
+Duplicate banner icons (toolbar) at the bottom of the Message screen.
+.Sy Default : Li true .
+.El
+.
+.Ss Hidden preferences
+.
+The following options are internally handled as user preferences, but
+the Preferences screen no longer provides any means for changing them.
+.
+.Bl -tag -width Ds
+.It Cd use_cookie ( Vt boolean )
+Use HTTP cookie for Session-ID, if the browser supports cookies
+If disabled, or user rejects the cookie, then the session-ID is stored in the URL.
+.Sy Default : Li true .
+.
+.It Cd use_substitution ( Vt boolean )
+Use page substiution rather than HTTP redirects. Faster, but the URLs
+that are generated are less predictable. Page substitution and browser
+history mechanism don't coexist well at the moment (Prayer would need to
+cache final page value for each substiution event).
+.Pp
+.Sy Default : Li true .
+.
+.It Cd use_http_1_1 ( Vt boolean )
+Allow HTTP/1.1, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_pipelining ( Vt boolean )
+Allow HTTP/1.1 pipelining, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_embed_http ( Vt boolean )
+Allow HTTP links embedded in HTTPS responses, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_persist ( Vt boolean )
+Allow persistent HTTP/1.1 and HTTP/1.0 persistent connections,
+if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_short ( Vt boolean )
+Allow short URLs, if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_gzip ( Vt boolean )
+Allow gzip compression, if the browser supports it.
+.Sy Default : Li true .
+.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer-session 8
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
Index: 1.2.3-2/debian/prayer-ssl-prune.8
===================================================================
--- 1.2.3-2/debian/prayer-ssl-prune.8 (nonexistent)
+++ 1.2.3-2/debian/prayer-ssl-prune.8 (revision 180)
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SSL-PRUNE 8
+.Sh NAME
+.Nm prayer-ssl-prune
+.Nd purge stale SSL session data
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+should be run periodically (e.g. once a day) when using SSL session caching
+.Cd ( ssl_session_timeout No > 0 in
+.Pa prayer.cf ) .
+It removes old transaction logs and stale session data.
+It accepts the same configuration-overriding options as
+.Xr prayer 8 and
+.Xr prayer-session 8 .
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /var/run/prayer/ssl_scache/
+Default location of the SSL session cache database.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.3-2/debian/prayer-accountd.init
===================================================================
--- 1.2.3-2/debian/prayer-accountd.init (nonexistent)
+++ 1.2.3-2/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.3-2/debian/prayer-templates.install
===================================================================
--- 1.2.3-2/debian/prayer-templates.install (nonexistent)
+++ 1.2.3-2/debian/prayer-templates.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.2.3-2/debian/prayer.install
===================================================================
--- 1.2.3-2/debian/prayer.install (nonexistent)
+++ 1.2.3-2/debian/prayer.install (revision 180)
@@ -0,0 +1,6 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+etc/prayer/prayer.cf
Index: 1.2.3-2/debian/prayer.8
===================================================================
--- 1.2.3-2/debian/prayer.8 (nonexistent)
+++ 1.2.3-2/debian/prayer.8 (revision 180)
@@ -0,0 +1,93 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER 8
+.Sh NAME
+.Nm prayer
+.Nd standalone IMAP-based webmail server
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground | -disable-prefork
+.Oo Fl -disable-session | -
+.Ar session-options Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+is the normal frontend daemon in the Prayer Webmail system. It is a
+simple HTTP server and proxy that serves icons and other static files,
+but firstly and foremostly forwards requests to the correct backend
+daemons based on session IDs passed either in cookies or as part of
+the URL.
+.Pp
+The master daemon normally preforks a number of child processes that
+each will serve a configurable number of requests. The total number of
+child processes is limited to prevent denial of service attacks.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.It Fl -disable-prefork
+Disable preforking. The master daemon will listen for connections
+on the configured ports and spawn child processes one at a time.
+.It Fl -disable-session
+Do not start the session server,
+.Xr prayer-session 8 .
+.It Fl -
+End of
+.Nm
+options; remaining options will be passed to
+.Xr prayer-session 8 .
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /usr/share/prayer/icons/
+Location of the standard icons used by the interface.
+.It Pa /usr/share/prayer/static/
+Directory containing other static files; currently only CSS files.
+.It Pa /var/run/prayer/sockets/
+Pre-configured location of sockets for frontend to backend communication.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer-session 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org>
+.No using documentation written by An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.3-2/debian/README.Debian
===================================================================
--- 1.2.3-2/debian/README.Debian (nonexistent)
+++ 1.2.3-2/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.3-2/debian/prayer.examples
===================================================================
--- 1.2.3-2/debian/prayer.examples (nonexistent)
+++ 1.2.3-2/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.3-2/debian/copyright
===================================================================
--- 1.2.3-2/debian/copyright (nonexistent)
+++ 1.2.3-2/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.3-2/debian/prayer.docs
===================================================================
--- 1.2.3-2/debian/prayer.docs (nonexistent)
+++ 1.2.3-2/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.3-2/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.3-2/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.3-2/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.3-2/debian/prayer.lintian-overrides
===================================================================
--- 1.2.3-2/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.3-2/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.3-2/debian/compat
===================================================================
--- 1.2.3-2/debian/compat (nonexistent)
+++ 1.2.3-2/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.3-2/debian/prayer-accountd.docs
===================================================================
--- 1.2.3-2/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.3-2/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.3-2/debian/prayer.logrotate
===================================================================
--- 1.2.3-2/debian/prayer.logrotate (nonexistent)
+++ 1.2.3-2/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.3-2/debian/prayer-accountd.install
===================================================================
--- 1.2.3-2/debian/prayer-accountd.install (nonexistent)
+++ 1.2.3-2/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.3-2/debian/watch
===================================================================
--- 1.2.3-2/debian/watch (nonexistent)
+++ 1.2.3-2/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.3-2/debian
===================================================================
--- 1.2.3-2/debian (nonexistent)
+++ 1.2.3-2/debian (revision 180)
/1.2.3-2/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.3-2
===================================================================
--- 1.2.3-2 (nonexistent)
+++ 1.2.3-2 (revision 180)
/1.2.3-2
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.2.3-1/debian/changelog
===================================================================
--- 1.2.3-1/debian/changelog (nonexistent)
+++ 1.2.3-1/debian/changelog (revision 180)
@@ -0,0 +1,221 @@
+prayer (1.2.3-1) unstable; urgency=low
+
+ * New upstream release.
+ - Drop repair_ssl_session_db_on_version_mismatch.patch,
+ remove_old_db_logfiles_from_prayer-ssl-prune.patch,
+ welcome_is_template.patch, template_find_bug.patch; all incorporated
+ upstream.
+ - Update makefile_install_config.patch after welcome.html gone.
+ * kfreebsd.patch (new): Try to get Prayer to work on Debian
+ GNU/kFreeBSD.
+ * Add ${misc:Depends} to Depends for prayer-templates.
+ * Upgrade to Standards-Version 3.8.1.
+ + Add debian/README.source.
+ * clean_completely.patch (new): Fix a few makefiles that didn't remove
+ their build targets in the clean target (Closes: #521369). Thanks to
+ Simon McVittie.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 14 Apr 2009 00:50:31 +0200
+
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: 304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.3-1/debian/patches/series
===================================================================
--- 1.2.3-1/debian/patches/series (nonexistent)
+++ 1.2.3-1/debian/patches/series (revision 180)
@@ -0,0 +1,6 @@
+makefile_install_config.patch
+templates_fallback_to_compiled.patch
+kfreebsd.patch
+unlimit_login_username.patch
+usernames_with_at.patch
+clean_completely.patch
Index: 1.2.3-1/debian/patches/clean_completely.patch
===================================================================
--- 1.2.3-1/debian/patches/clean_completely.patch (nonexistent)
+++ 1.2.3-1/debian/patches/clean_completely.patch (revision 180)
@@ -0,0 +1,33 @@
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -74,7 +74,7 @@ mymutex.o: mymutex.c mymutex_sem.c mymu
+ $(CC) $(CFLAGS) $(MUTEX_DEF) -c $<
+
+ clean:
+- rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\#
++ rm -f lib.o $(OBJS) $(WITHSSL_OBJS) $(NOSSL_OBJS) *~ \#*\# $(TARGETS)
+
+ install: all
+ cp template_expand template_compile ../bin
+--- a/templates/xhtml_strict/Makefile
++++ b/templates/xhtml_strict/Makefile
+@@ -108,7 +108,7 @@ install:
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
+ clean:
+- rm -f *.html *.o *.c \#*\# *~
++ rm -f *.html *.o *.c \#*\# *~ $(TARGET)
+
+ include Makefile.deps
+
+--- a/templates/xhtml_transitional/Makefile
++++ b/templates/xhtml_transitional/Makefile
+@@ -108,7 +108,7 @@ install:
+ cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
+
+ clean:
+- rm -f *.html *.o *.c \#*\# *~
++ rm -f *.html *.o *.c \#*\# *~ $(TARGET)
+
+ include Makefile.deps
+
Index: 1.2.3-1/debian/patches/unlimit_login_username.patch
===================================================================
--- 1.2.3-1/debian/patches/unlimit_login_username.patch (nonexistent)
+++ 1.2.3-1/debian/patches/unlimit_login_username.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/servers/prayer_login.c
++++ b/servers/prayer_login.c
+@@ -118,7 +118,7 @@ prayer_login_generate(struct prayer *pra
+ bprintf(b, "<input name=\"username\" value=\"");
+ if (user)
+ html_quote_string(b, user);
+- bputs(b, "\" size=\"8\" maxlength=\"8\" />");
++ bputs(b, "\" size=\"16\" />");
+ bputs(b, "</td>" CRLF);
+ bputs(b, "</tr>" CRLF);
+
Index: 1.2.3-1/debian/patches/usernames_with_at.patch
===================================================================
--- 1.2.3-1/debian/patches/usernames_with_at.patch (nonexistent)
+++ 1.2.3-1/debian/patches/usernames_with_at.patch (revision 180)
@@ -0,0 +1,53 @@
+--- a/session/draft.c
++++ b/session/draft.c
+@@ -1399,10 +1399,12 @@ char *draft_make_msg(struct draft *draft
+ if (draft->from_address && draft->from_address[0]) {
+ from_address = draft->from_address;
+ use_sender = T;
+- } else
+- from_address
+- =
++ } else if (strchr(session->username, '@')) {
++ from_address = pool_strdup(pool, session->username);
++ } else {
++ from_address =
+ pool_printf(pool, "%s@%s", session->username, default_domain);
++ }
+
+ if (draft->from_personal && draft->from_personal[0]) {
+ from_personal = draft->from_personal;
+@@ -1431,9 +1433,14 @@ char *draft_make_msg(struct draft *draft
+ NIL);
+ bputs(mb, "" CRLF);
+
+- if (use_sender)
+- bprintf(mb, "Sender: %s@%s" CRLF, session->username,
+- default_domain);
++ if (use_sender) {
++ if (strchr(session->username, '@')) {
++ bprintf(mb, "Sender: %s" CRLF, session->username);
++ } else {
++ bprintf(mb, "Sender: %s@%s" CRLF, session->username,
++ default_domain);
++ }
++ }
+
+ if (!(draft_make_abook_address(session, mb, "To", draft->to) &&
+ draft_make_abook_address(session, mb, "Cc", draft->cc) &&
+--- a/cmd/cmd_prefs.c
++++ b/cmd/cmd_prefs.c
+@@ -474,9 +474,12 @@ generate_compose1_form(struct session *s
+ template_vals_string(tvals, "from_address", prefs->from_address);
+
+ if (!(prefs->from_address && prefs->from_address[0])) {
+- char *s = pool_printf(request->pool, "%s@%s",
+- session->username, prefs->default_domain);
++ char *s = session->username;
+
++ if (!strchr(session->username, '@')) {
++ s = pool_printf(request->pool, "%s@%s",
++ session->username, prefs->default_domain);
++ }
+ template_vals_string(tvals, "default_from_address", s);
+ }
+
Index: 1.2.3-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.3-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.3-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,173 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,21 +65,16 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -266,11 +266,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -278,26 +278,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -382,13 +370,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -423,10 +411,7 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
+-
+-# $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++log_dir = "/var/log/prayer"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -434,7 +419,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -448,7 +433,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -609,14 +594,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2144,7 +2144,6 @@ BOOL config_check(struct config * config
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
+ TEST_STRING(config->ssl_session_dir, "ssl_session_dir");
+- TEST_STRING(config->lock_dir, "lock_dir");
+ TEST_STRING(config->log_dir, "log_dir");
+ TEST_STRING(config->tmp_dir, "tmp_dir");
+ TEST_STRING(config->pid_dir, "pid_dir");
Index: 1.2.3-1/debian/patches/kfreebsd.patch
===================================================================
--- 1.2.3-1/debian/patches/kfreebsd.patch (nonexistent)
+++ 1.2.3-1/debian/patches/kfreebsd.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/os.c
++++ b/lib/os.c
+@@ -26,7 +26,7 @@
+ #include "os_linux.c"
+ #elif (defined(SOLARIS))
+ #include "os_solaris.c"
+-#elif (defined(BSD) && BSD >= 199306)
++#elif defined(__FreeBSD_kernel__) || (defined(BSD) && BSD >= 199306)
+ #include "os_bsd.c"
+ #else
+ #error "No support for this operating system yet. Sorry!"
+--- a/lib/os_bsd.c
++++ b/lib/os_bsd.c
+@@ -16,6 +16,10 @@
+ #include <arpa/inet.h>
+ #include <signal.h>
+ #include <netdb.h>
++#ifdef __GLIBC__
++#include <sys/file.h>
++#include <pty.h>
++#endif
+
+ #include <libutil.h>
+
Index: 1.2.3-1/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.3-1/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.3-1/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -452,7 +452,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.3-1/debian/patches/sighandling.patch
===================================================================
--- 1.2.3-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.3-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.3-1/debian/control
===================================================================
--- 1.2.3-1/debian/control (nonexistent)
+++ 1.2.3-1/debian/control (revision 180)
@@ -0,0 +1,67 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev
+Standards-Version: 3.8.1
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate
+Suggests: prayer-accountd, prayer-templates, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: prayer (>= 1.2.0)
+Replaces: prayer (<< 1.2.2.1-6)
+Description: templates for customizing Prayer Webmail
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are compiled into the session daemon,
+ prayer-session, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.3-1/debian/README.source
===================================================================
--- 1.2.3-1/debian/README.source (nonexistent)
+++ 1.2.3-1/debian/README.source (revision 180)
@@ -0,0 +1,8 @@
+This package uses quilt to manage all modifications to the upstream
+source. Changes are stored in the source package as diffs in
+debian/patches and applied during the build. For basic usage
+information, see
+
+ /usr/share/doc/quilt/README.source
+
+(after installing quilt).
Index: 1.2.3-1/debian/prayer.postinst
===================================================================
--- 1.2.3-1/debian/prayer.postinst (nonexistent)
+++ 1.2.3-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.3-1/debian/prayer.postrm
===================================================================
--- 1.2.3-1/debian/prayer.postrm (nonexistent)
+++ 1.2.3-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.3-1/debian/prayer.default
===================================================================
--- 1.2.3-1/debian/prayer.default (nonexistent)
+++ 1.2.3-1/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.3-1/debian/prayer.dirs
===================================================================
--- 1.2.3-1/debian/prayer.dirs (nonexistent)
+++ 1.2.3-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.3-1/debian/prayer.init
===================================================================
--- 1.2.3-1/debian/prayer.init (nonexistent)
+++ 1.2.3-1/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.3-1/debian/prayer-session.8
===================================================================
--- 1.2.3-1/debian/prayer-session.8 (nonexistent)
+++ 1.2.3-1/debian/prayer-session.8 (revision 180)
@@ -0,0 +1,96 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SESSION 8
+.Sh NAME
+.Nm prayer-session
+.Nd Prayer user session backend daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground
+.Sh DESCRIPTION
+.Nm
+is the backend process in the Prayer Webmail system. A fresh
+.Nm
+backend is forked off whenever a user logs in.
+.Pp
+This process contains all of the permanent state associated with that login
+session including one or more connections to a IMAP server and possibly
+connections to accountd servers. prayer-session communicates with the user
+using HTML over HTTP connections via the
+.Xr prayer 8 proxy. Each login has a session ID that the front end processes
+use to find the correct backend.
+.Pp
+Backend server processes move into a dormant state after a certain period
+of inactivity, shutting down IMAP and accountd connections which can be
+easily resuscitated when the session wakes up. After a long period of
+inactivity, typically several hours the session process shuts down.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width Ds
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default
+.Pa /etc/prayer/prayer.cf .
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name
+to
+.Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width Ds
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use. The
+.Fl -config-file
+option takes precedence over this variable.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.Sh FILES
+.Bl -tag -width Ds
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It /usr/share/prayer/templates/
+Location of standard templates (in the separate
+.Em prayer-templates
+package). The templates are compiled into
+.Nm
+for performance reasons, so the template files are actually not
+used, but they are available for customization.
+.It /etc/prayer/templates/
+The Debian pre-configured
+.Cd template_path .
+As a Debian extension,
+.Nm
+looks here before falling back to the compiled template if
+.Cd template_use_compiled No is Li false .
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.3-1/debian/rules
===================================================================
--- 1.2.3-1/debian/rules (nonexistent)
+++ 1.2.3-1/debian/rules (revision 180)
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.2.3-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.3-1/debian/prayer.manpages
===================================================================
--- 1.2.3-1/debian/prayer.manpages (nonexistent)
+++ 1.2.3-1/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+debian/prayer.8
+debian/prayer-session.8
+debian/prayer.cf.5
+debian/prayer-ssl-prune.8
Index: 1.2.3-1/debian/prayer.cf.5
===================================================================
--- 1.2.3-1/debian/prayer.cf.5 (nonexistent)
+++ 1.2.3-1/debian/prayer.cf.5 (revision 180)
@@ -0,0 +1,1015 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER.CF 5
+.Sh NAME
+.Nm prayer.cf
+.Nd main Prayer configuration file
+.
+.Sh DESCRIPTION
+.
+.Pa prayer.cf
+is the configuration file of
+.Xr prayer 8
+and
+.Xr prayer-session 8 .
+.
+.Sh SYNTAX
+For the most part, prayer.cf consists of
+.Ar option No = Ar value
+pairs, but some configuration items are more complex. All values may
+be enclosed in double quotes, which are stripped. Quotes must be used
+if a value contains a
+.Ql #
+character. Otherwise, everything following it is treated as a comment.
+Any line can be folded using a
+.Ql \(rs
+character at the end of the line; any linear white space at the beginning
+of the next line is removed.
+.Pp
+Simple options can be of the following types:
+.Bl -tag
+.
+.It Vt string
+No particular restrictions.
+.It Vt path
+A file or directory name. The configuration parser expands occurences of a few macros
+in settings of this type. See
+.Cd prefix
+.No and Cd var_prefix
+below.
+.It Vt boolean
+The following forms are interpreted as
+.Sy true :
+.Ql true ,
+.Ql t ,
+and
+.Ql 1 .
+The following forms are interpreted as
+.Sy false :
+.Ql false ,
+.Ql nil ,
+.Ql 0 .
+Capitalisation does not matter.
+.
+.It Vt number
+An integer number (sequence of digits 0-9), optionally immediately followed by a single letter
+.Ql K ,
+causing the number to be multiplied by 1024, or
+.Ql M
+multiplying it by 1024 \(pc 1024.
+.
+.It Vt time
+An integer number (sequence of digits 0-9) of seconds, optionally immediately
+followed by a single case-insignificant letter
+.Ql s ,
+which has no effect,
+.Ql m ,
+causing the number to be multiplied by 60,
+.Ql h ,
+multiplying it by 60 \(pc 60, or
+.Ql d ,
+for a multiple of 24 \(pc 60 \(pc 60.
+.It Vt perm
+A file permission mode; an octal number of exactly four digits, where the first digit must be 0.
+.El
+.
+.Sh OPTIONS
+.
+.Bl -tag -width Ds
+.
+.It Cd prefix Vt ( string ) , Cd var_prefix Vt ( string )
+The values of these options can be referred to as
+.Li $prefix
+(or
+.Li ${prefix} ) ,
+and
+.Li $var_prefix
+(or
+.Li ${var_prefix} ) ,
+respectively, in settings of type
+.Vt path
+in the rest of the file.
+.Pp
+.Sy Default : No none. Need to be set only if referenced later.
+.
+.It Cd prayer_user Vt ( string ) , Cd prayer_uid Vt ( number )
+User name or ID to
+.Xr setuid 2
+to if started as root. Either, but not both, must be set and must not specify
+.Li uid 0 .
+.Sy Default :
+none.
+.
+.It Cd prayer_group Vt ( string ) , Cd prayer_gid Vt ( number )
+Group name or ID to
+.Xr setgid 2
+to if we start off as root. In addition, prayer calls
+.Xr initgroups 3
+if
+.Cd prayer_user
+is set.
+.Sy Default :
+none.
+.
+.It Cd prayer_background Vt ( boolean )
+Run prayer as background process. If true, prayer will return as soon
+as valid configuration is found.
+.Sy Default : Li true
+.
+.It Cd file_perms Vt ( perm )
+Create mode for new files.
+.Sy Default : Li 0640 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0644 .
+.
+.It Cd directory_perms Vt ( perm )
+Create mode for new directories.
+.Sy Default : Li 0750 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0755 .
+.
+.It Cd check_directory_perms Vt ( boolean )
+Check existing directories under
+.Li ${var_prefix} ?
+.El
+.
+.Ss Mail server settings
+.
+.Bl -tag -width Ds
+.It Cd imapd_server Vt ( string )
+Specifies the default IMAP server(s) using libc-client syntax:
+.Bd -literal -offset indent
+.Sm Ar host Oo : Ar port Oc Op / Ar flag Oo / Ar flag Oc Ar ...
+.Sm on
+.Ed
+.Pp
+Multiple server specifications can be listed, separated by commas. Common flags are:
+.Bl -tag -compact
+.It Li /ssl
+Use SSL-on-connect (on port 993 by default).
+.It Li /tls
+Force use of TLS (using STARTTLS on the normal IMAP port) to encrypt the
+session. Recommended if the server is remote, since otherwise a
+downgrade attack is possible.
+.It Li /notls
+Don't issue STARTTLS even if the server supports it. Recommended if
+the server is
+.Li localhost .
+.It Li /novalidate-cert
+Don't check the integrity of the server certificate.
+.El
+For the full list of flags, see naming.txt.gz in the current
+libc-client package.
+.
+.It Cd imapd_user_map Vt ( path )
+CDB lookup map overriding default imapd_server location. For information on CDB, see
+.Bl -bullet -compact
+.It
+http://cr.yp.to/cdb.html
+.It
+http://en.wikipedia.org/wiki/Constant_Data_Base
+.El
+.
+.It Cd prefs_folder_name Vt ( string )
+Name of Prayer user preferences folder on IMAP server.
+.
+.It Cd use_namespace ( Vt boolean )
+Use IMAP NAMESPACE command to find
+.Cd personal_hierarchy No and Cd hiersep .
+.Sy Default : Li true .
+.
+.It Cd personal_hierarchy ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """""" .
+.
+.It Cd hiersep ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """/""" .
+.
+.It Cd dualuse ( Vt boolean )
+Hint to Prayer that new mailboxes are dual use (i.e. can contain both
+mail and inferior mailboxes). Things will mostly work if dualuse set to
+.Li false No on a server which supports it, but people will be
+unable to create children of newly created mailboxes without
+refreshing the view.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd sieved_server Vt ( string )
+Talk to Cyrus timsieved using MANAGESIEVE protocol. Syntax is similar to
+.Cd imapd_server ,
+except the only recognised flag is
+.Li /ssl .
+.
+.It Cd sieved_user_map Vt ( path )
+Can be used to provide individualised imapd_server settings in the form of a CDB file.
+.
+.It Cd sieved_timeout Vt ( time )
+Default timsieved timeout is 10 minutes
+.El
+.
+.Ss Mail domain configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd local_domain
+Define a valid local domain, and optionally the valid local parts in that domain.
+This is a special directive that can appear multiple times and does not use an equals sign:
+.Bd -unfilled
+.Cd local_domain Ar domain Op Ar map
+.Ed
+.Pp
+.No Without Ar map , Cd local_domain
+simply defines a domain which will appear on the list visible to user
+preferences. With
+.Ar map ,
+it also defines a list a CDB map file which defines valid entries in
+that domain; used for personal name expansion and checking for valid
+addresses: The keys are the valid local parts and the values are the
+corresponding full names of the users.
+.Pp
+.Sy Default : No A single entry which corresponds to
+.Cd default_domain .
+.
+.It Cd return_path_domain Vt ( string )
+Domain used in the return address given to
+.Xr sendmail 8 .
+.Sy Default : No the default domain.
+.
+.It Cd filter_domain_pattern Vt ( string )
+A filter pattern which is equivalent to, or at least approximates the
+list of local domains.
+.Sy Default : No the default domain.
+.
+.It Cd hostname Vt ( string )
+Hostname is the canonical name for this particular system, used in
+session and icon URLs which are generated by Prayer. This is derived
+automatically using
+.Xr gethostname 2
+.No and Xr gethostbyname 3
+if no value is provided. However, there are situations, especially
+involving SSL certificates, where the default hostname may not be
+appropriate. The special value
+.Ql __UNDEFINED__
+here means the startup script or command line must provide a hostname
+using a
+.Fl -config-option
+override or via the environment variable
+.Ev PRAYER_HOSTNAME .
+This is just a safeguard for systems which use DNS round robining to
+distribute load across a number of machines.
+.
+.It Cd hostname_service Vt ( string )
+Host name common for all Prayer installations part of the same webmail
+service. (Only) useful for large installations using DNS round robin
+for load balancing (example: webmail.hermes.cam.ac.uk is an alias for
+webmail[123].hermes.cam.ac.uk). This setting is used for two things:
+The user is redirected to this hostname after logging out, and HTTP
+requests are sanity checked against it in addition to the canonical
+hostname.
+.Pp
+.Sy Default : No none
+.
+.It Cd fix_from_address ( Vt boolean )
+suppresses the From address option from the Preferences and Roles
+screens.
+.Sy Default : Li false .
+.
+.It Cd lookup_rpasswd ( Vt path )
+Path to a CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Sy Note : No Keys must be Em lowercase ;
+Prayer converts search strings to lowercase in order to provide
+case-insensitive lookup.
+.
+.It Cd lookup_rusername ( Vt path )
+Path to a second CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Pp
+If the user enters a valid and existing username according to
+.Xr getpwnam 3 , Prayer does not search these first two CDB files,
+but skips directly to the second stage of looking up user information.
+.
+.It Cd lookup_username ( Vt path )
+Path to a CDB file that maps usernames to records consisting of the user's
+.Dq registered name
+and his/her affiliation (department), separated by a vertical bar
+.Ql ( "|" ) .
+Additionally, if a second vertical bar follows, the account is
+regarded as cancelled.
+.Pp
+When presenting the search results, the usernames found are combined with the
+.Cd default_domain
+to form email addresses. It is not possible at this time to let users
+search for addresses in more than one domain using this facility.
+.
+.It Cd lookup_fullname ( Vt path )
+Path to a CDB file that maps usernames to
+.Dq display names ,
+possibly provided by the users themselves in some way. The display name
+of a user is used together with the email address in recipient fields
+.Pp
+Note that all four lookup options must be set to valid CDB files for
+the local lookup to work, but more than one option may conceivably
+point to the same file.
+.
+.It Cd ldap_server ( Vt string )
+Name or address of LDAP server.
+.
+.It Cd ldap_base_dn ( Vt string )
+Base DN to search. After binding anonymously, Prayer performs a
+one-level-scope search for entries with
+.Li surname No or Li mail No attributes containing the search string.
+The following attributes are fetched and presented:
+.Bl -bullet -compact
+.It
+.Li uid
+.It
+.Li displayName
+.It
+.Li cn Dq ( registered name )
+.It
+.Li ou Dq ( affiliation )
+.It
+.Li mail
+.It
+.Li telephoneNumber
+.El
+.
+.It Cd ldap_timeout ( Vt time )
+Search timeout.
+.Sy Default : Li 30s .
+.El
+.
+.Ss HTTP and other frontend settings
+.
+.Bl -tag -width Ds
+.
+.It Cd use_http_port , use_https_port
+Define a single HTTP[S] port to bind to. You can define an arbitary list
+of ports of both kinds by using a series of separate
+.Cd use_http_port No and Cd use_https_port
+directives, with one port on each line. Syntax:
+.Bd -literal -offset indent
+.Cd use_http_port Oo Ar interface : Oc Ns Ar port
+.Cd use_https_port Oo Ar interface : Oc Ns Ar port
+.Ed
+.Pp
+.Ar interface
+can be an IP (v4 or v6) address or a hostname. If provided, it is passed to
+.Xr getaddrinfo 3
+for resolution, and the first resulting address is used to bind to. Otherwise,
+.Xr prayer 8
+.No binds to Ar port No on all interfaces.
+.
+.It Cd ssl_default_port Vt ( number )
+Prayer will put a warning on the login page for HTTP connections if
+both HTTP and HTTPS sessions are available. This will provide a link
+to the SSL version of the service, defaulting to port 443 or failing
+that the first defined HTTPS port. ssl_default_port overrides the
+built in logic.
+.Pp
+Should be rarely required now that Prayer automatically derives an
+appropriate port if none is provided here.
+.
+.It Cd ssl_cert_file Vt ( path )
+Locatation of SSL certificate file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_privatekey_file Vt ( path )
+Location of SSL private key file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_rsakey_lifespan Vt ( time )
+Master server will regenerate shared RSA key at this interval.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_rsakey_freshen Vt ( time )
+RSA key remains fresh in child process for this long after first actual use.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_session_timeout Vt ( time )
+SSL session cache TTL.
+.Sy Default : Li 0 No (SSL session cache not used).
+.Xr prayer-ssl-prune 8 should be run periodically to purge any stale session
+data from the DBD database.
+.
+.It Cd egd_socket Vt ( path )
+Path to entropy gathering daemon socket. If provided, it will be used in place of
+or in addition to
+.Pa /dev/urandom
+.
+.It Cd contact_email Vt ( string )
+System administrator email address.
+.Sy This setting is currently not used.
+If you want to display support information to your users, customise the templates.
+.
+.It Cd fatal_dump_core Vt ( boolean )
+Dump core on
+.Fn fatal
+error.
+.Sy Default : No false.
+.
+.It Cd log_debug Vt ( boolean )
+Enable somewhat more verbose logging, mainly in relation to SSL.
+.Sy Default : No false.
+.
+.It Cd fix_client_ipaddr Vt ( boolean )
+Client must connect from consistent IP addresses. May be useful as
+a security measure in LAN environments. Painful for dialup users
+whose connections may drop out.
+.Sy Default : No false.
+.
+.It Cd gzip_allow_nets Vt ( string ) , Cd gzip_deny_nets Vt ( string )
+.Xr prayer-session 8
+gzip-compresses pages sent to clients if:
+.Bl -enum -compact
+.It
+gzip compression enabled at compile time,
+.It
+.Cd use_gzip No is set in user preferences,
+.It
+User agent is known to support Content-Encoding: gzip,
+.It
+User agent asks for Content-Encoding: gzip or x-gzip,
+.It
+IP address of client appears in
+.Cd gzip_allow_nets
+.Em or No IP address of client does Em not No appear in Cd gzip_deny_nets .
+.El
+.Pp
+The format of these options is a sequence of
+.Ar ipaddr Ns Op / Ns Ar masklen
+items, separated by colons
+.Em and No whitespace (to allow for IPv6 addresses to be parsed easily). If
+.Ar masklen No is omitted, the item is interpreted as a full host address.
+.
+.It Cd log_name_nets Vt ( string )
+A network list in the same format as
+.Cd gzip_allow_nets
+above. To avoid delay when a user logs in,
+.Xr prayer-session 8
+only performs a reverse lookup of the remote address if matches this list.
+.Sy Default : No empty; no reverse lookup are performed.
+.
+.It Cd limit_vm Vt ( number )
+Virtual memory limit imposed on each process to stop runaway process killing system. See
+.Xr setrlimit 2 .
+.Sy Default : No no limit.
+.
+.It Cd http_max_method_size Vt ( number )
+Prayer should in theory be able to cope with input of arbitrary
+size. In practice however, the incoming request has to be stored
+somewhere and without limits an attacker may exhaust available memory,
+causing a denial of service attack.
+.Pp
+This sets the maximum size of the initial line of an HTTP request.
+.Sy Default : No no limit.
+.
+.It Cd http_max_hdr_size Vt ( number )
+Maximum for headers associated with this request.
+.
+.It Cd http_max_body_size Vt ( number )
+Maximum for HTTP payload. This is the most significant one in normal use.
+.
+.It Cd draft_att_single_max ( Vt number )
+Maximum size of a single attachment when composing a mail.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd draft_att_total_max ( Vt number )
+Maximum size of all attachments.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd http_min_servers Vt ( number )
+Minimum number of preforked
+.Xr prayer 8 HTTP servers. The master process forks new slave processes
+whenever the number of idle slaves falls below this number, unless the
+total number of slaves would exceed
+.Cd http_max_servers .
+.Sy Default : Li 4.
+.
+.It Cd http_max_servers Vt ( number )
+Maximum number of preforked
+.Xr prayer 8 HTTP servers (active and idle). The master process does not,
+however, enforce any maximum number of
+.Em idle No slave processes; they have to terminate voluntarily by timing out
+or serving the maximum number of connections.
+.Sy Default : Li 64 .
+.
+.It Cd http_max_connections Vt ( number )
+Maximum number of connections that each frontend server will process.
+.Sy Default : Li 0 No (no limit).
+.
+.It Cd http_timeout_idle Vt ( time )
+Timeout for (dirty) spare server waiting for another HTTP connection.
+.Sy Default : Li 30s .
+.
+.It Cd http_timeout_icons Vt ( time )
+Timeout for HTTP connection that last served static content.
+.Sy Default : Li 10s .
+.
+.It Cd http_timeout_session Vt ( time )
+Timeout for HTTP connection that last served a session URL or has not served anything yet.
+.Sy Default : Li 60s .
+.
+.It Cd http_cookie_use_port Vt ( boolean )
+Present HTTP cookies to browser as
+.Dq Li username:port=value
+rather than
+.Dq Li username=value .
+Allows simultaneous login sessions from a single client browser.
+However can leave a trail of cookies behind. Probably don't want this
+in the long term, it's here for experimentation purposes only at the
+moment.
+.
+.It Cd icon_expire_timeout Vt ( time )
+The amount of time in the future to set the HTTP
+.Li Expires: No field for static content.
+.Sy Default : Li 7d .
+(In contrast sessions URLs expire immediately: Browsers really
+shouldn't be trying to cache this stuff, especially when it is coming
+in over HTTPS).
+.El
+.
+.Ss Session specific configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd session_idle_time Vt ( time )
+Session switches to idle mode after this much time: connections to
+IMAP and accountd servers are shut down.
+.Sy Default : Li 0 No (idle mode disabled).
+.
+.It Cd session_timeout Vt ( time )
+Session terminates after this much idle time.
+.Ql 0
+means session never times out.
+.Sy Default : Li 4h .
+.
+.It Cd session_timeout_compose Vt ( time )
+Session terminates after this much idle time instead when the last command was
+.Ql compose
+.No or Ql sieve .
+It should probably not be set lower than
+.Cd session_timeout .
+.Sy Default : Li 0 No (always use the same timeout).
+.
+.It Cd stream_ping_interval Vt ( time )
+Ping INBOX, Other, and Draft streams at this interval.
+.Sy Default : Li 5m .
+.
+.It Cd stream_checkpoint Vt ( boolean )
+.No Use Li CHECKPOINT No instead of Li PING Li to \(lqping\(rq streams.
+.Sy Default : Li true .
+.
+.It Cd stream_misc_timeout Vt ( time )
+Shut down Postponed, Preferences and Transfer streams entirely
+after this much idle time, but only if idle mode doesn't beat us to it.
+.Sy Default : Li 0 No (disabled).
+.
+.It Cd log_ping_interval Vt ( time )
+.Xr stat 2 log files at this interval to see if target file has been
+renamed or removed.
+.Ql 0s
+means stat() log file every time something is logged.
+.Sy Default : Li 5m .
+.
+.It Cd db_ping_interval Vt ( time )
+Interval at which to re-read CDB files containing the local domain.
+.Sy Default : Li 30m .
+.El
+.
+.Ss Display specific configuration
+.
+.Bl -tag -width Ds
+.It Cd login_banner Vt ( string )
+Used in the
+.Li <title>
+and heading of the login page, unless
+.Cd login_prefix_path
+specifies a custom first HTML part.
+.Sy Default : Li """Webmail Service Login""" .
+.
+.It Cd login_service_name Vt ( string )
+Used in the
+.Li <title> No and elsewhere to refer to the webmail system
+.Em after No the user has logged in.
+.Sy Default : Li """Prayer""" .
+.
+.It Cd login_prefix_path Vt ( path )
+File to use as the part of the login page before the login
+form. Should include everything including DOCTYPE and <html> tag. If
+unset, Prayer constructs a fairly safe and boring login page
+consisting of the
+.Cd login_banner .
+on the background colour of the default main theme.
+.
+.It Cd motd_path Vt ( path )
+File to use as the part of the login page immediately following the login form.
+.
+.It Cd login_suffix_path Vt ( path )
+File to use as the last part of the login page. If unset, Prayer simply outputs
+.Dq Li </body></html> .
+.
+.It Cd ssl_encouraged ( Vt boolean )
+If the user connects over unencrypted HTTP, do not show the login form on the start
+.Pa ( / ) No page. A link to Pa /login , No where the form is still displayed, is still provided.
+.Sy Default : Li false . No Ignored if Cd ssl_redirect No or Cd ssl_required No is Li true .
+.
+.It Cd ssl_redirect ( Vt boolean )
+If the user connects over unencrypted HTTP, return a
+.Ql 302
+redirect to the default SSL port. Only the start
+.Pa ( / ) No page is redirected and it may be possible to switch between http and
+https after loggin in, subject to cookie rules.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd ssl_required ( Vt boolean )
+Return a
+.Ql 403 Forbidden
+error if the user tries to access anything over unencrypted HTTP.
+.Cd ssl_redirect No still has effect, however.
+.
+.It Cd list_addr_maxlen Vt ( number )
+The maximum number of characters to show from addresses on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd list_subject_maxlen Vt ( number )
+The maximum number of characters to show from the subject on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd change_max_folders ( Vt number )
+The maximum number of folders allowed in the quick folder change
+dropdown list. If there would be too many folders, the quick list is
+disabled altogether. Only folders that are expanded in the folder view
+are included.
+.Pp
+.Sy Default : Li 20 .
+.
+.It Cd template_path ( Vt path )
+Path to uncompiled template sets (directories).
+.Sy Default : Li """../templates""" No (relative to
+.Cd tmp_dir ) .
+.
+.It Cd template_set ( Vt string )
+Template set to use.
+.Sy Default : Li """xhtml_strict""" .
+.
+.It Cd template_use_compiled ( Vt boolean )
+Use the compiled-in templates, ignoring
+.Cd template_path .
+.Sy Default : Li true .
+.Pp
+As a Debian extension,
+.Xr prayer-session 8
+will fall back to the compiled-in template version of any template
+that it cannot find in the template directory. This enables
+customization of some templates without having to compile all of them
+at run time, although attempting to open each template still incurs a
+certain penalty.
+.
+.It Cd theme
+Define themes and their colors.
+.Em Semi-deprecated ; No Colours set with this directive are only used by the
+.Li xhtml_transitional No template set. The
+.Li xhtml_strict No template set, as well as the login screen, use CSS instead.
+It is still necessary to tell Prayer which themes are available, however.
+.Pp
+Syntax:
+.Bd -literal -offset indent
+.Cd theme Ar name Li description Ar description
+.Cd theme Ar name element colour
+.Cd theme Ar name element colour
+\&...
+.Ed
+.Pp
+.Ar description No is the label shown in the theme dropdown lists on the
+General Preferences page.
+.Pp
+.Ar element No is one of
+.Li fgcolor , fgcolor_link , bgcolor , bgcolor_banner , bgcolor_row1 , bgcolor_row2 ,
+.Li bgcolor_status , bgcolor_status_none , fgcolor_quote1 , fgcolor_quote2 ,
+.Li fgcolor_quote3 , No and Li fgcolor_quote4 .
+The first three are not used by any standard template set, but are
+available. Please study the templates to understand how the rest are
+used.
+.Pp
+.Ar colour No is any valid HTML Vt %Color No value.
+Remember that strings containing hash marks need to be quoted.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme.
+.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme in help mode.
+.
+.It Cd use_ispell_language
+Ispell languages that we want to support, with some descriptive text
+for the preferences screen. Syntax:
+.Bd -literal -offset indent
+.Cd use_ispell_language Ar wordlist Ar description
+.Ed
+.Pp
+Example:
+.Bd -literal -offset indent
+.Li use_ispell_language british Qq British English
+.Ed
+.El
+.
+.Ss Paths etc.
+.
+.Bl -tag -width Ds
+.
+.It Cd aspell_path ( Vt path )
+Location of Aspell Binary (takes precedence over
+.Cd ispell_path ) .
+.
+.It Cd bin_dir ( Vt path )
+Location of Prayer binaries
+.Xr ( prayer 8 and
+.Xr prayer-session 8 ) .
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd icon_dir ( Vt path )
+Location of icon files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ispell_path ( Vt path )
+Location of Ispell Binary (backwards compatibility only).
+.
+.It Cd log_dir ( Vt path )
+Location of log files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd pid_dir ( Vt path )
+Location for PID files of prayer and prayer-session master processes.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd sendmail_path ( Vt path )
+Location of sendmail binary or drop in replacement such as Exim.
+.Sy Default : Pa /usr/lib/sendmail .
+.
+.It Cd socket_dir ( Vt path )
+Location for unix domain sockets which connect
+.Xr ( prayer 8 to
+.Xr prayer-session 8 ) .
+.
+.It Cd socket_split_dir ( Vt boolean )
+Split socket directory into 64 subdirs keyed on first letter of
+sessionID. It is possible to switch back and forth without moving
+sockets or killing sessions, since
+.Xr prayer 8 tries both variants. \&In effect, this setting merely controls where
+.Xr prayer-session 8 creates the socket files.
+.Sy Default : Li false .
+.
+.It Cd init_socket_name ( Vt string )
+Name of Unix domain socket (in
+.Cd socket_dir ) No used for initial handshake
+between prayer and prayer-session processes when a user logs in.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ssl_session_dir ( Vt path )
+Location of the SSL session cache database.
+.Sy Default : No none. Sy Must be set , No even if the SSL session cache is disabled.
+.
+.It Cd static_dir ( Vt path )
+Location of other static files (CSS).
+.Sy Default : No none. If unset, Prayer will not serve CSS files.
+.
+.It Cd tmp_dir ( Vt path )
+As the directory both daemons
+.Xr chdir 2
+to at startup, it is where temporary files, such as attachments and
+folders in transist during upload and download operations, are
+written. Core files also end up here.
+.Sy Default : No none. Sy Must be set.
+.El
+.
+.Ss Defaults for user preferences
+.
+.Bl -tag -width Ds
+.
+.It Cd confirm_logout ( Vt boolean )
+Confirmation dialogue when user logs out.
+.Sy Default : Li true .
+.
+.It Cd confirm_expunge ( Vt boolean )
+Confirmation dialogue when user hits expunge.
+.Sy Default : Li false .
+.
+.It Cd confirm_rm ( Vt boolean )
+Confirmation dialogue when user deletes mail folder or directory.
+.Sy Default : Li true .
+.
+.It Cd default_domain Vt ( string )
+Default domain for outgoing mail. Defaults to
+.Cd hostname No setting.
+.
+.It Cd html_inline ( Vt boolean )
+Show text/html bodyparts inline. Content is scrubbed to remove
+dangerous tags; see documentation for more details.
+.Sy Default : Li true .
+.
+.It Cd html_inline_auto ( Vt boolean )
+Same as above for text/* bodyparts which start "<HTML>" (case-independent!)
+Does anyone other than spammers actually use this?
+.Sy Default : Li true .
+.
+.It Cd ispell_language ( Vt string )
+Language for ispell.
+.Sy Default : Li """british""" .
+.
+.It Cd msgs_per_page ( Vt number )
+Number of messages per screen on message list screen.
+.Sy Default : Li 12 .
+.
+.It Cd msgs_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd msgs_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd abook_per_page ( Vt number )
+Number of addressbook entries per page on address book list screen.
+.Sy Default : Li 12 .
+.
+.It Cd abook_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd abook_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd maildir ( Vt string )
+Mail directory in user's account.
+.Sy Default : Li """""" .
+Typically needed with uw-imap. Typically not needed with e.g. Dovecot or Courier.
+.
+.It Cd suppress_dotfiles ( Vt boolean )
+Supress dotfiles from directory listing.
+.Sy Default : Li true .
+.
+.It Cd postponed_folder ( Vt string )
+Name of the folder where messages to be sent later, a.k.a. drafts, are stored.
+.Sy Default : Li """postponed-msgs""" .
+.
+.It Cd sent_mail_folder ( Vt string )
+Name of folder for sent mail.
+.Sy Default : Li """sent-mail""" .
+.
+.It Cd small_cols ( Vt number )
+Width of small compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd small_rows ( Vt number )
+Height of small compose textarea in lines.
+.Sy Default : Li 18 .
+.
+.It Cd large_cols ( Vt number )
+Width of large compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd large_rows ( Vt number )
+Height of large compose textarea in lines.
+.Sy Default : Li 32 .
+.
+.It Cd sort_mode ( Vt string )
+Default Sort mode for mailbox list. One of
+.Li ARRIVAL , DATE , FROM , TO , CC , SIZE , SUBJECT , REFERENCES , ORDEREDSUBJECT .
+.Sy Default : Li ARRIVAL No is most efficient, and recommended.
+.
+.It Cd sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd abook_sort_mode ( Vt string )
+Default Sort mode for addressbook list. One of:
+.Li ORDERED , ALIAS , NAME , COMMENT , ADDRESS .
+.Sy Default : Li ORDERED .
+.
+.It Cd abook_sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_len ( Vt number )
+Wrap lines at this many characters.
+.Sy Default : Li 76 .
+.
+.It Cd line_wrap_advanced ( Vt boolean )
+Enable advanced line wrap options?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_on_reply ( Vt boolean )
+Line wrap automatically on reply.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_spell ( Vt boolean )
+Line wrap automatically on spell check.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_send ( Vt boolean )
+Line wrap automatically on send.
+.Sy Default : Li true .
+.
+.It Cd preserve_mimetype ( Vt boolean )
+Send message Content-Type through to browser. If
+.Li false , No Content-Type is replaced with
+.Ql application/octet-stream
+which should force download to local disk, bypassing any automatic
+processing of bodyparts by the User-Agent. Unclear at the moment
+whether we need to do this, or whether this should be done selectively
+based on the User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_sent_mail ( Vt boolean )
+.No Make the Dq Save copy
+checkbox on the compose screen checked default.
+.Sy Default : Li true .
+.
+.It Cd use_mark_persist ( Vt boolean )
+Use persistent mark for aggregate operations.
+.Sy Default : Li false .
+.
+.It Cd use_search_zoom ( Vt boolean )
+Zoom automatically after sucessful search
+.Sy Default : Li true .
+.
+.It Cd use_agg_unmark ( Vt boolean )
+Unmark messages after sucessful aggregate operation.
+.Sy Default : Li true .
+.
+.It Cd use_icons ( Vt boolean )
+Use icons: may be overriden by value of User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_welcome ( Vt boolean )
+Enable welcome screen .
+.Sy Default : Li true .
+.
+.It Cd use_tail_banner ( Vt boolean )
+Duplicate banner icons (toolbar) at the bottom of the Message screen.
+.Sy Default : Li true .
+.El
+.
+.Ss Hidden preferences
+.
+The following options are internally handled as user preferences, but
+the Preferences screen no longer provides any means for changing them.
+.
+.Bl -tag -width Ds
+.It Cd use_cookie ( Vt boolean )
+Use HTTP cookie for Session-ID, if the browser supports cookies
+If disabled, or user rejects the cookie, then the session-ID is stored in the URL.
+.Sy Default : Li true .
+.
+.It Cd use_substitution ( Vt boolean )
+Use page substiution rather than HTTP redirects. Faster, but the URLs
+that are generated are less predictable. Page substitution and browser
+history mechanism don't coexist well at the moment (Prayer would need to
+cache final page value for each substiution event).
+.Pp
+.Sy Default : Li true .
+.
+.It Cd use_http_1_1 ( Vt boolean )
+Allow HTTP/1.1, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_pipelining ( Vt boolean )
+Allow HTTP/1.1 pipelining, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_embed_http ( Vt boolean )
+Allow HTTP links embedded in HTTPS responses, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_persist ( Vt boolean )
+Allow persistent HTTP/1.1 and HTTP/1.0 persistent connections,
+if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_short ( Vt boolean )
+Allow short URLs, if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_gzip ( Vt boolean )
+Allow gzip compression, if the browser supports it.
+.Sy Default : Li true .
+.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer-session 8
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
Index: 1.2.3-1/debian/prayer-ssl-prune.8
===================================================================
--- 1.2.3-1/debian/prayer-ssl-prune.8 (nonexistent)
+++ 1.2.3-1/debian/prayer-ssl-prune.8 (revision 180)
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SSL-PRUNE 8
+.Sh NAME
+.Nm prayer-ssl-prune
+.Nd purge stale SSL session data
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+should be run periodically (e.g. once a day) when using SSL session caching
+.Cd ( ssl_session_timeout No > 0 in
+.Pa prayer.cf ) .
+It removes old transaction logs and stale session data.
+It accepts the same configuration-overriding options as
+.Xr prayer 8 and
+.Xr prayer-session 8 .
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /var/run/prayer/ssl_scache/
+Default location of the SSL session cache database.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.3-1/debian/prayer-accountd.init
===================================================================
--- 1.2.3-1/debian/prayer-accountd.init (nonexistent)
+++ 1.2.3-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.3-1/debian/prayer-templates.install
===================================================================
--- 1.2.3-1/debian/prayer-templates.install (nonexistent)
+++ 1.2.3-1/debian/prayer-templates.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.2.3-1/debian/Config
===================================================================
--- 1.2.3-1/debian/Config (nonexistent)
+++ 1.2.3-1/debian/Config (revision 180)
@@ -0,0 +1,146 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.3-1/debian/prayer.install
===================================================================
--- 1.2.3-1/debian/prayer.install (nonexistent)
+++ 1.2.3-1/debian/prayer.install (revision 180)
@@ -0,0 +1,6 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+etc/prayer/prayer.cf
Index: 1.2.3-1/debian/prayer.8
===================================================================
--- 1.2.3-1/debian/prayer.8 (nonexistent)
+++ 1.2.3-1/debian/prayer.8 (revision 180)
@@ -0,0 +1,93 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER 8
+.Sh NAME
+.Nm prayer
+.Nd standalone IMAP-based webmail server
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground | -disable-prefork
+.Oo Fl -disable-session | -
+.Ar session-options Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+is the normal frontend daemon in the Prayer Webmail system. It is a
+simple HTTP server and proxy that serves icons and other static files,
+but firstly and foremostly forwards requests to the correct backend
+daemons based on session IDs passed either in cookies or as part of
+the URL.
+.Pp
+The master daemon normally preforks a number of child processes that
+each will serve a configurable number of requests. The total number of
+child processes is limited to prevent denial of service attacks.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.It Fl -disable-prefork
+Disable preforking. The master daemon will listen for connections
+on the configured ports and spawn child processes one at a time.
+.It Fl -disable-session
+Do not start the session server,
+.Xr prayer-session 8 .
+.It Fl -
+End of
+.Nm
+options; remaining options will be passed to
+.Xr prayer-session 8 .
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /usr/share/prayer/icons/
+Location of the standard icons used by the interface.
+.It Pa /usr/share/prayer/static/
+Directory containing other static files; currently only CSS files.
+.It Pa /var/run/prayer/sockets/
+Pre-configured location of sockets for frontend to backend communication.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer-session 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org>
+.No using documentation written by An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.3-1/debian/README.Debian
===================================================================
--- 1.2.3-1/debian/README.Debian (nonexistent)
+++ 1.2.3-1/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.3-1/debian/prayer.examples
===================================================================
--- 1.2.3-1/debian/prayer.examples (nonexistent)
+++ 1.2.3-1/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.3-1/debian/copyright
===================================================================
--- 1.2.3-1/debian/copyright (nonexistent)
+++ 1.2.3-1/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.3-1/debian/prayer.docs
===================================================================
--- 1.2.3-1/debian/prayer.docs (nonexistent)
+++ 1.2.3-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.3-1/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.3-1/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.3-1/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.3-1/debian/prayer.lintian-overrides
===================================================================
--- 1.2.3-1/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.3-1/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.3-1/debian/compat
===================================================================
--- 1.2.3-1/debian/compat (nonexistent)
+++ 1.2.3-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.3-1/debian/prayer-accountd.docs
===================================================================
--- 1.2.3-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.3-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.3-1/debian/prayer.logrotate
===================================================================
--- 1.2.3-1/debian/prayer.logrotate (nonexistent)
+++ 1.2.3-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.3-1/debian/prayer-accountd.install
===================================================================
--- 1.2.3-1/debian/prayer-accountd.install (nonexistent)
+++ 1.2.3-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.3-1/debian/watch
===================================================================
--- 1.2.3-1/debian/watch (nonexistent)
+++ 1.2.3-1/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.3-1/debian
===================================================================
--- 1.2.3-1/debian (nonexistent)
+++ 1.2.3-1/debian (revision 180)
/1.2.3-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.3-1
===================================================================
--- 1.2.3-1 (nonexistent)
+++ 1.2.3-1 (revision 180)
/1.2.3-1
Property changes:
Added: svn:mergeinfo
## -0,0 +0,3 ##
Merged /tags/1.2.2.1-1:r47-51
Merged /branches/lenny:r52-71
Merged /tags/1.2.2.1-7:r53-72
Index: 1.2.2.1-7/debian/control
===================================================================
--- 1.2.2.1-7/debian/control (nonexistent)
+++ 1.2.2.1-7/debian/control (revision 180)
@@ -0,0 +1,66 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate
+Suggests: prayer-accountd, prayer-templates, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Recommends: prayer (>= 1.2.0)
+Replaces: prayer (<< 1.2.2.1-6)
+Description: templates for customizing Prayer Webmail
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are compiled into the session daemon,
+ prayer-session, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.2.1-7/debian/prayer.postinst
===================================================================
--- 1.2.2.1-7/debian/prayer.postinst (nonexistent)
+++ 1.2.2.1-7/debian/prayer.postinst (revision 180)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ if dpkg --compare-versions "$2" lt "1.2.2.1-7" &&
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.2.1-7/debian/prayer.postrm
===================================================================
--- 1.2.2.1-7/debian/prayer.postrm (nonexistent)
+++ 1.2.2.1-7/debian/prayer.postrm (revision 180)
@@ -0,0 +1,50 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.2.1-7/debian/prayer.default
===================================================================
--- 1.2.2.1-7/debian/prayer.default (nonexistent)
+++ 1.2.2.1-7/debian/prayer.default (revision 180)
@@ -0,0 +1,17 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Default values for var_prefix (also used for pid_dir) and
+# prayer_user. These are set from the command line to make sure that
+# prayer uses the expected values.
+#VAR_PREFIX="/var/run/prayer"
+#PRAYER_USER="prayer"
+
+# Additional ptions. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.2.1-7/debian/changelog
===================================================================
--- 1.2.2.1-7/debian/changelog (nonexistent)
+++ 1.2.2.1-7/debian/changelog (revision 180)
@@ -0,0 +1,202 @@
+prayer (1.2.2.1-7) unstable; urgency=high
+
+ * Since /var/run can be a tmpfs filesystem, don't ship /var/run/prayer
+ as part of the package but create it in the init script (LP: 304071).
+ Also, var_prefix, pid_dir and prayer_user will by default be overriden
+ from the command line to make sure that they get the values expected by
+ the init script.
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:31:28 +0100
+
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.2.1-7/debian/patches/welcome_is_template.patch
===================================================================
--- 1.2.2.1-7/debian/patches/welcome_is_template.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/welcome_is_template.patch (revision 180)
@@ -0,0 +1,41 @@
+--- a/cmd/cmd_welcome.c
++++ b/cmd/cmd_welcome.c
+@@ -74,12 +74,7 @@ void cmd_welcome(struct session *session
+ unsigned long msgno;
+
+ if ((request->method != POST) && (prefs->use_welcome)) {
+- if (config->welcome_path &&
+- (string = read_welcome(request->pool, config->welcome_path)))
+- generate_welcome_page(session, string);
+- else
+- session_redirect(session, request, "list");
+-
++ generate_welcome_page(session, NULL);
+ return;
+ }
+
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -402,12 +402,6 @@ ssl_required = FALSE
+ # Session banner (local HTML inserted into each page of login session)
+ #session_banner_path = "$prefix/etc/session_banner.html"
+
+-# Welcome text displayed when user first logs in
+-welcome_path = "$prefix/etc/welcome.html"
+-
+-# Location of help files
+-help_dir = "$prefix/help"
+-
+ # Location of icon files
+ icon_dir = "$prefix/icons"
+
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2139,7 +2139,6 @@ BOOL config_check(struct config * config
+ struct config_http_port *chp;
+ char hostname[MAX_ADDRESS+1], domainname[MAX_ADDRESS+1];
+
+- TEST_STRING(config->help_dir, "help_dir");
+ TEST_STRING(config->icon_dir, "icon_dir");
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
Index: 1.2.2.1-7/debian/patches/usernames_with_at.patch
===================================================================
--- 1.2.2.1-7/debian/patches/usernames_with_at.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/usernames_with_at.patch (revision 180)
@@ -0,0 +1,53 @@
+--- a/session/draft.c
++++ b/session/draft.c
+@@ -1399,10 +1399,12 @@ char *draft_make_msg(struct draft *draft
+ if (draft->from_address && draft->from_address[0]) {
+ from_address = draft->from_address;
+ use_sender = T;
+- } else
+- from_address
+- =
++ } else if (strchr(session->username, '@')) {
++ from_address = pool_strdup(pool, session->username);
++ } else {
++ from_address =
+ pool_printf(pool, "%s@%s", session->username, default_domain);
++ }
+
+ if (draft->from_personal && draft->from_personal[0]) {
+ from_personal = draft->from_personal;
+@@ -1431,9 +1433,14 @@ char *draft_make_msg(struct draft *draft
+ NIL);
+ bputs(mb, "" CRLF);
+
+- if (use_sender)
+- bprintf(mb, "Sender: %s@%s" CRLF, session->username,
+- default_domain);
++ if (use_sender) {
++ if (strchr(session->username, '@')) {
++ bprintf(mb, "Sender: %s" CRLF, session->username);
++ } else {
++ bprintf(mb, "Sender: %s@%s" CRLF, session->username,
++ default_domain);
++ }
++ }
+
+ if (!(draft_make_abook_address(session, mb, "To", draft->to) &&
+ draft_make_abook_address(session, mb, "Cc", draft->cc) &&
+--- a/cmd/cmd_prefs.c
++++ b/cmd/cmd_prefs.c
+@@ -474,9 +474,12 @@ generate_compose1_form(struct session *s
+ template_vals_string(tvals, "from_address", prefs->from_address);
+
+ if (!(prefs->from_address && prefs->from_address[0])) {
+- char *s = pool_printf(request->pool, "%s@%s",
+- session->username, prefs->default_domain);
++ char *s = session->username;
+
++ if (!strchr(session->username, '@')) {
++ s = pool_printf(request->pool, "%s@%s",
++ session->username, prefs->default_domain);
++ }
+ template_vals_string(tvals, "default_from_address", s);
+ }
+
Index: 1.2.2.1-7/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.2.1-7/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,180 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,26 +65,21 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -271,11 +271,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -283,26 +283,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -387,13 +375,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -431,10 +419,7 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
+-
+-# $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++log_dir = "/var/log/prayer"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -442,7 +427,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -453,7 +438,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -617,14 +602,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2144,7 +2144,6 @@ BOOL config_check(struct config * config
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
+ TEST_STRING(config->ssl_session_dir, "ssl_session_dir");
+- TEST_STRING(config->lock_dir, "lock_dir");
+ TEST_STRING(config->log_dir, "log_dir");
+ TEST_STRING(config->tmp_dir, "tmp_dir");
+ TEST_STRING(config->pid_dir, "pid_dir");
Index: 1.2.2.1-7/debian/patches/unlimit_login_username.patch
===================================================================
--- 1.2.2.1-7/debian/patches/unlimit_login_username.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/unlimit_login_username.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/servers/prayer_login.c
++++ b/servers/prayer_login.c
+@@ -116,7 +116,7 @@ prayer_login_generate(struct prayer *pra
+
+ bputs(b, " <td>");
+ bprintf(b,
+- "<input name=\"username\" value=\"%s\" size=\"8\" maxlength=\"8\" />",
++ "<input name=\"username\" value=\"%s\" size=\"16\" />",
+ user ? user : "");
+ bputs(b, "</td>" CRLF);
+ bputs(b, "</tr>" CRLF);
Index: 1.2.2.1-7/debian/patches/series
===================================================================
--- 1.2.2.1-7/debian/patches/series (nonexistent)
+++ 1.2.2.1-7/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+repair_ssl_session_db_on_version_mismatch.patch
+makefile_install_config.patch
+remove_old_db_logfiles_from_prayer-ssl-prune.patch
+welcome_is_template.patch
+templates_fallback_to_compiled.patch
+template_find_bug.patch
+unlimit_login_username.patch
+usernames_with_at.patch
Index: 1.2.2.1-7/debian/patches/template_find_bug.patch
===================================================================
--- 1.2.2.1-7/debian/patches/template_find_bug.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/template_find_bug.patch (revision 180)
@@ -0,0 +1,28 @@
+--- a/lib/template.c
++++ b/lib/template.c
+@@ -199,10 +199,11 @@ template_find(char *set, char *name, str
+ unsigned long first, last, middle;
+ int rc;
+
+- while (strcmp(tmi->name, set) != 0)
++ while (strcmp(tmi->name, set) != 0) {
+ tmi++;
+- if (!tmi->name)
+- return(NIL);
++ if (!tmi->name)
++ return(NIL);
++ }
+
+ tm = tmi->template_map;
+ count = *(tmi->count);
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -168,7 +168,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "html4";
++ config->template_set = "xhtml_strict";
+ config->template_use_compiled = T;
+
+ config->prayer_user = NIL;
Index: 1.2.2.1-7/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch
===================================================================
--- 1.2.2.1-7/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (revision 180)
@@ -0,0 +1,34 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -289,9 +289,6 @@ static int myarchive(const char **fnames
+ const char **fname;
+ char dstname[1024], *dp;
+
+- strcpy(dstname, dirname);
+- dp = dstname + strlen(dstname);
+-
+ /* Get the list of log files to remove. */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS, NULL);
+ if (r) {
+@@ -312,6 +309,11 @@ static int myarchive(const char **fnames
+ free (begin);
+ }
+
++ if (!dirname) return 0;
++
++ strcpy(dstname, dirname);
++ dp = dstname + strlen(dstname);
++
+ /* Get the list of database files to archive. */
+ /* XXX Should we do this, or just use the list given to us? */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL);
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -837,6 +837,7 @@ int ssl_prune_sessions(struct ssl_config
+ log_debug("tls_prune: purged %d out of %d entries",
+ prock.deletions, prock.count);
+
++ DB->archive(NULL, NULL);
+ DB->done();
+
+ return (0);
Index: 1.2.2.1-7/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.2.1-7/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -452,7 +452,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.2.1-7/debian/patches/repair_ssl_session_db_on_version_mismatch.patch
===================================================================
--- 1.2.2.1-7/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -208,7 +208,11 @@ static int init(const char *dbdir, int m
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
+- if (r != ENOENT) {
++ if (r != ENOENT
++#ifdef DB_VERSION_MISMATCH
++ && r != DB_VERSION_MISMATCH
++#endif
++ ) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
+ }
+@@ -217,7 +217,7 @@ static int init(const char *dbdir, int m
+ /* DPC 24/03/2002. DB_CREATE leaks 12 MBytes into dbenv.
+ * Workaround: close down dbenv, reopen after backing files created */
+
+- r = myinit(dbdir, myflags|MYDB_CREATE);
++ r = myinit(dbdir, myflags|MYDB_CREATE|MYDB_RECOVER);
+ if (r) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
Index: 1.2.2.1-7/debian/patches/sighandling.patch
===================================================================
--- 1.2.2.1-7/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.2.1-7/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.2.1-7/debian/prayer-session.8
===================================================================
--- 1.2.2.1-7/debian/prayer-session.8 (nonexistent)
+++ 1.2.2.1-7/debian/prayer-session.8 (revision 180)
@@ -0,0 +1,96 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SESSION 8
+.Sh NAME
+.Nm prayer-session
+.Nd Prayer user session backend daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground
+.Sh DESCRIPTION
+.Nm
+is the backend process in the Prayer Webmail system. A fresh
+.Nm
+backend is forked off whenever a user logs in.
+.Pp
+This process contains all of the permanent state associated with that login
+session including one or more connections to a IMAP server and possibly
+connections to accountd servers. prayer-session communicates with the user
+using HTML over HTTP connections via the
+.Xr prayer 8 proxy. Each login has a session ID that the front end processes
+use to find the correct backend.
+.Pp
+Backend server processes move into a dormant state after a certain period
+of inactivity, shutting down IMAP and accountd connections which can be
+easily resuscitated when the session wakes up. After a long period of
+inactivity, typically several hours the session process shuts down.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width Ds
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default
+.Pa /etc/prayer/prayer.cf .
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name
+to
+.Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width Ds
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use. The
+.Fl -config-file
+option takes precedence over this variable.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.Sh FILES
+.Bl -tag -width Ds
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It /usr/share/prayer/templates/
+Location of standard templates (in the separate
+.Em prayer-templates
+package). The templates are compiled into
+.Nm
+for performance reasons, so the template files are actually not
+used, but they are available for customization.
+.It /etc/prayer/templates/
+The Debian pre-configured
+.Cd template_path .
+As a Debian extension,
+.Nm
+looks here before falling back to the compiled template if
+.Cd template_use_compiled No is Li false .
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-7/debian/rules
===================================================================
--- 1.2.2.1-7/debian/rules (nonexistent)
+++ 1.2.2.1-7/debian/rules (revision 180)
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.2.2.1-7/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.2.1-7/debian/prayer.manpages
===================================================================
--- 1.2.2.1-7/debian/prayer.manpages (nonexistent)
+++ 1.2.2.1-7/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+debian/prayer.8
+debian/prayer-session.8
+debian/prayer.cf.5
+debian/prayer-ssl-prune.8
Index: 1.2.2.1-7/debian/prayer.cf.5
===================================================================
--- 1.2.2.1-7/debian/prayer.cf.5 (nonexistent)
+++ 1.2.2.1-7/debian/prayer.cf.5 (revision 180)
@@ -0,0 +1,1015 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER.CF 5
+.Sh NAME
+.Nm prayer.cf
+.Nd main Prayer configuration file
+.
+.Sh DESCRIPTION
+.
+.Pa prayer.cf
+is the configuration file of
+.Xr prayer 8
+and
+.Xr prayer-session 8 .
+.
+.Sh SYNTAX
+For the most part, prayer.cf consists of
+.Ar option No = Ar value
+pairs, but some configuration items are more complex. All values may
+be enclosed in double quotes, which are stripped. Quotes must be used
+if a value contains a
+.Ql #
+character. Otherwise, everything following it is treated as a comment.
+Any line can be folded using a
+.Ql \(rs
+character at the end of the line; any linear white space at the beginning
+of the next line is removed.
+.Pp
+Simple options can be of the following types:
+.Bl -tag
+.
+.It Vt string
+No particular restrictions.
+.It Vt path
+A file or directory name. The configuration parser expands occurences of a few macros
+in settings of this type. See
+.Cd prefix
+.No and Cd var_prefix
+below.
+.It Vt boolean
+The following forms are interpreted as
+.Sy true :
+.Ql true ,
+.Ql t ,
+and
+.Ql 1 .
+The following forms are interpreted as
+.Sy false :
+.Ql false ,
+.Ql nil ,
+.Ql 0 .
+Capitalisation does not matter.
+.
+.It Vt number
+An integer number (sequence of digits 0-9), optionally immediately followed by a single letter
+.Ql K ,
+causing the number to be multiplied by 1024, or
+.Ql M
+multiplying it by 1024 \(pc 1024.
+.
+.It Vt time
+An integer number (sequence of digits 0-9) of seconds, optionally immediately
+followed by a single case-insignificant letter
+.Ql s ,
+which has no effect,
+.Ql m ,
+causing the number to be multiplied by 60,
+.Ql h ,
+multiplying it by 60 \(pc 60, or
+.Ql d ,
+for a multiple of 24 \(pc 60 \(pc 60.
+.It Vt perm
+A file permission mode; an octal number of exactly four digits, where the first digit must be 0.
+.El
+.
+.Sh OPTIONS
+.
+.Bl -tag -width Ds
+.
+.It Cd prefix Vt ( string ) , Cd var_prefix Vt ( string )
+The values of these options can be referred to as
+.Li $prefix
+(or
+.Li ${prefix} ) ,
+and
+.Li $var_prefix
+(or
+.Li ${var_prefix} ) ,
+respectively, in settings of type
+.Vt path
+in the rest of the file.
+.Pp
+.Sy Default : No none. Need to be set only if referenced later.
+.
+.It Cd prayer_user Vt ( string ) , Cd prayer_uid Vt ( number )
+User name or ID to
+.Xr setuid 2
+to if started as root. Either, but not both, must be set and must not specify
+.Li uid 0 .
+.Sy Default :
+none.
+.
+.It Cd prayer_group Vt ( string ) , Cd prayer_gid Vt ( number )
+Group name or ID to
+.Xr setgid 2
+to if we start off as root. In addition, prayer calls
+.Xr initgroups 3
+if
+.Cd prayer_user
+is set.
+.Sy Default :
+none.
+.
+.It Cd prayer_background Vt ( boolean )
+Run prayer as background process. If true, prayer will return as soon
+as valid configuration is found.
+.Sy Default : Li true
+.
+.It Cd file_perms Vt ( perm )
+Create mode for new files.
+.Sy Default : Li 0640 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0644 .
+.
+.It Cd directory_perms Vt ( perm )
+Create mode for new directories.
+.Sy Default : Li 0750 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0755 .
+.
+.It Cd check_directory_perms Vt ( boolean )
+Check existing directories under
+.Li ${var_prefix} ?
+.El
+.
+.Ss Mail server settings
+.
+.Bl -tag -width Ds
+.It Cd imapd_server Vt ( string )
+Specifies the default IMAP server(s) using libc-client syntax:
+.Bd -literal -offset indent
+.Sm Ar host Oo : Ar port Oc Op / Ar flag Oo / Ar flag Oc Ar ...
+.Sm on
+.Ed
+.Pp
+Multiple server specifications can be listed, separated by commas. Common flags are:
+.Bl -tag -compact
+.It Li /ssl
+Use SSL-on-connect (on port 993 by default).
+.It Li /tls
+Force use of TLS (using STARTTLS on the normal IMAP port) to encrypt the
+session. Recommended if the server is remote, since otherwise a
+downgrade attack is possible.
+.It Li /notls
+Don't issue STARTTLS even if the server supports it. Recommended if
+the server is
+.Li localhost .
+.It Li /novalidate-cert
+Don't check the integrity of the server certificate.
+.El
+For the full list of flags, see naming.txt.gz in the current
+libc-client package.
+.
+.It Cd imapd_user_map Vt ( path )
+CDB lookup map overriding default imapd_server location. For information on CDB, see
+.Bl -bullet -compact
+.It
+http://cr.yp.to/cdb.html
+.It
+http://en.wikipedia.org/wiki/Constant_Data_Base
+.El
+.
+.It Cd prefs_folder_name Vt ( string )
+Name of Prayer user preferences folder on IMAP server.
+.
+.It Cd use_namespace ( Vt boolean )
+Use IMAP NAMESPACE command to find
+.Cd personal_hierarchy No and Cd hiersep .
+.Sy Default : Li true .
+.
+.It Cd personal_hierarchy ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """""" .
+.
+.It Cd hiersep ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """/""" .
+.
+.It Cd dualuse ( Vt boolean )
+Hint to Prayer that new mailboxes are dual use (i.e. can contain both
+mail and inferior mailboxes). Things will mostly work if dualuse set to
+.Li false No on a server which supports it, but people will be
+unable to create children of newly created mailboxes without
+refreshing the view.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd sieved_server Vt ( string )
+Talk to Cyrus timsieved using MANAGESIEVE protocol. Syntax is similar to
+.Cd imapd_server ,
+except the only recognised flag is
+.Li /ssl .
+.
+.It Cd sieved_user_map Vt ( path )
+Can be used to provide individualised imapd_server settings in the form of a CDB file.
+.
+.It Cd sieved_timeout Vt ( time )
+Default timsieved timeout is 10 minutes
+.El
+.
+.Ss Mail domain configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd local_domain
+Define a valid local domain, and optionally the valid local parts in that domain.
+This is a special directive that can appear multiple times and does not use an equals sign:
+.Bd -unfilled
+.Cd local_domain Ar domain Op Ar map
+.Ed
+.Pp
+.No Without Ar map , Cd local_domain
+simply defines a domain which will appear on the list visible to user
+preferences. With
+.Ar map ,
+it also defines a list a CDB map file which defines valid entries in
+that domain; used for personal name expansion and checking for valid
+addresses: The keys are the valid local parts and the values are the
+corresponding full names of the users.
+.Pp
+.Sy Default : No A single entry which corresponds to
+.Cd default_domain .
+.
+.It Cd return_path_domain Vt ( string )
+Domain used in the return address given to
+.Xr sendmail 8 .
+.Sy Default : No the default domain.
+.
+.It Cd filter_domain_pattern Vt ( string )
+A filter pattern which is equivalent to, or at least approximates the
+list of local domains.
+.Sy Default : No the default domain.
+.
+.It Cd hostname Vt ( string )
+Hostname is the canonical name for this particular system, used in
+session and icon URLs which are generated by Prayer. This is derived
+automatically using
+.Xr gethostname 2
+.No and Xr gethostbyname 3
+if no value is provided. However, there are situations, especially
+involving SSL certificates, where the default hostname may not be
+appropriate. The special value
+.Ql __UNDEFINED__
+here means the startup script or command line must provide a hostname
+using a
+.Fl -config-option
+override or via the environment variable
+.Ev PRAYER_HOSTNAME .
+This is just a safeguard for systems which use DNS round robining to
+distribute load across a number of machines.
+.
+.It Cd hostname_service Vt ( string )
+Host name common for all Prayer installations part of the same webmail
+service. (Only) useful for large installations using DNS round robin
+for load balancing (example: webmail.hermes.cam.ac.uk is an alias for
+webmail[123].hermes.cam.ac.uk). This setting is used for two things:
+The user is redirected to this hostname after logging out, and HTTP
+requests are sanity checked against it in addition to the canonical
+hostname.
+.Pp
+.Sy Default : No none
+.
+.It Cd fix_from_address ( Vt boolean )
+suppresses the From address option from the Preferences and Roles
+screens.
+.Sy Default : Li false .
+.
+.It Cd lookup_rpasswd ( Vt path )
+Path to a CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Sy Note : No Keys must be Em lowercase ;
+Prayer converts search strings to lowercase in order to provide
+case-insensitive lookup.
+.
+.It Cd lookup_rusername ( Vt path )
+Path to a second CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Pp
+If the user enters a valid and existing username according to
+.Xr getpwnam 3 , Prayer does not search these first two CDB files,
+but skips directly to the second stage of looking up user information.
+.
+.It Cd lookup_username ( Vt path )
+Path to a CDB file that maps usernames to records consisting of the user's
+.Dq registered name
+and his/her affiliation (department), separated by a vertical bar
+.Ql ( "|" ) .
+Additionally, if a second vertical bar follows, the account is
+regarded as cancelled.
+.Pp
+When presenting the search results, the usernames found are combined with the
+.Cd default_domain
+to form email addresses. It is not possible at this time to let users
+search for addresses in more than one domain using this facility.
+.
+.It Cd lookup_fullname ( Vt path )
+Path to a CDB file that maps usernames to
+.Dq display names ,
+possibly provided by the users themselves in some way. The display name
+of a user is used together with the email address in recipient fields
+.Pp
+Note that all four lookup options must be set to valid CDB files for
+the local lookup to work, but more than one option may conceivably
+point to the same file.
+.
+.It Cd ldap_server ( Vt string )
+Name or address of LDAP server.
+.
+.It Cd ldap_base_dn ( Vt string )
+Base DN to search. After binding anonymously, Prayer performs a
+one-level-scope search for entries with
+.Li surname No or Li mail No attributes containing the search string.
+The following attributes are fetched and presented:
+.Bl -bullet -compact
+.It
+.Li uid
+.It
+.Li displayName
+.It
+.Li cn Dq ( registered name )
+.It
+.Li ou Dq ( affiliation )
+.It
+.Li mail
+.It
+.Li telephoneNumber
+.El
+.
+.It Cd ldap_timeout ( Vt time )
+Search timeout.
+.Sy Default : Li 30s .
+.El
+.
+.Ss HTTP and other frontend settings
+.
+.Bl -tag -width Ds
+.
+.It Cd use_http_port , use_https_port
+Define a single HTTP[S] port to bind to. You can define an arbitary list
+of ports of both kinds by using a series of separate
+.Cd use_http_port No and Cd use_https_port
+directives, with one port on each line. Syntax:
+.Bd -literal -offset indent
+.Cd use_http_port Oo Ar interface : Oc Ns Ar port
+.Cd use_https_port Oo Ar interface : Oc Ns Ar port
+.Ed
+.Pp
+.Ar interface
+can be an IP (v4 or v6) address or a hostname. If provided, it is passed to
+.Xr getaddrinfo 3
+for resolution, and the first resulting address is used to bind to. Otherwise,
+.Xr prayer 8
+.No binds to Ar port No on all interfaces.
+.
+.It Cd ssl_default_port Vt ( number )
+Prayer will put a warning on the login page for HTTP connections if
+both HTTP and HTTPS sessions are available. This will provide a link
+to the SSL version of the service, defaulting to port 443 or failing
+that the first defined HTTPS port. ssl_default_port overrides the
+built in logic.
+.Pp
+Should be rarely required now that Prayer automatically derives an
+appropriate port if none is provided here.
+.
+.It Cd ssl_cert_file Vt ( path )
+Locatation of SSL certificate file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_privatekey_file Vt ( path )
+Location of SSL private key file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_rsakey_lifespan Vt ( time )
+Master server will regenerate shared RSA key at this interval.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_rsakey_freshen Vt ( time )
+RSA key remains fresh in child process for this long after first actual use.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_session_timeout Vt ( time )
+SSL session cache TTL.
+.Sy Default : Li 0 No (SSL session cache not used).
+.Xr prayer-ssl-prune 8 should be run periodically to purge any stale session
+data from the DBD database.
+.
+.It Cd egd_socket Vt ( path )
+Path to entropy gathering daemon socket. If provided, it will be used in place of
+or in addition to
+.Pa /dev/urandom
+.
+.It Cd contact_email Vt ( string )
+System administrator email address.
+.Sy This setting is currently not used.
+If you want to display support information to your users, customise the templates.
+.
+.It Cd fatal_dump_core Vt ( boolean )
+Dump core on
+.Fn fatal
+error.
+.Sy Default : No false.
+.
+.It Cd log_debug Vt ( boolean )
+Enable somewhat more verbose logging, mainly in relation to SSL.
+.Sy Default : No false.
+.
+.It Cd fix_client_ipaddr Vt ( boolean )
+Client must connect from consistent IP addresses. May be useful as
+a security measure in LAN environments. Painful for dialup users
+whose connections may drop out.
+.Sy Default : No false.
+.
+.It Cd gzip_allow_nets Vt ( string ) , Cd gzip_deny_nets Vt ( string )
+.Xr prayer-session 8
+gzip-compresses pages sent to clients if:
+.Bl -enum -compact
+.It
+gzip compression enabled at compile time,
+.It
+.Cd use_gzip No is set in user preferences,
+.It
+User agent is known to support Content-Encoding: gzip,
+.It
+User agent asks for Content-Encoding: gzip or x-gzip,
+.It
+IP address of client appears in
+.Cd gzip_allow_nets
+.Em or No IP address of client does Em not No appear in Cd gzip_deny_nets .
+.El
+.Pp
+The format of these options is a sequence of
+.Ar ipaddr Ns Op / Ns Ar masklen
+items, separated by colons
+.Em and No whitespace (to allow for IPv6 addresses to be parsed easily). If
+.Ar masklen No is omitted, the item is interpreted as a full host address.
+.
+.It Cd log_name_nets Vt ( string )
+A network list in the same format as
+.Cd gzip_allow_nets
+above. To avoid delay when a user logs in,
+.Xr prayer-session 8
+only performs a reverse lookup of the remote address if matches this list.
+.Sy Default : No empty; no reverse lookup are performed.
+.
+.It Cd limit_vm Vt ( number )
+Virtual memory limit imposed on each process to stop runaway process killing system. See
+.Xr setrlimit 2 .
+.Sy Default : No no limit.
+.
+.It Cd http_max_method_size Vt ( number )
+Prayer should in theory be able to cope with input of arbitrary
+size. In practice however, the incoming request has to be stored
+somewhere and without limits an attacker may exhaust available memory,
+causing a denial of service attack.
+.Pp
+This sets the maximum size of the initial line of an HTTP request.
+.Sy Default : No no limit.
+.
+.It Cd http_max_hdr_size Vt ( number )
+Maximum for headers associated with this request.
+.
+.It Cd http_max_body_size Vt ( number )
+Maximum for HTTP payload. This is the most significant one in normal use.
+.
+.It Cd draft_att_single_max ( Vt number )
+Maximum size of a single attachment when composing a mail.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd draft_att_total_max ( Vt number )
+Maximum size of all attachments.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd http_min_servers Vt ( number )
+Minimum number of preforked
+.Xr prayer 8 HTTP servers. The master process forks new slave processes
+whenever the number of idle slaves falls below this number, unless the
+total number of slaves would exceed
+.Cd http_max_servers .
+.Sy Default : Li 4.
+.
+.It Cd http_max_servers Vt ( number )
+Maximum number of preforked
+.Xr prayer 8 HTTP servers (active and idle). The master process does not,
+however, enforce any maximum number of
+.Em idle No slave processes; they have to terminate voluntarily by timing out
+or serving the maximum number of connections.
+.Sy Default : Li 64 .
+.
+.It Cd http_max_connections Vt ( number )
+Maximum number of connections that each frontend server will process.
+.Sy Default : Li 0 No (no limit).
+.
+.It Cd http_timeout_idle Vt ( time )
+Timeout for (dirty) spare server waiting for another HTTP connection.
+.Sy Default : Li 30s .
+.
+.It Cd http_timeout_icons Vt ( time )
+Timeout for HTTP connection that last served static content.
+.Sy Default : Li 10s .
+.
+.It Cd http_timeout_session Vt ( time )
+Timeout for HTTP connection that last served a session URL or has not served anything yet.
+.Sy Default : Li 60s .
+.
+.It Cd http_cookie_use_port Vt ( boolean )
+Present HTTP cookies to browser as
+.Dq Li username:port=value
+rather than
+.Dq Li username=value .
+Allows simultaneous login sessions from a single client browser.
+However can leave a trail of cookies behind. Probably don't want this
+in the long term, it's here for experimentation purposes only at the
+moment.
+.
+.It Cd icon_expire_timeout Vt ( time )
+The amount of time in the future to set the HTTP
+.Li Expires: No field for static content.
+.Sy Default : Li 7d .
+(In contrast sessions URLs expire immediately: Browsers really
+shouldn't be trying to cache this stuff, especially when it is coming
+in over HTTPS).
+.El
+.
+.Ss Session specific configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd session_idle_time Vt ( time )
+Session switches to idle mode after this much time: connections to
+IMAP and accountd servers are shut down.
+.Sy Default : Li 0 No (idle mode disabled).
+.
+.It Cd session_timeout Vt ( time )
+Session terminates after this much idle time.
+.Ql 0
+means session never times out.
+.Sy Default : Li 4h .
+.
+.It Cd session_timeout_compose Vt ( time )
+Session terminates after this much idle time instead when the last command was
+.Ql compose
+.No or Ql sieve .
+It should probably not be set lower than
+.Cd session_timeout .
+.Sy Default : Li 0 No (always use the same timeout).
+.
+.It Cd stream_ping_interval Vt ( time )
+Ping INBOX, Other, and Draft streams at this interval.
+.Sy Default : Li 5m .
+.
+.It Cd stream_checkpoint Vt ( boolean )
+.No Use Li CHECKPOINT No instead of Li PING Li to \(lqping\(rq streams.
+.Sy Default : Li true .
+.
+.It Cd stream_misc_timeout Vt ( time )
+Shut down Postponed, Preferences and Transfer streams entirely
+after this much idle time, but only if idle mode doesn't beat us to it.
+.Sy Default : Li 0 No (disabled).
+.
+.It Cd log_ping_interval Vt ( time )
+.Xr stat 2 log files at this interval to see if target file has been
+renamed or removed.
+.Ql 0s
+means stat() log file every time something is logged.
+.Sy Default : Li 5m .
+.
+.It Cd db_ping_interval Vt ( time )
+Interval at which to re-read CDB files containing the local domain.
+.Sy Default : Li 30m .
+.El
+.
+.Ss Display specific configuration
+.
+.Bl -tag -width Ds
+.It Cd login_banner Vt ( string )
+Used in the
+.Li <title>
+and heading of the login page, unless
+.Cd login_prefix_path
+specifies a custom first HTML part.
+.Sy Default : Li """Webmail Service Login""" .
+.
+.It Cd login_service_name Vt ( string )
+Used in the
+.Li <title> No and elsewhere to refer to the webmail system
+.Em after No the user has logged in.
+.Sy Default : Li """Prayer""" .
+.
+.It Cd login_prefix_path Vt ( path )
+File to use as the part of the login page before the login
+form. Should include everything including DOCTYPE and <html> tag. If
+unset, Prayer constructs a fairly safe and boring login page
+consisting of the
+.Cd login_banner .
+on the background colour of the default main theme.
+.
+.It Cd motd_path Vt ( path )
+File to use as the part of the login page immediately following the login form.
+.
+.It Cd login_suffix_path Vt ( path )
+File to use as the last part of the login page. If unset, Prayer simply outputs
+.Dq Li </body></html> .
+.
+.It Cd ssl_encouraged ( Vt boolean )
+If the user connects over unencrypted HTTP, do not show the login form on the start
+.Pa ( / ) No page. A link to Pa /login , No where the form is still displayed, is still provided.
+.Sy Default : Li false . No Ignored if Cd ssl_redirect No or Cd ssl_required No is Li true .
+.
+.It Cd ssl_redirect ( Vt boolean )
+If the user connects over unencrypted HTTP, return a
+.Ql 302
+redirect to the default SSL port. Only the start
+.Pa ( / ) No page is redirected and it may be possible to switch between http and
+https after loggin in, subject to cookie rules.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd ssl_required ( Vt boolean )
+Return a
+.Ql 403 Forbidden
+error if the user tries to access anything over unencrypted HTTP.
+.Cd ssl_redirect No still has effect, however.
+.
+.It Cd list_addr_maxlen Vt ( number )
+The maximum number of characters to show from addresses on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd list_subject_maxlen Vt ( number )
+The maximum number of characters to show from the subject on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd change_max_folders ( Vt number )
+The maximum number of folders allowed in the quick folder change
+dropdown list. If there would be too many folders, the quick list is
+disabled altogether. Only folders that are expanded in the folder view
+are included.
+.Pp
+.Sy Default : Li 20 .
+.
+.It Cd template_path ( Vt path )
+Path to uncompiled template sets (directories).
+.Sy Default : Li """../templates""" No (relative to
+.Cd tmp_dir ) .
+.
+.It Cd template_set ( Vt string )
+Template set to use.
+.Sy Default : Li """xhtml_strict""" .
+.
+.It Cd template_use_compiled ( Vt boolean )
+Use the compiled-in templates, ignoring
+.Cd template_path .
+.Sy Default : Li true .
+.Pp
+As a Debian extension,
+.Xr prayer-session 8
+will fall back to the compiled-in template version of any template
+that it cannot find in the template directory. This enables
+customization of some templates without having to compile all of them
+at run time, although attempting to open each template still incurs a
+certain penalty.
+.
+.It Cd theme
+Define themes and their colors.
+.Em Semi-deprecated ; No Colours set with this directive are only used by the
+.Li xhtml_transitional No template set. The
+.Li xhtml_strict No template set, as well as the login screen, use CSS instead.
+It is still necessary to tell Prayer which themes are available, however.
+.Pp
+Syntax:
+.Bd -literal -offset indent
+.Cd theme Ar name Li description Ar description
+.Cd theme Ar name element colour
+.Cd theme Ar name element colour
+\&...
+.Ed
+.Pp
+.Ar description No is the label shown in the theme dropdown lists on the
+General Preferences page.
+.Pp
+.Ar element No is one of
+.Li fgcolor , fgcolor_link , bgcolor , bgcolor_banner , bgcolor_row1 , bgcolor_row2 ,
+.Li bgcolor_status , bgcolor_status_none , fgcolor_quote1 , fgcolor_quote2 ,
+.Li fgcolor_quote3 , No and Li fgcolor_quote4 .
+The first three are not used by any standard template set, but are
+available. Please study the templates to understand how the rest are
+used.
+.Pp
+.Ar colour No is any valid HTML Vt %Color No value.
+Remember that strings containing hash marks need to be quoted.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme.
+.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme in help mode.
+.
+.It Cd use_ispell_language
+Ispell languages that we want to support, with some descriptive text
+for the preferences screen. Syntax:
+.Bd -literal -offset indent
+.Cd use_ispell_language Ar wordlist Ar description
+.Ed
+.Pp
+Example:
+.Bd -literal -offset indent
+.Li use_ispell_language british Qq British English
+.Ed
+.El
+.
+.Ss Paths etc.
+.
+.Bl -tag -width Ds
+.
+.It Cd aspell_path ( Vt path )
+Location of Aspell Binary (takes precedence over
+.Cd ispell_path ) .
+.
+.It Cd bin_dir ( Vt path )
+Location of Prayer binaries
+.Xr ( prayer 8 and
+.Xr prayer-session 8 ) .
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd icon_dir ( Vt path )
+Location of icon files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ispell_path ( Vt path )
+Location of Ispell Binary (backwards compatibility only).
+.
+.It Cd log_dir ( Vt path )
+Location of log files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd pid_dir ( Vt path )
+Location for PID files of prayer and prayer-session master processes.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd sendmail_path ( Vt path )
+Location of sendmail binary or drop in replacement such as Exim.
+.Sy Default : Pa /usr/lib/sendmail .
+.
+.It Cd socket_dir ( Vt path )
+Location for unix domain sockets which connect
+.Xr ( prayer 8 to
+.Xr prayer-session 8 ) .
+.
+.It Cd socket_split_dir ( Vt boolean )
+Split socket directory into 64 subdirs keyed on first letter of
+sessionID. It is possible to switch back and forth without moving
+sockets or killing sessions, since
+.Xr prayer 8 tries both variants. \&In effect, this setting merely controls where
+.Xr prayer-session 8 creates the socket files.
+.Sy Default : Li false .
+.
+.It Cd init_socket_name ( Vt string )
+Name of Unix domain socket (in
+.Cd socket_dir ) No used for initial handshake
+between prayer and prayer-session processes when a user logs in.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ssl_session_dir ( Vt path )
+Location of the SSL session cache database.
+.Sy Default : No none. Sy Must be set , No even if the SSL session cache is disabled.
+.
+.It Cd static_dir ( Vt path )
+Location of other static files (CSS).
+.Sy Default : No none. If unset, Prayer will not serve CSS files.
+.
+.It Cd tmp_dir ( Vt path )
+As the directory both daemons
+.Xr chdir 2
+to at startup, it is where temporary files, such as attachments and
+folders in transist during upload and download operations, are
+written. Core files also end up here.
+.Sy Default : No none. Sy Must be set.
+.El
+.
+.Ss Defaults for user preferences
+.
+.Bl -tag -width Ds
+.
+.It Cd confirm_logout ( Vt boolean )
+Confirmation dialogue when user logs out.
+.Sy Default : Li true .
+.
+.It Cd confirm_expunge ( Vt boolean )
+Confirmation dialogue when user hits expunge.
+.Sy Default : Li false .
+.
+.It Cd confirm_rm ( Vt boolean )
+Confirmation dialogue when user deletes mail folder or directory.
+.Sy Default : Li true .
+.
+.It Cd default_domain Vt ( string )
+Default domain for outgoing mail. Defaults to
+.Cd hostname No setting.
+.
+.It Cd html_inline ( Vt boolean )
+Show text/html bodyparts inline. Content is scrubbed to remove
+dangerous tags; see documentation for more details.
+.Sy Default : Li true .
+.
+.It Cd html_inline_auto ( Vt boolean )
+Same as above for text/* bodyparts which start "<HTML>" (case-independent!)
+Does anyone other than spammers actually use this?
+.Sy Default : Li true .
+.
+.It Cd ispell_language ( Vt string )
+Language for ispell.
+.Sy Default : Li """british""" .
+.
+.It Cd msgs_per_page ( Vt number )
+Number of messages per screen on message list screen.
+.Sy Default : Li 12 .
+.
+.It Cd msgs_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd msgs_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd abook_per_page ( Vt number )
+Number of addressbook entries per page on address book list screen.
+.Sy Default : Li 12 .
+.
+.It Cd abook_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd abook_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd maildir ( Vt string )
+Mail directory in user's account.
+.Sy Default : Li """""" .
+Typically needed with uw-imap. Typically not needed with e.g. Dovecot or Courier.
+.
+.It Cd suppress_dotfiles ( Vt boolean )
+Supress dotfiles from directory listing.
+.Sy Default : Li true .
+.
+.It Cd postponed_folder ( Vt string )
+Name of the folder where messages to be sent later, a.k.a. drafts, are stored.
+.Sy Default : Li """postponed-msgs""" .
+.
+.It Cd sent_mail_folder ( Vt string )
+Name of folder for sent mail.
+.Sy Default : Li """sent-mail""" .
+.
+.It Cd small_cols ( Vt number )
+Width of small compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd small_rows ( Vt number )
+Height of small compose textarea in lines.
+.Sy Default : Li 18 .
+.
+.It Cd large_cols ( Vt number )
+Width of large compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd large_rows ( Vt number )
+Height of large compose textarea in lines.
+.Sy Default : Li 32 .
+.
+.It Cd sort_mode ( Vt string )
+Default Sort mode for mailbox list. One of
+.Li ARRIVAL , DATE , FROM , TO , CC , SIZE , SUBJECT , REFERENCES , ORDEREDSUBJECT .
+.Sy Default : Li ARRIVAL No is most efficient, and recommended.
+.
+.It Cd sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd abook_sort_mode ( Vt string )
+Default Sort mode for addressbook list. One of:
+.Li ORDERED , ALIAS , NAME , COMMENT , ADDRESS .
+.Sy Default : Li ORDERED .
+.
+.It Cd abook_sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_len ( Vt number )
+Wrap lines at this many characters.
+.Sy Default : Li 76 .
+.
+.It Cd line_wrap_advanced ( Vt boolean )
+Enable advanced line wrap options?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_on_reply ( Vt boolean )
+Line wrap automatically on reply.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_spell ( Vt boolean )
+Line wrap automatically on spell check.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_send ( Vt boolean )
+Line wrap automatically on send.
+.Sy Default : Li true .
+.
+.It Cd preserve_mimetype ( Vt boolean )
+Send message Content-Type through to browser. If
+.Li false , No Content-Type is replaced with
+.Ql application/octet-stream
+which should force download to local disk, bypassing any automatic
+processing of bodyparts by the User-Agent. Unclear at the moment
+whether we need to do this, or whether this should be done selectively
+based on the User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_sent_mail ( Vt boolean )
+.No Make the Dq Save copy
+checkbox on the compose screen checked default.
+.Sy Default : Li true .
+.
+.It Cd use_mark_persist ( Vt boolean )
+Use persistent mark for aggregate operations.
+.Sy Default : Li false .
+.
+.It Cd use_search_zoom ( Vt boolean )
+Zoom automatically after sucessful search
+.Sy Default : Li true .
+.
+.It Cd use_agg_unmark ( Vt boolean )
+Unmark messages after sucessful aggregate operation.
+.Sy Default : Li true .
+.
+.It Cd use_icons ( Vt boolean )
+Use icons: may be overriden by value of User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_welcome ( Vt boolean )
+Enable welcome screen .
+.Sy Default : Li true .
+.
+.It Cd use_tail_banner ( Vt boolean )
+Duplicate banner icons (toolbar) at the bottom of the Message screen.
+.Sy Default : Li true .
+.El
+.
+.Ss Hidden preferences
+.
+The following options are internally handled as user preferences, but
+the Preferences screen no longer provides any means for changing them.
+.
+.Bl -tag -width Ds
+.It Cd use_cookie ( Vt boolean )
+Use HTTP cookie for Session-ID, if the browser supports cookies
+If disabled, or user rejects the cookie, then the session-ID is stored in the URL.
+.Sy Default : Li true .
+.
+.It Cd use_substitution ( Vt boolean )
+Use page substiution rather than HTTP redirects. Faster, but the URLs
+that are generated are less predictable. Page substitution and browser
+history mechanism don't coexist well at the moment (Prayer would need to
+cache final page value for each substiution event).
+.Pp
+.Sy Default : Li true .
+.
+.It Cd use_http_1_1 ( Vt boolean )
+Allow HTTP/1.1, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_pipelining ( Vt boolean )
+Allow HTTP/1.1 pipelining, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_embed_http ( Vt boolean )
+Allow HTTP links embedded in HTTPS responses, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_persist ( Vt boolean )
+Allow persistent HTTP/1.1 and HTTP/1.0 persistent connections,
+if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_short ( Vt boolean )
+Allow short URLs, if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_gzip ( Vt boolean )
+Allow gzip compression, if the browser supports it.
+.Sy Default : Li true .
+.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer-session 8
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
Index: 1.2.2.1-7/debian/prayer-ssl-prune.8
===================================================================
--- 1.2.2.1-7/debian/prayer-ssl-prune.8 (nonexistent)
+++ 1.2.2.1-7/debian/prayer-ssl-prune.8 (revision 180)
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SSL-PRUNE 8
+.Sh NAME
+.Nm prayer-ssl-prune
+.Nd purge stale SSL session data
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+should be run periodically (e.g. once a day) when using SSL session caching
+.Cd ( ssl_session_timeout No > 0 in
+.Pa prayer.cf ) .
+It removes old transaction logs and stale session data.
+It accepts the same configuration-overriding options as
+.Xr prayer 8 and
+.Xr prayer-session 8 .
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /var/run/prayer/ssl_scache/
+Default location of the SSL session cache database.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-7/debian/prayer.dirs
===================================================================
--- 1.2.2.1-7/debian/prayer.dirs (nonexistent)
+++ 1.2.2.1-7/debian/prayer.dirs (revision 180)
@@ -0,0 +1,3 @@
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.2.1-7/debian/prayer-accountd.init
===================================================================
--- 1.2.2.1-7/debian/prayer-accountd.init (nonexistent)
+++ 1.2.2.1-7/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-7/debian/prayer-templates.install
===================================================================
--- 1.2.2.1-7/debian/prayer-templates.install (nonexistent)
+++ 1.2.2.1-7/debian/prayer-templates.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.2.2.1-7/debian/prayer.init
===================================================================
--- 1.2.2.1-7/debian/prayer.init (nonexistent)
+++ 1.2.2.1-7/debian/prayer.init (revision 180)
@@ -0,0 +1,99 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+VAR_PREFIX=/var/run/prayer
+PRAYER_USER=prayer
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+FRONTEND_PIDFILE="$VAR_PREFIX/prayer.pid"
+SESSION_PIDFILE="$VAR_PREFIX/prayer-session.pid"
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile "$FRONTEND_PIDFILE" \
+ --exec "$FRONTEND_DAEMON" \
+ -- $DAEMON_OPTS --config-option "prayer_user=$PRAYER_USER" \
+ --config-option "var_prefix=$VAR_PREFIX" \
+ --config-option "pid_dir=$VAR_PREFIX"
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$SESSION_PIDFILE"
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile "$FRONTEND_PIDFILE"
+ start-stop-daemon --stop --quiet --oknodo --exec "$FRONTEND_DAEMON"
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ # Create /var/run/prayer with prayer as owner in case /var/run is a tmpfs.
+ # If local admin
+ install -d -m 2750 -o "$PRAYER_USER" "$VAR_PREFIX"
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-7/debian/Config
===================================================================
--- 1.2.2.1-7/debian/Config (nonexistent)
+++ 1.2.2.1-7/debian/Config (revision 180)
@@ -0,0 +1,146 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.2.1-7/debian/prayer.install
===================================================================
--- 1.2.2.1-7/debian/prayer.install (nonexistent)
+++ 1.2.2.1-7/debian/prayer.install (revision 180)
@@ -0,0 +1,6 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+etc/prayer/prayer.cf
Index: 1.2.2.1-7/debian/prayer.8
===================================================================
--- 1.2.2.1-7/debian/prayer.8 (nonexistent)
+++ 1.2.2.1-7/debian/prayer.8 (revision 180)
@@ -0,0 +1,93 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER 8
+.Sh NAME
+.Nm prayer
+.Nd standalone IMAP-based webmail server
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground | -disable-prefork
+.Oo Fl -disable-session | -
+.Ar session-options Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+is the normal frontend daemon in the Prayer Webmail system. It is a
+simple HTTP server and proxy that serves icons and other static files,
+but firstly and foremostly forwards requests to the correct backend
+daemons based on session IDs passed either in cookies or as part of
+the URL.
+.Pp
+The master daemon normally preforks a number of child processes that
+each will serve a configurable number of requests. The total number of
+child processes is limited to prevent denial of service attacks.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.It Fl -disable-prefork
+Disable preforking. The master daemon will listen for connections
+on the configured ports and spawn child processes one at a time.
+.It Fl -disable-session
+Do not start the session server,
+.Xr prayer-session 8 .
+.It Fl -
+End of
+.Nm
+options; remaining options will be passed to
+.Xr prayer-session 8 .
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /usr/share/prayer/icons/
+Location of the standard icons used by the interface.
+.It Pa /usr/share/prayer/static/
+Directory containing other static files; currently only CSS files.
+.It Pa /var/run/prayer/sockets/
+Pre-configured location of sockets for frontend to backend communication.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer-session 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org>
+.No using documentation written by An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-7/debian/README.Debian
===================================================================
--- 1.2.2.1-7/debian/README.Debian (nonexistent)
+++ 1.2.2.1-7/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.2.1-7/debian/prayer.examples
===================================================================
--- 1.2.2.1-7/debian/prayer.examples (nonexistent)
+++ 1.2.2.1-7/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.2.1-7/debian/copyright
===================================================================
--- 1.2.2.1-7/debian/copyright (nonexistent)
+++ 1.2.2.1-7/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.2.1-7/debian/prayer.docs
===================================================================
--- 1.2.2.1-7/debian/prayer.docs (nonexistent)
+++ 1.2.2.1-7/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.2.1-7/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.2.1-7/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.2.1-7/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-7/debian/prayer.lintian-overrides
===================================================================
--- 1.2.2.1-7/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.2.1-7/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-7/debian/compat
===================================================================
--- 1.2.2.1-7/debian/compat (nonexistent)
+++ 1.2.2.1-7/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.2.1-7/debian/prayer-accountd.docs
===================================================================
--- 1.2.2.1-7/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.2.1-7/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.2.1-7/debian/prayer.logrotate
===================================================================
--- 1.2.2.1-7/debian/prayer.logrotate (nonexistent)
+++ 1.2.2.1-7/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.2.1-7/debian/prayer-accountd.install
===================================================================
--- 1.2.2.1-7/debian/prayer-accountd.install (nonexistent)
+++ 1.2.2.1-7/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.2.1-7/debian/watch
===================================================================
--- 1.2.2.1-7/debian/watch (nonexistent)
+++ 1.2.2.1-7/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.2.1-7/debian
===================================================================
--- 1.2.2.1-7/debian (nonexistent)
+++ 1.2.2.1-7/debian (revision 180)
/1.2.2.1-7/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.2.1-6/debian/changelog
===================================================================
--- 1.2.2.1-6/debian/changelog (nonexistent)
+++ 1.2.2.1-6/debian/changelog (revision 180)
@@ -0,0 +1,192 @@
+prayer (1.2.2.1-6) unstable; urgency=low
+
+ * prayer.init: Correctly check for the presence of the executables.
+ * Split out templates to a separate arch-indep package.
+ * Change the default value of the tmp_dir option back to
+ ${var_prefix}/tmp (/var/run/prayer/tmp) because using /tmp may not be
+ secure.
+ * usernames_with_at.patch (new, from upstream CVS): If a username
+ contains an @, it will be assumed to be a valid email address and be
+ used as envelope sender address and default "From" address when
+ sending mail (Closes: #497016).
+
+ -- Magnus Holmgren <holmgren@debian.org> Fri, 31 Oct 2008 18:19:34 +0100
+
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.2.1-6/debian/patches/usernames_with_at.patch
===================================================================
--- 1.2.2.1-6/debian/patches/usernames_with_at.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/usernames_with_at.patch (revision 180)
@@ -0,0 +1,53 @@
+--- a/session/draft.c
++++ b/session/draft.c
+@@ -1399,10 +1399,12 @@ char *draft_make_msg(struct draft *draft
+ if (draft->from_address && draft->from_address[0]) {
+ from_address = draft->from_address;
+ use_sender = T;
+- } else
+- from_address
+- =
++ } else if (strchr(session->username, '@')) {
++ from_address = pool_strdup(pool, session->username);
++ } else {
++ from_address =
+ pool_printf(pool, "%s@%s", session->username, default_domain);
++ }
+
+ if (draft->from_personal && draft->from_personal[0]) {
+ from_personal = draft->from_personal;
+@@ -1431,9 +1433,14 @@ char *draft_make_msg(struct draft *draft
+ NIL);
+ bputs(mb, "" CRLF);
+
+- if (use_sender)
+- bprintf(mb, "Sender: %s@%s" CRLF, session->username,
+- default_domain);
++ if (use_sender) {
++ if (strchr(session->username, '@')) {
++ bprintf(mb, "Sender: %s" CRLF, session->username);
++ } else {
++ bprintf(mb, "Sender: %s@%s" CRLF, session->username,
++ default_domain);
++ }
++ }
+
+ if (!(draft_make_abook_address(session, mb, "To", draft->to) &&
+ draft_make_abook_address(session, mb, "Cc", draft->cc) &&
+--- a/cmd/cmd_prefs.c
++++ b/cmd/cmd_prefs.c
+@@ -474,9 +474,12 @@ generate_compose1_form(struct session *s
+ template_vals_string(tvals, "from_address", prefs->from_address);
+
+ if (!(prefs->from_address && prefs->from_address[0])) {
+- char *s = pool_printf(request->pool, "%s@%s",
+- session->username, prefs->default_domain);
++ char *s = session->username;
+
++ if (!strchr(session->username, '@')) {
++ s = pool_printf(request->pool, "%s@%s",
++ session->username, prefs->default_domain);
++ }
+ template_vals_string(tvals, "default_from_address", s);
+ }
+
Index: 1.2.2.1-6/debian/patches/series
===================================================================
--- 1.2.2.1-6/debian/patches/series (nonexistent)
+++ 1.2.2.1-6/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+repair_ssl_session_db_on_version_mismatch.patch
+makefile_install_config.patch
+remove_old_db_logfiles_from_prayer-ssl-prune.patch
+welcome_is_template.patch
+templates_fallback_to_compiled.patch
+template_find_bug.patch
+unlimit_login_username.patch
+usernames_with_at.patch
Index: 1.2.2.1-6/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.2.1-6/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,180 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,26 +65,21 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -271,11 +271,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -283,26 +283,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -387,13 +375,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -431,10 +419,7 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
+-
+-# $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++log_dir = "/var/log/prayer"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -442,7 +427,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -453,7 +438,7 @@ ssl_session_dir = "$var_prefix/ssl_s
+ tmp_dir = "$var_prefix/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -617,14 +602,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2144,7 +2144,6 @@ BOOL config_check(struct config * config
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
+ TEST_STRING(config->ssl_session_dir, "ssl_session_dir");
+- TEST_STRING(config->lock_dir, "lock_dir");
+ TEST_STRING(config->log_dir, "log_dir");
+ TEST_STRING(config->tmp_dir, "tmp_dir");
+ TEST_STRING(config->pid_dir, "pid_dir");
Index: 1.2.2.1-6/debian/patches/unlimit_login_username.patch
===================================================================
--- 1.2.2.1-6/debian/patches/unlimit_login_username.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/unlimit_login_username.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/servers/prayer_login.c
++++ b/servers/prayer_login.c
+@@ -116,7 +116,7 @@ prayer_login_generate(struct prayer *pra
+
+ bputs(b, " <td>");
+ bprintf(b,
+- "<input name=\"username\" value=\"%s\" size=\"8\" maxlength=\"8\" />",
++ "<input name=\"username\" value=\"%s\" size=\"16\" />",
+ user ? user : "");
+ bputs(b, "</td>" CRLF);
+ bputs(b, "</tr>" CRLF);
Index: 1.2.2.1-6/debian/patches/welcome_is_template.patch
===================================================================
--- 1.2.2.1-6/debian/patches/welcome_is_template.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/welcome_is_template.patch (revision 180)
@@ -0,0 +1,41 @@
+--- a/cmd/cmd_welcome.c
++++ b/cmd/cmd_welcome.c
+@@ -74,12 +74,7 @@ void cmd_welcome(struct session *session
+ unsigned long msgno;
+
+ if ((request->method != POST) && (prefs->use_welcome)) {
+- if (config->welcome_path &&
+- (string = read_welcome(request->pool, config->welcome_path)))
+- generate_welcome_page(session, string);
+- else
+- session_redirect(session, request, "list");
+-
++ generate_welcome_page(session, NULL);
+ return;
+ }
+
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -402,12 +402,6 @@ ssl_required = FALSE
+ # Session banner (local HTML inserted into each page of login session)
+ #session_banner_path = "$prefix/etc/session_banner.html"
+
+-# Welcome text displayed when user first logs in
+-welcome_path = "$prefix/etc/welcome.html"
+-
+-# Location of help files
+-help_dir = "$prefix/help"
+-
+ # Location of icon files
+ icon_dir = "$prefix/icons"
+
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2139,7 +2139,6 @@ BOOL config_check(struct config * config
+ struct config_http_port *chp;
+ char hostname[MAX_ADDRESS+1], domainname[MAX_ADDRESS+1];
+
+- TEST_STRING(config->help_dir, "help_dir");
+ TEST_STRING(config->icon_dir, "icon_dir");
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
Index: 1.2.2.1-6/debian/patches/template_find_bug.patch
===================================================================
--- 1.2.2.1-6/debian/patches/template_find_bug.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/template_find_bug.patch (revision 180)
@@ -0,0 +1,28 @@
+--- a/lib/template.c
++++ b/lib/template.c
+@@ -199,10 +199,11 @@ template_find(char *set, char *name, str
+ unsigned long first, last, middle;
+ int rc;
+
+- while (strcmp(tmi->name, set) != 0)
++ while (strcmp(tmi->name, set) != 0) {
+ tmi++;
+- if (!tmi->name)
+- return(NIL);
++ if (!tmi->name)
++ return(NIL);
++ }
+
+ tm = tmi->template_map;
+ count = *(tmi->count);
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -168,7 +168,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "html4";
++ config->template_set = "xhtml_strict";
+ config->template_use_compiled = T;
+
+ config->prayer_user = NIL;
Index: 1.2.2.1-6/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch
===================================================================
--- 1.2.2.1-6/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (revision 180)
@@ -0,0 +1,34 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -289,9 +289,6 @@ static int myarchive(const char **fnames
+ const char **fname;
+ char dstname[1024], *dp;
+
+- strcpy(dstname, dirname);
+- dp = dstname + strlen(dstname);
+-
+ /* Get the list of log files to remove. */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS, NULL);
+ if (r) {
+@@ -312,6 +309,11 @@ static int myarchive(const char **fnames
+ free (begin);
+ }
+
++ if (!dirname) return 0;
++
++ strcpy(dstname, dirname);
++ dp = dstname + strlen(dstname);
++
+ /* Get the list of database files to archive. */
+ /* XXX Should we do this, or just use the list given to us? */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL);
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -837,6 +837,7 @@ int ssl_prune_sessions(struct ssl_config
+ log_debug("tls_prune: purged %d out of %d entries",
+ prock.deletions, prock.count);
+
++ DB->archive(NULL, NULL);
+ DB->done();
+
+ return (0);
Index: 1.2.2.1-6/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.2.1-6/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -452,7 +452,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.2.1-6/debian/patches/repair_ssl_session_db_on_version_mismatch.patch
===================================================================
--- 1.2.2.1-6/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -208,7 +208,11 @@ static int init(const char *dbdir, int m
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
+- if (r != ENOENT) {
++ if (r != ENOENT
++#ifdef DB_VERSION_MISMATCH
++ && r != DB_VERSION_MISMATCH
++#endif
++ ) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
+ }
+@@ -217,7 +217,7 @@ static int init(const char *dbdir, int m
+ /* DPC 24/03/2002. DB_CREATE leaks 12 MBytes into dbenv.
+ * Workaround: close down dbenv, reopen after backing files created */
+
+- r = myinit(dbdir, myflags|MYDB_CREATE);
++ r = myinit(dbdir, myflags|MYDB_CREATE|MYDB_RECOVER);
+ if (r) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
Index: 1.2.2.1-6/debian/patches/sighandling.patch
===================================================================
--- 1.2.2.1-6/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.2.1-6/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.2.1-6/debian/control
===================================================================
--- 1.2.2.1-6/debian/control (nonexistent)
+++ 1.2.2.1-6/debian/control (revision 180)
@@ -0,0 +1,66 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate
+Suggests: prayer-accountd, prayer-templates, imap-server, aspell | ispell
+Description: standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-templates
+Architecture: all
+Recommends: prayer (>= 1.2.0)
+Replaces: prayer (<< 1.2.2.1-6)
+Description: templates for customizing Prayer Webmail
+ This package contains, in source form, the templates for the HTML
+ that Prayer outputs.
+ .
+ As all the templates are compiled into the session daemon,
+ prayer-session, you only need to install this package if you need to
+ customize one or more pages and you want something to start from.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.2.1-6/debian/prayer-session.8
===================================================================
--- 1.2.2.1-6/debian/prayer-session.8 (nonexistent)
+++ 1.2.2.1-6/debian/prayer-session.8 (revision 180)
@@ -0,0 +1,96 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SESSION 8
+.Sh NAME
+.Nm prayer-session
+.Nd Prayer user session backend daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground
+.Sh DESCRIPTION
+.Nm
+is the backend process in the Prayer Webmail system. A fresh
+.Nm
+backend is forked off whenever a user logs in.
+.Pp
+This process contains all of the permanent state associated with that login
+session including one or more connections to a IMAP server and possibly
+connections to accountd servers. prayer-session communicates with the user
+using HTML over HTTP connections via the
+.Xr prayer 8 proxy. Each login has a session ID that the front end processes
+use to find the correct backend.
+.Pp
+Backend server processes move into a dormant state after a certain period
+of inactivity, shutting down IMAP and accountd connections which can be
+easily resuscitated when the session wakes up. After a long period of
+inactivity, typically several hours the session process shuts down.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width Ds
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default
+.Pa /etc/prayer/prayer.cf .
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name
+to
+.Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width Ds
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use. The
+.Fl -config-file
+option takes precedence over this variable.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.Sh FILES
+.Bl -tag -width Ds
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It /usr/share/prayer/templates/
+Location of standard templates (in the separate
+.Em prayer-templates
+package). The templates are compiled into
+.Nm
+for performance reasons, so the template files are actually not
+used, but they are available for customization.
+.It /etc/prayer/templates/
+The Debian pre-configured
+.Cd template_path .
+As a Debian extension,
+.Nm
+looks here before falling back to the compiled template if
+.Cd template_use_compiled No is Li false .
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-6/debian/prayer-templates.install
===================================================================
--- 1.2.2.1-6/debian/prayer-templates.install (nonexistent)
+++ 1.2.2.1-6/debian/prayer-templates.install (revision 180)
@@ -0,0 +1 @@
+usr/share/prayer/templates
Index: 1.2.2.1-6/debian/prayer.install
===================================================================
--- 1.2.2.1-6/debian/prayer.install (nonexistent)
+++ 1.2.2.1-6/debian/prayer.install (revision 180)
@@ -0,0 +1,6 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer/icons
+usr/share/prayer/static
+etc/prayer/prayer.cf
Index: 1.2.2.1-6/debian/prayer.init
===================================================================
--- 1.2.2.1-6/debian/prayer.init (nonexistent)
+++ 1.2.2.1-6/debian/prayer.init (revision 180)
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $FRONTEND_DAEMON -a -x $SESSION_DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-6/debian/rules
===================================================================
--- 1.2.2.1-6/debian/rules (nonexistent)
+++ 1.2.2.1-6/debian/rules (revision 180)
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.2.2.1-6/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.2.1-6/debian/prayer.manpages
===================================================================
--- 1.2.2.1-6/debian/prayer.manpages (nonexistent)
+++ 1.2.2.1-6/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+debian/prayer.8
+debian/prayer-session.8
+debian/prayer.cf.5
+debian/prayer-ssl-prune.8
Index: 1.2.2.1-6/debian/prayer.cf.5
===================================================================
--- 1.2.2.1-6/debian/prayer.cf.5 (nonexistent)
+++ 1.2.2.1-6/debian/prayer.cf.5 (revision 180)
@@ -0,0 +1,1015 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER.CF 5
+.Sh NAME
+.Nm prayer.cf
+.Nd main Prayer configuration file
+.
+.Sh DESCRIPTION
+.
+.Pa prayer.cf
+is the configuration file of
+.Xr prayer 8
+and
+.Xr prayer-session 8 .
+.
+.Sh SYNTAX
+For the most part, prayer.cf consists of
+.Ar option No = Ar value
+pairs, but some configuration items are more complex. All values may
+be enclosed in double quotes, which are stripped. Quotes must be used
+if a value contains a
+.Ql #
+character. Otherwise, everything following it is treated as a comment.
+Any line can be folded using a
+.Ql \(rs
+character at the end of the line; any linear white space at the beginning
+of the next line is removed.
+.Pp
+Simple options can be of the following types:
+.Bl -tag
+.
+.It Vt string
+No particular restrictions.
+.It Vt path
+A file or directory name. The configuration parser expands occurences of a few macros
+in settings of this type. See
+.Cd prefix
+.No and Cd var_prefix
+below.
+.It Vt boolean
+The following forms are interpreted as
+.Sy true :
+.Ql true ,
+.Ql t ,
+and
+.Ql 1 .
+The following forms are interpreted as
+.Sy false :
+.Ql false ,
+.Ql nil ,
+.Ql 0 .
+Capitalisation does not matter.
+.
+.It Vt number
+An integer number (sequence of digits 0-9), optionally immediately followed by a single letter
+.Ql K ,
+causing the number to be multiplied by 1024, or
+.Ql M
+multiplying it by 1024 \(pc 1024.
+.
+.It Vt time
+An integer number (sequence of digits 0-9) of seconds, optionally immediately
+followed by a single case-insignificant letter
+.Ql s ,
+which has no effect,
+.Ql m ,
+causing the number to be multiplied by 60,
+.Ql h ,
+multiplying it by 60 \(pc 60, or
+.Ql d ,
+for a multiple of 24 \(pc 60 \(pc 60.
+.It Vt perm
+A file permission mode; an octal number of exactly four digits, where the first digit must be 0.
+.El
+.
+.Sh OPTIONS
+.
+.Bl -tag -width Ds
+.
+.It Cd prefix Vt ( string ) , Cd var_prefix Vt ( string )
+The values of these options can be referred to as
+.Li $prefix
+(or
+.Li ${prefix} ) ,
+and
+.Li $var_prefix
+(or
+.Li ${var_prefix} ) ,
+respectively, in settings of type
+.Vt path
+in the rest of the file.
+.Pp
+.Sy Default : No none. Need to be set only if referenced later.
+.
+.It Cd prayer_user Vt ( string ) , Cd prayer_uid Vt ( number )
+User name or ID to
+.Xr setuid 2
+to if started as root. Either, but not both, must be set and must not specify
+.Li uid 0 .
+.Sy Default :
+none.
+.
+.It Cd prayer_group Vt ( string ) , Cd prayer_gid Vt ( number )
+Group name or ID to
+.Xr setgid 2
+to if we start off as root. In addition, prayer calls
+.Xr initgroups 3
+if
+.Cd prayer_user
+is set.
+.Sy Default :
+none.
+.
+.It Cd prayer_background Vt ( boolean )
+Run prayer as background process. If true, prayer will return as soon
+as valid configuration is found.
+.Sy Default : Li true
+.
+.It Cd file_perms Vt ( perm )
+Create mode for new files.
+.Sy Default : Li 0640 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0644 .
+.
+.It Cd directory_perms Vt ( perm )
+Create mode for new directories.
+.Sy Default : Li 0750 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0755 .
+.
+.It Cd check_directory_perms Vt ( boolean )
+Check existing directories under
+.Li ${var_prefix} ?
+.El
+.
+.Ss Mail server settings
+.
+.Bl -tag -width Ds
+.It Cd imapd_server Vt ( string )
+Specifies the default IMAP server(s) using libc-client syntax:
+.Bd -literal -offset indent
+.Sm Ar host Oo : Ar port Oc Op / Ar flag Oo / Ar flag Oc Ar ...
+.Sm on
+.Ed
+.Pp
+Multiple server specifications can be listed, separated by commas. Common flags are:
+.Bl -tag -compact
+.It Li /ssl
+Use SSL-on-connect (on port 993 by default).
+.It Li /tls
+Force use of TLS (using STARTTLS on the normal IMAP port) to encrypt the
+session. Recommended if the server is remote, since otherwise a
+downgrade attack is possible.
+.It Li /notls
+Don't issue STARTTLS even if the server supports it. Recommended if
+the server is
+.Li localhost .
+.It Li /novalidate-cert
+Don't check the integrity of the server certificate.
+.El
+For the full list of flags, see naming.txt.gz in the current
+libc-client package.
+.
+.It Cd imapd_user_map Vt ( path )
+CDB lookup map overriding default imapd_server location. For information on CDB, see
+.Bl -bullet -compact
+.It
+http://cr.yp.to/cdb.html
+.It
+http://en.wikipedia.org/wiki/Constant_Data_Base
+.El
+.
+.It Cd prefs_folder_name Vt ( string )
+Name of Prayer user preferences folder on IMAP server.
+.
+.It Cd use_namespace ( Vt boolean )
+Use IMAP NAMESPACE command to find
+.Cd personal_hierarchy No and Cd hiersep .
+.Sy Default : Li true .
+.
+.It Cd personal_hierarchy ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """""" .
+.
+.It Cd hiersep ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """/""" .
+.
+.It Cd dualuse ( Vt boolean )
+Hint to Prayer that new mailboxes are dual use (i.e. can contain both
+mail and inferior mailboxes). Things will mostly work if dualuse set to
+.Li false No on a server which supports it, but people will be
+unable to create children of newly created mailboxes without
+refreshing the view.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd sieved_server Vt ( string )
+Talk to Cyrus timsieved using MANAGESIEVE protocol. Syntax is similar to
+.Cd imapd_server ,
+except the only recognised flag is
+.Li /ssl .
+.
+.It Cd sieved_user_map Vt ( path )
+Can be used to provide individualised imapd_server settings in the form of a CDB file.
+.
+.It Cd sieved_timeout Vt ( time )
+Default timsieved timeout is 10 minutes
+.El
+.
+.Ss Mail domain configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd local_domain
+Define a valid local domain, and optionally the valid local parts in that domain.
+This is a special directive that can appear multiple times and does not use an equals sign:
+.Bd -unfilled
+.Cd local_domain Ar domain Op Ar map
+.Ed
+.Pp
+.No Without Ar map , Cd local_domain
+simply defines a domain which will appear on the list visible to user
+preferences. With
+.Ar map ,
+it also defines a list a CDB map file which defines valid entries in
+that domain; used for personal name expansion and checking for valid
+addresses: The keys are the valid local parts and the values are the
+corresponding full names of the users.
+.Pp
+.Sy Default : No A single entry which corresponds to
+.Cd default_domain .
+.
+.It Cd return_path_domain Vt ( string )
+Domain used in the return address given to
+.Xr sendmail 8 .
+.Sy Default : No the default domain.
+.
+.It Cd filter_domain_pattern Vt ( string )
+A filter pattern which is equivalent to, or at least approximates the
+list of local domains.
+.Sy Default : No the default domain.
+.
+.It Cd hostname Vt ( string )
+Hostname is the canonical name for this particular system, used in
+session and icon URLs which are generated by Prayer. This is derived
+automatically using
+.Xr gethostname 2
+.No and Xr gethostbyname 3
+if no value is provided. However, there are situations, especially
+involving SSL certificates, where the default hostname may not be
+appropriate. The special value
+.Ql __UNDEFINED__
+here means the startup script or command line must provide a hostname
+using a
+.Fl -config-option
+override or via the environment variable
+.Ev PRAYER_HOSTNAME .
+This is just a safeguard for systems which use DNS round robining to
+distribute load across a number of machines.
+.
+.It Cd hostname_service Vt ( string )
+Host name common for all Prayer installations part of the same webmail
+service. (Only) useful for large installations using DNS round robin
+for load balancing (example: webmail.hermes.cam.ac.uk is an alias for
+webmail[123].hermes.cam.ac.uk). This setting is used for two things:
+The user is redirected to this hostname after logging out, and HTTP
+requests are sanity checked against it in addition to the canonical
+hostname.
+.Pp
+.Sy Default : No none
+.
+.It Cd fix_from_address ( Vt boolean )
+suppresses the From address option from the Preferences and Roles
+screens.
+.Sy Default : Li false .
+.
+.It Cd lookup_rpasswd ( Vt path )
+Path to a CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Sy Note : No Keys must be Em lowercase ;
+Prayer converts search strings to lowercase in order to provide
+case-insensitive lookup.
+.
+.It Cd lookup_rusername ( Vt path )
+Path to a second CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Pp
+If the user enters a valid and existing username according to
+.Xr getpwnam 3 , Prayer does not search these first two CDB files,
+but skips directly to the second stage of looking up user information.
+.
+.It Cd lookup_username ( Vt path )
+Path to a CDB file that maps usernames to records consisting of the user's
+.Dq registered name
+and his/her affiliation (department), separated by a vertical bar
+.Ql ( "|" ) .
+Additionally, if a second vertical bar follows, the account is
+regarded as cancelled.
+.Pp
+When presenting the search results, the usernames found are combined with the
+.Cd default_domain
+to form email addresses. It is not possible at this time to let users
+search for addresses in more than one domain using this facility.
+.
+.It Cd lookup_fullname ( Vt path )
+Path to a CDB file that maps usernames to
+.Dq display names ,
+possibly provided by the users themselves in some way. The display name
+of a user is used together with the email address in recipient fields
+.Pp
+Note that all four lookup options must be set to valid CDB files for
+the local lookup to work, but more than one option may conceivably
+point to the same file.
+.
+.It Cd ldap_server ( Vt string )
+Name or address of LDAP server.
+.
+.It Cd ldap_base_dn ( Vt string )
+Base DN to search. After binding anonymously, Prayer performs a
+one-level-scope search for entries with
+.Li surname No or Li mail No attributes containing the search string.
+The following attributes are fetched and presented:
+.Bl -bullet -compact
+.It
+.Li uid
+.It
+.Li displayName
+.It
+.Li cn Dq ( registered name )
+.It
+.Li ou Dq ( affiliation )
+.It
+.Li mail
+.It
+.Li telephoneNumber
+.El
+.
+.It Cd ldap_timeout ( Vt time )
+Search timeout.
+.Sy Default : Li 30s .
+.El
+.
+.Ss HTTP and other frontend settings
+.
+.Bl -tag -width Ds
+.
+.It Cd use_http_port , use_https_port
+Define a single HTTP[S] port to bind to. You can define an arbitary list
+of ports of both kinds by using a series of separate
+.Cd use_http_port No and Cd use_https_port
+directives, with one port on each line. Syntax:
+.Bd -literal -offset indent
+.Cd use_http_port Oo Ar interface : Oc Ns Ar port
+.Cd use_https_port Oo Ar interface : Oc Ns Ar port
+.Ed
+.Pp
+.Ar interface
+can be an IP (v4 or v6) address or a hostname. If provided, it is passed to
+.Xr getaddrinfo 3
+for resolution, and the first resulting address is used to bind to. Otherwise,
+.Xr prayer 8
+.No binds to Ar port No on all interfaces.
+.
+.It Cd ssl_default_port Vt ( number )
+Prayer will put a warning on the login page for HTTP connections if
+both HTTP and HTTPS sessions are available. This will provide a link
+to the SSL version of the service, defaulting to port 443 or failing
+that the first defined HTTPS port. ssl_default_port overrides the
+built in logic.
+.Pp
+Should be rarely required now that Prayer automatically derives an
+appropriate port if none is provided here.
+.
+.It Cd ssl_cert_file Vt ( path )
+Locatation of SSL certificate file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_privatekey_file Vt ( path )
+Location of SSL private key file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_rsakey_lifespan Vt ( time )
+Master server will regenerate shared RSA key at this interval.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_rsakey_freshen Vt ( time )
+RSA key remains fresh in child process for this long after first actual use.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_session_timeout Vt ( time )
+SSL session cache TTL.
+.Sy Default : Li 0 No (SSL session cache not used).
+.Xr prayer-ssl-prune 8 should be run periodically to purge any stale session
+data from the DBD database.
+.
+.It Cd egd_socket Vt ( path )
+Path to entropy gathering daemon socket. If provided, it will be used in place of
+or in addition to
+.Pa /dev/urandom
+.
+.It Cd contact_email Vt ( string )
+System administrator email address.
+.Sy This setting is currently not used.
+If you want to display support information to your users, customise the templates.
+.
+.It Cd fatal_dump_core Vt ( boolean )
+Dump core on
+.Fn fatal
+error.
+.Sy Default : No false.
+.
+.It Cd log_debug Vt ( boolean )
+Enable somewhat more verbose logging, mainly in relation to SSL.
+.Sy Default : No false.
+.
+.It Cd fix_client_ipaddr Vt ( boolean )
+Client must connect from consistent IP addresses. May be useful as
+a security measure in LAN environments. Painful for dialup users
+whose connections may drop out.
+.Sy Default : No false.
+.
+.It Cd gzip_allow_nets Vt ( string ) , Cd gzip_deny_nets Vt ( string )
+.Xr prayer-session 8
+gzip-compresses pages sent to clients if:
+.Bl -enum -compact
+.It
+gzip compression enabled at compile time,
+.It
+.Cd use_gzip No is set in user preferences,
+.It
+User agent is known to support Content-Encoding: gzip,
+.It
+User agent asks for Content-Encoding: gzip or x-gzip,
+.It
+IP address of client appears in
+.Cd gzip_allow_nets
+.Em or No IP address of client does Em not No appear in Cd gzip_deny_nets .
+.El
+.Pp
+The format of these options is a sequence of
+.Ar ipaddr Ns Op / Ns Ar masklen
+items, separated by colons
+.Em and No whitespace (to allow for IPv6 addresses to be parsed easily). If
+.Ar masklen No is omitted, the item is interpreted as a full host address.
+.
+.It Cd log_name_nets Vt ( string )
+A network list in the same format as
+.Cd gzip_allow_nets
+above. To avoid delay when a user logs in,
+.Xr prayer-session 8
+only performs a reverse lookup of the remote address if matches this list.
+.Sy Default : No empty; no reverse lookup are performed.
+.
+.It Cd limit_vm Vt ( number )
+Virtual memory limit imposed on each process to stop runaway process killing system. See
+.Xr setrlimit 2 .
+.Sy Default : No no limit.
+.
+.It Cd http_max_method_size Vt ( number )
+Prayer should in theory be able to cope with input of arbitrary
+size. In practice however, the incoming request has to be stored
+somewhere and without limits an attacker may exhaust available memory,
+causing a denial of service attack.
+.Pp
+This sets the maximum size of the initial line of an HTTP request.
+.Sy Default : No no limit.
+.
+.It Cd http_max_hdr_size Vt ( number )
+Maximum for headers associated with this request.
+.
+.It Cd http_max_body_size Vt ( number )
+Maximum for HTTP payload. This is the most significant one in normal use.
+.
+.It Cd draft_att_single_max ( Vt number )
+Maximum size of a single attachment when composing a mail.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd draft_att_total_max ( Vt number )
+Maximum size of all attachments.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd http_min_servers Vt ( number )
+Minimum number of preforked
+.Xr prayer 8 HTTP servers. The master process forks new slave processes
+whenever the number of idle slaves falls below this number, unless the
+total number of slaves would exceed
+.Cd http_max_servers .
+.Sy Default : Li 4.
+.
+.It Cd http_max_servers Vt ( number )
+Maximum number of preforked
+.Xr prayer 8 HTTP servers (active and idle). The master process does not,
+however, enforce any maximum number of
+.Em idle No slave processes; they have to terminate voluntarily by timing out
+or serving the maximum number of connections.
+.Sy Default : Li 64 .
+.
+.It Cd http_max_connections Vt ( number )
+Maximum number of connections that each frontend server will process.
+.Sy Default : Li 0 No (no limit).
+.
+.It Cd http_timeout_idle Vt ( time )
+Timeout for (dirty) spare server waiting for another HTTP connection.
+.Sy Default : Li 30s .
+.
+.It Cd http_timeout_icons Vt ( time )
+Timeout for HTTP connection that last served static content.
+.Sy Default : Li 10s .
+.
+.It Cd http_timeout_session Vt ( time )
+Timeout for HTTP connection that last served a session URL or has not served anything yet.
+.Sy Default : Li 60s .
+.
+.It Cd http_cookie_use_port Vt ( boolean )
+Present HTTP cookies to browser as
+.Dq Li username:port=value
+rather than
+.Dq Li username=value .
+Allows simultaneous login sessions from a single client browser.
+However can leave a trail of cookies behind. Probably don't want this
+in the long term, it's here for experimentation purposes only at the
+moment.
+.
+.It Cd icon_expire_timeout Vt ( time )
+The amount of time in the future to set the HTTP
+.Li Expires: No field for static content.
+.Sy Default : Li 7d .
+(In contrast sessions URLs expire immediately: Browsers really
+shouldn't be trying to cache this stuff, especially when it is coming
+in over HTTPS).
+.El
+.
+.Ss Session specific configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd session_idle_time Vt ( time )
+Session switches to idle mode after this much time: connections to
+IMAP and accountd servers are shut down.
+.Sy Default : Li 0 No (idle mode disabled).
+.
+.It Cd session_timeout Vt ( time )
+Session terminates after this much idle time.
+.Ql 0
+means session never times out.
+.Sy Default : Li 4h .
+.
+.It Cd session_timeout_compose Vt ( time )
+Session terminates after this much idle time instead when the last command was
+.Ql compose
+.No or Ql sieve .
+It should probably not be set lower than
+.Cd session_timeout .
+.Sy Default : Li 0 No (always use the same timeout).
+.
+.It Cd stream_ping_interval Vt ( time )
+Ping INBOX, Other, and Draft streams at this interval.
+.Sy Default : Li 5m .
+.
+.It Cd stream_checkpoint Vt ( boolean )
+.No Use Li CHECKPOINT No instead of Li PING Li to \(lqping\(rq streams.
+.Sy Default : Li true .
+.
+.It Cd stream_misc_timeout Vt ( time )
+Shut down Postponed, Preferences and Transfer streams entirely
+after this much idle time, but only if idle mode doesn't beat us to it.
+.Sy Default : Li 0 No (disabled).
+.
+.It Cd log_ping_interval Vt ( time )
+.Xr stat 2 log files at this interval to see if target file has been
+renamed or removed.
+.Ql 0s
+means stat() log file every time something is logged.
+.Sy Default : Li 5m .
+.
+.It Cd db_ping_interval Vt ( time )
+Interval at which to re-read CDB files containing the local domain.
+.Sy Default : Li 30m .
+.El
+.
+.Ss Display specific configuration
+.
+.Bl -tag -width Ds
+.It Cd login_banner Vt ( string )
+Used in the
+.Li <title>
+and heading of the login page, unless
+.Cd login_prefix_path
+specifies a custom first HTML part.
+.Sy Default : Li """Webmail Service Login""" .
+.
+.It Cd login_service_name Vt ( string )
+Used in the
+.Li <title> No and elsewhere to refer to the webmail system
+.Em after No the user has logged in.
+.Sy Default : Li """Prayer""" .
+.
+.It Cd login_prefix_path Vt ( path )
+File to use as the part of the login page before the login
+form. Should include everything including DOCTYPE and <html> tag. If
+unset, Prayer constructs a fairly safe and boring login page
+consisting of the
+.Cd login_banner .
+on the background colour of the default main theme.
+.
+.It Cd motd_path Vt ( path )
+File to use as the part of the login page immediately following the login form.
+.
+.It Cd login_suffix_path Vt ( path )
+File to use as the last part of the login page. If unset, Prayer simply outputs
+.Dq Li </body></html> .
+.
+.It Cd ssl_encouraged ( Vt boolean )
+If the user connects over unencrypted HTTP, do not show the login form on the start
+.Pa ( / ) No page. A link to Pa /login , No where the form is still displayed, is still provided.
+.Sy Default : Li false . No Ignored if Cd ssl_redirect No or Cd ssl_required No is Li true .
+.
+.It Cd ssl_redirect ( Vt boolean )
+If the user connects over unencrypted HTTP, return a
+.Ql 302
+redirect to the default SSL port. Only the start
+.Pa ( / ) No page is redirected and it may be possible to switch between http and
+https after loggin in, subject to cookie rules.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd ssl_required ( Vt boolean )
+Return a
+.Ql 403 Forbidden
+error if the user tries to access anything over unencrypted HTTP.
+.Cd ssl_redirect No still has effect, however.
+.
+.It Cd list_addr_maxlen Vt ( number )
+The maximum number of characters to show from addresses on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd list_subject_maxlen Vt ( number )
+The maximum number of characters to show from the subject on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd change_max_folders ( Vt number )
+The maximum number of folders allowed in the quick folder change
+dropdown list. If there would be too many folders, the quick list is
+disabled altogether. Only folders that are expanded in the folder view
+are included.
+.Pp
+.Sy Default : Li 20 .
+.
+.It Cd template_path ( Vt path )
+Path to uncompiled template sets (directories).
+.Sy Default : Li """../templates""" No (relative to
+.Cd tmp_dir ) .
+.
+.It Cd template_set ( Vt string )
+Template set to use.
+.Sy Default : Li """xhtml_strict""" .
+.
+.It Cd template_use_compiled ( Vt boolean )
+Use the compiled-in templates, ignoring
+.Cd template_path .
+.Sy Default : Li true .
+.Pp
+As a Debian extension,
+.Xr prayer-session 8
+will fall back to the compiled-in template version of any template
+that it cannot find in the template directory. This enables
+customization of some templates without having to compile all of them
+at run time, although attempting to open each template still incurs a
+certain penalty.
+.
+.It Cd theme
+Define themes and their colors.
+.Em Semi-deprecated ; No Colours set with this directive are only used by the
+.Li xhtml_transitional No template set. The
+.Li xhtml_strict No template set, as well as the login screen, use CSS instead.
+It is still necessary to tell Prayer which themes are available, however.
+.Pp
+Syntax:
+.Bd -literal -offset indent
+.Cd theme Ar name Li description Ar description
+.Cd theme Ar name element colour
+.Cd theme Ar name element colour
+\&...
+.Ed
+.Pp
+.Ar description No is the label shown in the theme dropdown lists on the
+General Preferences page.
+.Pp
+.Ar element No is one of
+.Li fgcolor , fgcolor_link , bgcolor , bgcolor_banner , bgcolor_row1 , bgcolor_row2 ,
+.Li bgcolor_status , bgcolor_status_none , fgcolor_quote1 , fgcolor_quote2 ,
+.Li fgcolor_quote3 , No and Li fgcolor_quote4 .
+The first three are not used by any standard template set, but are
+available. Please study the templates to understand how the rest are
+used.
+.Pp
+.Ar colour No is any valid HTML Vt %Color No value.
+Remember that strings containing hash marks need to be quoted.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme.
+.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme in help mode.
+.
+.It Cd use_ispell_language
+Ispell languages that we want to support, with some descriptive text
+for the preferences screen. Syntax:
+.Bd -literal -offset indent
+.Cd use_ispell_language Ar wordlist Ar description
+.Ed
+.Pp
+Example:
+.Bd -literal -offset indent
+.Li use_ispell_language british Qq British English
+.Ed
+.El
+.
+.Ss Paths etc.
+.
+.Bl -tag -width Ds
+.
+.It Cd aspell_path ( Vt path )
+Location of Aspell Binary (takes precedence over
+.Cd ispell_path ) .
+.
+.It Cd bin_dir ( Vt path )
+Location of Prayer binaries
+.Xr ( prayer 8 and
+.Xr prayer-session 8 ) .
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd icon_dir ( Vt path )
+Location of icon files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ispell_path ( Vt path )
+Location of Ispell Binary (backwards compatibility only).
+.
+.It Cd log_dir ( Vt path )
+Location of log files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd pid_dir ( Vt path )
+Location for PID files of prayer and prayer-session master processes.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd sendmail_path ( Vt path )
+Location of sendmail binary or drop in replacement such as Exim.
+.Sy Default : Pa /usr/lib/sendmail .
+.
+.It Cd socket_dir ( Vt path )
+Location for unix domain sockets which connect
+.Xr ( prayer 8 to
+.Xr prayer-session 8 ) .
+.
+.It Cd socket_split_dir ( Vt boolean )
+Split socket directory into 64 subdirs keyed on first letter of
+sessionID. It is possible to switch back and forth without moving
+sockets or killing sessions, since
+.Xr prayer 8 tries both variants. \&In effect, this setting merely controls where
+.Xr prayer-session 8 creates the socket files.
+.Sy Default : Li false .
+.
+.It Cd init_socket_name ( Vt string )
+Name of Unix domain socket (in
+.Cd socket_dir ) No used for initial handshake
+between prayer and prayer-session processes when a user logs in.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ssl_session_dir ( Vt path )
+Location of the SSL session cache database.
+.Sy Default : No none. Sy Must be set , No even if the SSL session cache is disabled.
+.
+.It Cd static_dir ( Vt path )
+Location of other static files (CSS).
+.Sy Default : No none. If unset, Prayer will not serve CSS files.
+.
+.It Cd tmp_dir ( Vt path )
+As the directory both daemons
+.Xr chdir 2
+to at startup, it is where temporary files, such as attachments and
+folders in transist during upload and download operations, are
+written. Core files also end up here.
+.Sy Default : No none. Sy Must be set.
+.El
+.
+.Ss Defaults for user preferences
+.
+.Bl -tag -width Ds
+.
+.It Cd confirm_logout ( Vt boolean )
+Confirmation dialogue when user logs out.
+.Sy Default : Li true .
+.
+.It Cd confirm_expunge ( Vt boolean )
+Confirmation dialogue when user hits expunge.
+.Sy Default : Li false .
+.
+.It Cd confirm_rm ( Vt boolean )
+Confirmation dialogue when user deletes mail folder or directory.
+.Sy Default : Li true .
+.
+.It Cd default_domain Vt ( string )
+Default domain for outgoing mail. Defaults to
+.Cd hostname No setting.
+.
+.It Cd html_inline ( Vt boolean )
+Show text/html bodyparts inline. Content is scrubbed to remove
+dangerous tags; see documentation for more details.
+.Sy Default : Li true .
+.
+.It Cd html_inline_auto ( Vt boolean )
+Same as above for text/* bodyparts which start "<HTML>" (case-independent!)
+Does anyone other than spammers actually use this?
+.Sy Default : Li true .
+.
+.It Cd ispell_language ( Vt string )
+Language for ispell.
+.Sy Default : Li """british""" .
+.
+.It Cd msgs_per_page ( Vt number )
+Number of messages per screen on message list screen.
+.Sy Default : Li 12 .
+.
+.It Cd msgs_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd msgs_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd abook_per_page ( Vt number )
+Number of addressbook entries per page on address book list screen.
+.Sy Default : Li 12 .
+.
+.It Cd abook_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd abook_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd maildir ( Vt string )
+Mail directory in user's account.
+.Sy Default : Li """""" .
+Typically needed with uw-imap. Typically not needed with e.g. Dovecot or Courier.
+.
+.It Cd suppress_dotfiles ( Vt boolean )
+Supress dotfiles from directory listing.
+.Sy Default : Li true .
+.
+.It Cd postponed_folder ( Vt string )
+Name of the folder where messages to be sent later, a.k.a. drafts, are stored.
+.Sy Default : Li """postponed-msgs""" .
+.
+.It Cd sent_mail_folder ( Vt string )
+Name of folder for sent mail.
+.Sy Default : Li """sent-mail""" .
+.
+.It Cd small_cols ( Vt number )
+Width of small compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd small_rows ( Vt number )
+Height of small compose textarea in lines.
+.Sy Default : Li 18 .
+.
+.It Cd large_cols ( Vt number )
+Width of large compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd large_rows ( Vt number )
+Height of large compose textarea in lines.
+.Sy Default : Li 32 .
+.
+.It Cd sort_mode ( Vt string )
+Default Sort mode for mailbox list. One of
+.Li ARRIVAL , DATE , FROM , TO , CC , SIZE , SUBJECT , REFERENCES , ORDEREDSUBJECT .
+.Sy Default : Li ARRIVAL No is most efficient, and recommended.
+.
+.It Cd sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd abook_sort_mode ( Vt string )
+Default Sort mode for addressbook list. One of:
+.Li ORDERED , ALIAS , NAME , COMMENT , ADDRESS .
+.Sy Default : Li ORDERED .
+.
+.It Cd abook_sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_len ( Vt number )
+Wrap lines at this many characters.
+.Sy Default : Li 76 .
+.
+.It Cd line_wrap_advanced ( Vt boolean )
+Enable advanced line wrap options?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_on_reply ( Vt boolean )
+Line wrap automatically on reply.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_spell ( Vt boolean )
+Line wrap automatically on spell check.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_send ( Vt boolean )
+Line wrap automatically on send.
+.Sy Default : Li true .
+.
+.It Cd preserve_mimetype ( Vt boolean )
+Send message Content-Type through to browser. If
+.Li false , No Content-Type is replaced with
+.Ql application/octet-stream
+which should force download to local disk, bypassing any automatic
+processing of bodyparts by the User-Agent. Unclear at the moment
+whether we need to do this, or whether this should be done selectively
+based on the User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_sent_mail ( Vt boolean )
+.No Make the Dq Save copy
+checkbox on the compose screen checked default.
+.Sy Default : Li true .
+.
+.It Cd use_mark_persist ( Vt boolean )
+Use persistent mark for aggregate operations.
+.Sy Default : Li false .
+.
+.It Cd use_search_zoom ( Vt boolean )
+Zoom automatically after sucessful search
+.Sy Default : Li true .
+.
+.It Cd use_agg_unmark ( Vt boolean )
+Unmark messages after sucessful aggregate operation.
+.Sy Default : Li true .
+.
+.It Cd use_icons ( Vt boolean )
+Use icons: may be overriden by value of User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_welcome ( Vt boolean )
+Enable welcome screen .
+.Sy Default : Li true .
+.
+.It Cd use_tail_banner ( Vt boolean )
+Duplicate banner icons (toolbar) at the bottom of the Message screen.
+.Sy Default : Li true .
+.El
+.
+.Ss Hidden preferences
+.
+The following options are internally handled as user preferences, but
+the Preferences screen no longer provides any means for changing them.
+.
+.Bl -tag -width Ds
+.It Cd use_cookie ( Vt boolean )
+Use HTTP cookie for Session-ID, if the browser supports cookies
+If disabled, or user rejects the cookie, then the session-ID is stored in the URL.
+.Sy Default : Li true .
+.
+.It Cd use_substitution ( Vt boolean )
+Use page substiution rather than HTTP redirects. Faster, but the URLs
+that are generated are less predictable. Page substitution and browser
+history mechanism don't coexist well at the moment (Prayer would need to
+cache final page value for each substiution event).
+.Pp
+.Sy Default : Li true .
+.
+.It Cd use_http_1_1 ( Vt boolean )
+Allow HTTP/1.1, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_pipelining ( Vt boolean )
+Allow HTTP/1.1 pipelining, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_embed_http ( Vt boolean )
+Allow HTTP links embedded in HTTPS responses, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_persist ( Vt boolean )
+Allow persistent HTTP/1.1 and HTTP/1.0 persistent connections,
+if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_short ( Vt boolean )
+Allow short URLs, if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_gzip ( Vt boolean )
+Allow gzip compression, if the browser supports it.
+.Sy Default : Li true .
+.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer-session 8
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
Index: 1.2.2.1-6/debian/prayer-ssl-prune.8
===================================================================
--- 1.2.2.1-6/debian/prayer-ssl-prune.8 (nonexistent)
+++ 1.2.2.1-6/debian/prayer-ssl-prune.8 (revision 180)
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SSL-PRUNE 8
+.Sh NAME
+.Nm prayer-ssl-prune
+.Nd purge stale SSL session data
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+should be run periodically (e.g. once a day) when using SSL session caching
+.Cd ( ssl_session_timeout No > 0 in
+.Pa prayer.cf ) .
+It removes old transaction logs and stale session data.
+It accepts the same configuration-overriding options as
+.Xr prayer 8 and
+.Xr prayer-session 8 .
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /var/run/prayer/ssl_scache/
+Default location of the SSL session cache database.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-6/debian/prayer.8
===================================================================
--- 1.2.2.1-6/debian/prayer.8 (nonexistent)
+++ 1.2.2.1-6/debian/prayer.8 (revision 180)
@@ -0,0 +1,93 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER 8
+.Sh NAME
+.Nm prayer
+.Nd standalone IMAP-based webmail server
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground | -disable-prefork
+.Oo Fl -disable-session | -
+.Ar session-options Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+is the normal frontend daemon in the Prayer Webmail system. It is a
+simple HTTP server and proxy that serves icons and other static files,
+but firstly and foremostly forwards requests to the correct backend
+daemons based on session IDs passed either in cookies or as part of
+the URL.
+.Pp
+The master daemon normally preforks a number of child processes that
+each will serve a configurable number of requests. The total number of
+child processes is limited to prevent denial of service attacks.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.It Fl -disable-prefork
+Disable preforking. The master daemon will listen for connections
+on the configured ports and spawn child processes one at a time.
+.It Fl -disable-session
+Do not start the session server,
+.Xr prayer-session 8 .
+.It Fl -
+End of
+.Nm
+options; remaining options will be passed to
+.Xr prayer-session 8 .
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /usr/share/prayer/icons/
+Location of the standard icons used by the interface.
+.It Pa /usr/share/prayer/static/
+Directory containing other static files; currently only CSS files.
+.It Pa /var/run/prayer/sockets/
+Pre-configured location of sockets for frontend to backend communication.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer-session 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org>
+.No using documentation written by An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-6/debian/Config
===================================================================
--- 1.2.2.1-6/debian/Config (nonexistent)
+++ 1.2.2.1-6/debian/Config (revision 180)
@@ -0,0 +1,146 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.2.1-6/debian/prayer-accountd.init
===================================================================
--- 1.2.2.1-6/debian/prayer-accountd.init (nonexistent)
+++ 1.2.2.1-6/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-6/debian/README.Debian
===================================================================
--- 1.2.2.1-6/debian/README.Debian (nonexistent)
+++ 1.2.2.1-6/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.2.1-6/debian/prayer.dirs
===================================================================
--- 1.2.2.1-6/debian/prayer.dirs (nonexistent)
+++ 1.2.2.1-6/debian/prayer.dirs (revision 180)
@@ -0,0 +1,4 @@
+var/run/prayer
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.2.1-6/debian/prayer.examples
===================================================================
--- 1.2.2.1-6/debian/prayer.examples (nonexistent)
+++ 1.2.2.1-6/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.2.1-6/debian/prayer.postinst
===================================================================
--- 1.2.2.1-6/debian/prayer.postinst (nonexistent)
+++ 1.2.2.1-6/debian/prayer.postinst (revision 180)
@@ -0,0 +1,56 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.2.1-6/debian/copyright
===================================================================
--- 1.2.2.1-6/debian/copyright (nonexistent)
+++ 1.2.2.1-6/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.2.1-6/debian/prayer.docs
===================================================================
--- 1.2.2.1-6/debian/prayer.docs (nonexistent)
+++ 1.2.2.1-6/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.2.1-6/debian/prayer.postrm
===================================================================
--- 1.2.2.1-6/debian/prayer.postrm (nonexistent)
+++ 1.2.2.1-6/debian/prayer.postrm (revision 180)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.2.1-6/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.2.1-6/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.2.1-6/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-6/debian/prayer.lintian-overrides
===================================================================
--- 1.2.2.1-6/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.2.1-6/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-6/debian/compat
===================================================================
--- 1.2.2.1-6/debian/compat (nonexistent)
+++ 1.2.2.1-6/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.2.1-6/debian/prayer.default
===================================================================
--- 1.2.2.1-6/debian/prayer.default (nonexistent)
+++ 1.2.2.1-6/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.2.1-6/debian/prayer-accountd.docs
===================================================================
--- 1.2.2.1-6/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.2.1-6/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.2.1-6/debian/prayer.logrotate
===================================================================
--- 1.2.2.1-6/debian/prayer.logrotate (nonexistent)
+++ 1.2.2.1-6/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.2.1-6/debian/prayer-accountd.install
===================================================================
--- 1.2.2.1-6/debian/prayer-accountd.install (nonexistent)
+++ 1.2.2.1-6/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.2.1-6/debian/watch
===================================================================
--- 1.2.2.1-6/debian/watch (nonexistent)
+++ 1.2.2.1-6/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.2.1-6/debian
===================================================================
--- 1.2.2.1-6/debian (nonexistent)
+++ 1.2.2.1-6/debian (revision 180)
/1.2.2.1-6/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.2.1-5a/debian/changelog
===================================================================
--- 1.2.2.1-5a/debian/changelog (nonexistent)
+++ 1.2.2.1-5a/debian/changelog (revision 180)
@@ -0,0 +1,178 @@
+prayer (1.2.2.1-5a) unstable; urgency=medium
+
+ * Prevent dh_installman from interpreting the cf in prayer.cf.5 as a
+ language code.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 19:24:10 +0200
+
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.2.1-5a/debian/rules
===================================================================
--- 1.2.2.1-5a/debian/rules (nonexistent)
+++ 1.2.2.1-5a/debian/rules (revision 180)
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+DEB_INSTALL_MANPAGES_prayer = "--language=C"
/1.2.2.1-5a/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.2.1-5a/debian/prayer-session.8
===================================================================
--- 1.2.2.1-5a/debian/prayer-session.8 (nonexistent)
+++ 1.2.2.1-5a/debian/prayer-session.8 (revision 180)
@@ -0,0 +1,94 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SESSION 8
+.Sh NAME
+.Nm prayer-session
+.Nd Prayer user session backend daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground
+.Sh DESCRIPTION
+.Nm
+is the backend process in the Prayer Webmail system. A fresh
+.Nm
+backend is forked off whenever a user logs in.
+.Pp
+This process contains all of the permanent state associated with that login
+session including one or more connections to a IMAP server and possibly
+connections to accountd servers. prayer-session communicates with the user
+using HTML over HTTP connections via the
+.Xr prayer 8 proxy. Each login has a session ID that the front end processes
+use to find the correct backend.
+.Pp
+Backend server processes move into a dormant state after a certain period
+of inactivity, shutting down IMAP and accountd connections which can be
+easily resuscitated when the session wakes up. After a long period of
+inactivity, typically several hours the session process shuts down.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width Ds
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default
+.Pa /etc/prayer/prayer.cf .
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name
+to
+.Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width Ds
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use. The
+.Fl -config-file
+option takes precedence over this variable.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.Sh FILES
+.Bl -tag -width Ds
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It /usr/share/prayer/templates/
+Location of standard templates. The templates are compiled into
+.Nm
+for performance reasons, so the template files are actually not
+used, but they are available for customization.
+.It /etc/prayer/templates/
+The Debian pre-configured
+.Cd template_path .
+As a Debian extension,
+.Nm
+looks here before falling back to the compiled template if
+.Cd template_use_compiled No is Li false .
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-5a/debian/prayer.manpages
===================================================================
--- 1.2.2.1-5a/debian/prayer.manpages (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+debian/prayer.8
+debian/prayer-session.8
+debian/prayer.cf.5
+debian/prayer-ssl-prune.8
Index: 1.2.2.1-5a/debian/prayer.cf.5
===================================================================
--- 1.2.2.1-5a/debian/prayer.cf.5 (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.cf.5 (revision 180)
@@ -0,0 +1,1015 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER.CF 5
+.Sh NAME
+.Nm prayer.cf
+.Nd main Prayer configuration file
+.
+.Sh DESCRIPTION
+.
+.Pa prayer.cf
+is the configuration file of
+.Xr prayer 8
+and
+.Xr prayer-session 8 .
+.
+.Sh SYNTAX
+For the most part, prayer.cf consists of
+.Ar option No = Ar value
+pairs, but some configuration items are more complex. All values may
+be enclosed in double quotes, which are stripped. Quotes must be used
+if a value contains a
+.Ql #
+character. Otherwise, everything following it is treated as a comment.
+Any line can be folded using a
+.Ql \(rs
+character at the end of the line; any linear white space at the beginning
+of the next line is removed.
+.Pp
+Simple options can be of the following types:
+.Bl -tag
+.
+.It Vt string
+No particular restrictions.
+.It Vt path
+A file or directory name. The configuration parser expands occurences of a few macros
+in settings of this type. See
+.Cd prefix
+.No and Cd var_prefix
+below.
+.It Vt boolean
+The following forms are interpreted as
+.Sy true :
+.Ql true ,
+.Ql t ,
+and
+.Ql 1 .
+The following forms are interpreted as
+.Sy false :
+.Ql false ,
+.Ql nil ,
+.Ql 0 .
+Capitalisation does not matter.
+.
+.It Vt number
+An integer number (sequence of digits 0-9), optionally immediately followed by a single letter
+.Ql K ,
+causing the number to be multiplied by 1024, or
+.Ql M
+multiplying it by 1024 \(pc 1024.
+.
+.It Vt time
+An integer number (sequence of digits 0-9) of seconds, optionally immediately
+followed by a single case-insignificant letter
+.Ql s ,
+which has no effect,
+.Ql m ,
+causing the number to be multiplied by 60,
+.Ql h ,
+multiplying it by 60 \(pc 60, or
+.Ql d ,
+for a multiple of 24 \(pc 60 \(pc 60.
+.It Vt perm
+A file permission mode; an octal number of exactly four digits, where the first digit must be 0.
+.El
+.
+.Sh OPTIONS
+.
+.Bl -tag -width Ds
+.
+.It Cd prefix Vt ( string ) , Cd var_prefix Vt ( string )
+The values of these options can be referred to as
+.Li $prefix
+(or
+.Li ${prefix} ) ,
+and
+.Li $var_prefix
+(or
+.Li ${var_prefix} ) ,
+respectively, in settings of type
+.Vt path
+in the rest of the file.
+.Pp
+.Sy Default : No none. Need to be set only if referenced later.
+.
+.It Cd prayer_user Vt ( string ) , Cd prayer_uid Vt ( number )
+User name or ID to
+.Xr setuid 2
+to if started as root. Either, but not both, must be set and must not specify
+.Li uid 0 .
+.Sy Default :
+none.
+.
+.It Cd prayer_group Vt ( string ) , Cd prayer_gid Vt ( number )
+Group name or ID to
+.Xr setgid 2
+to if we start off as root. In addition, prayer calls
+.Xr initgroups 3
+if
+.Cd prayer_user
+is set.
+.Sy Default :
+none.
+.
+.It Cd prayer_background Vt ( boolean )
+Run prayer as background process. If true, prayer will return as soon
+as valid configuration is found.
+.Sy Default : Li true
+.
+.It Cd file_perms Vt ( perm )
+Create mode for new files.
+.Sy Default : Li 0640 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0644 .
+.
+.It Cd directory_perms Vt ( perm )
+Create mode for new directories.
+.Sy Default : Li 0750 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0755 .
+.
+.It Cd check_directory_perms Vt ( boolean )
+Check existing directories under
+.Li ${var_prefix} ?
+.El
+.
+.Ss Mail server settings
+.
+.Bl -tag -width Ds
+.It Cd imapd_server Vt ( string )
+Specifies the default IMAP server(s) using libc-client syntax:
+.Bd -literal -offset indent
+.Sm Ar host Oo : Ar port Oc Op / Ar flag Oo / Ar flag Oc Ar ...
+.Sm on
+.Ed
+.Pp
+Multiple server specifications can be listed, separated by commas. Common flags are:
+.Bl -tag -compact
+.It Li /ssl
+Use SSL-on-connect (on port 993 by default).
+.It Li /tls
+Force use of TLS (using STARTTLS on the normal IMAP port) to encrypt the
+session. Recommended if the server is remote, since otherwise a
+downgrade attack is possible.
+.It Li /notls
+Don't issue STARTTLS even if the server supports it. Recommended if
+the server is
+.Li localhost .
+.It Li /novalidate-cert
+Don't check the integrity of the server certificate.
+.El
+For the full list of flags, see naming.txt.gz in the current
+libc-client package.
+.
+.It Cd imapd_user_map Vt ( path )
+CDB lookup map overriding default imapd_server location. For information on CDB, see
+.Bl -bullet -compact
+.It
+http://cr.yp.to/cdb.html
+.It
+http://en.wikipedia.org/wiki/Constant_Data_Base
+.El
+.
+.It Cd prefs_folder_name Vt ( string )
+Name of Prayer user preferences folder on IMAP server.
+.
+.It Cd use_namespace ( Vt boolean )
+Use IMAP NAMESPACE command to find
+.Cd personal_hierarchy No and Cd hiersep .
+.Sy Default : Li true .
+.
+.It Cd personal_hierarchy ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """""" .
+.
+.It Cd hiersep ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """/""" .
+.
+.It Cd dualuse ( Vt boolean )
+Hint to Prayer that new mailboxes are dual use (i.e. can contain both
+mail and inferior mailboxes). Things will mostly work if dualuse set to
+.Li false No on a server which supports it, but people will be
+unable to create children of newly created mailboxes without
+refreshing the view.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd sieved_server Vt ( string )
+Talk to Cyrus timsieved using MANAGESIEVE protocol. Syntax is similar to
+.Cd imapd_server ,
+except the only recognised flag is
+.Li /ssl .
+.
+.It Cd sieved_user_map Vt ( path )
+Can be used to provide individualised imapd_server settings in the form of a CDB file.
+.
+.It Cd sieved_timeout Vt ( time )
+Default timsieved timeout is 10 minutes
+.El
+.
+.Ss Mail domain configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd local_domain
+Define a valid local domain, and optionally the valid local parts in that domain.
+This is a special directive that can appear multiple times and does not use an equals sign:
+.Bd -unfilled
+.Cd local_domain Ar domain Op Ar map
+.Ed
+.Pp
+.No Without Ar map , Cd local_domain
+simply defines a domain which will appear on the list visible to user
+preferences. With
+.Ar map ,
+it also defines a list a CDB map file which defines valid entries in
+that domain; used for personal name expansion and checking for valid
+addresses: The keys are the valid local parts and the values are the
+corresponding full names of the users.
+.Pp
+.Sy Default : No A single entry which corresponds to
+.Cd default_domain .
+.
+.It Cd return_path_domain Vt ( string )
+Domain used in the return address given to
+.Xr sendmail 8 .
+.Sy Default : No the default domain.
+.
+.It Cd filter_domain_pattern Vt ( string )
+A filter pattern which is equivalent to, or at least approximates the
+list of local domains.
+.Sy Default : No the default domain.
+.
+.It Cd hostname Vt ( string )
+Hostname is the canonical name for this particular system, used in
+session and icon URLs which are generated by Prayer. This is derived
+automatically using
+.Xr gethostname 2
+.No and Xr gethostbyname 3
+if no value is provided. However, there are situations, especially
+involving SSL certificates, where the default hostname may not be
+appropriate. The special value
+.Ql __UNDEFINED__
+here means the startup script or command line must provide a hostname
+using a
+.Fl -config-option
+override or via the environment variable
+.Ev PRAYER_HOSTNAME .
+This is just a safeguard for systems which use DNS round robining to
+distribute load across a number of machines.
+.
+.It Cd hostname_service Vt ( string )
+Host name common for all Prayer installations part of the same webmail
+service. (Only) useful for large installations using DNS round robin
+for load balancing (example: webmail.hermes.cam.ac.uk is an alias for
+webmail[123].hermes.cam.ac.uk). This setting is used for two things:
+The user is redirected to this hostname after logging out, and HTTP
+requests are sanity checked against it in addition to the canonical
+hostname.
+.Pp
+.Sy Default : No none
+.
+.It Cd fix_from_address ( Vt boolean )
+suppresses the From address option from the Preferences and Roles
+screens.
+.Sy Default : Li false .
+.
+.It Cd lookup_rpasswd ( Vt path )
+Path to a CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Sy Note : No Keys must be Em lowercase ;
+Prayer converts search strings to lowercase in order to provide
+case-insensitive lookup.
+.
+.It Cd lookup_rusername ( Vt path )
+Path to a second CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Pp
+If the user enters a valid and existing username according to
+.Xr getpwnam 3 , Prayer does not search these first two CDB files,
+but skips directly to the second stage of looking up user information.
+.
+.It Cd lookup_username ( Vt path )
+Path to a CDB file that maps usernames to records consisting of the user's
+.Dq registered name
+and his/her affiliation (department), separated by a vertical bar
+.Ql ( "|" ) .
+Additionally, if a second vertical bar follows, the account is
+regarded as cancelled.
+.Pp
+When presenting the search results, the usernames found are combined with the
+.Cd default_domain
+to form email addresses. It is not possible at this time to let users
+search for addresses in more than one domain using this facility.
+.
+.It Cd lookup_fullname ( Vt path )
+Path to a CDB file that maps usernames to
+.Dq display names ,
+possibly provided by the users themselves in some way. The display name
+of a user is used together with the email address in recipient fields
+.Pp
+Note that all four lookup options must be set to valid CDB files for
+the local lookup to work, but more than one option may conceivably
+point to the same file.
+.
+.It Cd ldap_server ( Vt string )
+Name or address of LDAP server.
+.
+.It Cd ldap_base_dn ( Vt string )
+Base DN to search. After binding anonymously, Prayer performs a
+one-level-scope search for entries with
+.Li surname No or Li mail No attributes containing the search string.
+The following attributes are fetched and presented:
+.Bl -bullet -compact
+.It
+.Li uid
+.It
+.Li displayName
+.It
+.Li cn Dq ( registered name )
+.It
+.Li ou Dq ( affiliation )
+.It
+.Li mail
+.It
+.Li telephoneNumber
+.El
+.
+.It Cd ldap_timeout ( Vt time )
+Search timeout.
+.Sy Default : Li 30s .
+.El
+.
+.Ss HTTP and other frontend settings
+.
+.Bl -tag -width Ds
+.
+.It Cd use_http_port , use_https_port
+Define a single HTTP[S] port to bind to. You can define an arbitary list
+of ports of both kinds by using a series of separate
+.Cd use_http_port No and Cd use_https_port
+directives, with one port on each line. Syntax:
+.Bd -literal -offset indent
+.Cd use_http_port Oo Ar interface : Oc Ns Ar port
+.Cd use_https_port Oo Ar interface : Oc Ns Ar port
+.Ed
+.Pp
+.Ar interface
+can be an IP (v4 or v6) address or a hostname. If provided, it is passed to
+.Xr getaddrinfo 3
+for resolution, and the first resulting address is used to bind to. Otherwise,
+.Xr prayer 8
+.No binds to Ar port No on all interfaces.
+.
+.It Cd ssl_default_port Vt ( number )
+Prayer will put a warning on the login page for HTTP connections if
+both HTTP and HTTPS sessions are available. This will provide a link
+to the SSL version of the service, defaulting to port 443 or failing
+that the first defined HTTPS port. ssl_default_port overrides the
+built in logic.
+.Pp
+Should be rarely required now that Prayer automatically derives an
+appropriate port if none is provided here.
+.
+.It Cd ssl_cert_file Vt ( path )
+Locatation of SSL certificate file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_privatekey_file Vt ( path )
+Location of SSL private key file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_rsakey_lifespan Vt ( time )
+Master server will regenerate shared RSA key at this interval.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_rsakey_freshen Vt ( time )
+RSA key remains fresh in child process for this long after first actual use.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_session_timeout Vt ( time )
+SSL session cache TTL.
+.Sy Default : Li 0 No (SSL session cache not used).
+.Xr prayer-ssl-prune 8 should be run periodically to purge any stale session
+data from the DBD database.
+.
+.It Cd egd_socket Vt ( path )
+Path to entropy gathering daemon socket. If provided, it will be used in place of
+or in addition to
+.Pa /dev/urandom
+.
+.It Cd contact_email Vt ( string )
+System administrator email address.
+.Sy This setting is currently not used.
+If you want to display support information to your users, customise the templates.
+.
+.It Cd fatal_dump_core Vt ( boolean )
+Dump core on
+.Fn fatal
+error.
+.Sy Default : No false.
+.
+.It Cd log_debug Vt ( boolean )
+Enable somewhat more verbose logging, mainly in relation to SSL.
+.Sy Default : No false.
+.
+.It Cd fix_client_ipaddr Vt ( boolean )
+Client must connect from consistent IP addresses. May be useful as
+a security measure in LAN environments. Painful for dialup users
+whose connections may drop out.
+.Sy Default : No false.
+.
+.It Cd gzip_allow_nets Vt ( string ) , Cd gzip_deny_nets Vt ( string )
+.Xr prayer-session 8
+gzip-compresses pages sent to clients if:
+.Bl -enum -compact
+.It
+gzip compression enabled at compile time,
+.It
+.Cd use_gzip No is set in user preferences,
+.It
+User agent is known to support Content-Encoding: gzip,
+.It
+User agent asks for Content-Encoding: gzip or x-gzip,
+.It
+IP address of client appears in
+.Cd gzip_allow_nets
+.Em or No IP address of client does Em not No appear in Cd gzip_deny_nets .
+.El
+.Pp
+The format of these options is a sequence of
+.Ar ipaddr Ns Op / Ns Ar masklen
+items, separated by colons
+.Em and No whitespace (to allow for IPv6 addresses to be parsed easily). If
+.Ar masklen No is omitted, the item is interpreted as a full host address.
+.
+.It Cd log_name_nets Vt ( string )
+A network list in the same format as
+.Cd gzip_allow_nets
+above. To avoid delay when a user logs in,
+.Xr prayer-session 8
+only performs a reverse lookup of the remote address if matches this list.
+.Sy Default : No empty; no reverse lookup are performed.
+.
+.It Cd limit_vm Vt ( number )
+Virtual memory limit imposed on each process to stop runaway process killing system. See
+.Xr setrlimit 2 .
+.Sy Default : No no limit.
+.
+.It Cd http_max_method_size Vt ( number )
+Prayer should in theory be able to cope with input of arbitrary
+size. In practice however, the incoming request has to be stored
+somewhere and without limits an attacker may exhaust available memory,
+causing a denial of service attack.
+.Pp
+This sets the maximum size of the initial line of an HTTP request.
+.Sy Default : No no limit.
+.
+.It Cd http_max_hdr_size Vt ( number )
+Maximum for headers associated with this request.
+.
+.It Cd http_max_body_size Vt ( number )
+Maximum for HTTP payload. This is the most significant one in normal use.
+.
+.It Cd draft_att_single_max ( Vt number )
+Maximum size of a single attachment when composing a mail.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd draft_att_total_max ( Vt number )
+Maximum size of all attachments.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd http_min_servers Vt ( number )
+Minimum number of preforked
+.Xr prayer 8 HTTP servers. The master process forks new slave processes
+whenever the number of idle slaves falls below this number, unless the
+total number of slaves would exceed
+.Cd http_max_servers .
+.Sy Default : Li 4.
+.
+.It Cd http_max_servers Vt ( number )
+Maximum number of preforked
+.Xr prayer 8 HTTP servers (active and idle). The master process does not,
+however, enforce any maximum number of
+.Em idle No slave processes; they have to terminate voluntarily by timing out
+or serving the maximum number of connections.
+.Sy Default : Li 64 .
+.
+.It Cd http_max_connections Vt ( number )
+Maximum number of connections that each frontend server will process.
+.Sy Default : Li 0 No (no limit).
+.
+.It Cd http_timeout_idle Vt ( time )
+Timeout for (dirty) spare server waiting for another HTTP connection.
+.Sy Default : Li 30s .
+.
+.It Cd http_timeout_icons Vt ( time )
+Timeout for HTTP connection that last served static content.
+.Sy Default : Li 10s .
+.
+.It Cd http_timeout_session Vt ( time )
+Timeout for HTTP connection that last served a session URL or has not served anything yet.
+.Sy Default : Li 60s .
+.
+.It Cd http_cookie_use_port Vt ( boolean )
+Present HTTP cookies to browser as
+.Dq Li username:port=value
+rather than
+.Dq Li username=value .
+Allows simultaneous login sessions from a single client browser.
+However can leave a trail of cookies behind. Probably don't want this
+in the long term, it's here for experimentation purposes only at the
+moment.
+.
+.It Cd icon_expire_timeout Vt ( time )
+The amount of time in the future to set the HTTP
+.Li Expires: No field for static content.
+.Sy Default : Li 7d .
+(In contrast sessions URLs expire immediately: Browsers really
+shouldn't be trying to cache this stuff, especially when it is coming
+in over HTTPS).
+.El
+.
+.Ss Session specific configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd session_idle_time Vt ( time )
+Session switches to idle mode after this much time: connections to
+IMAP and accountd servers are shut down.
+.Sy Default : Li 0 No (idle mode disabled).
+.
+.It Cd session_timeout Vt ( time )
+Session terminates after this much idle time.
+.Ql 0
+means session never times out.
+.Sy Default : Li 4h .
+.
+.It Cd session_timeout_compose Vt ( time )
+Session terminates after this much idle time instead when the last command was
+.Ql compose
+.No or Ql sieve .
+It should probably not be set lower than
+.Cd session_timeout .
+.Sy Default : Li 0 No (always use the same timeout).
+.
+.It Cd stream_ping_interval Vt ( time )
+Ping INBOX, Other, and Draft streams at this interval.
+.Sy Default : Li 5m .
+.
+.It Cd stream_checkpoint Vt ( boolean )
+.No Use Li CHECKPOINT No instead of Li PING Li to \(lqping\(rq streams.
+.Sy Default : Li true .
+.
+.It Cd stream_misc_timeout Vt ( time )
+Shut down Postponed, Preferences and Transfer streams entirely
+after this much idle time, but only if idle mode doesn't beat us to it.
+.Sy Default : Li 0 No (disabled).
+.
+.It Cd log_ping_interval Vt ( time )
+.Xr stat 2 log files at this interval to see if target file has been
+renamed or removed.
+.Ql 0s
+means stat() log file every time something is logged.
+.Sy Default : Li 5m .
+.
+.It Cd db_ping_interval Vt ( time )
+Interval at which to re-read CDB files containing the local domain.
+.Sy Default : Li 30m .
+.El
+.
+.Ss Display specific configuration
+.
+.Bl -tag -width Ds
+.It Cd login_banner Vt ( string )
+Used in the
+.Li <title>
+and heading of the login page, unless
+.Cd login_prefix_path
+specifies a custom first HTML part.
+.Sy Default : Li """Webmail Service Login""" .
+.
+.It Cd login_service_name Vt ( string )
+Used in the
+.Li <title> No and elsewhere to refer to the webmail system
+.Em after No the user has logged in.
+.Sy Default : Li """Prayer""" .
+.
+.It Cd login_prefix_path Vt ( path )
+File to use as the part of the login page before the login
+form. Should include everything including DOCTYPE and <html> tag. If
+unset, Prayer constructs a fairly safe and boring login page
+consisting of the
+.Cd login_banner .
+on the background colour of the default main theme.
+.
+.It Cd motd_path Vt ( path )
+File to use as the part of the login page immediately following the login form.
+.
+.It Cd login_suffix_path Vt ( path )
+File to use as the last part of the login page. If unset, Prayer simply outputs
+.Dq Li </body></html> .
+.
+.It Cd ssl_encouraged ( Vt boolean )
+If the user connects over unencrypted HTTP, do not show the login form on the start
+.Pa ( / ) No page. A link to Pa /login , No where the form is still displayed, is still provided.
+.Sy Default : Li false . No Ignored if Cd ssl_redirect No or Cd ssl_required No is Li true .
+.
+.It Cd ssl_redirect ( Vt boolean )
+If the user connects over unencrypted HTTP, return a
+.Ql 302
+redirect to the default SSL port. Only the start
+.Pa ( / ) No page is redirected and it may be possible to switch between http and
+https after loggin in, subject to cookie rules.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd ssl_required ( Vt boolean )
+Return a
+.Ql 403 Forbidden
+error if the user tries to access anything over unencrypted HTTP.
+.Cd ssl_redirect No still has effect, however.
+.
+.It Cd list_addr_maxlen Vt ( number )
+The maximum number of characters to show from addresses on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd list_subject_maxlen Vt ( number )
+The maximum number of characters to show from the subject on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd change_max_folders ( Vt number )
+The maximum number of folders allowed in the quick folder change
+dropdown list. If there would be too many folders, the quick list is
+disabled altogether. Only folders that are expanded in the folder view
+are included.
+.Pp
+.Sy Default : Li 20 .
+.
+.It Cd template_path ( Vt path )
+Path to uncompiled template sets (directories).
+.Sy Default : Li """../templates""" No (relative to
+.Cd tmp_dir ) .
+.
+.It Cd template_set ( Vt string )
+Template set to use.
+.Sy Default : Li """xhtml_strict""" .
+.
+.It Cd template_use_compiled ( Vt boolean )
+Use the compiled-in templates, ignoring
+.Cd template_path .
+.Sy Default : Li true .
+.Pp
+As a Debian extension,
+.Xr prayer-session 8
+will fall back to the compiled-in template version of any template
+that it cannot find in the template directory. This enables
+customization of some templates without having to compile all of them
+at run time, although attempting to open each template still incurs a
+certain penalty.
+.
+.It Cd theme
+Define themes and their colors.
+.Em Semi-deprecated ; No Colours set with this directive are only used by the
+.Li xhtml_transitional No template set. The
+.Li xhtml_strict No template set, as well as the login screen, use CSS instead.
+It is still necessary to tell Prayer which themes are available, however.
+.Pp
+Syntax:
+.Bd -literal -offset indent
+.Cd theme Ar name Li description Ar description
+.Cd theme Ar name element colour
+.Cd theme Ar name element colour
+\&...
+.Ed
+.Pp
+.Ar description No is the label shown in the theme dropdown lists on the
+General Preferences page.
+.Pp
+.Ar element No is one of
+.Li fgcolor , fgcolor_link , bgcolor , bgcolor_banner , bgcolor_row1 , bgcolor_row2 ,
+.Li bgcolor_status , bgcolor_status_none , fgcolor_quote1 , fgcolor_quote2 ,
+.Li fgcolor_quote3 , No and Li fgcolor_quote4 .
+The first three are not used by any standard template set, but are
+available. Please study the templates to understand how the rest are
+used.
+.Pp
+.Ar colour No is any valid HTML Vt %Color No value.
+Remember that strings containing hash marks need to be quoted.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme.
+.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme in help mode.
+.
+.It Cd use_ispell_language
+Ispell languages that we want to support, with some descriptive text
+for the preferences screen. Syntax:
+.Bd -literal -offset indent
+.Cd use_ispell_language Ar wordlist Ar description
+.Ed
+.Pp
+Example:
+.Bd -literal -offset indent
+.Li use_ispell_language british Qq British English
+.Ed
+.El
+.
+.Ss Paths etc.
+.
+.Bl -tag -width Ds
+.
+.It Cd aspell_path ( Vt path )
+Location of Aspell Binary (takes precedence over
+.Cd ispell_path ) .
+.
+.It Cd bin_dir ( Vt path )
+Location of Prayer binaries
+.Xr ( prayer 8 and
+.Xr prayer-session 8 ) .
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd icon_dir ( Vt path )
+Location of icon files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ispell_path ( Vt path )
+Location of Ispell Binary (backwards compatibility only).
+.
+.It Cd log_dir ( Vt path )
+Location of log files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd pid_dir ( Vt path )
+Location for PID files of prayer and prayer-session master processes.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd sendmail_path ( Vt path )
+Location of sendmail binary or drop in replacement such as Exim.
+.Sy Default : Pa /usr/lib/sendmail .
+.
+.It Cd socket_dir ( Vt path )
+Location for unix domain sockets which connect
+.Xr ( prayer 8 to
+.Xr prayer-session 8 ) .
+.
+.It Cd socket_split_dir ( Vt boolean )
+Split socket directory into 64 subdirs keyed on first letter of
+sessionID. It is possible to switch back and forth without moving
+sockets or killing sessions, since
+.Xr prayer 8 tries both variants. \&In effect, this setting merely controls where
+.Xr prayer-session 8 creates the socket files.
+.Sy Default : Li false .
+.
+.It Cd init_socket_name ( Vt string )
+Name of Unix domain socket (in
+.Cd socket_dir ) No used for initial handshake
+between prayer and prayer-session processes when a user logs in.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ssl_session_dir ( Vt path )
+Location of the SSL session cache database.
+.Sy Default : No none. Sy Must be set , No even if the SSL session cache is disabled.
+.
+.It Cd static_dir ( Vt path )
+Location of other static files (CSS).
+.Sy Default : No none. If unset, Prayer will not serve CSS files.
+.
+.It Cd tmp_dir ( Vt path )
+As the directory both daemons
+.Xr chdir 2
+to at startup, it is where temporary files, such as attachments and
+folders in transist during upload and download operations, are
+written. Core files also end up here.
+.Sy Default : No none. Sy Must be set.
+.El
+.
+.Ss Defaults for user preferences
+.
+.Bl -tag -width Ds
+.
+.It Cd confirm_logout ( Vt boolean )
+Confirmation dialogue when user logs out.
+.Sy Default : Li true .
+.
+.It Cd confirm_expunge ( Vt boolean )
+Confirmation dialogue when user hits expunge.
+.Sy Default : Li false .
+.
+.It Cd confirm_rm ( Vt boolean )
+Confirmation dialogue when user deletes mail folder or directory.
+.Sy Default : Li true .
+.
+.It Cd default_domain Vt ( string )
+Default domain for outgoing mail. Defaults to
+.Cd hostname No setting.
+.
+.It Cd html_inline ( Vt boolean )
+Show text/html bodyparts inline. Content is scrubbed to remove
+dangerous tags; see documentation for more details.
+.Sy Default : Li true .
+.
+.It Cd html_inline_auto ( Vt boolean )
+Same as above for text/* bodyparts which start "<HTML>" (case-independent!)
+Does anyone other than spammers actually use this?
+.Sy Default : Li true .
+.
+.It Cd ispell_language ( Vt string )
+Language for ispell.
+.Sy Default : Li """british""" .
+.
+.It Cd msgs_per_page ( Vt number )
+Number of messages per screen on message list screen.
+.Sy Default : Li 12 .
+.
+.It Cd msgs_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd msgs_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd abook_per_page ( Vt number )
+Number of addressbook entries per page on address book list screen.
+.Sy Default : Li 12 .
+.
+.It Cd abook_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd abook_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd maildir ( Vt string )
+Mail directory in user's account.
+.Sy Default : Li """""" .
+Typically needed with uw-imap. Typically not needed with e.g. Dovecot or Courier.
+.
+.It Cd suppress_dotfiles ( Vt boolean )
+Supress dotfiles from directory listing.
+.Sy Default : Li true .
+.
+.It Cd postponed_folder ( Vt string )
+Name of the folder where messages to be sent later, a.k.a. drafts, are stored.
+.Sy Default : Li """postponed-msgs""" .
+.
+.It Cd sent_mail_folder ( Vt string )
+Name of folder for sent mail.
+.Sy Default : Li """sent-mail""" .
+.
+.It Cd small_cols ( Vt number )
+Width of small compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd small_rows ( Vt number )
+Height of small compose textarea in lines.
+.Sy Default : Li 18 .
+.
+.It Cd large_cols ( Vt number )
+Width of large compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd large_rows ( Vt number )
+Height of large compose textarea in lines.
+.Sy Default : Li 32 .
+.
+.It Cd sort_mode ( Vt string )
+Default Sort mode for mailbox list. One of
+.Li ARRIVAL , DATE , FROM , TO , CC , SIZE , SUBJECT , REFERENCES , ORDEREDSUBJECT .
+.Sy Default : Li ARRIVAL No is most efficient, and recommended.
+.
+.It Cd sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd abook_sort_mode ( Vt string )
+Default Sort mode for addressbook list. One of:
+.Li ORDERED , ALIAS , NAME , COMMENT , ADDRESS .
+.Sy Default : Li ORDERED .
+.
+.It Cd abook_sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_len ( Vt number )
+Wrap lines at this many characters.
+.Sy Default : Li 76 .
+.
+.It Cd line_wrap_advanced ( Vt boolean )
+Enable advanced line wrap options?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_on_reply ( Vt boolean )
+Line wrap automatically on reply.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_spell ( Vt boolean )
+Line wrap automatically on spell check.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_send ( Vt boolean )
+Line wrap automatically on send.
+.Sy Default : Li true .
+.
+.It Cd preserve_mimetype ( Vt boolean )
+Send message Content-Type through to browser. If
+.Li false , No Content-Type is replaced with
+.Ql application/octet-stream
+which should force download to local disk, bypassing any automatic
+processing of bodyparts by the User-Agent. Unclear at the moment
+whether we need to do this, or whether this should be done selectively
+based on the User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_sent_mail ( Vt boolean )
+.No Make the Dq Save copy
+checkbox on the compose screen checked default.
+.Sy Default : Li true .
+.
+.It Cd use_mark_persist ( Vt boolean )
+Use persistent mark for aggregate operations.
+.Sy Default : Li false .
+.
+.It Cd use_search_zoom ( Vt boolean )
+Zoom automatically after sucessful search
+.Sy Default : Li true .
+.
+.It Cd use_agg_unmark ( Vt boolean )
+Unmark messages after sucessful aggregate operation.
+.Sy Default : Li true .
+.
+.It Cd use_icons ( Vt boolean )
+Use icons: may be overriden by value of User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_welcome ( Vt boolean )
+Enable welcome screen .
+.Sy Default : Li true .
+.
+.It Cd use_tail_banner ( Vt boolean )
+Duplicate banner icons (toolbar) at the bottom of the Message screen.
+.Sy Default : Li true .
+.El
+.
+.Ss Hidden preferences
+.
+The following options are internally handled as user preferences, but
+the Preferences screen no longer provides any means for changing them.
+.
+.Bl -tag -width Ds
+.It Cd use_cookie ( Vt boolean )
+Use HTTP cookie for Session-ID, if the browser supports cookies
+If disabled, or user rejects the cookie, then the session-ID is stored in the URL.
+.Sy Default : Li true .
+.
+.It Cd use_substitution ( Vt boolean )
+Use page substiution rather than HTTP redirects. Faster, but the URLs
+that are generated are less predictable. Page substitution and browser
+history mechanism don't coexist well at the moment (Prayer would need to
+cache final page value for each substiution event).
+.Pp
+.Sy Default : Li true .
+.
+.It Cd use_http_1_1 ( Vt boolean )
+Allow HTTP/1.1, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_pipelining ( Vt boolean )
+Allow HTTP/1.1 pipelining, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_embed_http ( Vt boolean )
+Allow HTTP links embedded in HTTPS responses, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_persist ( Vt boolean )
+Allow persistent HTTP/1.1 and HTTP/1.0 persistent connections,
+if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_short ( Vt boolean )
+Allow short URLs, if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_gzip ( Vt boolean )
+Allow gzip compression, if the browser supports it.
+.Sy Default : Li true .
+.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer-session 8
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
Index: 1.2.2.1-5a/debian/prayer-ssl-prune.8
===================================================================
--- 1.2.2.1-5a/debian/prayer-ssl-prune.8 (nonexistent)
+++ 1.2.2.1-5a/debian/prayer-ssl-prune.8 (revision 180)
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SSL-PRUNE 8
+.Sh NAME
+.Nm prayer-ssl-prune
+.Nd purge stale SSL session data
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+should be run periodically (e.g. once a day) when using SSL session caching
+.Cd ( ssl_session_timeout No > 0 in
+.Pa prayer.cf ) .
+It removes old transaction logs and stale session data.
+It accepts the same configuration-overriding options as
+.Xr prayer 8 and
+.Xr prayer-session 8 .
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /var/run/prayer/ssl_scache/
+Default location of the SSL session cache database.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-5a/debian/prayer.8
===================================================================
--- 1.2.2.1-5a/debian/prayer.8 (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.8 (revision 180)
@@ -0,0 +1,93 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER 8
+.Sh NAME
+.Nm prayer
+.Nd standalone IMAP-based webmail server
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground | -disable-prefork
+.Oo Fl -disable-session | -
+.Ar session-options Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+is the normal frontend daemon in the Prayer Webmail system. It is a
+simple HTTP server and proxy that serves icons and other static files,
+but firstly and foremostly forwards requests to the correct backend
+daemons based on session IDs passed either in cookies or as part of
+the URL.
+.Pp
+The master daemon normally preforks a number of child processes that
+each will serve a configurable number of requests. The total number of
+child processes is limited to prevent denial of service attacks.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.It Fl -disable-prefork
+Disable preforking. The master daemon will listen for connections
+on the configured ports and spawn child processes one at a time.
+.It Fl -disable-session
+Do not start the session server,
+.Xr prayer-session 8 .
+.It Fl -
+End of
+.Nm
+options; remaining options will be passed to
+.Xr prayer-session 8 .
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /usr/share/prayer/icons/
+Location of the standard icons used by the interface.
+.It Pa /usr/share/prayer/static/
+Directory containing other static files; currently only CSS files.
+.It Pa /var/run/prayer/sockets/
+Pre-configured location of sockets for frontend to backend communication.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer-session 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org>
+.No using documentation written by An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-5a/debian/Config
===================================================================
--- 1.2.2.1-5a/debian/Config (nonexistent)
+++ 1.2.2.1-5a/debian/Config (revision 180)
@@ -0,0 +1,146 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.2.1-5a/debian/prayer-accountd.init
===================================================================
--- 1.2.2.1-5a/debian/prayer-accountd.init (nonexistent)
+++ 1.2.2.1-5a/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-5a/debian/prayer.init
===================================================================
--- 1.2.2.1-5a/debian/prayer.init (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.init (revision 180)
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-5a/debian/patches/unlimit_login_username.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/unlimit_login_username.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/unlimit_login_username.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/servers/prayer_login.c
++++ b/servers/prayer_login.c
+@@ -116,7 +116,7 @@ prayer_login_generate(struct prayer *pra
+
+ bputs(b, " <td>");
+ bprintf(b,
+- "<input name=\"username\" value=\"%s\" size=\"8\" maxlength=\"8\" />",
++ "<input name=\"username\" value=\"%s\" size=\"16\" />",
+ user ? user : "");
+ bputs(b, "</td>" CRLF);
+ bputs(b, "</tr>" CRLF);
Index: 1.2.2.1-5a/debian/patches/series
===================================================================
--- 1.2.2.1-5a/debian/patches/series (nonexistent)
+++ 1.2.2.1-5a/debian/patches/series (revision 180)
@@ -0,0 +1,7 @@
+repair_ssl_session_db_on_version_mismatch.patch
+makefile_install_config.patch
+remove_old_db_logfiles_from_prayer-ssl-prune.patch
+welcome_is_template.patch
+templates_fallback_to_compiled.patch
+template_find_bug.patch
+unlimit_login_username.patch
Index: 1.2.2.1-5a/debian/patches/welcome_is_template.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/welcome_is_template.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/welcome_is_template.patch (revision 180)
@@ -0,0 +1,41 @@
+--- a/cmd/cmd_welcome.c
++++ b/cmd/cmd_welcome.c
+@@ -74,12 +74,7 @@ void cmd_welcome(struct session *session
+ unsigned long msgno;
+
+ if ((request->method != POST) && (prefs->use_welcome)) {
+- if (config->welcome_path &&
+- (string = read_welcome(request->pool, config->welcome_path)))
+- generate_welcome_page(session, string);
+- else
+- session_redirect(session, request, "list");
+-
++ generate_welcome_page(session, NULL);
+ return;
+ }
+
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -402,12 +402,6 @@ ssl_required = FALSE
+ # Session banner (local HTML inserted into each page of login session)
+ #session_banner_path = "$prefix/etc/session_banner.html"
+
+-# Welcome text displayed when user first logs in
+-welcome_path = "$prefix/etc/welcome.html"
+-
+-# Location of help files
+-help_dir = "$prefix/help"
+-
+ # Location of icon files
+ icon_dir = "$prefix/icons"
+
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2139,7 +2139,6 @@ BOOL config_check(struct config * config
+ struct config_http_port *chp;
+ char hostname[MAX_ADDRESS+1], domainname[MAX_ADDRESS+1];
+
+- TEST_STRING(config->help_dir, "help_dir");
+ TEST_STRING(config->icon_dir, "icon_dir");
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
Index: 1.2.2.1-5a/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,184 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,26 +65,21 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -271,11 +271,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -283,26 +283,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -387,13 +375,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -431,10 +419,7 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
+-
+-# $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++log_dir = "/var/log/prayer"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -442,7 +427,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -453,10 +438,10 @@ ssl_session_dir = "$var_prefix/ssl_s
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -617,14 +602,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2144,7 +2144,6 @@ BOOL config_check(struct config * config
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
+ TEST_STRING(config->ssl_session_dir, "ssl_session_dir");
+- TEST_STRING(config->lock_dir, "lock_dir");
+ TEST_STRING(config->log_dir, "log_dir");
+ TEST_STRING(config->tmp_dir, "tmp_dir");
+ TEST_STRING(config->pid_dir, "pid_dir");
Index: 1.2.2.1-5a/debian/patches/template_find_bug.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/template_find_bug.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/template_find_bug.patch (revision 180)
@@ -0,0 +1,28 @@
+--- a/lib/template.c
++++ b/lib/template.c
+@@ -199,10 +199,11 @@ template_find(char *set, char *name, str
+ unsigned long first, last, middle;
+ int rc;
+
+- while (strcmp(tmi->name, set) != 0)
++ while (strcmp(tmi->name, set) != 0) {
+ tmi++;
+- if (!tmi->name)
+- return(NIL);
++ if (!tmi->name)
++ return(NIL);
++ }
+
+ tm = tmi->template_map;
+ count = *(tmi->count);
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -168,7 +168,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "html4";
++ config->template_set = "xhtml_strict";
+ config->template_use_compiled = T;
+
+ config->prayer_user = NIL;
Index: 1.2.2.1-5a/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (revision 180)
@@ -0,0 +1,34 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -289,9 +289,6 @@ static int myarchive(const char **fnames
+ const char **fname;
+ char dstname[1024], *dp;
+
+- strcpy(dstname, dirname);
+- dp = dstname + strlen(dstname);
+-
+ /* Get the list of log files to remove. */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS, NULL);
+ if (r) {
+@@ -312,6 +309,11 @@ static int myarchive(const char **fnames
+ free (begin);
+ }
+
++ if (!dirname) return 0;
++
++ strcpy(dstname, dirname);
++ dp = dstname + strlen(dstname);
++
+ /* Get the list of database files to archive. */
+ /* XXX Should we do this, or just use the list given to us? */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL);
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -837,6 +837,7 @@ int ssl_prune_sessions(struct ssl_config
+ log_debug("tls_prune: purged %d out of %d entries",
+ prock.deletions, prock.count);
+
++ DB->archive(NULL, NULL);
+ DB->done();
+
+ return (0);
Index: 1.2.2.1-5a/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -452,7 +452,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.2.1-5a/debian/patches/repair_ssl_session_db_on_version_mismatch.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -208,7 +208,11 @@ static int init(const char *dbdir, int m
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
+- if (r != ENOENT) {
++ if (r != ENOENT
++#ifdef DB_VERSION_MISMATCH
++ && r != DB_VERSION_MISMATCH
++#endif
++ ) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
+ }
+@@ -217,7 +217,7 @@ static int init(const char *dbdir, int m
+ /* DPC 24/03/2002. DB_CREATE leaks 12 MBytes into dbenv.
+ * Workaround: close down dbenv, reopen after backing files created */
+
+- r = myinit(dbdir, myflags|MYDB_CREATE);
++ r = myinit(dbdir, myflags|MYDB_CREATE|MYDB_RECOVER);
+ if (r) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
Index: 1.2.2.1-5a/debian/patches/sighandling.patch
===================================================================
--- 1.2.2.1-5a/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.2.1-5a/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.2.1-5a/debian/control
===================================================================
--- 1.2.2.1-5a/debian/control (nonexistent)
+++ 1.2.2.1-5a/debian/control (revision 180)
@@ -0,0 +1,54 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.2.1-5a/debian/prayer.install
===================================================================
--- 1.2.2.1-5a/debian/prayer.install (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.install (revision 180)
@@ -0,0 +1,5 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
Index: 1.2.2.1-5a/debian/README.Debian
===================================================================
--- 1.2.2.1-5a/debian/README.Debian (nonexistent)
+++ 1.2.2.1-5a/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.2.1-5a/debian/prayer.dirs
===================================================================
--- 1.2.2.1-5a/debian/prayer.dirs (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.dirs (revision 180)
@@ -0,0 +1,4 @@
+var/run/prayer
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.2.1-5a/debian/prayer.examples
===================================================================
--- 1.2.2.1-5a/debian/prayer.examples (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.2.1-5a/debian/prayer.postinst
===================================================================
--- 1.2.2.1-5a/debian/prayer.postinst (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.postinst (revision 180)
@@ -0,0 +1,56 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.2.1-5a/debian/copyright
===================================================================
--- 1.2.2.1-5a/debian/copyright (nonexistent)
+++ 1.2.2.1-5a/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.2.1-5a/debian/prayer.docs
===================================================================
--- 1.2.2.1-5a/debian/prayer.docs (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.2.1-5a/debian/prayer.postrm
===================================================================
--- 1.2.2.1-5a/debian/prayer.postrm (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.postrm (revision 180)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.2.1-5a/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.2.1-5a/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.2.1-5a/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-5a/debian/prayer.lintian-overrides
===================================================================
--- 1.2.2.1-5a/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-5a/debian/compat
===================================================================
--- 1.2.2.1-5a/debian/compat (nonexistent)
+++ 1.2.2.1-5a/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.2.1-5a/debian/prayer.default
===================================================================
--- 1.2.2.1-5a/debian/prayer.default (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.2.1-5a/debian/prayer-accountd.docs
===================================================================
--- 1.2.2.1-5a/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.2.1-5a/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.2.1-5a/debian/prayer.logrotate
===================================================================
--- 1.2.2.1-5a/debian/prayer.logrotate (nonexistent)
+++ 1.2.2.1-5a/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.2.1-5a/debian/prayer-accountd.install
===================================================================
--- 1.2.2.1-5a/debian/prayer-accountd.install (nonexistent)
+++ 1.2.2.1-5a/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.2.1-5a/debian/watch
===================================================================
--- 1.2.2.1-5a/debian/watch (nonexistent)
+++ 1.2.2.1-5a/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.2.1-5a/debian
===================================================================
--- 1.2.2.1-5a/debian (nonexistent)
+++ 1.2.2.1-5a/debian (revision 180)
/1.2.2.1-5a/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.2.1-4/debian/changelog
===================================================================
--- 1.2.2.1-4/debian/changelog (nonexistent)
+++ 1.2.2.1-4/debian/changelog (revision 180)
@@ -0,0 +1,171 @@
+prayer (1.2.2.1-4) unstable; urgency=medium
+
+ * Urgency medium since fixing fairly serious bug(s).
+ * debian/Config: Fix handling of CFLAGS, CPPFLAGS and LDFLAGS from the
+ environment or command line, breaking a circular definition of
+ LDFLAGS (FTBFS on Ubuntu; LP: #256220).
+ * unlimit_login_username.patch (new):
+ - servers/prayer_login.c: Remove 8 character username limit from login
+ form (Closes: #494517).
+ * prayer.init, prayer-accountd.init: Sleep 1 second between stop and
+ start in restart.
+ * Add manpages prayer(8), prayer-session(8), prayer.cf(5), and
+ prayer-ssl-prune(8) (groff-mdoc format). Remove half-done Docbook
+ versions from source package.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 17 Aug 2008 17:38:00 +0200
+
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.2.1-4/debian/prayer-session.8
===================================================================
--- 1.2.2.1-4/debian/prayer-session.8 (nonexistent)
+++ 1.2.2.1-4/debian/prayer-session.8 (revision 180)
@@ -0,0 +1,94 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SESSION 8
+.Sh NAME
+.Nm prayer-session
+.Nd Prayer user session backend daemon
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground
+.Sh DESCRIPTION
+.Nm
+is the backend process in the Prayer Webmail system. A fresh
+.Nm
+backend is forked off whenever a user logs in.
+.Pp
+This process contains all of the permanent state associated with that login
+session including one or more connections to a IMAP server and possibly
+connections to accountd servers. prayer-session communicates with the user
+using HTML over HTTP connections via the
+.Xr prayer 8 proxy. Each login has a session ID that the front end processes
+use to find the correct backend.
+.Pp
+Backend server processes move into a dormant state after a certain period
+of inactivity, shutting down IMAP and accountd connections which can be
+easily resuscitated when the session wakes up. After a long period of
+inactivity, typically several hours the session process shuts down.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width Ds
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default
+.Pa /etc/prayer/prayer.cf .
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name
+to
+.Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width Ds
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use. The
+.Fl -config-file
+option takes precedence over this variable.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.Sh FILES
+.Bl -tag -width Ds
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It /usr/share/prayer/templates/
+Location of standard templates. The templates are compiled into
+.Nm
+for performance reasons, so the template files are actually not
+used, but they are available for customization.
+.It /etc/prayer/templates/
+The Debian pre-configured
+.Cd template_path .
+As a Debian extension,
+.Nm
+looks here before falling back to the compiled template if
+.Cd template_use_compiled No is Li false .
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-4/debian/prayer.manpages
===================================================================
--- 1.2.2.1-4/debian/prayer.manpages (nonexistent)
+++ 1.2.2.1-4/debian/prayer.manpages (revision 180)
@@ -0,0 +1,4 @@
+debian/prayer.8
+debian/prayer-session.8
+debian/prayer.cf.5
+debian/prayer-ssl-prune.8
Index: 1.2.2.1-4/debian/prayer.cf.5
===================================================================
--- 1.2.2.1-4/debian/prayer.cf.5 (nonexistent)
+++ 1.2.2.1-4/debian/prayer.cf.5 (revision 180)
@@ -0,0 +1,1015 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER.CF 5
+.Sh NAME
+.Nm prayer.cf
+.Nd main Prayer configuration file
+.
+.Sh DESCRIPTION
+.
+.Pa prayer.cf
+is the configuration file of
+.Xr prayer 8
+and
+.Xr prayer-session 8 .
+.
+.Sh SYNTAX
+For the most part, prayer.cf consists of
+.Ar option No = Ar value
+pairs, but some configuration items are more complex. All values may
+be enclosed in double quotes, which are stripped. Quotes must be used
+if a value contains a
+.Ql #
+character. Otherwise, everything following it is treated as a comment.
+Any line can be folded using a
+.Ql \(rs
+character at the end of the line; any linear white space at the beginning
+of the next line is removed.
+.Pp
+Simple options can be of the following types:
+.Bl -tag
+.
+.It Vt string
+No particular restrictions.
+.It Vt path
+A file or directory name. The configuration parser expands occurences of a few macros
+in settings of this type. See
+.Cd prefix
+.No and Cd var_prefix
+below.
+.It Vt boolean
+The following forms are interpreted as
+.Sy true :
+.Ql true ,
+.Ql t ,
+and
+.Ql 1 .
+The following forms are interpreted as
+.Sy false :
+.Ql false ,
+.Ql nil ,
+.Ql 0 .
+Capitalisation does not matter.
+.
+.It Vt number
+An integer number (sequence of digits 0-9), optionally immediately followed by a single letter
+.Ql K ,
+causing the number to be multiplied by 1024, or
+.Ql M
+multiplying it by 1024 \(pc 1024.
+.
+.It Vt time
+An integer number (sequence of digits 0-9) of seconds, optionally immediately
+followed by a single case-insignificant letter
+.Ql s ,
+which has no effect,
+.Ql m ,
+causing the number to be multiplied by 60,
+.Ql h ,
+multiplying it by 60 \(pc 60, or
+.Ql d ,
+for a multiple of 24 \(pc 60 \(pc 60.
+.It Vt perm
+A file permission mode; an octal number of exactly four digits, where the first digit must be 0.
+.El
+.
+.Sh OPTIONS
+.
+.Bl -tag -width Ds
+.
+.It Cd prefix Vt ( string ) , Cd var_prefix Vt ( string )
+The values of these options can be referred to as
+.Li $prefix
+(or
+.Li ${prefix} ) ,
+and
+.Li $var_prefix
+(or
+.Li ${var_prefix} ) ,
+respectively, in settings of type
+.Vt path
+in the rest of the file.
+.Pp
+.Sy Default : No none. Need to be set only if referenced later.
+.
+.It Cd prayer_user Vt ( string ) , Cd prayer_uid Vt ( number )
+User name or ID to
+.Xr setuid 2
+to if started as root. Either, but not both, must be set and must not specify
+.Li uid 0 .
+.Sy Default :
+none.
+.
+.It Cd prayer_group Vt ( string ) , Cd prayer_gid Vt ( number )
+Group name or ID to
+.Xr setgid 2
+to if we start off as root. In addition, prayer calls
+.Xr initgroups 3
+if
+.Cd prayer_user
+is set.
+.Sy Default :
+none.
+.
+.It Cd prayer_background Vt ( boolean )
+Run prayer as background process. If true, prayer will return as soon
+as valid configuration is found.
+.Sy Default : Li true
+.
+.It Cd file_perms Vt ( perm )
+Create mode for new files.
+.Sy Default : Li 0640 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0644 .
+.
+.It Cd directory_perms Vt ( perm )
+Create mode for new directories.
+.Sy Default : Li 0750 No if Cd prayer_uid No or Cd prayer_user No is set, otherwise Li 0755 .
+.
+.It Cd check_directory_perms Vt ( boolean )
+Check existing directories under
+.Li ${var_prefix} ?
+.El
+.
+.Ss Mail server settings
+.
+.Bl -tag -width Ds
+.It Cd imapd_server Vt ( string )
+Specifies the default IMAP server(s) using libc-client syntax:
+.Bd -literal -offset indent
+.Sm Ar host Oo : Ar port Oc Op / Ar flag Oo / Ar flag Oc Ar ...
+.Sm on
+.Ed
+.Pp
+Multiple server specifications can be listed, separated by commas. Common flags are:
+.Bl -tag -compact
+.It Li /ssl
+Use SSL-on-connect (on port 993 by default).
+.It Li /tls
+Force use of TLS (using STARTTLS on the normal IMAP port) to encrypt the
+session. Recommended if the server is remote, since otherwise a
+downgrade attack is possible.
+.It Li /notls
+Don't issue STARTTLS even if the server supports it. Recommended if
+the server is
+.Li localhost .
+.It Li /novalidate-cert
+Don't check the integrity of the server certificate.
+.El
+For the full list of flags, see naming.txt.gz in the current
+libc-client package.
+.
+.It Cd imapd_user_map Vt ( path )
+CDB lookup map overriding default imapd_server location. For information on CDB, see
+.Bl -bullet -compact
+.It
+http://cr.yp.to/cdb.html
+.It
+http://en.wikipedia.org/wiki/Constant_Data_Base
+.El
+.
+.It Cd prefs_folder_name Vt ( string )
+Name of Prayer user preferences folder on IMAP server.
+.
+.It Cd use_namespace ( Vt boolean )
+Use IMAP NAMESPACE command to find
+.Cd personal_hierarchy No and Cd hiersep .
+.Sy Default : Li true .
+.
+.It Cd personal_hierarchy ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """""" .
+.
+.It Cd hiersep ( Vt string )
+If not supplied by NAMESPACE.
+.Sy Default : Li """/""" .
+.
+.It Cd dualuse ( Vt boolean )
+Hint to Prayer that new mailboxes are dual use (i.e. can contain both
+mail and inferior mailboxes). Things will mostly work if dualuse set to
+.Li false No on a server which supports it, but people will be
+unable to create children of newly created mailboxes without
+refreshing the view.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd sieved_server Vt ( string )
+Talk to Cyrus timsieved using MANAGESIEVE protocol. Syntax is similar to
+.Cd imapd_server ,
+except the only recognised flag is
+.Li /ssl .
+.
+.It Cd sieved_user_map Vt ( path )
+Can be used to provide individualised imapd_server settings in the form of a CDB file.
+.
+.It Cd sieved_timeout Vt ( time )
+Default timsieved timeout is 10 minutes
+.El
+.
+.Ss Mail domain configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd local_domain
+Define a valid local domain, and optionally the valid local parts in that domain.
+This is a special directive that can appear multiple times and does not use an equals sign:
+.Bd -unfilled
+.Cd local_domain Ar domain Op Ar map
+.Ed
+.Pp
+.No Without Ar map , Cd local_domain
+simply defines a domain which will appear on the list visible to user
+preferences. With
+.Ar map ,
+it also defines a list a CDB map file which defines valid entries in
+that domain; used for personal name expansion and checking for valid
+addresses: The keys are the valid local parts and the values are the
+corresponding full names of the users.
+.Pp
+.Sy Default : No A single entry which corresponds to
+.Cd default_domain .
+.
+.It Cd return_path_domain Vt ( string )
+Domain used in the return address given to
+.Xr sendmail 8 .
+.Sy Default : No the default domain.
+.
+.It Cd filter_domain_pattern Vt ( string )
+A filter pattern which is equivalent to, or at least approximates the
+list of local domains.
+.Sy Default : No the default domain.
+.
+.It Cd hostname Vt ( string )
+Hostname is the canonical name for this particular system, used in
+session and icon URLs which are generated by Prayer. This is derived
+automatically using
+.Xr gethostname 2
+.No and Xr gethostbyname 3
+if no value is provided. However, there are situations, especially
+involving SSL certificates, where the default hostname may not be
+appropriate. The special value
+.Ql __UNDEFINED__
+here means the startup script or command line must provide a hostname
+using a
+.Fl -config-option
+override or via the environment variable
+.Ev PRAYER_HOSTNAME .
+This is just a safeguard for systems which use DNS round robining to
+distribute load across a number of machines.
+.
+.It Cd hostname_service Vt ( string )
+Host name common for all Prayer installations part of the same webmail
+service. (Only) useful for large installations using DNS round robin
+for load balancing (example: webmail.hermes.cam.ac.uk is an alias for
+webmail[123].hermes.cam.ac.uk). This setting is used for two things:
+The user is redirected to this hostname after logging out, and HTTP
+requests are sanity checked against it in addition to the canonical
+hostname.
+.Pp
+.Sy Default : No none
+.
+.It Cd fix_from_address ( Vt boolean )
+suppresses the From address option from the Preferences and Roles
+screens.
+.Sy Default : Li false .
+.
+.It Cd lookup_rpasswd ( Vt path )
+Path to a CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Sy Note : No Keys must be Em lowercase ;
+Prayer converts search strings to lowercase in order to provide
+case-insensitive lookup.
+.
+.It Cd lookup_rusername ( Vt path )
+Path to a second CDB file that maps arbitrary search keys to colon- or
+comma-separated lists of user names.
+.Pp
+If the user enters a valid and existing username according to
+.Xr getpwnam 3 , Prayer does not search these first two CDB files,
+but skips directly to the second stage of looking up user information.
+.
+.It Cd lookup_username ( Vt path )
+Path to a CDB file that maps usernames to records consisting of the user's
+.Dq registered name
+and his/her affiliation (department), separated by a vertical bar
+.Ql ( "|" ) .
+Additionally, if a second vertical bar follows, the account is
+regarded as cancelled.
+.Pp
+When presenting the search results, the usernames found are combined with the
+.Cd default_domain
+to form email addresses. It is not possible at this time to let users
+search for addresses in more than one domain using this facility.
+.
+.It Cd lookup_fullname ( Vt path )
+Path to a CDB file that maps usernames to
+.Dq display names ,
+possibly provided by the users themselves in some way. The display name
+of a user is used together with the email address in recipient fields
+.Pp
+Note that all four lookup options must be set to valid CDB files for
+the local lookup to work, but more than one option may conceivably
+point to the same file.
+.
+.It Cd ldap_server ( Vt string )
+Name or address of LDAP server.
+.
+.It Cd ldap_base_dn ( Vt string )
+Base DN to search. After binding anonymously, Prayer performs a
+one-level-scope search for entries with
+.Li surname No or Li mail No attributes containing the search string.
+The following attributes are fetched and presented:
+.Bl -bullet -compact
+.It
+.Li uid
+.It
+.Li displayName
+.It
+.Li cn Dq ( registered name )
+.It
+.Li ou Dq ( affiliation )
+.It
+.Li mail
+.It
+.Li telephoneNumber
+.El
+.
+.It Cd ldap_timeout ( Vt time )
+Search timeout.
+.Sy Default : Li 30s .
+.El
+.
+.Ss HTTP and other frontend settings
+.
+.Bl -tag -width Ds
+.
+.It Cd use_http_port , use_https_port
+Define a single HTTP[S] port to bind to. You can define an arbitary list
+of ports of both kinds by using a series of separate
+.Cd use_http_port No and Cd use_https_port
+directives, with one port on each line. Syntax:
+.Bd -literal -offset indent
+.Cd use_http_port Oo Ar interface : Oc Ns Ar port
+.Cd use_https_port Oo Ar interface : Oc Ns Ar port
+.Ed
+.Pp
+.Ar interface
+can be an IP (v4 or v6) address or a hostname. If provided, it is passed to
+.Xr getaddrinfo 3
+for resolution, and the first resulting address is used to bind to. Otherwise,
+.Xr prayer 8
+.No binds to Ar port No on all interfaces.
+.
+.It Cd ssl_default_port Vt ( number )
+Prayer will put a warning on the login page for HTTP connections if
+both HTTP and HTTPS sessions are available. This will provide a link
+to the SSL version of the service, defaulting to port 443 or failing
+that the first defined HTTPS port. ssl_default_port overrides the
+built in logic.
+.Pp
+Should be rarely required now that Prayer automatically derives an
+appropriate port if none is provided here.
+.
+.It Cd ssl_cert_file Vt ( path )
+Locatation of SSL certificate file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_privatekey_file Vt ( path )
+Location of SSL private key file (only used if SSL ports defined).
+Required if we are going to provide SSL services.
+.
+.It Cd ssl_rsakey_lifespan Vt ( time )
+Master server will regenerate shared RSA key at this interval.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_rsakey_freshen Vt ( time )
+RSA key remains fresh in child process for this long after first actual use.
+.Sy Default : Li 15m .
+.
+.It Cd ssl_session_timeout Vt ( time )
+SSL session cache TTL.
+.Sy Default : Li 0 No (SSL session cache not used).
+.Xr prayer-ssl-prune 8 should be run periodically to purge any stale session
+data from the DBD database.
+.
+.It Cd egd_socket Vt ( path )
+Path to entropy gathering daemon socket. If provided, it will be used in place of
+or in addition to
+.Pa /dev/urandom
+.
+.It Cd contact_email Vt ( string )
+System administrator email address.
+.Sy This setting is currently not used.
+If you want to display support information to your users, customise the templates.
+.
+.It Cd fatal_dump_core Vt ( boolean )
+Dump core on
+.Fn fatal
+error.
+.Sy Default : No false.
+.
+.It Cd log_debug Vt ( boolean )
+Enable somewhat more verbose logging, mainly in relation to SSL.
+.Sy Default : No false.
+.
+.It Cd fix_client_ipaddr Vt ( boolean )
+Client must connect from consistent IP addresses. May be useful as
+a security measure in LAN environments. Painful for dialup users
+whose connections may drop out.
+.Sy Default : No false.
+.
+.It Cd gzip_allow_nets Vt ( string ) , Cd gzip_deny_nets Vt ( string )
+.Xr prayer-session 8
+gzip-compresses pages sent to clients if:
+.Bl -enum -compact
+.It
+gzip compression enabled at compile time,
+.It
+.Cd use_gzip No is set in user preferences,
+.It
+User agent is known to support Content-Encoding: gzip,
+.It
+User agent asks for Content-Encoding: gzip or x-gzip,
+.It
+IP address of client appears in
+.Cd gzip_allow_nets
+.Em or No IP address of client does Em not No appear in Cd gzip_deny_nets .
+.El
+.Pp
+The format of these options is a sequence of
+.Ar ipaddr Ns Op / Ns Ar masklen
+items, separated by colons
+.Em and No whitespace (to allow for IPv6 addresses to be parsed easily). If
+.Ar masklen No is omitted, the item is interpreted as a full host address.
+.
+.It Cd log_name_nets Vt ( string )
+A network list in the same format as
+.Cd gzip_allow_nets
+above. To avoid delay when a user logs in,
+.Xr prayer-session 8
+only performs a reverse lookup of the remote address if matches this list.
+.Sy Default : No empty; no reverse lookup are performed.
+.
+.It Cd limit_vm Vt ( number )
+Virtual memory limit imposed on each process to stop runaway process killing system. See
+.Xr setrlimit 2 .
+.Sy Default : No no limit.
+.
+.It Cd http_max_method_size Vt ( number )
+Prayer should in theory be able to cope with input of arbitrary
+size. In practice however, the incoming request has to be stored
+somewhere and without limits an attacker may exhaust available memory,
+causing a denial of service attack.
+.Pp
+This sets the maximum size of the initial line of an HTTP request.
+.Sy Default : No no limit.
+.
+.It Cd http_max_hdr_size Vt ( number )
+Maximum for headers associated with this request.
+.
+.It Cd http_max_body_size Vt ( number )
+Maximum for HTTP payload. This is the most significant one in normal use.
+.
+.It Cd draft_att_single_max ( Vt number )
+Maximum size of a single attachment when composing a mail.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd draft_att_total_max ( Vt number )
+Maximum size of all attachments.
+.Sy Default : Li 0 No (unlimited).
+.
+.It Cd http_min_servers Vt ( number )
+Minimum number of preforked
+.Xr prayer 8 HTTP servers. The master process forks new slave processes
+whenever the number of idle slaves falls below this number, unless the
+total number of slaves would exceed
+.Cd http_max_servers .
+.Sy Default : Li 4.
+.
+.It Cd http_max_servers Vt ( number )
+Maximum number of preforked
+.Xr prayer 8 HTTP servers (active and idle). The master process does not,
+however, enforce any maximum number of
+.Em idle No slave processes; they have to terminate voluntarily by timing out
+or serving the maximum number of connections.
+.Sy Default : Li 64 .
+.
+.It Cd http_max_connections Vt ( number )
+Maximum number of connections that each frontend server will process.
+.Sy Default : Li 0 No (no limit).
+.
+.It Cd http_timeout_idle Vt ( time )
+Timeout for (dirty) spare server waiting for another HTTP connection.
+.Sy Default : Li 30s .
+.
+.It Cd http_timeout_icons Vt ( time )
+Timeout for HTTP connection that last served static content.
+.Sy Default : Li 10s .
+.
+.It Cd http_timeout_session Vt ( time )
+Timeout for HTTP connection that last served a session URL or has not served anything yet.
+.Sy Default : Li 60s .
+.
+.It Cd http_cookie_use_port Vt ( boolean )
+Present HTTP cookies to browser as
+.Dq Li username:port=value
+rather than
+.Dq Li username=value .
+Allows simultaneous login sessions from a single client browser.
+However can leave a trail of cookies behind. Probably don't want this
+in the long term, it's here for experimentation purposes only at the
+moment.
+.
+.It Cd icon_expire_timeout Vt ( time )
+The amount of time in the future to set the HTTP
+.Li Expires: No field for static content.
+.Sy Default : Li 7d .
+(In contrast sessions URLs expire immediately: Browsers really
+shouldn't be trying to cache this stuff, especially when it is coming
+in over HTTPS).
+.El
+.
+.Ss Session specific configuration
+.
+.Bl -tag -width Ds
+.
+.It Cd session_idle_time Vt ( time )
+Session switches to idle mode after this much time: connections to
+IMAP and accountd servers are shut down.
+.Sy Default : Li 0 No (idle mode disabled).
+.
+.It Cd session_timeout Vt ( time )
+Session terminates after this much idle time.
+.Ql 0
+means session never times out.
+.Sy Default : Li 4h .
+.
+.It Cd session_timeout_compose Vt ( time )
+Session terminates after this much idle time instead when the last command was
+.Ql compose
+.No or Ql sieve .
+It should probably not be set lower than
+.Cd session_timeout .
+.Sy Default : Li 0 No (always use the same timeout).
+.
+.It Cd stream_ping_interval Vt ( time )
+Ping INBOX, Other, and Draft streams at this interval.
+.Sy Default : Li 5m .
+.
+.It Cd stream_checkpoint Vt ( boolean )
+.No Use Li CHECKPOINT No instead of Li PING Li to \(lqping\(rq streams.
+.Sy Default : Li true .
+.
+.It Cd stream_misc_timeout Vt ( time )
+Shut down Postponed, Preferences and Transfer streams entirely
+after this much idle time, but only if idle mode doesn't beat us to it.
+.Sy Default : Li 0 No (disabled).
+.
+.It Cd log_ping_interval Vt ( time )
+.Xr stat 2 log files at this interval to see if target file has been
+renamed or removed.
+.Ql 0s
+means stat() log file every time something is logged.
+.Sy Default : Li 5m .
+.
+.It Cd db_ping_interval Vt ( time )
+Interval at which to re-read CDB files containing the local domain.
+.Sy Default : Li 30m .
+.El
+.
+.Ss Display specific configuration
+.
+.Bl -tag -width Ds
+.It Cd login_banner Vt ( string )
+Used in the
+.Li <title>
+and heading of the login page, unless
+.Cd login_prefix_path
+specifies a custom first HTML part.
+.Sy Default : Li """Webmail Service Login""" .
+.
+.It Cd login_service_name Vt ( string )
+Used in the
+.Li <title> No and elsewhere to refer to the webmail system
+.Em after No the user has logged in.
+.Sy Default : Li """Prayer""" .
+.
+.It Cd login_prefix_path Vt ( path )
+File to use as the part of the login page before the login
+form. Should include everything including DOCTYPE and <html> tag. If
+unset, Prayer constructs a fairly safe and boring login page
+consisting of the
+.Cd login_banner .
+on the background colour of the default main theme.
+.
+.It Cd motd_path Vt ( path )
+File to use as the part of the login page immediately following the login form.
+.
+.It Cd login_suffix_path Vt ( path )
+File to use as the last part of the login page. If unset, Prayer simply outputs
+.Dq Li </body></html> .
+.
+.It Cd ssl_encouraged ( Vt boolean )
+If the user connects over unencrypted HTTP, do not show the login form on the start
+.Pa ( / ) No page. A link to Pa /login , No where the form is still displayed, is still provided.
+.Sy Default : Li false . No Ignored if Cd ssl_redirect No or Cd ssl_required No is Li true .
+.
+.It Cd ssl_redirect ( Vt boolean )
+If the user connects over unencrypted HTTP, return a
+.Ql 302
+redirect to the default SSL port. Only the start
+.Pa ( / ) No page is redirected and it may be possible to switch between http and
+https after loggin in, subject to cookie rules.
+.Pp
+.Sy Default : Li false .
+.
+.It Cd ssl_required ( Vt boolean )
+Return a
+.Ql 403 Forbidden
+error if the user tries to access anything over unencrypted HTTP.
+.Cd ssl_redirect No still has effect, however.
+.
+.It Cd list_addr_maxlen Vt ( number )
+The maximum number of characters to show from addresses on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd list_subject_maxlen Vt ( number )
+The maximum number of characters to show from the subject on the mailbox list screen.
+.Sy Default : Li 30 .
+.
+.It Cd change_max_folders ( Vt number )
+The maximum number of folders allowed in the quick folder change
+dropdown list. If there would be too many folders, the quick list is
+disabled altogether. Only folders that are expanded in the folder view
+are included.
+.Pp
+.Sy Default : Li 20 .
+.
+.It Cd template_path ( Vt path )
+Path to uncompiled template sets (directories).
+.Sy Default : Li """../templates""" No (relative to
+.Cd tmp_dir ) .
+.
+.It Cd template_set ( Vt string )
+Template set to use.
+.Sy Default : Li """xhtml_strict""" .
+.
+.It Cd template_use_compiled ( Vt boolean )
+Use the compiled-in templates, ignoring
+.Cd template_path .
+.Sy Default : Li true .
+.Pp
+As a Debian extension,
+.Xr prayer-session 8
+will fall back to the compiled-in template version of any template
+that it cannot find in the template directory. This enables
+customization of some templates without having to compile all of them
+at run time, although attempting to open each template still incurs a
+certain penalty.
+.
+.It Cd theme
+Define themes and their colors.
+.Em Semi-deprecated ; No Colours set with this directive are only used by the
+.Li xhtml_transitional No template set. The
+.Li xhtml_strict No template set, as well as the login screen, use CSS instead.
+It is still necessary to tell Prayer which themes are available, however.
+.Pp
+Syntax:
+.Bd -literal -offset indent
+.Cd theme Ar name Li description Ar description
+.Cd theme Ar name element colour
+.Cd theme Ar name element colour
+\&...
+.Ed
+.Pp
+.Ar description No is the label shown in the theme dropdown lists on the
+General Preferences page.
+.Pp
+.Ar element No is one of
+.Li fgcolor , fgcolor_link , bgcolor , bgcolor_banner , bgcolor_row1 , bgcolor_row2 ,
+.Li bgcolor_status , bgcolor_status_none , fgcolor_quote1 , fgcolor_quote2 ,
+.Li fgcolor_quote3 , No and Li fgcolor_quote4 .
+The first three are not used by any standard template set, but are
+available. Please study the templates to understand how the rest are
+used.
+.Pp
+.Ar colour No is any valid HTML Vt %Color No value.
+Remember that strings containing hash marks need to be quoted.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme.
+.
+.It Cd theme_default_main ( Vt string )
+.No The Ar name No of the default theme in help mode.
+.
+.It Cd use_ispell_language
+Ispell languages that we want to support, with some descriptive text
+for the preferences screen. Syntax:
+.Bd -literal -offset indent
+.Cd use_ispell_language Ar wordlist Ar description
+.Ed
+.Pp
+Example:
+.Bd -literal -offset indent
+.Li use_ispell_language british Qq British English
+.Ed
+.El
+.
+.Ss Paths etc.
+.
+.Bl -tag -width Ds
+.
+.It Cd aspell_path ( Vt path )
+Location of Aspell Binary (takes precedence over
+.Cd ispell_path ) .
+.
+.It Cd bin_dir ( Vt path )
+Location of Prayer binaries
+.Xr ( prayer 8 and
+.Xr prayer-session 8 ) .
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd icon_dir ( Vt path )
+Location of icon files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ispell_path ( Vt path )
+Location of Ispell Binary (backwards compatibility only).
+.
+.It Cd log_dir ( Vt path )
+Location of log files.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd pid_dir ( Vt path )
+Location for PID files of prayer and prayer-session master processes.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd sendmail_path ( Vt path )
+Location of sendmail binary or drop in replacement such as Exim.
+.Sy Default : Pa /usr/lib/sendmail .
+.
+.It Cd socket_dir ( Vt path )
+Location for unix domain sockets which connect
+.Xr ( prayer 8 to
+.Xr prayer-session 8 ) .
+.
+.It Cd socket_split_dir ( Vt boolean )
+Split socket directory into 64 subdirs keyed on first letter of
+sessionID. It is possible to switch back and forth without moving
+sockets or killing sessions, since
+.Xr prayer 8 tries both variants. \&In effect, this setting merely controls where
+.Xr prayer-session 8 creates the socket files.
+.Sy Default : Li false .
+.
+.It Cd init_socket_name ( Vt string )
+Name of Unix domain socket (in
+.Cd socket_dir ) No used for initial handshake
+between prayer and prayer-session processes when a user logs in.
+.Sy Default : No none. Sy Must be set.
+.
+.It Cd ssl_session_dir ( Vt path )
+Location of the SSL session cache database.
+.Sy Default : No none. Sy Must be set , No even if the SSL session cache is disabled.
+.
+.It Cd static_dir ( Vt path )
+Location of other static files (CSS).
+.Sy Default : No none. If unset, Prayer will not serve CSS files.
+.
+.It Cd tmp_dir ( Vt path )
+As the directory both daemons
+.Xr chdir 2
+to at startup, it is where temporary files, such as attachments and
+folders in transist during upload and download operations, are
+written. Core files also end up here.
+.Sy Default : No none. Sy Must be set.
+.El
+.
+.Ss Defaults for user preferences
+.
+.Bl -tag -width Ds
+.
+.It Cd confirm_logout ( Vt boolean )
+Confirmation dialogue when user logs out.
+.Sy Default : Li true .
+.
+.It Cd confirm_expunge ( Vt boolean )
+Confirmation dialogue when user hits expunge.
+.Sy Default : Li false .
+.
+.It Cd confirm_rm ( Vt boolean )
+Confirmation dialogue when user deletes mail folder or directory.
+.Sy Default : Li true .
+.
+.It Cd default_domain Vt ( string )
+Default domain for outgoing mail. Defaults to
+.Cd hostname No setting.
+.
+.It Cd html_inline ( Vt boolean )
+Show text/html bodyparts inline. Content is scrubbed to remove
+dangerous tags; see documentation for more details.
+.Sy Default : Li true .
+.
+.It Cd html_inline_auto ( Vt boolean )
+Same as above for text/* bodyparts which start "<HTML>" (case-independent!)
+Does anyone other than spammers actually use this?
+.Sy Default : Li true .
+.
+.It Cd ispell_language ( Vt string )
+Language for ispell.
+.Sy Default : Li """british""" .
+.
+.It Cd msgs_per_page ( Vt number )
+Number of messages per screen on message list screen.
+.Sy Default : Li 12 .
+.
+.It Cd msgs_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd msgs_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd msgs_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd abook_per_page ( Vt number )
+Number of addressbook entries per page on address book list screen.
+.Sy Default : Li 12 .
+.
+.It Cd abook_per_page_max ( Vt number )
+Maximum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 50 .
+.
+.It Cd abook_per_page_min ( Vt number )
+Minimum value that users are allowed to set
+.Cd abook_per_page No to.
+.Sy Default : Li 4 .
+.
+.It Cd maildir ( Vt string )
+Mail directory in user's account.
+.Sy Default : Li """""" .
+Typically needed with uw-imap. Typically not needed with e.g. Dovecot or Courier.
+.
+.It Cd suppress_dotfiles ( Vt boolean )
+Supress dotfiles from directory listing.
+.Sy Default : Li true .
+.
+.It Cd postponed_folder ( Vt string )
+Name of the folder where messages to be sent later, a.k.a. drafts, are stored.
+.Sy Default : Li """postponed-msgs""" .
+.
+.It Cd sent_mail_folder ( Vt string )
+Name of folder for sent mail.
+.Sy Default : Li """sent-mail""" .
+.
+.It Cd small_cols ( Vt number )
+Width of small compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd small_rows ( Vt number )
+Height of small compose textarea in lines.
+.Sy Default : Li 18 .
+.
+.It Cd large_cols ( Vt number )
+Width of large compose textarea in columns.
+.Sy Default : Li 80 .
+.
+.It Cd large_rows ( Vt number )
+Height of large compose textarea in lines.
+.Sy Default : Li 32 .
+.
+.It Cd sort_mode ( Vt string )
+Default Sort mode for mailbox list. One of
+.Li ARRIVAL , DATE , FROM , TO , CC , SIZE , SUBJECT , REFERENCES , ORDEREDSUBJECT .
+.Sy Default : Li ARRIVAL No is most efficient, and recommended.
+.
+.It Cd sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd abook_sort_mode ( Vt string )
+Default Sort mode for addressbook list. One of:
+.Li ORDERED , ALIAS , NAME , COMMENT , ADDRESS .
+.Sy Default : Li ORDERED .
+.
+.It Cd abook_sort_reverse ( Vt boolean )
+Favour reverse sort rather than normal sort order?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_len ( Vt number )
+Wrap lines at this many characters.
+.Sy Default : Li 76 .
+.
+.It Cd line_wrap_advanced ( Vt boolean )
+Enable advanced line wrap options?
+.Sy Default : Li false .
+.
+.It Cd line_wrap_on_reply ( Vt boolean )
+Line wrap automatically on reply.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_spell ( Vt boolean )
+Line wrap automatically on spell check.
+.Sy Default : Li true .
+.
+.It Cd line_wrap_on_send ( Vt boolean )
+Line wrap automatically on send.
+.Sy Default : Li true .
+.
+.It Cd preserve_mimetype ( Vt boolean )
+Send message Content-Type through to browser. If
+.Li false , No Content-Type is replaced with
+.Ql application/octet-stream
+which should force download to local disk, bypassing any automatic
+processing of bodyparts by the User-Agent. Unclear at the moment
+whether we need to do this, or whether this should be done selectively
+based on the User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_sent_mail ( Vt boolean )
+.No Make the Dq Save copy
+checkbox on the compose screen checked default.
+.Sy Default : Li true .
+.
+.It Cd use_mark_persist ( Vt boolean )
+Use persistent mark for aggregate operations.
+.Sy Default : Li false .
+.
+.It Cd use_search_zoom ( Vt boolean )
+Zoom automatically after sucessful search
+.Sy Default : Li true .
+.
+.It Cd use_agg_unmark ( Vt boolean )
+Unmark messages after sucessful aggregate operation.
+.Sy Default : Li true .
+.
+.It Cd use_icons ( Vt boolean )
+Use icons: may be overriden by value of User-Agent.
+.Sy Default : Li true .
+.
+.It Cd use_welcome ( Vt boolean )
+Enable welcome screen .
+.Sy Default : Li true .
+.
+.It Cd use_tail_banner ( Vt boolean )
+Duplicate banner icons (toolbar) at the bottom of the Message screen.
+.Sy Default : Li true .
+.El
+.
+.Ss Hidden preferences
+.
+The following options are internally handled as user preferences, but
+the Preferences screen no longer provides any means for changing them.
+.
+.Bl -tag -width Ds
+.It Cd use_cookie ( Vt boolean )
+Use HTTP cookie for Session-ID, if the browser supports cookies
+If disabled, or user rejects the cookie, then the session-ID is stored in the URL.
+.Sy Default : Li true .
+.
+.It Cd use_substitution ( Vt boolean )
+Use page substiution rather than HTTP redirects. Faster, but the URLs
+that are generated are less predictable. Page substitution and browser
+history mechanism don't coexist well at the moment (Prayer would need to
+cache final page value for each substiution event).
+.Pp
+.Sy Default : Li true .
+.
+.It Cd use_http_1_1 ( Vt boolean )
+Allow HTTP/1.1, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_pipelining ( Vt boolean )
+Allow HTTP/1.1 pipelining, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_embed_http ( Vt boolean )
+Allow HTTP links embedded in HTTPS responses, if the browser supports it.
+.Sy Default : Li true .
+.
+.It Cd use_persist ( Vt boolean )
+Allow persistent HTTP/1.1 and HTTP/1.0 persistent connections,
+if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_short ( Vt boolean )
+Allow short URLs, if the browser supports them.
+.Sy Default : Li true .
+.
+.It Cd use_gzip ( Vt boolean )
+Allow gzip compression, if the browser supports it.
+.Sy Default : Li true .
+.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer-session 8
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
Index: 1.2.2.1-4/debian/prayer-ssl-prune.8
===================================================================
--- 1.2.2.1-4/debian/prayer-ssl-prune.8 (nonexistent)
+++ 1.2.2.1-4/debian/prayer-ssl-prune.8 (revision 180)
@@ -0,0 +1,54 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER-SSL-PRUNE 8
+.Sh NAME
+.Nm prayer-ssl-prune
+.Nd purge stale SSL session data
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+should be run periodically (e.g. once a day) when using SSL session caching
+.Cd ( ssl_session_timeout No > 0 in
+.Pa prayer.cf ) .
+It removes old transaction logs and stale session data.
+It accepts the same configuration-overriding options as
+.Xr prayer 8 and
+.Xr prayer-session 8 .
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /var/run/prayer/ssl_scache/
+Default location of the SSL session cache database.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An "Magnus Holmgren" <holmgren@debian.org>
+using documentation written by
+.An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-4/debian/prayer.8
===================================================================
--- 1.2.2.1-4/debian/prayer.8 (nonexistent)
+++ 1.2.2.1-4/debian/prayer.8 (revision 180)
@@ -0,0 +1,93 @@
+.\" -*- nroff -*-
+.Dd 17 August 2008
+.Os "The Prayer Webmail Interface"
+.ds volume-operating-system
+.Dt PRAYER 8
+.Sh NAME
+.Nm prayer
+.Nd standalone IMAP-based webmail server
+.Sh SYNOPSIS
+.Nm
+.Oo Fl -config-file
+.Ar file Oc
+.Oo Oo Fl -config-option
+.Ar name Ns = Ns Ar value Oc
+.Ar ... Oc
+.Op Fl -foreground | -disable-prefork
+.Oo Fl -disable-session | -
+.Ar session-options Ar ... Oc
+.
+.Sh DESCRIPTION
+.Nm
+is the normal frontend daemon in the Prayer Webmail system. It is a
+simple HTTP server and proxy that serves icons and other static files,
+but firstly and foremostly forwards requests to the correct backend
+daemons based on session IDs passed either in cookies or as part of
+the URL.
+.Pp
+The master daemon normally preforks a number of child processes that
+each will serve a configurable number of requests. The total number of
+child processes is limited to prevent denial of service attacks.
+.Pp
+.Nm
+accepts the following command-line options:
+.Bl -tag -width indent
+.It Fl -config-file Ar file
+Reads configuration from
+.Ar file
+instead of the default.
+.It Fl -config-option Ar name Ns = Ns Ar value
+Sets (overrides) the configuration option
+.Ar name No to Ar value .
+Any number of options can be specified in this manner.
+.It Fl -foreground
+Debug mode. Run a single process in the foreground.
+.It Fl -disable-prefork
+Disable preforking. The master daemon will listen for connections
+on the configured ports and spawn child processes one at a time.
+.It Fl -disable-session
+Do not start the session server,
+.Xr prayer-session 8 .
+.It Fl -
+End of
+.Nm
+options; remaining options will be passed to
+.Xr prayer-session 8 .
+.El
+.
+.Sh ENVIRONMENT
+.
+.Bl -tag -width ".Ev PRAYER_CONFIG_FILE "
+.It Ev PRAYER_CONFIG_FILE
+Can be set to specify the configuration file to use.
+.It Ev PRAYER_HOSTNAME
+Local hostname. Overrides the
+.Cd hostname
+setting in the configuration file as well as on the command line.
+.El
+.
+.Sh FILES
+.
+.Bl -tag -compact
+.It Pa /etc/prayer/prayer.cf
+Default configuration file.
+.It Pa /usr/share/prayer/icons/
+Location of the standard icons used by the interface.
+.It Pa /usr/share/prayer/static/
+Directory containing other static files; currently only CSS files.
+.It Pa /var/run/prayer/sockets/
+Pre-configured location of sockets for frontend to backend communication.
+.El
+.
+.Sh SEE ALSO
+.
+.Xr prayer-session 8 ,
+.Xr prayer.cf 5
+.
+.Sh AUTHORS
+.
+This manual page was put together by
+.An -nosplit
+.An "Magnus Holmgren" <holmgren@debian.org>
+.No using documentation written by An "David Carter" <dpc22@cam.ac.uk> .
+.\" .Sh BUGS
Index: 1.2.2.1-4/debian/Config
===================================================================
--- 1.2.2.1-4/debian/Config (nonexistent)
+++ 1.2.2.1-4/debian/Config (revision 180)
@@ -0,0 +1,146 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CFLAGS, CPPFLAGS and LDFLAGS if passed in)
+BASECFLAGS := $(CFLAGS)
+BASECFLAGS ?= -Wall -g -O2
+BASECFLAGS += $(CPPFLAGS)
+
+BASELDFLAGS := $(LDFLAGS)
+BASELDFLAGS ?= -g
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.2.1-4/debian/prayer-accountd.init
===================================================================
--- 1.2.2.1-4/debian/prayer-accountd.init (nonexistent)
+++ 1.2.2.1-4/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-4/debian/prayer.init
===================================================================
--- 1.2.2.1-4/debian/prayer.init (nonexistent)
+++ 1.2.2.1-4/debian/prayer.init (revision 180)
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ sleep 1
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-4/debian/patches/unlimit_login_username.patch
===================================================================
--- 1.2.2.1-4/debian/patches/unlimit_login_username.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/unlimit_login_username.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/servers/prayer_login.c
++++ b/servers/prayer_login.c
+@@ -116,7 +116,7 @@ prayer_login_generate(struct prayer *pra
+
+ bputs(b, " <td>");
+ bprintf(b,
+- "<input name=\"username\" value=\"%s\" size=\"8\" maxlength=\"8\" />",
++ "<input name=\"username\" value=\"%s\" size=\"16\" />",
+ user ? user : "");
+ bputs(b, "</td>" CRLF);
+ bputs(b, "</tr>" CRLF);
Index: 1.2.2.1-4/debian/patches/series
===================================================================
--- 1.2.2.1-4/debian/patches/series (nonexistent)
+++ 1.2.2.1-4/debian/patches/series (revision 180)
@@ -0,0 +1,7 @@
+repair_ssl_session_db_on_version_mismatch.patch
+makefile_install_config.patch
+remove_old_db_logfiles_from_prayer-ssl-prune.patch
+welcome_is_template.patch
+templates_fallback_to_compiled.patch
+template_find_bug.patch
+unlimit_login_username.patch
Index: 1.2.2.1-4/debian/patches/welcome_is_template.patch
===================================================================
--- 1.2.2.1-4/debian/patches/welcome_is_template.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/welcome_is_template.patch (revision 180)
@@ -0,0 +1,41 @@
+--- a/cmd/cmd_welcome.c
++++ b/cmd/cmd_welcome.c
+@@ -74,12 +74,7 @@ void cmd_welcome(struct session *session
+ unsigned long msgno;
+
+ if ((request->method != POST) && (prefs->use_welcome)) {
+- if (config->welcome_path &&
+- (string = read_welcome(request->pool, config->welcome_path)))
+- generate_welcome_page(session, string);
+- else
+- session_redirect(session, request, "list");
+-
++ generate_welcome_page(session, NULL);
+ return;
+ }
+
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -402,12 +402,6 @@ ssl_required = FALSE
+ # Session banner (local HTML inserted into each page of login session)
+ #session_banner_path = "$prefix/etc/session_banner.html"
+
+-# Welcome text displayed when user first logs in
+-welcome_path = "$prefix/etc/welcome.html"
+-
+-# Location of help files
+-help_dir = "$prefix/help"
+-
+ # Location of icon files
+ icon_dir = "$prefix/icons"
+
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2139,7 +2139,6 @@ BOOL config_check(struct config * config
+ struct config_http_port *chp;
+ char hostname[MAX_ADDRESS+1], domainname[MAX_ADDRESS+1];
+
+- TEST_STRING(config->help_dir, "help_dir");
+ TEST_STRING(config->icon_dir, "icon_dir");
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
Index: 1.2.2.1-4/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.2.1-4/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,184 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,26 +65,21 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -271,11 +271,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -283,26 +283,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -387,13 +375,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -431,10 +419,7 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
+-
+-# $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++log_dir = "/var/log/prayer"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -442,7 +427,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -453,10 +438,10 @@ ssl_session_dir = "$var_prefix/ssl_s
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -617,14 +602,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2144,7 +2144,6 @@ BOOL config_check(struct config * config
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
+ TEST_STRING(config->ssl_session_dir, "ssl_session_dir");
+- TEST_STRING(config->lock_dir, "lock_dir");
+ TEST_STRING(config->log_dir, "log_dir");
+ TEST_STRING(config->tmp_dir, "tmp_dir");
+ TEST_STRING(config->pid_dir, "pid_dir");
Index: 1.2.2.1-4/debian/patches/template_find_bug.patch
===================================================================
--- 1.2.2.1-4/debian/patches/template_find_bug.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/template_find_bug.patch (revision 180)
@@ -0,0 +1,28 @@
+--- a/lib/template.c
++++ b/lib/template.c
+@@ -199,10 +199,11 @@ template_find(char *set, char *name, str
+ unsigned long first, last, middle;
+ int rc;
+
+- while (strcmp(tmi->name, set) != 0)
++ while (strcmp(tmi->name, set) != 0) {
+ tmi++;
+- if (!tmi->name)
+- return(NIL);
++ if (!tmi->name)
++ return(NIL);
++ }
+
+ tm = tmi->template_map;
+ count = *(tmi->count);
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -168,7 +168,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "html4";
++ config->template_set = "xhtml_strict";
+ config->template_use_compiled = T;
+
+ config->prayer_user = NIL;
Index: 1.2.2.1-4/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch
===================================================================
--- 1.2.2.1-4/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (revision 180)
@@ -0,0 +1,34 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -289,9 +289,6 @@ static int myarchive(const char **fnames
+ const char **fname;
+ char dstname[1024], *dp;
+
+- strcpy(dstname, dirname);
+- dp = dstname + strlen(dstname);
+-
+ /* Get the list of log files to remove. */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS, NULL);
+ if (r) {
+@@ -312,6 +309,11 @@ static int myarchive(const char **fnames
+ free (begin);
+ }
+
++ if (!dirname) return 0;
++
++ strcpy(dstname, dirname);
++ dp = dstname + strlen(dstname);
++
+ /* Get the list of database files to archive. */
+ /* XXX Should we do this, or just use the list given to us? */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL);
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -837,6 +837,7 @@ int ssl_prune_sessions(struct ssl_config
+ log_debug("tls_prune: purged %d out of %d entries",
+ prock.deletions, prock.count);
+
++ DB->archive(NULL, NULL);
+ DB->done();
+
+ return (0);
Index: 1.2.2.1-4/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.2.1-4/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -452,7 +452,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.2.1-4/debian/patches/repair_ssl_session_db_on_version_mismatch.patch
===================================================================
--- 1.2.2.1-4/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -208,7 +208,11 @@ static int init(const char *dbdir, int m
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
+- if (r != ENOENT) {
++ if (r != ENOENT
++#ifdef DB_VERSION_MISMATCH
++ && r != DB_VERSION_MISMATCH
++#endif
++ ) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
+ }
+@@ -217,7 +217,7 @@ static int init(const char *dbdir, int m
+ /* DPC 24/03/2002. DB_CREATE leaks 12 MBytes into dbenv.
+ * Workaround: close down dbenv, reopen after backing files created */
+
+- r = myinit(dbdir, myflags|MYDB_CREATE);
++ r = myinit(dbdir, myflags|MYDB_CREATE|MYDB_RECOVER);
+ if (r) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
Index: 1.2.2.1-4/debian/patches/sighandling.patch
===================================================================
--- 1.2.2.1-4/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.2.1-4/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.2.1-4/debian/control
===================================================================
--- 1.2.2.1-4/debian/control (nonexistent)
+++ 1.2.2.1-4/debian/control (revision 180)
@@ -0,0 +1,54 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.2.1-4/debian/prayer.install
===================================================================
--- 1.2.2.1-4/debian/prayer.install (nonexistent)
+++ 1.2.2.1-4/debian/prayer.install (revision 180)
@@ -0,0 +1,5 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
Index: 1.2.2.1-4/debian/README.Debian
===================================================================
--- 1.2.2.1-4/debian/README.Debian (nonexistent)
+++ 1.2.2.1-4/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.2.1-4/debian/prayer.dirs
===================================================================
--- 1.2.2.1-4/debian/prayer.dirs (nonexistent)
+++ 1.2.2.1-4/debian/prayer.dirs (revision 180)
@@ -0,0 +1,4 @@
+var/run/prayer
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.2.1-4/debian/prayer.examples
===================================================================
--- 1.2.2.1-4/debian/prayer.examples (nonexistent)
+++ 1.2.2.1-4/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.2.1-4/debian/prayer.postinst
===================================================================
--- 1.2.2.1-4/debian/prayer.postinst (nonexistent)
+++ 1.2.2.1-4/debian/prayer.postinst (revision 180)
@@ -0,0 +1,56 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.2.1-4/debian/copyright
===================================================================
--- 1.2.2.1-4/debian/copyright (nonexistent)
+++ 1.2.2.1-4/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.2.1-4/debian/prayer.docs
===================================================================
--- 1.2.2.1-4/debian/prayer.docs (nonexistent)
+++ 1.2.2.1-4/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.2.1-4/debian/prayer.postrm
===================================================================
--- 1.2.2.1-4/debian/prayer.postrm (nonexistent)
+++ 1.2.2.1-4/debian/prayer.postrm (revision 180)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.2.1-4/debian/rules
===================================================================
--- 1.2.2.1-4/debian/rules (nonexistent)
+++ 1.2.2.1-4/debian/rules (revision 180)
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
/1.2.2.1-4/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.2.1-4/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.2.1-4/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.2.1-4/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-4/debian/prayer.lintian-overrides
===================================================================
--- 1.2.2.1-4/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.2.1-4/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-4/debian/compat
===================================================================
--- 1.2.2.1-4/debian/compat (nonexistent)
+++ 1.2.2.1-4/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.2.1-4/debian/prayer.default
===================================================================
--- 1.2.2.1-4/debian/prayer.default (nonexistent)
+++ 1.2.2.1-4/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.2.1-4/debian/prayer-accountd.docs
===================================================================
--- 1.2.2.1-4/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.2.1-4/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.2.1-4/debian/prayer.logrotate
===================================================================
--- 1.2.2.1-4/debian/prayer.logrotate (nonexistent)
+++ 1.2.2.1-4/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.2.1-4/debian/prayer-accountd.install
===================================================================
--- 1.2.2.1-4/debian/prayer-accountd.install (nonexistent)
+++ 1.2.2.1-4/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.2.1-4/debian/watch
===================================================================
--- 1.2.2.1-4/debian/watch (nonexistent)
+++ 1.2.2.1-4/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.2.1-4/debian
===================================================================
--- 1.2.2.1-4/debian (nonexistent)
+++ 1.2.2.1-4/debian (revision 180)
/1.2.2.1-4/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.2.1-3/debian/control
===================================================================
--- 1.2.2.1-3/debian/control (nonexistent)
+++ 1.2.2.1-3/debian/control (revision 180)
@@ -0,0 +1,54 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev (>= 7:2007~),
+ libldap2-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.2.1-3/debian/changelog
===================================================================
--- 1.2.2.1-3/debian/changelog (nonexistent)
+++ 1.2.2.1-3/debian/changelog (revision 180)
@@ -0,0 +1,154 @@
+prayer (1.2.2.1-3) unstable; urgency=low
+
+ * welcome_is_template.patch:
+ - shared/config.c: Don't require that the help_dir option, which was
+ removed from the default prayer.cf earlier, is defined
+ (Closes: #493009).
+ * makefile_install_config.patch:
+ - shared/config.c: Likewise don't check for lock_dir (Closes: #494011).
+
+ -- Magnus Holmgren <holmgren@debian.org> Wed, 06 Aug 2008 21:20:17 +0200
+
+prayer (1.2.2.1-2) unstable; urgency=low
+
+ * Acknowledge NMU, but change the build dependency to
+ libc-client2007b-dev | libc-client2007-dev | libc-client-dev
+ (>= 7:2007~), since we need at least that version.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sun, 27 Jul 2008 20:52:18 +0200
+
+prayer (1.2.2.1-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Build-depend on unversioned libc-client-dev to allow BinNMUs.
+ Closes: bug#492285.
+
+ -- Jonas Smedegaard <dr@jones.dk> Thu, 24 Jul 2008 23:42:33 +0200
+
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.2.1-3/debian/patches/welcome_is_template.patch
===================================================================
--- 1.2.2.1-3/debian/patches/welcome_is_template.patch (nonexistent)
+++ 1.2.2.1-3/debian/patches/welcome_is_template.patch (revision 180)
@@ -0,0 +1,41 @@
+--- a/cmd/cmd_welcome.c
++++ b/cmd/cmd_welcome.c
+@@ -74,12 +74,7 @@ void cmd_welcome(struct session *session
+ unsigned long msgno;
+
+ if ((request->method != POST) && (prefs->use_welcome)) {
+- if (config->welcome_path &&
+- (string = read_welcome(request->pool, config->welcome_path)))
+- generate_welcome_page(session, string);
+- else
+- session_redirect(session, request, "list");
+-
++ generate_welcome_page(session, NULL);
+ return;
+ }
+
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -402,12 +402,6 @@ ssl_required = FALSE
+ # Session banner (local HTML inserted into each page of login session)
+ #session_banner_path = "$prefix/etc/session_banner.html"
+
+-# Welcome text displayed when user first logs in
+-welcome_path = "$prefix/etc/welcome.html"
+-
+-# Location of help files
+-help_dir = "$prefix/help"
+-
+ # Location of icon files
+ icon_dir = "$prefix/icons"
+
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2139,7 +2139,6 @@ BOOL config_check(struct config * config
+ struct config_http_port *chp;
+ char hostname[MAX_ADDRESS+1], domainname[MAX_ADDRESS+1];
+
+- TEST_STRING(config->help_dir, "help_dir");
+ TEST_STRING(config->icon_dir, "icon_dir");
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
Index: 1.2.2.1-3/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.2.1-3/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.2.1-3/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,184 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,26 +65,21 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -271,11 +271,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -283,26 +283,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -387,13 +375,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -431,10 +419,7 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
+-
+-# $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++log_dir = "/var/log/prayer"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -442,7 +427,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -453,10 +438,10 @@ ssl_session_dir = "$var_prefix/ssl_s
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -617,14 +602,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -2144,7 +2144,6 @@ BOOL config_check(struct config * config
+ TEST_STRING(config->socket_dir, "socket_dir");
+ TEST_STRING(config->init_socket_name, "init_socket_name");
+ TEST_STRING(config->ssl_session_dir, "ssl_session_dir");
+- TEST_STRING(config->lock_dir, "lock_dir");
+ TEST_STRING(config->log_dir, "log_dir");
+ TEST_STRING(config->tmp_dir, "tmp_dir");
+ TEST_STRING(config->pid_dir, "pid_dir");
Index: 1.2.2.1-3/debian/patches/template_find_bug.patch
===================================================================
--- 1.2.2.1-3/debian/patches/template_find_bug.patch (nonexistent)
+++ 1.2.2.1-3/debian/patches/template_find_bug.patch (revision 180)
@@ -0,0 +1,28 @@
+--- a/lib/template.c
++++ b/lib/template.c
+@@ -199,10 +199,11 @@ template_find(char *set, char *name, str
+ unsigned long first, last, middle;
+ int rc;
+
+- while (strcmp(tmi->name, set) != 0)
++ while (strcmp(tmi->name, set) != 0) {
+ tmi++;
+- if (!tmi->name)
+- return(NIL);
++ if (!tmi->name)
++ return(NIL);
++ }
+
+ tm = tmi->template_map;
+ count = *(tmi->count);
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -168,7 +168,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "html4";
++ config->template_set = "xhtml_strict";
+ config->template_use_compiled = T;
+
+ config->prayer_user = NIL;
Index: 1.2.2.1-3/debian/patches/series
===================================================================
--- 1.2.2.1-3/debian/patches/series (nonexistent)
+++ 1.2.2.1-3/debian/patches/series (revision 180)
@@ -0,0 +1,6 @@
+repair_ssl_session_db_on_version_mismatch.patch
+makefile_install_config.patch
+remove_old_db_logfiles_from_prayer-ssl-prune.patch
+welcome_is_template.patch
+templates_fallback_to_compiled.patch
+template_find_bug.patch
Index: 1.2.2.1-3/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch
===================================================================
--- 1.2.2.1-3/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (nonexistent)
+++ 1.2.2.1-3/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (revision 180)
@@ -0,0 +1,34 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -289,9 +289,6 @@ static int myarchive(const char **fnames
+ const char **fname;
+ char dstname[1024], *dp;
+
+- strcpy(dstname, dirname);
+- dp = dstname + strlen(dstname);
+-
+ /* Get the list of log files to remove. */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS, NULL);
+ if (r) {
+@@ -312,6 +309,11 @@ static int myarchive(const char **fnames
+ free (begin);
+ }
+
++ if (!dirname) return 0;
++
++ strcpy(dstname, dirname);
++ dp = dstname + strlen(dstname);
++
+ /* Get the list of database files to archive. */
+ /* XXX Should we do this, or just use the list given to us? */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL);
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -837,6 +837,7 @@ int ssl_prune_sessions(struct ssl_config
+ log_debug("tls_prune: purged %d out of %d entries",
+ prock.deletions, prock.count);
+
++ DB->archive(NULL, NULL);
+ DB->done();
+
+ return (0);
Index: 1.2.2.1-3/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.2.1-3/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.2.1-3/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -452,7 +452,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.2.1-3/debian/patches/repair_ssl_session_db_on_version_mismatch.patch
===================================================================
--- 1.2.2.1-3/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (nonexistent)
+++ 1.2.2.1-3/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -208,7 +208,11 @@ static int init(const char *dbdir, int m
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
+- if (r != ENOENT) {
++ if (r != ENOENT
++#ifdef DB_VERSION_MISMATCH
++ && r != DB_VERSION_MISMATCH
++#endif
++ ) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
+ }
+@@ -217,7 +217,7 @@ static int init(const char *dbdir, int m
+ /* DPC 24/03/2002. DB_CREATE leaks 12 MBytes into dbenv.
+ * Workaround: close down dbenv, reopen after backing files created */
+
+- r = myinit(dbdir, myflags|MYDB_CREATE);
++ r = myinit(dbdir, myflags|MYDB_CREATE|MYDB_RECOVER);
+ if (r) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
Index: 1.2.2.1-3/debian/patches/sighandling.patch
===================================================================
--- 1.2.2.1-3/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.2.1-3/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.2.1-3/debian/prayer.install
===================================================================
--- 1.2.2.1-3/debian/prayer.install (nonexistent)
+++ 1.2.2.1-3/debian/prayer.install (revision 180)
@@ -0,0 +1,5 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
Index: 1.2.2.1-3/debian/README.Debian
===================================================================
--- 1.2.2.1-3/debian/README.Debian (nonexistent)
+++ 1.2.2.1-3/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.2.1-3/debian/prayer.dirs
===================================================================
--- 1.2.2.1-3/debian/prayer.dirs (nonexistent)
+++ 1.2.2.1-3/debian/prayer.dirs (revision 180)
@@ -0,0 +1,4 @@
+var/run/prayer
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.2.1-3/debian/prayer.examples
===================================================================
--- 1.2.2.1-3/debian/prayer.examples (nonexistent)
+++ 1.2.2.1-3/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.2.1-3/debian/prayer.postinst
===================================================================
--- 1.2.2.1-3/debian/prayer.postinst (nonexistent)
+++ 1.2.2.1-3/debian/prayer.postinst (revision 180)
@@ -0,0 +1,56 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.2.1-3/debian/Config
===================================================================
--- 1.2.2.1-3/debian/Config (nonexistent)
+++ 1.2.2.1-3/debian/Config (revision 180)
@@ -0,0 +1,153 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CPPFLAGS and LDFLAGS if passed in)
+ifdef CPPFLAGS
+ BASECFLAGS = $(CPPFLAGS)
+else
+ BASECFLAGS = -Wall -g -O2
+endif
+ifdef INCLUDES
+ BASECFLAGS += $(INCLUDES)
+endif
+ifdef LDFLAGS
+ BASELDFLAGS = $(LDFLAGS)
+else
+ BASELDFLAGS = -g
+endif
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE = -DLDAP_DEPRECATED
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.2.1-3/debian/copyright
===================================================================
--- 1.2.2.1-3/debian/copyright (nonexistent)
+++ 1.2.2.1-3/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.2.1-3/debian/prayer.docs
===================================================================
--- 1.2.2.1-3/debian/prayer.docs (nonexistent)
+++ 1.2.2.1-3/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.2.1-3/debian/prayer.postrm
===================================================================
--- 1.2.2.1-3/debian/prayer.postrm (nonexistent)
+++ 1.2.2.1-3/debian/prayer.postrm (revision 180)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.2.1-3/debian/rules
===================================================================
--- 1.2.2.1-3/debian/rules (nonexistent)
+++ 1.2.2.1-3/debian/rules (revision 180)
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
/1.2.2.1-3/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.2.1-3/debian/prayer-accountd.init
===================================================================
--- 1.2.2.1-3/debian/prayer-accountd.init (nonexistent)
+++ 1.2.2.1-3/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-3/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.2.1-3/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.2.1-3/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-3/debian/prayer.lintian-overrides
===================================================================
--- 1.2.2.1-3/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.2.1-3/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-3/debian/compat
===================================================================
--- 1.2.2.1-3/debian/compat (nonexistent)
+++ 1.2.2.1-3/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.2.1-3/debian/prayer.default
===================================================================
--- 1.2.2.1-3/debian/prayer.default (nonexistent)
+++ 1.2.2.1-3/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.2.1-3/debian/prayer-accountd.docs
===================================================================
--- 1.2.2.1-3/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.2.1-3/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.2.1-3/debian/prayer-session.8.dbk
===================================================================
--- 1.2.2.1-3/debian/prayer-session.8.dbk (nonexistent)
+++ 1.2.2.1-3/debian/prayer-session.8.dbk (revision 180)
@@ -0,0 +1,158 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer-session">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>...</cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--debug</option>
+ </term>
+ <listitem>
+ <para>Enable debugging.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.2.2.1-3/debian/prayer.logrotate
===================================================================
--- 1.2.2.1-3/debian/prayer.logrotate (nonexistent)
+++ 1.2.2.1-3/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.2.1-3/debian/prayer.init
===================================================================
--- 1.2.2.1-3/debian/prayer.init (nonexistent)
+++ 1.2.2.1-3/debian/prayer.init (revision 180)
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-3/debian/prayer-accountd.install
===================================================================
--- 1.2.2.1-3/debian/prayer-accountd.install (nonexistent)
+++ 1.2.2.1-3/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.2.1-3/debian/watch
===================================================================
--- 1.2.2.1-3/debian/watch (nonexistent)
+++ 1.2.2.1-3/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.2.1-3/debian/prayer.8.dbk
===================================================================
--- 1.2.2.1-3/debian/prayer.8.dbk (nonexistent)
+++ 1.2.2.1-3/debian/prayer.8.dbk (revision 180)
@@ -0,0 +1,178 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>... -- <arg><option><replaceable>PRAYER-SESSION-OPTION</replaceable></option></arg> ...
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-prefork</option>
+ </term>
+ <listitem>
+ <para>Run as simple fork()/exec() daemon.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-session</option>
+ </term>
+ <listitem>
+ <para>Don't start up prayer-session server.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--</option>
+ </term>
+ <listitem>
+ <para>End of prayer options: remaining options will be passed to prayer-session server process.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer-session(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.2.2.1-3/debian
===================================================================
--- 1.2.2.1-3/debian (nonexistent)
+++ 1.2.2.1-3/debian (revision 180)
/1.2.2.1-3/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.2.1-1/debian/patches/template_find_bug.patch
===================================================================
--- 1.2.2.1-1/debian/patches/template_find_bug.patch (nonexistent)
+++ 1.2.2.1-1/debian/patches/template_find_bug.patch (revision 180)
@@ -0,0 +1,28 @@
+--- a/lib/template.c
++++ b/lib/template.c
+@@ -199,10 +199,11 @@ template_find(char *set, char *name, str
+ unsigned long first, last, middle;
+ int rc;
+
+- while (strcmp(tmi->name, set) != 0)
++ while (strcmp(tmi->name, set) != 0) {
+ tmi++;
+- if (!tmi->name)
+- return(NIL);
++ if (!tmi->name)
++ return(NIL);
++ }
+
+ tm = tmi->template_map;
+ count = *(tmi->count);
+--- a/shared/config.c
++++ b/shared/config.c
+@@ -168,7 +168,7 @@ struct config *config_create(void)
+ config->fatal_dump_core = NIL;
+
+ config->template_path = "../templates";
+- config->template_set = "html4";
++ config->template_set = "xhtml_strict";
+ config->template_use_compiled = T;
+
+ config->prayer_user = NIL;
Index: 1.2.2.1-1/debian/patches/series
===================================================================
--- 1.2.2.1-1/debian/patches/series (nonexistent)
+++ 1.2.2.1-1/debian/patches/series (revision 180)
@@ -0,0 +1,6 @@
+repair_ssl_session_db_on_version_mismatch.patch
+makefile_install_config.patch
+remove_old_db_logfiles_from_prayer-ssl-prune.patch
+welcome_is_template.patch
+templates_fallback_to_compiled.patch
+template_find_bug.patch
Index: 1.2.2.1-1/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch
===================================================================
--- 1.2.2.1-1/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (nonexistent)
+++ 1.2.2.1-1/debian/patches/remove_old_db_logfiles_from_prayer-ssl-prune.patch (revision 180)
@@ -0,0 +1,34 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -289,9 +289,6 @@ static int myarchive(const char **fnames
+ const char **fname;
+ char dstname[1024], *dp;
+
+- strcpy(dstname, dirname);
+- dp = dstname + strlen(dstname);
+-
+ /* Get the list of log files to remove. */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS, NULL);
+ if (r) {
+@@ -312,6 +309,11 @@ static int myarchive(const char **fnames
+ free (begin);
+ }
+
++ if (!dirname) return 0;
++
++ strcpy(dstname, dirname);
++ dp = dstname + strlen(dstname);
++
+ /* Get the list of database files to archive. */
+ /* XXX Should we do this, or just use the list given to us? */
+ r = log_archive(dbenv, &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL);
+--- a/lib/ssl.c
++++ b/lib/ssl.c
+@@ -837,6 +837,7 @@ int ssl_prune_sessions(struct ssl_config
+ log_debug("tls_prune: purged %d out of %d entries",
+ prock.deletions, prock.count);
+
++ DB->archive(NULL, NULL);
+ DB->done();
+
+ return (0);
Index: 1.2.2.1-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.2.1-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.2.1-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,174 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,26 +65,21 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${BROOT}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+- RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+- RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+- PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+- PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+- PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
+- ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
++ tar -c --owner ${RO_USER} --group ${RO_GROUP} icons static | tar -C ${BROOT}${PREFIX} -x
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -271,11 +271,11 @@ http_icon_embed = TRUE
+
+ # Locatation of SSL certificate file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_cert_file = "$prefix/certs/prayer.pem"
++ssl_cert_file = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
+
+ # Locatation of SSL private key file (only used if SSL ports defined).
+ # Required if we are going to provide SSL services.
+-ssl_privatekey_file = "$prefix/certs/prayer.pem"
++ssl_privatekey_file = "/etc/ssl/private/ssl-cert-snakeoil.key"
+
+ # Master server will regenerate shared RSA key at this interval:
+ ssl_rsakey_lifespan = 15m
+@@ -283,26 +283,14 @@ ssl_rsakey_lifespan = 15m
+ # RSA key remains fresh in child process for this long after first actual use.
+ ssl_rsakey_freshen = 15m
+
+-# SSL session cache timeout.
+-ssl_session_timeout = 24h
++# SSL session cache timeout. Uncomment to enable SSL session caching.
++# You should also arrange for prayer-ssl-prune to be run periodically.
++#ssl_session_timeout = 24h
+
+ # EGD socket, if system has no /dev/urandom
+ #egd_socket = "/var/prngd/urandom"
+
+ ######################################################################
+-
+-# Direct connection stuff. Experimental! Leave this well alone unless you
+-# understand what it is for (DESIGN document provides detail for the curious).
+-direct_enable = FALSE
+-
+-# Following four options just define a set of (non-overlapping) ports for
+-# SSL and plaintext use if direct connection mode is enabled.
+-direct_ssl_first = 5000
+-direct_ssl_count = 1000
+-direct_plain_first = 4000
+-direct_plain_count = 1000
+-
+-######################################################################
+ # Session specific configuration
+
+ # Session switches to idle mode after this much time: connections to IMAP
+@@ -387,13 +375,13 @@ ispell_path = /usr/bin/ispell
+ # <login_suffix_path>
+
+ # Login page prefix
+-#login_prefix_path = "$prefix/etc/login_prefix.html"
++#login_prefix_path = "/etc/login_prefix.html"
+
+ # Message of the day file
+-#motd_path = "$prefix/etc/motd.html"
++#motd_path = "/etc/motd.html"
+
+ # Login page suffix
+-#login_suffix_path = "$prefix/etc/login_suffix.html"
++#login_suffix_path = "/etc/login_suffix.html"
+
+ # Login security: Prayer's front page defaults to a login form.
+ # If the user does not connect via SSL then this can be changed
+@@ -431,10 +419,7 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+-
+-# $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -442,7 +427,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -453,10 +438,10 @@ ssl_session_dir = "$var_prefix/ssl_s
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -617,14 +602,14 @@ hiersep = "/"
+ dualuse = FALSE
+
+ # Names of postponed_folder and sent_mail_folder, relative to maildir
+-postponed_folder = "postponed-msgs"
+-sent_mail_folder = "sent-mail"
++postponed_folder = "Drafts"
++sent_mail_folder = "Sent"
+
+ # Default domain for outgoing mail. Defaults to "$hostname".
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.2.2.1-1/debian/patches/templates_fallback_to_compiled.patch
===================================================================
--- 1.2.2.1-1/debian/patches/templates_fallback_to_compiled.patch (nonexistent)
+++ 1.2.2.1-1/debian/patches/templates_fallback_to_compiled.patch (revision 180)
@@ -0,0 +1,45 @@
+--- a/lib/template_expand.c
++++ b/lib/template_expand.c
+@@ -496,11 +496,11 @@ template_expand_call(struct template_cal
+ char *s, *t;
+ char *err = NIL;
+
+- if (tvals->use_compiled)
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ item->name, tvals->pool)))
+ template = template_find(tvals->set, item->name, tvals->pool);
+- else
+- template = template_parse(tvals->dir, tvals->set,
+- item->name, tvals->pool);
++
+ if (!template) {
+ str_printf(state->error,
+ "Template \"%s\" not found (CALL from template \"%s\")\n",
+@@ -579,11 +579,11 @@ template_expand(char *name, struct templ
+ struct str *error = tvals->error;
+ char *err;
+
+- if (tvals->use_compiled) {
++ if (tvals->use_compiled ||
++ !(template = template_parse(tvals->dir, tvals->set,
++ name, tvals->pool)))
+ template = template_find(tvals->set, name, tvals->pool);
+- } else {
+- template = template_parse(tvals->dir, tvals->set, name, tvals->pool);
+- }
++
+ if (!template) {
+ str_printf(tvals->error,
+ "Template %s not found (top level template_expand())",
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -452,7 +452,7 @@ pid_dir = "$var_prefix"
+ ######################################################################
+ # Template stuff
+
+-template_path = "__PREFIX__/templates"
++template_path = "/etc/prayer/templates"
+ template_set = "xhtml_strict"
+ template_use_compiled = TRUE
+
Index: 1.2.2.1-1/debian/patches/repair_ssl_session_db_on_version_mismatch.patch
===================================================================
--- 1.2.2.1-1/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (nonexistent)
+++ 1.2.2.1-1/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (revision 180)
@@ -0,0 +1,24 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -208,7 +208,11 @@ static int init(const char *dbdir, int m
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
+- if (r != ENOENT) {
++ if (r != ENOENT
++#ifdef DB_VERSION_MISMATCH
++ && r != DB_VERSION_MISMATCH
++#endif
++ ) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
+ }
+@@ -217,7 +217,7 @@ static int init(const char *dbdir, int m
+ /* DPC 24/03/2002. DB_CREATE leaks 12 MBytes into dbenv.
+ * Workaround: close down dbenv, reopen after backing files created */
+
+- r = myinit(dbdir, myflags|MYDB_CREATE);
++ r = myinit(dbdir, myflags|MYDB_CREATE|MYDB_RECOVER);
+ if (r) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
Index: 1.2.2.1-1/debian/patches/welcome_is_template.patch
===================================================================
--- 1.2.2.1-1/debian/patches/welcome_is_template.patch (nonexistent)
+++ 1.2.2.1-1/debian/patches/welcome_is_template.patch (revision 180)
@@ -0,0 +1,31 @@
+--- a/cmd/cmd_welcome.c
++++ b/cmd/cmd_welcome.c
+@@ -74,12 +74,7 @@ void cmd_welcome(struct session *session
+ unsigned long msgno;
+
+ if ((request->method != POST) && (prefs->use_welcome)) {
+- if (config->welcome_path &&
+- (string = read_welcome(request->pool, config->welcome_path)))
+- generate_welcome_page(session, string);
+- else
+- session_redirect(session, request, "list");
+-
++ generate_welcome_page(session, NULL);
+ return;
+ }
+
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -402,12 +402,6 @@ ssl_required = FALSE
+ # Session banner (local HTML inserted into each page of login session)
+ #session_banner_path = "$prefix/etc/session_banner.html"
+
+-# Welcome text displayed when user first logs in
+-welcome_path = "$prefix/etc/welcome.html"
+-
+-# Location of help files
+-help_dir = "$prefix/help"
+-
+ # Location of icon files
+ icon_dir = "$prefix/icons"
+
Index: 1.2.2.1-1/debian/patches/sighandling.patch
===================================================================
--- 1.2.2.1-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.2.1-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.2.1-1/debian/changelog
===================================================================
--- 1.2.2.1-1/debian/changelog (nonexistent)
+++ 1.2.2.1-1/debian/changelog (revision 180)
@@ -0,0 +1,127 @@
+prayer (1.2.2.1-1) unstable; urgency=low
+
+ * New upstream release featuring XHTML templates and fixes to various
+ bugs created by the reorganisation.
+ - Drop accountd_makefile_typo.patch; fixed upstream.
+ * makefile_install_config.patch: Changes to the default config:
+ - Disable SSL session caching.
+ - Clean out "direct connection stuff". Remove lock_dir since we use
+ SysV semaphores.
+ * Point login_prefix_path, motd_path, and login_suffix_path towards
+ /etc/prayer.
+ * Change postponed-mail and sent-mail to Drafts and Sent.
+ * Improve SSL/TLS configuration:
+ * makefile_install_config.patch: Point ssl_cert_file and
+ ssl_privatekey_file to /etc/ssl/*/ssl-cert-snakeoil.*.
+ + Add dependency on ssl-cert (>= 1.0.11).
+ + prayer.postinst: Add prayer to group ssl-cert on fresh install or
+ when upgrading from versions prior to this one.
+ * welcome_is_template.patch (new): Although the welcome screen is now a
+ template among others, cmd_welcome.c still tried to read the file
+ specified by welcome_path (welcome.html by default) and wouldn't show
+ the welcome screen if the option was unset or the file couldn't be
+ read. This patch removes that check as well as the welcome_path and
+ help_path options from prayer.cf.
+ * No longer install welcome.html (see above) and motd.html (no real
+ content) in /etc/prayer. Install login_prefix.html, login_suffix.html,
+ and motd.html (the versions found in files/etc.hermes in the
+ distribution tarball) in /usr/share/doc/prayer/examples instead.
+ * Do not install prayer-chroot (too experimental, hardcoded chroot path)
+ or prayer-sem-prune (does nothing that ipcrm cannot do).
+ * templates_fallback_to_compiled.patch (new): If the
+ template_use_compiled option is false, nevertheless use compiled-in
+ templates in template_expand.c if the requested template cannot be
+ found on disk. Change default template_path to /etc/prayer/templates.
+ Install said directory as well as subdirectories for available
+ template sets.
+ * Update and improve README.Debian.
+ * Add logrotate dependency.
+ * makefile_install_config.patch: Remove call to install.sh from
+ files/Makefile and replace it with single tar pipeline; thus
+ install.sh no longer needs to be patched.
+ * remove_old_db_logfiles_from_prayer-ssl-prune.patch (new): Patch
+ myarchive() in lib/mydb_db3.c so that it only deletes obsolete
+ transaction logs if dirname = NULL, then call it (via DB->archive())
+ from ssl_prune_sessions() in lib/ssl.c.
+ - prayer-db-prune thus unnecessary.
+ * template_find_bug.patch (new): Fix segfault in template_find() when
+ template_set specifies a non-existing set. Also update default set.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 24 Jun 2008 01:34:14 +0200
+
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.2.1-1/debian/prayer.install
===================================================================
--- 1.2.2.1-1/debian/prayer.install (nonexistent)
+++ 1.2.2.1-1/debian/prayer.install (revision 180)
@@ -0,0 +1,5 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
Index: 1.2.2.1-1/debian/README.Debian
===================================================================
--- 1.2.2.1-1/debian/README.Debian (nonexistent)
+++ 1.2.2.1-1/debian/README.Debian (revision 180)
@@ -0,0 +1,103 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.6, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to the default configuration as detailed below, or fix bugs. You can
+always find information about patches in changelog.Debian.gz.
+
+To enable Prayer, you must edit /etc/default/prayer and change
+ENABLED=0 to ENABLED=1. But before you do that you should go through
+/etc/prayer/prayer.cf and adapt it to your needs. In particular, if
+you already run a web server on this machine you need to change
+use_http_port (and use_https_port) to something else.
+
+Debian-specific configuration defaults:
+
+ * Static files (templates, icons, CSS files) are installed in
+ /usr/share/prayer in accordance with policy. The prefix option
+ points there, while var_prefix, the location of pid files
+ (pid_dir), sockets (socket_dir), and the SSL session cache
+ (ssl_session_dir), is /var/run/prayer and subdirectories. Log
+ files are written to /var/log/prayer (log_dir) and /tmp is used to
+ temporarily store uploaded attachments (tmp_dir).
+
+ * Prayer by default runs as user prayer (created on install) and
+ group nogroup. The prayer user is added to the ssl-cert group on
+ installation, so that it can access keys in /etc/ssl/private.
+
+ * ssl_cert_file and ssl_privatekey_file point to the "snake oil"
+ certificate and key created by the ssl-cert package, so that you
+ only have to uncomment use_https_port to enable encryption. For a
+ production server you should of course install a real certificate.
+
+ * Support for SSL session caching is compiled in, but caching is
+ disabled by default, as it probably doesn't make that much a
+ difference on modern hardware. To enable it, uncomment the
+ ssl_session_timeout setting in prayer.cf. You should also arrange
+ for prayer-ssl-prune to be run periodically, for example by placing
+ a symlink to it in /etc/cron.hourly or /etc/cron.daily.
+
+ * The default IMAP folders for sent mail (sent_mail_folder) and
+ drafts (postponed_folder) are "Sent" and "Drafts", respectively,
+ the default for Mozilla Thunderbird and others (although many IMAP
+ clients unfortunately use localized folder names).
+
+ * socket_split_dir is off by default to reduce complexity when
+ testing. You will probably only need it if you have lots of
+ simultaneous users and a file system without directory indexes.
+
+Customizing templates:
+
+To use customized templates you must set template_use_compiled to
+FALSE in prayer.cf. Then copy the template (.t file) you wish to
+customize from /usr/share/prayer/templates to the corresponding
+location under /etc/prayer/templates and edit it there. Prayer will
+still use the compiled-in versions of the remaining templates, thanks
+to a small patch.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ * Prayer doesn't handle signals gracefully yet, which means that it
+ will leave SysV semaphores lying around when it is stopped or
+ restarted. You can use ipcs to find them and ipcrm to delete them.
+
+ * While Prayer does its best to remove potentially harmful tags from
+ HTML email, it doesn't try to convert it to XHTML. This means that
+ Prayer's output is conformant XHTML only when not viewing HTML
+ mail.
+
+ * Prayer deletes mail the IMAP way, which is by marking messages as
+ deleted and leaving them in their folders. Prayer always lists
+ deleted messages (with a special icon) and expunges (deletes
+ permanently) deleted messages only when explicitly requested.
+ Before that they can be undeleted at any time by "unmarking" them.
+
+ Most mail client software deletes mail by moving it to a "trash"
+ folder, which in reality means creating a copy in the trash folder
+ and marking the original deleted. Messages that are marked as
+ deleted are usually never listed, cannot be unmarked, and are often
+ automatically expunged. These two approaches are rather
+ incompatible, but some software can take either.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 24 Jun 2008 00:11:04 +0200
+
Index: 1.2.2.1-1/debian/control
===================================================================
--- 1.2.2.1-1/debian/control (nonexistent)
+++ 1.2.2.1-1/debian/control (revision 180)
@@ -0,0 +1,54 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007-dev, libldap2-dev,
+ zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, ssl-cert (>= 1.0.11),
+ logrotate
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.2.1-1/debian/prayer.dirs
===================================================================
--- 1.2.2.1-1/debian/prayer.dirs (nonexistent)
+++ 1.2.2.1-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,4 @@
+var/run/prayer
+var/log/prayer
+etc/prayer/templates/xhtml_transitional
+etc/prayer/templates/xhtml_strict
Index: 1.2.2.1-1/debian/prayer.examples
===================================================================
--- 1.2.2.1-1/debian/prayer.examples (nonexistent)
+++ 1.2.2.1-1/debian/prayer.examples (revision 180)
@@ -0,0 +1,3 @@
+files/etc.hermes/login_prefix.html
+files/etc.hermes/login_suffix.html
+files/etc.hermes/motd.html
Index: 1.2.2.1-1/debian/prayer.postinst
===================================================================
--- 1.2.2.1-1/debian/prayer.postinst (nonexistent)
+++ 1.2.2.1-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,56 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ # Add prayer user to the ssl-cert group on upgrades or fresh installs
+ if dpkg --compare-versions "$2" lt "1.2.2.1-1"; then
+ if getent group ssl-cert >/dev/null; then
+ adduser --quiet prayer ssl-cert
+ fi
+ fi
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.2.1-1/debian/Config
===================================================================
--- 1.2.2.1-1/debian/Config (nonexistent)
+++ 1.2.2.1-1/debian/Config (revision 180)
@@ -0,0 +1,153 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CPPFLAGS and LDFLAGS if passed in)
+ifdef CPPFLAGS
+ BASECFLAGS = $(CPPFLAGS)
+else
+ BASECFLAGS = -Wall -g -O2
+endif
+ifdef INCLUDES
+ BASECFLAGS += $(INCLUDES)
+endif
+ifdef LDFLAGS
+ BASELDFLAGS = $(LDFLAGS)
+else
+ BASELDFLAGS = -g
+endif
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE = -DLDAP_DEPRECATED
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.2.1-1/debian/copyright
===================================================================
--- 1.2.2.1-1/debian/copyright (nonexistent)
+++ 1.2.2.1-1/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.2.1-1/debian/prayer.docs
===================================================================
--- 1.2.2.1-1/debian/prayer.docs (nonexistent)
+++ 1.2.2.1-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.2.1-1/debian/prayer.postrm
===================================================================
--- 1.2.2.1-1/debian/prayer.postrm (nonexistent)
+++ 1.2.2.1-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.2.1-1/debian/rules
===================================================================
--- 1.2.2.1-1/debian/rules (nonexistent)
+++ 1.2.2.1-1/debian/rules (revision 180)
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
/1.2.2.1-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.2.1-1/debian/prayer-accountd.init
===================================================================
--- 1.2.2.1-1/debian/prayer-accountd.init (nonexistent)
+++ 1.2.2.1-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-1/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.2.1-1/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.2.1-1/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-1/debian/prayer.lintian-overrides
===================================================================
--- 1.2.2.1-1/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.2.1-1/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.2.1-1/debian/compat
===================================================================
--- 1.2.2.1-1/debian/compat (nonexistent)
+++ 1.2.2.1-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.2.1-1/debian/prayer.default
===================================================================
--- 1.2.2.1-1/debian/prayer.default (nonexistent)
+++ 1.2.2.1-1/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.2.1-1/debian/prayer-accountd.docs
===================================================================
--- 1.2.2.1-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.2.1-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.2.1-1/debian/prayer-session.8.dbk
===================================================================
--- 1.2.2.1-1/debian/prayer-session.8.dbk (nonexistent)
+++ 1.2.2.1-1/debian/prayer-session.8.dbk (revision 180)
@@ -0,0 +1,158 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer-session">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>...</cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--debug</option>
+ </term>
+ <listitem>
+ <para>Enable debugging.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.2.2.1-1/debian/prayer.logrotate
===================================================================
--- 1.2.2.1-1/debian/prayer.logrotate (nonexistent)
+++ 1.2.2.1-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.2.1-1/debian/prayer.init
===================================================================
--- 1.2.2.1-1/debian/prayer.init (nonexistent)
+++ 1.2.2.1-1/debian/prayer.init (revision 180)
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.2.1-1/debian/prayer-accountd.install
===================================================================
--- 1.2.2.1-1/debian/prayer-accountd.install (nonexistent)
+++ 1.2.2.1-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.2.1-1/debian/watch
===================================================================
--- 1.2.2.1-1/debian/watch (nonexistent)
+++ 1.2.2.1-1/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.2.1-1/debian/prayer.8.dbk
===================================================================
--- 1.2.2.1-1/debian/prayer.8.dbk (nonexistent)
+++ 1.2.2.1-1/debian/prayer.8.dbk (revision 180)
@@ -0,0 +1,178 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>... -- <arg><option><replaceable>PRAYER-SESSION-OPTION</replaceable></option></arg> ...
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-prefork</option>
+ </term>
+ <listitem>
+ <para>Run as simple fork()/exec() daemon.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-session</option>
+ </term>
+ <listitem>
+ <para>Don't start up prayer-session server.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--</option>
+ </term>
+ <listitem>
+ <para>End of prayer options: remaining options will be passed to prayer-session server process.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer-session(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.2.2.1-1/debian
===================================================================
--- 1.2.2.1-1/debian (nonexistent)
+++ 1.2.2.1-1/debian (revision 180)
/1.2.2.1-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.2.0-1/debian/patches/accountd_makefile_typo.patch
===================================================================
--- 1.2.0-1/debian/patches/accountd_makefile_typo.patch (nonexistent)
+++ 1.2.0-1/debian/patches/accountd_makefile_typo.patch (revision 180)
@@ -0,0 +1,11 @@
+--- a/accountd/Makefile
++++ b/accountd/Makefile
+@@ -60,7 +60,7 @@ accountd.o: accountd.c *.h Makefile
+ $(CC) $(CFLAGS) -c \
+ -DACCOUNTD_CONFIG_FILE=\"$(ACCOUNTD_CONFIG_FILE)\" $<
+
+-authenicate.o: authenicate.c *.h Makefile
++authenticate.o: authenticate.c *.h Makefile
+ $(CC) $(CFLAGS) -c $(ACCOUNTD_PAM_DEFS) $<
+
+ clean:
Index: 1.2.0-1/debian/patches/series
===================================================================
--- 1.2.0-1/debian/patches/series (nonexistent)
+++ 1.2.0-1/debian/patches/series (revision 180)
@@ -0,0 +1,3 @@
+makefile_install_config.patch
+repair_ssl_session_db_on_version_mismatch.patch
+accountd_makefile_typo.patch
Index: 1.2.0-1/debian/patches/repair_ssl_session_db_on_version_mismatch.patch
===================================================================
--- 1.2.0-1/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (nonexistent)
+++ 1.2.0-1/debian/patches/repair_ssl_session_db_on_version_mismatch.patch (revision 180)
@@ -0,0 +1,20 @@
+--- a/lib/mydb_db3.c
++++ b/lib/mydb_db3.c
+@@ -208,7 +208,7 @@ static int init(const char *dbdir, int m
+ if (!(r = myinit(dbdir, myflags)))
+ return(0);
+
+- if (r != ENOENT) {
++ if (r != ENOENT && r != DB_VERSION_MISMATCH) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
+ }
+@@ -217,7 +217,7 @@ static int init(const char *dbdir, int m
+ /* DPC 24/03/2002. DB_CREATE leaks 12 MBytes into dbenv.
+ * Workaround: close down dbenv, reopen after backing files created */
+
+- r = myinit(dbdir, myflags|MYDB_CREATE);
++ r = myinit(dbdir, myflags|MYDB_CREATE|MYDB_RECOVER);
+ if (r) {
+ log_panic("DBERROR: dbenv->open '%s' failed: %s", dbdir, db_strerror(r));
+ return MYDB_IOERROR;
Index: 1.2.0-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.2.0-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.2.0-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,186 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -65,26 +65,29 @@ install-aconfig:
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${BROOT}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${BROOT}/etc/prayer
+
+ install:
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BROOT}/etc/prayer
++
+ PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
+ RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+ RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+ PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+ PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+ PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
++ BIN_DIR=$(BROOT)$(BIN_DIR) INSTALL=$(INSTALL) \
+ ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++# if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
+ if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+ if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++ if [ ! -f $(BROOT)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(BROOT)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+--- a/files/install.sh
++++ b/files/install.sh
+@@ -4,77 +4,6 @@
+
+ PATH=/bin:/sbin/:/usr/bin:/usr/sbin
+
+-error=0
+-
+-if [ "x$PREFIX" = "x" ]; then
+- echo 'PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$VAR_PREFIX" = "x" ]; then
+- echo 'VAR_PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_USER" = "x" ]; then
+- echo 'RO_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_GROUP" = "x" ]; then
+- echo 'RO_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_USER" = "x" ]; then
+- echo 'RW_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_GROUP" = "x" ]; then
+- echo 'RW_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$PUBLIC_DIR" = "x" ]; then
+- echo 'PUBLIC_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$PRIVATE_DIR" = "x" ]; then
+- echo 'PRIVATE_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$BIN_DIR" = "x" ]; then
+- echo 'BIN_DIR not defined'
+- error=1
+-fi
+-
+-if [ $error != 0 ]; then
+- exit 1
+-fi
+-
+-if [ ! -d ${VAR_PREFIX} -a `whoami` = "root" ]; then
+- ${INSTALL} -d -o ${RW_USER} -g ${RW_GROUP} -m ${PRIVATE_DIR} ${VAR_PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX}/etc ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}/etc
+-fi
+-
+-if [ ! -d ${PREFIX}/certs ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PRIVATE_DIR} ${PREFIX}/certs
+-fi
+-
+-if [ ! -d ${BIN_DIR} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BIN_DIR}
+-fi
+-
+ for i in icons
+ do
+ if [ -d "${PREFIX}/${i}" ]; then
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -428,10 +428,10 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++lock_dir = "/var/lock"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+@@ -439,7 +439,7 @@ socket_dir = "$var_prefix/socke
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+-socket_split_dir = TRUE
++socket_split_dir = FALSE
+
+ # Name of Unix domain socket (in $socket_dir) used for initial handshake
+ # between prayer and prayer-session processes when a user logs in
+@@ -450,10 +450,10 @@ ssl_session_dir = "$var_prefix/ssl_s
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "$var_prefix"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -621,7 +621,7 @@ sent_mail_folder = "sent-mail"
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
Index: 1.2.0-1/debian/patches/sighandling.patch
===================================================================
--- 1.2.0-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.2.0-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.2.0-1/debian/changelog
===================================================================
--- 1.2.0-1/debian/changelog (nonexistent)
+++ 1.2.0-1/debian/changelog (revision 180)
@@ -0,0 +1,76 @@
+prayer (1.2.0-1) unstable; urgency=low
+
+ * New upstream release featuring a major code reorganisation and a new
+ template system.
+ - Drop obsolete folder_list_cosmetics.patch and includes.patch.
+ - Note: SSL support has been removed from prayer-accountd for now.
+ * Changed defaults (manual intervention may be needed):
+ - Let prayer-accountd.pid reside in /var/run; letting the two packages
+ share /var/run/prayer caused too much trouble.
+ - prayer.cf (makefile_install_config.patch and debian/Config):
+ var_prefix set to /var/run/prayer and referred to in other
+ settings. socket_split_dir disabled by default and default sockets
+ directory changed to /var/run/prayer/sockets.
+ * debian/control:
+ + Build-depend on latest Berkley DB library (libdb-dev).
+ + Add Homepage field.
+ * repair_ssl_session_db_on_version_mismatch.patch: Recreate session DB
+ environment when upgrading from a version of Prayer that used an older
+ BDB library.
+ * prayer.postinst: Set HOME of prayer user to /var/run/prayer.
+ * prayer.postrm: Simply remove /var/run/prayer (since accountd doesn't use it)
+ on remove or disappear and correctly remove statoverrides (Closes: #483176).
+ Also check that deluser exists; it may be gone at purge time.
+ * Package build details:
+ - Reduce makefile_install_config.patch by not changing BROOT into DESTDIR.
+ - Override CDBS overriding CFLAGS.
+ * debian/patches/accountd_makefile_typo.patch: Fix typo that caused PAM
+ not to be used.
+
+ -- Magnus Holmgren <holmgren@debian.org> Sat, 31 May 2008 19:28:21 +0200
+
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.2.0-1/debian/Config
===================================================================
--- 1.2.0-1/debian/Config (nonexistent)
+++ 1.2.0-1/debian/Config (revision 180)
@@ -0,0 +1,153 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.12 2008/05/21 13:25:13 dpc22 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = false # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC (use CPPFLAGS and LDFLAGS if passed in)
+ifdef CPPFLAGS
+ BASECFLAGS = $(CPPFLAGS)
+else
+ BASECFLAGS = -Wall -g -O2
+endif
+ifdef INCLUDES
+ BASECFLAGS += $(INCLUDES)
+endif
+ifdef LDFLAGS
+ BASELDFLAGS = $(LDFLAGS)
+else
+ BASELDFLAGS = -g
+endif
+
+# Minimal libraries needed by Linux
+BASE_LIBS = -lcrypt
+# FreeBSD needs some extra libraries:
+# BASE_LIBS = -lcrypt -liconv -lutil
+# Solaris needs even more libararies:
+# BASE_LIBS = -lcrypt -lxnet -lnsl -lsocket
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE = -DLDAP_DEPRECATED
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/run/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.2.0-1/debian/copyright
===================================================================
--- 1.2.0-1/debian/copyright (nonexistent)
+++ 1.2.0-1/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.2.0-1/debian/prayer.docs
===================================================================
--- 1.2.0-1/debian/prayer.docs (nonexistent)
+++ 1.2.0-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/TEMPLATES
Index: 1.2.0-1/debian/prayer.postrm
===================================================================
--- 1.2.0-1/debian/prayer.postrm (nonexistent)
+++ 1.2.0-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+ ;;
+
+ remove|disappear)
+ rm -rf /var/run/prayer
+ ;;
+
+ purge)
+ rm -rf /var/log/prayer
+ if dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/log/prayer
+ fi
+ if dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1; then
+ dpkg-statoverride --remove /var/run/prayer
+ fi
+ if [ -x /usr/sbin/deluser ]; then
+ deluser --system --quiet prayer || true
+ fi
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.2.0-1/debian/prayer.postinst
===================================================================
--- 1.2.0-1/debian/prayer.postinst (nonexistent)
+++ 1.2.0-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,49 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home --home /var/run/prayer prayer
+
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.2.0-1/debian/control
===================================================================
--- 1.2.0-1/debian/control (nonexistent)
+++ 1.2.0-1/debian/control (revision 180)
@@ -0,0 +1,53 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007-dev, libldap2-dev,
+ zlib1g-dev, libssl-dev (>= 0.9.6), libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+Homepage: http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.2.0-1/debian/rules
===================================================================
--- 1.2.0-1/debian/rules (nonexistent)
+++ 1.2.0-1/debian/rules (revision 180)
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) $(MAKE)
+DEB_MAKE_INSTALL_TARGET = install BROOT=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
/1.2.0-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.2.0-1/debian/prayer-accountd.init
===================================================================
--- 1.2.0-1/debian/prayer-accountd.init (nonexistent)
+++ 1.2.0-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer-accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.0-1/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.2.0-1/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.2.0-1/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.2.0-1/debian/prayer.lintian-overrides
===================================================================
--- 1.2.0-1/debian/prayer.lintian-overrides (nonexistent)
+++ 1.2.0-1/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.2.0-1/debian/README.Debian
===================================================================
--- 1.2.0-1/debian/README.Debian (nonexistent)
+++ 1.2.0-1/debian/README.Debian (revision 180)
@@ -0,0 +1,31 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.3, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to default configuration regarding directory structure, and minor
+cosmetic changes to the folder list.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 13 May 2008 22:27:11 +0200
+
Index: 1.2.0-1/debian/compat
===================================================================
--- 1.2.0-1/debian/compat (nonexistent)
+++ 1.2.0-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.2.0-1/debian/prayer.default
===================================================================
--- 1.2.0-1/debian/prayer.default (nonexistent)
+++ 1.2.0-1/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.2.0-1/debian/prayer-accountd.docs
===================================================================
--- 1.2.0-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.2.0-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.2.0-1/debian/prayer-session.8.dbk
===================================================================
--- 1.2.0-1/debian/prayer-session.8.dbk (nonexistent)
+++ 1.2.0-1/debian/prayer-session.8.dbk (revision 180)
@@ -0,0 +1,158 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer-session">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>...</cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--debug</option>
+ </term>
+ <listitem>
+ <para>Enable debugging.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.2.0-1/debian/prayer.logrotate
===================================================================
--- 1.2.0-1/debian/prayer.logrotate (nonexistent)
+++ 1.2.0-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.2.0-1/debian/prayer.dirs
===================================================================
--- 1.2.0-1/debian/prayer.dirs (nonexistent)
+++ 1.2.0-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,2 @@
+var/run/prayer
+var/log/prayer
Index: 1.2.0-1/debian/prayer.init
===================================================================
--- 1.2.0-1/debian/prayer.init (nonexistent)
+++ 1.2.0-1/debian/prayer.init (revision 180)
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.2.0-1/debian/prayer-accountd.install
===================================================================
--- 1.2.0-1/debian/prayer-accountd.install (nonexistent)
+++ 1.2.0-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.2.0-1/debian/watch
===================================================================
--- 1.2.0-1/debian/watch (nonexistent)
+++ 1.2.0-1/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.2.0-1/debian/prayer.8.dbk
===================================================================
--- 1.2.0-1/debian/prayer.8.dbk (nonexistent)
+++ 1.2.0-1/debian/prayer.8.dbk (revision 180)
@@ -0,0 +1,178 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>... -- <arg><option><replaceable>PRAYER-SESSION-OPTION</replaceable></option></arg> ...
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-prefork</option>
+ </term>
+ <listitem>
+ <para>Run as simple fork()/exec() daemon.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-session</option>
+ </term>
+ <listitem>
+ <para>Don't start up prayer-session server.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--</option>
+ </term>
+ <listitem>
+ <para>End of prayer options: remaining options will be passed to prayer-session server process.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer-session(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.2.0-1/debian/prayer.install
===================================================================
--- 1.2.0-1/debian/prayer.install (nonexistent)
+++ 1.2.0-1/debian/prayer.install (revision 180)
@@ -0,0 +1,10 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-chroot
+usr/sbin/prayer-db-prune
+usr/sbin/prayer-sem-prune
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
+etc/prayer/motd.html
+etc/prayer/welcome.html
Index: 1.2.0-1/debian
===================================================================
--- 1.2.0-1/debian (nonexistent)
+++ 1.2.0-1/debian (revision 180)
/1.2.0-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.1.0-2/debian/control
===================================================================
--- 1.1.0-2/debian/control (nonexistent)
+++ 1.1.0-2/debian/control (revision 180)
@@ -0,0 +1,52 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs, debhelper (>= 5), quilt,
+ libc-client2007-dev, libldap2-dev,
+ zlib1g-dev, libssl-dev (>= 0.9.6), libdb4.3-dev | libdb-dev,
+Standards-Version: 3.7.3
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.1.0-2/debian/changelog
===================================================================
--- 1.1.0-2/debian/changelog (nonexistent)
+++ 1.1.0-2/debian/changelog (revision 180)
@@ -0,0 +1,45 @@
+prayer (1.1.0-2) unstable; urgency=low
+
+ * Define LDAP_DEPRECATED so that the deprecated LDAP interfaces can be
+ used.
+ * makefile_install_config.patch: Modify prayer/Makefile so that the
+ above definition isn't lost if CFLAGS is overridden.
+ * Improve prayer.postrm to clean /var/run/prayer on removal and
+ disappearence.
+ * Use dpkg-override to allow the administrator to change mode of
+ /var/run/prayer and /var/log/prayer.
+ * Add postinst and postrm scripts for prayer-accountd.
+ * makefile_install_config.patch: Set authtype = pam in accountd.cf so
+ that accountd will start.
+ * Bump Standards-Version to 3.7.3. No changes necessary.
+ * Override Lintian warnings about GPL code linked with OpenSSL. Special
+ exception has been granted.
+ * Don't require cdbs 0.4.27-1. Oldstable has 0.4.28-1.
+
+ -- Magnus Holmgren <holmgren@debian.org> Thu, 15 May 2008 22:47:14 +0200
+
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.1.0-2/debian/prayer-accountd.lintian-overrides
===================================================================
--- 1.1.0-2/debian/prayer-accountd.lintian-overrides (nonexistent)
+++ 1.1.0-2/debian/prayer-accountd.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer-accountd: possible-gpl-code-linked-with-openssl
Index: 1.1.0-2/debian/prayer.lintian-overrides
===================================================================
--- 1.1.0-2/debian/prayer.lintian-overrides (nonexistent)
+++ 1.1.0-2/debian/prayer.lintian-overrides (revision 180)
@@ -0,0 +1 @@
+prayer: possible-gpl-code-linked-with-openssl
Index: 1.1.0-2/debian/prayer.postrm
===================================================================
--- 1.1.0-2/debian/prayer.postrm (nonexistent)
+++ 1.1.0-2/debian/prayer.postrm (revision 180)
@@ -0,0 +1,49 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge)
+ deluser --system --quiet prayer || true
+ rm -rf /var/log/prayer
+ dpkg-statoverride --remove /var/log/prayer
+ [ -e /var/run/prayer/ ] || dpkg-statoverride --remove /var/run/prayer
+ ;;
+
+ remove|disappear)
+ find /var/run/prayer/ -mindepth 1 \( -type s -o -name ssl_scache -o -empty \) -delete
+
+ ;;
+
+ upgrade|abort-install|failed-upgrade|abort-upgrade)
+
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.1.0-2/debian/patches/makefile_install_config.patch
===================================================================
--- 1.1.0-2/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.1.0-2/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,253 @@
+--- a/files/etc/prayer-accountd.cf
++++ b/files/etc/prayer-accountd.cf
+@@ -8,6 +8,10 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
++authtype = pam
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- a/files/Makefile
++++ b/files/Makefile
+@@ -53,41 +53,44 @@ distclean:
+ install-cert:
+ if [ -f certs/prayer.pem ]; then \
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) \
+- -m $(PRIVATE_FILE) certs/prayer.pem ${BROOT}${PREFIX}/certs; \
++ -m $(PRIVATE_FILE) certs/prayer.pem ${DESTDIR}${PREFIX}/certs; \
+ fi
+
+ install-config: etc/prayer.cf
+ $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/prayer.cf ${BROOT}${PRAYER_CONFIG_FILE}
++ etc/prayer.cf ${DESTDIR}${PRAYER_CONFIG_FILE}
+
+ install-aconfig:
+ $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/prayer-accountd.cf ${BROOT}${ACCOUNTD_CONFIG_FILE}
++ etc/prayer-accountd.cf ${DESTDIR}${ACCOUNTD_CONFIG_FILE}
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${DESTDIR}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${DESTDIR}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${DESTDIR}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${DESTDIR}/etc/prayer
++
++ PREFIX=$(DESTDIR)$(PREFIX) VAR_PREFIX=$(DESTDIR)$(VAR_PREFIX) \
+ RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+ RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+ PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+ PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+ PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
++ BIN_DIR=$(DESTDIR)$(BIN_DIR) INSTALL=$(INSTALL) \
+ ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
+- if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+- if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++# if [ ! -f $(DESTDIR)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ if [ ! -f $(DESTDIR)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
++ if [ ! -f $(DESTDIR)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
++ if [ ! -f $(DESTDIR)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(DESTDIR)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+- ./init.d/prayer $(BROOT)/etc/rc.d/init.d/prayer
++ ./init.d/prayer $(DESTDIR)/etc/rc.d/init.d/prayer
+ #chkconfig prayer --level 2345 on
+--- a/files/install.sh
++++ b/files/install.sh
+@@ -4,77 +4,6 @@
+
+ PATH=/bin:/sbin/:/usr/bin:/usr/sbin
+
+-error=0
+-
+-if [ "x$PREFIX" = "x" ]; then
+- echo 'PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$VAR_PREFIX" = "x" ]; then
+- echo 'VAR_PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_USER" = "x" ]; then
+- echo 'RO_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_GROUP" = "x" ]; then
+- echo 'RO_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_USER" = "x" ]; then
+- echo 'RW_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_GROUP" = "x" ]; then
+- echo 'RW_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$PUBLIC_DIR" = "x" ]; then
+- echo 'PUBLIC_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$PRIVATE_DIR" = "x" ]; then
+- echo 'PRIVATE_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$BIN_DIR" = "x" ]; then
+- echo 'BIN_DIR not defined'
+- error=1
+-fi
+-
+-if [ $error != 0 ]; then
+- exit 1
+-fi
+-
+-if [ ! -d ${VAR_PREFIX} -a `whoami` = "root" ]; then
+- ${INSTALL} -d -o ${RW_USER} -g ${RW_GROUP} -m ${PRIVATE_DIR} ${VAR_PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX}/etc ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}/etc
+-fi
+-
+-if [ ! -d ${PREFIX}/certs ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PRIVATE_DIR} ${PREFIX}/certs
+-fi
+-
+-if [ ! -d ${BIN_DIR} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BIN_DIR}
+-fi
+-
+ for i in help icons
+ do
+ if [ -d "${PREFIX}/${i}" ]; then
+--- a/files/etc/prayer.cf.SRC
++++ b/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -428,14 +428,14 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++lock_dir = "/var/lock"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+-socket_dir = "$var_prefix/sockets"
++socket_dir = "/var/run/prayer"
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+@@ -446,14 +446,14 @@ socket_split_dir = TRUE
+ init_socket_name = init
+
+ # $ssl_session_dir is location for SSL session cache
+-ssl_session_dir = "$var_prefix/ssl_scache"
++ssl_session_dir = "/var/run/prayer/ssl_scache"
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "/var/run/prayer"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -614,7 +614,7 @@ sent_mail_folder = "sent-mail"
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- a/prayer/Makefile
++++ b/prayer/Makefile
+@@ -102,8 +102,9 @@ ifeq ($(strip $(CCLIENT_KERB_ENABLE)), t
+ SESSION_LIBS += $(KERB_LIBS)
+ endif
+
+-CFLAGS = $(BASECFLAGS) $(COMMON_SSL_INCLUDE) $(CCLIENT_INCLUDE)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS =
++override CFLAGS += $(BASECFLAGS) $(COMMON_SSL_INCLUDE) $(CCLIENT_INCLUDE)
++LDFLAGS = $(BASELDFLAGS) -Wl,--as-needed
+
+ SHARED_OBJS = \
+ pool.o list.o assoc.o memblock.o buffer.o string.o config.o user_agent.o \
+@@ -175,21 +176,21 @@ clean:
+
+ install: all
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
+- $(BROOT)$(BIN_DIR)
++ $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer $(BROOT)$(BIN_DIR)
++ prayer $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-chroot $(BROOT)$(BIN_DIR)
++ prayer-chroot $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-session $(BROOT)$(BIN_DIR)
++ prayer-session $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-ssl-prune $(BROOT)$(BIN_DIR)
++ prayer-ssl-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-sem-prune $(BROOT)$(BIN_DIR)
++ prayer-sem-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-db-prune $(BROOT)$(BIN_DIR)
++ prayer-db-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-cyclog $(BROOT)$(BIN_DIR)
++ prayer-cyclog $(DESTDIR)$(BIN_DIR)
+
+ prayer: $(PRAYER_OBJS) prayer_main.o
+ $(CC) $(LDFLAGS) -o prayer $(PRAYER_OBJS) prayer_main.o $(PRAYER_LIBS)
Index: 1.1.0-2/debian/patches/series
===================================================================
--- 1.1.0-2/debian/patches/series (nonexistent)
+++ 1.1.0-2/debian/patches/series (revision 180)
@@ -0,0 +1,3 @@
+folder_list_cosmetics.patch
+includes.patch
+makefile_install_config.patch
Index: 1.1.0-2/debian/patches/folder_list_cosmetics.patch
===================================================================
--- 1.1.0-2/debian/patches/folder_list_cosmetics.patch (nonexistent)
+++ 1.1.0-2/debian/patches/folder_list_cosmetics.patch (revision 180)
@@ -0,0 +1,30 @@
+--- a/prayer/cmd_folders.c
++++ b/prayer/cmd_folders.c
+@@ -45,10 +45,10 @@ generate_folder_line(struct session *ses
+ html_session_bprintf(session, b, "<a href=\"", "\">",
+ "folders/toggle/%s", name);
+ if (fi->expanded)
+- html_icon(session, b, "down.gif", "[Collapse]");
++ html_icon(session, b, "down.gif", "[-]&nbsp;");
+ else
+- html_icon(session, b, "right.gif", "[Expand]");
+- bputs(b, "</a>&nbsp;");
++ html_icon(session, b, "right.gif", "[+]&nbsp;");
++ bputs(b, "</a>");
+ } else
+ html_icon(session, b, "blank.gif", "&nbsp;&nbsp;&nbsp;&nbsp;");
+
+--- a/prayer/cmd_favourites.c
++++ b/prayer/cmd_favourites.c
+@@ -77,9 +77,9 @@ generate_folder_line(struct session *ses
+ html_session_bprintf(session, b, "<a href=\"", "\">",
+ "favourites/toggle/%s", name);
+ if (fi->expanded)
+- html_icon(session, b, "down.gif", "[Collapse]");
++ html_icon(session, b, "down.gif", "[-]&nbsp;");
+ else
+- html_icon(session, b, "right.gif", "[Expand]");
++ html_icon(session, b, "right.gif", "[+]&nbsp;");
+ bputs(b, "</a>");
+ } else
+ html_icon(session, b, "blank.gif", "&nbsp;&nbsp;&nbsp;&nbsp;");
Index: 1.1.0-2/debian/patches/includes.patch
===================================================================
--- 1.1.0-2/debian/patches/includes.patch (nonexistent)
+++ 1.1.0-2/debian/patches/includes.patch (revision 180)
@@ -0,0 +1,22 @@
+--- prayer-1.1.0.orig/prayer/prayer_session.h
++++ prayer-1.1.0/prayer/prayer_session.h
+@@ -27,7 +27,7 @@
+
+ extern int errno; /* just in case */
+
+-#include "c-client.h"
++#include <c-client.h>
+
+ #define PRAYER_FULL_HDRS
+ #include "prayer_shared.h"
+--- prayer-1.1.0.orig/prayer/cdb.c
++++ prayer-1.1.0/prayer/cdb.c
+@@ -63,7 +63,7 @@
+ #include <unistd.h>
+ #include <sys/stat.h>
+
+-#include "mail.h"
++#include "common.h"
+ #include "cdb.h"
+
+ #define CDB_HASH_SPLIT 256 /* num pieces the hash table is split into */
Index: 1.1.0-2/debian/patches/sighandling.patch
===================================================================
--- 1.1.0-2/debian/patches/sighandling.patch (nonexistent)
+++ 1.1.0-2/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.1.0-2/debian/prayer-accountd.postinst
===================================================================
--- 1.1.0-2/debian/prayer-accountd.postinst (nonexistent)
+++ 1.1.0-2/debian/prayer-accountd.postinst (revision 180)
@@ -0,0 +1,44 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.1.0-2/debian/prayer-accountd.postrm
===================================================================
--- 1.1.0-2/debian/prayer-accountd.postrm (nonexistent)
+++ 1.1.0-2/debian/prayer-accountd.postrm (revision 180)
@@ -0,0 +1,41 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge)
+ [ -e /var/run/prayer/ ] || dpkg-statoverride --remove /var/run/prayer
+ ;;
+
+ remove|disappear|upgrade|abort-install|failed-upgrade|abort-upgrade)
+
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.1.0-2/debian/prayer.postinst
===================================================================
--- 1.1.0-2/debian/prayer.postinst (nonexistent)
+++ 1.1.0-2/debian/prayer.postinst (revision 180)
@@ -0,0 +1,49 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home prayer
+
+ dpkg-statoverride --list /var/run/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer root 2750 /var/run/prayer
+
+ dpkg-statoverride --list /var/log/prayer >/dev/null 2>&1 \
+ || dpkg-statoverride --update --add prayer adm 2750 /var/log/prayer
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.1.0-2/debian/Config
===================================================================
--- 1.1.0-2/debian/Config (nonexistent)
+++ 1.1.0-2/debian/Config (revision 180)
@@ -0,0 +1,160 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.5 2006/04/05 12:35:35 fanf2 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+DIRECT_ENABLE = false # Experimental. Leave this switched off...
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = true # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC.
+#BASECFLAGS = -Wall -g
+#BASELDFLAGS = -g
+CFLAGS = -Wall -g -O2
+LDFLAGS = -g -O2
+BASE_LIBS = -lcrypt
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+#BASE_LIBS = -lcrypt -lxnet
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+#
+# Following works if we have a vanilla c-client installation at same level
+# as the prayer installation. Relies on a symbolic link ./prayer/c-client
+# which points to ../../imap/c-client. This just reduces the amount of
+# noise output on each line when building the package.
+#
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+#
+# Following works with the mail/cclient port from FreeBSD
+#
+#CCLIENT_INCLUDE = -I/usr/local/include/c-client
+#CCLIENT_LIBS = -L/usr/local/lib -lc-client4
+#
+# Complication:
+# The FreeBSD port uses PAM and optionally SSL if built WITH_SSL=yes.
+#
+#CCLIENT_SSL_ENABLE = true
+#CCLIENT_KERB_ENABLE = true
+
+############################################################################
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE = -DLDAP_DEPRECATED
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/lib/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.1.0-2/debian/copyright
===================================================================
--- 1.1.0-2/debian/copyright (nonexistent)
+++ 1.1.0-2/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.1.0-2/debian/README.Debian
===================================================================
--- 1.1.0-2/debian/README.Debian (nonexistent)
+++ 1.1.0-2/debian/README.Debian (revision 180)
@@ -0,0 +1,31 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.3, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to default configuration regarding directory structure, and minor
+cosmetic changes to the folder list.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 13 May 2008 22:27:11 +0200
+
Index: 1.1.0-2/debian/compat
===================================================================
--- 1.1.0-2/debian/compat (nonexistent)
+++ 1.1.0-2/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.1.0-2/debian/prayer.default
===================================================================
--- 1.1.0-2/debian/prayer.default (nonexistent)
+++ 1.1.0-2/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.1.0-2/debian/prayer-accountd.docs
===================================================================
--- 1.1.0-2/debian/prayer-accountd.docs (nonexistent)
+++ 1.1.0-2/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.1.0-2/debian/prayer-session.8.dbk
===================================================================
--- 1.1.0-2/debian/prayer-session.8.dbk (nonexistent)
+++ 1.1.0-2/debian/prayer-session.8.dbk (revision 180)
@@ -0,0 +1,158 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer-session">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>...</cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--debug</option>
+ </term>
+ <listitem>
+ <para>Enable debugging.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.1.0-2/debian/prayer.docs
===================================================================
--- 1.1.0-2/debian/prayer.docs (nonexistent)
+++ 1.1.0-2/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/URL_OPTIONS
Index: 1.1.0-2/debian/rules
===================================================================
--- 1.1.0-2/debian/rules (nonexistent)
+++ 1.1.0-2/debian/rules (revision 180)
@@ -0,0 +1,24 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+DEB_AUTO_CLEANUP_RCS := yes
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+#DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) make
+DEB_MAKE_INSTALL_TARGET = install DESTDIR=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_ALL = -XCVS
+DEB_DH_INSTALL_ARGS = -XCVS
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+
+clean::
+ rm -f Config
/1.1.0-2/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.1.0-2/debian/prayer-accountd.dirs
===================================================================
--- 1.1.0-2/debian/prayer-accountd.dirs (nonexistent)
+++ 1.1.0-2/debian/prayer-accountd.dirs (revision 180)
@@ -0,0 +1 @@
+/var/run/prayer
Index: 1.1.0-2/debian/prayer.logrotate
===================================================================
--- 1.1.0-2/debian/prayer.logrotate (nonexistent)
+++ 1.1.0-2/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.1.0-2/debian/prayer.dirs
===================================================================
--- 1.1.0-2/debian/prayer.dirs (nonexistent)
+++ 1.1.0-2/debian/prayer.dirs (revision 180)
@@ -0,0 +1,2 @@
+var/run/prayer
+var/log/prayer
Index: 1.1.0-2/debian/prayer-accountd.init
===================================================================
--- 1.1.0-2/debian/prayer-accountd.init (nonexistent)
+++ 1.1.0-2/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer/accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.1.0-2/debian/prayer.init
===================================================================
--- 1.1.0-2/debian/prayer.init (nonexistent)
+++ 1.1.0-2/debian/prayer.init (revision 180)
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.1.0-2/debian/prayer-accountd.install
===================================================================
--- 1.1.0-2/debian/prayer-accountd.install (nonexistent)
+++ 1.1.0-2/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.1.0-2/debian/watch
===================================================================
--- 1.1.0-2/debian/watch (nonexistent)
+++ 1.1.0-2/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.1.0-2/debian/prayer.8.dbk
===================================================================
--- 1.1.0-2/debian/prayer.8.dbk (nonexistent)
+++ 1.1.0-2/debian/prayer.8.dbk (revision 180)
@@ -0,0 +1,178 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>... -- <arg><option><replaceable>PRAYER-SESSION-OPTION</replaceable></option></arg> ...
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-prefork</option>
+ </term>
+ <listitem>
+ <para>Run as simple fork()/exec() daemon.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-session</option>
+ </term>
+ <listitem>
+ <para>Don't start up prayer-session server.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--</option>
+ </term>
+ <listitem>
+ <para>End of prayer options: remaining options will be passed to prayer-session server process.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer-session(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.1.0-2/debian/prayer.install
===================================================================
--- 1.1.0-2/debian/prayer.install (nonexistent)
+++ 1.1.0-2/debian/prayer.install (revision 180)
@@ -0,0 +1,10 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-chroot
+usr/sbin/prayer-db-prune
+usr/sbin/prayer-sem-prune
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
+etc/prayer/motd.html
+etc/prayer/welcome.html
Index: 1.1.0-2/debian
===================================================================
--- 1.1.0-2/debian (nonexistent)
+++ 1.1.0-2/debian (revision 180)
/1.1.0-2/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.1.0-1/debian/copyright
===================================================================
--- 1.1.0-1/debian/copyright (nonexistent)
+++ 1.1.0-1/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is © 2006-2008 Magnus Holmgren <holmgren@debian.org>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.1.0-1/debian/patches/series
===================================================================
--- 1.1.0-1/debian/patches/series (nonexistent)
+++ 1.1.0-1/debian/patches/series (revision 180)
@@ -0,0 +1,3 @@
+folder_list_cosmetics.patch
+includes.patch
+makefile_install_config.patch
Index: 1.1.0-1/debian/patches/folder_list_cosmetics.patch
===================================================================
--- 1.1.0-1/debian/patches/folder_list_cosmetics.patch (nonexistent)
+++ 1.1.0-1/debian/patches/folder_list_cosmetics.patch (revision 180)
@@ -0,0 +1,30 @@
+--- a/prayer/cmd_folders.c
++++ b/prayer/cmd_folders.c
+@@ -45,10 +45,10 @@ generate_folder_line(struct session *ses
+ html_session_bprintf(session, b, "<a href=\"", "\">",
+ "folders/toggle/%s", name);
+ if (fi->expanded)
+- html_icon(session, b, "down.gif", "[Collapse]");
++ html_icon(session, b, "down.gif", "[-]&nbsp;");
+ else
+- html_icon(session, b, "right.gif", "[Expand]");
+- bputs(b, "</a>&nbsp;");
++ html_icon(session, b, "right.gif", "[+]&nbsp;");
++ bputs(b, "</a>");
+ } else
+ html_icon(session, b, "blank.gif", "&nbsp;&nbsp;&nbsp;&nbsp;");
+
+--- a/prayer/cmd_favourites.c
++++ b/prayer/cmd_favourites.c
+@@ -77,9 +77,9 @@ generate_folder_line(struct session *ses
+ html_session_bprintf(session, b, "<a href=\"", "\">",
+ "favourites/toggle/%s", name);
+ if (fi->expanded)
+- html_icon(session, b, "down.gif", "[Collapse]");
++ html_icon(session, b, "down.gif", "[-]&nbsp;");
+ else
+- html_icon(session, b, "right.gif", "[Expand]");
++ html_icon(session, b, "right.gif", "[+]&nbsp;");
+ bputs(b, "</a>");
+ } else
+ html_icon(session, b, "blank.gif", "&nbsp;&nbsp;&nbsp;&nbsp;");
Index: 1.1.0-1/debian/patches/includes.patch
===================================================================
--- 1.1.0-1/debian/patches/includes.patch (nonexistent)
+++ 1.1.0-1/debian/patches/includes.patch (revision 180)
@@ -0,0 +1,22 @@
+--- prayer-1.1.0.orig/prayer/prayer_session.h
++++ prayer-1.1.0/prayer/prayer_session.h
+@@ -27,7 +27,7 @@
+
+ extern int errno; /* just in case */
+
+-#include "c-client.h"
++#include <c-client.h>
+
+ #define PRAYER_FULL_HDRS
+ #include "prayer_shared.h"
+--- prayer-1.1.0.orig/prayer/cdb.c
++++ prayer-1.1.0/prayer/cdb.c
+@@ -63,7 +63,7 @@
+ #include <unistd.h>
+ #include <sys/stat.h>
+
+-#include "mail.h"
++#include "common.h"
+ #include "cdb.h"
+
+ #define CDB_HASH_SPLIT 256 /* num pieces the hash table is split into */
Index: 1.1.0-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.1.0-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.1.0-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,251 @@
+--- prayer-1.1.0.orig/files/etc/prayer-accountd.cf
++++ prayer-1.1.0/files/etc/prayer-accountd.cf
+@@ -8,6 +8,8 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- prayer-1.1.0.orig/files/Makefile
++++ prayer-1.1.0/files/Makefile
+@@ -53,41 +53,44 @@ distclean:
+ install-cert:
+ if [ -f certs/prayer.pem ]; then \
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) \
+- -m $(PRIVATE_FILE) certs/prayer.pem ${BROOT}${PREFIX}/certs; \
++ -m $(PRIVATE_FILE) certs/prayer.pem ${DESTDIR}${PREFIX}/certs; \
+ fi
+
+ install-config: etc/prayer.cf
+ $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/prayer.cf ${BROOT}${PRAYER_CONFIG_FILE}
++ etc/prayer.cf ${DESTDIR}${PRAYER_CONFIG_FILE}
+
+ install-aconfig:
+ $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/prayer-accountd.cf ${BROOT}${ACCOUNTD_CONFIG_FILE}
++ etc/prayer-accountd.cf ${DESTDIR}${ACCOUNTD_CONFIG_FILE}
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${DESTDIR}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${DESTDIR}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${DESTDIR}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${DESTDIR}/etc/prayer
++
++ PREFIX=$(DESTDIR)$(PREFIX) VAR_PREFIX=$(DESTDIR)$(VAR_PREFIX) \
+ RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+ RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+ PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+ PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+ PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
++ BIN_DIR=$(DESTDIR)$(BIN_DIR) INSTALL=$(INSTALL) \
+ ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
+- if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+- if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++# if [ ! -f $(DESTDIR)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ if [ ! -f $(DESTDIR)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
++ if [ ! -f $(DESTDIR)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
++ if [ ! -f $(DESTDIR)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(DESTDIR)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+- ./init.d/prayer $(BROOT)/etc/rc.d/init.d/prayer
++ ./init.d/prayer $(DESTDIR)/etc/rc.d/init.d/prayer
+ #chkconfig prayer --level 2345 on
+--- prayer-1.1.0.orig/files/install.sh
++++ prayer-1.1.0/files/install.sh
+@@ -4,77 +4,6 @@
+
+ PATH=/bin:/sbin/:/usr/bin:/usr/sbin
+
+-error=0
+-
+-if [ "x$PREFIX" = "x" ]; then
+- echo 'PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$VAR_PREFIX" = "x" ]; then
+- echo 'VAR_PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_USER" = "x" ]; then
+- echo 'RO_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_GROUP" = "x" ]; then
+- echo 'RO_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_USER" = "x" ]; then
+- echo 'RW_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_GROUP" = "x" ]; then
+- echo 'RW_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$PUBLIC_DIR" = "x" ]; then
+- echo 'PUBLIC_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$PRIVATE_DIR" = "x" ]; then
+- echo 'PRIVATE_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$BIN_DIR" = "x" ]; then
+- echo 'BIN_DIR not defined'
+- error=1
+-fi
+-
+-if [ $error != 0 ]; then
+- exit 1
+-fi
+-
+-if [ ! -d ${VAR_PREFIX} -a `whoami` = "root" ]; then
+- ${INSTALL} -d -o ${RW_USER} -g ${RW_GROUP} -m ${PRIVATE_DIR} ${VAR_PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX}/etc ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}/etc
+-fi
+-
+-if [ ! -d ${PREFIX}/certs ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PRIVATE_DIR} ${PREFIX}/certs
+-fi
+-
+-if [ ! -d ${BIN_DIR} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BIN_DIR}
+-fi
+-
+ for i in help icons
+ do
+ if [ -d "${PREFIX}/${i}" ]; then
+--- prayer-1.1.0.orig/files/etc/prayer.cf.SRC
++++ prayer-1.1.0/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@ var_prefix = "__VAR_PREFIX__"
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -428,14 +428,14 @@ bin_dir = "__BIN_DIR__"
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++lock_dir = "/var/lock"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+-socket_dir = "$var_prefix/sockets"
++socket_dir = "/var/run/prayer"
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+@@ -446,14 +446,14 @@ socket_split_dir = TRUE
+ init_socket_name = init
+
+ # $ssl_session_dir is location for SSL session cache
+-ssl_session_dir = "$var_prefix/ssl_scache"
++ssl_session_dir = "/var/run/prayer/ssl_scache"
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "/var/run/prayer"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -614,7 +614,7 @@ sent_mail_folder = "sent-mail"
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- prayer-1.1.0.orig/prayer/Makefile
++++ prayer-1.1.0/prayer/Makefile
+@@ -102,8 +102,9 @@ ifeq ($(strip $(CCLIENT_KERB_ENABLE)), t
+ SESSION_LIBS += $(KERB_LIBS)
+ endif
+
+-CFLAGS = $(BASECFLAGS) $(COMMON_SSL_INCLUDE) $(CCLIENT_INCLUDE)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS)
++override CFLAGS += $(COMMON_SSL_INCLUDE) $(CCLIENT_INCLUDE)
++LDFLAGS = $(BASELDFLAGS) -Wl,--as-needed
+
+ SHARED_OBJS = \
+ pool.o list.o assoc.o memblock.o buffer.o string.o config.o user_agent.o \
+@@ -175,21 +176,21 @@ clean:
+
+ install: all
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
+- $(BROOT)$(BIN_DIR)
++ $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer $(BROOT)$(BIN_DIR)
++ prayer $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-chroot $(BROOT)$(BIN_DIR)
++ prayer-chroot $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-session $(BROOT)$(BIN_DIR)
++ prayer-session $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-ssl-prune $(BROOT)$(BIN_DIR)
++ prayer-ssl-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-sem-prune $(BROOT)$(BIN_DIR)
++ prayer-sem-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-db-prune $(BROOT)$(BIN_DIR)
++ prayer-db-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-cyclog $(BROOT)$(BIN_DIR)
++ prayer-cyclog $(DESTDIR)$(BIN_DIR)
+
+ prayer: $(PRAYER_OBJS) prayer_main.o
+ $(CC) $(LDFLAGS) -o prayer $(PRAYER_OBJS) prayer_main.o $(PRAYER_LIBS)
Index: 1.1.0-1/debian/patches/sighandling.patch
===================================================================
--- 1.1.0-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.1.0-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.1.0-1/debian/changelog
===================================================================
--- 1.1.0-1/debian/changelog (nonexistent)
+++ 1.1.0-1/debian/changelog (revision 180)
@@ -0,0 +1,25 @@
+prayer (1.1.0-1) unstable; urgency=low
+
+ * First upload to unstable.
+ * New upstream release.
+ + Requires development version of the c-client library (libc-client2007-dev).
+ - Drop pidfiles_extension.patch, session_unix_bugs.patch,
+ session_server_bugs.patch; all incorporated upstream.
+ - Drop ipv6.patch; incorporated upstream.
+ - Drop utf8.patch; incorporated and improved upstream.
+ - Drop hasnochildren_means_noinferiors.patch since upstream now
+ handles dual-use mailboxes.
+ * New maintainer email address.
+ * Update README.Debian, removing lies about TLS not being possible to
+ disable (Closes: #440462).
+ * folder_list_cosmetics.patch: Remove space between expand/collapse
+ arrow and folder icon in the folder list and change the alt texts so
+ that the tree looks nicer in text browsers.
+
+ -- Magnus Holmgren <holmgren@debian.org> Tue, 13 May 2008 22:31:36 +0200
+
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.1.0-1/debian/README.Debian
===================================================================
--- 1.1.0-1/debian/README.Debian (nonexistent)
+++ 1.1.0-1/debian/README.Debian (revision 180)
@@ -0,0 +1,31 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.3, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. The previous version, which was only uloaded to the
+experimental distribution, was heavily patched to add UTF-8 and IPv6
+support among other things. All that has been incorporated and
+improved by upstream in 1.1.0. The remaining patches concern changes
+to default configuration regarding directory structure, and minor
+cosmetic changes to the folder list.
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically. To
+ disable, append "/notls" to the IMAP server name(s) specified with
+ imapd_server. To force TLS, append "/tls". Make sure that the
+ server name you specify for imapd_server in prayer.cf matches the
+ Common Name in the SSL certificate; otherwise libc-client will
+ refuse to accept it. To disable that check, use "/novalidate-cert".
+ Other switches you can append are listed in the file naming.txt.gz
+ in the documentation directory of the C-client library.
+
+ * If your IMAP server is Dovecot (or any of a number of others,
+ probably), then you must change prefs_folder_name to something not
+ containing a dot. Unfortunately this means that the preference
+ folder will be fully visible.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Tue, 13 May 2008 22:27:11 +0200
+
Index: 1.1.0-1/debian/prayer.postinst
===================================================================
--- 1.1.0-1/debian/prayer.postinst (nonexistent)
+++ 1.1.0-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,45 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --no-create-home prayer
+ chown prayer:root /var/run/prayer
+ chown prayer:adm /var/log/prayer
+ chmod 2750 /var/run/prayer /var/log/prayer
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.1.0-1/debian/control
===================================================================
--- 1.1.0-1/debian/control (nonexistent)
+++ 1.1.0-1/debian/control (revision 180)
@@ -0,0 +1,52 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: cdbs (>= 0.4.27-1), debhelper (>= 5), quilt,
+ libc-client2007-dev, libldap2-dev,
+ zlib1g-dev, libssl-dev (>= 0.9.6), libdb4.3-dev | libdb-dev,
+Standards-Version: 3.7.2
+Vcs-Svn: svn://svn.kibibyte.se/prayer/trunk
+Vcs-Browser: http://svn.kibibyte.se/prayer
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.1.0-1/debian/compat
===================================================================
--- 1.1.0-1/debian/compat (nonexistent)
+++ 1.1.0-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.1.0-1/debian/prayer.default
===================================================================
--- 1.1.0-1/debian/prayer.default (nonexistent)
+++ 1.1.0-1/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.1.0-1/debian/prayer.postrm
===================================================================
--- 1.1.0-1/debian/prayer.postrm (nonexistent)
+++ 1.1.0-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,43 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge)
+ deluser --system --quiet prayer || true
+ rm -rf /var/log/prayer
+ find /var/run/prayer/ \( -type s -o -name ssl_scache \) -exec rm {} +
+ ;;
+
+ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.1.0-1/debian/prayer-accountd.docs
===================================================================
--- 1.1.0-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.1.0-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.1.0-1/debian/prayer-session.8.dbk
===================================================================
--- 1.1.0-1/debian/prayer-session.8.dbk (nonexistent)
+++ 1.1.0-1/debian/prayer-session.8.dbk (revision 180)
@@ -0,0 +1,158 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer-session">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>...</cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--debug</option>
+ </term>
+ <listitem>
+ <para>Enable debugging.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.1.0-1/debian/prayer.docs
===================================================================
--- 1.1.0-1/debian/prayer.docs (nonexistent)
+++ 1.1.0-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/URL_OPTIONS
Index: 1.1.0-1/debian/rules
===================================================================
--- 1.1.0-1/debian/rules (nonexistent)
+++ 1.1.0-1/debian/rules (revision 180)
@@ -0,0 +1,24 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+DEB_AUTO_CLEANUP_RCS := yes
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+#DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) make
+DEB_MAKE_INSTALL_TARGET = install DESTDIR=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_ALL = -XCVS
+DEB_DH_INSTALL_ARGS = -XCVS
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+
+clean::
+ rm -f Config
/1.1.0-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.1.0-1/debian/prayer-accountd.dirs
===================================================================
--- 1.1.0-1/debian/prayer-accountd.dirs (nonexistent)
+++ 1.1.0-1/debian/prayer-accountd.dirs (revision 180)
@@ -0,0 +1 @@
+/var/run/prayer
Index: 1.1.0-1/debian/prayer.logrotate
===================================================================
--- 1.1.0-1/debian/prayer.logrotate (nonexistent)
+++ 1.1.0-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.1.0-1/debian/prayer.dirs
===================================================================
--- 1.1.0-1/debian/prayer.dirs (nonexistent)
+++ 1.1.0-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,2 @@
+var/run/prayer
+var/log/prayer
Index: 1.1.0-1/debian/prayer-accountd.init
===================================================================
--- 1.1.0-1/debian/prayer-accountd.init (nonexistent)
+++ 1.1.0-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer/accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.1.0-1/debian/prayer.init
===================================================================
--- 1.1.0-1/debian/prayer.init (nonexistent)
+++ 1.1.0-1/debian/prayer.init (revision 180)
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.1.0-1/debian/prayer-accountd.install
===================================================================
--- 1.1.0-1/debian/prayer-accountd.install (nonexistent)
+++ 1.1.0-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.1.0-1/debian/Config
===================================================================
--- 1.1.0-1/debian/Config (nonexistent)
+++ 1.1.0-1/debian/Config (revision 180)
@@ -0,0 +1,160 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.5 2006/04/05 12:35:35 fanf2 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+DIRECT_ENABLE = false # Experimental. Leave this switched off...
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = true # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC.
+#BASECFLAGS = -Wall -g
+#BASELDFLAGS = -g
+BASECFLAGS = -Wall -g -O2
+BASELDFLAGS = -g -O2
+BASE_LIBS = -lcrypt
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+#BASE_LIBS = -lcrypt -lxnet
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+#
+# Following works if we have a vanilla c-client installation at same level
+# as the prayer installation. Relies on a symbolic link ./prayer/c-client
+# which points to ../../imap/c-client. This just reduces the amount of
+# noise output on each line when building the package.
+#
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+#
+# Following works with the mail/cclient port from FreeBSD
+#
+#CCLIENT_INCLUDE = -I/usr/local/include/c-client
+#CCLIENT_LIBS = -L/usr/local/lib -lc-client4
+#
+# Complication:
+# The FreeBSD port uses PAM and optionally SSL if built WITH_SSL=yes.
+#
+#CCLIENT_SSL_ENABLE = true
+#CCLIENT_KERB_ENABLE = true
+
+############################################################################
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/lib/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.1.0-1/debian/watch
===================================================================
--- 1.1.0-1/debian/watch (nonexistent)
+++ 1.1.0-1/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.1.0-1/debian/prayer.8.dbk
===================================================================
--- 1.1.0-1/debian/prayer.8.dbk (nonexistent)
+++ 1.1.0-1/debian/prayer.8.dbk (revision 180)
@@ -0,0 +1,178 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>... -- <arg><option><replaceable>PRAYER-SESSION-OPTION</replaceable></option></arg> ...
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-prefork</option>
+ </term>
+ <listitem>
+ <para>Run as simple fork()/exec() daemon.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-session</option>
+ </term>
+ <listitem>
+ <para>Don't start up prayer-session server.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--</option>
+ </term>
+ <listitem>
+ <para>End of prayer options: remaining options will be passed to prayer-session server process.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer-session(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.1.0-1/debian/prayer.install
===================================================================
--- 1.1.0-1/debian/prayer.install (nonexistent)
+++ 1.1.0-1/debian/prayer.install (revision 180)
@@ -0,0 +1,10 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-chroot
+usr/sbin/prayer-db-prune
+usr/sbin/prayer-sem-prune
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
+etc/prayer/motd.html
+etc/prayer/welcome.html
Index: 1.1.0-1/debian
===================================================================
--- 1.1.0-1/debian (nonexistent)
+++ 1.1.0-1/debian (revision 180)
/1.1.0-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property
Index: 1.0.18-1/debian/control
===================================================================
--- 1.0.18-1/debian/control (nonexistent)
+++ 1.0.18-1/debian/control (revision 180)
@@ -0,0 +1,48 @@
+Source: prayer
+Section: mail
+Priority: optional
+Maintainer: Magnus Holmgren <magnus@kibibyte.se>
+Build-Depends: cdbs (>= 0.4.27-1), debhelper (>= 5), quilt, libc-client-dev, zlib1g-dev, libssl-dev (>= 0.9.6), libdb4.3-dev | libdb-dev, libldap2-dev
+Standards-Version: 3.7.2
+
+Package: prayer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser
+Suggests: prayer-accountd, imap-server, aspell | ispell
+Description: Standalone IMAP-based webmail server
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ Prayer has very few external dependencies as user preferences are stored on
+ the IMAP server rather than in a SQL database. It does however implement a
+ full range of features and user preference settings.
+
+Package: prayer-accountd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: prayer
+Recommends: exim4
+Description: account management daemon for Prayer
+ Prayer is yet another Webmail interface.
+ .
+ It is unusual in that it is a complete, standalone, HTTP server and proxy
+ rather a Apache/mod_php plugin. Prayer maintains persistent connections to
+ the IMAP server and is written entirely in C. Consequently it is much
+ faster than most open source Webmail interfaces and puts very little load
+ on either the machines running the Web server or the backend IMAP servers
+ (even if traditional Unix format mailfolders are in use).
+ .
+ This package contains a daemon that can do the following for users:
+ .
+ * Change passwords
+ * Change their full name
+ * Manage mail filtering (requires Exim) and forwarding
+ * Manage vacation messages and logs
+ .
+ NOTE: This package is currently not very useful.
Index: 1.0.18-1/debian/compat
===================================================================
--- 1.0.18-1/debian/compat (nonexistent)
+++ 1.0.18-1/debian/compat (revision 180)
@@ -0,0 +1 @@
+5
Index: 1.0.18-1/debian/prayer.postinst
===================================================================
--- 1.0.18-1/debian/prayer.postinst (nonexistent)
+++ 1.0.18-1/debian/prayer.postinst (revision 180)
@@ -0,0 +1,46 @@
+#!/bin/sh
+# postinst script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+ adduser --quiet --system --ingroup nogroup --no-create-home \
+ --disabled-password --disabled-login prayer
+ chown prayer:root /var/run/prayer
+ chown prayer:adm /var/log/prayer
+ chmod 2750 /var/run/prayer /var/log/prayer
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: 1.0.18-1/debian/prayer.default
===================================================================
--- 1.0.18-1/debian/prayer.default (nonexistent)
+++ 1.0.18-1/debian/prayer.default (revision 180)
@@ -0,0 +1,11 @@
+# Defaults for prayer initscript
+# sourced by /etc/init.d/prayer
+# installed at /etc/default/prayer by the maintainer scripts
+
+# This is a POSIX shell fragment
+
+# Change to one to enable prayer after editing /etc/prayer/prayer.cf
+ENABLED=0
+
+# Options. You probably won't need any.
+DAEMON_OPTS=""
Index: 1.0.18-1/debian/prayer.postrm
===================================================================
--- 1.0.18-1/debian/prayer.postrm (nonexistent)
+++ 1.0.18-1/debian/prayer.postrm (revision 180)
@@ -0,0 +1,43 @@
+#!/bin/sh
+# postrm script for prayer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge)
+ deluser --system --quiet prayer || true
+ rm -rf /var/log/prayer
+ find /var/run/prayer/ \( -type s -o -name ssl_scache \) -exec rm {} +
+ ;;
+
+ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: 1.0.18-1/debian/prayer-accountd.docs
===================================================================
--- 1.0.18-1/debian/prayer-accountd.docs (nonexistent)
+++ 1.0.18-1/debian/prayer-accountd.docs (revision 180)
@@ -0,0 +1,8 @@
+docs/ACCOUNTD
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
Index: 1.0.18-1/debian/patches/hasnochildren_means_noinferiors.patch
===================================================================
--- 1.0.18-1/debian/patches/hasnochildren_means_noinferiors.patch (nonexistent)
+++ 1.0.18-1/debian/patches/hasnochildren_means_noinferiors.patch (revision 180)
@@ -0,0 +1,12 @@
+--- prayer-1.0.18.orig/prayer/dirlist.c
++++ prayer-1.0.18/prayer/dirlist.c
+@@ -172,7 +172,8 @@
+
+ dl->next = NIL;
+ dl->name = pool_strdup(callback.pool, name);
+- dl->isdir = (attributes & LATT_NOINFERIORS) ? NIL : T;
++ dl->isdir = (attributes & (LATT_NOINFERIORS | LATT_HASNOCHILDREN)) ?
++ NIL : T;
+
+ /* Insertion sort algorithm */
+
Index: 1.0.18-1/debian/patches/ipv6.patch
===================================================================
--- 1.0.18-1/debian/patches/ipv6.patch (nonexistent)
+++ 1.0.18-1/debian/patches/ipv6.patch (revision 180)
@@ -0,0 +1,508 @@
+--- prayer-1.0.18.orig/prayer/config.c
++++ prayer-1.0.18/prayer/config.c
+@@ -1650,7 +1650,7 @@
+
+ if (!config_parse_rest(&option))
+ error = T;
+- else if ((s = (strchr(option, ':')))) {
++ else if ((s = (strrchr(option, ':')))) {
+ *s++ = '\0';
+ if (!config_parse_number(&port, s))
+ error = T;
+--- prayer-1.0.18.orig/prayer/ipaddr.c
++++ prayer-1.0.18/prayer/ipaddr.c
+@@ -32,11 +32,7 @@
+
+ BOOL ipaddr_copy(struct ipaddr * dst, struct ipaddr * src)
+ {
+- dst->version = src->version;
+- dst->addr[0] = src->addr[0];
+- dst->addr[1] = src->addr[1];
+- dst->addr[2] = src->addr[2];
+- dst->addr[3] = src->addr[3];
++ memcpy(dst, src, sizeof(struct ipaddr));
+
+ return (T);
+ }
+@@ -55,19 +51,7 @@
+ if (addr1->version != addr2->version)
+ return (NIL);
+
+- if (addr1->addr[0] != addr2->addr[0])
+- return (NIL);
+-
+- if (addr1->addr[1] != addr2->addr[1])
+- return (NIL);
+-
+- if (addr1->addr[2] != addr2->addr[2])
+- return (NIL);
+-
+- if (addr1->addr[3] != addr2->addr[3])
+- return (NIL);
+-
+- return (T);
++ return (memcmp(&addr1->addr, &addr2->addr, addr1->version == 6 ? 16 : 4) == 0);
+ }
+
+ /* ====================================================================== */
+@@ -81,8 +65,7 @@
+ {
+ static char buf[64];
+
+- sprintf(buf, "%d.%d.%d.%d",
+- addr->addr[0], addr->addr[1], addr->addr[2], addr->addr[3]);
++ os_inet_ntop(addr->addr, addr->version, buf, 64);
+
+ return (buf);
+ }
+@@ -96,7 +79,7 @@
+ {
+ char *result;
+
+- if ((result = os_gethostbyaddr(addr->addr)))
++ if ((result = os_gethostbyaddr(addr->addr, addr->version)))
+ return (result);
+
+ return (ipaddr_text(addr));
+@@ -116,39 +99,10 @@
+
+ BOOL ipaddr_parse(struct ipaddr * addr, char *text)
+ {
+- char *next;
+-
+ if (text == NIL)
+ return (NIL);
+
+- /* IPv4 only for the moment */
+- addr->version = 4;
+-
+- /* Parse first number */
+- if (!(next = strchr(text, '.')))
+- return (NIL);
+- addr->addr[0] = atoi(text);
+- text = next + 1;
+-
+- /* Parse second number */
+- if (!(next = strchr(text, '.')))
+- return (NIL);
+- addr->addr[1] = atoi(text);
+- text = next + 1;
+-
+- /* Parse third number */
+- if (!(next = strchr(text, '.')))
+- return (NIL);
+- addr->addr[2] = atoi(text);
+- text = next + 1;
+-
+- /* Parse forth number */
+- if ((next = strchr(text, '.')))
+- return (NIL);
+- addr->addr[3] = atoi(text);
+-
+- /* Looks good */
+- return (T);
++ return (os_inet_pton(text, addr));
+ }
+
+ /* ====================================================================== */
+@@ -157,56 +111,63 @@
+ *
+ * Compare IP address to text list of form:
+ * ipaddr:
+- * text: Text string of form "131.111.0.0/16 : 192.168.0.0/24".
++ * text: Text string of form "131.111.0.0/16 : 192.168.0.0/24 : 2001:12cd:1::/48".
++ * (There has to be a space on either side of the colon for it to
++ * separate two networks)
+ *
+ * Returns: T if addr matches list.
+ ************************************************************************/
+
+ BOOL ipaddr_compare_list(struct ipaddr * ipaddr, char *text)
+ {
+- char *next, *s, *alloc;
++ char *next = NULL, *s, *alloc;
++ int i;
+ unsigned long bits, mask;
+ struct ipaddr parsed;
+
+ alloc = text = pool_strdup(NIL, text);
+
+ while (text && *text) {
+- if ((next = strchr(text, ':')))
+- *next++ = '\0';
++ s = text;
++ while ((s = strchr(s, ':'))) {
++ if (*(s - 1) == ' ' || *(s + 1) == ' ') {
++ *(next = s) = '\0';
++ next++;
++ }
++ s++;
++ }
+
+ text = string_trim_whitespace(text);
+
+ if ((s = strchr(text, '/'))) {
+ *s++ = '\0';
+ bits = atoi(s);
+- } else
+- bits = 32;
+-
+- if (bits > 32)
+- bits = 32;
+-
+- /* Create mask with appropriate number of bits set */
+- mask = 0;
+- while (bits > 0) {
+- mask >>= 1;
+- mask |= 0x80000000;
+- bits--;
+ }
++ else
++ bits = 128; /* Doesn't matter if it's too big */
+
+ if (ipaddr_parse(&parsed, text)) {
+- unsigned long a1;
+- unsigned long a2;
+-
+- a1 = ((ipaddr->addr[0] << 24) + (ipaddr->addr[1] << 16) +
+- (ipaddr->addr[2] << 8) + (ipaddr->addr[3]));
+-
+- a2 = ((parsed.addr[0] << 24) + (parsed.addr[1] << 16) +
+- (parsed.addr[2] << 8) + (parsed.addr[3]));
+-
+- if ((a1 & mask) == (a2 & mask)) {
+- free(alloc);
+- return (T);
+- }
++ if (parsed.version != ipaddr->version) {
++ text = next; continue;
++ }
++
++ for (i = 0; i < (parsed.version == 6 ? 4 : 1); i++) {
++ if (bits == 0) mask = 0;
++ else if (bits < 32) {
++ mask = (-1) << (32 - bits);
++ bits = 0;
++ }
++ else {
++ mask = -1;
++ bits -= 32;
++ }
++
++ if ((parsed.addr[i] & mask) != (ipaddr->addr[i] & mask)) {
++ text = next; continue;
++ }
++ }
++ free(alloc);
++ return (T);
+ }
+ text = next;
+ }
+@@ -225,11 +187,11 @@
+
+ void ipaddr_send_iostream(struct ipaddr *addr, struct iostream *stream)
+ {
++ int i;
+ ioputc(addr->version, stream);
+- ioputc(addr->addr[0], stream);
+- ioputc(addr->addr[1], stream);
+- ioputc(addr->addr[2], stream);
+- ioputc(addr->addr[3], stream);
++ for (i = 0; i < (addr->version == 6 ? 16 : 4); i++) {
++ ioputc(((char *)addr->addr)[i], stream);
++ }
+ }
+
+ /* ====================================================================== */
+@@ -246,13 +208,13 @@
+
+ if ((c = iogetc(stream)) != EOF) {
+ addr->version = (unsigned char) c;
+- for (i = 0; i < 4; i++) {
++ for (i = 0; i < (addr->version == 6 ? 16 : 4); i++) {
+ if ((c = iogetc(stream)) == EOF) {
+ rc = NIL;
+ break;
+ }
+
+- addr->addr[i] = (unsigned char) c;
++ ((char *)addr->addr)[i] = (unsigned char) c;
+ }
+ }
+
+@@ -279,9 +241,14 @@
+ ipaddr_set(struct ipaddr *ipaddr, unsigned long version,
+ unsigned char *addr)
+ {
+- if (version != 4)
+- log_fatal("ipaddr_set(): IPv4 only supported at the moment!");
++ if (version != 4 && version != 6)
++ log_fatal("ipaddr_set(): IPv4 and IPv6 only supported!");
++
++ ipaddr->version = version;
++ memcpy(ipaddr->addr, addr, version == 6 ? 16 : 4);
++ if (ipaddr->addr[0] == 0 && ipaddr->addr[1] == 0 && ipaddr->addr[2] == 0xffff) {
++ ipaddr->addr[0] = ipaddr->addr[3];
++ ipaddr->version = 4;
++ }
+
+- ipaddr->version = 4;
+- memcpy(ipaddr->addr, addr, 4);
+ }
+--- prayer-1.0.18.orig/prayer/ipaddr.h
++++ prayer-1.0.18/prayer/ipaddr.h
+@@ -8,7 +8,7 @@
+
+ struct ipaddr {
+ unsigned long version;
+- unsigned char addr[4];
++ unsigned long addr[4];
+ };
+
+ struct ipaddr *ipaddr_create(struct pool *pool);
+--- prayer-1.0.18.orig/prayer/os.h
++++ prayer-1.0.18/prayer/os.h
+@@ -24,7 +24,11 @@
+
+ int os_socket_nonblocking(int sockfd);
+
+-char *os_gethostbyaddr(void *addr);
++char *os_gethostbyaddr(void *addr, unsigned int version);
++
++int os_inet_ntop(void *addr, unsigned long version, char *buf, unsigned long buflen);
++
++int os_inet_pton(char *str, struct ipaddr *addr);
+
+ void os_child_reaper();
+
+--- prayer-1.0.18.orig/prayer/os_linux.c
++++ prayer-1.0.18/prayer/os_linux.c
+@@ -13,14 +13,11 @@
+ #include <sys/un.h>
+ #include <sys/resource.h>
+ #include <netinet/in.h>
+-#include <netinet/tcp.h>
+ #include <arpa/inet.h>
+ #include <signal.h>
+ #include <netdb.h>
+ #include <sys/file.h>
+
+-#include <openssl/rand.h>
+-
+ /* ====================================================================== */
+
+ BOOL os_socketpair(int *sockfd)
+@@ -63,33 +60,28 @@
+
+ int os_connect_inet_socket(char *host, unsigned long port)
+ {
+- struct hostent *hostent;
+- struct sockaddr_in serv_addr;
++ struct addrinfo *first_ai, *ai;
++ char port_str[12];
+ int sockfd;
+
+- /* Open the socket */
+- if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+- return (-1);
+-
+- /* Set up the socket */
+- bzero((char *) &serv_addr, sizeof(serv_addr));
+- serv_addr.sin_family = AF_INET;
+- serv_addr.sin_port = htons(port);
+-
+- if ((hostent = gethostbyname(host)) == NIL) {
+- close(sockfd);
+- return (-1);
+- }
+- bcopy(hostent->h_addr, (char *) &serv_addr.sin_addr,
+- hostent->h_length);
+-
+- if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))
+- < 0) {
+- close(sockfd);
+- return (-1);
+- }
+-
+- return (sockfd);
++ sprintf(port_str, "%lu", port);
++ if (getaddrinfo(host, port_str, NULL, &first_ai)) {
++ return (-1);
++ }
++ for (ai = first_ai; ai->ai_next; ai = ai->ai_next) {
++ /* Open the socket */
++ if ((sockfd = socket(ai->ai_family, SOCK_STREAM, 0)) < 0) {
++ break;
++ }
++ if (connect(sockfd, (struct sockaddr *) ai->ai_addr, ai->ai_addrlen) < 0) {
++ close(sockfd);
++ break;
++ }
++ freeaddrinfo(first_ai);
++ return (sockfd);
++ }
++ freeaddrinfo(first_ai);
++ return (-1);
+ }
+
+ /* ====================================================================== */
+@@ -150,9 +141,39 @@
+ int os_bind_inet_socket(unsigned long port, char *interface)
+ {
+ int i, sockfd;
+- struct sockaddr_in serv_addr;
++ struct sockaddr_storage serv_addr;
++ struct addrinfo *ai;
++
++ bzero((char *) &serv_addr, sizeof(serv_addr));
+
+- if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
++ if (interface) {
++ if (getaddrinfo(interface, NULL, NULL, &ai)) {
++ log_panic
++ ("[os_bind_inet_socket()] Failed to lookup hostname: %s",
++ interface);
++ return -1;
++ }
++#if 0 /* Use the first interface address; don't panic if both IPv6
++ and IPv4 addresses are returned. */
++ if (hostent->h_addr_list[1]) {
++ log_panic
++ ("[os_bind_inet_socket()] Ambiguous interface name: %s",
++ interface);
++ return (-1);
++ }
++#endif
++ memcpy(&serv_addr, ai->ai_addr, ai->ai_addrlen);
++ freeaddrinfo(ai);
++ }
++ else {
++ serv_addr.ss_family = AF_INET6;
++ ((struct sockaddr_in6*)&serv_addr)->sin6_addr = in6addr_any;
++ }
++ /* This isn't formally correct, but *in fact*, sin6_port is at the
++ same place as sin_port, so it works. */
++ ((struct sockaddr_in6*)&serv_addr)->sin6_port = htons(port);
++
++ if ((sockfd = socket(serv_addr.ss_family, SOCK_STREAM, 0)) < 0) {
+ log_panic("[os_bind_inet_socket()] socket() failed, %s",
+ strerror(errno));
+ return (-1);
+@@ -168,41 +189,6 @@
+ return (-1);
+ }
+
+- bzero((char *) &serv_addr, sizeof(serv_addr));
+- serv_addr.sin_family = AF_INET;
+- serv_addr.sin_port = htons(port);
+- serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+-
+- /* Calculate serv_addr for specific interface to bind to */
+- if (interface) {
+- struct hostent *hostent;
+- struct in_addr *s;
+-
+- if (!(hostent = gethostbyname(interface))) {
+- log_panic
+- ("[os_bind_inet_socket()] Failed to lookup hostname: %s",
+- interface);
+-
+- return (-1);
+- }
+-
+- if (hostent->h_addr_list[1]) {
+- log_panic
+- ("[os_bind_inet_socket()] Ambiguous interface name: %s",
+- interface);
+- return (-1);
+- }
+-
+- if (!(s = ((struct in_addr *)hostent->h_addr_list[0]))) {
+- log_panic("[os_bind_inet_socket()] Invalid interface name: %s",
+- interface);
+- return (-1);
+- }
+-
+- /* s has four bytes in network byte order */
+- memcpy(&serv_addr.sin_addr.s_addr, s, sizeof(struct in_addr));
+- }
+-
+ /* bind() as Internet domain socket */
+ if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) <
+ 0) {
+@@ -255,8 +242,8 @@
+
+ int os_accept_inet(int sockfd, struct ipaddr *ipaddr)
+ {
+- struct sockaddr_in addr;
+- socklen_t len = (socklen_t) sizeof(struct sockaddr_in);
++ struct sockaddr_storage addr;
++ socklen_t len = (socklen_t) sizeof(addr);
+ int newsockfd;
+
+ do {
+@@ -271,8 +258,12 @@
+ return (-1);
+ }
+
+- if (ipaddr)
+- ipaddr_set(ipaddr, 4, (unsigned char *) &addr.sin_addr);
++ if (ipaddr) {
++ if (addr.ss_family == AF_INET6)
++ ipaddr_set(ipaddr, 6, (unsigned char *)&((struct sockaddr_in6*)&addr)->sin6_addr);
++ else
++ ipaddr_set(ipaddr, 4, (unsigned char *)&((struct sockaddr_in*)&addr)->sin_addr);
++ }
+
+ /* Set close on exec so subprocesses can't interfere */
+ if (fcntl(newsockfd, F_SETFD, FD_CLOEXEC) < 0) {
+@@ -322,9 +313,14 @@
+
+ /* Convert IPv4 address into text form */
+
+-char *os_gethostbyaddr(void *opaque)
++char *os_gethostbyaddr(void *opaque, unsigned int version)
+ {
+- struct hostent *hostent = gethostbyaddr(opaque, 4, AF_INET);
++ struct hostent *hostent;
++
++ if (version == 6)
++ hostent = gethostbyaddr(opaque, 16, AF_INET6);
++ else
++ hostent = gethostbyaddr(opaque, 4, AF_INET);
+
+ if (hostent && hostent->h_name && hostent->h_name[0])
+ return (hostent->h_name);
+@@ -332,6 +328,32 @@
+ return (NIL);
+ }
+
++int os_inet_ntop(void *addr, unsigned long version, char *buf, unsigned long buflen) {
++ if (version == 6) {
++ if (inet_ntop(AF_INET6, addr, buf, buflen))
++ return (T);
++ }
++ else {
++ if (inet_ntop(AF_INET, addr, buf, buflen))
++ return (T);
++ }
++ return (NIL);
++}
++
++int os_inet_pton(char *str, struct ipaddr *addr) {
++ unsigned char buf[16];
++
++ if (inet_pton(AF_INET6, str, buf)) {
++ ipaddr_set(addr, 6, buf);
++ return (T);
++ }
++ else if (inet_pton(AF_INET, str, buf)) {
++ ipaddr_set(addr, 4, buf);
++ return (T);
++ }
++ return (NIL);
++}
++
+ /* ====================================================================== */
+
+ /* Trivial SIG_CLD handler to prevent zombies from hanging around */
Index: 1.0.18-1/debian/patches/includes.patch
===================================================================
--- 1.0.18-1/debian/patches/includes.patch (nonexistent)
+++ 1.0.18-1/debian/patches/includes.patch (revision 180)
@@ -0,0 +1,26 @@
+Index: prayer-1.0.18/prayer/prayer_session.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/prayer_session.h 2007-03-10 18:50:09.676882377 +0100
++++ prayer-1.0.18/prayer/prayer_session.h 2007-03-10 18:50:11.007049496 +0100
+@@ -27,7 +27,7 @@
+
+ extern int errno; /* just in case */
+
+-#include "c-client.h"
++#include <c-client.h>
+
+ #define PRAYER_FULL_HDRS
+ #include "prayer_shared.h"
+Index: prayer-1.0.18/prayer/cdb.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cdb.c 2007-03-10 18:51:20.845827434 +0100
++++ prayer-1.0.18/prayer/cdb.c 2007-03-10 18:51:25.766446163 +0100
+@@ -63,7 +63,7 @@
+ #include <unistd.h>
+ #include <sys/stat.h>
+
+-#include "mail.h"
++#include "common.h"
+ #include "cdb.h"
+
+ #define CDB_HASH_SPLIT 256 /* num pieces the hash table is split into */
Index: 1.0.18-1/debian/patches/session_unix_bugs.patch
===================================================================
--- 1.0.18-1/debian/patches/session_unix_bugs.patch (nonexistent)
+++ 1.0.18-1/debian/patches/session_unix_bugs.patch (revision 180)
@@ -0,0 +1,20 @@
+--- prayer-1.0.18.orig/prayer/session_unix.c
++++ prayer-1.0.18/prayer/session_unix.c
+@@ -56,7 +56,7 @@
+ }
+
+ if (config->fix_client_ipaddr
+- && ipaddr_compare(session->ipaddr, &remote)) {
++ && !ipaddr_compare(session->ipaddr, &remote)) {
+ struct buffer *b = request->write_buffer;
+
+ html_common_start(config, b, "Security Alert");
+@@ -69,7 +69,7 @@
+ response_send(request);
+ log_misc
+ ("HTTP Request from invalid IP address %s to running session %s",
+- &remote, session->url_prefix_asession);
++ ipaddr_text(&remote), session->url_prefix_asession);
+ return;
+ }
+
Index: 1.0.18-1/debian/patches/utf8.patch
===================================================================
--- 1.0.18-1/debian/patches/utf8.patch (nonexistent)
+++ 1.0.18-1/debian/patches/utf8.patch (revision 180)
@@ -0,0 +1,1507 @@
+This patch adds support for UTF-8 and modified UTF-7. Functions are in
+the new utf8.c. The patch adds calls to utf8_to_imaputf7() or
+utf8_from_imaputf7() wherever a folder name is handled in the code. In
+addition, it changes prayer to use UTF-8 in all HTML output as well as
+in composition of messages.
+Index: prayer-1.0.18/prayer/Makefile
+===================================================================
+--- prayer-1.0.18.orig/prayer/Makefile 2007-03-10 19:39:29.563948453 +0100
++++ prayer-1.0.18/prayer/Makefile 2007-03-10 19:39:30.294042473 +0100
+@@ -127,7 +127,7 @@ SESSION_SUPPORT_OBJS = \
+ abook.o lookup.o role.o dictionary.o \
+ options.o rfc1522.o banner.o favourite.o wrap.o portlist.o \
+ account.o account_msshell.o account_sieve.o account_support.o \
+- sieve.o filter.o checksum.o
++ sieve.o filter.o checksum.o utf8.o
+
+ ifeq ($(strip $(SESSION_NEEDS_DB)), true)
+ SESSION_SUPPORT_OBJS += mydb_db3.o
+Index: prayer-1.0.18/prayer/cmd_change.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_change.c 2007-03-10 19:38:53.659325192 +0100
++++ prayer-1.0.18/prayer/cmd_change.c 2007-03-10 19:39:30.344048912 +0100
+@@ -16,7 +16,7 @@ void cmd_change(struct session *session)
+ if (request->method == POST) {
+ request_decode_post(request);
+
+- if (!(name = assoc_lookup(request->form, "folder"))) {
++ if (!(name = utf8_to_imaputf7(request->pool, assoc_lookup(request->form, "folder")))) {
+ session_redirect(session, request, "error");
+ return;
+ }
+@@ -30,7 +30,8 @@ void cmd_change(struct session *session)
+ }
+
+ if (!session_streams_change(session, name)) {
+- session_message(session, "Unable to switch to folder: %s", name);
++ session_message(session, "Unable to switch to folder: %s",
++ utf8_from_imaputf7(request->pool, name));
+ session_redirect(session, request, "restart");
+ return;
+ }
+@@ -47,7 +48,7 @@ void cmd_change(struct session *session)
+ }
+
+ session_message(session, "Switched to mailbox: %s",
+- session->foldername);
++ utf8_from_imaputf7(request->pool, session->foldername));
+ session_log(session, "[cmd_change] Switched to mailbox: %s",
+ session->foldername);
+
+Index: prayer-1.0.18/prayer/cmd_compose.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_compose.c 2007-03-10 19:38:53.719332917 +0100
++++ prayer-1.0.18/prayer/cmd_compose.c 2007-03-10 19:39:30.384054064 +0100
+@@ -244,7 +244,7 @@ static BOOL cmd_compose_generate_postpon
+ strlen(string), string, NIL);
+
+ string =
+- string_prune(request->pool, string, config->list_addr_maxlen);
++ utf8_prune(request->pool, string, config->list_addr_maxlen);
+
+ bputs(b, "<td>" CRLF);
+ html_quote_string(b, string);
+@@ -267,7 +267,7 @@ static BOOL cmd_compose_generate_postpon
+ rfc1522_decode(pool_alloc(request->pool, strlen(string)),
+ strlen(string), string, NIL);
+
+- string = string_prune(request->pool, string,
++ string = utf8_prune(request->pool, string,
+ config->list_subject_maxlen);
+ } else
+ string = "(No subject)";
+Index: prayer-1.0.18/prayer/cmd_copy.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_copy.c 2007-03-10 19:38:53.769339356 +0100
++++ prayer-1.0.18/prayer/cmd_copy.c 2007-03-10 19:39:30.404056640 +0100
+@@ -95,7 +95,7 @@ generate_directory_line(struct session *
+ html_session_bprintf(session, b,
+ "<td><a href=\"", "\">" CRLF, "copy?cwd=%s",
+ name);
+- html_quote_string(b, dir);
++ html_quote_string(b, utf8_from_imaputf7(pool, dir));
+ bprintf(b, "</a></td>" CRLF);
+
+ bputs(b, "</tr>" CRLF);
+@@ -127,7 +127,7 @@ generate_favourite_folder_line(struct se
+ html_session_bprintf(session, b,
+ "<td><a href=\"", "\">" CRLF, "copy_msg/%s",
+ name);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bprintf(b, "</a></td>" CRLF);
+
+ bputs(b, "</tr>" CRLF);
+@@ -159,7 +159,7 @@ generate_folder_line(struct session *ses
+ html_session_bprintf(session, b,
+ "<td><a href=\"", "\">" CRLF, "copy_msg/%s",
+ name);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bprintf(b, "</a></td>" CRLF);
+
+ bprintf(b, "</tr>" CRLF);
+@@ -209,8 +209,8 @@ html_folderlist(struct session *session,
+ bputs(b, "<tr>");
+ bputs(b, "<td>");
+ bputs(b, "<table><tr><td>" CRLF);
+- html_form_field(b, "Directory", "cwd", session->cwd, 32);
+- html_form_field(b, "Filter", "filter", session->dir_filter, 12);
++ html_form_field(b, "Directory", "cwd", utf8_from_imaputf7(pool, session->cwd), 32);
++ html_form_field(b, "Filter", "filter", utf8_from_imaputf7(pool, session->dir_filter), 12);
+ html_form_submit(b, "submit", "Apply");
+ bputs(b, "</td></tr></table>" CRLF);
+ bputs(b, "<td align=\"right\"><table><tr><td>" CRLF);
+Index: prayer-1.0.18/prayer/cmd_copy_msg.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_copy_msg.c 2007-03-10 19:38:53.829347082 +0100
++++ prayer-1.0.18/prayer/cmd_copy_msg.c 2007-03-10 19:39:30.484066944 +0100
+@@ -125,12 +125,13 @@ void cmd_copy_msg(struct session *sessio
+ /* Keep current message */
+ if (count > 1) {
+ session_message(session, "Copied %lu messages to %s", count,
+- mailbox);
++ utf8_from_imaputf7(request->pool, mailbox));
+ session_log(session,
+ "[cmd_copy_msg] Copied %lu messages to %s", count,
+ mailbox);
+ } else if (count == 1) {
+- session_message(session, "Copied 1 message to %s", mailbox);
++ session_message(session, "Copied 1 message to %s",
++ utf8_from_imaputf7(request->pool, mailbox));
+ session_log(session, "[cmd_copy_msg] Copied 1 message to %s",
+ mailbox);
+ } else {
+@@ -152,9 +153,8 @@ void cmd_copy_msg(struct session *sessio
+ next = msgmap_value(zm, zm_offset + 1);
+ else {
+ /* No next message */
+- session_message(session,
+- "Copied message %lu to \"%s\", no more messages",
+- msgno, mailbox);
++ session_message(session, "Copied message %lu to \"%s\", no more messages",
++ msgno, utf8_from_imaputf7(request->pool, mailbox));
+ session_log(session, "[cmd_copy_msg] Copied message %lu to %s",
+ msgno, mailbox);
+ session->current = msgno;
+@@ -162,9 +162,8 @@ void cmd_copy_msg(struct session *sessio
+ return;
+ }
+
+- session_message(session,
+- "Copied message %lu to \"%s\", displaying %lu out of %lu",
+- msgno, mailbox, next, zm->nmsgs);
++ session_message(session, "Copied message %lu to \"%s\", displaying %lu out of %lu",
++ msgno, utf8_from_imaputf7(request->pool, mailbox), next, zm->nmsgs);
+ session_log(session, "[cmd_copy_msg] Copied message %lu to %s",
+ msgno, mailbox);
+
+Index: prayer-1.0.18/prayer/cmd_create.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_create.c 2007-03-10 19:38:53.919358672 +0100
++++ prayer-1.0.18/prayer/cmd_create.c 2007-03-10 19:39:30.554075959 +0100
+@@ -21,7 +21,8 @@ void cmd_create(struct session *session)
+
+ request_decode_get(request);
+
+- if ((mailbox = assoc_lookup(request->form, "name")) == NIL) {
++ if ((mailbox = utf8_to_imaputf7(request->pool,
++ assoc_lookup(request->form, "name"))) == NIL) {
+ session_redirect(session, request, "error");
+ return;
+ }
+@@ -58,12 +59,13 @@ void cmd_create(struct session *session)
+ if (ml_have_error()) {
+ session_message(session,
+ "Failed to create directory: %s - %s",
+- path, ml_errmsg());
++ utf8_from_imaputf7(request->pool, path), ml_errmsg());
+ session_log(session,
+ "[cmd_create] Failed to create directory: %s",
+ path);
+ } else {
+- session_message(session, "Created directory: %s", path);
++ session_message(session, "Created directory: %s",
++ utf8_from_imaputf7(request->pool, path));
+ session_log(session,
+ "[cmd_create] Created directory: %s", path);
+ dircache_add(session->dircache, path, T);
+@@ -72,12 +74,13 @@ void cmd_create(struct session *session)
+ if (ml_have_error()) {
+ session_message(session,
+ "Failed to create mailbox: %s - %s",
+- path, ml_errmsg());
++ utf8_from_imaputf7(request->pool, path), ml_errmsg());
+ session_log(session,
+ "[cmd_create] Failed to create mailbox: %s",
+ path);
+ } else {
+- session_message(session, "Created mailbox: %s", path);
++ session_message(session, "Created mailbox: %s",
++ utf8_from_imaputf7(request->pool, path));
+ session_log(session, "[cmd_create] Created mailbox: %s",
+ path);
+ dircache_add(session->dircache, path, NIL);
+Index: prayer-1.0.18/prayer/cmd_dir_check.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_dir_check.c 2007-03-10 19:38:53.979366397 +0100
++++ prayer-1.0.18/prayer/cmd_dir_check.c 2007-03-10 19:39:30.584079823 +0100
+@@ -43,7 +43,7 @@ void cmd_dir_check(struct session *sessi
+
+ session_message(session,
+ "Refreshed directory cache for directory \"%s\" at %s",
+- session->cwd, current_time());
++ utf8_from_imaputf7(request->pool, session->cwd), current_time());
+ dircache_invalidate(session, session->cwd);
+
+ if (request->argc >= 2)
+Index: prayer-1.0.18/prayer/cmd_display.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_display.c 2007-03-10 19:38:54.049375411 +0100
++++ prayer-1.0.18/prayer/cmd_display.c 2007-03-10 19:39:30.644087551 +0100
+@@ -567,9 +567,11 @@ show_textpart(struct session *session, M
+ struct request *request = session->request;
+ struct buffer *b = request->write_buffer;
+ char *init_msg, *decode_msg;
++ char *charset = "ISO-8859-1";
+ unsigned long len;
+ BODY *body = NIL;
+ BOOL show_html = NIL;
++ PARAMETER *parameter;
+
+ if (!(body = ml_body(session, stream, msgno, section)))
+ return(NIL);
+@@ -580,6 +582,13 @@ show_textpart(struct session *session, M
+ return(NIL);
+ }
+
++ for (parameter = body->parameter; parameter; parameter = parameter->next) {
++ if (strcasecmp(parameter->attribute, "charset") == 0) {
++ charset = parameter->value;
++ break;
++ }
++ }
++
+ if (!(init_msg = ml_fetchbody(session, stream, msgno, section, &len)))
+ return(NIL);
+
+@@ -637,10 +646,10 @@ show_textpart(struct session *session, M
+ if (show_html) {
+ if (decode_msg == init_msg)
+ decode_msg = strdup(init_msg);
+- html_secure(session, b, decode_msg);
++ html_secure(session, b, utf8_from_string(request->pool, charset, decode_msg, len));
+ } else {
+ bprintf(b, "<pre>" CRLF);
+- wrap_line_html(session, b, decode_msg, 80);
++ wrap_line_html(session, b, utf8_from_string(request->pool, charset, decode_msg, len), 80);
+ bprintf(b, "</pre>" CRLF);
+ }
+
+Index: prayer-1.0.18/prayer/cmd_favourites.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_favourites.c 2007-03-10 19:38:54.109383138 +0100
++++ prayer-1.0.18/prayer/cmd_favourites.c 2007-03-10 19:39:30.664090126 +0100
+@@ -104,7 +104,7 @@ generate_directory_line(struct session *
+ html_session_bprintf(session, b, "<a href=\"", "\">" CRLF,
+ "favourites?cwd=%s", name);
+
+- html_quote_string(b, dir);
++ html_quote_string(b, utf8_from_imaputf7(pool, dir));
+ bprintf(b, "</a></td>" CRLF);
+ bputs(b, "<td>&nbsp;</td>" CRLF);
+ bputs(b, "<td>&nbsp;</td>" CRLF);
+@@ -134,7 +134,7 @@ generate_favourite_folder_line(struct se
+ bputs(b, "</td>" CRLF);
+
+ bputs(b, "<td nowrap>" CRLF);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bputs(b, "</td>" CRLF);
+
+ html_textlink_mailbox_table(session, b, "unsubscribe", name,
+@@ -170,7 +170,7 @@ generate_folder_line(struct session *ses
+ bputs(b, "</td>" CRLF);
+
+ bprintf(b, "<td nowrap>" CRLF);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bprintf(b, "</td>" CRLF);
+
+ html_textlink_mailbox_table(session, b, "subscribe", name,
+@@ -208,8 +208,8 @@ html_folderlist(struct session *session,
+ bputs(b, "<tr>");
+ bputs(b, "<td>");
+ bputs(b, "<table><tr><td>" CRLF);
+- html_form_field(b, "Directory", "cwd", session->cwd, 32);
+- html_form_field(b, "Filter", "filter", session->dir_filter, 12);
++ html_form_field(b, "Directory", "cwd", utf8_from_imaputf7(pool, session->cwd), 32);
++ html_form_field(b, "Filter", "filter", utf8_from_imaputf7(pool, session->dir_filter), 12);
+ html_form_submit(b, "submit", "Apply");
+ bputs(b, "</td></tr></table>" CRLF);
+ bputs(b, "</td>" CRLF);
+Index: prayer-1.0.18/prayer/cmd_filter_select.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_filter_select.c 2007-03-10 19:38:54.159389577 +0100
++++ prayer-1.0.18/prayer/cmd_filter_select.c 2007-03-10 19:39:30.694093991 +0100
+@@ -68,7 +68,7 @@ generate_directory_line(struct session *
+ html_session_bprintf(session, b, "<td><a href=\"", "\">" CRLF,
+ "filter_select?cwd=%s", name);
+
+- html_quote_string(b, dir);
++ html_quote_string(b, utf8_from_imaputf7(pool, dir));
+ bprintf(b, "</a></td>" CRLF);
+
+ bputs(b, "</tr>" CRLF);
+@@ -93,7 +93,7 @@ generate_favourite_folder_line(struct se
+ bputs(b, "</td>" CRLF);
+
+ bputs(b, "<td>" CRLF);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bputs(b, "</td>" CRLF);
+
+ html_textlink_mailbox_table(session, b, "filter_mbox/copy", name,
+@@ -124,7 +124,7 @@ generate_folder_line(struct session *ses
+ bputs(b, "</td>" CRLF);
+
+ bputs(b, "<td>" CRLF);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bputs(b, "</td>" CRLF);
+
+ html_textlink_mailbox_table(session, b, "filter_mbox/copy", name,
+@@ -159,8 +159,8 @@ html_folderlist(struct session *session,
+ /* Change directory form, including back button */
+ html_form_start(session, b, "GET", "filter_select");
+
+- html_form_field(b, "Directory", "cwd", session->cwd, 32);
+- html_form_field(b, "Filter", "filter", session->dir_filter, 12);
++ html_form_field(b, "Directory", "cwd", utf8_from_imaputf7(pool, session->cwd), 32);
++ html_form_field(b, "Filter", "filter", utf8_from_imaputf7(pool, session->dir_filter), 12);
+ html_form_submit(b, "sub_apply", "Apply");
+ html_form_submit(b, "sub_cancel", "Cancel");
+ html_form_end(b);
+Index: prayer-1.0.18/prayer/cmd_folders.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_folders.c 2007-03-10 19:38:54.249401166 +0100
++++ prayer-1.0.18/prayer/cmd_folders.c 2007-03-10 19:39:30.734099143 +0100
+@@ -95,7 +95,7 @@ generate_directory_line(struct session *
+
+ html_session_bprintf(session, b, "<td><a href=\"", "\">" CRLF,
+ "folders?cwd=%s", name);
+- html_quote_string(b, dir);
++ html_quote_string(b, utf8_from_imaputf7(pool, dir));
+ bprintf(b, "</a></td>" CRLF);
+
+ html_textlink_mailbox_table(session, b, "rename", name, "Rename");
+@@ -127,7 +127,7 @@ generate_folder_line(struct session *ses
+ html_session_bprintf(session, b, "<td nowrap><a href=\"", "\">" CRLF,
+ "change/%s", name);
+
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bprintf(b, "</a></td>" CRLF);
+
+ if (strcmp(name, "INBOX") != 0) {
+@@ -165,8 +165,8 @@ html_folderlist(struct session *session,
+ else
+ bputs(b, "<tr>");
+ bputs(b, "<td><table><tr><td>" CRLF);
+- html_form_field(b, "Directory", "cwd", session->cwd, 32);
+- html_form_field(b, "Filter", "filter", session->dir_filter, 12);
++ html_form_field(b, "Directory", "cwd", utf8_from_imaputf7(pool, session->cwd), 32);
++ html_form_field(b, "Filter", "filter", utf8_from_imaputf7(pool, session->dir_filter), 12);
+ html_form_submit(b, "submit", "Apply");
+ bputs(b, "</td></tr></table></td>" CRLF);
+ bputs(b, "<td align=\"right\"><table><tr>" CRLF);
+@@ -267,7 +267,7 @@ void cmd_folders(struct session *session
+ request_decode_get(request);
+ h = request->form;
+
+- if ((s = assoc_lookup(h, "cwd"))) {
++ if ((s = utf8_to_imaputf7(request->pool, assoc_lookup(h, "cwd")))) {
+ string_canon_decode(s);
+
+ if (string_filename_valid(s))
+@@ -277,7 +277,7 @@ void cmd_folders(struct session *session
+ "Path contained illegal characters");
+ }
+
+- if ((s = assoc_lookup(h, "filter"))
++ if ((s = utf8_to_imaputf7(request->pool, assoc_lookup(h, "filter")))
+ && (strcmp(s, session->dir_filter) != 0))
+ string_strdup(&session->dir_filter, s);
+ }
+Index: prayer-1.0.18/prayer/cmd_forward1.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_forward1.c 2007-03-10 19:38:54.309408891 +0100
++++ prayer-1.0.18/prayer/cmd_forward1.c 2007-03-10 19:39:30.744100430 +0100
+@@ -157,6 +157,8 @@ add_text(struct session *session,
+ char *init_msg, *decode_msg, *type;
+ BODY *body = NIL;
+ char *section = "1";
++ PARAMETER *parameter;
++ char *charset = "ISO-8859-1";
+
+ if (!(text = ml_fetch_header(session, stream, msgno,
+ NIL, hdrslist, &len, 0)))
+@@ -204,6 +206,13 @@ add_text(struct session *session,
+ } else
+ section = "1";
+
++ for (parameter = body->parameter; parameter; parameter = parameter->next) {
++ if (strcasecmp(parameter->attribute, "charset") == 0) {
++ charset = parameter->value;
++ break;
++ }
++ }
++
+ if (!(init_msg = ml_fetchbody(session, stream, msgno, section, &len)))
+ return (NIL);
+
+Index: prayer-1.0.18/prayer/cmd_list.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_list.c 2007-03-10 19:38:54.379417906 +0100
++++ prayer-1.0.18/prayer/cmd_list.c 2007-03-10 19:39:30.794106870 +0100
+@@ -143,7 +143,7 @@ cmd_list_toolbar_hdr(struct session *ses
+ bputs(b, "</tr></table></td>" CRLF);
+
+ bputs(b, "<td width=\"33%\" align=\"center\"><strong>\"");
+- html_quote_string(b, session->foldername);
++ html_quote_string(b, utf8_from_imaputf7(session->request->pool, session->foldername));
+ bputs(b, "\" with ");
+ bprintf(b, "%lu%s %s" CRLF, count, marked, messages);
+ bputs(b, "</strong></td>" CRLF);
+@@ -378,7 +378,7 @@ cmd_list_msg(struct session *session,
+ (char *) rfc1522_decode(pool_alloc(request->pool, strlen(string)),
+ strlen(string), string, NIL);
+
+- string = string_prune(request->pool, string, config->list_addr_maxlen);
++ string = utf8_prune(request->pool, string, config->list_addr_maxlen);
+
+ if (use_to)
+ string = pool_strcat(request->pool, "To: ", string);
+@@ -400,7 +400,7 @@ cmd_list_msg(struct session *session,
+ rfc1522_decode(pool_alloc(request->pool, strlen(string)),
+ strlen(string), string, NIL);
+
+- string = string_prune(request->pool, string,
++ string = utf8_prune(request->pool, string,
+ config->list_subject_maxlen);
+ } else
+ string = "(No subject)";
+Index: prayer-1.0.18/prayer/cmd_preferred.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_preferred.c 2007-03-10 19:38:54.429424344 +0100
++++ prayer-1.0.18/prayer/cmd_preferred.c 2007-03-10 19:39:30.824110733 +0100
+@@ -22,7 +22,8 @@ void cmd_preferred(struct session *sessi
+ if (string_filename_valid(name)) {
+ favourite_preferred(fl, name);
+ options->save = T;
+- session_message(session, "Making %s preferred folder", name);
++ session_message(session, "Making %s preferred folder",
++ utf8_from_imaputf7(request->pool, name));
+ } else
+ session_message(session,
+ "String contained illegal characters");
+Index: prayer-1.0.18/prayer/cmd_rename.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_rename.c 2007-03-10 19:38:54.499433358 +0100
++++ prayer-1.0.18/prayer/cmd_rename.c 2007-03-10 19:39:30.844113310 +0100
+@@ -63,7 +63,7 @@ generate_directory_line(struct session *
+ bprintf(b, "</a></td>" CRLF);
+ html_session_bprintf(session, b, "<td><a href=\"", "\">" CRLF,
+ "rename?cwd=%s", name);
+- html_quote_string(b, dir);
++ html_quote_string(b, utf8_from_imaputf7(pool, dir));
+ bprintf(b, "</a></td></tr>" CRLF);
+ }
+
+@@ -84,7 +84,7 @@ generate_folder_line(struct session *ses
+ html_icon(session, b, "dir.gif", "[mailbox]");
+ bputs(b, "</a></td>" CRLF);
+ bputs(b, "<td><a>" CRLF);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bputs(b, "</a></td></tr>" CRLF);
+ }
+
+@@ -107,7 +107,7 @@ rename_html_folderlist(struct session *s
+ if (session->rename_foldername)
+ bprintf(b,
+ "<h2 align=\"center\">Rename folder %s to ...</h2>" CRLF,
+- session->rename_foldername);
++ utf8_from_imaputf7(pool, session->rename_foldername));
+
+ /* Change directory form, including back button */
+ html_form_start(session, b, "GET", "rename");
+@@ -118,8 +118,8 @@ rename_html_folderlist(struct session *s
+ else
+ bputs(b, "<tr>");
+ bputs(b, "<td>" CRLF);
+- html_form_field(b, "Directory", "cwd", session->cwd, 32);
+- html_form_field(b, "Filter", "filter", session->dir_filter, 12);
++ html_form_field(b, "Directory", "cwd", utf8_from_imaputf7(pool, session->cwd), 32);
++ html_form_field(b, "Filter", "filter", utf8_from_imaputf7(pool, session->dir_filter), 12);
+ html_form_submit(b, "submit", "Apply");
+ bputs(b, "</td></tr></table>" CRLF);
+ html_form_end(b);
+Index: prayer-1.0.18/prayer/cmd_rename_item.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_rename_item.c 2007-03-10 19:38:54.569442372 +0100
++++ prayer-1.0.18/prayer/cmd_rename_item.c 2007-03-10 19:39:30.864115885 +0100
+@@ -29,7 +29,7 @@ void cmd_rename_item(struct session *ses
+ }
+
+ if (!(session->rename_foldername &&
+- (newname = assoc_lookup(request->form, "name")))) {
++ (newname = utf8_to_imaputf7(pool, assoc_lookup(request->form, "name"))))) {
+ session_redirect(session, request, "folders");
+ return;
+ }
+@@ -70,11 +70,13 @@ void cmd_rename_item(struct session *ses
+ if (ml_have_error()) {
+ session_message(session,
+ "Failed to rename mailbox: %s - %s",
+- session->rename_foldername, ml_errmsg());
++ utf8_from_imaputf7(pool, session->rename_foldername),
++ ml_errmsg());
+ } else {
+ session_message(session,
+ "Renamed mailbox %s to be %s",
+- session->rename_foldername, newname);
++ utf8_from_imaputf7(pool, session->rename_foldername),
++ newname);
+ dircache_rename(session->dircache, session->rename_foldername,
+ newname);
+ }
+Index: prayer-1.0.18/prayer/cmd_reply2.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_reply2.c 2007-03-10 19:38:54.619448812 +0100
++++ prayer-1.0.18/prayer/cmd_reply2.c 2007-03-10 19:39:30.894119749 +0100
+@@ -51,6 +51,8 @@ add_text(struct session *session, struct
+ char *init_msg, *decode_msg, *type;
+ unsigned long len;
+ char *text, *s;
++ PARAMETER *parameter;
++ char *charset = "ISO-8859-1";
+
+ if ((body = ml_body(session, stream, msgno, "1")) == NIL)
+ return(NIL);
+@@ -91,6 +93,13 @@ add_text(struct session *session, struct
+ return(T);
+ }
+
++ for (parameter = body->parameter; parameter; parameter = parameter->next) {
++ if (strcasecmp(parameter->attribute, "charset") == 0) {
++ charset = parameter->value;
++ break;
++ }
++ }
++
+ /* Got a valid text section to display */
+ if (!(init_msg=ml_fetchbody(session, stream, msgno, section, &len)))
+ return(NIL);
+@@ -133,11 +142,11 @@ add_text(struct session *session, struct
+ struct buffer *b = buffer_create(pool, 8192);
+ if (decode_msg == init_msg)
+ decode_msg = strdup(init_msg);
+- html_secure_strip_all(b, decode_msg);
++ html_secure_strip_all(b, utf8_from_string(pool, charset, decode_msg, len));
+
+ text = buffer_fetch(b, 0, buffer_size(b), NIL);
+ } else
+- text = decode_msg;
++ text = utf8_from_string(pool, charset, decode_msg, len);
+
+ bputs(b, ">");
+ for (s = text; *s;) {
+Index: prayer-1.0.18/prayer/cmd_rm.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_rm.c 2007-03-10 19:38:54.669455249 +0100
++++ prayer-1.0.18/prayer/cmd_rm.c 2007-03-10 19:39:30.914122325 +0100
+@@ -32,16 +32,20 @@ void cmd_rm(struct session *session)
+ bprintf(b,
+ "<h2 align=\"center\">Confirm directory deletion: \"%s\"</h2>"
+ CRLF,
+- string_canon_decode(pool_strdup
+- (request->pool, request->argv[2])));
++ utf8_from_imaputf7(request->pool,
++ string_canon_decode(pool_strdup
++ (request->pool,
++ request->argv[2]))));
+
+ } else {
+ html_start(session, b, "Confirm Mail folder deletion");
+ bprintf(b,
+ "<h2 align=\"center\">Confirm folder deletion: \"%s\"</h2>"
+ CRLF,
+- string_canon_decode(pool_strdup
+- (request->pool, request->argv[2])));
++ utf8_from_imaputf7(request->pool,
++ string_canon_decode(pool_strdup
++ (request->pool,
++ request->argv[2]))));
+ }
+
+ cmd = pool_printf(request->pool, "rm1/%s/%s",
+Index: prayer-1.0.18/prayer/cmd_rm1.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_rm1.c 2007-03-10 19:38:54.719461687 +0100
++++ prayer-1.0.18/prayer/cmd_rm1.c 2007-03-10 19:39:30.944126189 +0100
+@@ -55,7 +55,7 @@ void cmd_rm1(struct session *session)
+ session_message(session, "%s", ml_errmsg()); /* Includes name */
+ } else {
+ session_message(session, "Deleted directory: \"%s\"", mailbox);
+- dircache_delete(session->dircache, mailbox);
++ dircache_delete(session->dircache, utf8_from_imaputf7(request->pool, mailbox));
+ }
+ } else {
+ ml_delete(session, stream,
+@@ -67,7 +67,8 @@ void cmd_rm1(struct session *session)
+ } else if (ml_have_error()) {
+ session_message(session, "%s", ml_errmsg()); /* Includes name */
+ } else {
+- session_message(session, "Deleted mailbox: \"%s\"", mailbox);
++ session_message(session, "Deleted mailbox: \"%s\"",
++ utf8_from_imaputf7(request->pool, mailbox));
+ dircache_delete(session->dircache, mailbox);
+ if (favourite_delete(fl, mailbox))
+ options->save = T;
+Index: prayer-1.0.18/prayer/cmd_subscribe.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_subscribe.c 2007-03-10 19:38:54.769468126 +0100
++++ prayer-1.0.18/prayer/cmd_subscribe.c 2007-03-10 19:39:30.954127477 +0100
+@@ -23,7 +23,7 @@ void cmd_subscribe(struct session *sessi
+ if (favourite_add(fl, name)) {
+ options->save = T;
+ session_message(session, "Added %s to favourites list",
+- name);
++ utf8_from_imaputf7(request->pool, name));
+ } else
+ session_message(session, "Already on favourites list",
+ name);
+Index: prayer-1.0.18/prayer/cmd_transfer.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_transfer.c 2007-03-10 19:38:54.829475852 +0100
++++ prayer-1.0.18/prayer/cmd_transfer.c 2007-03-10 19:39:30.994132629 +0100
+@@ -93,7 +93,7 @@ generate_directory_line(struct session *
+ html_session_bprintf(session, b,
+ "<td><a href=\"", "\">" CRLF, "transfer?cwd=%s",
+ name);
+- html_quote_string(b, dir);
++ html_quote_string(b, utf8_from_imaputf7(pool, dir));
+ bprintf(b, "</a></td>" CRLF);
+
+ bputs(b, "<td>&nbsp;</td>" CRLF);
+@@ -125,7 +125,7 @@ generate_favourite_folder_line(struct se
+ bputs(b, "</a></td>" CRLF);
+
+ bputs(b, "<td><a>" CRLF);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bputs(b, "</a></td>" CRLF);
+
+ bprintf(b, "<td><a href=\"%s/NOSEQ/transfer/%s/%s\">" CRLF,
+@@ -159,7 +159,7 @@ generate_folder_line(struct session *ses
+ bputs(b, "</a></td>" CRLF);
+
+ bputs(b, "<td>" CRLF);
+- html_quote_string(b, folder);
++ html_quote_string(b, utf8_from_imaputf7(pool, folder));
+ bputs(b, "</td>" CRLF);
+
+ bprintf(b, "<td><a href=\"%s/NOSEQ/transfer/%s/%s\">" CRLF,
+@@ -197,8 +197,8 @@ html_folderlist(struct session *session,
+ else
+ bputs(b, "<tr>");
+ bputs(b, "<td><table><tr><td>" CRLF);
+- html_form_field(b, "Directory", "cwd", session->cwd, 32);
+- html_form_field(b, "Filter", "filter", session->dir_filter, 12);
++ html_form_field(b, "Directory", "cwd", utf8_from_imaputf7(pool, session->cwd), 32);
++ html_form_field(b, "Filter", "filter", utf8_from_imaputf7(pool, session->dir_filter), 12);
+ html_form_submit(b, "submit", "Apply");
+ bputs(b, "</td></tr></table></td>" CRLF);
+ bputs(b, "<td align=\"right\"><table><tr><td>" CRLF);
+@@ -332,7 +332,8 @@ static BOOL download(struct session *ses
+ OP_READONLY);
+
+ if (!session->xfer_stream) {
+- session_message(session, "Failed to open mail folder: %s", name);
++ session_message(session, "Failed to open mail folder: %s",
++ utf8_from_imaputf7(request->pool, name));
+ session_log(session,
+ "[cmd_transfer] Failed to open mail folder: %s", name);
+ return (NIL);
+@@ -343,7 +344,7 @@ static BOOL download(struct session *ses
+ /* Fetch overview for all messages in folder */
+ if (!ml_fetch_overview(session, tstream, "1:*", NIL)) {
+ session_message(session, "Failed to fetch folder overview: %s",
+- name);
++ utf8_from_imaputf7(request->pool, name));
+ session_log(session,
+ "[cmd_transfer]] Failed to fetch overview: %s", name);
+ return (NIL);
+Index: prayer-1.0.18/prayer/cmd_unsubscribe.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_unsubscribe.c 2007-03-10 19:38:54.919487442 +0100
++++ prayer-1.0.18/prayer/cmd_unsubscribe.c 2007-03-10 19:39:31.014135204 +0100
+@@ -23,10 +23,11 @@ void cmd_unsubscribe(struct session *ses
+ if (favourite_delete(fl, name)) {
+ options->save = T;
+ session_message(session, "Removed %s from favourites list",
+- name);
++ utf8_from_imaputf7(request->pool, name));
+ } else
+ session_message(session,
+- "Folder %s not on favourites list", name);
++ "Folder %s not on favourites list",
++ utf8_from_imaputf7(request->pool, name));
+ } else
+ session_message(session,
+ "String contained illegal characters");
+Index: prayer-1.0.18/prayer/cmd_upload_select.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/cmd_upload_select.c 2007-03-10 19:38:54.969493881 +0100
++++ prayer-1.0.18/prayer/cmd_upload_select.c 2007-03-10 19:39:31.034137781 +0100
+@@ -122,8 +122,8 @@ html_folderlist(struct session *session,
+
+ /* Change directory form, including back button */
+ html_form_start(session, b, "GET", "upload_select");
+- html_form_field(b, "Directory", "cwd", session->cwd, 32);
+- html_form_field(b, "Filter", "filter", session->dir_filter, 12);
++ html_form_field(b, "Directory", "cwd", utf8_from_imaputf7(pool, session->cwd), 32);
++ html_form_field(b, "Filter", "filter", utf8_from_imaputf7(pool, session->dir_filter), 12);
+ html_form_submit(b, "submit", "Apply");
+ html_form_end(b);
+
+Index: prayer-1.0.18/prayer/draft.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/draft.c 2007-03-10 19:38:55.019500318 +0100
++++ prayer-1.0.18/prayer/draft.c 2007-03-10 19:39:31.074142931 +0100
+@@ -477,7 +477,7 @@ void draft_update_body(struct draft *d,
+ } else
+ d->body = pool_strdup(d->pool, d->body);
+
+- draft_transliterate_1252((unsigned char *)d->body);
++ /*draft_transliterate_1252((unsigned char *)d->body);*/
+ }
+
+ /* draft_update() ********************************************************
+@@ -535,7 +535,7 @@ void draft_update(struct draft *d, struc
+ else
+ d->body = pool_maybe_strdup(d->pool, d->body);
+
+- draft_transliterate_1252((unsigned char *)d->body);
++ /*draft_transliterate_1252((unsigned char *)d->body);*/
+
+ d->in_reply_to = pool_maybe_strdup(d->pool, d->in_reply_to);
+ d->references = pool_maybe_strdup(d->pool, d->references);
+@@ -1164,7 +1164,7 @@ static void draft_make_multipart(struct
+ bprintf(b, CRLF "--%s" CRLF, cookie);
+
+ bputs(b,
+- "Content-Type: text/plain; format=flowed; charset=ISO-8859-1"
++ "Content-Type: text/plain; format=flowed; charset=UTF-8"
+ CRLF);
+ if (need_qprint)
+ bputs(b, "Content-Transfer-Encoding: QUOTED-PRINTABLE" CRLF);
+@@ -1323,7 +1323,7 @@ static void draft_make_single_part(struc
+ need_qprint = T;
+
+ bputs(b,
+- "Content-Type: text/plain; format=flowed; charset=ISO-8859-1"
++ "Content-Type: text/plain; format=flowed; charset=UTF-8"
+ CRLF);
+ if (need_qprint)
+ bputs(b, "Content-Transfer-Encoding: quoted-printable" CRLF);
+@@ -1418,7 +1418,7 @@ char *draft_make_msg(struct draft *draft
+
+ /* Encode using temporary buffer if required */
+ s = (char *) rfc1522_encode(tmp, len,
+- (unsigned char *) s, "ISO-8859-1");
++ (unsigned char *) s, "UTF-8");
+ bprintf(mb, "Subject: %s" CRLF, s);
+ free(tmp);
+ }
+Index: prayer-1.0.18/prayer/html.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/html.c 2007-03-10 19:38:55.069506757 +0100
++++ prayer-1.0.18/prayer/html.c 2007-03-10 19:39:31.134150660 +0100
+@@ -35,7 +35,7 @@ void html_start(struct session *session,
+ bprintf(b, "<title>Webmail service: %s</title>" CRLF, title);
+ bputs(b, "<meta name=\"robots\" content=\"none\">" CRLF);
+ bputs(b, ("<meta http-equiv=\"Content-Type\" "
+- "content=\"text/html; charset=ISO-8859-1\">" CRLF));
++ "content=\"text/html; charset=UTF-8\">" CRLF));
+ bputs(b, "</head>" CRLF);
+
+ bputs(b, "<body");
+@@ -502,7 +502,7 @@ void
+ html_form_start(struct session *s, struct buffer *b, char *method,
+ char *cmd)
+ {
+- bprintf(b, "<form method=\"%s\" accept-charset=\"ISO-8859-1\"",
++ bprintf(b, "<form method=\"%s\" accept-charset=\"UTF-8\"",
+ method);
+ html_session_bputs(s, b, " action=\"", "\">" CRLF, cmd);
+ }
+@@ -854,7 +854,7 @@ html_banner_toolbar_favourites(struct se
+ string_canon_encode(request->pool, li->name));
+ }
+
+- html_quote_string(b, li->name);
++ html_quote_string(b, utf8_from_imaputf7(request->pool, li->name));
+ bputs(b, "</option>" CRLF);
+ }
+ bputs(b, "</select>" CRLF);
+@@ -926,14 +926,14 @@ html_banner_toolbar_folders(struct sessi
+ if (prefix) {
+ bprintf(b, "<option value=\"%s%s\">",
+ prefix, string_canon_encode(request->pool, dl->name));
+- html_quote_string(b, session->cwd);
++ html_quote_string(b, utf8_from_imaputf7(request->pool, session->cwd));
+ html_quote_string(b, "/");
+- html_quote_string(b, dl->name);
++ html_quote_string(b, utf8_from_imaputf7(request->pool, dl->name));
+ bputs(b, "</option>" CRLF);
+ } else if (strcasecmp(dl->name, "INBOX") != 0) {
+ bprintf(b, "<option value=\"%s\">",
+ string_canon_encode(request->pool, dl->name));
+- html_quote_string(b, dl->name);
++ html_quote_string(b, utf8_from_imaputf7(request->pool, dl->name));
+ bputs(b, "</option>" CRLF);
+ }
+ }
+@@ -1077,7 +1077,8 @@ html_banner_toolbar(struct session *sess
+ void html_quote_char(struct buffer *b, unsigned char c)
+ {
+ if (c > 127) {
+- bprintf(b, "&#%lu;", (unsigned long) c);
++ /*bprintf(b, "&#%lu;", (unsigned long) c);*/
++ bputc(b, c);
+ } else
+ switch (c) {
+ case '"':
+Index: prayer-1.0.18/prayer/prayer_session.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/prayer_session.h 2007-03-10 19:39:29.243907238 +0100
++++ prayer-1.0.18/prayer/prayer_session.h 2007-03-10 19:39:31.844242104 +0100
+@@ -74,3 +74,4 @@ extern int errno; /* just
+ #include "checksum.h"
+ #include "wrap.h"
+ #include "portlist.h"
++#include "utf8.h"
+Index: prayer-1.0.18/prayer/response.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/response.c 2007-03-10 19:38:55.169519634 +0100
++++ prayer-1.0.18/prayer/response.c 2007-03-10 19:39:31.904249831 +0100
+@@ -405,7 +405,7 @@ void response_error(struct request *requ
+ bputs(b, "Expires: ");
+ response_date_string(b, time(NIL));
+ bputs(b, "" CRLF);
+- bprintf(b, "Content-Type: text/html; charset=iso-8859-1" CRLF);
++ bprintf(b, "Content-Type: text/html; charset=UTF-8" CRLF);
+ bprintf(b, "Content-Length: %lu" CRLF,
+ buffer_size(request->write_buffer));
+ response_header_end(request);
+@@ -437,7 +437,7 @@ void response_html(struct request *reque
+
+ /* Generate simple header block for HTML */
+ response_header_start(request, status);
+- bputs(b, "Content-Type: text/html; charset=iso-8859-1" CRLF);
++ bputs(b, "Content-Type: text/html; charset=UTF-8" CRLF);
+
+ #ifdef STELLA_HACK
+ bputs(b, "Expires: ");
+Index: prayer-1.0.18/prayer/rfc1522.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/rfc1522.c 2007-03-10 19:38:55.249529936 +0100
++++ prayer-1.0.18/prayer/rfc1522.c 2007-03-10 19:39:31.934253696 +0100
+@@ -162,6 +162,7 @@ char **charset;
+ unsigned char *rv = NULL, *p;
+ char *start = s, *sw, *cset, *enc, *txt, *ew, **q, *lang;
+ unsigned long l;
++ unsigned char *src;
+ int i;
+
+ *d = '\0'; /* init destination */
+@@ -171,15 +172,16 @@ char **charset;
+ while (s && (sw = strstr(s, RFC1522_INIT))) {
+ /* validate the rest of the encoded-word */
+ if (rfc1522_valid(sw, &cset, &enc, &txt, &ew)) {
+- if (!rv)
++ if (!rv)
+ rv = d; /* remember start of dest */
+
+ /* copy everything between s and sw to destination */
+ for (i = 0; &s[i] < sw; i++)
+ if (!isspace((unsigned char) s[i])) { /* if some non-whitespace */
+- while (s < sw && d - rv < len - 1)
+- *d++ = (unsigned char) *s++;
+-
++ /* Assume that any 8 bit characters are Latin-1 */
++ utf8_print(VAR_CHAR_SET, NULL,
++ &d, len - (d - rv) - 1,
++ (unsigned char**)&s, sw - s);
+ break;
+ }
+
+@@ -188,23 +190,12 @@ char **charset;
+ if ((lang = strchr(cset, '*')))
+ *lang++ = '\0';
+
+-
+- /* Insert text explaining charset if we don't know what it is */
+- if ((strcasecmp((char *) cset, VAR_CHAR_SET))
+- && strcasecmp((char *) cset, "US-ASCII")) {
+- if (charset) {
+- if (!*charset) /* only write first charset */
+- *charset = cpystr(cset);
+- } else {
+- if (d - rv < len - 1)
+- *d++ = '[';
+-
+- sstrncpy((char **) &d, cset, len - 1 - (d - rv));
+- if (d - rv < len - 1)
+- *d++ = ']';
+- if (d - rv < len - 1)
+- *d++ = SPACE;
+- }
++ if (!*cset) {
++ cset = UNKNOWN_CHARSET;
++ }
++ if (charset) {
++ if (!*charset) /* only write first charset */
++ *charset = cpystr(cset);
+ }
+
+ /* based on encoding, write the encoded text to output buffer */
+@@ -228,15 +219,14 @@ char **charset;
+ } else
+ q = NULL;
+
+- if ((p =
++ if ((src = p =
+ rfc822_qprint((unsigned char *) txt, strlen(txt),
+ &l))) {
+- strncpy((char *) d, (char *) p, len - 1 - (d - rv));
+- d[len - 1 - (d - rv)] = '\0';
++ utf8_print(cset, VAR_CHAR_SET,
++ &d, len - 1 - (d - rv),
++ &src, l);
++ *d = '\0';
+ fs_give((void **) &p); /* free encoded buf */
+- d += l; /* advance dest ptr to EOL */
+- if (d - rv > len - 1)
+- d = rv + len - 1;
+ } else {
+ if (q)
+ fs_give((void **) &q);
+@@ -255,22 +245,26 @@ char **charset;
+
+ case 'B': /* 'B' encoding */
+ case 'b':
+- if ((p =
++ if ((src = p =
+ rfc822_base64((unsigned char *) txt, strlen(txt),
+ &l))) {
+- strncpy((char *) d, (char *) p, len - 1 - (d - rv));
+- d[len - 1 - (d - rv)] = '\0';
++ utf8_print(cset, VAR_CHAR_SET,
++ &d, len - 1 - (d - rv),
++ &src, l);
++ *d = '\0';
+ fs_give((void **) &p); /* free encoded buf */
+- d += l; /* advance dest ptr to EOL */
+- if (d - rv > len - 1)
+- d = rv + len - 1;
+ } else
+ goto bogus;
+
+ break;
+
++ bogus:
+ default:
+- sstrncpy((char **) &d, txt, len - 1 - (d - rv));
++ src = txt;
++ utf8_print(VAR_CHAR_SET, NULL,
++ &d, len - 1 - (d - rv),
++ (unsigned char **)&src, ew - txt);
++ *d = '\0';
+ break;
+ }
+
+@@ -283,6 +277,7 @@ char **charset;
+
+ if (lang)
+ lang[-1] = '*';
++
+ } else {
+
+ /*
+@@ -291,28 +286,38 @@ char **charset;
+
+ /* if already copying to destn, copy it */
+ if (rv) {
+- strncpy((char *) d, s,
+- (int) min((l = (sw - s) + RFC1522_INIT_L),
+- len - 1 - (d - rv)));
+- d += l; /* advance d, tie off text */
+- if (d - rv > len - 1)
+- d = rv + len - 1;
++ utf8_print(VAR_CHAR_SET, NULL,
++ &d, len - 1 - (d - rv),
++ (unsigned char**)&s, sw - s);
+ *d = '\0';
+- s += l; /* advance s beyond intro */
+ } else
+ s += ((sw - s) + RFC1522_INIT_L);
+ }
+ }
+
+- if (rv && *s) /* copy remaining text */
+- strncat((char *) rv, s, len - 1 - strlen((char *) rv));
++ if (rv && *s) { /* copy remaining text */
++ utf8_print(VAR_CHAR_SET, NULL,
++ &d, len - 1 - (d - rv),
++ (unsigned char**)&s, strlen(s));
++ *d = '\0';
++ }
+
+ /* BUG: MUST do code page mapping under DOS after decoding */
+
+- return (rv ? rv : (unsigned char *) start);
++ if (rv) return rv;
++
++ for (s = start; *s; s++) {
++ if (*s & 0x80) {
++ rv = d;
++ utf8_print(VAR_CHAR_SET, NULL,
++ &d, len - 1,
++ (unsigned char**)&start, strlen(s));
++ *d = '\0';
++ return rv;
+
+- bogus:
+- return ((unsigned char *) start);
++ }
++ }
++ return (unsigned char *) start;
+ }
+
+
+@@ -364,7 +369,7 @@ int c;
+ int rfc1522_valenc(c)
+ int c;
+ {
+- return (!(c == '?' || c == SPACE) && isprint((unsigned char) c));
++ return (!(c == '?' /*|| c == SPACE*/) && isprint((unsigned char) c));
+ }
+
+
+@@ -386,7 +391,7 @@ char **endp;
+ &e)
+ && rfc1522_token(++e, rfc1522_valtok, RFC1522_DLIM, &t)
+ && rfc1522_token(++t, rfc1522_valenc, RFC1522_TERM, &p)
+- && p - s <= RFC1522_MAXW;
++ /* && p - s <= RFC1522_MAXW */;
+
+ if (charset)
+ *charset = c;
+Index: prayer-1.0.18/prayer/utf8.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ prayer-1.0.18/prayer/utf8.c 2007-03-10 19:39:31.974258848 +0100
+@@ -0,0 +1,418 @@
++/* Copyright (c) Magnus Holmgren <magnus@kibibyte.se>,
++ * <holmgren@lysator.liu.se>
++ *
++ * This file is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ */
++
++#include "prayer_session.h"
++#include <iconv.h>
++
++#define JNK 0177
++#define UNI_REPLACEMENT_CHAR 0x0000FFFD
++#define UNI_REPLACEMENT_CHAR_UTF8 "\xEF\xBF\xBD"
++#define ICONV_CHUNK_SIZE 1024
++
++/* utf8_from_imaputf7() ***********************************************
++ *
++ * Convert a string encoded as modified UTF-7 to UTF-8.
++ * pool: Target pool for storage
++ * t: The string to convert
++ *
++ * Returns: A new, UTF-8-encoded string
++ *
++ * Note: This function tries hard to return something useful in case
++ * the input string is invalid in some way, rather than bail out
++ * and return NULL.
++ **********************************************************************/
++
++char *utf8_from_imaputf7(struct pool *pool, char *t)
++{
++ struct buffer *b = buffer_create(pool, 64);
++ BOOL base64mode = NIL;
++ int i, j;
++ unsigned char buf[4];
++ unsigned char *s;
++ unsigned long scalar; /* Unicode scalar value */
++ unsigned char c;
++
++ static char decode_base64[256] = {
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,076,077,JNK,JNK,JNK,
++ 064,065,066,067,070,071,072,073,074,075,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,000,001,002,003,004,005,006,007,010,011,012,013,014,015,016,
++ 017,020,021,022,023,024,025,026,027,030,031,JNK,JNK,JNK,JNK,JNK,
++ JNK,032,033,034,035,036,037,040,041,042,043,044,045,046,047,050,
++ 051,052,053,054,055,056,057,060,061,062,063,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,
++ JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK,JNK
++ };
++
++ if (!t) return NULL;
++
++ for (s = (unsigned char*)t; *s; s++) {
++ if (base64mode) {
++ if (*s == '-') {
++ if (j != 0 || c != 0) /* Some junk left */ {
++ bputs(b, UNI_REPLACEMENT_CHAR_UTF8);
++ }
++ base64mode = NIL;
++ continue;
++ }
++
++ if (decode_base64[*s] == JNK) {
++ break; /* Bail out */
++ }
++
++ switch (i++) {
++ case 0:
++ /* Top 6 bits of the first octet */
++ c = decode_base64[*s] << 2; break;
++ case 1:
++ /* Top 2 bits are bottom 2 bits of the first octet */
++ buf[j++] = c | (decode_base64[*s] >> 4);
++ /* and bottom 4 bits are top 4 bits of the second */
++ c = decode_base64[*s] << 4; break;
++ case 2:
++ /* Top 4 bits are bottom 4 bits of the second octet */
++ buf[j++] = c | (decode_base64[*s] >> 2);
++ /* and bottom 2 bits are top 2 bits of the third */
++ c = decode_base64[*s] << 6; break;
++ case 3:
++ /* Bottom 6 bits of the third octet */
++ buf[j++] = c | decode_base64[*s];
++ i = 0;
++ }
++
++ /* Check if we have a complete UTF-16 character */
++ if (j == 4) { /* We should now have a surrogate pair */
++ scalar = ((buf[0] & 3) << 18) + (buf[1] << 10)
++ + ((buf[2] & 3) << 8) + buf[3] + 0x10000;
++ }
++ else if (j == 2) {
++ if (buf[0] < 0xD8 || buf[0] > 0xDF) {
++ scalar = (buf[0] << 8) + buf[1];
++ }
++ else if (buf[0] > 0xDB) {
++ /* Error - invalid surrogate */
++ scalar = UNI_REPLACEMENT_CHAR;
++ }
++ else {
++ /* High surrogate found - need low surrogate */
++ continue;
++ }
++ }
++ else continue; /* Odd number of bytes */
++
++ if (scalar >= 0x110000) scalar = UNI_REPLACEMENT_CHAR;
++
++ if (scalar < 0x80) {
++ bputc(b, (unsigned char)scalar);
++ j = 0;
++ continue;
++ } else if (scalar < 0x800) {
++ bputc(b, 0xC0 | (scalar >> 6));
++ } else if (scalar < 0x10000) {
++ bputc(b, 0xE0 | (scalar >> 12));
++ } else {
++ bputc(b, 0xF0 | (scalar >> 18));
++ }
++
++ if (scalar >= 0x10000)
++ bputc(b, 0x80 | ((scalar >> 12) & 0x3F));
++ if (scalar >= 0x800)
++ bputc(b, 0x80 | ((scalar >> 6) & 0x3F));
++ bputc(b, 0x80 | (scalar & 0x3F));
++ j = 0;
++
++ }
++ else /* !base64mode */ {
++ if (*s == '&') {
++ if (*(s+1) == '-') {
++ bputc(b, '&');
++ s++;
++ }
++ else {
++ base64mode = T;
++ i = 0; j = 0; c = 0;
++ }
++ }
++ else {
++ bputc(b, *s);
++ }
++ }
++ }
++ return buffer_fetch(b, 0, buffer_size(b), NIL);
++}
++
++
++/* utf8_to_imaputf7() *************************************************
++ *
++ * Convert a string encoded as UTF-8 to modified UTF-7.
++ * pool: Target pool for storage
++ * t: The string to convert
++ *
++ * Returns: A new string encoded as modified UTF-7
++ *
++ * Note: This function tries hard to return something useful in case
++ * the input string is invalid in some way, rather than bail out
++ * and return NULL.
++ **********************************************************************/
++
++char *utf8_to_imaputf7(struct pool *pool, char *t)
++{
++ unsigned char *s;
++ struct buffer *b = buffer_create(pool, 64);
++ BOOL base64mode = NIL;
++ unsigned long scalar;
++ unsigned int L, i, j;
++ unsigned char buf[4];
++ unsigned char c = 0;
++
++ static char encode_base64[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
++ if (!t) return NULL;
++
++ for (s = (unsigned char *)t; *s; s++) {
++ if (*s < 0x7f && *s >= 0x20) {
++ if (base64mode) {
++ switch (i) {
++ case 1:
++ /* Remaining bottom 2 bits of the last octet */
++ bputc(b, encode_base64[c << 4]); break;
++ case 2:
++ /* Remaining bottom 4 bits of the last octet */
++ bputc(b, encode_base64[c << 2]);
++ }
++ bputc(b, '-');
++ base64mode = NIL;
++ }
++ bputc(b, *s);
++ if (*s == '&') {
++ bputc(b, '-');
++ }
++ }
++ else {
++ if (*s < 0x80) {
++ L = 0; scalar = *s;
++ } else if ((*s & 0xE0) == 0xC0) {
++ L = 1; scalar = (*s & 0x1F);
++ } else if ((*s & 0xF0) == 0xE0) {
++ L = 2; scalar = (*s & 0x0F);
++ } else if ((*s & 0xF8) == 0xF0) {
++ L = 3; scalar = (*s & 0x07);
++ } else if ((*s & 0xFC) == 0xF8) {
++ L = 4; scalar = (*s & 0x03);
++ } else if ((*s & 0xFE) == 0xFC) {
++ L = 5; scalar = (*s & 0x01);
++ } else {
++ L = 0; scalar = UNI_REPLACEMENT_CHAR;
++ }
++
++ for (j = 0; j < L; j++) {
++ s++;
++ if ((*s & 0xC0) == 0x80) {
++ scalar <<= 6;
++ scalar |= (*s & 0x3F);
++ }
++ else {
++ s--;
++ scalar = UNI_REPLACEMENT_CHAR;
++ }
++ }
++
++ if (!base64mode) {
++ bputc(b, '&');
++ base64mode = T;
++ i = 0;
++ }
++ if (scalar <= 0xFFFF) {
++ buf[1] = scalar & 0xFF;
++ scalar >>= 8;
++ buf[0] = scalar & 0xFF;
++ L = 2;
++ }
++ else {
++ scalar -= 0x100000UL;
++ buf[3] = scalar & 0xFF;
++ scalar >>= 8;
++ buf[2] = 0xDC | (scalar & 0x03);
++ scalar >>= 2;
++ buf[3] = scalar & 0xFF;
++ scalar >>= 8;
++ buf[1] = 0xD8 | (scalar & 0x03);
++ L = 4;
++ }
++
++ for (j = 0; j < L; j++) {
++ switch (i++) {
++ case 0:
++ /* Top 6 bits of the first octet */
++ bputc(b, encode_base64[(buf[j] >> 2) & 0x3F]);
++ c = (buf[j] & 0x03); break;
++ case 1:
++ /* Bottom 2 bits of the first octet, and top 4 bits of the second */
++ bputc(b, encode_base64[(c << 4) |
++ ((buf[j] >> 4) & 0x0F)]);
++ c = (buf[j] & 0x0F); break;
++ case 2:
++ /* Bottom 4 bits of the second octet and top 2 bits of the third */
++ bputc(b, encode_base64[(c << 2) |
++ ((buf[j] >> 6) & 0x03)]);
++ /* Bottom 6 bits of the third octet */
++ bputc(b, encode_base64[buf[j] & 0x3F]);
++ i = 0;
++ }
++ }
++
++ }
++ }
++ if (base64mode) {
++ switch (i) {
++ case 1:
++ /* Remaining bottom 2 bits of the last octet */
++ bputc(b, encode_base64[c << 4]); break;
++ case 2:
++ /* Remaining bottom 4 bits of the last octet */
++ bputc(b, encode_base64[c << 2]);
++ }
++ bputc(b, '-');
++ base64mode = NIL;
++ }
++ return buffer_fetch(b, 0, buffer_size(b), NIL);
++}
++
++
++/* utf8_from_string() ************************************************
++ *
++ * Convert a string with given character encoding to UTF-8
++ *
++ * pool: Pool to allocate memory from
++ * charset: Charset of input string
++ * t: String to convert
++ * len: Length of string
++ ***********************************************************************/
++
++char *utf8_from_string(struct pool *pool, char *charset, char *t, unsigned long len)
++{
++ struct buffer *b;
++ char chunk[ICONV_CHUNK_SIZE];
++ char *outbuf;
++ size_t outbytesleft;
++ size_t result;
++ int i;
++ iconv_t cd = iconv_open("UTF-8", charset);
++ b = buffer_create(pool, 1024);
++
++ if (cd == (iconv_t)(-1)) {
++ buffer_printf(b, "(Conversion from %s failed)", charset);
++ }
++ else while (len) {
++ outbuf = chunk;
++ outbytesleft = ICONV_CHUNK_SIZE;
++ result = iconv(cd, &t, (size_t*)&len, &outbuf, &outbytesleft);
++ for (i = 0; i < ICONV_CHUNK_SIZE - outbytesleft; i++) {
++ bputc(b, chunk[i]);
++ }
++ if (result == (size_t)(-1)) switch (errno) {
++ case E2BIG:
++ break;
++ case EILSEQ:
++ case EINVAL:
++ /* Try skipping a byte */
++ t++;
++ len--;
++ bputs(b, UNI_REPLACEMENT_CHAR_UTF8);
++ break;
++ default:
++ iconv_close(cd);
++ return NULL;
++ }
++ }
++
++ iconv_close(cd);
++ return buffer_fetch(b, 0, buffer_size(b), NIL);
++}
++
++BOOL utf8_print(char *charset, char *fallback_charset,
++ unsigned char **dst, unsigned long dst_size,
++ unsigned char **src, unsigned long src_size)
++{
++
++ iconv_t cd = iconv_open("UTF-8", charset);
++ if (cd == (iconv_t)(-1) && fallback_charset)
++ cd = iconv_open("UTF-8", fallback_charset);
++
++ while (iconv(cd, (char**)src, (size_t*)&src_size,
++ (char**)dst, (size_t*)&dst_size) == (size_t)(-1)) {
++ switch (errno) {
++ case EILSEQ:
++ case EINVAL:
++ /* Try skipping a byte */
++ (*src)++;
++ src_size--;
++ if (dst_size >= sizeof(UNI_REPLACEMENT_CHAR_UTF8)) {
++ strcpy((char*)*dst, UNI_REPLACEMENT_CHAR_UTF8);
++ }
++ if (errno == EILSEQ) break;
++ case E2BIG:
++ default:
++ iconv_close(cd);
++ return NIL;
++ }
++ }
++ iconv_close(cd);
++ return T;
++}
++
++/* utf8_prune() ********************************************************
++ *
++ * Like string_prune, but counts UTF-8 multibyte sequences as units.
++ * pool: Target pool
++ * s: UTF-8 string to prune
++ * maxlen: Maximum length of string before pruning applies.
++ *
++ * Returns: Pruned string, maximum maxlen characters (not bytes), not
++ * counting the terminating null.
++ ***********************************************************************/
++
++char *utf8_prune(struct pool *pool, char *s, unsigned long maxlen)
++{
++ char *result;
++ unsigned long cutoff;
++ unsigned long L;
++ unsigned long i = 0;
++
++ if (maxlen < (strlen("...") + 1))
++ return (s);
++
++ for (L = 0; L < maxlen; L++) {
++ if (s[i] == '\0') return s;
++ if (L == maxlen - strlen("...")) cutoff = i;
++
++ if (s[i] & 0x80)
++ while (s[i] & 0x80) i++;
++ else
++ i++;
++ }
++
++ result = pool_alloc(pool, cutoff + 4);
++ memcpy(result, s, cutoff);
++ strcpy(result + cutoff, "...");
++
++ return (result);
++
++}
+Index: prayer-1.0.18/prayer/utf8.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ prayer-1.0.18/prayer/utf8.h 2007-03-10 19:39:32.004262711 +0100
+@@ -0,0 +1,7 @@
++char *utf8_from_imaputf7(struct pool *pool, char *t);
++char *utf8_to_imaputf7(struct pool *pool, char *t);
++char *utf8_from_string(struct pool *pool, char *charset, char *t, unsigned long len);
++BOOL utf8_print(char *charset, char *fallback_charset,
++ unsigned char **dst, unsigned long dst_size,
++ unsigned char **src, unsigned long src_size);
++char *utf8_prune(struct pool *pool, char *s, unsigned long maxlen);
Index: 1.0.18-1/debian/patches/sighandling.patch
===================================================================
--- 1.0.18-1/debian/patches/sighandling.patch (nonexistent)
+++ 1.0.18-1/debian/patches/sighandling.patch (revision 180)
@@ -0,0 +1,75 @@
+Index: prayer-1.0.18/prayer/os.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/os.h 2007-03-10 19:56:40.357114747 +0100
++++ prayer-1.0.18/prayer/os.h 2007-03-10 19:57:56.266959171 +0100
+@@ -44,6 +44,8 @@ BOOL os_signal_alarm_clear(void);
+
+ BOOL os_signal_init();
+
++BOOL os_signal_hup_term_init(void (*hup_fn) (), void (*term_fn) ());
++
+ BOOL os_lock_exclusive(int fd);
+
+ BOOL os_lock_shared(int fd);
+Index: prayer-1.0.18/prayer/session_server.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/session_server.c 2007-03-10 19:56:40.647152355 +0100
++++ prayer-1.0.18/prayer/session_server.c 2007-03-10 19:57:56.326966954 +0100
+@@ -355,6 +355,7 @@ BOOL session_server(struct config *confi
+ fd_set readfds;
+ pid_t child;
+ unsigned long timeout = 0L;
++ BOOL sighup_seen = NIL;
+
+ if (config->direct_enable) {
+ ssl_portlist
+@@ -420,6 +421,18 @@ BOOL session_server(struct config *confi
+ } else {
+ rc = select(maxfd + 1, &readfds, NIL, NIL, NIL);
+ }
++ if (sighup_seen) {
++ log_misc("SIGHUP received - reexec daemon");
++ close(sockfd);
++ if (config->direct_enable) {
++ /* Find some way to pass this information along
++ to the new invocation somehow later. */
++ portlist_close_all(ssl_portlist);
++ portlist_close_all(plain_portlist);
++ }
++ log_misc_free();
++ return (T);
++ }
+ }
+ while ((rc < 0) && (errno == EINTR));
+
+Index: prayer-1.0.18/prayer/log.c
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.c 2007-03-10 19:58:03.667919109 +0100
++++ prayer-1.0.18/prayer/log.c 2007-03-10 19:58:11.688959503 +0100
+@@ -502,6 +502,13 @@ BOOL log_misc_init(struct config *config
+ return (log_open(log_misc_ptr, log_name));
+ }
+
++void log_misc_free()
++{
++ if ((log_misc_ptr == NIL) || (log_misc_ptr->fd < 0))
++ return;
++ log_free(log_misc_ptr);
++}
++
+ /* log_misc_ping() *******************************************************
+ *
+ * Reopen misc log file if required
+Index: prayer-1.0.18/prayer/log.h
+===================================================================
+--- prayer-1.0.18.orig/prayer/log.h 2007-03-10 19:58:04.067970999 +0100
++++ prayer-1.0.18/prayer/log.h 2007-03-10 19:58:11.648954314 +0100
+@@ -45,6 +45,8 @@ void log_record_peer_pid(struct log *log
+ BOOL
+ log_misc_init(struct config *config, char *progname, char *misc_log_name);
+
++void log_misc_free();
++
+ BOOL log_misc_ping();
+
+ void log_misc(char *fmt, ...);
Index: 1.0.18-1/debian/patches/makefile_install_config.patch
===================================================================
--- 1.0.18-1/debian/patches/makefile_install_config.patch (nonexistent)
+++ 1.0.18-1/debian/patches/makefile_install_config.patch (revision 180)
@@ -0,0 +1,260 @@
+--- prayer-1.0.18.orig/files/etc/prayer-accountd.cf
++++ prayer-1.0.18/files/etc/prayer-accountd.cf
+@@ -8,6 +8,8 @@
+ # Default accountd.cf file suitable for RedHat Linux only.
+ # See distribution for some sample files for FreeBSD and Solaris
+
++accountd_port = 145
++
+ msforward_name = ".MSforward"
+ forward_name = ".forward"
+ aliases_name = "vacation.aliases"
+--- prayer-1.0.18.orig/files/Makefile
++++ prayer-1.0.18/files/Makefile
+@@ -53,41 +53,44 @@
+ install-cert:
+ if [ -f certs/prayer.pem ]; then \
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) \
+- -m $(PRIVATE_FILE) certs/prayer.pem ${BROOT}${PREFIX}/certs; \
++ -m $(PRIVATE_FILE) certs/prayer.pem ${DESTDIR}${PREFIX}/certs; \
+ fi
+
+ install-config: etc/prayer.cf
+ $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/prayer.cf ${BROOT}${PRAYER_CONFIG_FILE}
++ etc/prayer.cf ${DESTDIR}${PRAYER_CONFIG_FILE}
+
+ install-aconfig:
+ $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/prayer-accountd.cf ${BROOT}${ACCOUNTD_CONFIG_FILE}
++ etc/prayer-accountd.cf ${DESTDIR}${ACCOUNTD_CONFIG_FILE}
+
+ install-motd:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/motd.html ${BROOT}${PREFIX}/etc
++ etc/motd.html ${DESTDIR}/etc/prayer
+
+ install-welcome:
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
+- etc/welcome.html ${BROOT}${PREFIX}/etc
++ etc/welcome.html ${DESTDIR}/etc/prayer
+
+ install:
+- PREFIX=$(BROOT)$(PREFIX) VAR_PREFIX=$(BROOT)$(VAR_PREFIX) \
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${DESTDIR}${PREFIX}
++ ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${DESTDIR}/etc/prayer
++
++ PREFIX=$(DESTDIR)$(PREFIX) VAR_PREFIX=$(DESTDIR)$(VAR_PREFIX) \
+ RO_USER=$(RO_USER) RO_GROUP=$(RO_GROUP) \
+ RW_USER=$(RW_USER) RW_GROUP=$(RW_GROUP) \
+ PUBLIC_DIR=$(PUBLIC_DIR) PRIVATE_DIR=$(PRIVATE_DIR) \
+ PUBLIC_FILE=$(PUBLIC_FILE) PRIVATE_FILE=$(PRIVATE_FILE) \
+ PUBLIC_EXEC=$(PUBLIC_FILE) PRIVATE_EXEC=$(PRIVATE_EXEC) \
+- BIN_DIR=$(BIN_DIR) INSTALL=$(INSTALL) \
++ BIN_DIR=$(DESTDIR)$(BIN_DIR) INSTALL=$(INSTALL) \
+ ./install.sh
+- if [ ! -f $(BROOT)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
+- if [ ! -f $(BROOT)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
+- if [ ! -f $(BROOT)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
+- if [ ! -f $(BROOT)$(PREFIX)/etc/welcome.html ]; then $(MAKE) install-welcome; fi
++# if [ ! -f $(DESTDIR)$(PREFIX)/certs/prayer.pem ]; then $(MAKE) install-cert; fi
++ if [ ! -f $(DESTDIR)$(PRAYER_CONFIG_FILE) ]; then $(MAKE) install-config; fi
++ if [ ! -f $(DESTDIR)$(ACCOUNTD_CONFIG_FILE) ]; then $(MAKE) install-aconfig; fi
++ if [ ! -f $(DESTDIR)/etc/prayer/motd.html ]; then $(MAKE) install-motd; fi
++ if [ ! -f $(DESTDIR)/etc/prayer/welcome.html ]; then $(MAKE) install-welcome; fi
+
+ redhat-install-init.d:
+ install -D -o root -g root -m 755 \
+- ./init.d/prayer $(BROOT)/etc/rc.d/init.d/prayer
++ ./init.d/prayer $(DESTDIR)/etc/rc.d/init.d/prayer
+ #chkconfig prayer --level 2345 on
+--- prayer-1.0.18.orig/files/install.sh
++++ prayer-1.0.18/files/install.sh
+@@ -4,77 +4,6 @@
+
+ PATH=/bin:/sbin/:/usr/bin:/usr/sbin
+
+-error=0
+-
+-if [ "x$PREFIX" = "x" ]; then
+- echo 'PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$VAR_PREFIX" = "x" ]; then
+- echo 'VAR_PREFIX not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_USER" = "x" ]; then
+- echo 'RO_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RO_GROUP" = "x" ]; then
+- echo 'RO_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_USER" = "x" ]; then
+- echo 'RW_USER not defined'
+- error=1
+-fi
+-
+-if [ "x$RW_GROUP" = "x" ]; then
+- echo 'RW_GROUP not defined'
+- error=1
+-fi
+-
+-if [ "x$PUBLIC_DIR" = "x" ]; then
+- echo 'PUBLIC_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$PRIVATE_DIR" = "x" ]; then
+- echo 'PRIVATE_DIR not defined'
+- error=1
+-fi
+-
+-if [ "x$BIN_DIR" = "x" ]; then
+- echo 'BIN_DIR not defined'
+- error=1
+-fi
+-
+-if [ $error != 0 ]; then
+- exit 1
+-fi
+-
+-if [ ! -d ${VAR_PREFIX} -a `whoami` = "root" ]; then
+- ${INSTALL} -d -o ${RW_USER} -g ${RW_GROUP} -m ${PRIVATE_DIR} ${VAR_PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}
+-fi
+-
+-if [ ! -d ${PREFIX}/etc ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}/etc
+-fi
+-
+-if [ ! -d ${PREFIX}/certs ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PRIVATE_DIR} ${PREFIX}/certs
+-fi
+-
+-if [ ! -d ${BIN_DIR} ]; then
+- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PRIVATE_DIR} ${BIN_DIR}
+-fi
+-
+ for i in help icons
+ do
+ if [ -d "${PREFIX}/${i}" ]; then
+--- prayer-1.0.18.orig/files/etc/prayer.cf.SRC
++++ prayer-1.0.18/files/etc/prayer.cf.SRC
+@@ -20,7 +20,7 @@
+ # User ID to run as if we start off as root
+ prayer_user = "prayer"
+ # Group ID to run as if we start off as root
+-prayer_group = "prayer"
++prayer_group = "nogroup"
+
+ # Run prayer as background process.
+ # TRUE => will return as soon as valid configuration is found.
+@@ -423,14 +423,14 @@
+
+ # Various directories used by the running system
+ # Logs stored in $log_dir
+-log_dir = "$var_prefix/logs"
++log_dir = "/var/log/prayer"
+
+ # $lock_dir used for interlocking between prayer processes
+-lock_dir = "$var_prefix/locks"
++lock_dir = "/var/lock"
+
+ # $socket_dir is location for unix domain sockets which connect frontend
+ # to backend in proxy mode of operation.
+-socket_dir = "$var_prefix/sockets"
++socket_dir = "/var/run/prayer"
+
+ # Split socket directory into 64 subdirs keyed on first letter of sessionID
+ # Code provides compatibility in both directions: can switch back and forward
+@@ -441,14 +441,14 @@
+ init_socket_name = init
+
+ # $ssl_session_dir is location for SSL session cache
+-ssl_session_dir = "$var_prefix/ssl_scache"
++ssl_session_dir = "/var/run/prayer/ssl_scache"
+
+ # Location for temporary files e.g; attachments and folders in transist
+ # during upload and download operation. Core files also end up here
+-tmp_dir = "$var_prefix/tmp"
++tmp_dir = "/tmp"
+
+ # Location for PID files for prayer and prayer-session master processes.
+-pid_dir = "$var_prefix/pid"
++pid_dir = "/var/run/prayer"
+
+ # Interface to Hermes finger database
+ #lookup_rpasswd = "/data/finger/rpasswd.cdb"
+@@ -587,7 +587,7 @@
+ suppress_dotfiles = TRUE
+
+ # Mail directory in users account
+-maildir = "mail"
++maildir = ""
+
+ # Temporary hack to remove "mail/" from favourites list (and anywhere
+ # else where we find the strings embedded into .prayer files).
+@@ -601,7 +601,7 @@
+ # default_domain = "<valid mail domain>"
+
+ # Language for ispell.
+-ispell_language = "british"
++ispell_language = "american"
+
+ # Size of small and large compose windows
+ small_cols = 80
+--- prayer-1.0.18.orig/prayer/Makefile
++++ prayer-1.0.18/prayer/Makefile
+@@ -102,8 +102,9 @@
+ SESSION_LIBS += $(KERB_LIBS)
+ endif
+
+-CFLAGS = $(BASECFLAGS) $(COMMON_SSL_INCLUDE) $(CCLIENT_INCLUDE)
+-LDFLAGS = $(BASELDFLAGS)
++CFLAGS = $(BASECFLAGS)
++override CFLAGS += $(COMMON_SSL_INCLUDE) $(CCLIENT_INCLUDE)
++LDFLAGS = $(BASELDFLAGS) -Wl,--as-needed
+
+ SHARED_OBJS = \
+ pool.o list.o assoc.o memblock.o buffer.o string.o config.o user_agent.o \
+@@ -175,21 +176,21 @@
+
+ install: all
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
+- $(BROOT)$(BIN_DIR)
++ $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer $(BROOT)$(BIN_DIR)
++ prayer $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-chroot $(BROOT)$(BIN_DIR)
++ prayer-chroot $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-session $(BROOT)$(BIN_DIR)
++ prayer-session $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-ssl-prune $(BROOT)$(BIN_DIR)
++ prayer-ssl-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-sem-prune $(BROOT)$(BIN_DIR)
++ prayer-sem-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-db-prune $(BROOT)$(BIN_DIR)
++ prayer-db-prune $(DESTDIR)$(BIN_DIR)
+ $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
+- prayer-cyclog $(BROOT)$(BIN_DIR)
++ prayer-cyclog $(DESTDIR)$(BIN_DIR)
+
+ prayer: $(PRAYER_OBJS) prayer_main.o
+ $(CC) $(LDFLAGS) -o prayer $(PRAYER_OBJS) prayer_main.o $(PRAYER_LIBS)
Index: 1.0.18-1/debian/patches/session_server_bugs.patch
===================================================================
--- 1.0.18-1/debian/patches/session_server_bugs.patch (nonexistent)
+++ 1.0.18-1/debian/patches/session_server_bugs.patch (revision 180)
@@ -0,0 +1,12 @@
+--- prayer-1.0.18.orig/prayer/session_server.c
++++ prayer-1.0.18/prayer/session_server.c
+@@ -375,7 +375,8 @@
+ if (!os_signal_child_init(os_child_reaper))
+ return (NIL);
+
+- name = pool_strcat(NIL, config->socket_dir, "/init");
++ name = pool_printf(NIL, "%s/%s",
++ config->socket_dir, config->init_socket_name);
+
+ if ((sockfd = os_bind_unix_socket(name)) < 0)
+ return (NIL);
Index: 1.0.18-1/debian/patches/pidfiles_extension.patch
===================================================================
--- 1.0.18-1/debian/patches/pidfiles_extension.patch (nonexistent)
+++ 1.0.18-1/debian/patches/pidfiles_extension.patch (revision 180)
@@ -0,0 +1,22 @@
+--- prayer-1.0.18.orig/prayer/prayer_main.c
++++ prayer-1.0.18/prayer/prayer_main.c
+@@ -111,7 +111,7 @@
+
+ static BOOL prayer_main_write_pid(struct config *config)
+ {
+- char *name = pool_printf(NIL, "%s/prayer", config->pid_dir);
++ char *name = pool_printf(NIL, "%s/prayer.pid", config->pid_dir);
+ FILE *file;
+
+ if ((file = fopen(name, "w")) == NIL)
+--- prayer-1.0.18.orig/prayer/session_main.c
++++ prayer-1.0.18/prayer/session_main.c
+@@ -32,7 +32,7 @@
+
+ static BOOL session_main_write_pid(struct config *config)
+ {
+- char *name = pool_printf(NIL, "%s/prayer-session", config->pid_dir);
++ char *name = pool_printf(NIL, "%s/prayer-session.pid", config->pid_dir);
+ FILE *file;
+
+ if ((file = fopen(name, "w")) == NIL)
Index: 1.0.18-1/debian/patches/series
===================================================================
--- 1.0.18-1/debian/patches/series (nonexistent)
+++ 1.0.18-1/debian/patches/series (revision 180)
@@ -0,0 +1,8 @@
+includes.patch
+makefile_install_config.patch
+session_unix_bugs.patch
+session_server_bugs.patch
+hasnochildren_means_noinferiors.patch
+pidfiles_extension.patch
+ipv6.patch
+utf8.patch
Index: 1.0.18-1/debian/changelog
===================================================================
--- 1.0.18-1/debian/changelog (nonexistent)
+++ 1.0.18-1/debian/changelog (revision 180)
@@ -0,0 +1,5 @@
+prayer (1.0.18-1) experimental; urgency=low
+
+ * Initial release (Closes: #392823)
+
+ -- Magnus Holmgren <magnus@kibibyte.se> Sat, 10 Mar 2007 14:24:21 +0100
Index: 1.0.18-1/debian/prayer-session.8.dbk
===================================================================
--- 1.0.18-1/debian/prayer-session.8.dbk (nonexistent)
+++ 1.0.18-1/debian/prayer-session.8.dbk (revision 180)
@@ -0,0 +1,158 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer-session">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>...</cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> command.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--debug</option>
+ </term>
+ <listitem>
+ <para>Enable debugging.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.0.18-1/debian/prayer.docs
===================================================================
--- 1.0.18-1/debian/prayer.docs (nonexistent)
+++ 1.0.18-1/debian/prayer.docs (revision 180)
@@ -0,0 +1,11 @@
+docs/CMD_LINE
+docs/DESIGN
+docs/DONE-OLD
+docs/FEATURES
+docs/ICONLIST
+docs/LOGS
+docs/NOTICE
+docs/README
+docs/SECURITY
+docs/TODO
+docs/URL_OPTIONS
Index: 1.0.18-1/debian/rules
===================================================================
--- 1.0.18-1/debian/rules (nonexistent)
+++ 1.0.18-1/debian/rules (revision 180)
@@ -0,0 +1,24 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses cdbs. Originaly written by Robert Millan.
+# This file is public domain.
+
+DEB_AUTO_CLEANUP_RCS := yes
+
+# Add here any variable or target overrides you need
+
+makebuilddir/prayer::
+ cp debian/Config .
+
+include /usr/share/cdbs/1/class/makefile.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+#DEB_MAKE_INVOKE = $(DEB_MAKE_ENVVARS) make
+DEB_MAKE_INSTALL_TARGET = install DESTDIR=$(CURDIR)/debian/tmp
+DEB_INSTALL_CHANGELOGS_ALL = docs/DONE
+DEB_INSTALL_DOCS_ALL = -XCVS
+DEB_DH_INSTALL_ARGS = -XCVS
+DEB_DH_INSTALL_SOURCEDIR = debian/tmp
+
+clean::
+ rm -f Config
/1.0.18-1/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: 1.0.18-1/debian/prayer-accountd.dirs
===================================================================
--- 1.0.18-1/debian/prayer-accountd.dirs (nonexistent)
+++ 1.0.18-1/debian/prayer-accountd.dirs (revision 180)
@@ -0,0 +1 @@
+/var/run/prayer
Index: 1.0.18-1/debian/prayer.logrotate
===================================================================
--- 1.0.18-1/debian/prayer.logrotate (nonexistent)
+++ 1.0.18-1/debian/prayer.logrotate (revision 180)
@@ -0,0 +1,8 @@
+/var/log/prayer/prayer /var/log/prayer/prayer_session /var/log/prayer/access_log /var/log/prayer/session_log {
+ rotate 28
+ daily
+ compress
+ delaycompress
+ missingok
+ notifempty
+}
Index: 1.0.18-1/debian/prayer.dirs
===================================================================
--- 1.0.18-1/debian/prayer.dirs (nonexistent)
+++ 1.0.18-1/debian/prayer.dirs (revision 180)
@@ -0,0 +1,2 @@
+var/run/prayer
+var/log/prayer
Index: 1.0.18-1/debian/prayer-accountd.init
===================================================================
--- 1.0.18-1/debian/prayer-accountd.init (nonexistent)
+++ 1.0.18-1/debian/prayer-accountd.init (revision 180)
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer-accountd
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer account helper daemon
+# Description: Lets users change passwords, manage filters and other things not supported by IMAP itself
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/prayer-accountd
+PIDFILE=/var/run/prayer/accountd.pid
+DESC="Prayer account helper server"
+
+test -x $DAEMON || exit 0
+
+egrep -iq "^[[:space:]]*accountd_port[[:space:]]*=[[:space:]]*[[:digit:]]+[[:space:]]*$" /etc/prayer/accountd.cf || exit 0
+
+. /lib/lsb/init-functions
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer-accountd ] ; then
+ . /etc/default/prayer-accountd
+fi
+
+set +e
+
+start() {
+ log_daemon_msg "Starting $DESC" "accountd"
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
+ log_progress_msg "accountd"
+ fi
+ rm -f "$PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer-accountd
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.0.18-1/debian/prayer.init
===================================================================
--- 1.0.18-1/debian/prayer.init (nonexistent)
+++ 1.0.18-1/debian/prayer.init (revision 180)
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: prayer
+# Required-Start:
+# Required-Stop:
+# Should-Start: $local_fs
+# Should-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Prayer init script
+# Description: Init script for prayer services
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+FRONTEND_DAEMON=/usr/sbin/prayer
+SESSION_DAEMON=/usr/sbin/prayer-session
+FRONTEND_PIDFILE=/var/run/prayer/prayer.pid
+SESSION_PIDFILE=/var/run/prayer/prayer-session.pid
+DESC="webmail server"
+
+test -x $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+ENABLED=0
+
+# Include prayer defaults if available
+if [ -f /etc/default/prayer ] ; then
+ . /etc/default/prayer
+fi
+
+set +e
+
+start() {
+ if [ "$ENABLED" = "0" ]; then
+ echo "Prayer is disabled. Please set ENABLED=1 in /etc/default/prayer"
+ echo "after adapting /etc/prayer/prayer.cf to your needs."
+ exit 0
+ fi
+
+ log_daemon_msg "Starting $DESC" "prayer"
+ start-stop-daemon --start --pidfile $FRONTEND_PIDFILE \
+ --exec $FRONTEND_DAEMON -- $DAEMON_OPTS
+ log_end_msg $?
+}
+
+stop() {
+ log_daemon_msg "Stopping $DESC"
+ if [ -f "$SESSION_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $SESSION_PIDFILE
+ log_progress_msg "prayer-session"
+ fi
+ if [ -f "$FRONTEND_PIDFILE" ]; then
+ start-stop-daemon --stop --quiet --oknodo --pidfile $FRONTEND_PIDFILE
+ start-stop-daemon --stop --quiet --oknodo --exec $FRONTEND_DAEMON
+ log_progress_msg "prayer"
+ fi
+ rm -f "$FRONTEND_PIDFILE" "$SESSION_PIDFILE"
+ log_end_msg 0
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ stop
+ start
+ ;;
+ *)
+ N=/etc/init.d/prayer
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ log_failure_msg "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
Index: 1.0.18-1/debian/prayer-accountd.install
===================================================================
--- 1.0.18-1/debian/prayer-accountd.install (nonexistent)
+++ 1.0.18-1/debian/prayer-accountd.install (revision 180)
@@ -0,0 +1,2 @@
+usr/sbin/prayer-accountd
+etc/prayer/accountd.cf
Index: 1.0.18-1/debian/Config
===================================================================
--- 1.0.18-1/debian/Config (nonexistent)
+++ 1.0.18-1/debian/Config (revision 180)
@@ -0,0 +1,160 @@
+# $Cambridge: hermes/src/prayer/defaults/Config,v 1.5 2006/04/05 12:35:35 fanf2 Exp $
+#
+# Prayer - a Webmail Interface
+#
+# Copyright (c) University of Cambridge 2000 - 2002
+# See the file NOTICE for conditions of use and distribution.
+#
+# Conventional Configure file.
+
+SSL_ENABLE = true # SSL requires OpenSSL
+SESSION_CACHE_ENABLE = true # SSL session cache Requires Berkeley DB 3 or 4
+GZIP_ENABLE = true # Enable on the fly compression of pages
+LDAP_ENABLE = true # Add LDAP interface
+FENCE_ENABLE = false # Use Electric Fence to catch malloc problems
+DIRECT_ENABLE = false # Experimental. Leave this switched off...
+MUTEX_SEMAPHORE = true # Use SYSV mutexes rather than file locking
+
+# Following depend on the way that you have configured c-client
+CCLIENT_SSL_ENABLE = false # C-client was built with SSL support
+CCLIENT_PAM_ENABLE = false # C-client was built with PAM support
+CCLIENT_KERB_ENABLE = false # C-client was built with Kerberos support
+
+# Probably don't need the following
+ACCOUNTD_ENABLE = true # Only of use in Cambridge at the moment.
+ACCOUNTD_SSL_ENABLE = true # Enable SSL support in account management daemon
+ACCOUNTD_PAM_ENABLE = true # Enable PAM support in account management daemon
+ACCOUNTD_USE_BSD_PTY = true # Use Berkeley PTYs rather than Sys V PTYs
+
+############################################################################
+# Location of compiler
+CC = gcc
+# Location of make program (GNU make required)
+MAKE = make
+# Location of install program (GNU install or compatible required)
+INSTALL = install
+
+# Base Compiler options for GCC.
+#BASECFLAGS = -Wall -g
+#BASELDFLAGS = -g
+BASECFLAGS = -Wall -g -O2
+BASELDFLAGS = -g -O2
+BASE_LIBS = -lcrypt
+
+# Base Compiler options for Sun SUNWspro compiler
+#CC = /opt/SUNWspro/bin/cc
+#BASECFLAGS = -fast
+#BASELDFLAGS = -s
+#BASE_LIBS = -lcrypt -lxnet
+
+############################################################################
+# Location of various include files and libraries.
+############################################################################
+
+# Location of c-client library.
+#
+# Following works if we have a vanilla c-client installation at same level
+# as the prayer installation. Relies on a symbolic link ./prayer/c-client
+# which points to ../../imap/c-client. This just reduces the amount of
+# noise output on each line when building the package.
+#
+CCLIENT_DIR=/usr/include/c-client
+CCLIENT_INCLUDE=-I$(CCLIENT_DIR)
+CCLIENT_LIBS=-lc-client
+
+#
+# Following works with the mail/cclient port from FreeBSD
+#
+#CCLIENT_INCLUDE = -I/usr/local/include/c-client
+#CCLIENT_LIBS = -L/usr/local/lib -lc-client4
+#
+# Complication:
+# The FreeBSD port uses PAM and optionally SSL if built WITH_SSL=yes.
+#
+#CCLIENT_SSL_ENABLE = true
+#CCLIENT_KERB_ENABLE = true
+
+############################################################################
+
+# Electric fence (required if FENCE_ENABLE set)
+FENCE_INCLUDE=
+FENCE_LIBS=-lmcheck
+
+# Zlib (required if GZIP_ENABLE set)
+Z_INCLUDE =
+Z_LIBS = -lz
+
+# LDAP (required if LDAP_ENABLE set)
+LDAP_INCLUDE =
+LDAP_LIBS = -lldap
+
+# Pam (required if CCLIENT_PAM_ENABLE set)
+PAM_INCLUDE =
+PAM_LIBS = -lpam
+
+# Kerberos (required if CCLIENT_KERB_ENABLE set)
+KERB_INCLUDE =
+KERB_LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
+
+# SSL definitions (required if SSL_ENABLE or CCLIENT_SSL_ENABLE set)
+#
+# Following suitable for Linux and FreeBSD which have SSL preinstalled
+# (Header files from OpenSSL 0.9.7 want to include various Kerboros stuff)
+#
+SSL_INCLUDE=
+SSL_LIBS=-lssl -lcrypto
+OPENSSL=openssl
+
+# Following definitions suitable for our Sun systems.
+#SSL_BASE=/opt/local/ssl/current
+#SSL_INCLUDE=-I ${SSL_BASE}/include
+#SSL_LIBS=-L ${SSL_BASE}/lib -lssl -lcrypto
+#OPENSSL=${SSL_BASE}/bin/openssl
+
+# DB definitions (required if SESSION_CACHE_ENABLE set)
+#
+# Following suitable for Redhat Linux which has DB 3 preinstalled
+DB_INCLUDE=
+DB_LIBS=-ldb
+
+# Following suitable for FreeBSD with DB 4 package installed
+#DB_INCLUDE=-I/usr/local/include/db4
+#DB_LIBS=-L/usr/local/lib -ldb4
+
+############################################################################
+
+# Install location of prayer configuration and support files. The initial
+# config file runs prayer processes as user "prayer" and group "prayer".
+# If you are using SSL, the certificate file must be readable by RW_USER or
+# RW_GROUP. It is important that nothing else can read the certificate file.
+
+# Build root (used by Redhat RPM system)
+BROOT=$(CURDIR)/../debian/tmp
+
+# Directory, User and group for read-write files: log files, sockets etc
+VAR_PREFIX = /var/lib/prayer
+RW_USER = root
+RW_GROUP = root
+
+# Root Directory, User and group for read-only configuration files.
+# Default configuration and permissions does not allow prayer user to
+# update prayer configuration file.
+
+PREFIX = /usr/share/prayer
+RO_USER = root
+RO_GROUP = root
+
+# Access permissions for general objects (wrt above users and groups)
+PUBLIC_EXEC = 0755
+PUBLIC_DIR = 0755
+PUBLIC_FILE = 0644
+
+# Access permissions for private objects (wrt above users and groups)
+PRIVATE_EXEC = 0750
+PRIVATE_DIR = 0750
+PRIVATE_FILE = 0640
+
+# Location of configuration files and binaries
+PRAYER_CONFIG_FILE = /etc/prayer/prayer.cf
+BIN_DIR = /usr/sbin
+ACCOUNTD_CONFIG_FILE = /etc/prayer/accountd.cf
Index: 1.0.18-1/debian/watch
===================================================================
--- 1.0.18-1/debian/watch (nonexistent)
+++ 1.0.18-1/debian/watch (revision 180)
@@ -0,0 +1,9 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian uupdate
Index: 1.0.18-1/debian/prayer.8.dbk
===================================================================
--- 1.0.18-1/debian/prayer.8.dbk (nonexistent)
+++ 1.0.18-1/debian/prayer.8.dbk (revision 180)
@@ -0,0 +1,178 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xslb manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>Magnus</firstname>">
+ <!ENTITY dhsurname "<surname>Holmgren</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>oktober 24, 2006</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>8</manvolnum>">
+ <!ENTITY dhemail "<email>magnus@kibibyte.se</email>">
+ <!ENTITY dhusername "Magnus Holmgren">
+ <!ENTITY dhucpackage "<refentrytitle>PRAYER</refentrytitle>">
+ <!ENTITY dhpackage "prayer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2006</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>a fast stand-alone webmail server</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option><replaceable>OPTION</replaceable></option></arg>... -- <arg><option><replaceable>PRAYER-SESSION-OPTION</replaceable></option></arg> ...
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <option>--config-file <replaceable>filename</replaceable></option>
+ </term>
+ <listitem>
+ <para>Define prayer config file (Overrides compilation default and PRAYER_CONFIG_FILE environment variable).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--config-option <replaceable>option</replaceable>=<replaceable>value</replaceable></option>
+ </term>
+ <listitem>
+ <para>Override single configuration option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--foreground</option>
+ </term>
+ <listitem>
+ <para>Run single threaded server in foreground.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-prefork</option>
+ </term>
+ <listitem>
+ <para>Run as simple fork()/exec() daemon.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--disable-session</option>
+ </term>
+ <listitem>
+ <para>Don't start up prayer-session server.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--</option>
+ </term>
+ <listitem>
+ <para>End of prayer options: remaining options will be passed to prayer-session server process.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show option summary.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>prayer-session(8), prayer.cf(5).</para>
+
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
Index: 1.0.18-1/debian/prayer.install
===================================================================
--- 1.0.18-1/debian/prayer.install (nonexistent)
+++ 1.0.18-1/debian/prayer.install (revision 180)
@@ -0,0 +1,10 @@
+usr/sbin/prayer
+usr/sbin/prayer-session
+usr/sbin/prayer-chroot
+usr/sbin/prayer-db-prune
+usr/sbin/prayer-sem-prune
+usr/sbin/prayer-ssl-prune
+usr/share/prayer
+etc/prayer/prayer.cf
+etc/prayer/motd.html
+etc/prayer/welcome.html
Index: 1.0.18-1/debian/copyright
===================================================================
--- 1.0.18-1/debian/copyright (nonexistent)
+++ 1.0.18-1/debian/copyright (revision 180)
@@ -0,0 +1,83 @@
+This package was debianized by Magnus Holmgren <magnus@kibibyte.se> on
+Tue, 24 Oct 2006 21:08:34 +0200.
+
+It was downloaded from http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
+
+Upstream author/maintainer: David Carter <dpc22@cam.ac.uk> et al.
+
+The Debian packaging is (C) 2006, Magnus Holmgren <magnus@kibibyte.se>
+and is licensed under the GPL.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+
+The Prayer Webmail Interface
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA
+
+INCORPORATED CODE
+-----------------
+
+Code implementing the SSL session cache has been adapted from code used by
+the Cyrus IMAP server, which is distributed under the following copyright:
+
+/* Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any other legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
Index: 1.0.18-1/debian/README.Debian
===================================================================
--- 1.0.18-1/debian/README.Debian (nonexistent)
+++ 1.0.18-1/debian/README.Debian (revision 180)
@@ -0,0 +1,51 @@
+prayer for Debian
+-----------------
+
+The Debian version of Prayer is built with SSL support with session
+cache using libdb4.3, gzip Content-Transfer-Encoding, LDAP, and System
+V mutex support. Some bigger and some smaller changes have been made:
+
+ * As the upstream web page explains, "Prayer was designed to work
+ with the Washington IMAP server, which has the most problems
+ associated with transient IMAP connections. Consequently, the user
+ interface distinguishes between mailboxes and directories: this will
+ not work well with servers which provide dual use mail folders."
+ A simple patch from Jonathan McDowell at least makes leaf folders
+ be treated as folders.
+
+ * This packaging adds IPv6 support. However, prayer-session uses
+ libc-client to connect to the IMAP server, and IPv6 support can only
+ be achieved there by building with the version of libc-client
+ currently in experimental.
+
+ * This packaging adds international character support, including
+ encoding and decoding of modified-UTF-7-encoded folder
+ names. However, the folder filter still works on the UTF-7 level,
+ meaning, for example, that a "-" will match any folder with an
+ encoded character in it, since "-" is the shift-out character that
+ ends every base64-encoded sequence in UTF-7.
+
+ Where it was hardwired to ISO-8859-1 it has been re-wired to UTF-8,
+ but I may have missed some spots and ISO-8859-1 is still the hardcoded
+ fallback character set.
+
+ * The decoding of RFC2047 encoded words has been relaxed, accommodating
+ to some common encoding errors: spaces are accepted in the encoded
+ text, as are overlong encoded words.
+
+
+Quirks:
+
+ * If your IMAP server supports STARTTLS, then Prayer (actually the
+ libc-client IMAP client library) will use it automatically and it
+ can't be turned off. Make sure that the server name you specify for
+ imapd_server in prayer.cf matches the Common Name in the SSL
+ certificate; otherwise libc-client will refuse to accept it.
+
+ * If your IMAP server is Dovecot, then you must change
+ prefs_folder_name to something not containing a dot. Unfortunately
+ this means that the preference folder will be fully visible.
+
+ -- Magnus Holmgren <magnus@kibibyte.se>, Wed, 15 Nov 2006 14:51:00 +0100
+
+Tag: interface::web, made-of::lang:c, made-of::data:html mail::imap, mail::user-agent, protocol::imap, protocol::ssl, protocol::http, role::sw:server, use::viewing, works-with::mail, web::application
Index: 1.0.18-1/debian
===================================================================
--- 1.0.18-1/debian (nonexistent)
+++ 1.0.18-1/debian (revision 180)
/1.0.18-1/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property