#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk package=mailman binaries=list_lists find_member config_list mmsitepass newlist rmlist \ add_members list_members remove_members arch clone_member \ sync_members check_db check_perms list_admins withlist mailman-config SHELL=/bin/bash export DEB_BUILD_MAINT_OPTIONS = hardening=+all DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) CFLAGS += -g endif ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) INSTALL_PROGRAM += -s endif build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: Makefile debian/po/templates.pot $(MAKE) sed 's,@VERSION@,$(DEB_VERSION),g' < debian/preinst.in > debian/preinst touch build-stamp debian/po/templates.pot: debian/templates @debconf-updatepo Makefile: dh_autoreconf ./configure --prefix=/var/lib/$(package) --with-username=list \ --with-groupname=list \ --with-mail-gid=daemon --with-cgi-gid=www-data \ --without-permcheck --with-mailhost=localhost \ --with-urlhost=localhost clean: dh_testdir dh_testroot [ ! -f Makefile ] || $(MAKE) distclean rm -rf build-stamp Makefile debian/ucffiles debian/mailman.postinst.ucf rm -f debian/mailman.postrm.ucf rm -f debian/preinst dh_autoreconf_clean dh_clean chmod +x debian/{prerm,postinst} binary-indep: build dh_testdir dh_testroot # There are no architecture-independent files to be uploaded # generated by this package. If there were any they would be # made here. binary-arch: build dh_testdir dh_testroot dh_install dh_installdirs dh_installdocs ACKNOWLEDGMENTS README* TODO FAQ dh_installchangelogs NEWS $(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 rmdir debian/$(package)/var/lib/mailman/pythonlib rm -r debian/$(package)/var/lib/mailman/tests # cruft: msgfmt.py is only used at build time rm debian/$(package)/var/lib/mailman/bin/msgfmt.py # move the nonchanging directories to /usr/lib/mailman, except for # cgi-bin, which goes to /usr/lib/cgi-bin/mailman 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 # 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 # note the current version to avoid aborting on same-version # reinstallations - see the preinst script echo "$(DEB_VERSION)" > debian/mailman/var/lib/$(package)/.version dh_installlogrotate dh_installcron 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 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_installsystemd dh_installdebconf dh_installexamples templates/* debian/mm_cfg.py \ debian/mailman/usr/lib/$(package)/Mailman/Defaults.py dh_strip dh_compress -Xmailman-admin.pdf -Xmailman-install.pdf -Xmailman-member-es.pdf -Xmailman-member.pdf 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/lib/mailman/qfiles chown root:list debian/mailman/var/log/mailman # set 2755 except messages/ find debian/mailman/var/lib/$(package) -path debian/mailman/var/lib/$(package)/messages -prune -o -type d -exec chmod 2775 {} \; # make lintian happy install -m 0644 debian/lintian-overrides debian/mailman/usr/share/lintian/overrides/mailman # reportbug text to discourage wishlist reports for legacy package install -m 0644 debian/presubj debian/mailman/usr/share/bug/mailman/ # 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/share/mailman dh_link etc/mailman/postfix-to-mailman.py usr/lib/mailman/bin/postfix-to-mailman.py # postfix-to-mailman.py install -m 0755 build/contrib/qmail-to-mailman.py debian/mailman/usr/share/mailman dh_link etc/mailman/qmail-to-mailman.py usr/lib/mailman/bin/qmail-to-mailman.py # apache default config install -m 0644 debian/contrib/apache.conf debian/mailman/etc/mailman # Debian Powered icon install -m 0644 debian/contrib/debianpowered.png debian/mailman/usr/share/images/mailman/ # Move templates mv `find debian/mailman/etc/mailman -mindepth 1 -maxdepth 1 -type d` debian/mailman/usr/share/mailman find debian/mailman/usr/share/mailman -type f -printf '/etc/mailman/%P\n' > debian/ucffiles # 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-rx debian/mailman/var/lib/$(package)/archives/private chown www-data 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} # Python Policy dh_python2 -a /usr/lib/mailman/Mailman install -d debian/mailman/usr/share/python/runtime.d install debian/mailman.rtupdate debian/mailman/usr/share/python/runtime.d egrep -rslZ '^#!(.*)python' debian/mailman/usr/lib/mailman | xargs -0 chmod a+x -- find debian/mailman/usr/share/doc/mailman -name "*.html" -exec chmod -x {} \; find debian/mailman/usr/share/doc/mailman -name "*.txt" -exec chmod -x {} \; find debian/mailman/usr/share/doc/mailman -name '.svn' -exec rm -rf {} \; || true # Create the /var/lo{g,ck} links last, and wih ln -s, because they need to be # absolute links. Relative links cause trouble for people making multiple levels, # e.g. when /var/log is symlinked to somewhere else. They need to be last because # otherwise dh_link will revert them back to relative ones. # # link it back to /var/lib/mailman/locks rmdir debian/mailman/var/lib/$(package)/locks ln -s /var/lock/mailman debian/mailman/var/lib/$(package)/locks # remove the log directory and link it to /var/log/mailman rmdir debian/mailman/var/lib/$(package)/logs ln -s /var/log/mailman debian/mailman/var/lib/$(package)/logs chown root:list debian/mailman/var/log/mailman chmod 2770 debian/mailman/var/log/mailman dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: binary binary-arch binary-indep clean