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
|
#! /usr/bin/make -f
#
# debian/rules file for freeradius
#
SHELL =/bin/bash
package = freeradius
debiandir = $(shell pwd)/debian
freeradius_dir = $(debiandir)/$(package)
mandir = /usr/share/man
libdir = /usr/lib/$(package)
logdir = /var/log/$(package)
pkgdocdir = /usr/share/doc/$(package)
raddbdir = /etc/$(package)
export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
export CFLAGS = -Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
# Autoconf 2.13 arch support
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
confflags += $(DEB_HOST_GNU_TYPE)
else
confflags += --host $(DEB_BUILD_GNU_TYPE) --build $(DEB_HOST_GNU_TYPE)
endif
build-simple stamp-build:
dh_testdir
# dh_testroot
./configure \
$(confflags) \
--prefix=/usr \
--exec-prefix=/usr \
--mandir=$(mandir) \
--sysconfdir=/etc \
--libdir=$(libdir) \
--datadir=/usr/share \
--localstatedir=/var \
--with-raddbdir=$(raddbdir) \
--with-logdir=/var/log/$(package) \
--with-thread-pool --with-system-libtool \
--enable-ltdl-install=no --enable-strict-dependencies \
--without-rlm_eap_peap \
--without-rlm_eap_tls \
--without-rlm_eap_ttls \
--without-rlm_sql_postgresql \
--without-snmp \
--with-udpfromto --with-edir \
--enable-developer
# Modify Make.inc for Debian...
TEMPFILE=`mktemp /tmp/radmake-XXXXXX`; \
cp Make.inc $$TEMPFILE; \
cat $$TEMPFILE \
| sed -e 's!${localstatedir}/run/radiusd!${localstatedir}/run/freeradius!' \
> Make.inc; \
rm $$TEMPFILE
make
touch stamp-build
build: autotools build-simple
binary-indep: stamp-build
binary-arch: stamp-build
dh_testroot
dh_clean
dh_installdirs
make install R=$(freeradius_dir)
# rename radius binary to play nicely with others
mv $(freeradius_dir)/usr/sbin/radiusd $(freeradius_dir)/usr/sbin/$(package)
# clean up install cruft. $$&@!%
rm $(freeradius_dir)/usr/sbin/rc.radiusd
test ! -d $(freeradius_dir)/etc/raddb || rmdir $(freeradius_dir)/etc/raddb
test ! -d $(freeradius_dir)/var/log/radius/radacct || rmdir $(freeradius_dir)/var/log/radius/radacct
test ! -d $(freeradius_dir)/var/log/radius || rmdir $(freeradius_dir)/var/log/radius
# Yuck! the makefile in doc/ does this.
rm -rf $(freeradius_dir)/usr/share/doc/freeradius-1.0.2
# split out inconvenient/controversal modules to other places
for modname in krb5 ldap mysql iodbc; do \
mkdir -p $(debiandir)/$(package)-$${modname}/$(libdir); \
mv $(freeradius_dir)/$(libdir)/rlm*_$${modname}* $(debiandir)/$(package)-$${modname}/$(libdir)/; \
done
# man pages & docs
install -g root -m 644 CREDITS $(freeradius_dir)/$(pkgdocdir)/credits
dh_installdocs -XChangeLog -X00-OLD -XCVS -XMakefile doc/*
dh_installexamples -XCVS `find src/modules/rlm_sql/drivers -type f -name \*.sql`
dh_installchangelogs doc/ChangeLog
#Rename manpage to go with binary
mv $(freeradius_dir)/$(mandir)/man8/radiusd.8 $(freeradius_dir)/$(mandir)/man8/$(package).8
# SNMP mibs
install -g root -m 644 mibs/*.txt $(freeradius_dir)/usr/share/snmp/mibs
# supporting programs
TEMPFILE=`mktemp /tmp/radconf-XXXXXX`; \
cp $(freeradius_dir)/$(raddbdir)/radiusd.conf $$TEMPFILE; \
cat $$TEMPFILE \
| sed -e 's/ / /g' \
-e '/^ example {/,/^ }/s/^/#/' \
-e 's/# shadow = /shadow = /' \
-e 's/^#\?group = nobody/group = freerad/' \
-e 's/^#\?user = nobody/user = freerad/' \
-e 's!/run/radiusd!/run/freeradius!' \
-e 's!radiusd.pid!freeradius.pid!' \
> $(freeradius_dir)/$(raddbdir)/radiusd.conf; \
rm $$TEMPFILE
# Dialup-Admin
dh_installdocs -p freeradius-dialupadmin dialup_admin/README dialup_admin/doc/*
dh_installchangelogs -p freeradius-dialupadmin dialup_admin/Changelog
dh_installexamples -p freeradius-dialupadmin dialup_admin/bin/dialup_admin.cron
dh_install -p freeradius-dialupadmin -XCVS dialup_admin/conf/* etc/freeradius-dialupadmin/
dh_install -p freeradius-dialupadmin -XCVS -XChangelog -XREADME -Xconf/ -Xdoc/ -Xdialup_admin.cron dialup_admin/* usr/share/freeradius-dialupadmin/
dh_link -p freeradius-dialupadmin etc/freeradius-dialupadmin/ usr/share/freeradius-dialupadmin/conf
dh_perl -p freeradius-dialupadmin dialup_admin/bin/*
# Fix the crontab example to point to the right directory
cat $(freeradius_dir)-dialupadmin/usr/share/doc/freeradius-dialupadmin/examples/dialup_admin.cron \
| sed -e 's#/usr/local/dialup_admin#/usr/share/freeradius-dialupadmin#' \
> $(freeradius_dir)-dialupadmin/usr/share/doc/freeradius-dialupadmin/examples/freeradius-dialupadmin.cron
rm $(freeradius_dir)-dialupadmin/usr/share/doc/freeradius-dialupadmin/examples/dialup_admin.cron
TEMPFILE=`mktemp /tmp/dialupconf-XXXXXX`; \
cp $(freeradius_dir)-dialupadmin/etc/freeradius-dialupadmin/admin.conf $$TEMPFILE; \
cat $$TEMPFILE \
| sed -e 's#/usr/local/dialup_admin#/usr/share/freeradius-dialupadmin#' \
-e 's#/usr/local/radiusd#/usr#' \
-e 's#general_raddb_dir: %{general_radiusd_base_dir}/etc/raddb#general_raddb_dir: /etc/freeradius#' \
-e 's#general_clients_conf: /usr/local/etc/raddb/clients.conf#general_clients_conf: /etc/freeradius/clients.conf#' \
-e 's#%{general_base_dir}/conf#/etc/freeradius-dialupadmin#' \
-e 's#/usr/local/bin#/usr/bin#' \
> $(freeradius_dir)-dialupadmin/etc/freeradius-dialupadmin/admin.conf; \
rm $$TEMPFILE;
TEMPFILE=`mktemp /tmp/dialuphelp-XXXXXX`; \
cp $(freeradius_dir)-dialupadmin/usr/share/freeradius-dialupadmin/htdocs/help/help.php3 $$TEMPFILE; \
cat $$TEMPFILE \
| sed -e 's#readfile#readgzfile#' \
-e 's#../../README#/usr/share/doc/freeradius-dialupadmin/README.gz#' \
-e 's#../../doc/HOWTO#/usr/share/doc/freeradius-dialupadmin/HOWTO.gz#' \
-e 's#../../doc/FAQ#/usr/share/doc/freeradius-dialupadmin/FAQ#' \
> $(freeradius_dir)-dialupadmin/usr/share/freeradius-dialupadmin/htdocs/help/help.php3; \
rm $$TEMPFILE;
for binfile in $(freeradius_dir)-dialupadmin/usr/share/freeradius-dialupadmin/bin/*; do \
TEMPFILE=`mktemp /tmp/dialupbin-XXXXXX`; \
cp $$binfile $$TEMPFILE; \
cat $$TEMPFILE \
| sed -e 's#/usr/local/bin/#/usr/bin/#' \
-e 's#/usr/local/dialup_admin/conf/#/etc/freeradius-dialupadmin/#' \
> $$binfile; \
rm $$TEMPFILE; \
done
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
dh_strip
endif
dh_installlogrotate
dh_installinit -n
dh_installpam --name=radiusd
# We don't need ldconfig. None of our libraries go in it's paths
dh_makeshlibs -n
dh_shlibdeps
dh_installdeb
dh_compress
dh_fixperms
dh_md5sums
dh_gencontrol
dh_builddeb
clean:
dh_testdir
rm -f stamp-build debian/{files,substvars} debian/*.debhelper libltdl/stamp-h1
[ -f Make.inc ] && make distclean || true
dh_clean
rm -rf $(freeradius_dir) $(debiandir)/$(package)-{krb5,ldap,mysql,iodbc}{,.substvars}
[ -f config.sub.dist ] && rm config.sub && mv config.sub.dist config.sub || true
[ -f config.guess.dist ] && rm config.guess && mv config.guess.dist config.guess || true
binary: binary-indep binary-arch
# The autotools target adds forced build-time dependencies on
# autotools-dev (for /usr/share/misc/config.*)
# It's also a .PHONY make target.
autotools:
if [ -e config.sub.dist ]; then rm config.sub; else mv config.sub config.sub.dist; fi
if [ -e config.guess.dist ]; then rm config.guess; else mv config.guess config.guess.dist; fi
ln -s /usr/share/misc/config.sub config.sub
ln -s /usr/share/misc/config.guess config.guess
# for the maintainer only
sanitycheck:
@echo -n "sanity: checking for overzealous undocumented file... "
@find man/ -type f |grep \. |sed -e 's%man/man./%%' | { \
while read manpage; do \
grep $$manpage debian/$(package).undocumented | read filename && echo -n $$filename; \
done; \
} || true
@test -n $$filename
@echo good.
.PHONY: binary binary-arch binary-indep clean sanitycheck autotools
|