1 %define php_name php%{?php_suffix}
3 Summary: PHP extension for XHProf, a Hierarchical Profiler
4 Name: %{php_name}-pecl-xhprof
8 Group: Development/Languages/PHP
9 Source0: http://pecl.php.net/get/%{modname}-%{version}.tgz
10 # Source0-md5: 275f15d2986f3b9c501f1867703f3cec
11 Source1: %{modname}.ini
13 URL: http://pecl.php.net/package/xhprof
14 BuildRequires: %{php_name}-devel >= 4:5.2.0
15 BuildRequires: rpmbuild(macros) >= 1.650
16 %{?requires_php_extension}
17 # https://bugs.php.net/61262
18 ExclusiveArch: %{ix86} %{x8664}
19 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
21 %define _webapps /etc/webapps
22 %define _webapp %{modname}
23 %define _sysconfdir %{_webapps}/%{_webapp}
24 %define _appdir %{_datadir}/%{_webapp}
27 XHProf is a function-level hierarchical profiler for PHP.
29 This package provides the raw data collection component, implemented
30 in C (as a PHP extension).
32 The HTML based navigational interface is provided in the "xhprof"
36 Summary: A Hierarchical Profiler for PHP - Web interface
37 Group: Development/Tools
38 Requires: %{_bindir}/dot
39 Requires: php(core) >= 5.2.0
40 Requires: %{name} = %{version}-%{release}
41 %if "%{_rpmversion}" >= "5"
45 %description -n xhprof
46 XHProf is a function-level hierarchical profiler for PHP and has a
47 simple HTML based navigational interface.
49 The raw data collection component, implemented in C (as a PHP
50 extension, provided by the "php-pecl-xhprof" package).
52 The reporting/UI layer is all in PHP. It is capable of reporting
53 function-level inclusive and exclusive wall times, memory usage, CPU
54 times and number of calls for each function.
56 Additionally, it supports ability to compare two runs (hierarchical
57 DIFF reports), or aggregate results from multiple runs.
59 Documentation: %{_docdir}/%{name}-%{version}/docs/index.html
63 mv %{modname}-%{version}/* .
66 mv xhprof_html/docs docs
76 # simple module load test
77 %{__php} --no-php-ini \
78 --define extension_dir=extension/modules \
79 --define extension=%{modname}.so \
80 --modules | grep %{modname}
84 rm -rf $RPM_BUILD_ROOT
85 %{__make} install -C extension \
86 INSTALL_ROOT=$RPM_BUILD_ROOT
88 install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
89 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
91 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
92 cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
94 # Install the web interface
95 install -d $RPM_BUILD_ROOT%{_sysconfdir}
96 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
98 install -d $RPM_BUILD_ROOT%{_datadir}/xhprof
99 cp -a xhprof_html $RPM_BUILD_ROOT%{_datadir}/xhprof/xhprof_html
100 cp -a xhprof_lib $RPM_BUILD_ROOT%{_datadir}/xhprof/xhprof_lib
103 rm -rf $RPM_BUILD_ROOT
106 %php_webserver_restart
109 if [ "$1" = 0 ]; then
110 %php_webserver_restart
113 %triggerin -n xhprof -- apache-base
114 %webapp_register httpd %{_webapp}
116 %triggerun -n xhprof -- apache-base
117 %webapp_unregister httpd %{_webapp}
120 %defattr(644,root,root,755)
121 %doc CHANGELOG CREDITS README LICENSE
122 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/%{modname}.ini
123 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
124 %{_examplesdir}/%{name}-%{version}
127 %defattr(644,root,root,755)
129 %dir %attr(750,root,http) %{_sysconfdir}
130 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf