add customer fields option with agent, display_custnum, status and name, RT#73721
[freeside.git] / rpm / freeside.spec
index 13cc3a8..bac6ff8 100644 (file)
@@ -1,52 +1,72 @@
 %{!?_initrddir:%define _initrddir /etc/rc.d/init.d}
-%{!?version:%define version 1.9}
-%{!?release:%define release 1}
+%{!?version:%define version 2.1.1}
+%{!?release:%define release 8}
 
 Summary: Freeside ISP Billing System
 Name: freeside
 Version: %{version}
 Release: %{release}
-License: AGPL
+License: AGPLv3
 Group: Applications/Internet
-URL: http://www.sisd.com/freeside/
-Packager: Richard Siddall <richard.siddall@elirion.net>
+URL: http://www.freeside.biz/freeside/
 Vendor: Freeside
-Source: http://www.sisd.com/freeside/%{name}-%{version}.tar.gz
+Source: http://www.freeside.biz/freeside/%{name}-%{version}.tar.gz
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildArch: noarch
 Requires: %{name}-frontend
 Requires: %{name}-backend
+%if "%{_vendor}" != "suse"
 Requires: tetex-latex
+Requires: ghostscript
+%else
+Requires: te_latex
+Requires: ghostscript-library
+%endif
 Requires: perl-Fax-Hylafax-Client
 
+%if "%{_vendor}" != "suse"
+%define apache_conffile                /etc/httpd/conf/httpd.conf
+%define        apache_confdir          /etc/httpd/conf.d
+%define        apache_version          2
 %define freeside_document_root /var/www/freeside
-%define freeside_cache         /var/cache/subsys/freeside
+%define freeside_selfservice_document_root     /var/www/freeside-selfservice
+%else
+%define apache_conffile                /etc/apache2/uid.conf
+%define        apache_confdir          /etc/apache2/conf.d
+%define        apache_version          2
+%define freeside_document_root /srv/www/freeside
+%define freeside_selfservice_document_root     /srv/www/freeside-selfservice
+%endif
+# Can change this back to /var/cache/subsys/freeside when cache relocation is fixed and released
+%define freeside_cache         /etc/freeside
 %define freeside_conf          /etc/freeside
 %define freeside_export                /etc/freeside
 %define freeside_lock          /var/lock/freeside
 %define freeside_log           /var/log/freeside
+%define freeside_socket                /etc/freeside
 %define        rt_enabled              0
-%define apache_conffile                /etc/httpd/conf/httpd.conf
-%define        apache_confdir          /etc/httpd/conf.d
-%define        apache_version          2
 %define        fs_queue_user           fs_queue
 %define        fs_selfservice_user     fs_selfservice
 %define        fs_cron_user            fs_daily
 %define        db_types                Pg mysql
 
+%define texmflocal     /usr/share/texmf
+
 %define _rpmlibdir     /usr/lib/rpm
+%define        rpmfiles        rpm
 
 %description
-Freeside is a flexible ISP billing system written by Ivan Kohler
+Freeside is a flexible ISP billing system
 
 %package mason
 Summary: HTML::Mason interface for %{name}
 Group: Applications/Internet
-Prefix: /var/www/freeside
+Prefix: %{freeside_document_root}
+%if "%{_vendor}" != "suse"
 Requires: mod_ssl
+%endif
 Requires: perl-Apache-DBI
-Conflicts: %{name}-apacheasp
-Provides: %{name}-frontend
+Provides: %{name}-frontend = %{version}
 BuildArch: noarch
 
 %description mason
@@ -60,7 +80,7 @@ Requires: perl-DBI
 Requires: perl-DBD-Pg >= 1.32
 Requires: %{name}
 Conflicts: %{name}-mysql
-Provides: %{name}-backend
+Provides: %{name}-backend = %{version}
 
 %description postgresql
 This package includes the PostgreSQL database backend for %{name}.
@@ -74,7 +94,7 @@ Requires: perl-DBI
 Requires: perl-DBD-MySQL
 Requires: %{name}
 Conflicts: %{name}-postgresql
-Provides: %{name}-backend
+Provides: %{name}-backend = %{version}
 
 %description mysql
 This package includes the MySQL database backend for %{name}.
