buster (deb 10)
[freeside.git] / debian / rules
index 7bf8aed..153f177 100755 (executable)
@@ -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-`
@@ -36,19 +39,22 @@ 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
-expory FREESIDE_SS = $(TMP)/usr/share/docs/freeside
+
+export DIST_CONF = ${FREESIDE_CONF}/default_conf
 
 #XXX own subdir?
 #export MASON_HANDLER          = /usr/share/freeside/handler.pl
 export MASON_HANDLER=$(TMP)-webui/usr/local/etc/freeside/handler.pl
 
-#export FREESIDE_DOCUMENT_ROOT = /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           = /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?
@@ -71,7 +77,9 @@ export FREESIDE_URL           = http://$(HOSTNAME)/freeside/
 # 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)/opt/rt3
+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 DESTDIR=${TMP}-lib 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#
 
@@ -118,41 +131,74 @@ install-stamp: build-stamp
        # Add here commands to install package into
        # debian/<package>-whatever.
 
-       ( cd FS/ && $(MAKE) -e DESTDIR=$(TMP)-lib install )
-
        install -d $(FREESIDE_DOCUMENT_ROOT)
        install -d $(TMP)-webui/usr/local/etc/freeside/
-       install -d $(FREESIDE_CACHE)/masondata #MASONDATA
-       $(MAKE) -e DESTDIR=$(TMP)-webui install-docs
+       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}"
 
-       # Ugly hack, why is handler.pl not being "handled" by install-docs
-       install -D htetc/handler.pl DESTDIR=$(FREESIDE_CACHE)
+       #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 | grep -v '^conf/registries'` $(DIST_CONF)
+
+       # 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;\
-        "  $(TMP)-webui/etc/freeside/apache2/*
+        " $(APACHE_CONF)/*
 
-        # Install configuration files, hack what to do???
-       $(MAKE) -e DESTDIR=$(TMP) create-config
+       # 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/local/etc/freeside/handler.pl 
+       " ${TMP}/usr/local/etc/freeside/handler.pl \
+         ${TMP}/usr/share/perl5/FS/* \
+         ${TMP}/usr/share/perl5/FS/*/* \
+         ${TMP}/usr/bin/*
 
-       #back the build dur out of lib
+       #hack the build dur out of lib
        perl -p -i -e "\
           s'${TMP}-lib?''g;\
          s'${TMP}(-webui)?''g;\
-        " ${TMP}-webui/usr/local/etc/freeside/handler.pl \
+        " ${TMP}/usr/local/etc/freeside/handler.pl \
          ${TMP}-lib/usr/share/perl5/FS/*.pm \
          ${TMP}-lib/usr/share/perl5/FS/*/*.pm 
         
@@ -161,6 +207,39 @@ install-stamp: build-stamp
        perl -p -i -e "\
           s'${TMP}?''g;\
         " ${TMP}-lib/usr/bin/* \
+         ${TMP}-webui/usr/local/etc/freeside/handler.pl
+
+       # 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
+
+       # 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
 
@@ -183,21 +262,24 @@ install-stamp: build-stamp
                --with-web-handler=modperl2 )
 
         ##(create-rt)
-        #$(MAKE) -e create-rt
+       #$(MAKE) -e DESTDIR=${TMP}-lib create-rt
        install -d $(RT_PATH)
-       ( cd rt; make install )
+       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)''g;\
+       s'${TMP}(-webui|-lib)''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/* \
+       " ${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 "\
@@ -206,9 +288,13 @@ install-stamp: build-stamp
                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,7 +304,7 @@ binary-indep: build install
        dh_testroot
        dh_installdeb install
        dh_installdocs #freeside.docs README AGPL
-       dh_installexamples eg/*
+       dh_installexamples eg bin
 #      dh_installmenu
        dh_installdebconf       
 #      dh_installlogrotate     
@@ -229,8 +315,7 @@ binary-indep: build install
        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