Blob Blame History Raw
# 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