[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