File: rules

package info (click to toggle)
cyrus-imapd 3.10.0~rc2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 87,996 kB
  • sloc: ansic: 284,322; perl: 136,912; javascript: 9,562; sh: 5,730; yacc: 2,565; makefile: 2,177; cpp: 2,147; lex: 662; xml: 621; awk: 303; python: 279; asm: 262
file content (246 lines) | stat: -rwxr-xr-x 8,551 bytes parent folder | download | duplicates (5)
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
#!/usr/bin/make -f
# debian/rules for CMU Cyrus IMAP version 2.4
# GNU copyright 1997 by Joey Hess.
# Copyright (c) 2001,2010 by Henrique de Moraes Holschuh
# Published under the GNU GPL license
# Based on previous work by Michael-John Turner <mj@debian.org>,
#			    David Parker <david@neongoat.com>
#

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# see FEATURE AREAS in dpkg-buildflags(1)
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export _FILE_OFFSET_BITS=64
export _TIME_BITS=64

# DebHelper control
export DH_ALWAYS_EXCLUDE=CVS:.svn:.git

export DOCPKG=cyrus-doc
export TMPPKG := $(CURDIR)/debian/tmp
export DOCDIR := $(CURDIR)/debian/$(DOCPKG)/usr/share/doc/$(DOCPKG)

export DEB_CFLAGS_MAINT_APPEND  = -Wall -Wextra -g -fno-strict-aliasing -pipe $(if $(findstring noopt,$(DEB_BUILD_OPTIONS)),-O0,-O2)
export PERL_MM_OPT              = INSTALLDIRS="vendor" CCFLAGS="$(dpkg-buildflags --get CFLAGS)" LDDLFLAGS="$(dpkg-buildflags --get LDFLAGS)"

include /usr/share/dpkg/architecture.mk

# Extra version information to add to Cyrus IMAPd ID
EXTRA_IDENT := Debian-$(DEB_VERSION)

# DB engine version
export BDB_VERSION ?= $(shell LC_ALL=C dpkg-query -l 'libdb[45].[0-9]-dev' | grep ^ii | sed -e 's|.*\s\libdb\([45]\.[0-9]\)-dev\s.*|\1|')
DBENGINE := BerkeleyDB$(BDB_VERSION)

CONFFLAGS =
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
  CONFFLAGS += --build $(DEB_HOST_GNU_TYPE)
else
  CONFFLAGS += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

MAN1 := imtest installsieve lmtptest mupdatetest nntptest \
	pop3test sieveshell sivtest smtptest httptest \
	dav_reconstruct synctest

MAN8 := master reconstruct quota deliver \
	mbpath ctl_mboxlist ctl_deliver ctl_cyrusdb squatter \
	tls_prune ipurge cvt_cyrusdb chk_cyrus arbitron \
	cyr_expire unexpunge sync_client sync_reset cyr_synclog \
	cyr_dbtool cyr_df ctl_zoneinfo cyr_deny cyr_info \
	fetchnews fud httpd idled imapd lmtpd mbexamine nntpd \
	notifyd pop3d smmapd sync_server timsieved \
	cyr_buildinfo mbtool restore backupd \
	cvt_xlist_specialuse cyr_ls cyr_userseen cyradm cyrdump \
	lmtpproxyd mupdate pop3proxyd promstatsd proxyd ptdump \
	ptexpire ptloader relocate_by_id sievec sieved

%:
	dh $@

