removed obsolete clearsilver notes

added initial stuff for gettext support
added dependency: liblocale-gettext-perl
This commit is contained in:
lars 2007-03-19 18:42:31 +00:00
parent fab90852d5
commit dcc2ef9a56
7 changed files with 53 additions and 58 deletions

10
INSTALL
View File

@ -11,7 +11,8 @@ OVERVIEW:
5 - [optional] configure access control (http authentication)
6 - css stylesheet file
7 - final test
8 - any problems?
8 - troubleshooting
9 - report problems
------------------------------------------------------------------------------
@ -22,7 +23,7 @@ OVERVIEW:
modules.
Additionally (since v3.0) you have to install clearsilver (a templating
engine). See README.clearsilver for details.
engine).
1. Choose a distribution form
@ -137,11 +138,12 @@ OVERVIEW:
If you do not see a colorful screen, then you did not set the HTML_CSS_FILE
option correctly in ezmlmwebrc. Check it again.
If anything failes - take a look at the web server's error log
8. If anything failes - take a look at the web server's error log
(e.g. /var/log/apache/error.log).
8. If you have any problems:
9. If the error log of your web server did not help you to solve your problem:
- take a look at https://systemausfall.org/toolforge/ezmlm-web
- send me an email: ezmlm-web@sumpfralle.de
- subscribe to the mailinglist: ezmlm-web-subscribe@lists.systemausfall.org

3
README
View File

@ -63,7 +63,7 @@ This version of ezmlm-web requires the following;
* qmail v1.03
* ezmlm v0.53 (or ezmlm-idx v0.40)
* clearsilver v0.10.2 (only perl support is necessary)
* clearsilver v0.10.3 (only perl support is necessary)
* Perl v5.004 and the following modules;
+ Mail::Ezmlm v0.07 (current version!)
+ Mail::Address v1.15
@ -75,6 +75,7 @@ This version of ezmlm-web requires the following;
+ File::Copy v2.02
+ File::Path v1.07
+ Text::ParseWords v3.24
+ Locale::gettext v1.01
The version number indicates the version of the module that ezmlm-web was
developed with. Earlier versions may work, but then they haven't been

View File

@ -1,36 +0,0 @@
Short notes on how to install clearsilver for perl:
(you should read it, as step 4 is quite unusual)
1) download & untar
http://clearsilver.net
2) configure
The following configure options should be sufficient:
./configure --enable-perl \
--disable-python \
--disable-ruby \
--disable-java \
--disable-csharp \
--disable-apache \
--disable-gettext \
--disable-remote-debugger
3) make
4) the tricky part :)
As the installation directory of clearsilver-perl is configured incorrectly,
you should replace the existing SITEPREFIX line in perl/Makefile with the following:
SITEPREFIX = $(PREFIX)
(without the leading white space)
This issue should be fixed in clearsilver 0.10.3.
5) make install
6) done

2
TODO
View File

@ -2,6 +2,8 @@ clearsilver-Infos updaten
die nicht-Abonnenten-Listen (allow/deny/mod) sagen trotzdem: "x AbonnentInnen"
multi-domain-Support?
charset support for idx <= 5.0
suppress success message, if no new subscriber addresses were selected for adding

View File

@ -7,6 +7,7 @@ Version 3.2 - 04/14/02006
* script for creating binary suid wrappers added
* bug in MySQL support fixed
* treatment of the special character "dot" in listname and list address fixed
* use gettext for translations (Locale::gettext is now required)
Version 3.1.4 - 03/26/02006
* new setting: DOTQMAIL_DIR (useful for multi domain vpopmail setups)

2
debian/control vendored
View File

@ -7,7 +7,7 @@ Standards-Version: 3.6.2
Package: ezmlm-web
Architecture: any
Depends: perl, httpd-cgi, libemail-address-perl, libemail-ezmlm-perl (>= 0.07)
Depends: perl, httpd-cgi, libemail-address-perl, liblocale-gettext-perl, libemail-ezmlm-perl (>= 0.07)
Suggests: qmail-src, bash (>=2.0), gcc
Description: Web interface for ezmlm-idx mailing list administration
This web interface allows you to configure every part of an ezmlm-idx

View File

