initial commit of file from CVS for ezmlm-web on Thu Oct 9 11:44:01 AEDT 2025

This commit is contained in:
Trevor Batley
2025-10-09 11:44:01 +11:00
parent 32d2c89d09
commit 49d5d121aa
11 changed files with 590 additions and 1 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.3.1.tar.gz filter=lfs diff=lfs merge=lfs -text

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
*.rpm
*.log
*spec-20*

21
Makefile Normal file
View File

@@ -0,0 +1,21 @@
# Makefile for source rpm: ezmlm-web
# $Id: Makefile,v 1.1 2022/03/15 19:09:46 jpp Exp $
NAME := ezmlm-web
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View File

@@ -1,3 +1,9 @@
# ezmlm-web
3rd Party (Maintained by Koozali) git repo for ezmlm-web smecontribs
3rd Party (Maintained by Koozali) git repo for ezmlm-web smecontribs
## Description
<br />*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
*Once it has been checked, then this comment will be deleted*
<br />

1
contriborbase Normal file
View File

@@ -0,0 +1 @@
contribs10

View File

@@ -0,0 +1,19 @@
diff -Nur --no-dereference ezmlm-web-3.3.1.old/ezmlm-web.cgi ezmlm-web-3.3.1/ezmlm-web.cgi
--- ezmlm-web-3.3.1.old/ezmlm-web.cgi 2022-03-20 13:49:24.150000000 -0400
+++ ezmlm-web-3.3.1/ezmlm-web.cgi 2022-03-20 14:04:48.534000000 -0400
@@ -240,13 +240,13 @@
$HTML_TITLE = '' unless defined($HTML_TITLE);
# check HTML_LINKS
-@HTML_LINKS = () unless defined(@HTML_LINKS);
+@HTML_LINKS = () unless @HTML_LINKS;
# check DEFAULT_INTERFACE_TYPE
$DEFAULT_INTERFACE_TYPE = 'normal' unless defined($DEFAULT_INTERFACE_TYPE);
# check possible blacklist of interface options (since v3.3)
-@INTERFACE_OPTIONS_BLACKLIST = () unless defined(@INTERFACE_OPTIONS_BLACKLIST);
+@INTERFACE_OPTIONS_BLACKLIST = () unless @INTERFACE_OPTIONS_BLACKLIST;
# check the configured detault location of gnupg keyrings
$GPG_KEYRING_DEFAULT_LOCATION = ".gnupg"

23
ezmlm-web-3.3.1-cgi.patch Normal file
View File

