summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2012-09-12 16:04:54 +0200
committerRemi Collet <fedora@famillecollet.com>2012-09-12 16:04:54 +0200
commit2ad9286ba7199aae118e000bb34c271a62484892 (patch)
tree75dd0bb65b1abcd4eaac94f304e51a39387f1293
php-pecl-parsekit: import from rawhide
-rw-r--r--php-pecl-parsekit-1.3-php-5.4.patch205
-rw-r--r--php-pecl-parsekit.spec160
2 files changed, 365 insertions, 0 deletions
diff --git a/php-pecl-parsekit-1.3-php-5.4.patch b/php-pecl-parsekit-1.3-php-5.4.patch
new file mode 100644
index 0000000..d1a0fe5
--- /dev/null
+++ b/php-pecl-parsekit-1.3-php-5.4.patch
@@ -0,0 +1,205 @@
+diff -NaurEbBH -xgrep '-x*.la' '-x*.lai' '-x*.o' '-x*.so' '-x*.lo' php-pecl-parsekit-1.3.orig/parsekit/parsekit.c php-pecl-parsekit-1.3/parsekit/parsekit.c
+--- php-pecl-parsekit-1.3.orig/parsekit/parsekit.c 2009-01-22 09:21:11.000000000 -0700
++++ php-pecl-parsekit-1.3/parsekit/parsekit.c 2012-02-26 13:10:04.515679427 -0700
+@@ -78,18 +78,18 @@
+ #ifdef IS_CV
+ /* PHP >= 5.1 */
+ } else if (node->op_type == IS_CV) {
+- add_assoc_long(return_value, "var", node->u.var);
+- add_assoc_stringl(return_value, "varname", op_array->vars[node->u.var].name, op_array->vars[node->u.var].name_len, 1);
++ add_assoc_long(return_value, "var", node->u.op.var);
++ add_assoc_stringl(return_value, "varname", op_array->vars[node->u.op.var].name, op_array->vars[node->u.op.var].name_len, 1);
+ #endif
+ } else {
+ /* IS_VAR || IS_TMP_VAR || IS_UNUSED */
+ char sop[(sizeof(void *) * 2) + 1];
+
+- snprintf(sop, (sizeof(void *) * 2) + 1, "%X", (unsigned int)node->u.var);
++ snprintf(sop, (sizeof(void *) * 2) + 1, "%X", (unsigned int)node->u.op.var);
+
+ if ((flags & PHP_PARSEKIT_VAR) ||
+ (options & PHP_PARSEKIT_ALL_ELEMENTS)) {
+- add_assoc_long(return_value, "var", node->u.var / sizeof(temp_variable));
++ add_assoc_long(return_value, "var", node->u.op.var / sizeof(temp_variable));
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+ add_assoc_null(return_value, "var");
+ }
+@@ -114,7 +114,7 @@
+ (options & PHP_PARSEKIT_ALL_ELEMENTS)) {
+ add_assoc_string(return_value, "jmp_addr", sop, 1);
+ snprintf(sop, sizeof(sop)-1, "%u",
+- ((unsigned int)((char*)node->u.var - (char*)op_array->opcodes))/sizeof(zend_op));
++ ((unsigned int)((char*)node->u.op.var - (char*)op_array->opcodes))/sizeof(zend_op));
+ add_assoc_string(return_value, "jmp_offset", sop, 1);
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+ add_assoc_null(return_value, "jmp_addr");
+@@ -123,9 +123,9 @@
+
+ if ((flags & PHP_PARSEKIT_EA_TYPE) ||
+ (options & PHP_PARSEKIT_ALL_ELEMENTS)) {
+- add_assoc_long(return_value, "EA.type", node->u.EA.type);
++ add_assoc_long(return_value, "EA", node->EA);
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+- add_assoc_null(return_value, "EA.type");
++ add_assoc_null(return_value, "EA");
+ }
+ }
+ }
+@@ -300,7 +300,7 @@
+ }
+ add_assoc_long(return_value, "num_args", ops->num_args);
+ add_assoc_long(return_value, "required_num_args", ops->required_num_args);
+- add_assoc_bool(return_value, "pass_rest_by_reference", ops->pass_rest_by_reference);
++ add_assoc_bool(return_value, "pass_rest_by_reference", ops->fn_flags & ZEND_ACC_PASS_REST_BY_REFERENCE);
+
+ if (ops->num_args && ops->arg_info) {
+ MAKE_STD_ZVAL(tmpzval);
+@@ -374,15 +374,15 @@
+ #endif
+ /* ZE1 and ZE2 */
+
+- add_assoc_bool(return_value, "return_reference", ops->return_reference);
++ add_assoc_bool(return_value, "return_reference", ops->fn_flags & ZEND_ACC_RETURN_REFERENCE);
+ add_assoc_long(return_value, "refcount", *(ops->refcount));
+ add_assoc_long(return_value, "last", ops->last);
+- add_assoc_long(return_value, "size", ops->size);
++ add_assoc_long(return_value, "size", CG(context).opcodes_size);
+ add_assoc_long(return_value, "T", ops->T);
+ add_assoc_long(return_value, "last_brk_cont", ops->last_brk_cont);
+- add_assoc_long(return_value, "current_brk_cont", ops->current_brk_cont);
+- add_assoc_long(return_value, "backpatch_count", ops->backpatch_count);
+- add_assoc_bool(return_value, "done_pass_two", ops->done_pass_two);
++ add_assoc_long(return_value, "current_brk_cont", CG(context).current_brk_cont);
++ add_assoc_long(return_value, "backpatch_count", CG(context).backpatch_count);
++ add_assoc_bool(return_value, "done_pass_two", ops->fn_flags & ZEND_ACC_DONE_PASS_TWO);
+
+ if (ops->last_brk_cont > 0) {
+ MAKE_STD_ZVAL(tmpzval);
+@@ -413,10 +413,10 @@
+ add_assoc_null(return_value, "static_variables");
+ }
+
+- if (ops->start_op) {
++ if (EG(start_op)) {
+ char sop[(sizeof(void *) * 2) + 1];
+
+- snprintf(sop, sizeof(sop), "%X", (unsigned int)ops->start_op);
++ snprintf(sop, sizeof(sop), "%X", (unsigned int)EG(start_op));
+ add_assoc_string(return_value, "start_op", sop, 1);
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+ add_assoc_null(return_value, "start_op");
+@@ -431,7 +431,7 @@
+ /* Leave this last, it simplifies readability */
+ MAKE_STD_ZVAL(tmpzval);
+ array_init(tmpzval);
+- for(op = ops->opcodes, i = 0; op && i < ops->size; op++, i++) {
++ for(op = ops->opcodes, i = 0; op && i < CG(context).opcodes_size; op++, i++) {
+ zval *zop;
+
+ MAKE_STD_ZVAL(zop);
+@@ -447,17 +447,17 @@
+ static int php_parsekit_parse_node_simple(char **pret, zend_op_array *op_array, znode *node, zend_op_array *oparray TSRMLS_DC)
+ {
+ if (node->op_type == IS_UNUSED) {
+- if (node->u.var) {
++ if (node->u.op.var) {
+ #ifdef ZEND_ENGINE_2
+- if (node->u.jmp_addr >= oparray->opcodes &&
+- node->u.jmp_addr <= (oparray->opcodes + (sizeof(zend_op) * oparray->size)))
++ if (node->u.op.jmp_addr >= oparray->opcodes &&
++ node->u.op.jmp_addr <= (oparray->opcodes + (sizeof(zend_op) * CG(context).opcodes_size)))
+ {
+- spprintf(pret, 0, "#%d", node->u.jmp_addr - oparray->opcodes);
++ spprintf(pret, 0, "#%d", node->u.op.jmp_addr - oparray->opcodes);
+ }
+ else
+ #endif
+ {
+- spprintf(pret, 0, "0x%X", node->u.var);
++ spprintf(pret, 0, "0x%X", node->u.op.var);
+ }
+ return 1;
+ } else {
+@@ -514,7 +514,7 @@
+ }
+ }
+
+- spprintf(pret, 0, "T(%d)", node->u.var / sizeof(temp_variable));
++ spprintf(pret, 0, "T(%d)", node->u.op.var / sizeof(temp_variable));
+ return 1;
+ }
+ /* }}} */
+@@ -528,7 +528,7 @@
+
+ array_init(return_value);
+
+- for (op = ops->opcodes, i = 0; op && i < ops->size; op++, i++) {
++ for (op = ops->opcodes, i = 0; op && i < CG(context).opcodes_size; op++, i++) {
+ char *opline, *result, *op1, *op2;
+ int opline_len, freeit = 0;
+
+@@ -633,7 +633,7 @@
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+ add_assoc_null(return_value, "parent");
+ }
+- add_assoc_bool(return_value, "constants_updated", ce->constants_updated);
++ add_assoc_bool(return_value, "constants_updated", ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED);
+ #ifdef ZEND_ENGINE_2
+ /* ZE2 class_entry members */
+ add_assoc_long(return_value, "ce_flags", ce->ce_flags);
+@@ -691,12 +691,12 @@
+ add_assoc_null(return_value, "properties_info");
+ }
+
+- if (ce->static_members && zend_hash_num_elements(ce->static_members) > 0) {
++ if (ce->static_members_table && zend_hash_num_elements(ce->static_members_table) > 0) {
+ zval *tmp_zval;
+
+ MAKE_STD_ZVAL(tmpzval);
+ array_init(tmpzval);
+- zend_hash_copy(HASH_OF(tmpzval), ce->static_members, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_zval, sizeof(zval *));
++ zend_hash_copy(HASH_OF(tmpzval), ce->static_members_table, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_zval, sizeof(zval *));
+ add_assoc_zval(return_value, "static_members", tmpzval);
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+ add_assoc_null(return_value, "static_members");
+@@ -724,11 +724,11 @@
+ add_assoc_null(return_value, "interfaces");
+ }
+
+- add_assoc_string(return_value, "filename", ce->filename, 1);
+- add_assoc_long(return_value, "line_start", ce->line_start);
+- add_assoc_long(return_value, "line_end", ce->line_end);
+- if (ce->doc_comment) {
+- add_assoc_stringl(return_value, "doc_comment", ce->doc_comment, ce->doc_comment_len, 1);
++ add_assoc_string(return_value, "filename", ce->info.user.filename, 1);
++ add_assoc_long(return_value, "line_start", ce->info.user.line_start);
++ add_assoc_long(return_value, "line_end", ce->info.user.line_end);
++ if (ce->info.user.doc_comment) {
++ add_assoc_stringl(return_value, "doc_comment", ce->info.user.doc_comment, ce->info.user.doc_comment_len, 1);
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+ add_assoc_null(return_value, "doc_comment");
+ }
+@@ -757,12 +757,12 @@
+ add_assoc_null(return_value, "function_table");
+ }
+
+- if (zend_hash_num_elements(&(ce->default_properties)) > 0) {
++ if (zend_hash_num_elements(&(ce->default_properties_table)) > 0) {
+ zval *tmp_zval;
+
+ MAKE_STD_ZVAL(tmpzval);
+ array_init(tmpzval);
+- zend_hash_copy(HASH_OF(tmpzval), &(ce->default_properties), (copy_ctor_func_t) zval_add_ref, (void *) &tmp_zval, sizeof(zval *));
++ zend_hash_copy(HASH_OF(tmpzval), &(ce->default_properties_table), (copy_ctor_func_t) zval_add_ref, (void *) &tmp_zval, sizeof(zval *));
+ add_assoc_zval(return_value, "default_properties", tmpzval);
+ } else if (options & PHP_PARSEKIT_ALWAYS_SET) {
+ add_assoc_null(return_value, "default_properties");
+@@ -1131,7 +1131,7 @@
+ #endif
+
+ /* {{{ function_entry */
+-function_entry parsekit_functions[] = {
++zend_function_entry parsekit_functions[] = {
+ PHP_FE(parsekit_compile_string, php_parsekit_second_arg_force_ref)
+ PHP_FE(parsekit_compile_file, php_parsekit_second_arg_force_ref)
+ PHP_FE(parsekit_opcode_flags, NULL)
diff --git a/php-pecl-parsekit.spec b/php-pecl-parsekit.spec
new file mode 100644
index 0000000..e9eae03
--- /dev/null
+++ b/php-pecl-parsekit.spec
@@ -0,0 +1,160 @@
+%global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1)
+%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}}
+%{!?php_extdir: %{expand: %%global php_extdir %(php-config --extension-dir)}}
+
+%global CVS 20120226
+%global peclName parsekit
+
+Summary: PHP Opcode Analyser
+Name: php-pecl-%peclName
+Version: 1.3
+Release: 2%{?CVS:.CVS%{CVS}}%{?dist}
+License: PHP
+Group: Development/Libraries
+%if 0%{?CVS:1}
+# cvs -d :pserver:cvsread@cvs.php.net/repository export -D 2009-03-09 pecl/parsekit ; tar cjf parsekit-1.2-CVS20090309.tar.bz2 -C pecl parsekit
+Source0: %{peclName}-%{version}-CVS%{CVS}.tar.bz2
+%else
+Source0: http://pecl.php.net/get/%{peclName}-%{version}.tgz
+%endif
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+URL: http://pecl.php.net/package/%peclName
+BuildRequires: php-pear >= 1.4.7 php-devel
+
+%if 0%{?php_zend_api:1}
+Requires: php(zend-abi) = %{php_zend_api}
+Requires: php(api) = %{php_core_api}
+%else
+Requires: php-api = %{php_apiver}
+%endif
+Provides: php-pecl(%peclName) = %{version}
+
+Requires(post): %{__pecl}
+Requires(postun): %{__pecl}
+
+# https://bugs.php.net/bug.php?id=61187
+Patch1: php-pecl-parsekit-1.3-php-5.4.patch
+
+%description
+Provides a userspace interpretation of the opcodes generated by the Zend engine
+compiler built into PHP.
+This extension is meant for development and debug purposes only and contains
+some code which is potentially non-threadsafe.
+
+%prep
+#%setup -qc -n %peclName-%{version}
+%setup -qc
+
+%patch1 -p1 -b .php5.4
+
+%build
+cd %peclName
+phpize
+%{configure} --with-%peclName
+%{__make}
+
+%install
+cd %peclName
+rm -rf %{buildroot}
+
+%{__make} install \
+ INSTALL_ROOT=%{buildroot}
+
+# Install XML package description
+install -m 0755 -d %{buildroot}%{pecl_xmldir}
+install -m 0664 package.xml %{buildroot}%{pecl_xmldir}/%peclName.xml
+install -d %{buildroot}%{_sysconfdir}/php.d/
+
+cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/php.d/%peclName.ini
+; Enable %{peclName} extension module
+extension=%{peclName}.so
+EOF
+
+%post
+%if 0%{?pecl_install:1}
+%{pecl_install} %{pecl_xmldir}/%{peclName}.xml >/dev/null || :
+%endif
+
+%postun
+%if 0%{?pecl_uninstall:1}
+if [ $1 -eq 0 ] ; then
+ %{pecl_uninstall} %{peclName} >/dev/null || :
+fi
+%endif
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%doc %peclName/examples/{compile_file.php,compile_string.php,compile_string_show_errors.php} %peclName/README
+%{php_extdir}/%peclName.so
+%{pecl_xmldir}/%peclName.xml
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php.d/%peclName.ini
+
+%changelog
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3-2.CVS20120226
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Sun Mar 4 2012 Pavel Alexeev <Pahan@Hubbitus.info> 1.3-1.CVS20120226
+- Change release enumerate manner as 1.3 was already released (Thanks to Remi Collet).
+
+* Sun Feb 26 2012 Pavel Alexeev <Pahan@Hubbitus.info> 1.3-0.1.CVS20120226
+- Update to 1.3 branch, try fix FBFS on PHP 5.4.
+- Urls by patch wrote:
+ https://bugs.php.net/bug.php?id=61187
+ http://fossies.org/unix/www/php-5.4.0RC8.tar.gz:a/php-5.4.0RC8/NEWS
+ http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/Zend/zend_compile.h?r1=298202&r2=298203&
+ http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/Zend/zend_compile.h?annotate=321634
+ http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/Zend/zend_compile.h?r1=301081&r2=303381
+- Add patch php-pecl-parsekit-1.3-php-5.4.patch
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-8.CVS20090309
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Sep 12 2011 Pavel Alexeev <Pahan@Hubbitus.info> - 1.2-7.CVS20090309
+- Fix FBFS f16-17. Bz#716157
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-6.CVS20090309
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2-5.CVS20090309
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Mon Jul 13 2009 Remi Collet <Fedora@FamilleCollet.com> - 1.2-4.CVS20090309
+- rebuild for new PHP 5.3.0 ABI (20090626)
+
+* Tue Jun 30 2009 Pavel Alexeev <Pahan@Hubbitus.info> - 1.2-3.CVS20090309
+- Most of changes inspired by continue Fedora review by Jason Tibbitts.
+- Prefer %%global over %%define
+- Source0 is not URL now for CVS build.
+- "PECL" prefix removed from summary.
+- Add %%release part into BuildRoot tag.
+- Add more magic into Release define and fit it into one line.OD
+
+* Mon Mar 9 2009 Pavel Alexeev <Pahan@Hubbitus.info> - 1.2-2.CVS20090309
+- php-pecl-parsekit.Hu.spec renamed to normal php-pecl-parsekit.spec
+- In Version changhes: As it is post release enumereate it after 0. Remove Hu-part.
+- New CVS checkout 20090309
+- Add php_apiver and __pecl macroses define. Remove peardir.
+- Remove define macros xmldir and replace it by common pecl_xmldir
+- Add comment of command how to get source.
+- Add patch Patch2: php-pecl-parsekit-1.2.APIstatic.patch to allow build on recent versions.
+- Fix several inconsistent macros usages.
+- Add standard Requires/provides of php-api, abi, zend abi, php-pecl(%%peclName) = %%{version}...
+- Delete pathces, which is not needed anymore in ew checkout.
+- Remove Obsoletes: php-pear-%%peclName
+- Add Requires(post): %%{__pecl} and Requires(postun): %%{__pecl}
+- Rpmlint warnings:
+ o Mixed spaces turned to tabs.
+ o Descrioption line too long: splited.
+ o License from "PHP License" changed to just PHP
+ o script-without-shebang /usr/share/pear/.pkgxml/parsekit.xml: chmod to 0664
+
+* Tue May 13 2008 Pavel Alexeev <Pahan [ at ] Hubbitus [ DOT ] spb [ dOt.] su> - 1.2-0.CVS20080513.Hu.0
+- Initial spec (copy of php-pecl-imagick.Hu.spec)
+- Add (import from runkit spec-file) CVS-build support
+- Add patches:
+ Patch0: php-pecl-parsekit-php51.patch (http://www.mail-archive.com/pld-cvs-commit@lists.pld-linux.org/msg28512.html)
+ Patch1: php-pecl-parsekit-1.2-PHP5.3.0.patch (self)
+- Post and Pustun steps replaced by it is macroses-representated form (from php-pecl-phar)