X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=debian%2Frules;h=e32910f1ce6247ccd839e426cc1deaf1d5681f1d;hp=a8835e5fe4c8276fd1663bd17d597f7ee1d639f1;hb=fc263806f5e475559a0c4cfdb70a5f1cefe0ffa3;hpb=54a357b171aa44f9399b4c146acd2afd3b686075 diff --git a/debian/rules b/debian/rules index a8835e5fe..e32910f1c 100755 --- a/debian/rules +++ b/debian/rules @@ -15,7 +15,10 @@ 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 +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-` @@ -37,17 +40,21 @@ 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 FREESIDE_DOCUMENT_ROOT = $(TMP)-webui/usr/share/freeside/www -export FREESIDE_DOCUMENT_ROOT = $(TMP)-webui/var/www/freeside +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 POD2HTML_DOCUMENT_ROOT = $(FREESIDE_DOCUMENT_ROOT)/docs/library 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? @@ -56,22 +63,23 @@ 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/ +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 @@ -89,9 +97,14 @@ build-stamp: 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# @@ -117,100 +130,172 @@ install-stamp: build-stamp # 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 -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 + # Install interfaces $(MAKE) -e DESTDIR=$(TMP)-webui install-docs + + # Install tex + install -d ${TEXMF_PATH} + install -o freeside -m 444 etc/*.sty ${TEXMF_PATH} + install -o root -m 444 etc/GnuMICR.otf /usr/local/etc/freeside + + # 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 - $(MAKE) -e install-apache - - $(MAKE) -e install-init - - #RT - #(configure-rt) - $(MAKE) -e 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) - #$(MAKE) -e 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 + perl -p -i -e "\ + s'${TMP}?''g;\ + " ${TMP}-lib/usr/bin/* \ + ${TMP}-webui/usr/local/etc/freeside/handler.pl + + # Self-service - #install -D debian/dbconfig-common.upgrade $(DBC_SCRIPTS)/upgrade/pgsql/$(DEBVERSION) - #install -D debian/dbconfig-common.upgrade $(DBC_SCRIPTS)/upgrade/mysql/$(DEBVERSION) + ( 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 + + #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'%%%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 + + # Build pod2html documentation + install -d ${POD2HTML_DOCUMENT_ROOT} + perl -IFS -MFS::Misc::Pod2Html -e "FS::Misc::Pod2Html::fs_pod2html_from_src('${POD2HTML_DOCUMENT_ROOT}');" + dh_install - touch $@ + #touch $@ binary-arch: # We have nothing to do here for an architecture-independent package @@ -218,20 +303,20 @@ binary-arch: binary-indep: build install dh_testdir dh_testroot + 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