From d6e19e1db57f0b79087366ffbc30ef45c2dd77eb Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 11 Oct 2017 17:47:49 +0200 Subject: version 0.10.2 drop zephir-parser sub-package add dependency on php-zephir-parser --- zephir-parser.spec | 227 ----------------------------------------------------- zephir-rpm.patch | 8 +- zephir.spec | 203 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 207 insertions(+), 231 deletions(-) delete mode 100644 zephir-parser.spec create mode 100644 zephir.spec diff --git a/zephir-parser.spec b/zephir-parser.spec deleted file mode 100644 index 4b940da..0000000 --- a/zephir-parser.spec +++ /dev/null @@ -1,227 +0,0 @@ -# remirepo/fedora spec file for zephir and zephir-parser -# -# Copyright (c) 2016-2017 Remi Collet -# License: CC-BY-SA -# http://creativecommons.org/licenses/by-sa/4.0/ -# -# Please, preserve the changelog entries -# - -%if 0%{?scl:1} -%global with_tests 0 -%scl_package zephyr-parser -%else -%if 0%{?fedora} -%global with_tests 0%{!?_without_tests:1} -%else -# Disable in EL as 5.4 and 5.5 can't use phpunit -%global with_tests 0%{?_with_tests:1} -%endif -%endif - -# Get commit from PHP_PHALCON_ZEPVERSION in -# https://github.com/phalcon/cphalcon/blob/master/ext/php_phalcon.h -%global gh_commit 534bd284df93e1c36c9893d8bd2ef270b207a55b -%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) -#global gh_date 20161126 -%global gh_owner phalcon -%global gh_project zephir -%global ext_name zephir_parser - -Name: %{?scl_prefix}%{gh_project}-parser -Version: 0.9.11 -Release: 1%{?gh_date:.%{gh_date}git%{gh_short}}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} -Summary: Zephir parser extension - -Group: Development/Libraries -License: MIT -URL: https://getcomposer.org/ -Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz - -# Adapt path used in RPM -Patch0: %{gh_project}-rpm.patch - -BuildRequires: %{?scl_prefix}php-devel > 5.4 -BuildRequires: re2c -%if %{with_tests} -BuildRequires: %{?scl_prefix}php-json -BuildRequires: %{?scl_prefix}php-hash -BuildRequires: %{?scl_prefix}php-ctype -# From composer.json, "require-dev" -# "ext-gmp": "*", -# "ext-pdo": "*", -# "ext-pdo_sqlite": "*", -# "squizlabs/php_codesniffer": "^2.8", -# "phpunit/phpunit": "^4.8" -BuildRequires: %{?scl_prefix}php-gmp -BuildRequires: %{?scl_prefix}php-pdo -BuildRequires: %{?scl_prefix}php-pdo_sqlite -BuildRequires: %{?scl_prefix}php-composer(phpunit/phpunit) >= 4.8 -%endif - -Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} -Requires: %{?scl_prefix}php(api) = %{php_core_api} -%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} - -%description -Parser extension used by %{gh_project} - - -%package -n %{?scl_prefix}%{gh_project} -Summary: Zephir language for creation of extensions for PHP. -Group: Development/Languages -BuildArch: noarch - -Requires: %{?scl_prefix}php-cli -Requires: %{name} = %{version}-%{release} -# From composer.json, "require" -# "php": ">=5.4", -# "ext-json": "*", -# "ext-hash": "*", -# "ext-ctype": "*", -# "ext-xml": "*" -Requires: %{?scl_prefix}php(language) >= 5.4 -Requires: %{?scl_prefix}php-json -Requires: %{?scl_prefix}php-hash -Requires: %{?scl_prefix}php-ctype -Requires: %{?scl_prefix}php-xml -# From phpcompatinfo -Requires: %{?scl_prefix}php-reflection -Requires: %{?scl_prefix}php-date -Requires: %{?scl_prefix}php-gmp -Requires: %{?scl_prefix}php-pcre -Requires: %{?scl_prefix}php-pdo -Requires: %{?scl_prefix}php-spl - -Provides: %{?scl_prefix}php-composer(%{gh_owner}/%{gh_project}) = %{version} - -%description -n %{?scl_prefix}%{gh_project} -Zephir - Ze(nd Engine) Ph(p) I(nt)r(mediate) - is a high level language -that eases the creation and maintainability of extensions for PHP. -Zephir extensions are exported to C code that can be compiled and -optimized by major C compilers such as gcc/clang/vc++. Functionality -is exposed to the PHP language. - -Main features: -* Both dynamic/static typing -* Reduced execution overhead compared with full interpretation -* Restricted procedural programming, promoting OOP -* Memory safety -* Ahead-of-time (AOT) compiler to provide predictable performance - -Compiler design goals: -* Multi-pass compilation -* Type speculation/inference -* Allow runtime profile-guided optimizations, pseudo-constant propagation - and indirect/virtual function inlining - - -%prep -%setup -q -n %{gh_project}-%{gh_commit} - -%patch0 -p0 -b .rpm -sed -e 's:@DATADIR@:%{_datadir}:;s:@BINDIR@:%{_bindir}:' \ - -i bin/%{gh_project} - -find . -name \*.php -exec chmod -x {} \; - - -%build -%{?dtsenable} - -cd parser/parser -./build_linux.sh -cd .. -%{_bindir}/phpize -%configure \ - --with-php-config=%{_bindir}/php-config -make - - - -%install -%{?dtsenable} - -: Library and resources -mkdir -p %{buildroot}%{_datadir}/%{gh_project} -for i in *php Library kernels prototypes templates -do - cp -pr $i %{buildroot}%{_datadir}/%{gh_project}/$i -done - -: Command -install -Dpm 755 bin/%{gh_project} %{buildroot}%{_bindir}/%{gh_project} - -: Extension -make install -C parser INSTALL_ROOT=%{buildroot} - - -%check -sed -e 's:%ZEPHIRDIR%:%{buildroot}%{_datadir}/%{gh_project}:g' \ - -e 's: php:%{_bindir}/php:' \ - bin/%{gh_project}.rpm > bin/%{gh_project}.test -sh ./bin/%{gh_project}.test version -sh ./bin/%{gh_project}.test version | grep %{version} - -: Check extension -%{_bindir}/php -n -d extension=parser/modules/%{ext_name}.so -m | grep %{ext_name} - -%if %{with_tests} -: Run test suite -%{_bindir}/phpunit \ - --bootstrap %{buildroot}%{_datadir}/%{gh_project}/bootstrap.php \ - --verbose unit-tests/Zephir -%else -: Test suite disabled -%endif - - -%files -%{!?_licensedir:%global license %%doc} -%license LICENSE -%{php_extdir}/%{ext_name}.so - -%files -n %{?scl_prefix}%{gh_project} -%doc *.md -%doc composer.json -%{_bindir}/%{gh_project} -%{_datadir}/%{gh_project} - - -%changelog -* Fri Aug 4 2017 Remi Collet - 0.9.11-1 -- version 0.9.11 - -* Tue Aug 1 2017 Remi Collet - 0.9.10-1 -- version 0.9.10 - -* Tue Jul 18 2017 Remi Collet - 0.9.9-2 -- rebuild for PHP 7.2.0beta1 new API - -* Wed Jun 21 2017 Remi Collet - 0.9.9-1 -- version 0.9.9 - -* Mon May 22 2017 Remi Collet - 0.9.8-1 -- version 0.9.8 - -* Wed Apr 5 2017 Remi Collet - 0.9.7-1 -- version 0.9.7 - -* Tue Feb 21 2017 Remi Collet - 0.9.6-1 -- version 0.9.6 - -* Sun Nov 27 2016 Remi Collet - 0.9.5-1 -- version 0.9.5 - -* Fri Oct 14 2016 Remi Collet - 0.9.4-2.20161014git23856e1 -- new snapshot to fix PHP 7.1 compatibility of generated code - -* Mon Oct 10 2016 Remi Collet - 0.9.4-1.20160929git22f6632 -- new snapshot to fix PHP 7.1 compatibility of generated code - -* Wed Sep 14 2016 Remi Collet - 0.9.3-2.20160728gite716dbe -- rebuild for PHP 7.1 new API version - -* Sat Jul 30 2016 Remi Collet - 0.9.0-1.20160728gite716dbe -- Initial package - diff --git a/zephir-rpm.patch b/zephir-rpm.patch index 30b5ea7..43e36a5 100644 --- a/zephir-rpm.patch +++ b/zephir-rpm.patch @@ -1,6 +1,6 @@ diff -up bin/zephir.rpm bin/zephir ---- bin/zephir.rpm 2016-10-10 10:45:24.937478208 +0200 -+++ bin/zephir 2016-10-10 10:47:47.437248408 +0200 +--- bin/zephir.rpm 2017-10-11 16:28:17.271148783 +0200 ++++ bin/zephir 2017-10-11 17:37:30.075485109 +0200 @@ -1,26 +1,8 @@ #!/bin/sh -if [ -z "$ZEPHIRDIR" ]; then @@ -25,9 +25,9 @@ diff -up bin/zephir.rpm bin/zephir +export ZEPHIRDIR="@DATADIR@/zephir" if [ ! -z $1 ] && [ ! -z $2 ] && [ ! -z $3 ] && [ "$1" = "-c" ]; then -- php -d safe_mode=Off -d enable_dl=On -c $2 $ZEPHIRDIR/compiler.php ${*:3} +- php -c $2 $ZEPHIRDIR/compiler.php ${*:3} + @BINDIR@/php -d memory_limit=1G -d extension=zephir_parser.so -c $2 $ZEPHIRDIR/compiler.php ${*:3} else -- php -d safe_mode=Off -d enable_dl=On $ZEPHIRDIR/compiler.php $* +- php $ZEPHIRDIR/compiler.php $* + @BINDIR@/php -d memory_limit=1G -d extension=zephir_parser.so $ZEPHIRDIR/compiler.php $* fi diff --git a/zephir.spec b/zephir.spec new file mode 100644 index 0000000..359783a --- /dev/null +++ b/zephir.spec @@ -0,0 +1,203 @@ +# remirepo/fedora spec file for zephir +# +# Copyright (c) 2016-2017 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# + +%if 0%{?scl:1} +%global with_tests 0 +%scl_package zephyr-parser +%else +%if 0%{?fedora} +%global with_tests 0%{!?_without_tests:1} +%else +# Disable in EL as 5.4 and 5.5 can't use phpunit +%global with_tests 0%{?_with_tests:1} +%endif +%endif + +# Get commit from PHP_PHALCON_ZEPVERSION in +# https://github.com/phalcon/cphalcon/blob/master/ext/php_phalcon.h +%global gh_commit fb706a75805db24f2c7e70aad2465771c365d5a8 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +#global gh_date 20161126 +%global gh_owner phalcon +%global gh_project zephir +%global ext_name zephir_parser +%global parser_ver 1.0.3 + +Name: %{?scl_prefix}%{gh_project} +Version: 0.10.2 +Release: 1%{?gh_date:.%{gh_date}.%{gh_short}}%{?dist} +Summary: Zephir language for creation of extensions for PHP. + +Group: Development/Languages +License: MIT +URL: https://getcomposer.org/ +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz + +# Adapt path used in RPM +Patch0: %{gh_project}-rpm.patch + +BuildArch: noarch +BuildRequires: %{?scl_prefix}php-devel > 5.5 +BuildRequires: %{?scl_prefix}php-zephir-parser >= %{parser_ver} +%if %{with_tests} +BuildRequires: %{?scl_prefix}php-json +BuildRequires: %{?scl_prefix}php-hash +BuildRequires: %{?scl_prefix}php-ctype +# From composer.json, "require-dev" +# "ext-gmp": "*", +# "ext-pdo": "*", +# "ext-pdo_sqlite": "*", +# "squizlabs/php_codesniffer": "^2.8", +# "phpunit/phpunit": "^4.8" +BuildRequires: %{?scl_prefix}php-gmp +BuildRequires: %{?scl_prefix}php-pdo +BuildRequires: %{?scl_prefix}php-pdo_sqlite +BuildRequires: %{?scl_prefix}php-composer(phpunit/phpunit) >= 4.8 +%endif + +Requires: %{?scl_prefix}php-cli +Requires: %{?scl_prefix}php-zephir-parser >= %{parser_ver} +# From composer.json, "require" +# "php": ">=5.4", +# "ext-json": "*", +# "ext-hash": "*", +# "ext-ctype": "*", +# "ext-xml": "*" +Requires: %{?scl_prefix}php(language) >= 5.5 +Requires: %{?scl_prefix}php-json +Requires: %{?scl_prefix}php-hash +Requires: %{?scl_prefix}php-ctype +Requires: %{?scl_prefix}php-xml +# From phpcompatinfo +Requires: %{?scl_prefix}php-reflection +Requires: %{?scl_prefix}php-date +Requires: %{?scl_prefix}php-gmp +Requires: %{?scl_prefix}php-pcre +Requires: %{?scl_prefix}php-pdo +Requires: %{?scl_prefix}php-spl + +Provides: %{?scl_prefix}php-composer(%{gh_owner}/%{gh_project}) = %{version} + +%description +Zephir - Ze(nd Engine) Ph(p) I(nt)r(mediate) - is a high level language +that eases the creation and maintainability of extensions for PHP. +Zephir extensions are exported to C code that can be compiled and +optimized by major C compilers such as gcc/clang/vc++. Functionality +is exposed to the PHP language. + +Main features: +* Both dynamic/static typing +* Reduced execution overhead compared with full interpretation +* Restricted procedural programming, promoting OOP +* Memory safety +* Ahead-of-time (AOT) compiler to provide predictable performance + +Compiler design goals: +* Multi-pass compilation +* Type speculation/inference +* Allow runtime profile-guided optimizations, pseudo-constant propagation + and indirect/virtual function inlining + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +%patch0 -p0 -b .rpm +sed -e 's:@DATADIR@:%{_datadir}:;s:@BINDIR@:%{_bindir}:' \ + -i bin/%{gh_project} + +find . -name \*.php -exec chmod -x {} \; + + +%build +# nothing + + +%install + +: Library and resources +mkdir -p %{buildroot}%{_datadir}/%{gh_project} +for i in *php Library kernels prototypes templates +do + cp -pr $i %{buildroot}%{_datadir}/%{gh_project}/$i +done + +: Command +install -Dpm 755 bin/%{gh_project} %{buildroot}%{_bindir}/%{gh_project} + + + +%check +sed -e 's:%ZEPHIRDIR%:%{buildroot}%{_datadir}/%{gh_project}:g' \ + -e 's: php:%{_bindir}/php:' \ + bin/%{gh_project}.rpm > bin/%{gh_project}.test +sh ./bin/%{gh_project}.test version +sh ./bin/%{gh_project}.test version | grep %{version} + +%if %{with_tests} +: Run test suite +%{_bindir}/phpunit \ + --bootstrap %{buildroot}%{_datadir}/%{gh_project}/bootstrap.php \ + --verbose unit-tests/Zephir +%else +: Test suite disabled +%endif + + +%files +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc *.md +%doc composer.json +%{_bindir}/%{gh_project} +%{_datadir}/%{gh_project} + + +%changelog +* Wed Oct 11 2017 Remi Collet - 0.10.2-1 +- version 0.10.2 +- drop zephir-parser sub-package +- add dependency on php-zephir-parser + +* Fri Aug 4 2017 Remi Collet - 0.9.11-1 +- version 0.9.11 + +* Tue Aug 1 2017 Remi Collet - 0.9.10-1 +- version 0.9.10 + +* Tue Jul 18 2017 Remi Collet - 0.9.9-2 +- rebuild for PHP 7.2.0beta1 new API + +* Wed Jun 21 2017 Remi Collet - 0.9.9-1 +- version 0.9.9 + +* Mon May 22 2017 Remi Collet - 0.9.8-1 +- version 0.9.8 + +* Wed Apr 5 2017 Remi Collet - 0.9.7-1 +- version 0.9.7 + +* Tue Feb 21 2017 Remi Collet - 0.9.6-1 +- version 0.9.6 + +* Sun Nov 27 2016 Remi Collet - 0.9.5-1 +- version 0.9.5 + +* Fri Oct 14 2016 Remi Collet - 0.9.4-2.20161014git23856e1 +- new snapshot to fix PHP 7.1 compatibility of generated code + +* Mon Oct 10 2016 Remi Collet - 0.9.4-1.20160929git22f6632 +- new snapshot to fix PHP 7.1 compatibility of generated code + +* Wed Sep 14 2016 Remi Collet - 0.9.3-2.20160728gite716dbe +- rebuild for PHP 7.1 new API version + +* Sat Jul 30 2016 Remi Collet - 0.9.0-1.20160728gite716dbe +- Initial package + -- cgit