summaryrefslogtreecommitdiffstats
path: root/php-pecl-datadog-trace.spec
diff options
context:
space:
mode:
Diffstat (limited to 'php-pecl-datadog-trace.spec')
-rw-r--r--php-pecl-datadog-trace.spec367
1 files changed, 294 insertions, 73 deletions
diff --git a/php-pecl-datadog-trace.spec b/php-pecl-datadog-trace.spec
index 19e0068..5edaae2 100644
--- a/php-pecl-datadog-trace.spec
+++ b/php-pecl-datadog-trace.spec
@@ -1,38 +1,52 @@
# remirepo spec file for php-pecl-datadog-trace
#
-# Copyright (c) 2019-2021 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
+%global proj_name datadog_trace
# no underscore for package name
-%global safe_name datadog-trace
+%global safe_name datadog-trace
# extension name
-%global pecl_name ddtrace
+%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 upstream_version 1.0.0
+%global upstream_prever beta1
+%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
+%global ini_name 40-%{pecl_name}.ini
+%global sources %{proj_name}-%{upstream_version}%{?upstream_prever}
+%global _configure ../%{sources}/configure
Summary: APM and distributed tracing for PHP
-Name: %{?sub_prefix}php-pecl-datadog-trace
-Version: 0.65.1
+Name: %{?scl_prefix}php-pecl-datadog-trace
+Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}}
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
+Source0: https://pecl.php.net/get/%{sources}.tgz
+# awfull hack, use a bundled rust registry
+Source1: makedeps.sh
+Source2: %{proj_name}-deps-%{upstream_version}%{?upstream_prever}.tgz
# ddtrace only supports 64-bit platforms
ExcludeArch: %{ix86} %{arm}
@@ -44,13 +58,16 @@ BuildRequires: devtoolset-6-toolchain
%global dtsprefix devtoolset-6-
%endif
BuildRequires: make
+BuildRequires: cargo >= 1.70
+BuildRequires: rust >= 1.70
BuildRequires: %{?dtsprefix}gcc
-BuildRequires: %{?scl_prefix}php-devel >= 5.4
+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
@@ -58,7 +75,7 @@ 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
@@ -67,59 +84,67 @@ 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.3"
-Obsoletes: php73-pecl-%{safe_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.4"
-Obsoletes: php74-pecl-%{safe_name} <= %{version}
-%endif
-%if "%{php_version}" > "8.0"
-Obsoletes: php80-pecl-%{safe_name} <= %{version}
-%endif
-%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 ext/php?/ddtrace.c \
- ext/php?/configuration.h
+ -i ext/ddtrace.c \
+ ext/configuration.h
-cp ext/vendor/mpack/LICENSE LICENSE.mpack
: Sanity check, really often broken
-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}.
+extver=$(cat VERSION)
+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 ..
+: 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,27 +154,30 @@ 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
%{?dtsenable}
+%if 0%{?scl:1}
+source /opt/%{scl_vendor}/%{scl}/enable
+%endif
+
+cd %{sources}
+%{__phpize}
-cd NTS
-%{_bindir}/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
@@ -172,63 +200,65 @@ 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}/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
+cd %{sources}
export DD_TRACE_CLI_ENABLED=1
+export DD_INSTRUMENTATION_TELEMETRY_ENABLED=0
# Erratic results
-rm ?TS/tests/ext/segfault_backtrace_*.phpt
-rm ?TS/tests/ext/sandbox/memory_limit_graceful_bailout.phpt
+rm tests/ext/segfault_backtrace_*.phpt
+rm tests/ext/sandbox/memory_limit_graceful_bailout.phpt
%if "%{php_version}" > "8.0"
-rm ?TS/tests/ext/sandbox/fatal_errors_are_tracked_005.phpt
+rm tests/ext/sandbox/fatal_errors_are_tracked_005.phpt
%endif
# XFAIL
-rm ?TS/tests/ext/sandbox/hook_function/01.phpt
-rm ?TS/tests/ext/sandbox/hook_method/01.phpt
+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"
%endif
-[ -f %{php_extdir}/json.so ] && MOD="$MOD -d extension=json.so"
+[ -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 $DEP \
--define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
--modules | grep -i '^%{pecl_name}$'
+%if %{with tests}
: Upstream test suite for NTS extension
TEST_PHP_EXECUTABLE=%{_bindir}/php \
-TEST_PHP_ARGS="$DEP $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 $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="$DEP $MOD -d extension=$PWD/modules/%{pecl_name}.so" \
-REPORT_EXIT_STATUS=1 \
-%{__ztsphp} -n run-tests.php -q --show-diff
%endif
@@ -254,9 +284,9 @@ 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}
@@ -269,6 +299,197 @@ fi
%changelog
+* Wed Apr 17 2024 Remi Collet <remi@remirepo.net> - 1.0.0~beta1-1
+- update to 1.0.0beta1
+
+* Fri Apr 5 2024 Remi Collet <remi@remirepo.net> - 0.99.1-1
+- update to 0.99.1
+
+* Wed Apr 3 2024 Remi Collet <remi@remirepo.net> - 0.99.0-1
+- update to 0.99.0
+
+* 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