# Fedora spec file for php-ast
# Without SCL compatibility stuff, from:
#
# remirepo spec file for php-ast
#
# Copyright (c) 2015-2024 Remi Collet
# License: CC-BY-SA-4.0
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#
%global pecl_name ast
%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
# After 20-tokenizer.ini
%global ini_name 40-%{pecl_name}.ini
%global sources %{pecl_name}-%{version}
%global _configure ../%{sources}/configure
Summary: Abstract Syntax Tree
Name: php-ast
Version: 1.1.1
Release: 4%{?dist}
License: BSD-3-Clause
URL: https://pecl.php.net/package/ast
Source0: httpd://pecl.php.net/get/%{sources}.tgz
ExcludeArch: %{ix86}
BuildRequires: make
BuildRequires: gcc
BuildRequires: php-devel >= 7.2
BuildRequires: php-pear
BuildRequires: php-tokenizer
# PECL
Provides: php-pecl-%{pecl_name} = %{version}-%{release}
Provides: php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release}
Provides: php-pecl(%{pecl_name}) = %{version}
Provides: php-pecl(%{pecl_name})%{?_isa} = %{version}
Requires: php(zend-abi) = %{php_zend_api}
Requires: php(api) = %{php_core_api}
Requires: php-tokenizer%{?_isa}
%description
This extension exposes the abstract syntax tree generated by PHP 7.
%prep
%setup -qc
# Don't install/register tests
sed -e 's/role="test"/role="src"/' \
%{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \
-i package.xml
cd %{sources}
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_AST_VERSION/{s/.* "//;s/".*$//;p}' php_ast.h)
if test "x${extver}" != "x%{version}"; then
: Error: Upstream extension version is ${extver}, expecting %{version}.
exit 1
fi
cd ..
mkdir NTS ZTS
# Drop in the bit of configuration
cat << 'EOF' | tee %{ini_name}
; Enable '%{summary}' extension module
extension = %{pecl_name}.so
EOF
%build
cd %{sources}
%{__phpize}
cd ../NTS
%configure \
--with-php-config=%{__phpconfig} \
--enable-ast
make %{?_smp_mflags}
%if %{with_zts}
cd ../ZTS
%configure \
--with-php-config=%{__ztsphpconfig} \
--enable-ast
make %{?_smp_mflags}
%endif
%install
# Install XML package description
install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
# Install the NTS stuff
make -C NTS install INSTALL_ROOT=%{buildroot}
install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
%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 %{sources}/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i
done
%check
cd %{sources}
: Minimal load test for NTS extension
%{__php} --no-php-ini \
--define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \
--modules | grep '^%{pecl_name}$'
: Upstream test suite for NTS extension
TEST_PHP_ARGS="-n -d extension=tokenizer.so -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \
%{__php} -n run-tests.php -q --show-diff %{?_smp_mflags}
%if %{with_zts}
: Minimal load test for ZTS extension
%{__ztsphp} --no-php-ini \
--define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \
--modules | grep '^%{pecl_name}$'
: Upstream test suite for ZTS extension
TEST_PHP_ARGS="-n -d extension=tokenizer.so -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \
%{__ztsphp} -n run-tests.php -q --show-diff %{?_smp_mflags}
%endif
%files
%license %{sources}/LICENSE
%doc %{pecl_docdir}/%{pecl_name}
%{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
* Fri Apr 12 2024 Remi Collet <remi@remirepo.net> - 1.1.1-4
- drop 32-bit support
https://fedoraproject.org/wiki/Changes/php_no_32_bit
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Nov 13 2023 Remi Collet <remi@remirepo.net> - 1.1.1-1
- update to 1.1.1
- build out of sources tree
* Tue Oct 03 2023 Remi Collet <remi@remirepo.net> - 1.1.0-6
- rebuild for https://fedoraproject.org/wiki/Changes/php83
- ignore 4 test failing with 8.3
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Mar 31 2023 Remi Collet <remi@remirepo.net> - 1.1.0-4
- use SPDX license ID
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Oct 05 2022 Remi Collet <remi@remirepo.net> - 1.1.0-2
- rebuild for https://fedoraproject.org/wiki/Changes/php82
* Wed Aug 10 2022 Remi Collet <remi@remirepo.net> - 1.1.0-1
- update to 1.1.0
- raise dependency on PHP 7.2
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.16-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.16-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Nov 29 2021 Remi Collet <remi@remirepo.net> - 1.0.16-1
- update to 1.0.16
* Thu Oct 28 2021 Remi Collet <remi@remirepo.net> - 1.0.14-2
- rebuild for https://fedoraproject.org/wiki/Changes/php81
* Sun Jul 25 2021 Remi Collet <remi@remirepo.net> - 1.0.14-1
- update to 1.0.14
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jul 9 2021 Remi Collet <remi@remirepo.net> - 1.0.13-1
- update to 1.0.13
* Mon May 17 2021 Remi Collet <remi@remirepo.net> - 1.0.12-1
- update to 1.0.12
* Tue Apr 20 2021 Remi Collet <remi@remirepo.net> - 1.0.11-1
- update to 1.0.11
* Thu Mar 4 2021 Remi Collet <remi@remirepo.net> - 1.0.10-3
- rebuild for https://fedoraproject.org/wiki/Changes/php80
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Sep 14 2020 Remi Collet <remi@remirepo.net> - 1.0.10-1
- update to 1.0.10
* Fri Sep 4 2020 Remi Collet <remi@remirepo.net> - 1.0.9-1
- update to 1.0.9
* Mon Aug 10 2020 Remi Collet <remi@remirepo.net> - 1.0.8-1
- update to 1.0.8
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 13 2020 Remi Collet <remi@remirepo.net> - 1.0.7-1
- update to 1.0.7
* Mon Feb 24 2020 Remi Collet <remi@remirepo.net> - 1.0.6-1
- update to 1.0.6
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Nov 27 2019 Remi Collet <remi@remirepo.net> - 1.0.5-1
- update to 1.0.5
* Tue Nov 12 2019 Remi Collet <remi@remirepo.net> - 1.0.4-1
- update to 1.0.4
* Thu Oct 03 2019 Remi Collet <remi@remirepo.net> - 1.0.3-2
- rebuild for https://fedoraproject.org/wiki/Changes/php74
* Mon Jul 29 2019 Remi Collet <remi@remirepo.net> - 1.0.3-1
- update to 1.0.3
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jul 1 2019 Remi Collet <remi@remirepo.net> - 1.0.2-1
- update to 1.0.2
* Mon Feb 11 2019 Remi Collet <remi@remirepo.net> - 1.0.1-1
- update to 1.0.1
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Oct 22 2018 Remi Collet <remi@remirepo.net> - 1.0.0-1
- update to 1.0.0
* Thu Oct 11 2018 Remi Collet <remi@remirepo.net> - 0.1.7-2
- Rebuild for https://fedoraproject.org/wiki/Changes/php73
* Sun Oct 7 2018 Remi Collet <remi@remirepo.net> - 0.1.7-1
- update to 0.1.7
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jan 25 2018 Remi Collet <remi@remirepo.net> - 0.1.6-2
- undefine _strict_symbol_defs_build
* Mon Oct 9 2017 Remi Collet <remi@remirepo.net> - 0.1.6-1
- update to 0.1.6 (stable)
* Tue Oct 03 2017 Remi Collet <remi@fedoraproject.org> - 0.1.5-2
- rebuild for https://fedoraproject.org/wiki/Changes/php72
* Tue Aug 1 2017 Remi Collet <remi@remirepo.net> - 0.1.5-1
- update to 0.1.5 (stable)
- sources from PECL
* Wed Mar 29 2017 Remi Collet <remi@remirepo.net> - 0.1.4-3
- add upstream patch for PHP 7.1.4RC1, fix FTBFS detected by Koschei
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Jan 26 2017 Remi Collet <remi@fedoraproject.org> - 0.1.4-1
- update to 0.1.4
* Thu Jan 19 2017 Remi Collet <remi@fedoraproject.org> - 0.1.3-1
- update to 0.1.3
* Fri Nov 25 2016 Remi Collet <remi@fedoraproject.org> - 0.1.2-2
- fix LICENSE, drop empty file, from review #1398355
- add upstream patch for php 7.1
* Thu Nov 24 2016 Remi Collet <remi@fedoraproject.org> - 0.1.2-1
- drop SCL stuff for Fedora review
* Wed Sep 14 2016 Remi Collet <remi@fedoraproject.org> - 0.1.2-2
- rebuild for PHP 7.1 new API version
* Fri Aug 5 2016 Remi Collet <remi@fedoraproject.org> - 0.1.2-1
- update to 0.1.2
* Fri Jun 10 2016 Remi Collet <remi@fedoraproject.org> - 0.1.2-0.1.20160608gitb8f5805
- update to 0.1.2-dev for PHP 7.1
* Thu Jan 7 2016 Remi Collet <remi@fedoraproject.org> - 0.1.1-1
- update to 0.1.1
* Thu Oct 29 2015 Remi Collet <remi@fedoraproject.org> - 0.1.0-0.2.20151021gitac969d7
- add dependency on php-tokenizer, fix test suite
* Wed Oct 28 2015 Remi Collet <remi@fedoraproject.org> - 0.1.0-0.1.20151021gitac969d7
- new package, version 0.1.0dev