diff options
Diffstat (limited to 'debian/rules')
| -rwxr-xr-x | debian/rules | 230 | 
1 files changed, 230 insertions, 0 deletions
| diff --git a/debian/rules b/debian/rules new file mode 100755 index 000000000..d37dfd1c5 --- /dev/null +++ b/debian/rules @@ -0,0 +1,230 @@ +#!/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/<package>-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 | 
