Updated for 1.7.4rc3
[freeside.git] / install / rpm / freeside.spec
index 0a24849..cbe19a6 100644 (file)
@@ -1,6 +1,6 @@
 %{!?_initrddir:%define _initrddir /etc/rc.d/init.d}
-%{!?version:%define version 1.7.3}
-%{!?release:%define release 5}
+%{!?version:%define version 1.7.4rc3}
+%{!?release:%define release 1}
 
 Summary: Freeside ISP Billing System
 Name: freeside
@@ -62,7 +62,6 @@ Prefix: %{freeside_document_root}
 Requires: mod_ssl
 %endif
 Requires: perl-Apache-DBI
-Conflicts: %{name}-apacheasp
 Provides: %{name}-frontend = %{version}
 BuildArch: noarch
 
@@ -101,9 +100,6 @@ 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
-%if "%{_vendor}" != "suse"
-Conflicts: %{name}
-%endif
 Requires: %{name}-selfservice-cgi
 
 %description selfservice
@@ -113,9 +109,6 @@ For security reasons, it is set to conflict with %{name} as you should not insta
 %package selfservice-core
 Summary: Core Perl libraries for the self-service interface for %{name}
 Group: Applications/Internet
-%if "%{_vendor}" != "suse"
-Conflicts: %{name}
-%endif
 
 %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.
@@ -124,9 +117,6 @@ For security reasons, it is set to conflict with %{name} as you should not insta
 %package selfservice-cgi
 Summary: CGI scripts for the self-service interface for %{name}
 Group: Applications/Internet
-%if "%{_vendor}" != "suse"
-Conflicts: %{name}
-%endif
 Requires: %{name}-selfservice-core
 Prefix: %{freeside_selfservice_document_root}
 
@@ -137,9 +127,6 @@ For security reasons, it is set to conflict with %{name} as you should not insta
 %package selfservice-php
 Summary: Sample PHP files for the self-service interface for %{name}
 Group: Applications/Internet
-%if "%{_vendor}" != "suse"
-Conflicts: %{name}
-%endif
 Prefix: %{freeside_selfservice_document_root}
 
 %description selfservice-php
@@ -148,7 +135,7 @@ For security reasons, it is set to conflict with %{name} as you should not insta
 
 %prep
 %setup -q
-%{__rm} bin/pod2x # Only useful to Ivan Kohler now
+%{__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
@@ -157,6 +144,7 @@ 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-*
@@ -200,7 +188,7 @@ else
 fi
 %{__make} OPTIMIZE="$RPM_OPT_FLAGS"
 cd ..
-%{__make} perl-modules VERSION='%{version}-%{release}' RT_ENABLED=%{rt_enabled} 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
@@ -220,16 +208,18 @@ 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
+       [ -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}
-       %{__mv} $RPM_BUILD_ROOT/tmp/* $RPM_BUILD_ROOT%{freeside_conf}
-       /bin/rmdir $RPM_BUILD_ROOT/tmp
+       %{__mv} $RPM_BUILD_ROOT/tmp/secrets $RPM_BUILD_ROOT%{freeside_conf}
+       %{__mv} $RPM_BUILD_ROOT/tmp/conf* $RPM_BUILD_ROOT%{freeside_conf}/default_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
@@ -335,27 +325,42 @@ cd ../..
 
 %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-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
@@ -371,11 +376,39 @@ if [ -f %{freeside_conf}/secrets ]; then
        perl -p -i.fsbackup -e 's/^DBI:.*?:/DBI:Pg:/' %{freeside_conf}/secrets
 fi
 
+%triggerin postgresql -- %{name}
+if [ ! -d %{freeside_conf}/conf.DBI:Pg:dbname=%{name} ]; then
+       mkdir %{freeside_conf}/conf.DBI:Pg:dbname=%{name}
+       chown freeside.freeside %{freeside_conf}/conf.DBI:Pg:dbname=%{name}
+       cp -pr %{freeside_conf}/default_conf/* %{freeside_conf}/conf.DBI:Pg:dbname=%{name}
+fi
+
+%triggerin -- %{name}-postgresql
+if [ ! -d %{freeside_conf}/conf.DBI:Pg:dbname=%{name} ]; then
+       mkdir %{freeside_conf}/conf.DBI:Pg:dbname=%{name}
+       chown freeside.freeside %{freeside_conf}/conf.DBI:Pg:dbname=%{name}
+       cp -pr %{freeside_conf}/default_conf/* %{freeside_conf}/conf.DBI:Pg:dbname=%{name}
+fi
+
 %post mysql
 if [ -f %{freeside_conf}/secrets ]; then
        perl -p -i.fsbackup -e 's/^DBI:.*?:/DBI:mysql:/' %{freeside_conf}/secrets
 fi
 
+%triggerin mysql -- %{name}
+if [ ! -d %{freeside_conf}/conf.DBI:mysql:dbname=%{name} ]; then
+       mkdir %{freeside_conf}/conf.DBI:mysql:dbname=%{name}
+       chown freeside.freeside %{freeside_conf}/conf.DBI:mysql:dbname=%{name}
+       cp -pr %{freeside_conf}/default_conf/* %{freeside_conf}/conf.DBI:mysql:dbname=%{name}
+fi
+
+%triggerin -- %{name}-mysql
+if [ ! -d %{freeside_conf}/conf.DBI:mysql:dbname=%{name} ]; then
+       mkdir %{freeside_conf}/conf.DBI:mysql:dbname=%{name}
+       chown freeside.freeside %{freeside_conf}/conf.DBI:mysql:dbname=%{name}
+       cp -pr %{freeside_conf}/default_conf/* %{freeside_conf}/conf.DBI:mysql:dbname=%{name}
+fi
+
 %post mason
 # Make local httpd run with User/Group = freeside
 if [ -f %{apache_conffile} ]; then
@@ -406,6 +439,8 @@ 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/*
 
 %files mason -f %{name}-%{version}-%{release}-mason-filelist
 %defattr(-, freeside, freeside, 0755)