summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 0f8606accc9beb8c3307bb2a70ef84321e4aaa2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/usr/bin/make -f

include /usr/share/python/python.mk

LIB_VERSION = 15
UPSTREAM_VERSION = $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ':' | sed 's/ //' | sed 's/~dfsg.*$$//')
COMPAT_VERSION = $(UPSTREAM_VERSION)~dfsg
PYTHON_VERSION = 1.0a1

MIB_MODULES = smux ucd-snmp/dlmod
EXCL_MIB_MODULES =

PYVERS=$(shell pyversions -vr)

ifeq (linux,$(DEB_HOST_ARCH_OS))
MIB_MODULES += ucd-snmp/diskio ucd-snmp/lmSensors 
IPV6 = --enable-ipv6
DEB_DH_GENCONTROL_ARGS=-- -Vos-specific-dev="libsensors4-dev"
else
ifeq (kfreebsd,$(DEB_HOST_ARCH_OS))
IPV6 = --disable-ipv6
DEB_DH_GENCONTROL_ARGS=-- -Vos-specific-dev="libkvm-dev"
endif
endif
ifeq (hurd,$(DEB_HOST_ARCH_OS))
IPV6 = --enable-ipv6
EXCL_MIB_MODULES += mibII
else
MIB_MODULES += host
endif

%:
	dh --with python-central $@

.PHONY: override_dh_auto_configure
override_dh_auto_configure:
	ln -f -s /usr/share/misc/config.guess .
	ln -f -s /usr/share/misc/config.sub .
	libtoolize --install --copy
	aclocal
	autoheader
	autoconf
	dh_auto_configure -- --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
	  --with-persistent-directory=/var/lib/snmp \
	  --enable-ucd-snmp-compatibility \
	  --enable-shared --with-cflags="$(CFLAGS) -DNETSNMP_USE_INLINE" \
	  --with-perl-modules="INSTALLDIRS=vendor" --enable-as-needed \
	  $(IPV6) --with-logfile=none \
	  --without-rpm --with-libwrap --with-openssl \
	  --without-dmalloc --without-efence --without-rsaref \
	  --with-sys-contact="root" --with-sys-location="Unknown" \
	  --with-mib-modules="$(MIB_MODULES)" \
	  --with-out-mib-modules="$(EXCL_MIB_MODULES)" \
	  --enable-mfd-rewrites \
	  --with-mnttab=/etc/mtab \
	  --with-mibdirs="\$$HOME/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp" \
	  --with-defaults

.PHONY: override_dh_clean
override_dh_clean:
	dh_clean
	rm -rf `find . -name .libs`
	rm -rf `find . -name .svn`
	find . -name *\.py[co] -exec rm {} \;
	find debian -name python-*-stamp-* -exec rm {} \;
	rm -rf python/build
	rm -rf python/netsnmp_python.egg-info

.PHONY: override_dh_auto_build
override_dh_auto_build:
	dh_auto_build -- LD_RUN_PATH=

.PHONY: override_dh_auto_install
override_dh_auto_install: $(PYVERS:%=debian/python-build-stamp-%)
	dh_auto_install -- INSTALL_PREFIX=$(CURDIR)/debian/tmp DESTDIR=$(CURDIR)/debian/tmp
	# Install the "broke" headers
	cp agent/mibgroup/struct.h debian/tmp/usr/include/net-snmp/agent
	cp agent/mibgroup/util_funcs.h debian/tmp/usr/include/net-snmp
	cp agent/mibgroup/mibincl.h debian/tmp/usr/include/net-snmp/library
	cp agent/mibgroup/header_complex.h debian/tmp/usr/include/net-snmp/agent
	# Remove the snmpcheck program since we don't support it (yet).
	rm debian/tmp/usr/bin/snmpcheck
	# Copy the .conf files.
	mkdir -p debian/tmp/etc/snmp
	cp EXAMPLE.conf debian/tmp/etc/snmp/snmpd.conf
	cp EXAMPLE-trap.conf debian/tmp/etc/snmp/snmptrapd.conf
	cp debian/snmp.conf debian/tmp/etc/snmp/snmp.conf
	mv debian/tmp/usr/share/snmp/mib2c*.conf debian/tmp/etc/snmp
	dh_installdocs -plibsnmp-base mibs/README.mibs
	# Perform other man pages fixups.
	bash ./debian/fixman

