packages: mailman/mailman.spec, mailman/mailman.conf, mailman/mailman-httpa...

glen glen at pld-linux.org
Mon Jun 8 18:13:47 CEST 2009


Author: glen                         Date: Mon Jun  8 16:13:47 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- add possibility to authorize to admin via http auth

---- Files affected:
packages/mailman:
   mailman.spec (1.153 -> 1.154) , mailman.conf (1.7 -> 1.8) , mailman-httpauth.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mailman/mailman.spec
diff -u packages/mailman/mailman.spec:1.153 packages/mailman/mailman.spec:1.154
--- packages/mailman/mailman.spec:1.153	Fri Mar  6 14:15:33 2009
+++ packages/mailman/mailman.spec	Mon Jun  8 18:13:41 2009
@@ -35,6 +35,7 @@
 Patch10:	%{name}-python2.6.patch
 Patch11:	%{name}-python2.6-exceptions-quickfix.patch
 Patch12:	%{name}-daemonize-fds.patch
+Patch13:	%{name}-httpauth.patch
 URL:		http://www.list.org/
 BuildRequires:	autoconf
 BuildRequires:	automake
@@ -177,6 +178,7 @@
 %patch10 -p1
 %patch11 -p1
 %patch12 -p1
+%patch13 -p1
 
 # Conflicts with python built-in email package
 sed -i -e 's,EMAILPKG=,#EMAILPKG=,g' misc/Makefile.in
@@ -231,13 +233,9 @@
 
 install cron/crontab.in $RPM_BUILD_ROOT/etc/cron.d/%{name}
 
-mv $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py $RPM_BUILD_ROOT%{_sysconfdir}
-ln -s %{_sysconfdir}/mm_cfg.py $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py
-
 ln -s %{_sysconfdir}/sitelist.cfg $RPM_BUILD_ROOT%{_var}/lib/mailman/data/sitelist.cfg
 
 cat >> $RPM_BUILD_ROOT%{_sysconfdir}/mm_cfg.py << 'EOF'
-#MTA = 'Postfix'
 DEFAULT_EMAIL_HOST		= 'YOUR.HOST.NAME.HERE'
 DEFAULT_URL_HOST		= 'YOUR.HOST.NAME.HERE'
 DEFAULT_HOST_NAME		= 'YOUR.HOST.NAME.HERE'
@@ -246,7 +244,15 @@
 MAILMAN_GROUP			= '%{name}'
 MAILMAN_USER			= '%{name}'
 VIRTUAL_HOST_OVERVIEW		= Off
-#DEFAULT_SERVER_LANGUAGE		= 'pl'
+
+#MTA = 'Postfix'
+#POSTFIX_STYLE_VIRTUAL_DOMAINS = []
+
+#DEFAULT_SERVER_LANGUAGE = 'pl'
+
+# If value is True, site administrator is trusted from REMOTE_USER CGI variable
+# Use this to if you want to use password authentication for site admin.
+USE_HTTP_AUTH   = False
 
 # For available options and their descriptions see:
 # %{_libdir}/%{name}/Mailman/Defaults.py
@@ -262,12 +268,18 @@
 # regenerate pyc files with proper paths
 find $RPM_BUILD_ROOT -name '*.pyc' | xargs rm -f
 %py_comp $RPM_BUILD_ROOT
+# save mm_cfg.py from py_postclean
+mv $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.{py,pyX}
 %py_postclean %{_libdir}/mailman
 
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/mm_cfg.pyc
+# must do this after py_postclean
+# should we also symlink .pyc? in case commands are ran as root python would create .pyc file
+mv $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.pyX $RPM_BUILD_ROOT%{_sysconfdir}/mm_cfg.py
+ln -s %{_sysconfdir}/mm_cfg.py $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py
+rm $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py.dist
+
 rm -f $RPM_BUILD_ROOT%{_mandir}/README-mailman-man-pages
 rm -f $RPM_BUILD_ROOT%{_mandir}/diff.arch.8
