[Pkg-mailman-hackers] Pkg-mailman commit - rev 77 - in branches/pkg-split/core/debian: . snippets
Bernd S. Brentrup
bsb@haydn.debian.org
Wed, 21 Apr 2004 01:44:58 -0600
Author: bsb
Date: 2004-04-21 01:44:56 -0600 (Wed, 21 Apr 2004)
New Revision: 77
Added:
branches/pkg-split/core/debian/mailman-bin.dirs
branches/pkg-split/core/debian/mailman-bin.install
branches/pkg-split/core/debian/mailman-doc.dirs
branches/pkg-split/core/debian/mailman-i18n.dirs
branches/pkg-split/core/debian/mailman-i18n.install
branches/pkg-split/core/debian/snippets/
branches/pkg-split/core/debian/snippets/README
branches/pkg-split/core/debian/snippets/user_cfg.py
Modified:
branches/pkg-split/core/debian/TODO
branches/pkg-split/core/debian/changelog
branches/pkg-split/core/debian/control
branches/pkg-split/core/debian/dirs
branches/pkg-split/core/debian/lintian-overrides
branches/pkg-split/core/debian/rules
Log:
Intermediate checkin:
debian/rules revamped, mailman-bin builds already.
Modified: branches/pkg-split/core/debian/TODO
===================================================================
--- branches/pkg-split/core/debian/TODO 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/TODO 2004-04-21 07:44:56 UTC (rev 77)
@@ -4,14 +4,18 @@
Changes outlined herein being a major deviation from the way Mailman
is packaged now, it might be wiser to defer them until sarge+1.
-- Split into mailman, mailman-common, mailman-doc, mailman-i18n.
- installing $LANG/LC_MESSAGES/mailman.mo in /usr/share/locale.
+- Split into mailman, mailman-bin, mailman-doc, mailman-i18n.
+ Changed mind: let the main package be arch-indep and depend on
+ arch-dep mailman-bin containing the wrapper binaries.
-- mailman-common.postinst should be better at building a new mm_cfg.py
- from an existing configuration, in particular at removing obsolete
- vars. As it stands, a python postinst (using code inspection if
- needed) seems to be the way to go.
+- mailman.postinst should be better at building a new mm_cfg.py from
+ an existing configuration, in particular at removing obsolete vars.
+ As it stands, a python postinst (using code inspection if needed)
+ seems to be the way to go.
+ For a starting point on how to detect user modifications to
+ mm_cfg.py, see debian/snippets/user_cfg.py
+
- Rewrite qmail-to-mailman.py to read configuration from mm_cfg.py
like postfix-to-mailman.py does, getting it out of /etc/mailman and
the ucf database.
@@ -23,5 +27,22 @@
- Make lintian clean.
+- mailman-i18n:
+ $LANG/LC_MESSAGES/mailman.mo should go into /usr/share/locale.
+
+ If not installed, admin pages dealing with multilingual support must
+ be replaced by a hint to install mailman-i18n first.
+
+ The main package will only support english, no inclination to prefer
+ any particular language over the others. I'd even prefer calling it
+ the C locale, let's see if renaming (and providing a link when -i18n
+ is installed) works.
+
+- Upstream check_perms reports nonesense, there is no point in making
+ e.g. language directories 2775. Either rewrite it such that it
+ provides sensible results or drop it completely (when invoked with
+ -f it even enforces that nonsense).
+
+
This list is by no means meant to be complete.
Modified: branches/pkg-split/core/debian/changelog
===================================================================
--- branches/pkg-split/core/debian/changelog 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/changelog 2004-04-21 07:44:56 UTC (rev 77)
@@ -1,12 +1,12 @@
mailman (2.1.4-4split) UNRELEASED; urgency=low
* NOT YET RELEASED.
- * Outlining package split into mailman, mailman-common, mailman-i18n,
+ * Splitting package into mailman, mailman-bin, mailman-i18n,
mailman-doc (bsb, closes: #176439, #238377, #233410, #237772).
- * Outlining mixin packages mailman-spamassassin, mailman-spamprobe,
+ * Outlining glue packages mailman-spamassassin, mailman-spamprobe,
mailman-savannah and mailman-clamav (bsb, cf debian/TODO).
- -- Siggy Brentrup <bsb@debian.org> Sun, 18 Apr 2004 18:32:49 +0200
+ -- Siggy Brentrup <bsb@debian.org> Wed, 21 Apr 2004 09:16:31 +0200
mailman (2.1.4-4) unstable; urgency=medium
Modified: branches/pkg-split/core/debian/control
===================================================================
--- branches/pkg-split/core/debian/control 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/control 2004-04-21 07:44:56 UTC (rev 77)
@@ -7,10 +7,11 @@
Standards-Version: 3.6.1
Package: mailman
-Architecture: any
-Depends: ${shlibs:Depends}, mailman-common (= ${Source-Version})
-Recommends: mailman-i18n (= ${Source-Version})
-Suggests: mailman-spamassassin, mailman-savannah, mailman-spamprobe, mailman-clamav
+Architecture: all
+Depends: mailman-bin (= ${Source-Version}), python (>= 2.3), logrotate, cron (>= 3.0pl1-42), exim4 | mail-transport-agent, apache | httpd, debconf (>= 1.4.16), ucf (>= 1.0.0), pwgen
+Conflicts: suidmanager (<< 0.50), sendmail (<< 8.12.6)
+Recommends: mailman-i18n (= ${Source-Version}), base-passwd (>= 1.3.0)
+Suggests: mailman-doc (= ${Source-Version}), mailman-spamassassin | mailman-spamprobe, mailman-savannah, mailman-clamav
Description: Powerful, web-based mailing list manager
The GNU Mailing List Manager, which manages email discussion lists
much like Majordomo and Smartmail. Unlike most similar products,
@@ -26,25 +27,22 @@
.
For more information see http://www.list.org/.
-Package: mailman-common
-Architecture: all
-Depends: python (>= 2.2.2.91-1), logrotate, cron (>= 3.0pl1-42), exim4 | mail-transport-agent, apache | httpd, debconf (>= 1.4.16), ucf (>= 0.28), pwgen
-Conflicts: suidmanager (<< 0.50), sendmail (<< 8.12.6)
-Recommends: base-passwd (>= 1.3.0)
-Description: Powerful, web-bases mailing list manager (common files).
- Architecture independent (mostly Python) files required for
- running mailman plus logrotate, cron etc. stuff.
+Package: mailman-bin
+Architecture: any
+Depends: ${shlibs:Depends}, mailman (= ${Source-Version})
+Description: Setgid wrappers for mailman.
+ Architecture dependent setgid-wrappers required for running mailman.
+ because is implemented in Python.
Package: mailman-i18n
Architecture: all
Depends: mailman (= ${Source-Version}), ucf (>= 1.0.0), debconf (>= 1.4.16)
-Suggests: python2.2-korean-codecs | python2.3-korean-codecs, python-japanese-codecs
+Suggests: python2.3-korean-codecs, python-japanese-codecs
Description: Powerful, web-bases mailing list manager (internationalization)
- Message translations and language specific templates for mailman.
+ Message translations plus language specific templates for mailman.
Package: mailman-doc
Architecture: all
-Depends: mailman (= ${Source-Version})
Description: Powerful, web-bases mailing list manager (Documentation)
Documentation and examples for mailman.
Modified: branches/pkg-split/core/debian/dirs
===================================================================
--- branches/pkg-split/core/debian/dirs 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/dirs 2004-04-21 07:44:56 UTC (rev 77)
@@ -1,12 +1,10 @@
usr/lib/mailman
usr/sbin
-usr/share/doc/mailman/examples/stock
-usr/share/doc/mailman/src
usr/share/mailman
usr/share/images/mailman
-usr/lib/cgi-bin
+usr/lib/cgi-bin/mailman
var/log/mailman
-var/lib/mailman/templates
var/lock
var/run/mailman
etc/logrotate.d
+etc/mailman/templates
Modified: branches/pkg-split/core/debian/lintian-overrides
===================================================================
--- branches/pkg-split/core/debian/lintian-overrides 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/lintian-overrides 2004-04-21 07:44:56 UTC (rev 77)
@@ -1,4 +1,4 @@
-mailman: setgid-binary
+mailman-bin: setgid-binary
mailman: non-standard-dir-perm
mailman: non-standard-file-perm
mailman: package-contains-upstream-install-documentation
Added: branches/pkg-split/core/debian/mailman-bin.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman-bin.dirs 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/mailman-bin.dirs 2004-04-21 07:44:56 UTC (rev 77)
@@ -0,0 +1,2 @@
+usr/lib/cgi-bin/mailman
+usr/lib/mailman/mail
Added: branches/pkg-split/core/debian/mailman-bin.install
===================================================================
--- branches/pkg-split/core/debian/mailman-bin.install 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/mailman-bin.install 2004-04-21 07:44:56 UTC (rev 77)
@@ -0,0 +1,3 @@
+debian/tmp/usr/lib/mailman/cgi-bin/* usr/lib/cgi-bin/mailman
+debian/tmp/usr/lib/mailman/mail/mailman
+
Added: branches/pkg-split/core/debian/mailman-doc.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman-doc.dirs 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/mailman-doc.dirs 2004-04-21 07:44:56 UTC (rev 77)
@@ -0,0 +1,2 @@
+usr/share/doc/mailman/examples/stock
+usr/share/doc/mailman/src
Added: branches/pkg-split/core/debian/mailman-i18n.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.dirs 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/mailman-i18n.dirs 2004-04-21 07:44:56 UTC (rev 77)
@@ -0,0 +1,2 @@
+usr/share/locale/da/LC_MESSAGES
+usr/share/locale/de/LC_MESSAGES
Added: branches/pkg-split/core/debian/mailman-i18n.install
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.install 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/mailman-i18n.install 2004-04-21 07:44:56 UTC (rev 77)
@@ -0,0 +1 @@
+usr/share/locale/*/LC_MESSAGES/mailman.mo
Modified: branches/pkg-split/core/debian/rules
===================================================================
--- branches/pkg-split/core/debian/rules 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/rules 2004-04-21 07:44:56 UTC (rev 77)
@@ -14,10 +14,10 @@
add_members list_members remove_members arch clone_member \
sync_members check_db check_perms list_admins withlist
-#manpages=move_list.8 list_lists.8 find_member.8 config_list.8 digest_arch.8 mmsitepass.8 newlist.8 rmlist.8 add_members.8 list_members.8 remove_members.8 mmarch.8 clone_member.8 sync_members.8 check_db.8 check_perms.8
manpages = debian/*.8
-#export DH_VERBOSE=1
+export DH_VERBOSE=1
+
SHELL=/bin/bash
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
@@ -29,6 +29,11 @@
build: patch-stamp Makefile debian/po/templates.pot
$(MAKE)
+ $(MAKE) doinstall DESTDIR=$$(pwd)/debian/tmp \
+ prefix=/usr/lib/$(package) \
+ var_prefix=/var/lib/$(package) \
+ icondir=/usr/share/images/mailman \
+ ICONDIR=/usr/share/images/mailman
touch build
debian/po/templates.pot: debian/templates
@@ -45,175 +50,45 @@
clean: unpatch
$(checkdir)
-$(MAKE) distclean
- rm -rf build Makefile debian/ucffiles debian/mailman.postinst.ucf
- rm -f debian/mailman.postrm.ucf
+ rm -rf build Makefile
dh_clean
rm -rf $$(find . -name "*~")
+ rm -rf debian/tmp debian/mailman debian/mailman-{bin,i18n,doc}
find .. -name $(package)*dsc.asc -size 0 -maxdepth 1 -exec rm {} ";"
- chmod +x debian/{prerm,postinst}
-binary-indep: checkroot build
- $(checkdir)
-# There are no architecture-independent files to be uploaded
-# generated by this package. If there were any they would be
-# made here.
-
binary-arch: checkroot build
$(checkdir)
-# rm -rf debian/mailman && install -d debian/mailman
- dh_installdirs
- dh_installdocs ACKNOWLEDGMENTS README* TODO BUGS NEWS FAQ
- dh_installchangelogs
- $(MAKE) doinstall prefix=$$(pwd)/debian/mailman/var/lib/$(package) \
- var_prefix=$$(pwd)/debian/mailman/var/lib/$(package) \
- icondir=$$(pwd)/debian/mailman/usr/share/images/mailman \
- ICONDIR=$$(pwd)/debian/mailman/usr/share/images/mailman
+ dh_installdirs --same-arch
+ dh_installdocs --same-arch
+ dh_installchangelogs --same-arch
+ dh_install --same-arch
+ dh_shlibdeps --same-arch
+ dh_strip --same-arch
+ dh_fixperms --same-arch
-# move the nonchanging directories to /usr/lib/mailman, except for
-# cgi-bin, which goes to /usr/lib/cgi-bin/mailman
+ # The whole point of these wrappers is they are setgid list
+ find debian/mailman-bin/usr/lib -type f | xargs chgrp list
+ find debian/mailman-bin/usr/lib -type f | xargs chmod g+s
- cd debian/mailman/var/lib/$(package) ; \
- mv cgi-bin ../../../usr/lib/cgi-bin/mailman ; \
- for i in Mailman bin cron mail scripts; do \
- mv $$i ../../../usr/lib/$(package); \
- done
+ dh_compress --same-arch
+ dh_gencontrol --same-arch
+ dh_md5sums --same-arch
+ dh_builddeb --same-arch
+binary-indep: checkroot build
+ $(checkdir)
+ dh_installdirs --indep
+ dh_installdocs --indep
+ dh_installchangelogs --indep
+ dh_install --indep
+ dh_installlogrotate --indep
+ dh_fixperms --indep
+ dh_compress --indep
+ dh_gencontrol --indep
+ dh_md5sums --indep
+ dh_builddeb --indep
- # link them back to /var/lib/mailman
- for i in debian/mailman/usr/lib/$(package)/*; do \
- dh_link usr/lib/$(package)/`basename $$i` var/lib/$(package)/`basename $$i`; \
- done
-
- # Link cgi-bin as well
- dh_link usr/lib/cgi-bin/$(package) var/lib/$(package)/cgi-bin
-
- # Backwards compatibility link
- dh_link usr/lib/mailman/mail/mailman usr/lib/mailman/mail/wrapper
- dh_link usr/share/images/mailman usr/share/doc/mailman/images
- rmdir debian/$(package)/var/lib/mailman/icons
- dh_link usr/share/images/mailman var/lib/mailman/icons
-
- # move the templates to /etc/mailman
- mv debian/mailman/var/lib/$(package)/templates debian/mailman/etc/mailman
-
- # link it back to /var/lib/mailman/templates
- dh_link etc/mailman var/lib/$(package)/templates
-
- # remove the log directory and link it to /var/log/mailman
- rmdir debian/mailman/var/lib/$(package)/logs
- dh_link var/log/mailman var/lib/$(package)/logs
-
- # move the pending subscriptions database so it doesnt overwrite the
- # old one when installing
-
- # move the locks to /var/lock
- mv debian/mailman/var/lib/$(package)/locks debian/mailman/var/lock/mailman
-
- # link it back to /var/lib/mailman/locks
- dh_link var/lock/mailman var/lib/$(package)/locks
-
- dh_installlogrotate
-
- install -m 0644 debian/mm_cfg.py debian/mailman/usr/lib/mailman/Mailman/mm_cfg.py.dist
-
- rm debian/$(package)/usr/lib/$(package)/Mailman/mm_cfg.py
- dh_link etc/$(package)/mm_cfg.py \
- usr/lib/$(package)/Mailman/mm_cfg.py
-
- cp -a src/*.c src/*.h debian/mailman/usr/share/doc/$(package)/src
-# cp -a misc/*jpg misc/*.png debian/mailman/usr/share/doc/$(package)/images
- cp -a admin/www debian/mailman/usr/share/doc/$(package)/html
- for bin in $(binaries); \
- do dh_link usr/lib/$(package)/bin/$$bin usr/sbin/$$bin; done
- mv debian/mailman/usr/sbin/arch debian/mailman/usr/sbin/mmarch
- dh_installman
-# dh_undocumented $(manpages)
- dh_installinit
- dh_installdebconf
- dh_installexamples templates/* debian/mm_cfg.py \
- debian/mailman/usr/lib/$(package)/Mailman/Defaults.py
-# dh_installcron
- dh_strip
- dh_compress
- dh_fixperms
- chown -R root.root debian/mailman
- chown -R root.list \
- debian/mailman/{etc/$(package),var/lib/$(package),usr/lib/{$(package),cgi-bin/$(package)}}
- chown list.list debian/mailman/var/{lock/mailman,lib/mailman/qfiles,run/mailman}
- chown root.list debian/mailman/var/log/mailman
- find debian/mailman/var/lib/$(package) -type d | xargs chmod 2775
- find debian/mailman/var/lib/$(package)/messages -type d | xargs chmod 755
-
- # make lintian happy
-# install -m 0644 debian/lintian-overrides debian/mailman/usr/share/lintian/overrides/mailman
-
-# Install savannah plugin
- install -m 0644 debian/contrib/savannah debian/mailman/usr/lib/$(package)/Mailman/Cgi
-
-# Spamassassin plugin
- install -m 0644 debian/contrib/SpamAssassin.py debian/mailman/usr/lib/$(package)/Mailman/Handlers
- install -m 0644 debian/contrib/spamd.py debian/mailman/usr/lib/$(package)/Mailman/Handlers
-
-# postfix-to-mailman.py
- install -m 0755 debian/contrib/postfix-to-mailman.py debian/mailman/usr/lib/$(package)/bin
-
-# Move templates
- mv `find debian/mailman/etc/mailman -type d -mindepth 1 -maxdepth 1` debian/mailman/usr/share/mailman
- cp build/contrib/qmail-to-mailman.py debian/mailman/usr/share/mailman
-
- find debian/mailman/usr/share/mailman -type f | sed 's,debian/mailman/usr/share/mailman,/etc/mailman,' > debian/ucffiles
-
- dh_link etc/mailman/qmail-to-mailman.py usr/lib/mailman/bin/qmail-to-mailman.py
-
-
-# Fix permissions
- chmod +x debian/mailman/usr/lib/$(package)/Mailman/Cgi/*
-# chmod +x debian/mailman/usr/lib/$(package)/scripts/*
- chmod +x debian/mailman/usr/lib/$(package)/Mailman/Archiver/pipermail.py
-
- chmod g+s debian/mailman/usr/lib/cgi-bin/mailman/* \
- debian/mailman/usr/lib/mailman/mail/mailman
-
- chmod -x debian/mailman/usr/lib/$(package)/scripts/paths.py \
- debian/mailman/usr/lib/$(package)/Mailman/Cgi/*
-
- chmod o-x debian/mailman/var/lib/$(package)/archives/private
- chmod 0755 debian/mailman/usr/lib/$(package)/cron/*
- chmod 0644 debian/mailman/usr/lib/$(package)/cron/{crontab.in,paths.py}
- chmod 2775 debian/mailman/var/log/mailman
- chmod g+w debian/mailman/var/lock/mailman
-
-# dh_suidregister
- dh_installdeb
-
-# echo 'if [ "$$1" = purge ]; then' >> debian/mailman.postrm.ucf
-# for f in `cat debian/ucffiles`; do \
-# echo -e "\techo Removing $$f" >> debian/mailman.postrm.ucf; \
-# echo -e "\tucf --debconf-ok --purge $$f" >> debian/mailman.postrm.ucf ; \
-# done
-# echo 'fi' >> debian/mailman.postrm.ucf
-
-# echo 'if [ "$$1" = "configure" ]; then'>> debian/mailman.postinst.ucf
-# for dir in $$(for f in $$(cat debian/ucffiles); do dirname "$$f" ; done | sort | uniq); do echo -e "\tmkdir -p $$dir" >> debian/mailman.postinst.ucf ; done
-
-# echo -e "\techo -n 'Checking/installing config files (this takes time)': " >> debian/mailman.postinst.ucf
-# for f in `cat debian/ucffiles`; do \
-# echo -e "\techo -n ." >> debian/mailman.postinst.ucf ; \
-# echo -e "\tucf `echo $$f | sed s,/etc/mailman,/usr/share/mailman,` $$f < /dev/tty > /dev/tty" >> debian/mailman.postinst.ucf ; \
-# done
-# echo 'fi' >> debian/mailman.postinst.ucf
-# echo -e "\techo \" done!\"" >> debian/mailman.postinst.ucf
-
-# perl -pi -e '/#UCF#/ and do { open F, "debian/mailman.postinst.ucf"; local $$/ ; $$_ = <F> };' debian/mailman/DEBIAN/postinst
-# perl -pi -e '/#UCF#/ and do { open F, "debian/mailman.postrm.ucf"; local $$/ ; $$_ = <F> };' debian/mailman/DEBIAN/postrm
-
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dpkg --build debian/mailman ..
-
-
define checkdir
test -f debian/rules
endef
Added: branches/pkg-split/core/debian/snippets/README
===================================================================
--- branches/pkg-split/core/debian/snippets/README 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/snippets/README 2004-04-21 07:44:56 UTC (rev 77)
@@ -0,0 +1,4 @@
+This directory is for holding code snippets that may or may not make
+their way into the package.
+
+It will go away before releasing.
Added: branches/pkg-split/core/debian/snippets/user_cfg.py
===================================================================
--- branches/pkg-split/core/debian/snippets/user_cfg.py 2004-04-19 19:13:14 UTC (rev 76)
+++ branches/pkg-split/core/debian/snippets/user_cfg.py 2004-04-21 07:44:56 UTC (rev 77)
@@ -0,0 +1,42 @@
+#! /usr/bin/env python
+
+import sys
+sys.path[0] = '/var/lib/mailman/Mailman'
+
+def_gbls = globals().copy()
+usr_mod = {}
+usr_def = {}
+execfile('/var/lib/mailman/Mailman/Defaults.py', def_gbls)
+usr_gbls = def_gbls.copy()
+execfile('/etc/mailman/mm_cfg.py', usr_gbls)
+
+
+def same_func(f, g):
+ f_code, g_code = f.func_code, g.func_code
+ return (f_code.co_filename == g_code.co_filename
+ and
+ g_code.co_firstlineno == g_code.co_firstlineno)
+
+
+for var, usr_value in usr_gbls.items():
+ try:
+ def_value = def_gbls[var]
+ if usr_value != def_value:
+ usr_mod[var] = 1
+ except KeyError:
+ # Handle user defined variable here
+ usr_def[var] = 1
+# Generate commented /etc/mailman/mm_cfg.py.dpkg-dist
+
+for var in usr_mod.keys():
+ val = usr_gbls[var]
+ if var.startswith('__') or callable(val) and same_func(val, def_gbls[var]):
+ del usr_mod[var]
+
+print "User modified variables:"
+for var in usr_mod.keys():
+ print ' %s:\t%r was %r' % (var, usr_gbls[var], def_gbls[var])
+
+print "User defined variables:"
+for var in usr_def.keys():
+ print ' %s: \t%r' % (var, usr_gbls[var])
Property changes on: branches/pkg-split/core/debian/snippets/user_cfg.py
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:keywords
+ Id URL