X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rpm%2Ffreeside.spec;h=27aa4056a6b82ba4ed2489e2f9b5efa5371ef269;hp=8a07bcc224d6853e3b71adf82dfc582636388dc5;hb=baf358bed42ad8459f4124b77febb7d937e761c1;hpb=ca232ab57eb96f7fa68c2775b26beb13ecc8cbdf diff --git a/rpm/freeside.spec b/rpm/freeside.spec index 8a07bcc22..27aa4056a 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 1} +%{!?release:%define release 3} Summary: Freeside ISP Billing System Name: freeside @@ -25,6 +25,7 @@ Requires: perl-Fax-Hylafax-Client %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 @@ -42,7 +43,7 @@ Freeside is a flexible ISP billing system written by Ivan Kohler %package mason Summary: HTML::Mason interface for %{name} Group: Applications/Internet -Prefix: /var/www/freeside +Prefix: %{freeside_document_root} Requires: mod_ssl Requires: perl-Apache-DBI Conflicts: %{name}-apacheasp @@ -85,17 +86,57 @@ Please note that this RPM does not create the database or database user; it only 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 +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. +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 +Conflicts: %{name} +Requires: %{name}-selfservice-core +Prefix: %{freeside_document_root}/selfservice + +%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 +Conflicts: %{name} +Prefix: %{freeside_document_root}/selfservice + +%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 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/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-* + # Override find-requires/find-provides to supplement Perl requires for HTML::Mason file handler.pl cat << \EOF > %{name}-req #!/bin/sh @@ -113,8 +154,6 @@ EOF %build -# Add freeside user and group if there isn't already such a user -%{__id} freeside 2>/dev/null >/dev/null || /usr/sbin/useradd -s /bin/sh freeside # False laziness... # The htmlman target now makes wiki documentation. Let's pretend we made it. touch htmlman @@ -146,7 +185,8 @@ touch install-perl-modules perl-modules %{__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} + [ -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 done @@ -166,6 +206,7 @@ touch docs 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 @@ -212,9 +253,13 @@ fi %{__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/* $RPM_BUILD_ROOT%{freeside_document_root}/selfservice/cgi +%{__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 @@ -249,8 +294,8 @@ 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 +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 @@ -276,7 +321,7 @@ if ! %{__id} freeside &>/dev/null; then /usr/sbin/useradd freeside fi -%pre selfservice +%pre selfservice-cgi if ! %{__id} freeside &>/dev/null; then /usr/sbin/useradd freeside fi @@ -316,6 +361,7 @@ fi %attr(-,freeside,freeside) %dir %{freeside_conf} %attr(-,freeside,freeside) %dir %{freeside_lock} %attr(-,freeside,freeside) %dir %{freeside_log} +%attr(0644,freeside,freeside) %config(noreplace) %{freeside_conf}/default_conf %files mason -f %{name}-%{version}-%{release}-mason-filelist %defattr(-, freeside, freeside, 0755) @@ -326,13 +372,32 @@ 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(0755,freeside,freeside) %{freeside_document_root}/selfservice/cgi -%attr(0755,freeside,freeside) %{freeside_document_root}/selfservice/php + +%files selfservice-core -f fs_selfservice/FS-SelfService/%{name}-%{version}-%{release}-selfservice-core-filelist +%defattr(-, freeside, freeside, 0644) +%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_document_root}/selfservice/cgi %attr(0644,freeside,freeside) %{freeside_document_root}/selfservice/templates +%files selfservice-php +%defattr(-, freeside, freeside, 0644) +%attr(0755,freeside,freeside) %{freeside_document_root}/selfservice/php + %changelog +* Tue Aug 26 2008 Richard Siddall - 1.9-3 +- More revisions for self-service interface + +* Sat Aug 23 2008 Richard Siddall - 1.7.3-2 +- Revisions for self-service interface +- RT support is still missing + * Sun Jul 8 2007 Richard Siddall - 1.7.3 - Updated for upcoming Freeside 1.7.3 - RT support is still missing