@@ -84,23 +104,70 @@ Please note that this RPM does not create the database or database user; it only
 %package selfservice
 Summary: Self-service interface for %{name}
 Group: Applications/Internet
-Conflicts: %{name}
+Requires: %{name}-selfservice-cgi
 
 %description selfservice
 This package installs the Perl modules and CGI scripts for the self-service interface for %{name}.
-For security reasons, it is set to conflict with %{name} so you cannot install the billing system and self-service interface on the same computer.
+For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer.
+
+%package selfservice-core
+Summary: Core Perl libraries for the self-service interface for %{name}
+Group: Applications/Internet
+
+%description selfservice-core
+This package installs the Perl modules and client daemon for the self-service interface for %{name}.  It does not install the CGI interface and can be used with a different front-end.
+For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer.
+
+%package selfservice-cgi
+Summary: CGI scripts for the self-service interface for %{name}
+Group: Applications/Internet
+Requires: %{name}-selfservice-core
+Prefix: %{freeside_selfservice_document_root}
+
+%description selfservice-cgi
+This package installs the CGI scripts for the self-service interface for %{name}.  The scripts use some core libraries packaged in a separate RPM.
+For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer.
+
+%package selfservice-php
+Summary: Sample PHP files for the self-service interface for %{name}
+Group: Applications/Internet
+Prefix: %{freeside_selfservice_document_root}
+
+%description selfservice-php
+This package installs the sample PHP scripts for the self-service interface for %{name}.
+For security reasons, it is set to conflict with %{name} as you should not install the billing system and self-service interface on the same computer.
 
 %prep
-%setup
-%{__rm} bin/pod2x # Only useful to Ivan Kohler now
-perl -pi -e 's|/usr/local/bin|%{buildroot}%{_bindir}|g' FS/Makefile.PL
-perl -pi -e 's|\s+-o\s+freeside\s+| |g' Makefile
+%setup -q
+%{__rm} -f bin/pod2x # Only useful to Ivan Kohler now
+perl -pi -e 's|/usr/local/bin|%{_bindir}|g' FS/Makefile.PL
+# RPM handles changing file ownership, so Makefile shouldn't
+perl -pi -e 's/\s+-o\s+(freeside|root)(\s+-g\s+\$\{\w+\})?\s+/ /g' Makefile
 perl -ni -e 'print if !/\s+chown\s+/;' Makefile
 