-
 rm -f $RPM_BUILD_ROOT%{_libdir}/mailman/messages/*/LC_MESSAGES/*.po
 
 %clean
@@ -408,11 +420,13 @@
 %files
 %defattr(644,root,root,755)
 %doc BUGS FAQ NEWS README README.CONTRIB README.NETSCAPE README.USERAGENT TODO UPGRADING INSTALL
+%doc Mailman/mm_cfg.py.dist
 %{_mandir}/man?/*
 %attr(2775,root,mailman) %dir %{_sysconfdir}
 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
 %attr(644,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mm_cfg.py
+%attr(664,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mm_cfg.pyc
 %attr(644,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sitelist.cfg
 %ghost %attr(660,root,mailman) %{_sysconfdir}/aliases
 %ghost %attr(660,root,mailman) %{_sysconfdir}/aliases.db
@@ -435,7 +449,22 @@
 %dir %{_libdir}/%{name}/pythonlib
 %dir %{_libdir}/%{name}/messages
 %dir %{_libdir}/%{name}/tests
-%{_libdir}/%{name}/Mailman
+%dir %{_libdir}/%{name}/Mailman
+
+# move to %{py_sitedir}?
+%{_libdir}/%{name}/Mailman/[A-Z_hiv]*.py[co]
+%{_libdir}/%{name}/Mailman/mm_cfg.py
+%ghost %{_libdir}/%{name}/Mailman/mm_cfg.pyc
+%{_libdir}/%{name}/Mailman/Archiver
+%{_libdir}/%{name}/Mailman/Bouncers
+%{_libdir}/%{name}/Mailman/Cgi
+%{_libdir}/%{name}/Mailman/Commands
+%{_libdir}/%{name}/Mailman/Gui
+%{_libdir}/%{name}/Mailman/Handlers
+%{_libdir}/%{name}/Mailman/Logging
+%{_libdir}/%{name}/Mailman/MTA
+%{_libdir}/%{name}/Mailman/Queue
+
 %{_libdir}/%{name}/bin/p*
 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/[!p]*
 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/*
@@ -482,6 +511,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.154  2009/06/08 16:13:41  glen
+- add possibility to authorize to admin via http auth
+
 Revision 1.153  2009/03/06 13:15:33  glen
 - release 5
 

================================================================
Index: packages/mailman/mailman.conf
diff -u packages/mailman/mailman.conf:1.7 packages/mailman/mailman.conf:1.8
--- packages/mailman/mailman.conf:1.7	Thu Sep 20 15:39:20 2007
+++ packages/mailman/mailman.conf	Mon Jun  8 18:13:42 2009
@@ -1,27 +1,48 @@
-Alias		/mailman/pipermail/	/var/lib/mailman/archives/public/
+Alias /mailman/pipermail/ /var/lib/mailman/archives/public/
 
 <Directory /var/lib/mailman/archives/public>
 	Options Indexes MultiViews FollowSymLinks
 	AllowOverride None
-	Order allow,deny
 	Allow from all
 </Directory>
 
-Alias		/mailman/icons/	/usr/lib/mailman/icons/
+Alias /mailman/icons/ /usr/lib/mailman/icons/
 <Directory /usr/lib/mailman/icons/>
 	AllowOverride None
-	Order allow,deny
 	Allow from all
 </Directory>
 
-ScriptAlias	/mailman/	/usr/lib/mailman/cgi-bin/
+ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
 
 <Directory /usr/lib/mailman/cgi-bin/>
 	Options ExecCGI
 	AllowOverride None
 	AddHandler cgi-script .cgi
-	Order allow,deny
 	Allow from all
+
+# Enable this section to use HTTP auth instead of adm.pw
+#	# Authorize as admin via HTTP auth
+#	<Files admin>
+#		# File based Authz
+#	   AuthUserFile /etc/webapps/mailman/htpasswd
+#
+#	   # LDAP based Authz. Apache 1.3
+#	   <IfModule mod_auth_ldap.c>
+#		   AuthLDAPEnabled on
+#		   AuthLDAPURL ldap://localhost/ou=People,dc=example,dc=org?uid?sub?(objectClass=*)
+#	   </IfModule>
+#
+#	   # LDAP based Authz. Apache 2.x
+#		<IfModule authnz_ldap_module>
+#			AuthLDAPURL ldap://localhost/ou=People,dc=example,dc=org?uid?one
+#			AuthzLDAPAuthoritative off
+#			AuthBasicProvider ldap
+#		</IfModule>
+#
+#		AuthType Basic
+#		AuthName "MailMan"
+#		Require valid-user
+#	</Files>
 </Directory>
 
 # Uncomment the following line, replacing www.example.com with your server's

================================================================
Index: packages/mailman/mailman-httpauth.patch
diff -u /dev/null packages/mailman/mailman-httpauth.patch:1.1
--- /dev/null	Mon Jun  8 18:13:47 2009
+++ packages/mailman/mailman-httpauth.patch	Mon Jun  8 18:13:42 2009
@@ -0,0 +1,29 @@
+Maybe for security have USE_HTTP_AUTH = ['user1', 'user2']
+
+--- mailman-2.1.11/Mailman/Defaults.py.in~	2009-06-08 16:45:29.000000000 +0300
++++ mailman-2.1.11/Mailman/Defaults.py.in	2009-06-08 16:45:31.967055253 +0300
+@@ -1319,6 +1319,10 @@
+ AuthListModerator = 4 # List Moderator (can only handle held requests)
+ AuthSiteAdmin = 5     # Site Administrator (total control over everything)
+ 
++# If value is True, site administrator is trusted from REMOTE_USER CGI variable
++# Use this to if you want to use password authentication for site admin.
++USE_HTTP_AUTH   = False
++
+ # Useful directories
+ LIST_DATA_DIR   = os.path.join(VAR_PREFIX, 'lists')
+ LOG_DIR         = '@LOG_DIR@'
+--- mailman-2.1.11/Mailman/Utils.py~	2009-06-08 16:45:22.000000000 +0300
++++ mailman-2.1.11/Mailman/Utils.py	2009-06-08 16:45:25.094129761 +0300
+@@ -411,6 +411,11 @@
+ 
+ 
+ def check_global_password(response, siteadmin=True):
++    if mm_cfg.USE_HTTP_AUTH:
++        if os.getenv('AUTH_TYPE') != None and os.getenv('REMOTE_USER') != None:
++            return True
++        # Fallback to global password auth
++
+     challenge = get_global_password(siteadmin)
+     if challenge is None:
+         return None
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mailman/mailman.spec?r1=1.153&r2=1.154&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mailman/mailman.conf?r1=1.7&r2=1.8&f=u



More information about the pld-cvs-commit mailing list