@ -23,6 +23,7 @@ use IO::File;
use POSIX qw(tmpnam);
use Encode;
use English;
use Locale::gettext;
# do not forget: we depend on Mail::Ezmlm::Gpg if the corresponding configuration
# setting is turned on
@ -70,16 +71,16 @@ use vars qw[$ui_set $ui_template];
# Get user configuration stuff
my $config_file;
if(defined($opt_C)) {
if (defined($opt_C)) {
$opt_C =~ /^([-\w.\/]+)$/; # security check by ooyama
$config_file = $1; # Command Line
} elsif(-e "$HOME_DIR/.ezmlmwebrc") {
} elsif (-e "$HOME_DIR/.ezmlmwebrc") {
$config_file = "$HOME_DIR/.ezmlmwebrc"; # User
} elsif(-e "./ezmlmwebrc") {
} elsif (-e "./ezmlmwebrc") {
$config_file = "./ezmlmwebrc"; # Install
} elsif(-e "/etc/ezmlm-web/ezmlmwebrc") {
} elsif (-e "/etc/ezmlm-web/ezmlmwebrc") {
$config_file = "/etc/ezmlm-web/ezmlmwebrc"; # System (new style)
} elsif(-e "/etc/ezmlm/ezmlmwebrc") {
} elsif (-e "/etc/ezmlm/ezmlmwebrc") {
$config_file = "/etc/ezmlm/ezmlmwebrc"; # System (old style)
} else {
&fatal_error("Unable to find config file");
@ -98,9 +99,10 @@ if (-e "$config_file" . ".gnupg") {
$GPG_SUPPORT = 0;
}
}
$GPG_SUPPORT = 0 if (!defined($GPG_SUPPORT));
# Allow suid wrapper to over-ride default list directory ...
if(defined($opt_d)) {
if (defined($opt_d)) {
$LIST_DIR = $1 if ($opt_d =~ /^([-\@\w.\/]+)$/);
}
@ -489,6 +491,25 @@ sub load_interface_language
}
# ---------------------------------------------------------------------------
sub add_language_data
{
my ($hdf, $lang) = @_;
$td = Locale::gettext->domain("ezmlm-web");
$langdata = ClearSilver::HDF->new();
$langdata->readFile("$LANGUAGE_DIR/en.hdf");
#TODO: add translation
return $hdf;
}
# ---------------------------------------------------------------------------
sub recurse_hdf_data
{
}
# ---------------------------------------------------------------------------
# look for preferred browser language setting
@ -550,14 +571,14 @@ sub set_pagedata()
# username and hostname
# Work out if this user has a virtual host and set input accordingly ...
if(-e "$QMAIL_BASE/virtualdomains") {
if (-e "$QMAIL_BASE/virtualdomains") {
open(VD, "<$QMAIL_BASE/virtualdomains") || warn "Can't read virtual domains file: $!";
while(<VD>) {
last if(($hostname) = /(.+?):$USER/);
last if (($hostname) = /(.+?):$USER/);
}
close VD;
}
if(!defined($hostname)) {
if (!defined($hostname)) {
$username = "$USER-" if ($USER ne $ALIAS_USER);
$hostname = $DEFAULT_HOST;
}
@ -730,7 +751,7 @@ sub set_pagedata4list_common() {
$pagedata->setValue("Data.List.MsgSize.Min", "$2");
# TODO: this is definitely ugly - create a new sub!
if(open(WEBUSER, "<$WEBUSERS_FILE")) {
if (open(WEBUSER, "<$WEBUSERS_FILE")) {
while(<WEBUSER>) {
last if (($webusers) = m{^$listname\s*\:\s*(.+)$});
}
@ -1024,8 +1045,9 @@ sub untaint {
foreach $i (0 .. $#params) {
my(@values);
next if($params[$i] eq 'mailaddressfile');
next if($params[$i] eq 'gnupg_key_file');
next if ($params[$i] eq 'mailaddressfile');
next if ($params[$i] eq 'gnupg_key_file');
next if ($params[$i] eq 'content');
foreach $param ($q->param($params[$i])) {
next if $param eq '';
if ($param =~ /^([#-\@\w\.\/\[\]\:\n\r\>\< _"']+)$/) {
@ -1127,7 +1149,7 @@ sub add_address {
&& !($list->issub($add->address(), $part))) {
# it seems, that we cannot trust the return value of "$list->sub"
$list->sub($add->address(), $part);
if(defined($add->name()) && $PRETTY_NAMES) {
if (defined($add->name()) && $PRETTY_NAMES) {
$pretty{$add->address()} = $add->name();
}
} else {
@ -1160,7 +1182,7 @@ sub delete_address {
return (1==0);
}
if($PRETTY_NAMES) {
if ($PRETTY_NAMES) {
my(%pretty, $add);
tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . "/webnames";
foreach $add (@address) {
@ -1185,7 +1207,7 @@ sub set_pagedata4part_list {
$pagedata->setValue("Data.List.PartType", "$part");
if($part eq 'mod') {
if ($part eq 'mod') {
# do we store things in different directories?
my $config = $list->getconfig;
# empty values represent default settings - everything else is considered as evil :)
@ -1271,7 +1293,7 @@ sub create_list {
}
# handle MySQL stuff
if(defined($q->param('setting_state_6')) && $options =~ m/-6\s+/) {
if (defined($q->param('setting_state_6')) && $options =~ m/-6\s+/) {
$customWarning = $list->errmsg() unless($list->createsql());
}
@ -1707,6 +1729,9 @@ sub save_text {
my ($content) = $q->param('content');
my ($charset) = split(':',$list->get_charset());
$charset = 'us-ascii' if ($charset eq '');
# untaint 'content' unconditionally
$content =~ m/^(.*)$/;
$content = $1;
my $content_encoded;
eval { $content_encoded = Encode::encode($charset, $content); };
if ($@) {