+# Fix-ups for self-service.  Should merge this into Makefile
+perl -pi -e 's|/usr/local/sbin|%{_sbindir}|g' FS/bin/freeside-selfservice-server
+perl -pi -e 's|/usr/local/bin|%{_bindir}|g' fs_selfservice/FS-SelfService/Makefile.PL
+perl -pi -e 's|/usr/local/sbin|%{_sbindir}|g' fs_selfservice/FS-SelfService/Makefile.PL
+perl -pi -e 's|/usr/local/freeside|%{freeside_socket}|g' fs_selfservice/FS-SelfService/*.pm
+perl -pi -e 's|socket\s*=\s*"/usr/local/freeside|socket = "%{freeside_socket}|g' fs_selfservice/FS-SelfService/freeside-selfservice-*
+perl -pi -e 's|log_file\s*=\s*"/usr/local/freeside|log_file = "%{freeside_log}|g' fs_selfservice/FS-SelfService/freeside-selfservice-*
+perl -pi -e 's|lock_file\s*=\s*"/usr/local/freeside|lock_file = "%{freeside_lock}|g' fs_selfservice/FS-SelfService/freeside-selfservice-*
+
+# Fix-ups for SuSE
+%if "%{_vendor}" == "suse"
+perl -pi -e 's|htpasswd|/usr/sbin/htpasswd2|g if /system/;' FS/FS/access_user.pm
+perl -pi -e 'print "Order deny,allow\nAllow from all\n" if /<Files/i;' htetc/freeside*.conf
+%endif
+
 # Override find-requires/find-provides to supplement Perl requires for HTML::Mason file handler.pl
 cat << \EOF > %{name}-req
 #!/bin/sh
-tee %{_tmppath}/filelist | %{_rpmlibdir}/rpmdeps --requires | grep -v -E '^perl\(the\)$' | sort -u
+tee %{_tmppath}/filelist | %{_rpmlibdir}/rpmdeps --requires | grep -v -E '^perl\(the\)$' \
+| grep -v -E '^perl\((lib|strict|vars|RT)\)$' \
+| grep -v -E '^perl\(RT::' \
+| grep -v -E '^perl\(FS::' \
+| sort -u
 grep handler.pl %{_tmppath}/filelist | xargs %{_rpmlibdir}/perldeps.pl --requires \
 | grep -v -E '^perl\((lib|strict|vars|RT)\)$' \
 | grep -v -E '^perl\(RT::' \
@@ -121,14 +188,22 @@ touch htmlman
 
 #perl -pi -e 's|%%%%%%VERSION%%%%%%|%{version}|g' FS/bin/*
 cd FS
-CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=$RPM_BUILD_ROOT%{_prefix} SITELIBEXP=$RPM_BUILD_ROOT%{perl_sitelib} SITEARCHEXP=$RPM_BUILD_ROOT%{perl_sitearch}
+if [ "%{_vendor}" = "suse" ]; then
+       CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL
+else
+       CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=$RPM_BUILD_ROOT%{_prefix} SITELIBEXP=$RPM_BUILD_ROOT%{perl_sitelib} SITEARCHEXP=$RPM_BUILD_ROOT%{perl_sitearch} INSTALLSCRIPT=$RPM_BUILD_ROOT%{_bindir}
+fi
 %{__make} OPTIMIZE="$RPM_OPT_FLAGS"
 cd ..
-%{__make} perl-modules VERSION='%{version}-%{release}' FREESIDE_CACHE=%{freeside_cache} FREESIDE_CONF=%{freeside_conf} FREESIDE_EXPORT=%{freeside_export} FREESIDE_LOCK=%{freeside_lock} FREESIDE_LOG=%{freeside_log}
+%{__make} perl-modules RT_ENABLED=%{rt_enabled} FREESIDE_CACHE=%{freeside_cache} FREESIDE_CONF=%{freeside_conf} FREESIDE_EXPORT=%{freeside_export} FREESIDE_LOCK=%{freeside_lock} FREESIDE_LOG=%{freeside_log}
 touch perl-modules
 
 cd fs_selfservice/FS-SelfService
-CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=$RPM_BUILD_ROOT%{_prefix} SITELIBEXP=$RPM_BUILD_ROOT%{perl_sitelib} SITEARCHEXP=$RPM_BUILD_ROOT%{perl_sitearch} INSTALLSCRIPT=$RPM_BUILD_ROOT%{_sbindir}
+if [ "%{_vendor}" = "suse" ]; then
+       CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL
+else
+       CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL PREFIX=$RPM_BUILD_ROOT%{_prefix} SITELIBEXP=$RPM_BUILD_ROOT%{perl_sitelib} SITEARCHEXP=$RPM_BUILD_ROOT%{perl_sitearch} INSTALLSCRIPT=$RPM_BUILD_ROOT%{_sbindir}
+fi
 %{__make} OPTIMIZE="$RPM_OPT_FLAGS"
 cd ../..
 
@@ -140,16 +215,17 @@ cd ../..
 touch install-perl-modules perl-modules
 %{__mkdir_p} $RPM_BUILD_ROOT%{freeside_cache}
 %{__mkdir_p} $RPM_BUILD_ROOT%{freeside_conf}
-#%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_export}
+%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_export}
 %{__mkdir_p} $RPM_BUILD_ROOT%{freeside_lock}
 %{__mkdir_p} $RPM_BUILD_ROOT%{freeside_log}
 for DBTYPE in %{db_types}; do
        %{__mkdir_p} $RPM_BUILD_ROOT/tmp
-       %{__make} create-config DB_TYPE=$DBTYPE RT_ENABLED=%{rt_enabled} FREESIDE_CACHE=$RPM_BUILD_ROOT%{freeside_cache} FREESIDE_CONF=$RPM_BUILD_ROOT/tmp FREESIDE_EXPORT=$RPM_BUILD_ROOT%{freeside_export} FREESIDE_LOCK=$RPM_BUILD_ROOT%{freeside_lock} FREESIDE_LOG=$RPM_BUILD_ROOT%{freeside_log}
-       %{__mv} $RPM_BUILD_ROOT/tmp/* $RPM_BUILD_ROOT%{freeside_conf}
-       /bin/rmdir $RPM_BUILD_ROOT/tmp
+       [ -d $RPM_BUILD_ROOT%{freeside_conf}/default_conf ] && %{__rm} -rf $RPM_BUILD_ROOT%{freeside_conf}/default_conf
+       %{__make} create-config DB_TYPE=$DBTYPE DATASOURCE=DBI:$DBTYPE:dbname=%{name} RT_ENABLED=%{rt_enabled} FREESIDE_CACHE=$RPM_BUILD_ROOT%{freeside_cache} FREESIDE_CONF=$RPM_BUILD_ROOT/tmp FREESIDE_EXPORT=$RPM_BUILD_ROOT%{freeside_export} FREESIDE_LOCK=$RPM_BUILD_ROOT%{freeside_lock} FREESIDE_LOG=$RPM_BUILD_ROOT%{freeside_log} DIST_CONF=$RPM_BUILD_ROOT%{freeside_conf}/default_conf
+       %{__mv} $RPM_BUILD_ROOT/tmp/secrets $RPM_BUILD_ROOT%{freeside_conf}
+       %{__rm} -rf $RPM_BUILD_ROOT/tmp
 done
-%{__rm} install-perl-modules perl-modules $RPM_BUILD_ROOT%{freeside_conf}/conf*/ticket_system
+%{__rm} install-perl-modules perl-modules $RPM_BUILD_ROOT%{freeside_conf}/default_conf/ticket_system
 
 touch docs
 %{__perl} -pi -e "s|%%%%%%FREESIDE_DOCUMENT_ROOT%%%%%%|%{freeside_document_root}|g" htetc/handler.pl
