#! /usr/bin/make -f # for DEB_VERSION_UPSTREAM include /usr/share/dpkg/pkg-info.mk export DH_VERBOSE=1 # Build.PL relies on the munin modules to be found locally export PERL5LIB=. MAKEOPTS = CONFIG=debian/Makefile.config INSTALL_PLUGINS="auto manual snmpauto contrib" %: # --no-parallel was introduced with debhelper compat level 10 # (else it would fail to build) - this will probably also # "fix" #839233 dh $@ --no-parallel override_dh_auto_build: # ./getversion reads RELEASE if it exists echo "$(DEB_VERSION_UPSTREAM)" >RELEASE dh_auto_build -- $(MAKEOPTS) override_dh_auto_install: # Install the major munin parts into different packages $(MAKE) install-common-prime $(MAKEOPTS) \ MANDIR=$(CURDIR)/debian/munin-doc/usr/share/man \ DESTDIR=$(CURDIR)/debian/munin-common $(MAKE) install-async-prime $(MAKEOPTS) \ MANDIR=$(CURDIR)/debian/munin-doc/usr/share/man \ DESTDIR=$(CURDIR)/debian/munin-async $(MAKE) install-master-prime $(MAKEOPTS) \ MANDIR=$(CURDIR)/debian/munin-doc/usr/share/man \ DESTDIR=$(CURDIR)/debian/munin $(MAKE) install-node-prime $(MAKEOPTS) \ MANDIR=$(CURDIR)/debian/munin-doc/usr/share/man \ DESTDIR=$(CURDIR)/debian/munin-node # Do not install the program manpages in the munin-doc tree # Instead: remove them here and rely on dh_installman. # We cannot split the MANDIR target for manpages and module documentation. Thus the # separation has to be done manually. rm -f debian/munin-doc/usr/share/man/man1/munin-get.1p \ debian/munin-doc/usr/share/man/man1/munin-node.1p \ debian/munin-doc/usr/share/man/man1/munin-node-configure.1p \ debian/munin-doc/usr/share/man/man1/munin-run.1p \ debian/munin-doc/usr/share/man/man1/munindoc.1p rmdir debian/munin-doc/usr/share/man/man1 # we do not expect other manpages in munin-doc (except for perl module documentation) [ -z "$(shell find debian/munin-doc/usr/share/man/ -type f | grep -v 'man3/')" ] $(MAKE) install-plugins-prime $(MAKEOPTS) \ MANDIR=$(CURDIR)/debian/munin-doc/usr/share/man \ DESTDIR=$(CURDIR)/debian/munin-plugins-core $(MAKE) install-plugins-java $(MAKEOPTS) \ MANDIR=$(CURDIR)/debian/munin-doc/usr/share/man \ DESTDIR=$(CURDIR)/debian/munin-plugins-java # Install apache 2.4 configuration install -D -m0644 debian/munin.apache24.conf \ $(CURDIR)/debian/munin/etc/munin/apache24.conf # Remove default .htaccess file from installation, as we include it # in the default apache2/conf.d/munin configuration rm -v $(CURDIR)/debian/munin/var/cache/munin/www/.htaccess # Remove bundled VeraMono.ttf, debian gets this font from # the fonts-dejavu-core package. http://bugs.debian.org/548508 rm -v $(CURDIR)/debian/munin/usr/share/munin/DejaVuSans*.ttf # Munin::Plugins & plugins.sh go into munin-common. # They are used for munin-plugins-* and we don't want a whole # dedicated new package (munin-plugins-common) for that. yet. for file in usr/share/perl5/Munin/Plugin.pm usr/share/munin/plugins/plugin.sh; do \ mkdir -p $(CURDIR)/debian/munin-common/$$(dirname $$file) ;\ mv $(CURDIR)/debian/munin-plugins-core/$$file \ $(CURDIR)/debian/munin-common/$$file; \ done # Install debian provided plugin configuration install -D -m0644 debian/plugins.conf \ $(CURDIR)/debian/munin-node/etc/munin/plugin-conf.d/munin-node install -D -m0644 debian/plugins.README \ $(CURDIR)/debian/munin-node/etc/munin/plugin-conf.d/README install -D -m0644 debian/plugins-spamstats.conf \ $(CURDIR)/debian/munin-plugins-extra/etc/munin/plugin-conf.d/spamstats install -D -m0644 debian/plugins-dhcpd3.conf \ $(CURDIR)/debian/munin-plugins-extra/etc/munin/plugin-conf.d/dhcpd3 # Move plugins not marked "auto" "manual" or "snmpauto" to the # "munin-plugins-extra" package. mkdir -p $(CURDIR)/debian/munin-plugins-extra/usr/share/munin/plugins for file in $$(find debian/munin-plugins-core/usr/share/munin/plugins -type f \ -not -name plugins.history -and -not -name plugins.sh); do \ if ! grep -q "#%# family=\(auto\|manual\|snmpauto\)" $$file ; then \ mv -v $$file $(CURDIR)/debian/munin-plugins-extra/usr/share/munin/plugins; \ fi; \ done # The upstream Makefile creates /var/lib/munin-async (also known as "SPOOLDIR") during # "make install-pre" (referenced by "install-master-prime" and "install-node-prime"). # This directory is used by the package "munin-async" as the home directory for the # "munin-async" user. Thus it should not really exist before the installation of that # package. Otherwise a warning is emitted when the user is created. # But since "munin-sched" (being part of the "munin-node" package) requires the SPOOLDIR to # exist, this directory needs to be shipped with "munin-node". Since "munin-async" depends # on "munin-node", the above warning caused by munin-async's postinst script is inevitable # under the current circumstances. # TODO: "munin-sched" was removed by upstream. Maybe the above complexity can be reduced. # Thus we can remove the directory from the package "munin", but we need to continue # shipping it as part of "munin-node" in order to ensure that "munin-sched" works. # The warning "directory already exists" in munin-async's postinst script is annoying, but # can be safely ignored. # Hint: munin-sched's use-case is quite exotic and the program is removed for munin 3.0. # Thus there does not seem to be real need to fix this mess. rmdir $(CURDIR)/debian/munin/var/lib/munin-async rmdir $(CURDIR)/debian/munin/var/run/munin rmdir $(CURDIR)/debian/munin/var/run rmdir $(CURDIR)/debian/munin-node/var/run/munin rmdir $(CURDIR)/debian/munin-node/var/run # "make clean" is being clever. Work around that. ;) override_dh_auto_clean: dh_auto_clean -- $(MAKEOPTS) clean-node clean-master clean-plugins clean-common clean find plugins/javalib -name '*.class' -print0 | xargs -0 -r rm -v rm RELEASE -f