X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=debian%2Frules;h=d82978cfd13016b533b79fab64ed03fb772f4666;hp=d37dfd1c5621a4d40f9e4235ad0afbc5ab494378;hb=5ed43cea286d5fab10db1cfdc4fa80b99b203ab9;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984 diff --git a/debian/rules b/debian/rules index d37dfd1c5..d82978cfd 100755 --- a/debian/rules +++ b/debian/rules @@ -12,34 +12,46 @@ PERL ?= /usr/bin/perl #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 = db_type_is_configured_during_pkg_install_by_dbconfig-common_not_at_build_time + +#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 FREESIDE_SS = $(TMP)/usr/share/docs/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 FREESIDE_DOCUMENT_ROOT = /usr/share/freeside/www +export FREESIDE_DOCUMENT_ROOT = $(TMP)-webui/var/www/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 = /etc/apache2/conf.d export APACHE_CONF = $(TMP)-webui/etc/freeside/apache2 export FREESIDE_RESTART = /bin/true @@ -49,22 +61,21 @@ 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 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)/opt/rt3 # This has to be exported to make some magic below work. export DH_OPTIONS @@ -82,9 +93,11 @@ 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 && [ -e Makefile ] || 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# @@ -110,96 +123,128 @@ 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 $(FREESIDE_DOCUMENT_ROOT) + install -d $(TMP)-lib/usr/bin/ + install -d $(TMP)-webui/usr/local/etc/freeside/ + install -d $(TMP)/usr/local/etc/freeside/ + install -d $(FREESIDE_CACHE)/masondata #MASONDATA + + ( 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 + + # Create Apache configurations + install -d $(APACHE_CONF) + $(MAKE) -e DESTDIR=$(APACHE_CONF) install-apache + + #Hack the build dir out of apache config + + perl -p -i -e "\ + s'${TMP}(-webui)?''g;\ + " $(TMP)-webui/etc/freeside/apache2/* + + # 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).* - - 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 + #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 - $(MAKE) -e install-init + perl -p -i -e "\ + s'${TMP}?''g;\ + " ${TMP}-lib/usr/bin/* \ - #RT - #(configure-rt) + #RT Config - # 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) + 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) - ( 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 + install -d $(RT_PATH)/share - mv ${RT_PATH}/etc/RT_Config.pm ${RT_PATH}/etc/RT_Config.pm.dbc + ( cd rt; $(MAKE) install ) + + ##hack the build dir out of RT. yeah, sucky. 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 + s'${TMP}(-webui)''g;\ + s'${TMP}''g;\ + " ${TMP}/opt/rt3/etc/*.pm \ + ${TMP}/opt/rt3/lib/*.pm \ + ${TMP}/opt/rt3/lib/RT/*.pm \ + ${TMP}/opt/rt3/etc/upgrade/* \ + ${TMP}/opt/rt3/sbin/* \ + ${TMP}/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 - 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 $@ + #touch $@ binary-arch: # We have nothing to do here for an architecture-independent package @@ -207,13 +252,13 @@ binary-arch: binary-indep: build install dh_testdir dh_testroot - dh_installchangelogs ChangeLog + dh_installdeb install dh_installdocs #freeside.docs README AGPL dh_installexamples eg/* # dh_installmenu dh_installdebconf # dh_installlogrotate - dh_installinit + dh_installinit --no-start dh_installcron # dh_installinfo dh_installman @@ -221,7 +266,6 @@ binary-indep: build install dh_link dh_compress dh_fixperms - dh_installdeb dh_gencontrol dh_md5sums dh_builddeb