From f21f5e041b66a1bf89d492cab6f52b7113036ee0 Mon Sep 17 00:00:00 2001 From: lars Date: Sun, 8 Jan 2006 02:44:38 +0000 Subject: [PATCH] debianized ezmlm-web 3.0 --- ezmlm-web-3.0.1/CHANGES | 109 ------------------ ezmlm-web-3.0.1/changelog | 106 +++++++++++++++++ ezmlm-web-3.0.1/copyright | 30 +++++ .../debian-related/DEBIAN/conffiles | 1 + ezmlm-web-3.0.1/debian-related/DEBIAN/control | 20 ++++ .../debian-related/DEBIAN/postinst | 3 + ezmlm-web-3.0.1/debian-related/DEBIAN/postrm | 3 + ezmlm-web-3.0.1/debian-related/DEBIAN/prerm | 3 + ezmlm-web-3.0.1/debian-related/README.Debian | 54 +++++++++ .../debian-related/changelog.Debian | 3 + .../debian-related/ezmlm-web-make-suid | 33 ++++++ ezmlm-web-3.0.1/debian-related/index.c | 10 ++ .../debian-related/man/ezmlm-web-make-suid.1 | 25 ++++ ezmlm-web-3.0.1/ezmlm-web.cgi | 37 +----- .../{spec => scripts}/check_languages.sh | 0 ezmlm-web-3.0.1/scripts/debian.sh | 76 ++++++++++++ packages/ezmlm-web_3.0-1_all.deb | Bin 0 -> 43752 bytes 17 files changed, 371 insertions(+), 142 deletions(-) delete mode 100644 ezmlm-web-3.0.1/CHANGES create mode 100644 ezmlm-web-3.0.1/changelog create mode 100644 ezmlm-web-3.0.1/copyright create mode 100644 ezmlm-web-3.0.1/debian-related/DEBIAN/conffiles create mode 100644 ezmlm-web-3.0.1/debian-related/DEBIAN/control create mode 100755 ezmlm-web-3.0.1/debian-related/DEBIAN/postinst create mode 100755 ezmlm-web-3.0.1/debian-related/DEBIAN/postrm create mode 100755 ezmlm-web-3.0.1/debian-related/DEBIAN/prerm create mode 100644 ezmlm-web-3.0.1/debian-related/README.Debian create mode 100644 ezmlm-web-3.0.1/debian-related/changelog.Debian create mode 100755 ezmlm-web-3.0.1/debian-related/ezmlm-web-make-suid create mode 100644 ezmlm-web-3.0.1/debian-related/index.c create mode 100644 ezmlm-web-3.0.1/debian-related/man/ezmlm-web-make-suid.1 rename ezmlm-web-3.0.1/{spec => scripts}/check_languages.sh (100%) create mode 100755 ezmlm-web-3.0.1/scripts/debian.sh create mode 100644 packages/ezmlm-web_3.0-1_all.deb diff --git a/ezmlm-web-3.0.1/CHANGES b/ezmlm-web-3.0.1/CHANGES deleted file mode 100644 index 94edcdd..0000000 --- a/ezmlm-web-3.0.1/CHANGES +++ /dev/null @@ -1,109 +0,0 @@ -REVISION HISTORY - ezmlm-web.cgi -================================ - -Version 0.1 - 10/04/98 (Not Released) -* University Vac - I was bored and started to play. The first version just - let people play with the subscribers list. No moderators, no nothing. - -Version 0.2 - 13/04/98 (Not Released) -* Allow list creation -* Allowed users to edit moderators - -Version 0.3 - 15/04/98 -* Allow list deletion (for balin@moria.org) -* Made changes to allow it to run on RedHat 4.2 as well as FreeBSD 3.0 -* Fixed some minor bugs (cosmetic irritaions really) that people noticed -* Sorted subscribers list into alphabetical order. -* Added command line switch to change list directory (for nxsy@moria.org) -* Wrote some documentation ... - -Version 0.4 - 28/04/98 -* Fixed up virtual domain (inlocal) stuff as spotted by bryan@rucus -* Allowed the list directory to be automatically created if necessary. - -Version 0.5 - 12/05/98 (Not Released) -* More bug fixes. Mainly for mathew@graham. - -Version 1.0 - 01/08/98 -* Complete re-write to convert to perl5 and CGI.pm -* Removed a lot of dependancy on the OS. Use builtin functions instead :) -* Added support for ezmlm-idx -* Added a lot more command line option support (-adfgiklmnpqsrstux5) -* Added support for digests and digest subscribers -* Added support for blacklists -* Allowed users to edit the config of existing lists -* Allowed the user to edit headeradd and headerremove as well as mimeremove -* Allowed user to edit any of the files in DIR/text -* Revised interface to make it more user-friendly and ergonomic. -* Changed the background colour for Kether (clb@rucus) *gryn* -* Removed a big bug in the delete_list function that had gone unnoticed. - -Version 1.0.1 - 10/08/98 -* Fixed a bug in the way 1.0 re-configured virtual hosts (bryan@rucus) -* Made the script read the /var/qmail/control files instead of explicitly - setting variables (for david@summersoft) - -Version 1.0.2 - 28/08/98 -* Fixed the bug introduced in v1.0.1 :( (keith@rucus) -* Fixed the way we recreate config files (noticed by Glen Stewart) -* Made the script check return values of system calls properly -* Fixed some of the taint checking stuff ... reports less in the logs now. - -Version 1.0.3 - 03/10/98 -* Fixed the alias-alias-alias-list bug in inlocal (bryan@rucus) -* Added a bit of online help -* Fixed the & in list owner (bryan@rucus) -* Added multi-level access to lists (based on idea by Glen Stewart) - -Version 2.0 - 01/01/00 -* Rewrote most of the code to take advantage of Mail::Ezmlm -* Made the webuser file more functional (users can alter it) -* Now handles all current, and future command line options -* Changed the colours :) -* Added support for ezmlm-cgi web archives -* Made it -w and use strict clean -* Moved all user config to a separate file -* Fixed the way we worked out list config - now complete -* Allowed a user specific config over-ride ``ezmlmwebrc'' -* Allowed the printing of `nice' usernames (for Rhodes CS Dept) -* Took account of non-standard paths for moderators -* Removed all system() and `` calls from ezmlm-web.cgi -* Made `look and feel' virtually all user configurable -* Added a lot more context sensitive help -* Made ezmlm-web 99% language configurable - but no other templates yet :( -* Added support for creating databases - -Version 2.1 - 25/09/00 -* Fixed the multiple delete thing - finally! -* Fixed the '-' in username problem - The '-' in hostnames problem is fixed - in the new version of Mail::Ezmlm -* Fixed the '_' in list names problem -* Added support for file uploads of email addresses (multiple subscribe) -* Made error handling more friendly - -Version 2.2 - 26/01/02005 (not officially released) -* German translation of the web interface - more translations can be added easily -* changed "ALT"-tags to "TITLE" - most browsers will display the tooltip texts now -* fixed security problems (permissions were not thoroughly checked) -* user-based permission for creating lists (can be set in webusersrc) -* the location of the webusers file is now an option in ezmlmwebrc - -Version 2.3 - 10/06/02005 -* css styles are used instead of tables -* permission check for upload of files fixed -* removed some taint errors -* file upload typo fixed -* update of webusers file fixed -* moderator unsubscribe fixed - -Version 3.0 - 12/25/02005 -* complete interface rewritten for enhanced usability -* suppurt for msgsize, mimereject, trailer -* fixed insecure writing of webusers data -* define a default MAIL_DOMAIN -* changed directory for safely removed mailinglists -* requires the clearsilver template engine - -Version 3.0.1 - 01/06/02006 -* allow several special characters in local part of mail address (RFC2822) - diff --git a/ezmlm-web-3.0.1/changelog b/ezmlm-web-3.0.1/changelog new file mode 100644 index 0000000..57f0f6b --- /dev/null +++ b/ezmlm-web-3.0.1/changelog @@ -0,0 +1,106 @@ +Version 3.0.1 - 01/06/02006 + * allow several special characters in local part of mail address (RFC2822) + +Version 3.0 - 12/25/02005 + * complete interface rewritten for enhanced usability + * suppurt for msgsize, mimereject, trailer + * fixed insecure writing of webusers data + * define a default MAIL_DOMAIN + * changed directory for safely removed mailinglists + * requires the clearsilver template engine + +Version 2.3 - 10/06/02005 + * css styles are used instead of tables + * permission check for upload of files fixed + * removed some taint errors + * file upload typo fixed + * update of webusers file fixed + * moderator unsubscribe fixed + +Version 2.2 - 26/01/02005 (not officially released) + * German translation of the web interface - more translations can be added easily + * changed "ALT"-tags to "TITLE" - most browsers will display the tooltip texts now + * fixed security problems (permissions were not thoroughly checked) + * user-based permission for creating lists (can be set in webusersrc) + * the location of the webusers file is now an option in ezmlmwebrc + +Version 2.1 - 25/09/00 + * Fixed the multiple delete thing - finally! + * Fixed the '-' in username problem - The '-' in hostnames problem is fixed + in the new version of Mail::Ezmlm + * Fixed the '_' in list names problem + * Added support for file uploads of email addresses (multiple subscribe) + * Made error handling more friendly + +Version 2.0 - 01/01/00 + * Rewrote most of the code to take advantage of Mail::Ezmlm + * Made the webuser file more functional (users can alter it) + * Now handles all current, and future command line options + * Changed the colours :) + * Added support for ezmlm-cgi web archives + * Made it -w and use strict clean + * Moved all user config to a separate file + * Fixed the way we worked out list config - now complete + * Allowed a user specific config over-ride ``ezmlmwebrc'' + * Allowed the printing of `nice' usernames (for Rhodes CS Dept) + * Took account of non-standard paths for moderators + * Removed all system() and `` calls from ezmlm-web.cgi + * Made `look and feel' virtually all user configurable + * Added a lot more context sensitive help + * Made ezmlm-web 99% language configurable - but no other templates yet :( + * Added support for creating databases + +Version 1.0.3 - 03/10/98 + * Fixed the alias-alias-alias-list bug in inlocal (bryan@rucus) + * Added a bit of online help + * Fixed the & in list owner (bryan@rucus) + * Added multi-level access to lists (based on idea by Glen Stewart) + +Version 1.0.2 - 28/08/98 + * Fixed the bug introduced in v1.0.1 :( (keith@rucus) + * Fixed the way we recreate config files (noticed by Glen Stewart) + * Made the script check return values of system calls properly + * Fixed some of the taint checking stuff ... reports less in the logs now. + +Version 1.0.1 - 10/08/98 + * Fixed a bug in the way 1.0 re-configured virtual hosts (bryan@rucus) + * Made the script read the /var/qmail/control files instead of explicitly + setting variables (for david@summersoft) + +Version 1.0 - 01/08/98 + * Complete re-write to convert to perl5 and CGI.pm + * Removed a lot of dependancy on the OS. Use builtin functions instead :) + * Added support for ezmlm-idx + * Added a lot more command line option support (-adfgiklmnpqsrstux5) + * Added support for digests and digest subscribers + * Added support for blacklists + * Allowed users to edit the config of existing lists + * Allowed the user to edit headeradd and headerremove as well as mimeremove + * Allowed user to edit any of the files in DIR/text + * Revised interface to make it more user-friendly and ergonomic. + * Changed the background colour for Kether (clb@rucus) *gryn* + * Removed a big bug in the delete_list function that had gone unnoticed. + +Version 0.5 - 12/05/98 (Not Released) + * More bug fixes. Mainly for mathew@graham. + +Version 0.4 - 28/04/98 + * Fixed up virtual domain (inlocal) stuff as spotted by bryan@rucus + * Allowed the list directory to be automatically created if necessary. + +Version 0.3 - 15/04/98 + * Allow list deletion (for balin@moria.org) + * Made changes to allow it to run on RedHat 4.2 as well as FreeBSD 3.0 + * Fixed some minor bugs (cosmetic irritaions really) that people noticed + * Sorted subscribers list into alphabetical order. + * Added command line switch to change list directory (for nxsy@moria.org) + * Wrote some documentation ... + +Version 0.2 - 13/04/98 (Not Released) + * Allow list creation + * Allowed users to edit moderators + +Version 0.1 - 10/04/98 (Not Released) + * University Vac - I was bored and started to play. The first version just + let people play with the subscribers list. No moderators, no nothing. + diff --git a/ezmlm-web-3.0.1/copyright b/ezmlm-web-3.0.1/copyright new file mode 100644 index 0000000..b0af734 --- /dev/null +++ b/ezmlm-web-3.0.1/copyright @@ -0,0 +1,30 @@ +Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved. +Please send bug reports and comments to guy-ezmlm@rucus.ru.ac.za + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +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. + +Neither name Guy Antony Halse nor the names of any contributors +may be used to endorse or promote products derived from this software +without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS +IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + diff --git a/ezmlm-web-3.0.1/debian-related/DEBIAN/conffiles b/ezmlm-web-3.0.1/debian-related/DEBIAN/conffiles new file mode 100644 index 0000000..effb258 --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/DEBIAN/conffiles @@ -0,0 +1 @@ +/etc/ezmlm-web/ezmlmwebrc diff --git a/ezmlm-web-3.0.1/debian-related/DEBIAN/control b/ezmlm-web-3.0.1/debian-related/DEBIAN/control new file mode 100644 index 0000000..aad42fb --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/DEBIAN/control @@ -0,0 +1,20 @@ +Package: ezmlm-web +Version: 3.0-1 +Section: admin +Priority: extra +Architecture: all +Depends: perl, httpd-cgi +Suggests: qmail-src, bash (>=2.0), gcc +Maintainer: Lars Kruse +Description: Web interface for ezmlm-idx mailing list administration + This web interface allows you to configure every part of an ezmlm-idx + mailing list. + Access control makes it possible, to share the administrative work in a + controlled way. + This package depends on the following programs, that are not part of the main + debian distribution: + * qmail - http://cr.yp.to/qmail.html + * ezmlm-idx - http://ezmlm.org/ + * clearsilver for perl (>= 0.10.2) - http://www.clearsilver.net/downloads/ + * some perl modules (see README) + diff --git a/ezmlm-web-3.0.1/debian-related/DEBIAN/postinst b/ezmlm-web-3.0.1/debian-related/DEBIAN/postinst new file mode 100755 index 0000000..296ef78 --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/DEBIAN/postinst @@ -0,0 +1,3 @@ +#!/bin/sh + +true diff --git a/ezmlm-web-3.0.1/debian-related/DEBIAN/postrm b/ezmlm-web-3.0.1/debian-related/DEBIAN/postrm new file mode 100755 index 0000000..296ef78 --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/DEBIAN/postrm @@ -0,0 +1,3 @@ +#!/bin/sh + +true diff --git a/ezmlm-web-3.0.1/debian-related/DEBIAN/prerm b/ezmlm-web-3.0.1/debian-related/DEBIAN/prerm new file mode 100755 index 0000000..296ef78 --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/DEBIAN/prerm @@ -0,0 +1,3 @@ +#!/bin/sh + +true diff --git a/ezmlm-web-3.0.1/debian-related/README.Debian b/ezmlm-web-3.0.1/debian-related/README.Debian new file mode 100644 index 0000000..4352f6a --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/README.Debian @@ -0,0 +1,54 @@ +How to use ezmlm-web with debian + +Table of content +1 - install the package +2 - install required additional software +3 - create user-sprecific suid binaries +4 - create a user-specific configuration +5 - access control +6 - testing + +################################################################# + +1) install the package +you surely did this already :) + + +2) install required additional software +Take a look at /usr/share/doc/ezmlm-web/README - section III (Requirements). +If you are able to run /usr/lib/ezmlm-web/ezmlm-web.pl without problems, then +you are ready for the next step. + + +3) create user-specific suid binaries +As perl-suid is considered deprecated, you have to compile a C-wrapper +for every user of your debian system, who wants to manage his mailing +lists with ezmlm-we. +Usually you do this only for your virtual mailing list user. + +to create a wrapper, type the following: + ezmlm-web-make-suid USERNAME DESTINATION_FILE + +e.g: ezmlm-web-make-suid john ~john/public_html/cgi-bin/ezmlm-web + + +4) create a user-specific configuration file (optional) +Copy /usr/share/doc/ezmlm-web/examples/ezmlmwebrc to ~john/.ezmlmwebrc +and change its content according to your setup. + + +5) access control (optional) +configure access control for the fresh cgi binary. Maybe you can +use the htaccess.sample file in /usr/share/doc/ezmlm-web/examples as +a template. + +Now you should create a webusers file to define the permissions of all +possible web users. An example webusers file can be found at +/usr/share/doc/ezmlm-web/examples/webusers.sample. + +See /usr/share/doc/ezmlm-web/README for details about access control. + + +6) testing +Now you can access the ezmlm-web interface by using your web browser. +e.g. point it to http://localhost/~john/cgi-bin/ezmlm-web diff --git a/ezmlm-web-3.0.1/debian-related/changelog.Debian b/ezmlm-web-3.0.1/debian-related/changelog.Debian new file mode 100644 index 0000000..f882e69 --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/changelog.Debian @@ -0,0 +1,3 @@ +ezmlm-web (0.3.0-1) unstable; urgency=low + * Initial release + -- Lars Kruse Sat, 08 Jan 2006 03:15:42 +0100 diff --git a/ezmlm-web-3.0.1/debian-related/ezmlm-web-make-suid b/ezmlm-web-3.0.1/debian-related/ezmlm-web-make-suid new file mode 100755 index 0000000..8cf5f9c --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/ezmlm-web-make-suid @@ -0,0 +1,33 @@ +#!/bin/sh +# +# create user-specific suid binaries to call ezmlm-web.cgi +# +# parameters: [USERNAME] DESTINATION_FILE +# e.g.: john ~john/public_html/cgi-bin/ezmlm-web +# only root may choose a USERNAME +# + +set -eu + +C_SOURCE=/usr/share/ezmlm-web/index.c + +which cc >/dev/null || { echo "no compiler (cc) installed - sorry" >&2; exit 1; } + +[ $(id -u) -ne 0 ] && [ $# -ne 1 ] && echo "Syntax (for non-root): $(basename $0) DESTINATION_FILE" >&2 && exit 1 +[ $(id -u) -eq 0 ] && [ $# -gt 2 -o $# -lt 1 ] && echo "Syntax (for root): $(basename $0) [USERNAME] DESTINATION_FILE" >&2 && exit 1 + +if [ $# -eq 1 ] + then EZ_USER=$(id -un) + EZ_FILE=$1 + else EZ_USER=$1 + EZ_FILE=$2 + fi + +cc -o "$EZ_FILE" "$C_SOURCE" +if [ $(id -u) -eq 0 ] + then chown "$EZ_USER". "$EZ_FILE" || { echo "the user '$EZ_USER' does not exist" >&2; rm "$EZ_FILE"; exit 1; } + fi +chmod u+s "$EZ_FILE" + +echo "Successfully created '$EZ_FILE' for user '$EZ_USER'." + diff --git a/ezmlm-web-3.0.1/debian-related/index.c b/ezmlm-web-3.0.1/debian-related/index.c new file mode 100644 index 0000000..0453aaa --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/index.c @@ -0,0 +1,10 @@ +#include + +/* C wrapper to allow ezmlm-web.cgi to run suid */ +/* Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved */ +/* See the README file in this distribution for copyright information */ + +int main(void) { + /* Change this path to wherever you decided to put ezmlm-web.cgi */ + execv("/usr/lib/ezmlm-web/ezmlm-web.pl"); +} diff --git a/ezmlm-web-3.0.1/debian-related/man/ezmlm-web-make-suid.1 b/ezmlm-web-3.0.1/debian-related/man/ezmlm-web-make-suid.1 new file mode 100644 index 0000000..f79cb4e --- /dev/null +++ b/ezmlm-web-3.0.1/debian-related/man/ezmlm-web-make-suid.1 @@ -0,0 +1,25 @@ +.TH ezmlm-web-make-suid 1 "January 02006" "ezmlm-web" "helper script" +.SH NAME +ezmlm-web-make-suid \- create user-specific suid wrappers for ezmlm-web +.SH SYNOPSIS +.B ezmlm-web-make-suid +[\fIUSERNAME\fR] \fIDESTINATION_FILE\fR +.SH DESCRIPTION +.PP +Create a user-specific suid wrapper for ezmlm-web. This is necessary, as +the mailing lists are usually not owned by the webserver, that executes +the cgi. +.PP +The destination file determines where to put the resulting binary. +.PP +Only root is allowed to choose a username. +.SH EXAMPLES +.PP +ezmlm-web-make-suid john ~john/public_html/ezmlm-web +.SH AUTHOR +Written by Lars Kruse +.SH "REPORTING BUGS" +Report bugs to +.SH COPYRIGHT +Copyright \(co 02006 Lars Kruse + diff --git a/ezmlm-web-3.0.1/ezmlm-web.cgi b/ezmlm-web-3.0.1/ezmlm-web.cgi index df63d0f..030addc 100755 --- a/ezmlm-web-3.0.1/ezmlm-web.cgi +++ b/ezmlm-web-3.0.1/ezmlm-web.cgi @@ -1,37 +1,6 @@ #!/usr/bin/perl #=========================================================================== -# ezmlm-web.cgi - version 2.3 - 10/06/02005 -# -# Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved. -# Please send bug reports and comments to guy-ezmlm@rucus.ru.ac.za -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 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. -# -# Neither name Guy Antony Halse nor the names of any contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS -# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# +# ezmlm-web.cgi - version 3.0 # ========================================================================== # All user configuration happens in the config file ``ezmlmwebrc'' # POD documentation is at the end of this file @@ -93,8 +62,10 @@ if(defined($opt_C)) { require "$HOME_DIR/.ezmlmwebrc"; # User } elsif(-e "./ezmlmwebrc") { require "./ezmlmwebrc"; # Install +} elsif(-e "/etc/ezmlm-web/ezmlmwebrc") { + require "/etc/ezmlm-web/ezmlmwebrc"; # System (new style) } elsif(-e "/etc/ezmlm/ezmlmwebrc") { - require "/etc/ezmlm/ezmlmwebrc"; # System + require "/etc/ezmlm/ezmlmwebrc"; # System (old style) } else { &fatal_error("Unable to read config file"); } diff --git a/ezmlm-web-3.0.1/spec/check_languages.sh b/ezmlm-web-3.0.1/scripts/check_languages.sh similarity index 100% rename from ezmlm-web-3.0.1/spec/check_languages.sh rename to ezmlm-web-3.0.1/scripts/check_languages.sh diff --git a/ezmlm-web-3.0.1/scripts/debian.sh b/ezmlm-web-3.0.1/scripts/debian.sh new file mode 100755 index 0000000..96dd2e4 --- /dev/null +++ b/ezmlm-web-3.0.1/scripts/debian.sh @@ -0,0 +1,76 @@ +#!/bin/sh +# +# Copyright (c) 02005 Lars Kruse +# +# License: This script is distributed under the terms of +# the BSD license +# +# build a debian package +# + +set -ue + +######### some settings ########### +ROOT_DIR=$(dirname "$0")/.. +ROOT_DIR=$(cd "$ROOT_DIR"; pwd) + +BUILD_DIR=/tmp/ezmlm-web-build-$$ + +PACKAGE_DIR=$ROOT_DIR/../tags/packages +[ ! -e "$PACKAGE_DIR" ] && PACKAGE_DIR=$ROOT_DIR/../packages +[ ! -e "$PACKAGE_DIR" ] && echo "package dir not found" >&2 && exit 1 + +############# do it ############### + +[ -e "$BUILD_DIR" ] && rm -rf "$BUILD_DIR" + +ACTION=build +[ $# -gt 0 ] && ACTION=$1 && shift + +case "$ACTION" in + build ) + mkdir -p "$BUILD_DIR/usr/share/ezmlm-web" + mkdir -p "$BUILD_DIR/usr/lib/ezmlm-web" + mkdir -p "$BUILD_DIR/usr/bin" + mkdir -p "$BUILD_DIR/usr/share/man/man1" + mkdir -p "$BUILD_DIR/usr/share/doc/ezmlm-web/examples" + mkdir -p "$BUILD_DIR/etc/ezmlm-web" + mkdir -p "$BUILD_DIR/var/www" + svn export "$ROOT_DIR/template" "$BUILD_DIR/usr/share/ezmlm-web/template" >/dev/null + svn export "$ROOT_DIR/css" "$BUILD_DIR/usr/share/ezmlm-web/css" >/dev/null + ln -s /usr/share/ezmlm-web/css/default.css "$BUILD_DIR/var/www/ezmlm-web.css" + svn export "$ROOT_DIR/lang" "$BUILD_DIR/usr/share/ezmlm-web/lang" >/dev/null + cp "$ROOT_DIR/ezmlm-web.cgi" "$BUILD_DIR/usr/lib/ezmlm-web/ezmlm-web.pl" + cp "$ROOT_DIR/debian-related/index.c" "$BUILD_DIR/usr/share/ezmlm-web" + cp "$ROOT_DIR/htaccess.sample" "$BUILD_DIR/usr/share/doc/ezmlm-web/examples" + cp "$ROOT_DIR/webusers.sample" "$BUILD_DIR/usr/share/doc/ezmlm-web/examples" + sed 's#/usr/local/#/usr/#g' "$ROOT_DIR/ezmlmwebrc" | tee "$BUILD_DIR/usr/share/doc/ezmlm-web/examples/ezmlmwebrc" >"$BUILD_DIR/etc/ezmlm-web/ezmlmwebrc" + cp "$ROOT_DIR/README" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/TODO" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/UPGRADING" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/copyright" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/debian-related/README.Debian" "$BUILD_DIR/usr/share/doc/ezmlm-web" + cp "$ROOT_DIR/debian-related/ezmlm-web-make-suid" "$BUILD_DIR/usr/bin" + gzip --best -c "$ROOT_DIR/changelog" \ + >"$BUILD_DIR/usr/share/doc/ezmlm-web/changelog.gz" + gzip --best -c "$ROOT_DIR/debian-related/changelog.Debian" \ + >"$BUILD_DIR/usr/share/doc/ezmlm-web/changelog.Debian.gz" + gzip --best -c "$ROOT_DIR/debian-related/man/ezmlm-web-make-suid.1" \ + >"$BUILD_DIR/usr/share/man/man1/ezmlm-web-make-suid.1.gz" + svn export "$ROOT_DIR/debian-related/DEBIAN" "$BUILD_DIR/DEBIAN" >/dev/null + fakeroot dpkg-deb --build "$BUILD_DIR" "$PACKAGE_DIR" + rm -rf "$BUILD_DIR" + ;; + check ) + PACKAGE_FILE=$(find "$PACKAGE_DIR" -type f -name "ezmlm-web*" | grep "\.deb$" | sort -n | tail -1) + if [ -z "$PACKAGE_FILE" ] + then echo "no debian package found in $PACKAGE_DIR" + else lintian "$PACKAGE_FILE" + fi + ;; + * ) + echo "Syntax: $(basename $0) [ build | check | help ]" + echo + ;; + esac + diff --git a/packages/ezmlm-web_3.0-1_all.deb b/packages/ezmlm-web_3.0-1_all.deb new file mode 100644 index 0000000000000000000000000000000000000000..9849fdc197bc19da27dab7dbac8c9ab396aa85b9 GIT binary patch literal 43752 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 literal 0 HcmV?d00001