#!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # If set to a true value then MakeMaker's prompt function will # always return the default without waiting for user input. #export PERL_MM_USE_DEFAULT=1 PERL ?= /usr/bin/perl #PACKAGE = $(shell dh_listpackages) PACKAGE = freeside TMP = $(CURDIR)/debian/$(PACKAGE) #DBC_SCRIPTS = $(TMP)/usr/share/dbconfig-common/scripts/freeside ##this is gotten from dbconfig-common DB_TYPE = Pg #Data source DATASOURCE = DBI:${DB_TYPE}:dbname=freeside #no chance, it doesn't get backslash-interpolted now... ##DEBVERSION = `head -1 debian/changelog | cut -d')' -f1 | cut -c11-` #DEBVERSION = 1.7.3~rc2-1 #export VERSION = $(DEBVERSION) (Debian) #export FREESIDE_CONF = /etc/freeside #export FREESIDE_LOG = /var/log/freeside #export FREESIDE_LOCK = /var/lock/freeside #export FREESIDE_CACHE = $(TMP)/var/cache/freeside #FREESIDE_CACHE = $(TMP)/var/cache/freeside #XXX huh? #export FREESIDE_EXPORT = /var/spool/freeside export FREESIDE_CONF = $(TMP)/usr/local/etc/freeside export FREESIDE_LOG = $(TMP)/usr/local/etc/freeside export FREESIDE_LOCK = $(TMP)/usr/local/etc/freeside export FREESIDE_CACHE = $(TMP)/usr/local/etc/freeside export FREESIDE_EXPORT = $(TMP)/usr/local/etc/freeside export DIST_CONF = ${FREESIDE_CONF}/default_conf #XXX own subdir? #export MASON_HANDLER = /usr/share/freeside/handler.pl export MASON_HANDLER=$(TMP)-webui/usr/local/etc/freeside/handler.pl export APACHE_VERSION := $(shell /usr/sbin/apache2 -v | grep -q '\/2\.4\.' && echo '2.4' || echo '2') export APACHE_DOCUMENT_ROOT := $(shell [ ${APACHE_VERSION} = '2.4' ] && echo '/var/www/html' || echo '/var/www') export FREESIDE_DOCUMENT_ROOT = $(TMP)-webui$(APACHE_DOCUMENT_ROOT)/freeside export INIT_FILE = $(TMP).init export INIT_INSTALL = /bin/true export HTTPD_RESTART = /bin/true export APACHE_CONF := $(shell [ ${APACHE_VERSION} = '2.4' ] && echo "$(TMP)-webui/etc/apache2/conf-available" || echo "$(TMP)-webui/etc/apache2/conf.d") export TORRUS_CONF := $(shell [ ${APACHE_VERSION} = '2.4' ] && echo "$(TMP)-torrus/etc/apache2/conf-available" || echo "$(TMP)-torrus/etc/apache2/conf.d") export FREESIDE_RESTART = /bin/true #XXX root? export INSTALLGROUP = adm export SELFSERVICE_MACHINES = #prompt ? XXX these are runtime, not buildtime :/ export RT_DOMAIN = freeside.biz export RT_TIMEZONE = US/Eastern export HOSTNAME = localhost export FREESIDE_URL = http://$(HOSTNAME)/freeside/ #specific to deb pkg, for purposes of saving off a permanent copy of default #config for postinst and that sort of thing #export DIST_CONF = /usr/share/freeside/default_conf #XXX yuck. proper RT layout is entirely necessary #this seems to infect way to much of RT with the build location, requiring # a kludge to hack it out afterwords. look into using fakeroot (didn't # realize it would need to be explicit argh) # (but leaving it for now, otherwise can't get RT to put files where we need em) export RT_PATH = $(TMP)-lib/opt/rt3 export TEXMF_PATH = $(TMP)-lib/usr/local/share/texmf/tex/latex # This has to be exported to make some magic below work. export DH_OPTIONS configure: configure-stamp configure-stamp: dh_testdir # Add here commands to configure the package. touch configure-stamp build: build-stamp build-stamp: dh_testdir # Add commands to compile the package here ( cd FS/ && $(PERL) Makefile.PL INSTALLDIRS=vendor && $(MAKE) ) $(MAKE) perl-modules ( cd fs_selfservice/FS-SelfService/ && $(PERL) Makefile.PL && $(MAKE) ) #install this for freeside-setup install -d $(DIST_CONF) install `ls -d conf/[a-z]* | grep -v CVS | grep -v '^conf/registries'` $(DIST_CONF) #TEST# touch $@ clean: dh_testdir dh_testroot dh_clean build-stamp install-stamp # Add here commands to clean up after the build process. $(MAKE) -e clean #|| true #XXX freeside clean target fucked dh_clean install: install-stamp install-stamp: build-stamp dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install package into # debian/-whatever. install -d $(FREESIDE_DOCUMENT_ROOT) install -d $(TMP)-webui/usr/local/etc/freeside/ install -d $(TMP)-webui/etc/insserv/overrides/ install -d $(TMP)/usr/local/etc/freeside/ # install -d $(TMP)-lib/usr/bin ( cd FS/ && $(MAKE) -e DESTDIR=${TMP}-lib install) # Install configuration files install -d -o freeside ${FREESIDE_CONF} touch ${FREESIDE_CONF}/secrets chown freeside ${FREESIDE_CONF}/secrets chmod 600 ${FREESIDE_CONF}/secrets /bin/echo -e "${DATASOURCE}\n${DB_USER}\n${DB_PASSWORD}" >${FREESIDE_CONF}/secrets chmod 600 ${FREESIDE_CONF}/secrets chown freeside ${FREESIDE_CONF}/secrets mkdir "${FREESIDE_CACHE}/counters.${DATASOURCE}" chown freeside "${FREESIDE_CACHE}/counters.${DATASOURCE}" mkdir "${FREESIDE_CACHE}/cache.${DATASOURCE}" chown freeside "${FREESIDE_CACHE}/cache.${DATASOURCE}" mkdir "${FREESIDE_EXPORT}/export.${DATASOURCE}" chown freeside "${FREESIDE_EXPORT}/export.${DATASOURCE}" #install this for freeside-setup install -d $(DIST_CONF) #install conf/[a-z]* $(DEFAULT_CONF) #CVS is not [a-z] install `ls -d conf/[a-z]* | grep -v CVS | grep -v '^conf/registries'` $(DIST_CONF) # Install interfaces $(MAKE) -e DESTDIR=$(TMP)-webui install-docs # Install tex install -d ${TEXMF_PATH} install -o freeside -m 444 etc/*.sty ${TEXMF_PATH} # Create Apache configurations install -d $(APACHE_CONF) $(MAKE) -e DESTDIR=$(APACHE_CONF) install-apache install -o root -m 755 init.d/insserv-override-apache2 $(TMP)-webui/etc/insserv/overrides/apache2 #Hack the build dir out of apache config perl -p -i -e "\ s'${TMP}(-webui)?''g;\ " $(APACHE_CONF)/* # Install init $(MAKE) -e DESTDIR=$(TMP) install-init #hack the build dir out of Freeside too. oh yeah, sucky. perl -p -i -e "\ s'${TMP}(-webui)?''g;\ " ${TMP}/usr/local/etc/freeside/handler.pl \ ${TMP}/usr/share/perl5/FS/* \ ${TMP}/usr/share/perl5/FS/*/* \ ${TMP}/usr/bin/* #hack the build dur out of lib perl -p -i -e "\ s'${TMP}-lib?''g;\ s'${TMP}(-webui)?''g;\ " ${TMP}/usr/local/etc/freeside/handler.pl \ ${TMP}-lib/usr/share/perl5/FS/*.pm \ ${TMP}-lib/usr/share/perl5/FS/*/*.pm #hack the build dir out of Freeside binaries perl -p -i -e "\ s'${TMP}?''g;\ " ${TMP}-lib/usr/bin/* \ ${TMP}-webui/usr/local/etc/freeside/handler.pl # Self-service ( cd fs_selfservice/FS-SelfService/; $(MAKE) -e DESTDIR=${TMP}-selfservice-lib install ) install -d -o freeside -g freeside ${TMP}-selfservice-lib/usr/local/freeside touch ${TMP}-selfservice-lib/usr/local/freeside/selfservice_socket chown -R freeside ${TMP}-selfservice-lib/usr/local/freeside chmod 600 ${TMP}-selfservice-lib/usr/local/freeside/selfservice_socket install -d -o freeside -g freeside ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/ cp -R fs_selfservice/FS-SelfService/cgi ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST chown freeside.freeside ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*.cgi ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*/*.cgi; chmod 755 ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*.cgi ${TMP}-selfservice-ui$(APACHE_DOCUMENT_ROOT)/selfservice-DIST/*/*.cgi # NG-selfservice install -d ${TMP}-ng-selfservice$(APACHE_DOCUMENT_ROOT)/ cp -R ng_selfservice ${TMP}-ng-selfservice$(APACHE_DOCUMENT_ROOT)/ng_selfservice-DIST/ # Torrus install -d ${TORRUS_CONF} install -o root -m 755 htetc/freeside-torrus.conf $(TORRUS_CONF)/ ( cd torrus; \ torrus_user=freeside var_user=freeside var_group=freeside ./configure; \ $(MAKE) -e DESTDIR=${TMP}-torrus/; \ $(MAKE) -e DESTDIR=${TMP}-torrus/ install; \ perl -p -i -e "\ s'%%%FREESIDE_URL%%%'${FREESIDE_URL}'g;\ " ${TMP}-torrus/usr/local/etc/torrus/conf/torrus-siteconfig.pl ) #RT Config ( cd rt; \ cp config.layout.in config.layout; \ perl -p -i -e "\ s'%%%FREESIDE_DOCUMENT_ROOT%%%'${FREESIDE_DOCUMENT_ROOT}'g;\ s'%%%MASONDATA%%%'${FREESIDE_CACHE}/masondata'g;\ " config.layout; \ ./configure --prefix=${RT_PATH} \ --enable-layout=Freeside \ --with-db-type=Pg \ --with-db-dba=freeside \ --with-db-database=freeside \ --with-db-rt-user=freeside \ --with-db-rt-pass="" \ --with-web-user=freeside \ --with-web-group=freeside \ --with-rt-group=freeside \ --with-web-handler=modperl2 ) ##(create-rt) #$(MAKE) -e DESTDIR=${TMP}-lib create-rt install -d $(RT_PATH) install -d $(RT_PATH)/share ( cd rt; $(MAKE) config-install dirs files-install fixperms instruct ) cp -r rt/share/static/images ${FREESIDE_DOCUMENT_ROOT}/rt/NoAuth/ ##hack the build dir out of RT. yeah, sucky. perl -p -i -e "\ s'${TMP}(-webui|-lib)''g;\ s'${TMP}''g;\ " ${TMP}-lib/opt/rt3/etc/*.pm \ ${TMP}-lib/opt/rt3/lib/*.pm \ ${TMP}-lib/opt/rt3/lib/RT/*.pm \ ${TMP}-lib/opt/rt3/etc/upgrade/* \ ${TMP}-lib/opt/rt3/sbin/* \ ${TMP}-lib/opt/rt3/bin/* \ # Default RT Settings perl -p -i -e "\ s'%%%RT_DOMAIN%%%'${RT_DOMAIN}'g;\ s'%%%RT_TIMEZONE%%%'${RT_TIMEZONE}'g;\ s'%%%FREESIDE_URL%%%'${FREESIDE_URL}'g;\ " ${RT_PATH}/etc/RT_SiteConfig.pm dh_install #touch $@ binary-arch: # We have nothing to do here for an architecture-independent package binary-indep: build install dh_testdir dh_testroot dh_installdeb install dh_installdocs #freeside.docs README AGPL dh_installexamples eg bin # dh_installmenu dh_installdebconf # dh_installlogrotate dh_installinit --no-start dh_installcron # dh_installinfo dh_installman dh_perl dh_link dh_compress dh_fixperms -X/var/www/selfservice-DIST -X/usr/local/freeside dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install