Code

Reenabled and fixed the work around for #474087.
[pkg-collectd.git] / debian / rules
index dc77e8159af74fbd44e8906d38e5bfcf72d167fd..a3a41b340ff346c63d616560292011d7cdd5613d 100755 (executable)
@@ -12,8 +12,15 @@ DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_ARCH      ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
+CPPFLAGS = -I$(CURDIR)/debian/include
 CFLAGS = -Wall -g
 
+# There is no way to tell lt_dlopen() to use the RTLD_GLOBAL flag which is
+# however required by the perl plugin (which would otherwise be unable to find
+# symbols defined in libperl when loading perl modules that require such
+# symbols). This is a workaround for this issue.
+CPPFLAGS += -DLT_LAZY_OR_NOW='RTLD_LAZY|RTLD_GLOBAL'
+
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O0
 else
@@ -26,17 +33,34 @@ confflags = --host=$(DEB_HOST_GNU_TYPE) \
                        --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
                        --mandir=\$${prefix}/share/man \
                        --localstatedir=/var --sysconfdir=/etc \
-                       --enable-debug
+                       --with-perl-bindings="INSTALLDIRS=vendor" \
+                       --disable-xmms \
+                       --without-libstatgrab
+
+# These plugins do not provide any functionality under Linux.
+confflags += --disable-apple_sensors --disable-tape
+
+# The static libraries netstat and upsclient cannot be linked into shared
+# objects on some architectures (see bugs #358637 and #419684 for more
+# details).
+ifneq (,$(findstring $(DEB_BUILD_ARCH),alpha amd64 hppa ia64 ppc64))
+       confflags += --disable-netlink --disable-nut
+endif
 
-# The static libraries iptc and upsclient cannot be used on 64bit systems
-# (see bugs #358637 and #419684 for more details).
-ifneq (,$(findstring $(DEB_BUILD_ARCH),amd64 ia64 ppc64))
-       confflags += --disable-iptables --disable-nut
+# libvirt is only available on amd64, i386 and powerpc.
+ifeq (,$(findstring $(DEB_BUILD_ARCH),amd64 i386 powerpc))
+       confflags += --disable-libvirt
 endif
 
+# Force the inclusion of the ipmi plugin and manually specify its
+# dependencies to work around #474087 (broken openipmi .pc files).
+BUILD_WITH_OPENIPMI_LIBS = -lOpenIPMIpthread -lOpenIPMIutils -lOpenIPMI
+confflags += --enable-ipmi
+
 config.status: configure $(DPATCH_STAMPFN)
        dh_testdir
-       CFLAGS="$(CFLAGS)" ./configure $(confflags)
+       BUILD_WITH_OPENIPMI_LIBS="$(BUILD_WITH_OPENIPMI_LIBS)" \
+       CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" ./configure $(confflags)
 
 build: build-stamp
 
@@ -44,6 +68,7 @@ build-stamp: config.status
        dh_testdir
        
        $(MAKE)
+       perl ./debian/bin/check_plugins.pl
        
        touch build-stamp
 
@@ -52,9 +77,13 @@ clean: unpatch
        dh_testroot
        rm -f build-stamp
        
