summaryrefslogtreecommitdiff
path: root/debian/rules
blob: f1b973f57d191ec93d6f2dd98e69b861730afeba (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
#! /usr/bin/make -f
# Copyright © 2010-2018 Richard Kettlewell.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

INSTALL=install
VERSION=5.0

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 -SDate)" +%s)

# Debian apparently wants reproducible builds but won't execute them
# in a consistent environment, so every project has to clean up after
# it.
export LC_ALL=C.UTF-8

build-arch: build
build-indep: build
build:
	[ -e configure ] || ./autogen.sh
	./configure --prefix=/usr --mandir=/usr/share/man --without-lyx ${CONFIGURE_EXTRA}
	$(MAKE)

clean-rsbackup:
	rm -rf debian/rsbackup

binary-rsbackup: build
	rm -rf debian/rsbackup
	mkdir -p debian/rsbackup/DEBIAN
	mkdir -p debian/rsbackup/etc/rsbackup/hosts.d
	mkdir -p debian/rsbackup/etc/cron.hourly
	mkdir -p debian/rsbackup/etc/cron.daily
	mkdir -p debian/rsbackup/etc/cron.weekly
	mkdir -p debian/rsbackup/etc/cron.monthly
	mkdir -p debian/rsbackup/usr/share/doc/rsbackup
	mkdir -p debian/rsbackup/var/log/backup
	mkdir -p debian/rsbackup/usr/share/doc-base
	mkdir -p debian/rsbackup/usr/bin
	mkdir -p debian/rsbackup/usr/share/man/man1
	mkdir -p debian/rsbackup/usr/share/man/man5
	cp debian/rsbackup.conffiles debian/rsbackup/DEBIAN/conffiles
	install debian/rsbackup.postinst debian/rsbackup/DEBIAN/postinst
	install debian/rsbackup.postrm debian/rsbackup/DEBIAN/postrm
	install -m 755 tools/rsbackup.hourly debian/rsbackup/etc/cron.hourly/rsbackup
	install -m 755 tools/rsbackup.daily debian/rsbackup/etc/cron.daily/rsbackup
	install -m 755 tools/rsbackup.weekly debian/rsbackup/etc/cron.weekly/rsbackup
	install -m 755 tools/rsbackup.monthly debian/rsbackup/etc/cron.monthly/rsbackup
	cp tools/rsbackup.config debian/rsbackup/etc/rsbackup/config
	cp tools/rsbackup.defaults debian/rsbackup/etc/rsbackup/defaults
	cp tools/rsbackup.devices debian/rsbackup/etc/rsbackup/devices
	cp debian/changelog debian/rsbackup/usr/share/doc/rsbackup/changelog.Debian
	cp debian/doc.rsbackup debian/rsbackup/usr/share/doc-base/rsbackup
	cp README.md debian/rsbackup/usr/share/doc/rsbackup/.
	LC_ALL=C.UTF-8 lynx -dump -nolist doc/CHANGES.html > debian/rsbackup/usr/share/doc/rsbackup/changelog
	gzip -9nv debian/rsbackup/usr/share/doc/rsbackup/*
	cp doc/*.html doc/*.css debian/rsbackup/usr/share/doc/rsbackup/.
	cp debian/copyright debian/rsbackup/usr/share/doc/rsbackup/.
	$(INSTALL) -m 755 src/rsbackup debian/rsbackup/usr/bin/rsbackup
	$(MAKE) -C tools install DESTDIR=$(shell pwd)/debian/rsbackup
	$(INSTALL) -m 644 doc/rsbackup.1 \
			doc/rsbackup.cron.1 \
			doc/rsbackup-mount.1 \
			doc/rsbackup-snapshot-hook.1 \
		debian/rsbackup/usr/share/man/man1/
	$(INSTALL) -m 644 doc/rsbackup.5 debian/rsbackup/usr/share/man/man5/
	strip --remove-section=.comment debian/rsbackup/usr/bin/rsbackup
	gzip -9nv debian/rsbackup/usr/share/man/man*/*
	dpkg-shlibdeps -Tdebian/substvars.rsbackup \
		debian/rsbackup/usr/bin/*
	cd debian/rsbackup && \
	  find -name DEBIAN -prune -o -type f -print \
	    | sed 's/^\.\///' \
			| sort | xargs md5sum > DEBIAN/md5sums
	dpkg-gencontrol -isp -prsbackup -Pdebian/rsbackup \
		-Tdebian/substvars.rsbackup
	chown -R root:root debian/rsbackup
	chmod -R g-ws debian/rsbackup
	find debian/rsbackup -newermt "@$$SOURCE_DATE_EPOCH" -print0 | \
		xargs -0r touch --no-dereference --date="@$$SOURCE_DATE_EPOCH"
	dpkg --build debian/rsbackup ..

clean-rsbackup-graph:
	rm -rf debian/rsbackup-graph

binary-rsbackup-graph: build
	rm -rf debian/rsbackup-graph
	mkdir -p debian/rsbackup-graph/DEBIAN
	mkdir -p debian/rsbackup-graph/usr/bin
	mkdir -p debian/rsbackup-graph/usr/share/man/man1
	mkdir -p debian/rsbackup-graph/usr/share/doc
	ln -s rsbackup \
		debian/rsbackup-graph/usr/share/doc/rsbackup-graph
	$(INSTALL) -m 755 src/rsbackup-graph \
		debian/rsbackup-graph/usr/bin/rsbackup-graph
	$(INSTALL) -m 644 doc/rsbackup-graph.1 \
		debian/rsbackup-graph/usr/share/man/man1/
	strip --remove-section=.comment \
		debian/rsbackup-graph/usr/bin/rsbackup-graph
	gzip -9nv debian/rsbackup-graph/usr/share/man/man*/*
	dpkg-shlibdeps -Tdebian/substvars.rsbackup-graph \
		debian/rsbackup-graph/usr/bin/*
	cd debian/rsbackup-graph && \
	  find -name DEBIAN -prune -o -type f -print \
	    | sed 's/^\.\///' \
			| xargs md5sum > DEBIAN/md5sums
	dpkg-gencontrol -isp -prsbackup-graph -Pdebian/rsbackup-graph \
		-Tdebian/substvars.rsbackup-graph
	chown -R root:root debian/rsbackup-graph
	chmod -R g-ws debian/rsbackup-graph
	find debian/rsbackup-graph -newermt "@$$SOURCE_DATE_EPOCH" -print0 | \
		xargs -0r touch --no-dereference --date="@$$SOURCE_DATE_EPOCH"
	dpkg --build debian/rsbackup-graph ..

binary: binary-arch binary-indep
binary-arch: binary-rsbackup binary-rsbackup-graph
binary-indep:

clean: clean-rsbackup clean-rsbackup-graph
	rm -f debian/files
	rm -f debian/debhelper.log
	[ ! -f Makefile ] || $(MAKE) distclean

distcheck:
	$(MAKE) dist
	gzip -cd rsbackup-${VERSION}.tar.gz | tar xf -
	debian/rules -C rsbackup-${VERSION} build
	fakeroot debian/rules -C rsbackup-${VERSION} binary
	rm -rf rsbackup-${VERSION}
	ls -l rsbackup_${VERSION}_all.deb rsbackup-${VERSION}.tar.gz