4 # Uncomment this to turn on verbose mode.
7 # If set to a true value then MakeMaker's prompt function will
8 # always return the default without waiting for user input.
9 #export PERL_MM_USE_DEFAULT=1
12 #PACKAGE = $(shell dh_listpackages)
14 TMP = $(CURDIR)/debian/$(PACKAGE)
15 #DBC_SCRIPTS = $(TMP)/usr/share/dbconfig-common/scripts/freeside
17 ##this is gotten from dbconfig-common
21 DATASOURCE = DBI:${DB_TYPE}:dbname=freeside
23 #no chance, it doesn't get backslash-interpolted now...
24 ##DEBVERSION = `head -1 debian/changelog | cut -d')' -f1 | cut -c11-`
25 #DEBVERSION = 1.7.3~rc2-1
26 #export VERSION = $(DEBVERSION) (Debian)
28 #export FREESIDE_CONF = /etc/freeside
29 #export FREESIDE_LOG = /var/log/freeside
30 #export FREESIDE_LOCK = /var/lock/freeside
31 #export FREESIDE_CACHE = $(TMP)/var/cache/freeside
32 #FREESIDE_CACHE = $(TMP)/var/cache/freeside
35 #export FREESIDE_EXPORT = /var/spool/freeside
37 export FREESIDE_CONF = $(TMP)/usr/local/etc/freeside
38 export FREESIDE_LOG = $(TMP)/usr/local/etc/freeside
39 export FREESIDE_LOCK = $(TMP)/usr/local/etc/freeside
40 export FREESIDE_CACHE = $(TMP)/usr/local/etc/freeside
41 export FREESIDE_EXPORT = $(TMP)/usr/local/etc/freeside
43 export DIST_CONF = ${FREESIDE_CONF}/default_conf
46 #export MASON_HANDLER = /usr/share/freeside/handler.pl
47 export MASON_HANDLER=$(TMP)-webui/usr/local/etc/freeside/handler.pl
49 export APACHE_VERSION := $(shell /usr/sbin/apache2 -v | grep -q '\/2\.4\.' && echo '2.4' || echo '2')
50 export APACHE_DOCUMENT_ROOT := $(shell [ ${APACHE_VERSION} = '2.4' ] && echo '/var/www/html' || echo '/var/www')
51 export FREESIDE_DOCUMENT_ROOT = $(TMP)$(APACHE_DOCUMENT_ROOT)/freeside
52 export INIT_FILE = $(TMP).init
53 export INIT_INSTALL = /bin/true
54 export HTTPD_RESTART = /bin/true
55 export APACHE_CONF := $(shell [ ${APACHE_VERSION} = '2.4' ] && echo "$(TMP)-webui/etc/apache2/conf-available" || echo "$(TMP)-webui/etc/apache2/conf.d")
56 export TORRUS_CONF := $(shell [ ${APACHE_VERSION} = '2.4' ] && echo "$(TMP)-torrus/etc/apache2/conf-available" || echo "$(TMP)-torrus/etc/apache2/conf.d")
57 export FREESIDE_RESTART = /bin/true
60 export INSTALLGROUP = adm
62 export SELFSERVICE_MACHINES =
64 #prompt ? XXX these are runtime, not buildtime :/
65 export RT_DOMAIN = freeside.biz
66 export RT_TIMEZONE = US/Eastern
67 export HOSTNAME = localhost
68 export FREESIDE_URL = http://$(HOSTNAME)/freeside/
70 #specific to deb pkg, for purposes of saving off a permanent copy of default
71 #config for postinst and that sort of thing
72 #export DIST_CONF = /usr/share/freeside/default_conf
74 #XXX yuck. proper RT layout is entirely necessary
75 #this seems to infect way to much of RT with the build location, requiring
76 # a kludge to hack it out afterwords. look into using fakeroot (didn't
77 # realize it would need to be explicit argh)
78 # (but leaving it for now, otherwise can't get RT to put files where we need em)
79 export RT_PATH = $(TMP)/opt/rt3
81 export TEXMF_PATH = $(TMP)-lib/usr/local/share/texmf/tex/latex
83 # This has to be exported to make some magic below work.
86 configure: configure-stamp
89 # Add here commands to configure the package.
97 # Add commands to compile the package here
99 ( cd FS/ && $(PERL) Makefile.PL INSTALLDIRS=vendor && $(MAKE) )
102 ( cd fs_selfservice/FS-SelfService/ && $(PERL) Makefile.PL && $(MAKE) )
104 #install this for freeside-setup
105 install -d $(DIST_CONF)
106 install `ls -d conf/[a-z]* | grep -v CVS | grep -v '^conf/registries'` $(DIST_CONF)
115 dh_clean build-stamp install-stamp
117 # Add here commands to clean up after the build process.
119 #|| true #XXX freeside clean target fucked
123 install: install-stamp
124 install-stamp: build-stamp
130 # Add here commands to install package into
131 # debian/<package>-whatever.
133 install -d $(FREESIDE_DOCUMENT_ROOT)
134 install -d $(TMP)-webui/usr/local/etc/freeside/
135 install -d $(TMP)-webui/etc/insserv/overrides/
136 install -d $(TMP)/usr/local/etc/freeside/
137 install -d $(FREESIDE_CACHE)/masondata #MASONDATA
138 # install -d $(TMP)-lib/usr/bin
140 ( cd FS/ && $(MAKE) -e DESTDIR=${TMP}-lib install)
142 # Install configuration files
143 install -d -o freeside ${FREESIDE_CONF}
145 touch ${FREESIDE_CONF}/secrets
146 chown freeside ${FREESIDE_CONF}/secrets
147 chmod 600 ${FREESIDE_CONF}/secrets
149 /bin/echo -e "${DATASOURCE}\n${DB_USER}\n${DB_PASSWORD}" >${FREESIDE_CONF}/secrets
150 chmod 600 ${FREESIDE_CONF}/secrets
151 chown freeside ${FREESIDE_CONF}/secrets
153 mkdir "${FREESIDE_CACHE}/counters.${DATASOURCE}"
154 chown freeside "${FREESIDE_CACHE}/counters.${DATASOURCE}"
156 mkdir "${FREESIDE_CACHE}/cache.${DATASOURCE}"
157 chown freeside "${FREESIDE_CACHE}/cache.${DATASOURCE}"
159 mkdir "${FREESIDE_EXPORT}/export.${DATASOURCE}"
160 chown freeside "${FREESIDE_EXPORT}/export.${DATASOURCE}"
162 #install this for freeside-setup
163 install -d $(DIST_CONF)
164 #install conf/[a-z]* $(DEFAULT_CONF)
166 install `ls -d conf/[a-z]* | grep -v CVS | grep -v '^conf/registries'` $(DIST_CONF)
169 $(MAKE) -e DESTDIR=$(TMP)-webui install-docs
172 install -d ${TEXMF_PATH}
173 install -o freeside -m 444 etc/*.sty ${TEXMF_PATH}
175 # Create Apache configurations
176 install -d $(APACHE_CONF)
177 $(MAKE) -e DESTDIR=$(APACHE_CONF) install-apache
178 install -o root -m 755 init.d/insserv-override-apache2 $(TMP)-webui/etc/insserv/overrides/apache2
180 #Hack the build dir out of apache config
183 s'${TMP}(-webui)?''g;\
187 $(MAKE) -e DESTDIR=$(TMP) install-init
189 #hack the build dir out of Freeside too. oh yeah, sucky.
191 s'${TMP}(-webui)?''g;\
192 " ${TMP}/usr/local/etc/freeside/handler.pl \
193 ${TMP}/usr/share/perl5/FS/* \
194 ${TMP}/usr/share/perl5/FS/*/* \
197 #hack the build dur out of lib
200 s'${TMP}(-webui)?''g;\
201 " ${TMP}/usr/local/etc/freeside/handler.pl \
202 ${TMP}-lib/usr/share/perl5/FS/*.pm \
203 ${TMP}-lib/usr/share/perl5/FS/*/*.pm
205 #hack the build dir out of Freeside binaries
209 " ${TMP}-lib/usr/bin/* \
210 ${TMP}-webui/usr/local/etc/freeside/handler.pl
214 ( cd fs_selfservice/FS-SelfService/; $(MAKE) -e DESTDIR=${TMP}-selfservice-lib install )
215 install -d -o freeside -g freeside ${TMP}-selfservice-lib/usr/local/freeside
216 touch ${TMP}-selfservice-lib/usr/local/freeside/selfservice_socket
217 chown -R freeside ${TMP}-selfservice-lib/usr/local/freeside
218 chmod 600 ${TMP}-selfservice-lib/usr/local/freeside/selfservice_socket
220 install -d -o freeside -g freeside ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/
221 cp -R fs_selfservice/FS-SelfService/cgi ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST
222 chown freeside.freeside ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*.cgi ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*/*.cgi;
223 chmod 755 ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*.cgi ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*/*.cgi
227 install -d ${TMP}-ng-selfservice$(APACHE_DOCUMENT_ROOT)/
228 cp -R ng_selfservice ${TMP}-ng-selfservice$(APACHE_DOCUMENT_ROOT)/ng_selfservice-DIST/
232 install -d ${TORRUS_CONF}
233 install -o root -m 755 htetc/freeside-torrus.conf $(TORRUS_CONF)/
236 torrus_user=freeside var_user=freeside var_group=freeside ./configure; \
237 $(MAKE) -e DESTDIR=${TMP}-torrus/; \
238 $(MAKE) -e DESTDIR=${TMP}-torrus/ install; \
240 s'%%%FREESIDE_URL%%%'${FREESIDE_URL}'g;\
241 " ${TMP}-torrus/usr/local/etc/torrus/conf/torrus-siteconfig.pl )
246 cp config.layout.in config.layout; \
248 s'%%%FREESIDE_DOCUMENT_ROOT%%%'${FREESIDE_DOCUMENT_ROOT}'g;\
249 s'%%%MASONDATA%%%'${FREESIDE_CACHE}/masondata'g;\
251 ./configure --prefix=${RT_PATH} \
252 --enable-layout=Freeside \
254 --with-db-dba=freeside \
255 --with-db-database=freeside \
256 --with-db-rt-user=freeside \
257 --with-db-rt-pass="" \
258 --with-web-user=freeside \
259 --with-web-group=freeside \
260 --with-rt-group=freeside \
261 --with-web-handler=modperl2 )
264 #$(MAKE) -e DESTDIR=${TMP}-lib create-rt
265 install -d $(RT_PATH)
266 install -d $(RT_PATH)/share
268 ( cd rt; $(MAKE) config-install dirs files-install fixperms instruct )
269 cp -r ${RT_PATH}/share/static/images ${FREESIDE_DOCUMENT_ROOT}/rt/NoAuth/
271 ##hack the build dir out of RT. yeah, sucky.
274 s'${TMP}(-webui)''g;\
276 " ${TMP}/opt/rt3/etc/*.pm \
277 ${TMP}/opt/rt3/lib/*.pm \
278 ${TMP}/opt/rt3/lib/RT/*.pm \
279 ${TMP}/opt/rt3/etc/upgrade/* \
280 ${TMP}/opt/rt3/sbin/* \
281 ${TMP}/opt/rt3/bin/* \
283 # Default RT Settings
285 s'%%%RT_DOMAIN%%%'${RT_DOMAIN}'g;\
286 s'%%%RT_TIMEZONE%%%'${RT_TIMEZONE}'g;\
287 s'%%%FREESIDE_URL%%%'${FREESIDE_URL}'g;\
288 " ${RT_PATH}/etc/RT_SiteConfig.pm
295 # We have nothing to do here for an architecture-independent package
297 binary-indep: build install
300 dh_installdeb install
301 dh_installdocs #freeside.docs README AGPL
302 dh_installexamples eg/*
305 # dh_installlogrotate
306 dh_installinit --no-start
313 dh_fixperms -X/var/www/selfservice-DIST -X/usr/local/freeside
318 binary: binary-indep binary-arch
319 .PHONY: build clean binary-indep binary-arch binary install