3 %bcond_without web # make web package
5 # build web package with php 7.4
6 %if 0%{?_pld_builder:1} && "%{?php_suffix}" != "74"
10 %define php_name php%{?php_suffix}
11 %define modname xhprof
12 Summary: PHP extension for XHProf, a Hierarchical Profiler
13 Name: %{php_name}-pecl-xhprof
17 Group: Development/Languages/PHP
18 Source0: https://pecl.php.net/get/%{modname}-%{version}.tgz
19 # Source0-md5: b928016eda4ae6ae473f9175d9beaced
20 Source1: %{modname}.ini
22 URL: https://pecl.php.net/package/xhprof
23 BuildRequires: %{php_name}-devel >= 4:7.0
24 BuildRequires: rpmbuild(macros) >= 1.666
25 %{?requires_php_extension}
26 Provides: php(xhprof) = %{version}
27 Obsoletes: php-pecl-xhprof < 0.9.4-2
28 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
30 %define _webapps /etc/webapps
31 %define _webapp %{modname}
32 %define _sysconfdir %{_webapps}/%{_webapp}
33 %define _appdir %{_datadir}/%{_webapp}
36 XHProf is a function-level hierarchical profiler for PHP.
38 This package provides the raw data collection component, implemented
39 in C (as a PHP extension).
41 The HTML based navigational interface is provided in the "xhprof"
45 Summary: A Hierarchical Profiler for PHP - Web interface
46 Group: Development/Tools
47 Requires: %{_bindir}/dot
48 Requires: php(core) >= 5.2.0
49 Requires: php(xhprof) = %{version}
52 %description -n xhprof
53 XHProf is a function-level hierarchical profiler for PHP and has a
54 simple HTML based navigational interface.
56 The raw data collection component, implemented in C (as a PHP
57 extension, provided by the "php-pecl-xhprof" package).
59 The reporting/UI layer is all in PHP. It is capable of reporting
60 function-level inclusive and exclusive wall times, memory usage, CPU
61 times and number of calls for each function.
63 Additionally, it supports ability to compare two runs (hierarchical
64 DIFF reports), or aggregate results from multiple runs.
66 Documentation: %{_docdir}/%{name}-%{version}/docs/index.html
70 mv %{modname}-%{version}/* .
73 mv xhprof_html/docs docs
83 # simple module load test
85 -d extension_dir=extension/modules \
86 -d extension=%{modname}.so \
88 grep %{modname} modules.log
92 rm -rf $RPM_BUILD_ROOT
93 %{__make} install -C extension \
94 INSTALL_ROOT=$RPM_BUILD_ROOT
96 install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
97 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
99 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
100 cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
102 # Install the web interface
104 install -d $RPM_BUILD_ROOT%{_sysconfdir}
105 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
107 install -d $RPM_BUILD_ROOT%{_datadir}/xhprof
108 cp -a xhprof_html $RPM_BUILD_ROOT%{_datadir}/xhprof/xhprof_html
109 cp -a xhprof_lib $RPM_BUILD_ROOT%{_datadir}/xhprof/xhprof_lib
113 rm -rf $RPM_BUILD_ROOT
116 %php_webserver_restart
119 if [ "$1" = 0 ]; then
120 %php_webserver_restart
123 %triggerin -n xhprof -- apache-base
124 %webapp_register httpd %{_webapp}
126 %triggerun -n xhprof -- apache-base
127 %webapp_unregister httpd %{_webapp}
130 %defattr(644,root,root,755)
131 %doc CHANGELOG CREDITS README.md LICENSE
132 %config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/%{modname}.ini
133 %attr(755,root,root) %{php_extensiondir}/%{modname}.so
134 %{_examplesdir}/%{name}-%{version}
138 %defattr(644,root,root,755)
140 %dir %attr(750,root,http) %{_sysconfdir}
141 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf