diff options
Diffstat (limited to 'php-pecl-datadog-trace.spec')
-rw-r--r-- | php-pecl-datadog-trace.spec | 444 |
1 files changed, 365 insertions, 79 deletions
diff --git a/php-pecl-datadog-trace.spec b/php-pecl-datadog-trace.spec index 3118678..9b016f6 100644 --- a/php-pecl-datadog-trace.spec +++ b/php-pecl-datadog-trace.spec @@ -1,18 +1,26 @@ # remirepo spec file for php-pecl-datadog-trace # -# Copyright (c) 2019-2020 Remi Collet -# License: CC-BY-SA +# Copyright (c) 2019-2024 Remi Collet +# License: CC-BY-SA-4.0 # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # %if 0%{?scl:1} -%global sub_prefix %{scl_prefix} %scl_package php-pecl-datadog-trace %else %global _root_libdir %{_libdir} +%global _root_bindir %{_bindir} %endif +# to much issues with test suite and parallel builds +%bcond_with tests + +# TODO: build for EL-8 and EL-9 +# see https://rpms.remirepo.net/rpmphp/zoom.php?rpm=rust +# if needed, build using --enablerepo=stream +# and delete root_cache after the build + # pecl name %global proj_name datadog_trace # no underscore for package name @@ -21,33 +29,43 @@ %global pecl_name ddtrace %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} -%global with_tests 0%{!?_without_tests:1} %global ini_name 40-%{pecl_name}.ini +%global sources %{proj_name}-%{version} +%global _configure ../%{sources}/configure Summary: APM and distributed tracing for PHP -Name: %{?sub_prefix}php-pecl-datadog-trace -Version: 0.48.2 +Name: %{?scl_prefix}php-pecl-datadog-trace +Version: 0.98.1 Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} # extension is dual-licensed under Apache 2.0 or BSD3. -# mpack is MIT -License: (ASL 2.0 or BSD) and MIT +# bundled rust ext are MIT AND Apache-2.0 +License: (Apache-2.0 OR BSD-3-Clause) AND MIT AND Apache-2.0 URL: https://pecl.php.net/package/%{proj_name} Source0: https://pecl.php.net/get/%{proj_name}-%{version}.tgz +# awfull hack, use a bundled rust registry +Source1: makedeps.sh +Source2: %{proj_name}-deps-%{version}.tgz # ddtrace only supports 64-bit platforms ExcludeArch: %{ix86} %{arm} -%if 0%{?rhel} == 6 +%if 0%{?rhel} == 7 && 0%{?dtsversion} == 0 BuildRequires: devtoolset-6-toolchain -%else -BuildRequires: %{?dtsprefix}gcc +%global dtsversion 6 +%global dtsenable source /opt/rh/devtoolset-6/enable +%global dtsprefix devtoolset-6- %endif -BuildRequires: %{?scl_prefix}php-devel > 5.6 +BuildRequires: make +BuildRequires: cargo >= 1.70 +BuildRequires: rust >= 1.70 +BuildRequires: %{?dtsprefix}gcc +BuildRequires: %{?scl_prefix}php-devel >= 7.0 +BuildRequires: %{?scl_prefix}php-devel < 8.4 BuildRequires: %{?scl_prefix}php-pear BuildRequires: curl-devel -# For tests -BuildRequires: %{?scl_prefix}php-curl BuildRequires: %{?scl_prefix}php-json +BuildRequires: %{?scl_prefix}php-curl +# For tests BuildRequires: %{?scl_prefix}php-posix #BuildRequires: gdb #BuildRequires: %%{?scl_prefix}php-debuginfo @@ -55,70 +73,76 @@ BuildRequires: %{?scl_prefix}php-posix Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} -%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} +Requires: %{?scl_prefix}php-json%{?_isa} +%if "%{php_version}" > "8.0" +Requires: %{?scl_prefix}php-curl%{?_isa} +%endif Provides: %{?scl_prefix}php-%{pecl_name} = %{version} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} Provides: %{?scl_prefix}php-pecl(%{proj_name}) = %{version} Provides: %{?scl_prefix}php-pecl(%{proj_name})%{?_isa} = %{version} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-%{safe_name} = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-%{safe_name}%{?_isa} = %{version}-%{release} -%endif - -%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} -# Other third party repo stuff -%if "%{php_version}" > "7.2" -Obsoletes: php72u-pecl-%{safe_name} <= %{version} -%endif -%if "%{php_version}" > "7.3" -Obsoletes: php73-pecl-%{safe_name} <= %{version} -%endif -%if "%{php_version}" > "7.4" -Obsoletes: php74-pecl-%{safe_name} <= %{version} -%endif -%endif - -%if 0%{?fedora} < 20 && 0%{?rhel} < 7 -# Filter shared private -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} -%endif %description The Datadog PHP Tracer brings APM and distributed tracing to PHP. +Documentation: https://docs.datadoghq.com/tracing/languages/php/ + 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 -q -c -mv %{proj_name}-%{version} NTS +%setup -q -c -a2 # Don't install tests sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml -cd NTS +cd %{sources} : PEAR installer stuff sed -e 's:@php_dir@:%{pear_phpdir}:' \ -e 's:_BUILD_FROM_PECL_:1:' \ - -i src/ext/ddtrace.c + -i ext/ddtrace.c \ + ext/configuration.h -cp src/ext/mpack/LICENSE LICENSE.mpack : Sanity check, really often broken -extver=$(sed -n '/#define PHP_DDTRACE_VERSION /{s/.* "//;s/".*$//;p}' src/ext/version.h) +extver=$(sed -n '/#define PHP_DDTRACE_VERSION /{s/.* "//;s/".*$//;p}' ext/version.h) if test "x${extver}" != "x%{version}"; then : Error: Upstream extension version is ${extver}, expecting %{version}. exit 1 fi cd .. +: Create cargo configuration to use vendor directory +mkdir .cargo +cat << EOF | tee .cargo/config.toml +[build] +jobs = %(echo %{?_smp_mflags} | sed 's/\-j//') +rustc = "%{_root_bindir}/rustc" + +[env] +CFLAGS = "%{build_cflags}" +CXXFLAGS = "%{build_cxxflags}" +LDFLAGS = "%{build_ldflags}" + +[term] +verbose = true + +[source.crates-io] +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "$PWD/mycargo" +EOF + +: Required rust version +grep -h rust-version mycargo/*/Cargo.toml | sort -u | tail -n 8 + +mkdir NTS %if %{with_zts} -# Duplicate source tree for NTS / ZTS build -cp -pr NTS ZTS +mkdir ZTS %endif # Create configuration file @@ -129,36 +153,35 @@ extension=%{pecl_name}.so ; Configuration ;ddtrace.disable = Off ;ddtrace.request_init_hook = '%{pear_phpdir}/datadog_trace/bridge/dd_wrap_autoloader.php' +;ddtrace.cgroup_file = '/proc/self/cgroup' EOF %build -%if 0%{?rhel} == 6 -source /opt/rh/devtoolset-6/enable -%endif %{?dtsenable} +%if 0%{?scl:1} +source /opt/%{scl_vendor}/%{scl}/enable +%endif -cd NTS -%{_bindir}/phpize +cd %{sources} +%{__phpize} + +cd ../NTS %configure \ --enable-ddtrace \ - --with-php-config=%{_bindir}/php-config + --with-php-config=%{__phpconfig} make %{?_smp_mflags} %if %{with_zts} cd ../ZTS -%{_bindir}/zts-phpize %configure \ --enable-ddtrace \ - --with-php-config=%{_bindir}/zts-php-config + --with-php-config=%{__ztsphpconfig} make %{?_smp_mflags} %endif %install -%if 0%{?rhel} == 6 -source /opt/rh/devtoolset-6/enable -%endif %{?dtsenable} make -C NTS install INSTALL_ROOT=%{buildroot} @@ -176,49 +199,66 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # PEAR stuff -mkdir -p %{buildroot}%{pear_phpdir}/datadog_trace/ -cp -pr NTS/bridge %{buildroot}%{pear_phpdir}/datadog_trace/bridge +mkdir -p %{buildroot}%{pear_phpdir}/datadog_trace/ +cp -pr %{sources}/bridge %{buildroot}%{pear_phpdir}/datadog_trace/bridge +cp -pr %{sources}/src %{buildroot}%{pear_phpdir}/datadog_trace/src # 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 +do install -Dpm 644 %{sources}/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done %check -# Erratic results -rm ?TS/tests/ext/segfault_backtrace_*.phpt -rm ?TS/tests/ext/sandbox/memory_limit_graceful_bailout.phpt +cd %{sources} +export DD_TRACE_CLI_ENABLED=1 +export DD_INSTRUMENTATION_TELEMETRY_ENABLED=0 +# Erratic results +rm tests/ext/segfault_backtrace_*.phpt +rm tests/ext/sandbox/memory_limit_graceful_bailout.phpt +%if "%{php_version}" > "8.0" +rm tests/ext/sandbox/fatal_errors_are_tracked_005.phpt +%endif +# XFAIL +find tests/ -type f -exec grep -q -- '--XFAIL--' {} \; -delete -print +# https://github.com/DataDog/dd-trace-php/issues/2115 +rm -r tests/ext/telemetry +# https://github.com/DataDog/dd-trace-php/issues/2248 +rm tests/ext/force_flush_traces.phpt +rm tests/ext/sandbox/fatal_errors_ignored_in_tracing_closure.phpt + +# DEP for ext dependencies, MOD for ext used in tests +DEP="" MOD="-n -d ddtrace.request_init_hook=" +OPT="-q --show-diff" +%if "%{php_version}" > "8.0" +OPT="$OPT %{?_smp_mflags}" +[ -f %{php_extdir}/curl.so ] && DEP="$DEP -d extension=curl.so" +%else [ -f %{php_extdir}/curl.so ] && MOD="$MOD -d extension=curl.so" -[ -f %{php_extdir}/json.so ] && MOD="$MOD -d extension=json.so" +%endif +[ -f %{php_extdir}/json.so ] && DEP="$DEP -d extension=json.so" [ -f %{php_extdir}/posix.so ] && MOD="$MOD -d extension=posix.so" -cd NTS : Minimal load test for NTS extension -%{__php} --no-php-ini \ +%{__php} --no-php-ini $DEP \ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ - --modules | grep -i %{pecl_name} + --modules | grep -i '^%{pecl_name}$' +%if %{with tests} : Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{_bindir}/php \ -TEST_PHP_ARGS="$MOD -d extension=$PWD/modules/%{pecl_name}.so" \ +TEST_PHP_ARGS="$DEP $MOD -d extension=$PWD/../NTS/modules/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ -%{_bindir}/php -n run-tests.php -q --show-diff +%{_bindir}/php -n run-tests.php $OPT +%endif %if %{with_zts} -cd ../ZTS : Minimal load test for ZTS extension -%{__ztsphp} --no-php-ini \ +%{__ztsphp} --no-php-ini $DEP \ --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ - --modules | grep -i %{pecl_name} - -: Upstream test suite for ZTS extension -TEST_PHP_EXECUTABLE=%{__ztsphp} \ -TEST_PHP_ARGS="$MOD -d extension=$PWD/modules/%{pecl_name}.so" \ -REPORT_EXIT_STATUS=1 \ -%{__ztsphp} -n run-tests.php -q --show-diff + --modules | grep -i '^%{pecl_name}$' %endif @@ -244,9 +284,10 @@ fi %files %doc %{pecl_docdir}/%{pecl_name} -%{?_licensedir:%license NTS/LICENSE*} +%{?_licensedir:%license %{sources}/LICENSE*} %dir %{pear_phpdir}/datadog_trace %{pear_phpdir}/datadog_trace/bridge + %{pear_phpdir}/datadog_trace/src %{pecl_xmldir}/%{name}.xml %config(noreplace) %{php_inidir}/%{ini_name} @@ -259,6 +300,251 @@ fi %changelog +* Tue Mar 5 2024 Remi Collet <remi@remirepo.net> - 0.98.1-1 +- update to 0.98.1 +- install the src directory added in the archive + +* Tue Feb 20 2024 Remi Collet <remi@remirepo.net> - 0.98.0-1 +- update to 0.98.0 + +* Thu Jan 18 2024 Remi Collet <remi@remirepo.net> - 0.97.0-1 +- update to 0.97.0 + +* Wed Dec 20 2023 Remi Collet <remi@remirepo.net> - 0.96.0-1 +- update to 0.96.0 + +* Thu Dec 7 2023 Remi Collet <remi@remirepo.net> - 0.95.0-1 +- update to 0.95.0 + +* Wed Nov 29 2023 Remi Collet <remi@remirepo.net> - 0.94.1-1 +- update to 0.94.1 + +* Thu Nov 23 2023 Remi Collet <remi@remirepo.net> - 0.94.0-2 +- test build for https://github.com/DataDog/dd-trace-php/pull/2383 + +* Tue Nov 21 2023 Remi Collet <remi@remirepo.net> - 0.94.0-1 +- update to 0.94.0 +- open https://github.com/DataDog/dd-trace-php/issues/2376 LTO build failure + +* Mon Nov 13 2023 Remi Collet <remi@remirepo.net> - 0.93.2-1 +- update to 0.93.2 + +* Wed Nov 1 2023 Remi Collet <remi@remirepo.net> - 0.93.1-1 +- update to 0.93.1 + +* Mon Oct 30 2023 Remi Collet <remi@remirepo.net> - 0.93.0-1 +- update to 0.93.0 + +* Tue Oct 10 2023 Remi Collet <remi@remirepo.net> - 0.92.2-1 +- update to 0.92.2 + +* Mon Oct 2 2023 Remi Collet <remi@remirepo.net> - 0.92.1-1 +- update to 0.92.1 +- disable test suite which raises too much issues + +* Wed Sep 27 2023 Remi Collet <remi@remirepo.net> - 0.92.0-1 +- update to 0.92.0 +- open https://github.com/DataDog/dd-trace-php/issues/2285 + [Bug]: Failed connecting to the sidecar: Connection refused (os error 111) +- open https://github.com/DataDog/dd-trace-php/issues/2286 + [Bug]: Error in `datadog-ipc-helper': double free or corruption +- open https://github.com/DataDog/dd-trace-php/issues/2287 + [Bug]: test suite hangs + +* Fri Sep 15 2023 Remi Collet <remi@remirepo.net> - 0.91.2-1 +- update to 0.91.2 + +* Sat Sep 9 2023 Remi Collet <remi@remirepo.net> - 0.91.1-1 +- update to 0.91.1 + +* Thu Sep 7 2023 Remi Collet <remi@remirepo.net> - 0.91.0-1 +- update to 0.91.0 +- raise build dependency on rust 1.70 + +* Mon Jul 17 2023 Remi Collet <remi@remirepo.net> - 0.90.0-1 +- update to 0.90.0 +- build out of sources tree + +* Tue Jul 4 2023 Remi Collet <remi@remirepo.net> - 0.89.0-1 +- update to 0.89.0 + +* Mon Jun 19 2023 Remi Collet <remi@remirepo.net> - 0.88.1-1 +- update to 0.88.1 +- open https://github.com/DataDog/dd-trace-php/issues/2115 + test failures + +* Thu Jun 15 2023 Remi Collet <remi@remirepo.net> - 0.88.0-1 +- update to 0.88.0 +- use vendored rust dependencies +- open https://github.com/DataDog/dd-trace-php/issues/2103 + Cannot build OFFLINE + +* Fri May 19 2023 Remi Collet <remi@remirepo.net> - 0.87.2-1 +- update to 0.87.2 + +* Tue May 16 2023 Remi Collet <remi@remirepo.net> - 0.87.1-1 +- update to 0.87.1 + +* Sat May 13 2023 Remi Collet <remi@remirepo.net> - 0.87.0-1 +- update to 0.87.0 + +* Thu Apr 6 2023 Remi Collet <remi@remirepo.net> - 0.86.3-1 +- update to 0.86.3 + +* Wed Apr 5 2023 Remi Collet <remi@remirepo.net> - 0.86.2-1 +- update to 0.86.2 + +* Fri Mar 31 2023 Remi Collet <remi@remirepo.net> - 0.86.1-1 +- update to 0.86.1 + +* Thu Mar 23 2023 Remi Collet <remi@remirepo.net> - 0.86.0-1 +- update to 0.86.0 + +* Fri Feb 3 2023 Remi Collet <remi@remirepo.net> - 0.84.0-1 +- update to 0.84.0 + +* Thu Jan 19 2023 Remi Collet <remi@remirepo.net> - 0.83.1-1 +- update to 0.83.1 + +* Sat Jan 14 2023 Remi Collet <remi@remirepo.net> - 0.83.0-1 +- update to 0.83.0 + +* Wed Dec 7 2022 Remi Collet <remi@remirepo.net> - 0.82.0-1 +- update to 0.82.0 + +* Thu Nov 3 2022 Remi Collet <remi@remirepo.net> - 0.81.1-1 +- update to 0.81.1 + +* Wed Nov 2 2022 Remi Collet <remi@remirepo.net> - 0.81.0-1 +- update to 0.81.0 + +* Thu Sep 29 2022 Remi Collet <remi@remirepo.net> - 0.80.0-1 +- update to 0.80.0 + +* Fri Sep 9 2022 Remi Collet <remi@remirepo.net> - 0.79.0-1 +- update to 0.79.0 + +* Mon Aug 29 2022 Remi Collet <remi@remirepo.net> - 0.78.0-1 +- update to 0.78.0 + +* Wed Aug 3 2022 Remi Collet <remi@remirepo.net> - 0.77.0-1 +- update to 0.77.0 + +* Fri Jul 29 2022 Remi Collet <remi@remirepo.net> - 0.76.2-1 +- update to 0.76.2 + +* Mon Jul 18 2022 Remi Collet <remi@remirepo.net> - 0.76.1-1 +- update to 0.76.1 + +* Mon Jul 11 2022 Remi Collet <remi@remirepo.net> - 0.76.0-1 +- update to 0.76.0 +- drop PHP 5 support + +* Mon Jun 13 2022 Remi Collet <remi@remirepo.net> - 0.75.0-1 +- update to 0.75.0 + +* Thu May 12 2022 Remi Collet <remi@remirepo.net> - 0.74.0-1 +- update to 0.74.0 + +* Thu Apr 28 2022 Remi Collet <remi@remirepo.net> - 0.73.0-1 +- update to 0.73.0 + +* Thu Apr 7 2022 Remi Collet <remi@remirepo.net> - 0.72.0-1 +- update to 0.72.0 + +* Fri Apr 1 2022 Remi Collet <remi@remirepo.net> - 0.71.1-1 +- update to 0.71.1 + +* Tue Mar 15 2022 Remi Collet <remi@remirepo.net> - 0.71.0-1 +- update to 0.71.0 + +* Thu Mar 3 2022 Remi Collet <remi@remirepo.net> - 0.70.1-1 +- update to 0.70.1 + +* Mon Feb 7 2022 Remi Collet <remi@remirepo.net> - 0.70.0-1 +- update to 0.70.0 + +* Tue Jan 25 2022 Remi Collet <remi@remirepo.net> - 0.69.0-1 +- update to 0.69.0 + +* Mon Jan 10 2022 Remi Collet <remi@remirepo.net> - 0.68.2-1 +- update to 0.68.2 + +* Fri Dec 31 2021 Remi Collet <remi@remirepo.net> - 0.68.1-1 +- update to 0.68.1 + +* Thu Dec 23 2021 Remi Collet <remi@remirepo.net> - 0.68.0-1 +- update to 0.68.0 + +* Tue Nov 2 2021 Remi Collet <remi@remirepo.net> - 0.67.0-1 +- update to 0.67.0 + +* Tue Oct 12 2021 Remi Collet <remi@remirepo.net> - 0.66.0-1 +- update to 0.66.0 + +* Wed Sep 22 2021 Remi Collet <remi@remirepo.net> - 0.65.1-1 +- update to 0.65.1 + +* Tue Sep 21 2021 Remi Collet <remi@remirepo.net> - 0.65.0-1 +- update to 0.65.0 + +* Wed Sep 8 2021 Remi Collet <remi@remirepo.net> - 0.64.1-1 +- update to 0.64.1 + +* Fri Sep 3 2021 Remi Collet <remi@remirepo.net> - 0.64.0-1 +- update to 0.64.0 + +* Mon Aug 23 2021 Remi Collet <remi@remirepo.net> - 0.63.0-1 +- update to 0.63.0 + +* Thu Jul 29 2021 Remi Collet <remi@remirepo.net> - 0.62.1-1 +- update to 0.62.1 + +* Wed Jul 21 2021 Remi Collet <remi@remirepo.net> - 0.62.0-1 +- update to 0.62.0 + +* Tue Jul 13 2021 Remi Collet <remi@remirepo.net> - 0.61.0-1 +- update to 0.61.0 + +* Sat May 29 2021 Remi Collet <remi@remirepo.net> - 0.60.0-1 +- update to 0.60.0 + +* Fri May 7 2021 Remi Collet <remi@remirepo.net> - 0.59.0-1 +- update to 0.59.0 + +* Thu Apr 22 2021 Remi Collet <remi@remirepo.net> - 0.58.0-1 +- update to 0.58.0 + +* Fri Mar 5 2021 Remi Collet <remi@remirepo.net> - 0.56.0-1 +- update to 0.56.0 + +* Fri Feb 5 2021 Remi Collet <remi@remirepo.net> - 0.55.0-1 +- update to 0.55.0 +- open https://github.com/DataDog/dd-trace-php/pull/1144 + add missing dependency on curl extension for PHP 8 + +* Thu Jan 21 2021 Remi Collet <remi@remirepo.net> - 0.54.0-1 +- update to 0.54.0 + +* Thu Dec 31 2020 Remi Collet <remi@remirepo.net> - 0.53.0-1 +- update to 0.53.0 + +* Tue Dec 1 2020 Remi Collet <remi@remirepo.net> - 0.52.0-1 +- update to 0.52.0 + +* Wed Nov 18 2020 Remi Collet <remi@remirepo.net> - 0.51.0-1 +- update to 0.51.0 + +* Fri Nov 6 2020 Remi Collet <remi@remirepo.net> - 0.50.0-1 +- update to 0.50.0 + +* Thu Oct 15 2020 Remi Collet <remi@remirepo.net> - 0.49.0-1 +- update to 0.49.0 +- allow PHP 5.4 and 5.5 + +* Tue Sep 22 2020 Remi Collet <remi@remirepo.net> - 0.48.3-1 +- update to 0.48.3 + * Fri Sep 11 2020 Remi Collet <remi@remirepo.net> - 0.48.2-1 - update to 0.48.2 |