debian/0000755000000000000000000000000012235043133007162 5ustar debian/README.Debian0000644000000000000000000001202511260743137011233 0ustar 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 , Wed, 30 Sep 2009 22:57:19 +0200 debian/prayer-templates-dev.install0000644000000000000000000000021311421702231014615 0ustar /usr/lib/prayer/template_* /usr/lib/prayer/*.pl /usr/include/prayer/template_structs.h /usr/include/prayer/misc.h /usr/share/prayer/*.make debian/prayer.logrotate0000644000000000000000000000027111011340106012375 0ustar /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 } debian/source/0000755000000000000000000000000012172053054010465 5ustar debian/source/format0000644000000000000000000000001411426603725011702 0ustar 3.0 (quilt) debian/copyright0000644000000000000000000000716011617257753011143 0ustar This package was debianized by Magnus Holmgren 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 et al. The Debian packaging is © 2006-2011 Magnus Holmgren 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. */ debian/prayer-templates-dev.docs0000644000000000000000000000001711271113110014074 0ustar docs/TEMPLATES debian/prayer.dirs0000644000000000000000000000010111271111543011337 0ustar var/log/prayer etc/prayer/templates/old etc/prayer/templates/cam debian/Config0000644000000000000000000001177111421707440010325 0ustar # $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 debian/prayer.postinst0000644000000000000000000000306511170726437012311 0ustar #!/bin/sh # postinst script for prayer # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # 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 debian/changelog0000644000000000000000000004336212235043133011044 0ustar prayer (1.3.5-dfsg1-2build1) trusty; urgency=low * No change rebuild against db 5.3. -- Dmitrijs Ledkovs Sat, 02 Nov 2013 00:24:59 +0000 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 13 May 2008 22:31:36 +0200 prayer (1.0.18-1) experimental; urgency=low * Initial release (Closes: #392823) -- Magnus Holmgren Sat, 10 Mar 2007 14:24:21 +0100 debian/prayer.lintian-overrides0000644000000000000000000000005611013117772014051 0ustar prayer: possible-gpl-code-linked-with-openssl debian/control0000644000000000000000000001035012235043133010564 0ustar Source: prayer Section: mail Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Magnus Holmgren 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. debian/prayer-templates-dev.README.Debian0000644000000000000000000000607711271113110015276 0ustar 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 , Sun, 25 Oct 2009 18:36:44 +0100 debian/prayer-accountd.docs0000644000000000000000000000014611011340106013124 0ustar docs/ACCOUNTD docs/DESIGN docs/DONE-OLD docs/FEATURES docs/NOTICE docs/README docs/SECURITY docs/TODO debian/prayer.docs0000644000000000000000000000017611271113551011343 0ustar docs/CMD_LINE docs/DESIGN docs/DONE-OLD docs/FEATURES docs/ICONLIST docs/LOGS docs/NOTICE docs/README docs/SECURITY docs/TODO debian/prayer.postrm0000644000000000000000000000232311170726437011746 0ustar #!/bin/sh # postrm script for prayer # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' overwrit>r> # 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 debian/prayer-accountd.lintian-overrides0000644000000000000000000000006711013117772015651 0ustar prayer-accountd: possible-gpl-code-linked-with-openssl debian/prayer.NEWS0000644000000000000000000000200611271113551011161 0ustar 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 Sun, 04 Oct 2009 20:36:42 +0200 debian/prayer.default0000644000000000000000000000101311170726437012041 0ustar # 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="" debian/rules0000755000000000000000000000075712155712571010265 0ustar #!/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" debian/prayer-templates-src.docs0000644000000000000000000000001711271113551014116 0ustar docs/TEMPLATES debian/watch0000644000000000000000000000016612142015013010207 0ustar version=3 opts=dversionmangle=s/-dfsg\d*$// \ ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/prayer-(.*)\.tar\.gz debian/prayer-accountd.manpages0000644000000000000000000000003111543712373014003 0ustar debian/prayer-accountd.8 debian/prayer.examples0000644000000000000000000000014111030000703012204 0ustar files/etc.hermes/login_prefix.html files/etc.hermes/login_suffix.html files/etc.hermes/motd.html debian/prayer.links0000644000000000000000000000024411271111242011522 0ustar 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 debian/patches/0000755000000000000000000000000012172053054010614 5ustar debian/patches/dlopen_templates.patch0000644000000000000000000001625412172052334015204 0ustar 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 +#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" debian/patches/unbrand_cam_template.patch0000644000000000000000000000235611263176235016016 0ustar --- a/templates/cam/compose_toolbar.t +++ b/templates/cam/compose_toolbar.t @@ -2,8 +2,6 @@