chiark / gitweb /
Update to GPLv3+; update copyright notices everywhere.
[userv-utils.git] / debian / rules
1 #!/usr/bin/make -f
2
3 # Copyright 1996-2013 Ian Jackson <ijackson@chiark.greenend.org.uk>
4 # Copyright 1998 David Damerell <damerell@chiark.greenend.org.uk>
5 # Copyright 1999,2003
6 #    Chancellor Masters and Scholars of the University of Cambridge
7 # Copyright 2010 Tony Finch <fanf@dotat.at>
8 #
9 # This is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 3 of the License, or
12 # (at your option) any later version.
13 #
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with userv-utils; if not, see http://www.gnu.org/licenses/.
21
22 subdirs_build=  ipif www-cgi git-daemon
23 subdirs_nobuild=dyndns groupmanage misc
24 package=        userv-utils
25 packages_indep= userv-dyndns userv-groupmanage userv-misc userv-git-daemon
26 packages_arch=  userv-ipif userv-cgi
27 packages=       $(packages_indep) $(packages_arch)
28
29 cwd=    $(shell pwd)
30 d=      $(cwd)/debian
31 t=      $d/tmp
32
33 build:
34         $(checkdir)
35         set -e; for s in $(subdirs_build); do $(MAKE) -C $$s all; done
36         touch build
37
38 clean:
39         $(checkdir)
40         rm -f build
41         set -e; for s in $(subdirs_build); do \
42                 $(MAKE) -C $$s -i distclean || \
43                 $(MAKE) -C $$s -f Makefile.in distclean; \
44         done
45         rm -rf *~ debian/tmp debian/*~ debian/files* debian/substvars*
46
47 binary-prep:
48         $(checkdir)
49         rm -rf debian/tmp*
50         #
51         #
52         set -e; for s in $(subdirs_build) $(subdirs_nobuild); do \
53                 $(MAKE) -C $$s install install-docs install-examples \
54                         prefix=$t/userv-$$s/usr \
55                         etcdir=$t/userv-$$s/etc \
56                         vardir=$t/userv-$$s/var \
57                         gituser=root; \
58         done
59         #
60         mv debian/tmp/userv-www-cgi debian/tmp/userv-cgi
61         mv debian/tmp/userv-groupmanage/usr/share/doc/groupmanage \
62            debian/tmp/userv-groupmanage/usr/share/doc/userv-groupmanage
63         #
64         set -e; for p in $(packages); do \
65                 install -d $t/$$p/DEBIAN $t/$$p/usr/share/doc/$$p; \
66                 cp debian/copyright debian/changelog \
67                         $t/$$p/usr/share/doc/$$p/; \
68                 ln -s changelog.gz \
69                         $t/$$p/usr/share/doc/$$p/changelog.Debian.gz; \
70                 gzip -9v $t/$$p/usr/share/doc/$$p/changelog; \
71                 done
72         #
73         rename 's/\.example$$//' $t/userv-ipif/etc/userv/vpn/*.example \
74                 $t/userv-dyndns/etc/userv/dyndns-service-users.example \
75                 $t/userv-groupmanage/etc/groupmanage.conf.example
76         rename 's/\.distrib$$//' $t/*/etc/userv/services.d/*.distrib
77         rename 's/$$/\.disabled/' $t/userv-misc/etc/userv/services.d/mailq
78         set -e; for p in $(packages); do \
79                 cd $t/$$p; \
80                 test ! -d etc || \
81                   find etc -type f -exec printf '/%s\n' '{}' ';' \
82                         >>DEBIAN/conffiles; \
83         done
84         #
85         mv $t/userv-misc/usr/bin/mailq $t/userv-misc/usr/bin/mailq.userv
86         #
87 #       gzip -9f $t/*/usr/share/man/man*/*
88
89 binary-hook-userv-misc:
90 binary-hook-userv-groupmanage:
91 binary-hook-userv-cgi:
92 binary-hook-userv-dyndns:
93 binary-hook-userv-ipif:
94 binary-hook-userv-git-daemon:
95
96 binary-one:
97         set -e; for f in preinst postinst prerm postrm conffiles; do \
98                 test -f debian/$p/$$f || continue; \
99                 cp debian/$p/$$f $t/$p/DEBIAN/$$f; \
100                 chmod u=rwX,go=rX $t/$p/DEBIAN/$$f; \
101         done
102         dpkg-gencontrol -p$p -P$t/$p -Tdebian/sv-$p
103         chown -R root.root debian/tmp
104         chmod -R g-ws debian/tmp
105         debian/rules binary-hook-$p
106         dpkg --build $t/$p ..
107
108 binary-indep:   checkroot build binary-prep
109         set -e; for p in $(packages_indep); do \
110                 debian/rules binary-one p=$$p; done
111
112 binary-arch:    checkroot build binary-prep
113         $(checkdir)
114         dpkg-shlibdeps -Tdebian/sv-userv-ipif \
115                 $t/userv-ipif/usr/bin/udptunnel-forwarder \
116                 $t/userv-ipif/usr/lib/userv/ipif
117         dpkg-shlibdeps -Tdebian/sv-userv-cgi \
118                 $t/userv-cgi/usr/lib/userv/cgi/target \
119                 $t/userv-cgi/usr/lib/userv/cgi/cgi/ucgi
120         set -e; for p in $(packages_arch); \
121                 do debian/rules binary-one p=$$p; done
122
123 define checkdir
124         test -f ipif/service.c
125 endef
126
127 # Below here is fairly generic really
128
129 binary:         binary-indep binary-arch
130
131 source diff:
132         @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
133
134 checkroot:
135         $(checkdir)
136         test root = "`whoami`"
137
138 .PHONY: binary binary-arch binary-indep clean checkroot