Ugly hack to extend rpmbuild's auto-requires to process handler.pl. This is loosely...
authorrsiddall <rsiddall>
Fri, 14 Dec 2007 03:23:52 +0000 (03:23 +0000)
committerrsiddall <rsiddall>
Fri, 14 Dec 2007 03:23:52 +0000 (03:23 +0000)
install/rpm/freeside-mason.deps.inc [deleted file]
install/rpm/freeside.spec

diff --git a/install/rpm/freeside-mason.deps.inc b/install/rpm/freeside-mason.deps.inc
deleted file mode 100644 (file)
index efc31ca..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-Requires: perl(Business::CreditCard)
-Requires: perl(CGI)
-Requires: perl(CGI::Cookie)
-Requires: perl(Chart::LinesPoints)
-Requires: perl(Chart::Mountain)
-Requires: perl(Color::Scheme)
-Requires: perl(Date::Format)
-Requires: perl(Date::Parse)
-Requires: perl(DateTime)
-Requires: perl(DateTime::Format::Strptime)
-Requires: perl(FS)
-Requires: perl(FS::AccessRight)
-Requires: perl(FS::CGI)
-Requires: perl(FS::Conf)
-Requires: perl(FS::Misc)
-Requires: perl(FS::Msgcat)
-Requires: perl(FS::Record)
-Requires: perl(FS::Report::Table::Monthly)
-Requires: perl(FS::TicketSystem)
-Requires: perl(FS::UI::Web)
-Requires: perl(FS::UI::bytecount)
-Requires: perl(FS::UID)
-Requires: perl(FS::XMLRPC)
-Requires: perl(FS::access_group)
-Requires: perl(FS::access_groupagent)
-Requires: perl(FS::access_right)
-Requires: perl(FS::access_user)
-Requires: perl(FS::access_usergroup)
-Requires: perl(FS::addr_block)
-Requires: perl(FS::agent)
-Requires: perl(FS::agent_payment_gateway)
-Requires: perl(FS::agent_type)
-Requires: perl(FS::cdr)
-Requires: perl(FS::cust_bill)
-Requires: perl(FS::cust_bill_pay)
-Requires: perl(FS::cust_credit)
-Requires: perl(FS::cust_credit_bill)
-Requires: perl(FS::cust_main)
-Requires: perl(FS::cust_main_county)
-Requires: perl(FS::cust_main_note)
-Requires: perl(FS::cust_pay)
-Requires: perl(FS::cust_pkg)
-Requires: perl(FS::cust_pkg_reason)
-Requires: perl(FS::cust_refund)
-Requires: perl(FS::cust_svc)
-Requires: perl(FS::domain_record)
-Requires: perl(FS::export_svc)
-Requires: perl(FS::inventory_class)
-Requires: perl(FS::inventory_item)
-Requires: perl(FS::msgcat)
-Requires: perl(FS::nas)
-Requires: perl(FS::part_bill_event)
-Requires: perl(FS::part_export)
-Requires: perl(FS::part_export_option)
-Requires: perl(FS::part_pkg)
-Requires: perl(FS::part_referral)
-Requires: perl(FS::part_svc)
-Requires: perl(FS::part_svc_router)
-Requires: perl(FS::part_virtual_field)
-Requires: perl(FS::pay_batch)
-Requires: perl(FS::payby)
-Requires: perl(FS::payment_gateway)
-Requires: perl(FS::pkg_class)
-Requires: perl(FS::pkg_svc)
-Requires: perl(FS::port)
-Requires: perl(FS::queue)
-Requires: perl(FS::raddb)
-Requires: perl(FS::rate)
-Requires: perl(FS::rate_prefix)
-Requires: perl(FS::rate_region)
-Requires: perl(FS::reason)
-Requires: perl(FS::reason_type)
-Requires: perl(FS::router)
-Requires: perl(FS::session)
-Requires: perl(FS::svc_acct)
-Requires: perl(FS::svc_acct_pop)
-Requires: perl(FS::svc_broadband)
-Requires: perl(FS::svc_domain)
-Requires: perl(FS::svc_external)
-Requires: perl(FS::svc_forward)
-Requires: perl(FS::svc_phone)
-Requires: perl(FS::svc_www)
-Requires: perl(FS::type_pkgs)
-Requires: perl(HTML::Entities)
-Requires: perl(HTML::Mason)
-Requires: perl(HTML::Mason::ApacheHandler)
-Requires: perl(HTML::Scrubber)
-Requires: perl(HTML::Widgets::SelectLayers)
-Requires: perl(IO::File)
-Requires: perl(IO::Handle)
-Requires: perl(IO::Scalar)
-Requires: perl(JSON)
-Requires: perl(Lingua::EN::Inflect)
-Requires: perl(List::Util)
-Requires: perl(Locale::Country)
-Requires: perl(MIME::Entity)
-Requires: perl(Net::Whois::Raw)
-Requires: perl(Spreadsheet::WriteExcel)
-Requires: perl(String::Approx)
-Requires: perl(Text::CSV_XS)
-Requires: perl(Text::Quoted)
-Requires: perl(Text::Wrapper)
-Requires: perl(Tie::IxHash)
-Requires: perl(Time::Duration)
-Requires: perl(Time::Local)
-Requires: perl(Time::ParseDate)
-Requires: perl(URI::Escape)
index c3102e2..0796c4e 100644 (file)
@@ -45,7 +45,6 @@ Group: Applications/Internet
 Prefix: /var/www/freeside
 Requires: mod_ssl
 Requires: perl-Apache-DBI
-%%include freeside-mason.deps.inc
 Conflicts: %{name}-apacheasp
 Provides: %{name}-frontend
 BuildArch: noarch
@@ -98,6 +97,21 @@ For security reasons, it is set to conflict with %{name} so you cannot install t
 perl -pi -e 's|/usr/local/bin|%{buildroot}%{_bindir}|g' FS/Makefile.PL
 perl -ni -e 'print if !/\s+chown\s+/;' Makefile
 
+# 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 | 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::' \
+| sort -u
+EOF
+
+%define __find_provides %{_rpmlibdir}/rpmdeps --provides
+%define __find_requires %{_builddir}/%{name}-%{version}/%{name}-req
+%{__chmod} +x %{__find_requires}
+%define _use_internal_dependency_generator 0
+
 %build
 
 # Add freeside user and group if there isn't already such a user
@@ -182,8 +196,9 @@ for DBTYPE in %{db_types}; do
 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
@@ -305,7 +320,6 @@ fi
 
 %files mason -f %{name}-%{version}-%{release}-mason-filelist
 %defattr(-, freeside, freeside, 0755)
-%attr(-,freeside,freeside) %{freeside_conf}/handler.pl
 %attr(-,freeside,freeside) %{freeside_cache}/masondata
 %attr(0644,root,root) %config(noreplace) %{apache_confdir}/%{name}-base%{apache_version}.conf