.PHONY: override_dh_auto_test
dh_auto_test:

.PHONY: override_dh_makeshlibs
override_dh_makeshlibs:
	dh_makeshlibs -plibsnmp$(LIB_VERSION) -V"libsnmp$(LIB_VERSION) (>= $(COMPAT_VERSION))"

.PHONY: override_dh_strip
override_dh_strip:
	dh_strip -plibsnmp$(LIB_VERSION) --dbg-package=libsnmp$(LIB_VERSION)-dbg
	dh_strip

.PHONY: override_dh_install
override_dh_install: $(PYVERS:%=debian/python-install-stamp-%)
	dh_installexamples -plibsnmp-perl $(shell ls -d perl/SNMP/examples/* | grep -v SCCS)
	dh_install

.PHONY: override_dh_installdocs
override_dh_installdocs:
	dh_installdocs
	rm -rf debian/libsnmp-dev/usr/share/doc/libsnmp-dev
	rm -rf debian/libsnmp$(LIB_VERSION)-dbg/usr/share/doc/libsnmp$(LIB_VERSION)-dbg
	rm -rf debian/libsnmp-perl/usr/share/doc/libsnmp-perl
	ln -sf libsnmp$(LIB_VERSION) debian/libsnmp-dev/usr/share/doc/libsnmp-dev
	ln -sf libsnmp$(LIB_VERSION) debian/libsnmp$(LIB_VERSION)-dbg/usr/share/doc/libsnmp$(LIB_VERSION)-dbg
	ln -sf libsnmp$(LIB_VERSION) debian/libsnmp-perl/usr/share/doc/libsnmp-perl

.PHONY: override_dh_fixperms
override_dh_fixperms:
	dh_fixperms
	chmod 600 debian/snmpd/etc/snmp/snmp*d.conf

debian/python-build-stamp-%:
	# Build python modules manually as the net-snmp Makefile is too limited.
	cd python; python$* setup.py build --basedir=$(CURDIR)
	touch $@

debian/python-install-stamp-%:
	# Build python modules manually as the net-snmp Makefile is too limited.
	cd python; python$* setup.py install --root $(CURDIR)/debian/tmp $(py_setup_install_args)
	mv debian/tmp/usr/lib/python$*/$(call py_sitename, $*)/netsnmp_python-$(PYTHON_VERSION).egg-info \
	   debian/tmp/usr/lib/python$*/$(call py_sitename, $*)/netsnmp_python.egg-info
	touch $@

get-orig-source:
	@uscan --download-version $(UPSTREAM_VERSION) --destdir /tmp --force-download --no-symlink
	@tar xfz /tmp/net-snmp-$(UPSTREAM_VERSION).tar.gz -C /tmp
	@rm -rf /tmp/net-snmp-$(UPSTREAM_VERSION)/doc
	@cd /tmp/net-snmp-$(UPSTREAM_VERSION)/mibs; \
	cat rfclist ianalist | while read rfc mibs; do rm -f `echo $$mibs | sed 's/:/.txt /g' | sed 's/$$/.txt/'`; done
	@rm -f /tmp/net-snmp-$(UPSTREAM_VERSION)/mibs/RFC-1215.txt
	@cd /tmp; tar czf net-snmp_$(COMPAT_VERSION).orig.tar.gz net-snmp-$(UPSTREAM_VERSION)
	@rm -rf /tmp/net-snmp-$(UPSTREAM_VERSION)