[PATCH] mailman
Michal Kochanowicz
michal w michal.waw.pl
Sob, 4 Paź 2003, 11:33:55 CEST
Hej!
Załączam patche, które trochę "cywylizują" mailman'a.
mailman.spec.patch:
- Dodaje łatkę MM_FIND_GROUP_NAME.
- BR: sed.
- Wymusza konkretne grupy dla mailmana i skryptów CGI, żeby nie było to
zależne od środowiska w którym się buduje.
- Likwiduje gusła odprawiane na pliku /etc/mailman/mm_cfg.py. Teraz ten
plik nie jest modyfikowany w %post. Dostarczana jest wersja w którą
trzeba wstawić nazwę hosta. Dzięki temu usunięta została (i tak
wywalająca się) magia, ponadto zacznie działać %config(noreplace).
- Likwiduje rzeźbienie w gów^Whttp.conf, które raz że było
niedostosowane do apache2, dwa działałoby tylko w najbardziej
trywialnej konfiguracji jaką można sobie wyobrazić. A to też nie
koniecznie.
- Dodaje brakujący plik.
mailman-MM_FIND_GROUP_NAME.patch
- Usuwa wszelką logikę z tego makra :) Tzn nie sprawdza ono czy grupa o
podanej nazwie istnieje. Dzięki temu mailmana można zbudować na
systemie bez mailmana (tada!).
--
--= Michal Kochanowicz =--==--==BOFH==--==--= michal w michal.waw.pl =--
--= finger me for PGP public key or visit http://michal.waw.pl/PGP =--
--==--==--==--==--==-- Vodka. Connecting people.--==--==--==--==--==--
A chodzenie po górach SSIE!!!
-------------- następna część ---------
Index: mailman.spec
===================================================================
RCS file: /cvsroot/SPECS/mailman.spec,v
retrieving revision 1.62
diff -u -r1.62 mailman.spec
--- mailman.spec 24 Sep 2003 16:05:29 -0000 1.62
+++ mailman.spec 4 Oct 2003 09:23:24 -0000
@@ -20,11 +20,13 @@
Source4: %{name}.sysconfig
# Need to check if it's still useful
#Patch0: %{name}-xss.patch
+Patch1: %{name}-MM_FIND_GROUP_NAME.patch
URL: http://www.list.org/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: python >= 2.1
BuildRequires: python-devel
+BuildRequires: sed
PreReq: rc-scripts
Requires(pre): /usr/bin/getgid
Requires(pre): /bin/id
@@ -124,6 +126,7 @@
%prep
%setup -q
#patch0 -p1
+%patch1 -p1
%build
%{__aclocal}
@@ -136,8 +139,8 @@
--without-permcheck \
--with-username=%{name} \
--with-groupname=%{name} \
- --with-mail-gid='nobody mail root' \
- --with-cgi-gid='http nobody' \
+ --with-mail-gid='mailman' \
+ --with-cgi-gid='http' \
--with-mailhost=localhost.localdomain \
--with-urlhost=localhost.localdomain
%{__make}
@@ -164,16 +167,20 @@
mv $RPM_BUILD_ROOT/var/lib/%{name}/Mailman/mm_cfg.py $RPM_BUILD_ROOT/etc/%{name}
ln -s /etc/%{name}/mm_cfg.py $RPM_BUILD_ROOT/var/lib/%{name}/Mailman/mm_cfg.py
+cat >> $RPM_BUILD_ROOT/etc/%{name}/mm_cfg.py << EOF
+DEFAULT_HOST_NAME = 'YOUR.HOST.NAME.HERE'
+DEFAULT_URL = 'http://YOUR.HOST.NAME.HERE/mailman/'
+IMAGE_LOGOS = '/mailman/icons/'
+PUBLIC_ARCHIVE_URL = '/mailman/pipermail/%%(listname)s'
+MAILMAN_GROUP = '%{name}'
+MAILMAN_USER = '%{name}'
+#DEFAULT_SERVER_LANGUAGE = 'pl'
+EOF
+
%clean
rm -rf $RPM_BUILD_ROOT
%pre
-if [ -f /var/lib/mailman/Mailman/mm_cfg.py ]; then
- mkdir -m 755 /etc/mailman
- cp -f /var/lib/mailman/Mailman/mm_cfg.py /etc/mailman/mm_cfg.py.rpmsave
- echo /var/lib/mailman/Mailman/mm_cfg.py saved as /etc/mailman/mm_cfg.py.rpmsave >&2
-fi
-
if [ -n "`getgid %{name}`" ]; then
if [ "`getgid %{name}`" != "94" ]; then
echo "Error: group %{name} doesn't have gid=94. Correct this before installing %{name}." 1>&2
@@ -196,26 +203,9 @@
%post
if [ "$1" = "1" ]; then
- echo "DEFAULT_HOST_NAME = '`/bin/hostname -f`'" >> /etc/mailman/mm_cfg.py
- echo "DEFAULT_URL = 'http://`/bin/hostname -f`/mailman/'" >> /etc/mailman/mm_cfg.py
- echo "IMAGE_LOGOS = '/mailman/icons/'" >> /etc/mailman/mm_cfg.py
- echo "PUBLIC_ARCHIVE_URL = '/mailman/pipermail/%%(listname)s'" >> /etc/mailman/mm_cfg.py
- echo "MAILMAN_GROUP = '%{name}'" >> /etc/mailman/mm_cfg.py
- echo "MAILMAN_USER = '%{name}'" >> /etc/mailman/mm_cfg.py
- echo "#DEFAULT_SERVER_LANGUAGE = 'pl'" >> /etc/mailman/mm_cfg.py
-
if [ -f /var/lock/subsys/crond ]; then
/etc/rc.d/init.d/crond restart
fi
- if [ -f /etc/httpd/httpd.conf ] && \
- ! grep -q "^Include.*/mailman.conf" /etc/httpd/httpd.conf; then
- echo "Include /etc/httpd/mailman.conf" >> /etc/httpd/httpd.conf
- fi
- if [ -f /var/lock/subsys/httpd ]; then
- /etc/rc.d/init.d/httpd restart 1>&2
- else
- echo "Run \"/etc/rc.d/init.d/httpd start\" to start apache http daemon."
- fi
fi
/sbin/chkconfig --add mailman
if [ -f /var/lock/subsys/mailman ]; then
@@ -239,13 +229,6 @@
if [ -f /var/lock/subsys/crond ]; then
/etc/rc.d/init.d/crond restart
fi
- umask 027
- grep -E -v "^Include.*mailman.conf" /etc/httpd/httpd.conf > \
- /etc/httpd/httpd.conf.tmp
- mv -f /etc/httpd/httpd.conf.tmp /etc/httpd/httpd.conf
- if [ -f /var/lock/subsys/httpd ]; then
- /etc/rc.d/init.d/httpd restart 1>&2
- fi
fi
%triggerpostun -- mailman <= mailman 3:2.0.13-6
@@ -296,7 +279,7 @@
%dir %{_var}/spool/mailman/archives
%attr(2771,root,mailman) %dir %{_var}/spool/mailman/archives/private
%dir %{_var}/spool/mailman/archives/public
-%dir %{_var}/spool/mailman/data
+%{_var}/spool/mailman/data
%dir %{_var}/spool/mailman/lists
%dir %{_var}/spool/mailman/locks
%dir %{_var}/spool/mailman/logs
-------------- następna część ---------
diff -urN mailman-2.1.2.orig/configure.in mailman-2.1.2/configure.in
--- mailman-2.1.2.orig/configure.in 2003-04-22 05:34:51.000000000 +0200
+++ mailman-2.1.2/configure.in 2003-10-04 10:27:52.070293960 +0200
@@ -212,31 +212,9 @@
# $1 == variable name
# $2 == user id to check for
AC_SUBST($1)
-changequote(,)
-if test -z "$$1"
-then
- cat > conftest.py <<EOF
-import grp
-gid = ''
-for group in "$2".split():
- try:
- try:
- gname = grp.getgrgid(int(group))[0]
- break
- except ValueError:
- gname = grp.getgrnam(group)[0]
- break
- except KeyError:
- gname = ''
-fp = open("conftest.out", "w")
-fp.write("%s\n" % gname)
-fp.close()
-EOF
- $PYTHON conftest.py
- $1=`cat conftest.out`
-fi
-changequote([, ])
-rm -f conftest.out conftest.py])
+
+$1=$2
+])
# new macro for finding UIDs
Więcej informacji o liście dyskusyjnej pld-devel-pl