-       -$(MAKE) distclean
+       [ ! -f Makefile ] || $(MAKE) distclean
+       
+       rm -f debian/README.Debian.plugins
+       rm -f src/*.1 src/*.5
        
        dh_clean 
+       debconf-updatepo
 
 install-indep:
        dh_testdir
@@ -62,9 +91,10 @@ install-indep:
        dh_clean -k
        dh_installdirs -i
        
-       include_dir=$(CURDIR)/debian/collectd-dev/usr/include/collectd/ \
-               && mkdir -p $$include_dir \
-               && cp src/*.h $$include_dir
+       include_dir=debian/collectd-dev/usr/include/collectd/ \
+               && mkdir -p $$include_dir/liboconfig \
+               && cp src/*.h $$include_dir \
+               && cp src/liboconfig/oconfig.h $$include_dir/liboconfig
 
 install-arch: build
        dh_testdir
@@ -74,31 +104,36 @@ install-arch: build
        
        $(MAKE) install DESTDIR=$(CURDIR)/debian/collectd
        
-       rm -f $(CURDIR)/debian/collectd/usr/lib/collectd/*.la
+       rm -rf debian/collectd/usr/include/
+       rm -f debian/collectd/usr/lib/collectd/*.la
        
-       rm -f $(CURDIR)/debian/collectd/etc/collectd.conf
-       install -D -m 0644 $(CURDIR)/debian/collectd.conf \
-               $(CURDIR)/debian/collectd/etc/collectd/collectd.conf
-       
-       for PLUGIN in apache dns mysql perl ping sensors; do \
-               plugin_dir=$(CURDIR)/debian/collectd-$$PLUGIN/usr/lib/collectd/; \
-               mkdir -p $$plugin_dir; \
-               mv $(CURDIR)/debian/collectd/usr/lib/collectd/$$PLUGIN.so \
-                       $$plugin_dir; \
-       done
+       rm -f debian/collectd/etc/collectd.conf
+       install -D -m 0644 debian/collectd.conf \
+               debian/collectd/etc/collectd/collectd.conf
+       install -m 0644 debian/collection.conf \
+               debian/collectd/etc/collectd/collection.conf
+       install -m 0644 debian/thresholds.conf \
+               debian/collectd/etc/collectd/thresholds.conf
        
        mkdir -p debian/collectd/usr/lib/collectd/utils/
-       for UTIL in extractDS.px migrate-3-4.px; do \
+       for UTIL in rrd_filter.px migrate-3-4.px; do \
                cp contrib/$$UTIL debian/collectd/usr/lib/collectd/utils/; \
        done
+       
+       perl ./debian/bin/gen_plugin_deps.pl
+       
+       mkdir -p debian/collectd/usr/share/lintian/overrides/
+       cp debian/collectd.overrides \
+               debian/collectd/usr/share/lintian/overrides/collectd
 
 binary-indep: install-indep
        dh_testdir
        dh_testroot
        dh_installchangelogs -i ChangeLog
        dh_installdocs -A -i debian/README.Debian AUTHORS README TODO
-       dh_installexamples -i debian/examples/myplugin.c
-       dh_compress -i
+       dh_installexamples -i contrib/examples/myplugin.c \
+               contrib/examples/MyPlugin.pm
+       dh_compress -i -Xexamples/
        dh_fixperms -i
        dh_installdeb -i
        dh_gencontrol -i
@@ -109,19 +144,25 @@ binary-arch: build install-arch
        dh_testdir
        dh_testroot
        dh_installchangelogs -a ChangeLog
-       dh_installdocs -A -a debian/README.Debian debian/NEWS.Debian \
-               AUTHORS README TODO
+       dh_installdocs -A -a debian/README.Debian AUTHORS README TODO
+       dh_installdocs -a debian/NEWS.Debian debian/README.Debian.plugins
        dh_installexamples -a contrib/collectd2html.pl contrib/collection.cgi \
-               contrib/PerlLib/ contrib/SpamAssassin/ contrib/iptables/
+               contrib/collection3/ \
+               contrib/exec-munin.conf contrib/exec-munin.px contrib/exec-smartctl \
+               contrib/exec-nagios.conf contrib/exec-nagios.px \
+               contrib/SpamAssassin/ contrib/iptables/ contrib/cussh.pl \
+               contrib/snmp-data.conf contrib/add_rra.sh contrib/network-proxy.py
        dh_installdebconf -a
        dh_installinit -a -- defaults 95
-       dh_installman -a src/collectd.1 src/collectd.conf.5
        dh_link -a
        dh_strip -a --dbg-package=collectd-dbg
-       dh_compress -a
+       dh_compress -a -Xexamples/
        dh_fixperms -a
        dh_installdeb -a
-       dh_shlibdeps -a
+       dpkg-shlibdeps -Tdebian/collectd.substvars \
+               -dDepends debian/collectd/usr/bin/* debian/collectd/usr/sbin/* \
+                       debian/collectd/usr/lib/collectd/rrdtool.so \
+               -dRecommends debian/collectd/usr/lib/collectd/*.so
        dh_gencontrol -a
        dh_md5sums -a
        dh_builddeb -a