@@ -159,20 +235,14 @@ touch docs
 
 # Install the init script
 %{__mkdir_p} $RPM_BUILD_ROOT%{_initrddir}
-%{__install} init.d/freeside-init $RPM_BUILD_ROOT%{_initrddir}/%{name}
-#%{__make} install-init INSTALLGROUP=root INIT_FILE=$RPM_BUILD_ROOT%{_initrddir}/%{name}
+%{__make} install-init INSTALLGROUP=root INIT_FILE=$RPM_BUILD_ROOT%{_initrddir}/%{name} QUEUED_USER=%{fs_queue_user} SELFSERVICE_USER=%{fs_selfservice_user} SELFSERVICE_MACHINES= INIT_INSTALL= 
 %{__perl} -pi -e "\
-         s/%%%%%%QUEUED_USER%%%%%%/%{fs_queue_user}/g;\
-         s/%%%%%%SELFSERVICE_USER%%%%%%/%{fs_selfservice_user}/g;\
-         s/%%%%%%SELFSERVICE_MACHINES%%%%%%//g;\
+         s|/etc/default|/etc/sysconfig|g;\
        " $RPM_BUILD_ROOT%{_initrddir}/%{name}
 
 # Install the HTTPD configuration snippet for HTML::Mason
 %{__mkdir_p} $RPM_BUILD_ROOT%{apache_confdir}
-%{__make} install-apache FREESIDE_DOCUMENT_ROOT=%{freeside_document_root} RT_ENABLED=%{rt_enabled} APACHE_CONF=$RPM_BUILD_ROOT%{apache_confdir} APACHE_VERSION=%{apache_version} MASON_HANDLER=%{freeside_conf}/handler.pl
-%{__perl} -pi -e "s|%%%%%%FREESIDE_DOCUMENT_ROOT%%%%%%|%{freeside_document_root}|g" $RPM_BUILD_ROOT%{apache_confdir}/freeside-*.conf
-%{__perl} -pi -e "s|%%%%%%MASON_HANDLER%%%%%%|%{freeside_conf}/handler.pl|g" $RPM_BUILD_ROOT%{apache_confdir}/freeside-*.conf
-%{__perl} -pi -e "s|/usr/local/etc/freeside|%{freeside_conf}|g" $RPM_BUILD_ROOT%{apache_confdir}/freeside-*.conf
+%{__make} install-apache FREESIDE_DOCUMENT_ROOT=%{freeside_document_root} RT_ENABLED=%{rt_enabled} APACHE_CONF=$RPM_BUILD_ROOT%{apache_confdir} APACHE_VERSION=%{apache_version} FREESIDE_CONF=%{freeside_conf} MASON_HANDLER=%{freeside_conf}/handler.pl
 %{__perl} -pi -e 'print "Alias /%{name} %{freeside_document_root}\n\n" if /^<Directory/;' $RPM_BUILD_ROOT%{apache_confdir}/freeside-*.conf
 %{__perl} -pi -e 'print "SSLRequireSSL\n" if /^AuthName/i;' $RPM_BUILD_ROOT%{apache_confdir}/freeside-*.conf
 
