X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rpm%2Ffreeside.spec;h=77b506147a84966fcf295b20e1299a2c1e58e152;hp=a7ef443877b4761a722b92cf8abd0bda98d5806f;hb=8cfaefbde2841c7c56b234220490d778ede17a6a;hpb=c5a8ddac2d0395fd35bf0706a7a7c8b901882262 diff --git a/rpm/freeside.spec b/rpm/freeside.spec index a7ef44387..77b506147 100644 --- a/rpm/freeside.spec +++ b/rpm/freeside.spec @@ -1,6 +1,6 @@ %{!?_initrddir:%define _initrddir /etc/rc.d/init.d} %{!?version:%define version 1.9} -%{!?release:%define release 4} +%{!?release:%define release 6} Summary: Freeside ISP Billing System Name: freeside @@ -15,26 +15,41 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildArch: noarch Requires: %{name}-frontend Requires: %{name}-backend +%if "%{_vendor}" != "suse" Requires: tetex-latex +%else +Requires: te_latex +%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 _rpmlibdir /usr/lib/rpm +%define rpmfiles rpm %description Freeside is a flexible ISP billing system written by Ivan Kohler @@ -43,9 +58,10 @@ Freeside is a flexible ISP billing system written by Ivan Kohler Summary: HTML::Mason interface for %{name} Group: Applications/Internet Prefix: %{freeside_document_root} +%if "%{_vendor}" != "suse" Requires: mod_ssl +%endif Requires: perl-Apache-DBI -Conflicts: %{name}-apacheasp Provides: %{name}-frontend = %{version} BuildArch: noarch @@ -84,7 +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 -Conflicts: %{name} Requires: %{name}-selfservice-cgi %description selfservice @@ -94,7 +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 -Conflicts: %{name} %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. @@ -103,9 +117,8 @@ 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 -Conflicts: %{name} Requires: %{name}-selfservice-core -Prefix: %{freeside_document_root}/selfservice +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. @@ -114,8 +127,7 @@ 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 -Conflicts: %{name} -Prefix: %{freeside_document_root}/selfservice +Prefix: %{freeside_selfservice_document_root} %description selfservice-php This package installs the sample PHP scripts for the self-service interface for %{name}. @@ -125,7 +137,8 @@ For security reasons, it is set to conflict with %{name} as you should not insta %setup -q %{__rm} bin/pod2x # Only useful to Ivan Kohler now perl -pi -e 's|/usr/local/bin|%{_bindir}|g' FS/Makefile.PL -perl -pi -e 's|\s+-o\s+freeside\s+| |g' Makefile +# 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 @@ -136,6 +149,12 @@ perl -pi -e 's|socket\s*=\s*"/usr/local/freeside|socket = "%{freeside_socket}|g' 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 / %{name}-req #!/bin/sh @@ -163,14 +182,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} INSTALLSCRIPT=$RPM_BUILD_ROOT%{_bindir} +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}' 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 ../.. @@ -202,21 +229,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 /^/dev/null; then /usr/sbin/useradd freeside @@ -349,8 +373,21 @@ 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 %clean %{__rm} -rf %{buildroot} @@ -376,6 +413,7 @@ fi %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) @@ -385,14 +423,17 @@ fi %files selfservice-cgi %defattr(-, freeside, freeside, 0644) -%attr(0711,freeside,freeside) %{freeside_document_root}/selfservice/cgi -%attr(0644,freeside,freeside) %{freeside_document_root}/selfservice/templates +%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_document_root}/selfservice/php +%attr(0755,freeside,freeside) %{freeside_selfservice_document_root}/php %changelog +* Mon Dec 22 2008 Richard Siddall - 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 - 1.9-4 - Cleaning up after rpmlint