Move pidfile to /var/run/freeradius.pid, patch from Paul Hampson
[freeradius.git] / debian / rules
1 #! /usr/bin/make -f
2 #
3 #       debian/rules file for freeradius
4 #
5
6 SHELL           =/bin/bash
7
8 package         = freeradius
9 debiandir       = $(shell pwd)/debian
10 freeradius_dir  = $(debiandir)/$(package)
11
12 mandir          = /usr/share/man
13 libdir          = /usr/lib/$(package)
14 logdir          = /var/log/$(package)
15 pkgdocdir       = /usr/share/doc/$(package)
16 raddbdir        = /etc/$(package)
17
18 build:
19 # Builds the binary package.
20         dh_testdir
21         # dh_testroot
22         ./configure \
23                 --prefix=/usr \
24                 --exec-prefix=/usr \
25                 --mandir=$(mandir) \
26                 --sysconfdir=/etc \
27                 --libdir=$(libdir) \
28                 --datadir=/usr/share \
29                 --localstatedir=/var \
30                 --with-raddbdir=$(raddbdir) \
31                 --with-logdir=/var/log/$(package) \
32                 --with-thread-pool --with-system-libtool \
33                 --enable-ltdl-install=no --enable-strict-dependencies
34         
35         # Modify Make.inc for Debian...
36         TEMPFILE=`mktemp /tmp/radmake-XXXXXX`; \
37         cp Make.inc $$TEMPFILE; \
38         cat $$TEMPFILE \
39                 | sed -e 's!${localstatedir}/run/radiusd!${localstatedir}/run/freeradius!' \
40                         > Make.inc; \
41         rm $$TEMPFILE
42 #               This is currently a NOP
43 #               | sed -e 's!$(datadir)/freeradius!$(datadir)/freeradius!' \
44
45         make
46         touch build
47
48 # Architecture independant files.
49 binary-indep: build
50
51 # Make a binary package (.deb file)
52 binary-arch: build
53         dh_clean
54         dh_installdirs
55         make install R=$(freeradius_dir)
56
57         # rename radius binary to play nicely with others
58         mv $(freeradius_dir)/usr/sbin/radiusd $(freeradius_dir)/usr/sbin/$(package)
59
60         # clean up install cruft.  $$&@!%
61         rm $(freeradius_dir)/usr/sbin/rc.radiusd
62         test ! -d $(freeradius_dir)/etc/raddb || rmdir $(freeradius_dir)/etc/raddb
63         test ! -d $(freeradius_dir)/var/log/radius/radacct || rmdir $(freeradius_dir)/var/log/radius/radacct
64         test ! -d $(freeradius_dir)/var/log/radius || rmdir $(freeradius_dir)/var/log/radius
65 #       Yuck! the makefile in doc/ does this.
66         rm -rf $(freeradius_dir)/usr/share/doc/freeradius-0.9-pre
67
68         # split out inconvenient/controversal modules to other places
69         for modname in krb5 ldap mysql postgresql; do \
70                 mkdir -p $(debiandir)/$(package)-$${modname}/$(libdir); \
71                 mv $(freeradius_dir)/$(libdir)/rlm*_$${modname}* $(debiandir)/$(package)-$${modname}/$(libdir)/; \
72         done
73
74         # man pages & docs
75         install -g root -m 644 CREDITS $(freeradius_dir)/$(pkgdocdir)/credits
76         dh_installdocs -XChangeLog -X00-OLD -XCVS -XMakefile doc/*
77         dh_installdocs `find src/modules/rlm_sql/drivers -type f -name \*.sql`
78         dh_installchangelogs doc/ChangeLog
79
80         # supporting programs
81         install -g root -m 755 $(debiandir)/initscript $(freeradius_dir)/etc/init.d/$(package)
82         TEMPFILE=`mktemp /tmp/radconf-XXXXXX`; \
83         cp $(freeradius_dir)/$(raddbdir)/radiusd.conf $$TEMPFILE; \
84         cat $$TEMPFILE \
85                 | sed -e 's/        /   /g' \
86                 | sed -e '/^    example {/,/^   }/s/^/#/' \
87                 | sed -e 's/#   shadow = /shadow = /' \
88                 | sed -e 's/^#\?group = nobody/group = freerad/' \
89                 | sed -e 's/^#\?user = nobody/user = freerad/' \
90                 | sed -e 's!/run/radiusd!/run/freeradius!' \
91                 | sed -e 's!radiusd.pid!freeradius.pid!' \
92                         > $(freeradius_dir)/$(raddbdir)/radiusd.conf; \
93         rm $$TEMPFILE
94
95         dh_strip
96         # We don't need ldconfig. None of our libraries go in it's paths
97         dh_makeshlibs -n
98         dh_shlibdeps
99         dh_installdeb
100         dh_compress
101         dh_fixperms
102         dh_md5sums
103         dh_gencontrol
104         dh_builddeb
105
106 clean:  
107         rm -f build debian/{files,substvars} debian/*.debhelper
108         [ -f Make.inc ] && make distclean || true
109         dh_clean
110         rm -rf $(freeradius_dir) $(debiandir)/$(package)-{ldap,postgresql,mysql,krb5}{,.substvars}
111
112 binary: binary-indep binary-arch
113
114 # for the maintainer only
115 sanitycheck:
116         @echo -n "sanity: checking for overzealous undocumented file... "
117         @find man/ -type f |grep \. |sed -e 's%man/man./%%' | { \
118                 while read manpage; do \
119                         grep $$manpage debian/$(package).undocumented | read filename && echo -n $$filename; \
120                 done; \
121         } || true
122         @test -n $$filename
123         @echo good.
124
125 .PHONY: binary binary-arch binary-indep clean sanitycheck