removed obsolete clearsilver notes
added initial stuff for gettext support added dependency: liblocale-gettext-perl
This commit is contained in:
parent
fab90852d5
commit
dcc2ef9a56
10
INSTALL
10
INSTALL
|
@ -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
3
README
|
@ -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
|
||||
|
|
|
@ -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
2
TODO
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ($@) {
|
||||
|
|
Loading…
Reference in New Issue