override_dh_auto_configure:
	dh_auto_configure -- \
	 $(CONFFLAGS) \
	 --with-extraident=$(EXTRA_IDENT) \
	 --includedir=/usr/include \
	 --datadir=/usr/share/cyrus \
	 --sharedstatedir=/usr/share/cyrus \
	 --localstatedir=/var/lib/cyrus \
	 --libexecdir=/usr/lib/cyrus/bin \
	 --bindir=/usr/lib/cyrus/bin \
	 --sbindir=/usr/lib/cyrus/bin \
	 --disable-silent-rules \
	 --disable-pcre \
	 --enable-autocreate \
	 --enable-idled \
	 --enable-nntp \
	 --enable-murder \
	 --enable-http \
	 --enable-jmap \
	 --enable-pcre2 \
	 --enable-replication \
	 --enable-xapian \
	 --enable-backup \
	 --enable-calalarmd \
	 --enable-unit-tests \
	 --enable-gssapi="/usr" \
	 --with-cyrus-user=cyrus --with-cyrus-group=mail \
	 --with-pgsql \
	 --with-pgsql-incdir=/usr/include/postgresql \
	 --with-lock=fcntl \
	 --with-ldap \
	 --with-krb \
	 --with-krbimpl=mit \
	 --without-krbdes \
	 --with-openssl \
	 --with-zlib \
	 --with-libcap \
	 --with-pidfile=/run/cyrus-master.pid \
	 --with-com_err="" \
	 --with-syslogfacility=MAIL \
	 --with-gss_impl=mit \
	 --with-sasl \
	 --with-perl=/usr/bin/perl
	echo 'To build this package, configure was called as follows:' \
		> debian/README.configure-options
	grep '^ac_cs_config=' config.status \
	| sed -e 's/^ac_cs_config="/configure /;s/"$$//' \
	| perl -pe 's#\Q'`pwd`'\E#BUILD_PATH#g'
		>> debian/README.configure-options

execute_after_dh_auto_build:

# store database configuration for possible automatic
# upgrading later
	echo "DBENGINE $(DBENGINE)" >>debian/cyrus-db-types.txt
	grep '_db"' lib/imapoptions \
	| cut -d, -f1-2 | sed -e 's/{ "//;s/_db", "/ /;s/"$$//' \
	| sed -e 's/^tls.* /TLS /;s/^subs.* /SUBS /;s/^seen.* /SEEN /;s/^pts.* /PTS /;s/^mbox.* /MBOX /'\
	| awk '{printf("%s %s\n",toupper($$1),$$2);}' \
	>>debian/cyrus-db-types.txt
	mv debian/cyrus-db-types.txt debian/cyrus-db-types.txt.old \
	&& sort -u < debian/cyrus-db-types.txt.old > debian/cyrus-db-types.txt \
	&& rm debian/cyrus-db-types.txt.old

# store some useful state about the current package
	echo "PACKAGE_VERSION $(DEB_VERSION)" >debian/cyrus-hardwired-config.txt
	if grep -q -s -n -E '^[[:space:]]*#define[[:space:]]+USE_DIR_FULL[[:space:]]+1' config.h ; then \
		echo "USE_DIR_FULL 1" >>debian/cyrus-hardwired-config.txt ;\
	else \
		echo "USE_DIR_FULL 0" >>debian/cyrus-hardwired-config.txt ;\
	fi

