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)
|
5 - [optional] configure access control (http authentication)
|
||||||
6 - css stylesheet file
|
6 - css stylesheet file
|
||||||
7 - final test
|
7 - final test
|
||||||
8 - any problems?
|
8 - troubleshooting
|
||||||
|
9 - report problems
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
@ -22,7 +23,7 @@ OVERVIEW:
|
||||||
modules.
|
modules.
|
||||||
|
|
||||||
Additionally (since v3.0) you have to install clearsilver (a templating
|
Additionally (since v3.0) you have to install clearsilver (a templating
|
||||||
engine). See README.clearsilver for details.
|
engine).
|
||||||
|
|
||||||
|
|
||||||
1. Choose a distribution form
|
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
|
If you do not see a colorful screen, then you did not set the HTML_CSS_FILE
|
||||||
option correctly in ezmlmwebrc. Check it again.
|
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).
|
(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
|
- take a look at https://systemausfall.org/toolforge/ezmlm-web
|
||||||
- send me an email: ezmlm-web@sumpfralle.de
|
- send me an email: ezmlm-web@sumpfralle.de
|
||||||
- subscribe to the mailinglist: ezmlm-web-subscribe@lists.systemausfall.org
|
- 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
|
* qmail v1.03
|
||||||
* ezmlm v0.53 (or ezmlm-idx v0.40)
|
* 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;
|
* Perl v5.004 and the following modules;
|
||||||
+ Mail::Ezmlm v0.07 (current version!)
|
+ Mail::Ezmlm v0.07 (current version!)
|
||||||
+ Mail::Address v1.15
|
+ Mail::Address v1.15
|
||||||
|
@ -75,6 +75,7 @@ This version of ezmlm-web requires the following;
|
||||||
+ File::Copy v2.02
|
+ File::Copy v2.02
|
||||||
+ File::Path v1.07
|
+ File::Path v1.07
|
||||||
+ Text::ParseWords v3.24
|
+ Text::ParseWords v3.24
|
||||||
|
+ Locale::gettext v1.01
|
||||||
|
|
||||||
The version number indicates the version of the module that ezmlm-web was
|
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
|
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"
|
die nicht-Abonnenten-Listen (allow/deny/mod) sagen trotzdem: "x AbonnentInnen"
|
||||||
|
|
||||||
|
multi-domain-Support?
|
||||||
|
|
||||||
charset support for idx <= 5.0
|
charset support for idx <= 5.0
|
||||||
|
|
||||||
suppress success message, if no new subscriber addresses were selected for adding
|
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
|
* script for creating binary suid wrappers added
|
||||||
* bug in MySQL support fixed
|
* bug in MySQL support fixed
|
||||||
* treatment of the special character "dot" in listname and list address 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
|
Version 3.1.4 - 03/26/02006
|
||||||
* new setting: DOTQMAIL_DIR (useful for multi domain vpopmail setups)
|
* new setting: DOTQMAIL_DIR (useful for multi domain vpopmail setups)
|
||||||
|
|
2
debian/control
vendored
2
debian/control
vendored
|
@ -7,7 +7,7 @@ Standards-Version: 3.6.2
|
||||||
|
|
||||||
Package: ezmlm-web
|
Package: ezmlm-web
|
||||||
Architecture: any
|
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
|
Suggests: qmail-src, bash (>=2.0), gcc
|
||||||
Description: Web interface for ezmlm-idx mailing list administration
|
Description: Web interface for ezmlm-idx mailing list administration
|
||||||
This web interface allows you to configure every part of an ezmlm-idx
|
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 POSIX qw(tmpnam);
|
||||||
use Encode;
|
use Encode;
|
||||||
use English;
|
use English;
|
||||||
|
use Locale::gettext;
|
||||||
|
|
||||||
# do not forget: we depend on Mail::Ezmlm::Gpg if the corresponding configuration
|
# do not forget: we depend on Mail::Ezmlm::Gpg if the corresponding configuration
|
||||||
# setting is turned on
|
# setting is turned on
|
||||||
|
@ -70,16 +71,16 @@ use vars qw[$ui_set $ui_template];
|
||||||
|
|
||||||
# Get user configuration stuff
|
# Get user configuration stuff
|
||||||
my $config_file;
|
my $config_file;
|
||||||
if(defined($opt_C)) {
|
if (defined($opt_C)) {
|
||||||
$opt_C =~ /^([-\w.\/]+)$/; # security check by ooyama
|
$opt_C =~ /^([-\w.\/]+)$/; # security check by ooyama
|
||||||
$config_file = $1; # Command Line
|
$config_file = $1; # Command Line
|
||||||
} elsif(-e "$HOME_DIR/.ezmlmwebrc") {
|
} elsif (-e "$HOME_DIR/.ezmlmwebrc") {
|
||||||
$config_file = "$HOME_DIR/.ezmlmwebrc"; # User
|
$config_file = "$HOME_DIR/.ezmlmwebrc"; # User
|
||||||
} elsif(-e "./ezmlmwebrc") {
|
} elsif (-e "./ezmlmwebrc") {
|
||||||
$config_file = "./ezmlmwebrc"; # Install
|
$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)
|
$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)
|
$config_file = "/etc/ezmlm/ezmlmwebrc"; # System (old style)
|
||||||
} else {
|
} else {
|
||||||
&fatal_error("Unable to find config file");
|
&fatal_error("Unable to find config file");
|
||||||
|
@ -98,9 +99,10 @@ if (-e "$config_file" . ".gnupg") {
|
||||||
$GPG_SUPPORT = 0;
|
$GPG_SUPPORT = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$GPG_SUPPORT = 0 if (!defined($GPG_SUPPORT));
|
||||||
|
|
||||||
# Allow suid wrapper to over-ride default list directory ...
|
# Allow suid wrapper to over-ride default list directory ...
|
||||||
if(defined($opt_d)) {
|
if (defined($opt_d)) {
|
||||||
$LIST_DIR = $1 if ($opt_d =~ /^([-\@\w.\/]+)$/);
|
$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
|
# look for preferred browser language setting
|
||||||
|
@ -550,14 +571,14 @@ sub set_pagedata()
|
||||||
|
|
||||||
# username and hostname
|
# username and hostname
|
||||||
# Work out if this user has a virtual host and set input accordingly ...
|
# 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: $!";
|
open(VD, "<$QMAIL_BASE/virtualdomains") || warn "Can't read virtual domains file: $!";
|
||||||
while(<VD>) {
|
while(<VD>) {
|
||||||
last if(($hostname) = /(.+?):$USER/);
|
last if (($hostname) = /(.+?):$USER/);
|
||||||
}
|
}
|
||||||
close VD;
|
close VD;
|
||||||
}
|
}
|
||||||
if(!defined($hostname)) {
|
if (!defined($hostname)) {
|
||||||
$username = "$USER-" if ($USER ne $ALIAS_USER);
|
$username = "$USER-" if ($USER ne $ALIAS_USER);
|
||||||
$hostname = $DEFAULT_HOST;
|
$hostname = $DEFAULT_HOST;
|
||||||
}
|
}
|
||||||
|
@ -730,7 +751,7 @@ sub set_pagedata4list_common() {
|
||||||
$pagedata->setValue("Data.List.MsgSize.Min", "$2");
|
$pagedata->setValue("Data.List.MsgSize.Min", "$2");
|
||||||
|
|
||||||
# TODO: this is definitely ugly - create a new sub!
|
# TODO: this is definitely ugly - create a new sub!
|
||||||
if(open(WEBUSER, "<$WEBUSERS_FILE")) {
|
if (open(WEBUSER, "<$WEBUSERS_FILE")) {
|
||||||
while(<WEBUSER>) {
|
while(<WEBUSER>) {
|
||||||
last if (($webusers) = m{^$listname\s*\:\s*(.+)$});
|
last if (($webusers) = m{^$listname\s*\:\s*(.+)$});
|
||||||
}
|
}
|
||||||
|
@ -1024,8 +1045,9 @@ sub untaint {
|
||||||
|
|
||||||
foreach $i (0 .. $#params) {
|
foreach $i (0 .. $#params) {
|
||||||
my(@values);
|
my(@values);
|
||||||
next if($params[$i] eq 'mailaddressfile');
|
next if ($params[$i] eq 'mailaddressfile');
|
||||||
next if($params[$i] eq 'gnupg_key_file');
|
next if ($params[$i] eq 'gnupg_key_file');
|
||||||
|
next if ($params[$i] eq 'content');
|
||||||
foreach $param ($q->param($params[$i])) {
|
foreach $param ($q->param($params[$i])) {
|
||||||
next if $param eq '';
|
next if $param eq '';
|
||||||
if ($param =~ /^([#-\@\w\.\/\[\]\:\n\r\>\< _"']+)$/) {
|
if ($param =~ /^([#-\@\w\.\/\[\]\:\n\r\>\< _"']+)$/) {
|
||||||
|
@ -1127,7 +1149,7 @@ sub add_address {
|
||||||
&& !($list->issub($add->address(), $part))) {
|
&& !($list->issub($add->address(), $part))) {
|
||||||
# it seems, that we cannot trust the return value of "$list->sub"
|
# it seems, that we cannot trust the return value of "$list->sub"
|
||||||
$list->sub($add->address(), $part);
|
$list->sub($add->address(), $part);
|
||||||
if(defined($add->name()) && $PRETTY_NAMES) {
|
if (defined($add->name()) && $PRETTY_NAMES) {
|
||||||
$pretty{$add->address()} = $add->name();
|
$pretty{$add->address()} = $add->name();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1160,7 +1182,7 @@ sub delete_address {
|
||||||
return (1==0);
|
return (1==0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($PRETTY_NAMES) {
|
if ($PRETTY_NAMES) {
|
||||||
my(%pretty, $add);
|
my(%pretty, $add);
|
||||||
tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . "/webnames";
|
tie %pretty, "DB_File", "$LIST_DIR/" . $q->param('list') . "/webnames";
|
||||||
foreach $add (@address) {
|
foreach $add (@address) {
|
||||||
|
@ -1185,7 +1207,7 @@ sub set_pagedata4part_list {
|
||||||
|
|
||||||
$pagedata->setValue("Data.List.PartType", "$part");
|
$pagedata->setValue("Data.List.PartType", "$part");
|
||||||
|
|
||||||
if($part eq 'mod') {
|
if ($part eq 'mod') {
|
||||||
# do we store things in different directories?
|
# do we store things in different directories?
|
||||||
my $config = $list->getconfig;
|
my $config = $list->getconfig;
|
||||||
# empty values represent default settings - everything else is considered as evil :)
|
# empty values represent default settings - everything else is considered as evil :)
|
||||||
|
@ -1271,7 +1293,7 @@ sub create_list {
|
||||||
}
|
}
|
||||||
|
|
||||||
# handle MySQL stuff
|
# 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());
|
$customWarning = $list->errmsg() unless($list->createsql());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1707,6 +1729,9 @@ sub save_text {
|
||||||
my ($content) = $q->param('content');
|
my ($content) = $q->param('content');
|
||||||
my ($charset) = split(':',$list->get_charset());
|
my ($charset) = split(':',$list->get_charset());
|
||||||
$charset = 'us-ascii' if ($charset eq '');
|
$charset = 'us-ascii' if ($charset eq '');
|
||||||
|
# untaint 'content' unconditionally
|
||||||
|
$content =~ m/^(.*)$/;
|
||||||
|
$content = $1;
|
||||||
my $content_encoded;
|
my $content_encoded;
|
||||||
eval { $content_encoded = Encode::encode($charset, $content); };
|
eval { $content_encoded = Encode::encode($charset, $content); };
|
||||||
if ($@) {
|
if ($@) {
|
||||||
|
|
Loading…
Reference in a new issue