#!/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 = db_type_is_configured_during_pkg_install_by_dbconfig-common_not_at_build_time #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 #XXX own subdir? export MASON_HANDLER = $(TMP)-webui/usr/share/freeside/handler.pl export APACHE_VERSION = 2 export FREESIDE_DOCUMENT_ROOT = $(TMP)-webui/usr/share/freeside/www export INIT_FILE = $(TMP).init export INIT_INSTALL = /bin/true export HTTPD_RESTART = /bin/true #export APACHE_CONF = $(TMP)-webui/etc/apache2/conf.d export APACHE_CONF = $(TMP)-webui/etc/freeside/apache2 export FREESIDE_RESTART = /bin/true #XXX root? export INSTALLGROUP = adm export SELFSERVICE_MACHINES = #prompt ? XXX these are runtime, not buildtime :/ export RT_DOMAIN = `dnsdomainname` export RT_TIMEZONE = `cat /etc/timezone` export HOSTNAME = `hostname -f` 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 = $(TMP)/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)/var/opt/freeside/rt # 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) -e perl-modules #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. ( cd FS/ && $(MAKE) -e DESTDIR=$(TMP)-lib install ) #false laziness w/install-perl-modules now #install this for postinst later (no create-config) install -d $(DIST_CONF) #install conf/[a-z]* $(DEFAULT_CONF) #CVS is not [a-z] install `ls -d conf/[a-z]* | grep -v CVS` $(DIST_CONF) install -d $(FREESIDE_DOCUMENT_ROOT) install -d $(FREESIDE_CACHE)/masondata #MASONDATA $(MAKE) -e install-docs #hack the build dir out of Freeside too. oh yeah, sucky. perl -p -i -e "\ s'${TMP}(-webui)?''g;\ " ${TMP}-webui/usr/share/freeside/handler.pl \ ${TMP}/usr/share/perl5/FS/* \ ${TMP}/usr/share/perl5/FS/*/* \ ${TMP}/usr/bin/* rm -r $(FREESIDE_DOCUMENT_ROOT).* install -d $(APACHE_CONF) install debian/freeside.apache-alias.conf $(APACHE_CONF)/freeside-alias.conf FREESIDE_DOCUMENT_ROOT=/usr/share/freeside/www MASON_HANDLER=/usr/share/freeside/handler.pl FREESIDE_CONF=/etc/freeside $(MAKE) -e install-apache $(MAKE) -e install-init #RT #(configure-rt) # XXX need to adjust db-type, db-database, db-rt-user, db-rt-pass # based on info from dbc ( 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=_DBC_DBNAME_ \ --with-db-rt-user=_DBC_DBUSER_ \ --with-db-rt-pass=_DBC_DBPASS_ \ --with-web-user=freeside \ --with-web-group=freeside \ --with-rt-group=freeside \ ) #(create-rt) install -d $(RT_PATH) ( cd rt; make install ) #hack the build dir out of RT. yeah, sucky. perl -p -i -e "\ s'${TMP}''g;\ " ${RT_PATH}/etc/RT_Config.pm \ ${RT_PATH}/lib/RT.pm \ ${RT_PATH}/bin/mason_handler.fcgi \ ${RT_PATH}/bin/mason_handler.scgi \ ${RT_PATH}/bin/standalone_httpd \ ${RT_PATH}/bin/webmux.pl \ ${RT_PATH}/bin/rt-crontool \ ${RT_PATH}/sbin/rt-dump-database \ ${RT_PATH}/sbin/rt-setup-database #hack @INC dir out of RT (well, handler.pl) too. perl -p -i -e "\ s'/opt/rt3/'/var/opt/freeside/rt/'g;\ " ${TMP}-webui/usr/share/freeside/handler.pl mv ${RT_PATH}/etc/RT_Config.pm ${RT_PATH}/etc/RT_Config.pm.dbc 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 install -D debian/dbconfig-common.install $(DBC_SCRIPTS)/install/pgsql install -D debian/dbconfig-common.install $(DBC_SCRIPTS)/install/mysql install -D debian/dbconfig-common.upgrade $(DBC_SCRIPTS)/upgrade/pgsql/$(DEBVERSION) install -D debian/dbconfig-common.upgrade $(DBC_SCRIPTS)/upgrade/mysql/$(DEBVERSION) 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_installchangelogs ChangeLog dh_installdocs #freeside.docs README AGPL dh_installexamples eg/* # dh_installmenu dh_installdebconf # dh_installlogrotate dh_installinit dh_installcron # dh_installinfo dh_installman dh_perl dh_link dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install