@@ -196,10 +266,10 @@ done
 # Make a list of the Mason files before adding self-service, etc.
 echo "%attr(-,freeside,freeside) %{freeside_conf}/handler.pl" > %{name}-%{version}-%{release}-mason-filelist
 find $RPM_BUILD_ROOT%{freeside_document_root} -type f -print | \
-        sed "s@^$RPM_BUILD_ROOT@@g" >> %{name}-%{version}-%{release}-mason-filelist
+       sed "s@^$RPM_BUILD_ROOT@@g" >> %{name}-%{version}-%{release}-mason-filelist
 if [ "$(cat %{name}-%{version}-%{release}-mason-filelist)X" = "X" ] ; then
-    echo "ERROR: EMPTY FILE LIST"
-    exit 1
+       echo "ERROR: EMPTY FILE LIST"
+       exit 1
 fi
 
 # Install all the miscellaneous binaries into /usr/share or similar
@@ -207,19 +277,19 @@ fi
 %{__install} bin/* $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/bin
 
 %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
-%{__install} rpm/freeside.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
-
-%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_document_root}/selfservice
-%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/cgi
-%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/cgi/images
-%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/cgi/misc
-%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/php
-%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/templates
-%{__install} fs_selfservice/FS-SelfService/cgi/{*.cgi,*.html,*.gif} $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/cgi
-%{__install} fs_selfservice/FS-SelfService/cgi/images/* $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/cgi/images
-%{__install} fs_selfservice/FS-SelfService/cgi/misc/* $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/cgi/misc
-%{__install} fs_selfservice/php/* $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/php
-%{__install} fs_selfservice/FS-SelfService/*.template $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/templates
+%{__install} %{rpmfiles}/freeside.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
+
+%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}
+%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi
+%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/images
+%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/misc
+%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/php
+%{__mkdir_p} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/templates
+%{__install} fs_selfservice/FS-SelfService/cgi/{*.cgi,*.html,*.gif} $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi
+%{__install} fs_selfservice/FS-SelfService/cgi/images/* $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/images
+%{__install} fs_selfservice/FS-SelfService/cgi/misc/* $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/cgi/misc
+%{__install} fs_selfservice/php/* $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/php
+%{__install} fs_selfservice/FS-SelfService/*.template $RPM_BUILD_ROOT%{freeside_selfservice_document_root}/templates
 
 # Install the main billing server Perl files
 cd FS
@@ -233,17 +303,17 @@ eval `perl '-V:installarchlib'`
 find $RPM_BUILD_ROOT%{_prefix} -type f -print | \
        grep -v '/etc/freeside/conf' | \
        grep -v '/etc/freeside/secrets' | \
-        sed "s@^$RPM_BUILD_ROOT@@g" > %{name}-%{version}-%{release}-filelist
+       sed "s@^$RPM_BUILD_ROOT@@g" > %{name}-%{version}-%{release}-filelist
 if [ "$(cat %{name}-%{version}-%{release}-filelist)X" = "X" ] ; then
-    echo "ERROR: EMPTY FILE LIST"
-    exit 1
+       echo "ERROR: EMPTY FILE LIST"
+       exit 1
 fi
 cd ..
 
 # Install the self-service interface Perl files
 cd fs_selfservice/FS-SelfService
 %{__mkdir_p} $RPM_BUILD_ROOT%{_prefix}/local/bin
-%makeinstall PREFIX=$RPM_BUILD_ROOT%{_prefix}
+%makeinstall
 %{__rm} -f `find $RPM_BUILD_ROOT -type f -name perllocal.pod -o -name .packlist`
 
 [ -x %{_rpmlibdir}/brp-compress ] && %{_rpmlibdir}/brp-compress
@@ -251,37 +321,59 @@ cd fs_selfservice/FS-SelfService
 find $RPM_BUILD_ROOT%{_prefix} -type f -print | \
        grep -v '/etc/freeside/conf' | \
        grep -v '/etc/freeside/secrets' | \
-        sed "s@^$RPM_BUILD_ROOT@@g" > %{name}-%{version}-%{release}-temp-filelist
-cat ../../FS/%{name}-%{version}-%{release}-filelist %{name}-%{version}-%{release}-temp-filelist | sort | uniq -u >  %{name}-%{version}-%{release}-selfservice-filelist
-if [ "$(cat %{name}-%{version}-%{release}-selfservice-filelist)X" = "X" ] ; then
-    echo "ERROR: EMPTY FILE LIST"
-    exit 1
+       sed "s@^$RPM_BUILD_ROOT@@g" > %{name}-%{version}-%{release}-temp-filelist
+cat ../../FS/%{name}-%{version}-%{release}-filelist %{name}-%{version}-%{release}-temp-filelist | sort | uniq -u > %{name}-%{version}-%{release}-selfservice-core-filelist
+if [ "$(cat %{name}-%{version}-%{release}-selfservice-core-filelist)X" = "X" ] ; then
+       echo "ERROR: EMPTY FILE LIST"
+       exit 1
 fi
 cd ../..
 
+# Install the Apache configuration file for self-service
+%{__install} %{rpmfiles}/freeside-selfservice.conf $RPM_BUILD_ROOT%{apache_confdir}/%{name}-selfservice.conf
+%{__perl} -pi -e "s|%%%%%%FREESIDE_SELFSERVICE_DOCUMENT_ROOT%%%%%%|%{freeside_selfservice_document_root}|g" $RPM_BUILD_ROOT%{apache_confdir}/%{name}-selfservice.conf
+
+# This is part of Makefile's install-texmf.  The rest is in triggers.  These files are not in the filelist
+%{__install} -D etc/fslongtable.sty $RPM_BUILD_ROOT%{texmflocal}/tex/generic/fslongtable.sty
+
 %pre
 if ! %{__id} freeside &>/dev/null; then
-       /usr/sbin/useradd freeside
+%if "%{_vendor}" == "suse"
+       /usr/sbin/groupadd freeside
+%endif
+       /usr/sbin/useradd -m freeside
 fi
 
 %pre mason
 if ! %{__id} freeside &>/dev/null; then
-       /usr/sbin/useradd freeside
+%if "%{_vendor}" == "suse"
+       /usr/sbin/groupadd freeside
+%endif
+       /usr/sbin/useradd -m freeside
 fi
 
 %pre postgresql
 if ! %{__id} freeside &>/dev/null; then
-       /usr/sbin/useradd freeside
+%if "%{_vendor}" == "suse"
+       /usr/sbin/groupadd freeside
+%endif
+       /usr/sbin/useradd -m freeside
 fi
 
 %pre mysql
 if ! %{__id} freeside &>/dev/null; then
-       /usr/sbin/useradd freeside
+%if "%{_vendor}" == "suse"
+       /usr/sbin/groupadd freeside
+%endif
+       /usr/sbin/useradd -m freeside
 fi
 
-%pre selfservice
+%pre selfservice-cgi
 if ! %{__id} freeside &>/dev/null; then
-       /usr/sbin/useradd freeside
+%if "%{_vendor}" == "suse"
+       /usr/sbin/groupadd freeside
+%endif
+       /usr/sbin/useradd -m freeside
 fi
 
 %post
@@ -305,8 +397,25 @@ fi
 %post mason
 # Make local httpd run with User/Group = freeside
 if [ -f %{apache_conffile} ]; then
+%if "%{_vendor}" != "suse"
        perl -p -i.fsbackup -e 's/^(User|Group) .*/$1 freeside/' %{apache_conffile}
