diff options
-rw-r--r-- | PHPINFO | 15 | ||||
-rw-r--r-- | REFLECTION | 33 | ||||
-rwxr-xr-x | makedeps.sh | 20 | ||||
-rw-r--r-- | php-pecl-skywalking.spec | 186 |
4 files changed, 169 insertions, 85 deletions
@@ -3,15 +3,20 @@ skywalking Directive => Local Value => Master Value skywalking.enable => Off => Off -skywalking.version => 8 => 8 -skywalking.app_code => hello_skywalking => hello_skywalking -skywalking.authentication => no value => no value -skywalking.grpc => 127.0.0.1:11800 => 127.0.0.1:11800 +skywalking.service => hello_skywalking => hello_skywalking +skywalking.service_instance => no value => no value +skywalking.oap_version => 9.0.0 => 9.0.0 +skywalking.oap_cross_process_protocol => 3.0 => 3.0 +skywalking.oap_authentication => no value => no value +skywalking.grpc_address => 127.0.0.1:11800 => 127.0.0.1:11800 skywalking.grpc_tls_enable => Off => Off skywalking.grpc_tls_pem_root_certs => no value => no value skywalking.grpc_tls_pem_private_key => no value => no value skywalking.grpc_tls_pem_cert_chain => no value => no value -skywalking.log_enable => Off => Off +skywalking.log_level => disable => disable skywalking.log_path => /tmp/skywalking-php.log => /tmp/skywalking-php.log +skywalking.curl_response_enable => Off => Off skywalking.error_handler_enable => Off => Off skywalking.mq_max_message_length => 20480 => 20480 +skywalking.mq_unique => 0 => 0 +skywalking.sample_n_per_3_secs => -1 => -1 @@ -1,4 +1,4 @@ -Extension [ <persistent> extension #120 skywalking version 4.1.2 ] { +Extension [ <persistent> extension #118 skywalking version 5.0.1 ] { - Dependencies { Dependency [ json (Required) ] @@ -11,16 +11,22 @@ Extension [ <persistent> extension #120 skywalking version 4.1.2 ] { Entry [ skywalking.enable <ALL> ] Current = '0' } - Entry [ skywalking.version <ALL> ] - Current = '8' - } - Entry [ skywalking.app_code <ALL> ] + Entry [ skywalking.service <ALL> ] Current = 'hello_skywalking' } - Entry [ skywalking.authentication <ALL> ] + Entry [ skywalking.service_instance <ALL> ] + Current = '' + } + Entry [ skywalking.oap_version <ALL> ] + Current = '9.0.0' + } + Entry [ skywalking.oap_cross_process_protocol <ALL> ] + Current = '3.0' + } + Entry [ skywalking.oap_authentication <ALL> ] Current = '' } - Entry [ skywalking.grpc <ALL> ] + Entry [ skywalking.grpc_address <ALL> ] Current = '127.0.0.1:11800' } Entry [ skywalking.grpc_tls_enable <ALL> ] @@ -35,18 +41,27 @@ Extension [ <persistent> extension #120 skywalking version 4.1.2 ] { Entry [ skywalking.grpc_tls_pem_cert_chain <ALL> ] Current = '' } - Entry [ skywalking.log_enable <ALL> ] - Current = '0' + Entry [ skywalking.log_level <ALL> ] + Current = 'disable' } Entry [ skywalking.log_path <ALL> ] Current = '/tmp/skywalking-php.log' } + Entry [ skywalking.curl_response_enable <ALL> ] + Current = '0' + } Entry [ skywalking.error_handler_enable <ALL> ] Current = '0' } Entry [ skywalking.mq_max_message_length <ALL> ] Current = '20480' } + Entry [ skywalking.mq_unique <ALL> ] + Current = '0' + } + Entry [ skywalking.sample_n_per_3_secs <ALL> ] + Current = '-1' + } } - Functions { diff --git a/makedeps.sh b/makedeps.sh new file mode 100755 index 0000000..1179dbb --- /dev/null +++ b/makedeps.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +if [ $# -lt 1 ]; then + echo usage $0 version + exit 0 +fi +if [ -f skywalking-$1.tgz ]; then + echo "+ Unpack" + tar xf skywalking-$1.tgz + + pushd skywalking-$1 + echo "+ Fetch" + cargo vendor mycargo + + echo "+ Pack" + tar czf ../skywalking-deps-$1.tgz mycargo + popd +else + echo skywalking-$version.tgz missing +fi diff --git a/php-pecl-skywalking.spec b/php-pecl-skywalking.spec index 6f44962..7180c77 100644 --- a/php-pecl-skywalking.spec +++ b/php-pecl-skywalking.spec @@ -1,31 +1,42 @@ # remirepo spec file for php-pecl-skywalking # -# Copyright (c) 2019-2021 Remi Collet +# Copyright (c) 2019-2022 Remi Collet # License: CC-BY-SA # 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-skywalking +%else +%global _root_bindir %{_bindir} %endif %global pecl_name skywalking # not supported by upstream %global with_zts 0 %global ini_name 40-%{pecl_name}.ini -# TODO need investigation -%bcond_with tests +%global sources %{pecl_name}-%{version} +%global _configure ../%{sources}/configure Summary: The PHP instrument agent for Apache SkyWalking -Name: %{?sub_prefix}php-pecl-%{pecl_name} -Version: 4.1.3 -Release: 1%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} -Source0: https://pecl.php.net/get/%{pecl_name}-%{version}.tgz -License: ASL 2.0 +Name: %{?scl_prefix}php-pecl-%{pecl_name} +Version: 5.0.1 +Release: 3%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} +License: Apache-2.0 URL: https://pecl.php.net/package/%{pecl_name} +Source0: https://pecl.php.net/get/%{sources}.tgz +# awfull hack, use a bundled rust registry +Source1: makedeps.sh +Source2: https://pecl.php.net/get/%{pecl_name}-deps-%{version}.tgz + +%if 0%{?rhel} == 7 && 0%{?dtsversion} == 0 +BuildRequires: devtoolset-6-toolchain +%global dtsversion 6 +%global dtsenable source /opt/rh/devtoolset-6/enable +%global dtsprefix devtoolset-6- +%endif BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 7.0 @@ -34,41 +45,43 @@ BuildRequires: %{?scl_prefix}php-curl BuildRequires: %{?scl_prefix}php-json BuildRequires: %{?scl_prefix}php-pcre BuildRequires: libcurl-devel -BuildRequires: protobuf-devel -BuildRequires: protobuf-compiler -BuildRequires: boost-devel -# Missing in EPEL https://bugzilla.redhat.com/1757147 -BuildRequires: grpc-devel -BuildRequires: grpc-plugins +BuildRequires: cargo >= 1.52 +BuildRequires: rustfmt +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 9 +BuildRequires: rust-packaging +%endif +# Using system rust registry +#BuildRequires: (crate(anyhow/default) >= 1.0.57 with crate(anyhow/default) < 2.0.0~) +#BuildRequires: (crate(cbindgen/default) >= 0.23.0 with crate(cbindgen/default) < 0.24.0~) +#BuildRequires: (crate(futures-util/default) >= 0.3.21 with crate(futures-util/default) < 0.4.0~) +#BuildRequires: (crate(gethostname/default) >= 0.2.3 with crate(gethostname/default) < 0.3.0~) +#*************: (crate(ipc-channel/default) >= 0.16.0 with crate(ipc-channel/default) < 0.17.0~) +#*************: (crate(local-ip-address/default) >= 0.4.4 with crate(local-ip-address/default) < 0.5.0~) +#BuildRequires: (crate(log/default) >= 0.4.1 with crate(log/default) < 0.5.0~) +#BuildRequires: (crate(prost-derive/default) >= 0.8.0 with crate(prost-derive/default) < 0.9.0~) +#BuildRequires: (crate(prost/default) >= 0.8.0 with crate(prost/default) < 0.9.0~) +#BuildRequires: (crate(rand/default) >= 0.8.5 with crate(rand/default) < 0.9.0~) +#BuildRequires: (crate(serde/default) >= 1.0.0 with crate(serde/default) < 2.0.0~) +#BuildRequires: (crate(serde/serde_derive) >= 1.0.0 with crate(serde/serde_derive) < 2.0.0~) +#BuildRequires: (crate(serde_json/default) >= 1.0.0 with crate(serde_json/default) < 2.0.0~) +#BuildRequires: (crate(simplelog/default) >= 0.12.0 with crate(simplelog/default) < 0.13.0~) +#BuildRequires: (crate(tokio/default) >= 1.0.0 with crate(tokio/default) < 2.0.0~) +#BuildRequires: (crate(tokio/full) >= 1.0.0 with crate(tokio/full) < 2.0.0~) +#*************: (crate(tonic-build/default) >= 0.5.2 with crate(tonic-build/default) < 0.6.0~) +#*************: (crate(tonic/default) >= 0.5.2 with crate(tonic/default) < 0.6.0~) +#BuildRequires: (crate(uuid/default) >= 1.0.0 with crate(uuid/default) < 2.0.0~) +#BuildRequires: (crate(uuid/v4) >= 1.0.0 with crate(uuid/v4) < 2.0.0~) Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} Requires: %{?scl_prefix}php-curl Requires: %{?scl_prefix}php-json Requires: %{?scl_prefix}php-pcre -%{?_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} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-%{pecl_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-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "7.4" -Obsoletes: php74-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "8.0" -Obsoletes: php80-pecl-%{pecl_name} <= %{version} -%endif -%endif %description @@ -79,15 +92,34 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO %prep -%setup -q -c -mv %{pecl_name}-%{version} NTS +%setup -q -c -a2 # Don't install/register tests sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml -pushd NTS +pushd %{sources} +# Create cargo configuration to use vendor directory +mkdir .cargo +cat << EOF | tee .cargo/config.toml +[build] +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 = "$(dirname $PWD)/mycargo" +EOF : Check version extver=$(sed -n '/#define PHP_SKYWALKING_VERSION /{s/.* "//;s/".*$//;p}' php_skywalking.h) @@ -97,9 +129,10 @@ if test "x${extver}" != "x%{version}%{?prever}"; then fi popd +mkdir NTS + %if %{with_zts} -# Duplicate source tree for NTS / ZTS build -cp -pr NTS ZTS +mkdir ZTS %endif # Create configuration file @@ -109,37 +142,51 @@ extension=%{pecl_name}.so ; Configuration ;skywalking.enable = Off -;skywalking.version = 8 -;skywalking.app_code = 'hello_skywalking' -;skywalking.authentication = '' -;skywalking.grpc = '127.0.0.1:11800' +;skywalking.service = 'hello_skywalking' +;skywalking.service_instance = '' +;skywalking.oap_version = '9.0.0' +;skywalking.oap_cross_process_protocol = '3.0' +;skywalking.oap_authentication = '' +;skywalking.grpc_address = '127.0.0.1:11800' ;skywalking.grpc_tls_enable = Off ;skywalking.grpc_tls_pem_root_certs = '' ;skywalking.grpc_tls_pem_private_key = '' ;skywalking.grpc_tls_pem_cert_chain = '' -;skywalking.log_enable = Off +;skywalking.log_level = 'disable' ;skywalking.log_path = '/tmp/skywalking-php.log'; +;skywalking.curl_response_enable = Off ;skywalking.error_handler_enable = Off ;skywalking.mq_max_message_length = 20480 +;skywalking.mq_unique = 0 +;skywalking.sample_n_per_3_secs = -1 + EOF +: Required rust version +grep -h rust-version mycargo/*/Cargo.toml NTS/Cargo.toml | sort -u | tail -n 4 + %build %{?dtsenable} -cd NTS -%{_bindir}/phpize +export CARGO_HOME=$PWD/mycargo + +cd %{sources} +%{__phpize} + +cd ../NTS +cp -r ../%{sources}/.cargo .cargo %configure \ --enable-skywalking \ - --with-php-config=%{_bindir}/php-config + --with-php-config=%{__phpconfig} make %{?_smp_mflags} %if %{with_zts} cd ../ZTS -%{_bindir}/zts-phpize +cp -r ../%{sources}/.cargo .cargo %configure \ --enable-skywalking \ - --with-php-config=%{_bindir}/zts-php-config + --with-php-config=%{__ztsphpconfig} make %{?_smp_mflags} %endif @@ -162,7 +209,7 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # Documentation -cd NTS +cd %{sources} for i in $(grep 'role="doc"' ../package.xml | sed -e 's/^.*name="//;s/".*$//') do install -Dpm 644 $i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done @@ -204,29 +251,9 @@ OPT="-n -d extension=curl.so -d extension=json.so" --modules | grep %{pecl_name} %endif -%if %{with tests} -: Upstream test suite for NTS extension -cd NTS -TEST_PHP_ARGS="$OPT -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ -REPORT_EXIT_STATUS=1 \ -NO_INTERACTION=1 \ -TEST_PHP_EXECUTABLE=%{__php} \ -%{__php} -n run-tests.php --show-diff - -%if %{with_zts} -: Upstream test suite for ZTS extension -cd ../ZTS -TEST_PHP_ARGS="$OPT -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \ -REPORT_EXIT_STATUS=1 \ -NO_INTERACTION=1 \ -TEST_PHP_EXECUTABLE=%{__ztsphp} \ -%{__ztsphp} -n run-tests.php --show-diff -%endif -%endif - %files -%{?_licensedir:%license NTS/LICENSE} +%{?_licensedir:%license %{sources}/LICENSE} %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml @@ -238,9 +265,26 @@ TEST_PHP_EXECUTABLE=%{__ztsphp} \ %{php_ztsextdir}/%{pecl_name}.so %endif -# TODO : missing grpc in EPEL %changelog +* Mon Sep 4 2023 Remi Collet <remi@remirepo.net> - 5.0.1-3 +- build out of sources tree + +* Fri Jul 1 2022 Remi Collet <remi@remirepo.net> - 5.0.1-2 +- use cargo vendor feature to reduce sources size + +* Thu Jun 30 2022 Remi Collet <remi@remirepo.net> - 5.0.1-1 +- update to 5.0.1 +- use bundled rust registry + +* Mon Jun 27 2022 Remi Collet <remi@remirepo.net> - 5.0.0-1 +- update to 5.0.0 +- open https://github.com/SkyAPM/SkyAPM-php-sdk/issues/493 + Impossible to build offline + +* Wed Nov 3 2021 Remi Collet <remi@remirepo.net> - 4.2.0-1 +- update to 4.2.0 + * Thu Aug 26 2021 Remi Collet <remi@remirepo.net> - 4.1.3-1 - update to 4.1.3 - open https://github.com/SkyAPM/SkyAPM-php-sdk/issues/429 |