# former build-indep
	cd doc &&\
	pod2man ../perl/sieve/scripts/sieveshell.pl > ../man/sieveshell.1 &&\
	fig2dev -L png legacy/murder.fig murder.png &&\
	rm -f groff-html-*.png pod2htm*
	cd doc &&\
	mkdir -p man &&\
	for man in ../man/*.[1-9] ../debian/*.[1-9]; do \
	   echo "Generating html manpage for $$man..."; \
	   groff -man -Thtml $$man > man/`basename $$man`.html; \
	done
	pod2html perl/imap/cyradm.sh > doc/man/cyradm.1.html
	rm -f pod2htm*

execute_after_dh_auto_install:

	# install the cyrus tool
	install -d -m 755 $(TMPPKG)/usr/sbin
	install -m 755 debian/cyrus $(TMPPKG)/usr/sbin

	# for stuff in /etc
	install -d -m 755 $(TMPPKG)/etc/cyrus $(TMPPKG)/etc/pam.d
	install -m 644 debian/imapd.conf $(TMPPKG)/etc
	install -m 644 debian/cyrus.conf $(TMPPKG)/etc
	(cd debian ; for i in *.pam ;\
		do install -m 644 $$i $(TMPPKG)/etc/pam.d/$${i%.pam} ;\
	done)

	# Install cyradm icons
	install -d -m 755 $(TMPPKG)/usr/share/icons/mini
	install -m 644 debian/cyradm-32x32.xpm $(TMPPKG)/usr/share/icons/cyradm.xpm
	install -m 644 debian/cyradm-16x16.xpm $(TMPPKG)/usr/share/icons/mini/cyradm.xpm

	# Install debian-provided scripts
	install -d -m 755 $(TMPPKG)/usr/lib/cyrus/bin/
	install debian/cyrus-makedirs $(TMPPKG)/usr/lib/cyrus/bin/makedirs
	install -m 755 debian/cyrus-upgrade-db $(TMPPKG)/usr/lib/cyrus/bin/upgrade-db
	install -m 644 debian/get-backtrace.gdb $(TMPPKG)/usr/lib/cyrus/get-backtrace.gdb

	# and logcheck files
	install -d -m 755 $(TMPPKG)/etc/logcheck/ignore.d.server/ $(TMPPKG)/etc/logcheck/violations.ignore.d/
	install -m 644 debian/logcheck.ignore $(TMPPKG)/etc/logcheck/ignore.d.server/cyrus-imapd
	install -m 644 debian/logcheck.violations.ignore $(TMPPKG)/etc/logcheck/violations.ignore.d/cyrus-imapd

	# And other upgrade helpers
	install -m 644 debian/cyrus-db-types.txt debian/cyrus-hardwired-config.txt \
		   $(TMPPKG)/usr/lib/cyrus

	# Move all manpages under cyrus- namespace
	install -m 644 debian/cyrus-makedirs.8 debian/cyrus-arbitronsort.8 debian/cyrus-dump.8 \
		$(TMPPKG)/usr/share/man/man8/

	# Prefix all manpages for cyrus binaries to cyrus-$1
	for i in $(MAN1); do \
	  mv $(TMPPKG)/usr/share/man/man1/$$i.1 $(TMPPKG)/usr/share/man/man1/cyrus-$$i.1; \
	done

	for i in $(MAN8); do \
	  mv $(TMPPKG)/usr/share/man/man8/$$i.8 $(TMPPKG)/usr/share/man/man8/cyrus-$${i}.8 ; \
	done

	# Install the stuff needed for upgrades
	install -d -m 755 $(TMPPKG)/usr/lib/cyrus/upgrade
	for i in rehash translatesieve masssievec; do \
	  install -m 755 tools/$$i $(TMPPKG)/usr/lib/cyrus/upgrade ;\
	done

	# And other misc useful tools
	install -m 755 tools/arbitronsort.pl $(TMPPKG)/usr/lib/cyrus/bin/arbitronsort

	# Install the html docs and examples
	install -d -m 755 $(DOCDIR)/html
	install -m 644 doc/legacy/*.html doc/murder.png $(DOCDIR)/html
	cp -a doc/man $(DOCDIR)/html
	cp -a debian/examples $(DOCDIR)
	install -m 644 contrib/cyrusv2.mc $(DOCDIR)/examples
	#
	# Install contrib/ files
	install -d -m 755 $(DOCDIR)/contrib
	xargs < debian/cyrus-common.contrib -rti cp -r '{}' $(DOCDIR)/contrib

	# Remove some stuff we don't install
	rm $(TMPPKG)/usr/lib/cyrus/bin/*proxyd

execute_after_dh_install:
	rm -f `cat debian/h-to-drop|sed -e 's/^\/*/debian\/\*\//'`

override_dh_installinit:
	dh_installinit -p cyrus-common --name=cyrus-imapd

override_dh_installchangelogs:
	dh_installchangelogs \
	  -p cyrus-common -p cyrus-doc -p cyrus-clients \
	  -p cyrus-admin -p libcyrus-imap-perl -p cyrus-imapd \
	  -p cyrus-pop3d -p cyrus-murder -p cyrus-replication \
	  -p cyrus-nntpd -p cyrus-caldav -p cyrus-dev \
	  doc/legacy/changes.html
	dh_installchangelogs --remaining-packages

override_dh_installcron:
	dh_installcron --name=cyrus-imapd

override_dh_installsystemd:
	dh_installsystemd --name=cyrus-imapd

override_dh_missing:
	dh_missing --fail-missing -X.la

override_dh_auto_clean:
	perl -pe 's#\@top_srcdir\@#../..#' <perl/annotator/Makefile.PL.in >perl/annotator/Makefile.PL
	dh_auto_clean