+%else
+       perl -p -i.fsbackup -e 's/^(User) .*/$1 freeside/' %{apache_conffile}
+%endif
+fi
+# Fix up environment so pslatex will run
+%if "%{_vendor}" == "suse"
+if ! %{__grep} TEXINPUTS /etc/profile.local >/dev/null; then
+       echo "unset TEXINPUTS" >>/etc/profile.local
+fi
+if ! %{__grep} TEXINPUTS /etc/init.d/apache2 >/dev/null; then
+       perl -p -i.fsbackup -e 'print "unset TEXINPUTS\n\n" if /^httpd_conf\s*=\s*/;' /etc/init.d/apache2
 fi
+%endif
+
+%triggerin -- tetex 
+#texhash `kpsewhich -expand-var \$TEXMFLOCAL`
+texhash %{texmflocal}
 
 %clean
 %{__rm} -rf %{buildroot}
@@ -319,6 +428,9 @@ fi
 %attr(-,freeside,freeside) %dir %{freeside_conf}
 %attr(-,freeside,freeside) %dir %{freeside_lock}
 %attr(-,freeside,freeside) %dir %{freeside_log}
+%attr(0711,freeside,freeside) %config(noreplace) %{freeside_conf}/default_conf
+%attr(0644,freeside,freeside) %config(noreplace) %{freeside_conf}/default_conf/*
+%attr(444,root,root) %{texmflocal}/tex/generic/fslongtable.sty
 
 %files mason -f %{name}-%{version}-%{release}-mason-filelist
 %defattr(-, freeside, freeside, 0755)
@@ -329,13 +441,42 @@ fi
 
 %files mysql -f %{name}-%{version}-%{release}-mysql-filelist
 
-%files selfservice -f fs_selfservice/FS-SelfService/%{name}-%{version}-%{release}-selfservice-filelist
+%files selfservice
+%defattr(-, freeside, freeside, 0644)
+%attr(0644,root,root) %config(noreplace) %{apache_confdir}/%{name}-selfservice.conf
+
+%files selfservice-core -f fs_selfservice/FS-SelfService/%{name}-%{version}-%{release}-selfservice-core-filelist
 %defattr(-, freeside, freeside, 0644)
-%attr(0755,freeside,freeside) %{freeside_document_root}/selfservice/cgi
-%attr(0755,freeside,freeside) %{freeside_document_root}/selfservice/php
-%attr(0644,freeside,freeside) %{freeside_document_root}/selfservice/templates
+%attr(-,freeside,freeside) %dir %{freeside_socket}
+%attr(-,freeside,freeside) %dir %{freeside_lock}
+%attr(-,freeside,freeside) %dir %{freeside_log}
+
+%files selfservice-cgi
+%defattr(-, freeside, freeside, 0644)
+%attr(0711,freeside,freeside) %{freeside_selfservice_document_root}/cgi
+%attr(0644,freeside,freeside) %{freeside_selfservice_document_root}/templates
+
+%files selfservice-php
+%defattr(-, freeside, freeside, 0644)
+%attr(0755,freeside,freeside) %{freeside_selfservice_document_root}/php
 
 %changelog
+* Thu Jun 11 2009 Richard Siddall <richard.siddall@elirion.net> - 1.9-8
+- Since configuration is now kept in the RDBMS, don't install a configuration folder
+
+* Mon Dec 22 2008 Richard Siddall <richard.siddall@elirion.net> - 1.9-5
+- Modifications to make self-service work if you really insist on installing it on the same machine as Freeside
+
+* Tue Dec 9 2008 Richard Siddall <richard.siddall@elirion.net> - 1.9-4
+- Cleaning up after rpmlint
+
+* Tue Aug 26 2008 Richard Siddall <richard.siddall@elirion.net> - 1.9-3
+- More revisions for self-service interface
+
+* Sat Aug 23 2008 Richard Siddall <richard.siddall@elirion.net> - 1.7.3-2
+- Revisions for self-service interface
+- RT support is still missing
+
 * Sun Jul 8 2007 Richard Siddall <richard.siddall@elirion.net> - 1.7.3
 - Updated for upcoming Freeside 1.7.3
 - RT support is still missing