1 |
unnilennium |
1.2 |
# $Id: ezmlm-idx-std.spec,v 1.1 2013/05/12 19:41:18 unnilennium Exp $ |
2 |
unnilennium |
1.1 |
# Authority: gordonr |
3 |
|
|
# Name: Gordon Rowell |
4 |
|
|
|
5 |
|
|
%{expand: %%{global} _i_am_%{_target_os} %%{nil}} |
6 |
|
|
# If OS is Linux |
7 |
|
|
%{?_i_am_linux: %global ezroot /usr} |
8 |
|
|
%{?_i_am_linux: %global ezcgi /var/www/cgi-bin} |
9 |
|
|
%{?_i_am_linux: %global rcdir /etc/ezmlm} |
10 |
|
|
# If OS is not Linux |
11 |
|
|
%{!?_i_am_linux: %global ezroot /usr/local} |
12 |
|
|
%{!?_i_am_linux: %global ezcgi /usr/local/apache/cgi-bin} |
13 |
|
|
%{!?_i_am_linux: %global rcdir /usr/local/etc/ezmlm} |
14 |
|
|
# endif OS |
15 |
|
|
%define dbase std |
16 |
|
|
%define destdir %buildroot |
17 |
|
|
%global ezver 0.53 |
18 |
|
|
%global idxver 5.1.2 |
19 |
|
|
Buildprereq: rpm >= 3.0.2 |
20 |
|
|
Buildroot: %_tmppath/%name-%version-root |
21 |
|
|
License: GPL |
22 |
|
|
Group: Utilities/System |
23 |
|
|
Name: ezmlm-idx |
24 |
|
|
Prereq: rpm >= 3.0.2 |
25 |
|
|
Release: 1%{?dist} |
26 |
|
|
Source0: ftp://cr.yp.to/software/ezmlm-%{ezver}.tar.gz |
27 |
|
|
Source1: http://ezmlm.org/archive/%{idxver}/%{name}-%{idxver}.tar.gz |
28 |
|
|
Source3: ezmlm-idx.spec-kit.tar.gz |
29 |
|
|
Summary: Qmail Easy Mailing List Manager + IDX patches. |
30 |
|
|
URL: http://www.ezmlm.org |
31 |
|
|
Version: %{idxver} |
32 |
|
|
BuildRequires: groff |
33 |
|
|
|
34 |
|
|
%description |
35 |
|
|
None. See subpackages. |
36 |
|
|
|
37 |
|
|
%package %{dbase} |
38 |
|
|
Summary: Qmail Easy Mailing List Manager + IDX patches with %{dbase} database support. |
39 |
|
|
Group: Utilities/System |
40 |
|
|
Obsoletes: ezmlm-idx |
41 |
|
|
Provides: EZMLM |
42 |
|
|
Conflicts: ezmlm ezmlm-idx-mysql ezmlm-idx-pgsql |
43 |
|
|
|
44 |
|
|
%description %{dbase} |
45 |
|
|
ezmlm lets users set up their own mailing lists within qmail's address |
46 |
|
|
hierarchy. A user, Joe, types |
47 |
|
|
|
48 |
|
|
ezmlm-make ~/SOS ~/.qmail-sos joe-sos isp.net |
49 |
|
|
|
50 |
|
|
and instantly has a functioning mailing list, joe-sos@isp.net, with all |
51 |
|
|
relevant information stored in a new ~/SOS directory. |
52 |
|
|
|
53 |
|
|
ezmlm sets up joe-sos-subscribe and joe-sos-unsubscribe for automatic |
54 |
|
|
processing of subscription and unsubscription requests. Any message to |
55 |
|
|
joe-sos-subscribe will work; Joe doesn't have to explain any tricky |
56 |
|
|
command formats. ezmlm will send back instructions if a subscriber sends |
57 |
|
|
a message to joe-sos-request or joe-sos-help. |
58 |
|
|
|
59 |
|
|
ezmlm automatically archives new messages. Messages are labelled with |
60 |
|
|
sequence numbers; a subscriber can fetch message 123 by sending mail to |
61 |
|
|
joe-sos-get.123. The archive format supports fast message retrieval even |
62 |
|
|
when there are thousands of messages. |
63 |
|
|
|
64 |
|
|
ezmlm takes advantage of qmail's VERPs to reliably determine the |
65 |
|
|
recipient address and message number for every incoming bounce message. |
66 |
|
|
It waits ten days and then sends the subscriber a list of message |
67 |
|
|
numbers that bounced. If that warning bounces, ezmlm sends a probe; if |
68 |
|
|
the probe bounces, ezmlm automatically removes the subscriber from the |
69 |
|
|
mailing list. |
70 |
|
|
|
71 |
|
|
|
72 |
|
|
ezmlm is easy for users to control. Joe can edit ~/SOS/text/* to change |
73 |
|
|
any of the administrative messages sent to subscribers. He can remove |
74 |
|
|
~/SOS/public and ~/SOS/archived to disable automatic subscription and |
75 |
|
|
archiving. He can put his own address into ~/SOS/editor to set up a |
76 |
|
|
moderated mailing list. He can edit ~/SOS/{headeradd,headerremove} to |
77 |
|
|
control outgoing headers. ezmlm has several utilities to manually |
78 |
|
|
inspect and manage mailing lists. |
79 |
|
|
|
80 |
|
|
ezmlm uses Delivered-To to stop forwarding loops, Mailing-List to |
81 |
|
|
protect other mailing lists against false subscription requests, and |
82 |
|
|
real cryptographic cookies to protect normal users against false |
83 |
|
|
subscription requests. ezmlm can also be used for a sublist, |
84 |
|
|
redistributing messages from another list. |
85 |
|
|
|
86 |
|
|
ezmlm is reliable, even in the face of system crashes. It writes each |
87 |
|
|
new subscription and each new message safely to disk before it reports |
88 |
|
|
success to qmail. |
89 |
|
|
|
90 |
|
|
ezmlm doesn't mind huge mailing lists. Lists don't even have to fit into |
91 |
|
|
memory. ezmlm hashes the subscription list into a set of independent |
92 |
|
|
files so that it can handle subscription requests quickly. ezmlm uses |
93 |
|
|
qmail for blazingly fast parallel SMTP deliveries. |
94 |
|
|
|
95 |
|
|
The IDX patches add: Indexing, (Remote) Moderation, digest, make |
96 |
|
|
patches, multi-language, MIME, global interface, %{dbase} database support. |
97 |
|
|
|
98 |
|
|
%description %{dbase} -l pl |
99 |
|
|
Menad<BF>er pocztowych list dyskusyjnych, ca<B3>kowicie spolszczony, mo<BF>liwo |
100 |
|
|
<B6><F6> zdalnego moderowania, MIME. |
101 |
|
|
|
102 |
|
|
%package cgi |
103 |
|
|
Prefix: %ezcgi |
104 |
|
|
Summary: www archiver for %name |
105 |
|
|
Group: Utilities/System |
106 |
|
|
Requires: EZMLM |
107 |
|
|
|
108 |
|
|
%description cgi |
109 |
|
|
www archiver for %name. |
110 |
|
|
|
111 |
|
|
|
112 |
|
|
%prep |
113 |
|
|
%setup -q -T -b 0 -n ezmlm-%{ezver} |
114 |
|
|
%setup -q -D -T -a 1 -n ezmlm-%{ezver} |
115 |
|
|
mv -f ezmlm-idx-%{idxver}/* . |
116 |
|
|
|
117 |
|
|
patch -s < idx.patch |
118 |
|
|
|
119 |
|
|
%build |
120 |
|
|
echo gcc -O2 --include /usr/include/errno.h > conf-cc |
121 |
|
|
echo %{rcdir} >conf-etc |
122 |
|
|
echo %{ezroot}/bin > conf-bin |
123 |
|
|
echo %{ezroot}/man > conf-man |
124 |
|
|
|
125 |
|
|
if [ "%{dbase}" = "mysql" ]; then |
126 |
|
|
echo "cc -s -lz" > conf-ld |
127 |
|
|
fi |
128 |
|
|
|
129 |
|
|
|
130 |
|
|
# Check for gcc version with optimizer bug |
131 |
|
|
|
132 |
|
|
GCC_VERSION="$(cc -v 2>& 1 | tail -1 |awk '{print $3}')" |
133 |
|
|
|
134 |
|
|
if [ "$GCC_VERSION" = "2.95" ] || [ "$GCC_VERSION" = "2.95.1" ]; then |
135 |
|
|
echo cc > conf-cc |
136 |
|
|
fi |
137 |
|
|
|
138 |
|
|
echo %{dbase} >conf-sub |
139 |
|
|
make it man install |
140 |
|
|
|
141 |
|
|
%install |
142 |
|
|
/bin/rm -rf %destdir |
143 |
|
|
|
144 |
|
|
mkdir -p %destdir/%{ezroot}/{bin,man} |
145 |
|
|
mkdir -p %destdir/%{rcdir} |
146 |
|
|
mkdir -p %destdir/%ezcgi |
147 |
|
|
|
148 |
|
|
# Do not create cat subdirs on Linux |
149 |
|
|
%ifos Linux |
150 |
|
|
sed '/cat/d' MAN > MAN.tmp |
151 |
|
|
mv MAN.tmp MAN |
152 |
|
|
%endif |
153 |
|
|
|
154 |
|
|
./install %{destdir}/%{rcdir} < ETC |
155 |
|
|
./install %{destdir}/%{ezroot}/bin < BIN |
156 |
|
|
./install %{destdir}/%{ezroot}/man < MAN |
157 |
|
|
ln -s `head -n 1 conf-lang` %{destdir}/%{rcdir}/default |
158 |
|
|
|
159 |
|
|
cp ezmlm-cgi %destdir/%ezcgi |
160 |
|
|
|
161 |
|
|
# create file list for man pages (without ezmlm-cgi.1) |
162 |
|
|
find %destdir/%{ezroot}/man -type f \ |
163 |
|
|
| sed -e "s}%destdir}}" -e "s}$}*}" > man-list |
164 |
|
|
|
165 |
|
|
cp ezmlm-cgi.1 %destdir/%{ezroot}/man/man1 |
166 |
|
|
chmod 644 %destdir/%{ezroot}/man/man1/ezmlm-cgi.1 |
167 |
|
|
|
168 |
|
|
# Create INSTALL file for how to set up ezcgi |
169 |
|
|
cat <<EOF > INSTALL.cgi |
170 |
|
|
The script ezmlm-cgi is installed as %ezcgi/ezmlm-cgi with |
171 |
|
|
permissions 0444. In order to use it, you need to make it |
172 |
|
|
SUID root. So do |
173 |
|
|
|
174 |
|
|
chmod 4755 %ezcgi/ezmlm-cgi |
175 |
|
|
|
176 |
|
|
Please see INSTALL.idx 16-22) in this package's doc directory and the |
177 |
|
|
man page ezmlm-cgi.1 for more details on setting up and using ezmlm-cgi. |
178 |
|
|
|
179 |
|
|
EOF |
180 |
|
|
|
181 |
|
|
%post %{dbase} |
182 |
|
|
echo To create an ezmlmrc file for a language other than US English |
183 |
|
|
echo go to this package\'s doc directory, and type |
184 |
|
|
echo " make iso" |
185 |
|
|
echo 'where "iso" is the ISO language designation.' |
186 |
|
|
echo For currently supported languages, see the INSTALL.idx |
187 |
|
|
echo file, section 7. |
188 |
|
|
|
189 |
|
|
%clean |
190 |
|
|
/bin/rm -rf %destdir |
191 |
|
|
|
192 |
|
|
%files %{dbase} -f man-list |
193 |
|
|
%defattr(-, root, root) |
194 |
|
|
%dir %{rcdir} |
195 |
|
|
%config(noreplace) %{rcdir}/* |
196 |
|
|
%doc BLURB CHANGES* FAQ.idx INSTALL INSTALL.idx README* |
197 |
|
|
%doc THANKS TODO UPGRADE.idx ChangeLog |
198 |
|
|
%doc DOWNGRADE.idx ezmlmrc.template |
199 |
|
|
%dir %{ezroot} |
200 |
|
|
%dir %{ezroot}/* |
201 |
|
|
%{ezroot}/bin/* |
202 |
|
|
|
203 |
|
|
%files cgi |
204 |
|
|
%defattr(-, root, root) |
205 |
|
|
%doc INSTALL.idx INSTALL.cgi ezcgirc ezcgi.css |
206 |
|
|
%attr(0444,root,root) %ezcgi/* |
207 |
|
|
%{ezroot}/man/man1/ezmlm-cgi.1.gz |