diff options
author | rsiddall <rsiddall> | 2007-12-14 03:23:52 +0000 |
---|---|---|
committer | rsiddall <rsiddall> | 2007-12-14 03:23:52 +0000 |
commit | 0a17fa983e6b225c33bf8a4e261f068e77c48a14 (patch) | |
tree | 2b038e84b485c70226aca339982deb2d46541b9d | |
parent | 0ff440cadfd91c5001e358fa294db02b5940a6ca (diff) |
Ugly hack to extend rpmbuild's auto-requires to process handler.pl. This is loosely based on notes on the Fedora wiki. The internal dependency generator is disabled and as far as possible the same code is used to generate provides and requires. The list of files to be scanned for requires is saved by a supplemental script and if it contains handler.pl, that file is scanned for requires with the standard Perl dependencies checker. References to RT are filtered out as RT is not enabled in this version of the .spec file. This mod obsoletes the freeside-mason-deps.inc file and simplifies building the RPMs.
-rw-r--r-- | install/rpm/freeside-mason.deps.inc | 107 | ||||
-rw-r--r-- | install/rpm/freeside.spec | 20 |
2 files changed, 17 insertions, 110 deletions
diff --git a/install/rpm/freeside-mason.deps.inc b/install/rpm/freeside-mason.deps.inc deleted file mode 100644 index efc31cae5..000000000 --- a/install/rpm/freeside-mason.deps.inc +++ /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) diff --git a/install/rpm/freeside.spec b/install/rpm/freeside.spec index c3102e2f4..0796c4ee7 100644 --- a/install/rpm/freeside.spec +++ b/install/rpm/freeside.spec @@ -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 |