#PACKAGE = $(shell dh_listpackages)
PACKAGE = freeside
TMP = $(CURDIR)/debian/$(PACKAGE)
-DBC_SCRIPTS = $(TMP)/usr/share/dbconfig-common/scripts/freeside
+#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
+##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)
+##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
+#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_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 = $(TMP)-webui/usr/share/freeside/handler.pl
+#export MASON_HANDLER = /usr/share/freeside/handler.pl
+export MASON_HANDLER=$(TMP)-webui/usr/local/etc/freeside/handler.pl
-export APACHE_VERSION = 2
-export FREESIDE_DOCUMENT_ROOT = $(TMP)-webui/usr/share/freeside/www
+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 = $(TMP)-webui/etc/apache2/conf.d
-export APACHE_CONF = $(TMP)-webui/etc/freeside/apache2
+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 SELFSERVICE_MACHINES =
#prompt ? XXX these are runtime, not buildtime :/
-export RT_DOMAIN = `dnsdomainname`
-export RT_TIMEZONE = `cat /etc/timezone`
-
-export HOSTNAME = `hostname -f`
+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 = $(TMP)/usr/share/freeside/default_conf
+#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)/var/opt/freeside/rt
+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
dh_testdir
# Add commands to compile the package here
- ( cd FS/ && $(PERL) Makefile.PL INSTALLDIRS=vendor )
-
- $(MAKE) -e perl-modules
+ ( 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#
# 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 $(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` $(DIST_CONF)
+ install `ls -d conf/[a-z]* | grep -v CVS | grep -v '^conf/registries'` $(DIST_CONF)
- install -d $(FREESIDE_DOCUMENT_ROOT)
- install -d $(FREESIDE_CACHE)/masondata #MASONDATA
- $(MAKE) -e install-docs
+ # 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}-webui/usr/share/freeside/handler.pl \
+ " ${TMP}/usr/local/etc/freeside/handler.pl \
${TMP}/usr/share/perl5/FS/* \
${TMP}/usr/share/perl5/FS/*/* \
${TMP}/usr/bin/*
- rm -r $(FREESIDE_DOCUMENT_ROOT).*
+ #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
- 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
+ perl -p -i -e "\
+ s'${TMP}?''g;\
+ " ${TMP}-lib/usr/bin/* \
+ ${TMP}-webui/usr/local/etc/freeside/handler.pl
- $(MAKE) -e install-init
+ # 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
- #RT
- #(configure-rt)
+ # NG-selfservice
- # 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
+ install -d ${TMP}-ng-selfservice$(APACHE_DOCUMENT_ROOT)/
+ cp -R ng_selfservice ${TMP}-ng-selfservice$(APACHE_DOCUMENT_ROOT)/ng_selfservice-DIST/
+
+ # Torrus
- #hack @INC dir out of RT (well, handler.pl) too.
+ #in freeside-webui package
+ #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'/opt/rt3/'/var/opt/freeside/rt/'g;\
- " ${TMP}-webui/usr/share/freeside/handler.pl
+ s'%%%FREESIDE_URL%%%'${FREESIDE_URL}'g;\
+ " ${TMP}-torrus/usr/local/etc/torrus/conf/torrus-siteconfig.pl )
- mv ${RT_PATH}/etc/RT_Config.pm ${RT_PATH}/etc/RT_Config.pm.dbc
+ #RT Config
- 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
+ ( 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
- 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)
+ ( 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 $@
+ #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_installdeb install
dh_installdocs #freeside.docs README AGPL
- dh_installexamples eg/*
+ dh_installexamples eg bin
# dh_installmenu
dh_installdebconf
# dh_installlogrotate
- dh_installinit
+ dh_installinit --no-start
dh_installcron
# dh_installinfo
dh_installman
dh_perl
dh_link
dh_compress
- dh_fixperms
- dh_installdeb
+ dh_fixperms -X/var/www/selfservice-DIST -X/usr/local/freeside
dh_gencontrol
dh_md5sums
dh_builddeb