@@ -0,0 +1,23 @@
--- ezmlm-web-3.3.1/ezmlm-web.cgi.ori 2016-04-18 23:46:09.000000000 -0400
+++ ezmlm-web-3.3.1/ezmlm-web.cgi 2016-04-20 05:03:33.000000000 -0400
@@ -2064,7 +2064,10 @@
if (defined($q->param("setting_state_$i"))) {
$options .= " -$i '" . $q->param("setting_value_$i") . "'";
} else {
- if ($i != 5) {
+ if ($i == 3) {
+ unlink("$LIST_DIR/$listname/fromheader");
+ }
+ elsif ($i != 5) {
# everything except for the "owner" attribute:
# do not set the value to an empty string,
# as ezmlm-idx 5.0 does not work correctly for this case
@@ -2427,7 +2430,7 @@
if (defined($q->param('option_t'))) {
# TODO: the trailer _must_ be followed by a newline
#$list->set_text_content('trailer', $q->param('trailing_text'));
- $list->set_text_content('trailer', $list->get_text_default_content('trailer'))
+ $list->set_text_content('trailer', $list->get_text_content('trailer'))
unless (-e "$list->{'LIST_NAME'}/text/trailer");
} else {
# ezmlm-make automatically removes this file

View File

@@ -0,0 +1,226 @@
--- ezmlm-web-3.3.1/ezmlm-web.cgi.plusmodif 2016-04-20 06:55:41.000000000 -0400
+++ ezmlm-web-3.3.1/ezmlm-web.cgi 2016-04-20 15:21:15.000000000 -0400
@@ -1169,6 +1169,20 @@
$item = '' unless defined($item);
$pagedata->setValue("Data.List.CopyLines", "$item");
}
+ if (Mail::Ezmlm->get_version() >= 7) {
+ $item = $list->getpart('digsize');
+ $item = '' unless defined($item);
+ $pagedata->setValue("Data.List.digsize", "$item");
+
+ $item = $list->getpart('digcount');
+ $item = '' unless defined($item);
+ $pagedata->setValue("Data.List.digcount", "$item");
+
+ $item = $list->getpart('digtime');
+ $item = '' unless defined($item);
+ $pagedata->setValue("Data.List.digtime", "$item");
+ }
+
$item = $list->getpart('mimereject');
$item = '' unless defined($item);
@@ -2524,6 +2538,46 @@
}
}
+ # 'digsize' setting (since ezmlm-idx v7)
+ if (defined($q->param('digsize'))) {
+ my $digsize;
+ $digsize = (defined($q->param('digsize'))) ?
+ $q->param('digsize') : 0;
+ if (defined($q->param('digsize_state')) && ($digsize)) {
+ $list->setpart('digsize', "$digsize");
+ } else {
+ my $digsize = $list->thislist() . "/digsize";
+ unlink ($digsize) if (-e $digsize);
+ }
+ }
+ # 'digsize' setting (since ezmlm-idx v7)
+ if (defined($q->param('digcount'))) {
+ my $digcount;
+ $digcount = (defined($q->param('digcount'))) ?
+ $q->param('digcount') : 0;
+ if (defined($q->param('digcount_state')) && ($digcount)) {
+ $list->setpart('digcount', "$digcount");
+ } else {
+ my $digcount = $list->thislist() . "/digcount";
+ unlink ($digcount) if (-e $digcount);
+ }
+ }
+ # 'digtime' setting (since ezmlm-idx v7)
+ if (defined($q->param('digtime'))) {
+ my $digtime;
+ $digtime = (defined($q->param('digtime'))) ?
+ $q->param('digtime') : 0;
+ if (defined($q->param('digtime_state')) && ($digtime)) {
+ $list->setpart('digtime', "$digtime");
+ } else {
+ my $digtime = $list->thislist() . "/digtime";
+ unlink ($digtime) if (-e $digtime);
+ }
+ }
+
+
+
+
# 'msgsize' setting
if (defined($q->param('msgsize_max_value'))
&& defined($q->param('msgsize_min_value'))) {
--- ezmlm-web/lang/en.hdf.plusmodif 2016-04-20 06:55:41.000000000 -0400
+++ ezmlm-web/lang/en.hdf 2016-04-20 15:06:49.000000000 -0400
@@ -234,6 +234,12 @@
ListAddress = List Address
ListOptions = Basic List Options
AllowedToEdit = Users allowed to edit this list via web interface
+ digsize = Size of message body accumulated since the latest digest
+ digsize.unit = kbytes
+ digcount = Number of message accumulated since the latest digest
+ digcount.unit = messages
+ digtime = Time since lastest digest
+ digtime.unit = hours
HeaderFiltering = Header filtering
HeaderRemove = strip these header lines
HeaderKeep = keep only these header lines
--- ezmlm-web/template/ui/easy.hdf.plusmodif 2016-04-20 06:55:42.000000000 -0400
+++ ezmlm-web/template/ui/easy.hdf 2016-04-20 14:54:20.000000000 -0400
@@ -40,7 +40,6 @@
Listname = create_listname
Listaddress = create_listaddress
Listlanguage = lang_select
- Webuser = webusers
}
@@ -60,7 +59,6 @@
SubscribeRules = subscribe_selection
PostingRules = posting_selection
Confirm = confirm_selection
- WebUsers = webusers
}
Processing {
--- ezmlm-web/template/ui/normal.hdf.plusmodif 2016-04-20 06:55:42.000000000 -0400
+++ ezmlm-web/template/ui/normal.hdf 2016-04-20 14:54:58.000000000 -0400
@@ -47,7 +47,6 @@
Listname = create_listname
Listaddress = create_listaddress
Listlanguage = lang_select
- Webuser = webusers
}
@@ -58,7 +57,6 @@
}
Deny {
- Enabled = block_deny
}
Moderators {
@@ -85,7 +83,6 @@
Main {
Language = lang_select
Owner = owner_address
- WebUsers = webusers
}
Archive {
@@ -110,7 +107,6 @@
Posting {
Moderate = posting_selection
- UseDeny = block_deny
Confirm = confirm_post
SizeMax = msgsize_max
SizeMin = msgsize_min
--- ezmlm-web/template/ui/expert.hdf.plusmodif 2016-04-20 06:55:42.000000000 -0400
+++ ezmlm-web/template/ui/expert.hdf 2016-04-20 14:53:16.000000000 -0400
@@ -49,7 +49,6 @@
Listaddress = create_listaddress
Listlanguage = lang_select
Mysql = mysql
- Webuser = webusers
}
@@ -61,7 +60,6 @@
}
Deny {
- Enabled = block_deny
}
Moderators {
@@ -93,10 +91,8 @@
Charset = charset_select
Owner = owner_address
MainList = mainlist
- MailmanRequests = mailman_requests
RemoveWarn = warn_remove
SQL = mysql
- WebUsers = webusers
}
Archive {
@@ -123,7 +119,6 @@
Posting {
Rules = posting_selection
- UseDeny = block_deny
Confirm = confirm_post
SizeMax = msgsize_max
SizeMin = msgsize_min
@@ -156,12 +151,10 @@
ConfirmSub = confirm_sub
ConfirmUnsub = confirm_unsub
ModSubEnable = mod_sub
- UseDeny = block_deny
BlockOthers = block_others_post
ConfirmPosting = confirm_post
ModPosting = mod_post
NonModPosting = block_nonmod_post
- MailmanRequests = mailman_requests
RemoveWarn = warn_remove
DigestEnabled = digest_enabled
DigestSettings = digest_settings
@@ -190,7 +183,6 @@
CopyLines = copylines
Language = lang_select
Charset = charset_select
- WebUsers = webusers
}
}
--- ezmlm-web/template/config_options/digest_settings.cs.ori 2016-04-20 13:51:45.000000000 -0400
+++ ezmlm-web/template/config_options/digest_settings.cs 2016-04-20 15:13:35.000000000 -0400
@@ -1,3 +1,27 @@
<!-- REMOVE --><?cs include:TemplateDir + '/macros.cs' ?>
<!-- digest settings -->
-<?cs call:setting("4") ?>
+<input type="checkbox" name="digsize_state"
+ value="selected" id="digsize_state" <?cs
+ if:Data.List.digsize>0 ?>checked="checked"<?cs /if ?> />
+ <label for="digsize"><?cs var:html_escape(Lang.Misc.digsize) ?></label>
+ <ul><li><input type="text" name="digsize" size="10"
+ style="text-align:right" value="<?cs
+ alt:Data.List.digsize ?>64<?cs /alt ?>" /> <?cs
+ var:html_escape(Lang.Misc.digsize.unit) ?></li></ul>
+<input type="checkbox" name="digcount_state"
+ value="selected" id="digcount_state" <?cs
+ if:Data.List.digcount>0 ?>checked="checked"<?cs /if ?> />
+ <label for="digcount"><?cs var:html_escape(Lang.Misc.digcount) ?></label>
+ <ul><li><input type="text" name="digcount" size="10"
+ style="text-align:right" value="<?cs
+ alt:Data.List.digcount ?>30<?cs /alt ?>" /> <?cs
+ var:html_escape(Lang.Misc.digcount.unit) ?></li></ul>
+<input type="checkbox" name="digtime_state"
+ value="selected" id="digtime_state" <?cs
+ if:Data.List.digtime>0 ?>checked="checked"<?cs /if ?> />
+ <label for="digtime"><?cs var:html_escape(Lang.Misc.digtime) ?></label>
+ <ul><li><input type="text" name="digtime" size="10"
+ style="text-align:right" value="<?cs
+ alt:Data.List.digtime ?>48<?cs /alt ?>" /> <?cs
+ var:html_escape(Lang.Misc.digtime.unit) ?></li></ul>
+

View File

@@ -0,0 +1,112 @@
--- ezmlm-web-3.3.1/ezmlm-web.cgi.smeintegration 2013-10-20 15:32:06.000000000 -0400
+++ ezmlm-web-3.3.1/ezmlm-web.cgi 2016-04-18 23:06:22.084000000 -0400
@@ -402,39 +402,39 @@
$pagename = 'list_select';
$error = 'ParameterMissing';
}
-} elsif ($action eq 'list_delete_ask') {
- # Confirm list removal
- if ($list) {
- $pagename = 'list_delete';
- } else {
- $pagename = 'list_select';
- $error = 'ParameterMissing';
- }
-} elsif ($action eq 'list_delete_do') {
- # User really wants to delete a list ...
- if ($list) {
- $success = 'DeleteList' if (&delete_list($list));
- $list = undef;
- } else {
- $error = 'ParameterMissing';
- }
- $pagename = 'list_select';
-} elsif ($action eq 'list_create_ask') {
- # User wants to create a list ...
- $pagename = 'list_create';
-} elsif ($action eq 'list_create_do') {
- # create the new list
- # Message if list creation is unsuccessful ...
- if (defined($q->param('new_list'))) {
- if ($list = &create_list($q->param('new_list'))) {
- $success = 'CreateList';
- $pagename = 'subscribers';
- } else {
- $pagename = 'list_create';
- }
- } else {
- $error = 'ParameterMissing';
- }
+#} elsif ($action eq 'list_delete_ask') {
+# # Confirm list removal
+# if ($list) {
+# $pagename = 'list_delete';
+# } else {
+# $pagename = 'list_select';
+# $error = 'ParameterMissing';
+# }
+#} elsif ($action eq 'list_delete_do') {
+# # User really wants to delete a list ...
+# if ($list) {
+# $success = 'DeleteList' if (&delete_list($list));
+# $list = undef;
+# } else {
+# $error = 'ParameterMissing';
+# }
+# $pagename = 'list_select';
+#} elsif ($action eq 'list_create_ask') {
+# # User wants to create a list ...
+# $pagename = 'list_create';
+#} elsif ($action eq 'list_create_do') {
+# # create the new list
+# # Message if list creation is unsuccessful ...
+# if (defined($q->param('new_list'))) {
+# if ($list = &create_list($q->param('new_list'))) {
+# $success = 'CreateList';
+# $pagename = 'subscribers';
+# } else {
+# $pagename = 'list_create';
+# }
+# } else {
+# $error = 'ParameterMissing';
+# }
} elsif (($action eq 'config_ask') || ($action eq 'config_do')) {
# User wants to see/change the configuration ...
my $subset = $q->param('config_subset');
@@ -1891,6 +1891,9 @@
# ------------------------------------------------------------------------
sub create_list {
+ # SME process
+ warn "Please use SME Server panel to create new list";
+ return undef;
# Create a list according to user selections ...
my $listname = shift;
my ($qmail, $options, $i);
--- ezmlm-web-3.3.1/template/nav.cs.smeintegration 2013-10-20 15:32:06.000000000 -0400
+++ ezmlm-web-3.3.1/template/nav.cs 2016-04-18 23:29:05.790000000 -0400
@@ -12,13 +12,13 @@
<?cs /if ?>
<?cs if:(subcount(Data.Lists) > 0) && (UI.Navigation.ListSelect == 1) ?>
<li><a <?cs if:(Data.Action == "list_select") ?> class="nav_active"<?cs /if ?>
- href="<?cs call:link("action","list_select","","","","") ?>"
+ href="/server-manager/cgi-bin/mailinglists"
title="<?cs var:html_escape(Lang.Menue.ListSelect) ?>"><?cs var:html_escape(Lang.Menue.ListSelect) ?></a>
</li>
<?cs /if ?>
<?cs if:Data.Permissions.Create && (UI.Navigation.ListCreate == 1) ?>
<li><a <?cs if:(Data.Action == "list_create") ?> class="nav_active"<?cs /if ?>
- href="<?cs call:link("action","list_create_ask","","","","") ?>"
+ href="/server-manager/cgi-bin/mailinglists?state=create"
title="<?cs var:html_escape(Lang.Menue.ListCreate) ?>"><?cs var:html_escape(Lang.Menue.ListCreate) ?></a>
</li>
<?cs /if ?>
@@ -181,7 +181,7 @@
var:html_escape(Lang.Menue.SubscribeLog) ?></a></li><?cs /if ?>
<?cs if:UI.Navigation.ListDelete == 1
?><li><a <?cs if:(Data.Action == "list_delete") ?> class="nav_active"<?cs /if ?>
- href="<?cs call:link("list",Data.List.Name,"action","list_delete_ask","","") ?>"
+ href="/server-manager/cgi-bin/mailinglists?state=delete&list=<?cs var:html_escape(Data.List.Name) ?>"
title="<?cs var:html_escape(Lang.Menue.ListDelete) ?>"><?cs
var:html_escape(Lang.Menue.ListDelete) ?></a></li><?cs /if ?>

BIN
ezmlm-web-3.3.1.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

174
ezmlm-web.spec Normal file
View File

@@ -0,0 +1,174 @@
# $Id: ezmlm-web.spec,v 1.3 2022/03/20 18:07:07 jpp Exp $
# Authority: gordonr
# Name: Gordon Rowell
Summary: Web interface to ezmlm configuration
%define name ezmlm-web
Name: %{name}
%define version 3.3.1
%define release 9
Version: %{version}
Release: %{release}%{?dist}
License: BSD-style
Group: Networking/Daemons
URL: https://systemausfall.org/toolforge/ezmlm-web/
Source: https://systemausfall.org/toolforge/ezmlm-web/download/ezmlm-web-3.3.1.tar.gz
Patch0: ezmlm-web-3.3.1-smeintegration.patch
Patch1: ezmlm-web-3.3.1-cgi.patch
Patch2: ezmlm-web-3.3.1-modiffor722.patch
Patch3: ezmlm-web-3.3.1-bz11913-deprecateddefined.patch
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
Requires: ezmlm-idx-std
Requires: httpd
Requires: qmail
Requires: perl
Requires: perl-Ezmlm
Requires: perl-MailTools
BuildRequires: gcc
BuildRequires: e-smith-devtools
BuildRequires: perl-Ezmlm
BuildRequires: perl-devel
BuildRequires: perl(ExtUtils::Manifest)
%description
The need for ezmlm-web arose from the fact that we host many student
societies on our system. These societies usually have a virtual host for web
and email, which is administered by a computer rep from the society. These
computer reps often have little or no knowledge of Unix and so we needed a
user friendly system that would let the create and maintain mailing lists
(such as members@foo.soc.ru.ac.za, committee@foo.soc.ru.ac.za, etc).
Since I am never keen to re-invent the wheel, I had a look at Steve Peterson's
script (http://virtation.com/qmail/ml-sub), which allows people to subscribe
and unsubscribe from mailing lists using a form->email gateway. This is fine
for putting on a web page saying "here come and join our mailing list", but
doesn't really allow you to administrate a list.
Security of mailing lists was a concern, as we really didn't want
unauthorised people to be able to alter some users list. Ezmlm-web itself
implements no security checks (apart from un-tainting input) and so relies
on the web server to do this (re-inventing the wheel again :). We use an
Apache webserver, so one can control access to a directory using a .htaccess
file or in the access.conf file. ApacheWeek have a good article on doing
this at http://www.apacheweek.com/features/userauth. I also give examples
later in this document.
This version of ezmlm-web (2.0) is based to a large extent on previous
versions that I have developed. It has however been totally re-written to
make use of the Mail::Ezmlm perl module I wrote. At the same time it was
updated and extended to include the new features of ezmlm-idx. It includes
many new features that have been suggested to me over the last few months,
and hopefully is now useful to a much larger group of people.
%changelog
* Thu Oct 09 2025 BogusDateBot
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
by assuming the date is correct and changing the weekday.
* Sun Mar 20 2022 Jean-Philippe Pialasse <tests@pialasse.com> 3.3.1-9.sme
- remove deprecated defined array warning [SME: 11913]
* Wed Mar 16 2022 Jean-Philippe Pialasse <tests@pialasse.com> 3.3.1-8.sme
- remove /usr/lib64 from filelist, this conflict with base rpm filesystem
* Fri Apr 22 2016 Jean-Philippe Pialasse <tests@pialasse.com> 3.3.1-7.sme
- fix to build against SME 9 centos 6 [SME: 8439]
* Thu Apr 21 2016 Jean-Philippe Pialasse <tests@pialasse.com> 3.3.1-5.sme
- remove non available options (always on) in ezmlm-idx 7.2.2 [SME: 9470]
- remove setting user access to web, as unecessary in SME
- patch ezmlm-web-3.3.1-modiffor722.patch
* Wed Apr 20 2016 Jean-Philippe Pialasse <tests@pialasse.com> 3.3.1-4.sme
- small fix to save some config with 7.2.2 idx [SME: 9470]
* Mon Apr 18 2016 Jean-Philippe Pialasse <tests@pialasse.com> 3.3.1-1.sme
- update to 3.3.1 [SME: 7588]
* Sun Apr 29 2007 Shad L. Lords <slords@mail.com>
- Clean up spec so package can be built by koji/plague
* Thu Dec 07 2006 Shad L. Lords <slords@mail.com>
- Update to new release naming. No functional changes.
- Make Packager generic
* Tue Oct 25 2005 Gordon Rowell <gordonr@gormand.com.au> 2.3-01sme02
- Retarget previous patches against 2.3
- Change ezmlm-cgi location
- Access local help icon
- Hide delete button if -c provided
* Tue Oct 25 2005 Gordon Rowell <gordonr@gormand.com.au> 2.3-01sme01
- Update to 2.3 - ezmlm-web has moved to a new home
* Wed Nov 28 2001 Gordon Rowell <gordonr@e-smith.com>
- [2.1-04]
- Create ezmlm user (uid/gid 80) in %pre if it doesn't already exist
* Wed Oct 24 2001 Gordon Rowell <gordonr@e-smith.com>
- [2.1-03]
- Allow the web server to execute the CGI script
* Wed Oct 24 2001 Gordon Rowell <gordonr@e-smith.com>
- [2.1-02]
- Remove [Delete] button if $opt_c is set
- $opt_c "no list creation" now also means "no list deletion"
* Wed Oct 24 2001 Gordon Rowell <gordonr@e-smith.com>
- [2.1-01]
- Initial packaging
- Modified ezmlm-web.cgi path to /usr/bin
- Modified $HELP_ICON_URL for RedHat Apache patch
%prep
%setup -n %{name}-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
mkdir build
perl Makefile.PL DESTDIR=build PREFIX=/usr
# REALINSTALLBIN=/usr/bin/ezmlm-web
make
make install
%install
rm -rf $RPM_BUILD_ROOT
(cd build ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT)
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \
| sed -e '/ezmlm-web.cgi.1p/d' \
| sed -e '/lib64$/d' \
| sed -e '/lib$/d' \
> %{name}-%{version}-%{release}-filelist
#| sed -e '/ezmlm-web.cgi.1p/d' \
#> %{name}-%{version}-%{release}-filelist
# creating the cgi index to the suid wrapper
cp -a $RPM_BUILD_ROOT/usr/bin/ezmlm-web.wrapper $RPM_BUILD_ROOT/usr/local/share/ezmlm-web/www-data/index.cgi
%clean
rm -rf $RPM_BUILD_ROOT
%pre
if [ -d /home/e-smith ]
then
EZMLMHOME=/home/e-smith/files/ezmlm
else
EZMLMHOME=/home/ezmlm
fi
grep '^ezmlm:' /etc/passwd > /dev/null || \
/usr/sbin/useradd -c "ezmlm" -u 80 -m -d $EZMLMHOME -s /bin/false ezmlm
%post
%preun
%postun
%files -f %{name}-%{version}-%{release}-filelist
%defattr(-,root,root)
%attr(104755,ezmlm,ezmlm) /usr/local/share/ezmlm-web/www-data/index.cgi
%doc /usr/share/man/man1/ezmlm-web.cgi.1p.gz