# remirepo spec file for php-pecl-opencensus # # Copyright (c) 2017-2022 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # # we don't want -z defs linker flag %undefine _strict_symbol_defs_build %if 0%{?scl:1} %scl_package php-pecl-opencensus %endif %global pecl_name opencensus %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global with_tests %{?_without_tests:0}%{!?_without_tests:1} %if "%{php_version}" < "5.6" %global ini_name %{pecl_name}.ini %else %global ini_name 40-%{pecl_name}.ini %endif %global upstream_version 0.3.0 #global upstream_prever RC2 Summary: A stats collection and distributed tracing framework Name: %{?scl_prefix}php-pecl-opencensus Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} Release: 3%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: ASL 2.0 URL: https://pecl.php.net/package/%{pecl_name} Source0: https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz Patch0: %{pecl_name}-tests.patch BuildRequires: make BuildRequires: %{?dtsprefix}gcc # upstream say 7.0 but https://github.com/census-instrumentation/opencensus-php/issues/274 BuildRequires: %{?scl_prefix}php-devel >= 7.1 BuildRequires: %{?scl_prefix}php-pear Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} %{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} Provides: %{?scl_prefix}php-%{pecl_name} = %{version} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} %description OpenCensus is a open source, distributed tracing system that allows you to collect latency data and report it to any trace aggregation system such as Zipkin or Stackdriver Trace. This extension allows you to easily gather latency and other metadata by watching for targeted function and method invocations without needing to inject code into the libraries. Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. %prep %setup -qc mv %{pecl_name}-%{upstream_version}%{?upstream_prever} NTS # Don't install/register tests sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml cd NTS %patch0 -p2 # Sanity check, really often broken extver=$(sed -n '/#define PHP_OPENCENSUS_VERSION/{s/.* "//;s/".*$//;p}' php_opencensus.h) if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then : Error: Upstream extension version is ${extver}, expecting %{upstream_version}%{?upstream_prever}. exit 1 fi cd .. %if %{with_zts} # duplicate for ZTS build cp -pr NTS ZTS %endif # Drop in the bit of configuration cat << 'EOF' | tee %{ini_name} ; Enable '%{pecl_name}' module extension = %{pecl_name}.so ; Configuration ;opencensus.client.path = /tmp/oc-daemon.sock EOF %build %{?dtsenable} cd NTS %{_bindir}/phpize %configure \ --with-php-config=%{_bindir}/php-config \ --with-libdir=%{_lib} \ --enable-opencensus make %{?_smp_mflags} %if %{with_zts} cd ../ZTS %{_bindir}/zts-phpize %configure \ --with-php-config=%{_bindir}/zts-php-config \ --with-libdir=%{_lib} \ --enable-opencensus make %{?_smp_mflags} %endif %install %{?dtsenable} # Install the NTS stuff make -C NTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} # Install XML package description install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml %if %{with_zts} # Install the ZTS stuff make -C ZTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # Documentation for i in $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//') do install -Dpm 644 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done %check %if "%{php_version}" > "8.1" rm ?TS/tests/span_stacktrace_default.phpt %endif cd NTS : Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ --modules | grep %{pecl_name} %if %{with_tests} : Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ %{__php} -n run-tests.php -q --show-diff %endif %if %{with_zts} cd ../ZTS : Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ --modules | grep %{pecl_name} %if %{with_tests} : Upstream test suite for ZTS extension TEST_PHP_EXECUTABLE=%{__ztsphp} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ %{__ztsphp} -n run-tests.php -q --show-diff %endif %endif %if 0%{?fedora} < 24 && 0%{?rhel} < 8 # when pear installed alone, after us %triggerin -- %{?scl_prefix}php-pear if [ -x %{__pecl} ] ; then %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : fi # posttrans as pear can be installed after us %posttrans if [ -x %{__pecl} ] ; then %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : fi %postun if [ $1 -eq 0 -a -x %{__pecl} ] ; then %{pecl_uninstall} %{pecl_name} >/dev/null || : fi %endif %files %doc %{pecl_docdir}/%{pecl_name} %{?_licensedir:%license NTS/LICENSE} %{pecl_xmldir}/%{name}.xml %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{pecl_name}.so %if %{with_zts} %config(noreplace) %{php_ztsinidir}/%{ini_name} %{php_ztsextdir}/%{pecl_name}.so %endif %changelog * Tue Sep 13 2022 Remi Collet - 0.3.0-3 - add patch for test suite with PHP 8.2 from https://github.com/census-instrumentation/opencensus-php/pull/286 * Wed Sep 01 2021 Remi Collet - 0.3.0-2 - rebuild for 8.1.0RC1 * Thu Jun 10 2021 Remi Collet - 0.3.0-1 - update to 0.3.0 - report segfault with PHP 7.0 https://github.com/census-instrumentation/opencensus-php/issues/274 - report 1 failed test with PHP 8.1.0alpha1 https://github.com/census-instrumentation/opencensus-php/issues/273 * Tue Sep 03 2019 Remi Collet - 0.2.2-5 - rebuild for 7.4.0RC1 * Tue Jul 23 2019 Remi Collet - 0.2.2-4 - rebuild for 7.4.0beta1 * Thu Aug 16 2018 Remi Collet - 0.2.2-3 - rebuild for 7.3.0beta2 new ABI * Wed Jul 18 2018 Remi Collet - 0.2.2-2 - rebuild for 7.3.0alpha4 new ABI - see https://github.com/census-instrumentation/opencensus-php/pull/195 * Sun May 13 2018 Remi Collet - 0.2.2-1 - update to 0.2.2 * Thu Apr 19 2018 Remi Collet - 0.2.1-1 - update to 0.2.1 * Tue Apr 3 2018 Remi Collet - 0.2.0-1 - update to 0.2.0 * Tue Mar 6 2018 Remi Collet - 0.1.4-1 - Update to 0.1.4 * Sat Mar 3 2018 Remi Collet - 0.1.3-1 - Update to 0.1.3 * Mon Jan 22 2018 Remi Collet - 0.1.2-1 - Update to 0.1.2 * Thu Dec 28 2017 Remi Collet - 0.1.1-1 - Update to 0.1.1 (alpha) * Wed Dec 13 2017 Remi Collet - 0.1.0-1 - Update to 0.1.0 (alpha) * Tue Dec 12 2017 Remi Collet - 0.1.0~RC2-1 - Update to 0.1.0RC2 (devel) * Sat Oct 21 2017 Remi Collet - 0.0.4-1 - Update to 0.0.4 (devel) * Sat Aug 26 2017 Remi Collet - 0.0.3-1 - Update to 0.0.3 * Wed Aug 16 2017 Remi Collet - 0.0.2-1 - Update to 0.0.2 * Tue Aug 15 2017 Remi Collet - 0.0.1-1 - new package, version 0.0.1 (devel) - open https://github.com/census-instrumentation/opencensus-php/issues/13 failed test on 32-bit arch - open https://github.com/census-instrumentation/opencensus-php/issues/12 missing file in pecl archive - open https://github.com/census-instrumentation/opencensus-php/issues/14 segfault during test suite