diff options
| author | Remi Collet <fedora@famillecollet.com> | 2014-03-16 19:08:21 +0100 | 
|---|---|---|
| committer | Remi Collet <fedora@famillecollet.com> | 2014-03-16 19:08:21 +0100 | 
| commit | e7e985f4e25d2226a24d50a781e4ca295662ff48 (patch) | |
| tree | f7fe745f3670f66dca1d4d23bd3bcab3b7ea0b1f | |
| parent | ca6295cf3a631715d938e3092124075f32c104b3 (diff) | |
php-pecl-inclued: 0.1.3 with fix for 5.4, 5.5 and 5.6
| -rw-r--r-- | LICENSE | 68 | ||||
| -rw-r--r-- | inclued-svn.patch | 232 | ||||
| -rw-r--r-- | php-pecl-inclued.spec | 58 | 
3 files changed, 348 insertions, 10 deletions
@@ -0,0 +1,68 @@ +--------------------------------------------------------------------  +                  The PHP License, version 3.01 +Copyright (c) 1999 - 2012 The PHP Group. All rights reserved. +--------------------------------------------------------------------  + +Redistribution and use in source and binary forms, with or without +modification, is permitted provided that the following conditions +are met: + +  1. Redistributions of source code must retain the above copyright +     notice, this list of conditions and the following disclaimer. +  +  2. Redistributions in binary form must reproduce the above copyright +     notice, this list of conditions and the following disclaimer in +     the documentation and/or other materials provided with the +     distribution. +  +  3. The name "PHP" must not be used to endorse or promote products +     derived from this software without prior written permission. For +     written permission, please contact group@php.net. +   +  4. Products derived from this software may not be called "PHP", nor +     may "PHP" appear in their name, without prior written permission +     from group@php.net.  You may indicate that your software works in +     conjunction with PHP by saying "Foo for PHP" instead of calling +     it "PHP Foo" or "phpfoo" +  +  5. The PHP Group may publish revised and/or new versions of the +     license from time to time. Each version will be given a +     distinguishing version number. +     Once covered code has been published under a particular version +     of the license, you may always continue to use it under the terms +     of that version. You may also choose to use such covered code +     under the terms of any subsequent version of the license +     published by the PHP Group. No one other than the PHP Group has +     the right to modify the terms applicable to covered code created +     under this License. + +  6. Redistributions of any form whatsoever must retain the following +     acknowledgment: +     "This product includes PHP software, freely available from +     <http://www.php.net/software/>". + +THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND  +ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A  +PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE PHP +DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,  +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES  +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR  +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +--------------------------------------------------------------------  + +This software consists of voluntary contributions made by many +individuals on behalf of the PHP Group. + +The PHP Group can be contacted via Email at group@php.net. + +For more information on the PHP Group and the PHP project,  +please see <http://www.php.net>. + +PHP includes the Zend Engine, freely available at +<http://www.zend.com>. diff --git a/inclued-svn.patch b/inclued-svn.patch new file mode 100644 index 0000000..a84cf47 --- /dev/null +++ b/inclued-svn.patch @@ -0,0 +1,232 @@ +--- pecl/inclued/trunk/inclued.c	2013/09/23 14:27:53	331472 ++++ pecl/inclued/trunk/inclued.c	2013/09/23 18:23:34	331473 +@@ -108,26 +108,26 @@ + 		MAKE_STD_ZVAL(class_entry); + 		array_init(class_entry); +  +-		add_assoc_stringl_ex(class_entry, "name", sizeof("name"), ce->name, ce->name_length, 1); ++		add_assoc_stringl_ex(class_entry, "name", sizeof("name"), (char*) ce->name, ce->name_length, 1); + 		if(ce->name[0] != key[0]) + 		{ + 			add_assoc_stringl_ex(class_entry, "mangled_name", sizeof("mangled_name"), key, keylen-1, 1); + 		} +-		add_assoc_string_ex(class_entry, "filename", sizeof("filename"), CE_INFO(ce, filename), 1); ++		add_assoc_string_ex(class_entry, "filename", sizeof("filename"), (char*) CE_INFO(ce, filename), 1); + 		add_assoc_long_ex(class_entry, "line", sizeof("line"), CE_INFO(ce, line_start)); +  + 		if(ce->parent) + 		{ + 			MAKE_STD_ZVAL(parent_entry); + 			array_init(parent_entry); +-			add_assoc_stringl_ex(parent_entry, "name", sizeof("name"), ce->parent->name, ce->parent->name_length, 1); ++			add_assoc_stringl_ex(parent_entry, "name", sizeof("name"), (char*) ce->parent->name, ce->parent->name_length, 1); + 			if(ce->parent->type == ZEND_INTERNAL_CLASS)  + 			{  + 				add_assoc_bool_ex(parent_entry, "internal", sizeof("internal"), 1); + 			}  + 			else + 			{ +-				add_assoc_string_ex(parent_entry, "filename", sizeof("filename"), CE_INFO(ce, filename), 1); ++				add_assoc_string_ex(parent_entry, "filename", sizeof("filename"), (char*) CE_INFO(ce, filename), 1); + 				add_assoc_long_ex(parent_entry, "line", sizeof("line"), CE_INFO(ce, line_start)); + 			} +  +--- pecl/inclued/trunk/inclued_zend.c	2013/09/23 14:27:53	331472 ++++ pecl/inclued/trunk/inclued_zend.c	2013/09/23 18:23:34	331473 +@@ -21,43 +21,40 @@ + #include "php_inclued.h" + #include "inclued_zend.h" +  +-#define INCLUED_EX_T(offset)					(*(temp_variable *)((char*)execute_data->Ts + offset)) ++ ++#if PHP_VERSION_ID >= 50500 ++#  define INCLUED_EX_T(offset)					(*EX_TMP_VAR(execute_data, offset)) ++#else ++#  define INCLUED_EX_T(offset)					(*(temp_variable *)((char *) execute_data->Ts + offset)) ++#endif +  + static zval *inclued_get_zval_ptr(INCLUED_ZNODE *node, int op_type, zval **freeval, zend_execute_data *execute_data TSRMLS_DC) /* {{{ */ + { ++	zend_free_op free_op1; ++	zval *value = NULL; + 	*freeval = NULL; +- +-	switch (op_type) { +-		case IS_CONST: +-#if PHP_VERSION_ID >= 50400 +-			return INCLUED_ZNODE_ELEM(node, zv); ++#if PHP_VERSION_ID >= 50600 ++	value = zend_get_zval_ptr(op_type, node, execute_data, &free_op1, BP_VAR_R TSRMLS_CC); + #else +-			return &(INCLUED_ZNODE_ELEM(node, constant)); +-#endif +-		case IS_VAR: +-			return INCLUED_EX_T(INCLUED_ZNODE_ELEM(node, var)).var.ptr; +-		case IS_TMP_VAR: +-			return (*freeval = &INCLUED_EX_T(INCLUED_ZNODE_ELEM(node, var)).tmp_var); +-#ifdef ZEND_ENGINE_2_1 +-		case IS_CV: +-		{ +-			zval ***ret = &execute_data->CVs[INCLUED_ZNODE_ELEM(node, var)]; +- +-			if (!*ret) { +-				zend_compiled_variable *cv = &EG(active_op_array)->vars[INCLUED_ZNODE_ELEM(node, var)]; +- +-				if (zend_hash_quick_find(EG(active_symbol_table), cv->name, cv->name_len+1, cv->hash_value, (void**)ret)==FAILURE) { +-					zend_error(E_NOTICE, "Undefined variable: %s", cv->name); +-					return &EG(uninitialized_zval); +-				} +-			} +-			return **ret; +-		} ++	value = zend_get_zval_ptr(op_type, node, execute_data->Ts, &free_op1, BP_VAR_R TSRMLS_CC); + #endif +-		case IS_UNUSED: +-		default: +-			return NULL; ++	*freeval = free_op1.var; ++	return value; ++}  ++/* }}} */ ++ ++static int is_autoload(const char *function_name) /* {{{ */ ++{ ++	/* TODO: config option? */ ++	if(strcmp("__autoload", function_name) == 0)  ++	{ ++		return 1;  ++	} ++	if(strcmp("spl_autoload", function_name) == 0)  ++	{ ++		return 1;  + 	} ++	return 0; + } + /* }}} */ +  +@@ -121,12 +118,12 @@ + 		array_init(include_entry); + 		add_assoc_string_ex(include_entry, "operation", sizeof("operation"), operation, 1); + 		add_assoc_long_ex(include_entry, "op_type", sizeof("op_type"), op_type); +-		add_assoc_string_ex(include_entry, "fromfile", sizeof("fromfile"), execute_data->op_array->filename, 1); ++		add_assoc_string_ex(include_entry, "fromfile", sizeof("fromfile"), (char*)execute_data->op_array->filename, 1); + 		add_assoc_long_ex(include_entry, "fromline", sizeof("fromline"), opline->lineno); +  + 		if(execute_data->op_array->function_name)  + 		{ +-			add_assoc_string_ex(include_entry, "function", sizeof("function"), (char*)execute_data->op_array->function_name, 1); ++			add_assoc_string_ex(include_entry, (char*) "function", sizeof("function"), (char*)execute_data->op_array->function_name, 1); + 		} +  + 		add_next_index_zval(includes_hash, include_entry); +@@ -149,7 +146,7 @@ + 		inc_filename = &tmp_inc_filename; + 	} +  +-	wrapper = php_stream_locate_url_wrapper(Z_STRVAL_P(inc_filename), &path_for_open, 0 TSRMLS_CC); ++	wrapper = php_stream_locate_url_wrapper(Z_STRVAL_P(inc_filename), (const char**)&path_for_open, 0 TSRMLS_CC); +  +  + 	if(SUCCESS == zend_stream_open(inc_filename->value.str.val, &file_handle TSRMLS_CC)) +@@ -183,15 +180,15 @@ + 			add_assoc_bool_ex(include_entry, "duplicate", sizeof("duplicate"), 1); + 		} + 		 +-		add_assoc_string_ex(include_entry, "fromfile", sizeof("fromfile"), execute_data->op_array->filename, 1); ++		add_assoc_string_ex(include_entry, "fromfile", sizeof("fromfile"), (char*) execute_data->op_array->filename, 1); + 		add_assoc_long_ex(include_entry, "fromline", sizeof("fromline"), opline->lineno); +  + 		if(execute_data->op_array->function_name)  + 		{ +-			add_assoc_string_ex(include_entry, "function", sizeof("function"), (char*)execute_data->op_array->function_name, 1); ++			add_assoc_string_ex(include_entry, "function", sizeof("function"), (char*) execute_data->op_array->function_name, 1); + 		} +  +-		if(execute_data->op_array->function_name && (strcmp("__autoload", execute_data->op_array->function_name) == 0)) ++		if(execute_data->op_array->function_name && is_autoload(execute_data->op_array->function_name)) + 		{ + 			real_execute_data = execute_data->prev_execute_data; + 			if(real_execute_data->opline == NULL && +@@ -203,7 +200,7 @@ + 				 + 				real_execute_data = real_execute_data->prev_execute_data; + 				 +-				add_assoc_string_ex(autoload_entry, "fromfile", sizeof("fromfile"), real_execute_data->op_array->filename, 1); ++				add_assoc_string_ex(autoload_entry, "fromfile", sizeof("fromfile"), (char*) real_execute_data->op_array->filename, 1); + 				add_assoc_long_ex(autoload_entry, "fromline", sizeof("fromline"), real_execute_data->opline->lineno); +  + 				add_assoc_zval(include_entry, "autoload", autoload_entry); +@@ -221,7 +218,7 @@ + 		 + 		if(wrapper != &php_plain_files_wrapper) + 		{ +-			add_assoc_string_ex(include_entry, "streamwrapper", sizeof("streamwrapper"), (char*)wrapper->wops->label, 1); ++			add_assoc_string_ex(include_entry, "streamwrapper", sizeof("streamwrapper"), (char*) wrapper->wops->label, 1); + 		} +  + 		add_next_index_zval(includes_hash, include_entry); +@@ -254,11 +251,11 @@ + #define INCLUED_ZCE(entry, ce) do { \ + 		MAKE_STD_ZVAL(entry);	\ + 		array_init(entry);		\ +-		add_assoc_stringl(entry, "name", ce->name, ce->name_length, 1); \ ++		add_assoc_stringl(entry, "name", (char*) ce->name, ce->name_length, 1); \ + 		if(ce->type == ZEND_INTERNAL_CLASS) { \ + 			add_assoc_bool(entry,  "internal", 1); \ + 		} else { \ +-			add_assoc_string(entry,  "filename", CE_INFO(ce, filename), 1); \ ++			add_assoc_string(entry,  "filename", (char*) CE_INFO(ce, filename), 1); \ + 			add_assoc_long(entry,    "line", CE_INFO(ce, line_start)); \ + 		} \ + 	}while(0) +@@ -281,7 +278,7 @@ + 	/* TODO: class flags - public, private, abstract etc ... */ +  + 	add_assoc_string(class_entry, "operation", (opcode == ZEND_DECLARE_CLASS) ? "declare_class" : "declare_inherited_class", 1); +-	add_assoc_string(class_entry, "filename",	execute_data->op_array->filename, 1); ++	add_assoc_string(class_entry, "filename", (char*) execute_data->op_array->filename, 1); + 	add_assoc_long(class_entry,   "line", opline->lineno); + #if PHP_VERSION_ID >= 50400	 + 	add_assoc_stringl(class_entry,"name", Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), 1); +@@ -302,7 +299,7 @@ +  + 	if(execute_data->op_array->function_name)  + 	{ +-		add_assoc_string(class_entry, "function", (char*)execute_data->op_array->function_name, 1); ++		add_assoc_string(class_entry, "function", (char*) execute_data->op_array->function_name, 1); + 	} +  + 	add_next_index_zval(inh_hash, class_entry); +@@ -336,9 +333,9 @@ + 	array_init(iface_entry); +  + 	add_assoc_string(iface_entry, "operation", "add_interface", 1); +-	add_assoc_string(iface_entry, "filename",	execute_data->op_array->filename, 1); ++	add_assoc_string(iface_entry, "filename", (char*) execute_data->op_array->filename, 1); + 	add_assoc_long(iface_entry,   "line", opline->lineno); +-	add_assoc_stringl(iface_entry, "class_name", ce->name, ce->name_length, 1); ++	add_assoc_stringl(iface_entry, "class_name", (char*) ce->name, ce->name_length, 1); /* contains \0 */ +  + 	if(execute_data->op_array->function_name)  + 	{ +--- pecl/inclued/trunk/gengraph.php	2013/09/23 18:23:34	331473 ++++ pecl/inclued/trunk/gengraph.php	2013/09/23 18:27:55	331474 +@@ -233,7 +233,6 @@ +  + $content = 	<<<EOF + digraph phpdeps { +-	size="6.6"; + 	node [shape = ellipse]; + 	node [color="#add960", style=filled]; + 	graph [bgcolor="#f7f7f7"]; +--- pecl/inclued/trunk/inclued_zend.c	2014/03/16 15:37:32	333015 ++++ pecl/inclued/trunk/inclued_zend.c	2014/03/16 18:00:34	333016 +@@ -33,7 +33,7 @@ + 	zend_free_op free_op1; + 	zval *value = NULL; + 	*freeval = NULL; +-#if PHP_VERSION_ID >= 50600 ++#if PHP_VERSION_ID >= 50500 + 	value = zend_get_zval_ptr(op_type, node, execute_data, &free_op1, BP_VAR_R TSRMLS_CC); + #else + 	value = zend_get_zval_ptr(op_type, node, execute_data->Ts, &free_op1, BP_VAR_R TSRMLS_CC); diff --git a/php-pecl-inclued.spec b/php-pecl-inclued.spec index b0291e4..fb4c796 100644 --- a/php-pecl-inclued.spec +++ b/php-pecl-inclued.spec @@ -23,6 +23,13 @@ URL:            http://pecl.php.net/package/%{pecl_name}  Source0:        http://pecl.php.net/get/%{pecl_name}-%{version}.tgz  # https://bugs.php.net/65841 Please Provides LICENSE file +# http://svn.php.net/viewvc?view=revision&revision=331713 +Source1:        LICENSE + +# http://svn.php.net/viewvc?view=revision&revision=331473 +# http://svn.php.net/viewvc?view=revision&revision=331474 +# http://svn.php.net/viewvc?view=revision&revision=333016 +Patch0:         %{pecl_name}-svn.patch  BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)  BuildRequires:  php-devel @@ -38,9 +45,25 @@ Provides:       php-%{pecl_name}%{?_isa} = %{version}  Provides:       php-pecl(%{pecl_name}) = %{version}  Provides:       php-pecl(%{pecl_name})%{?_isa} = %{version} -# Filter shared private +%if "%{?vendor}" == "Remi Collet" +# Other third party repo stuff +Obsoletes:     php53-pecl-%{pecl_name} +Obsoletes:     php53u-pecl-%{pecl_name} +Obsoletes:     php54-pecl-%{pecl_name} +%if "%{php_version}" > "5.5" +Obsoletes:     php55u-pecl-%{pecl_name} +%endif +%if "%{php_version}" > "5.6" +Obsoletes:     php56u-pecl-%{pecl_name} +%endif +%endif + +%if 0%{?fedora} < 20 +# Filter private shared  %{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$}  %{?filter_setup} +%endif +  %description  Allows you trace through and dump the hierarchy of file inclusions @@ -51,10 +74,18 @@ and class inheritance at runtime.  %setup -q -c  mv %{pecl_name}-%{version} NTS +sed -e '/gengraph.php/s/role="php"/role="doc"/' -i package.xml +  cd NTS  # no shebang, and will be provided as doc only  chmod -x gengraph.php +cp %{SOURCE1} LICENSE + +%if "%{php_version}" > "5.4" +%patch0 -p3 -b .svn +%endif +  # Sanity check, really often broken  extver=$(sed -n '/#define PHP_INCLUED_VERSION/{s/.* "//;s/".*$//;p}' php_inclued.h)  if test "x${extver}" != "x%{version}%{?prever:-%{prever}}"; then @@ -104,8 +135,7 @@ make %{?_smp_mflags}  %install  rm -rf %{buildroot} -make -C NTS \ -     install INSTALL_ROOT=%{buildroot} +make -C NTS install INSTALL_ROOT=%{buildroot}  # install config file  install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_inidir}/%{pecl_name}.ini @@ -114,12 +144,17 @@ install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_inidir}/%{pecl_name}.ini  install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml  %if %{with_zts} -make -C ZTS \ -     install INSTALL_ROOT=%{buildroot} +make -C ZTS install INSTALL_ROOT=%{buildroot}  install -D -m 644 %{pecl_name}.ini %{buildroot}%{php_ztsinidir}/%{pecl_name}.ini  %endif +# Test & Documentation +cd NTS +for i in LICENSE  $(grep 'role="doc"' ../package.xml | sed -e 's/^.*name="//;s/".*$//') +do install -Dpm 644 $i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i +done +  %post  %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : @@ -134,15 +169,13 @@ fi  %check  # Minimal load test for NTS extension  php --no-php-ini \ -    --define extension_dir=NTS/modules \ -    --define extension=%{pecl_name}.so \ +    --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \      --modules | grep %{pecl_name}  %if %{with_zts}  # Minimal load test for ZTS extension  %{__ztsphp} --no-php-ini \ -    --define extension_dir=ZTS/modules \ -    --define extension=%{pecl_name}.so \ +    --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \      --modules | grep %{pecl_name}  %endif @@ -153,8 +186,9 @@ rm -rf %{buildroot}  %files  %defattr(-,root,root,-) -%doc NTS/gengraph.php +%doc %{pecl_docdir}/%{pecl_name}  %{pecl_xmldir}/%{name}.xml +  %config(noreplace) %{php_inidir}/%{pecl_name}.ini  %{php_extdir}/%{pecl_name}.so @@ -165,5 +199,9 @@ rm -rf %{buildroot}  %changelog +* Sun Mar 16 2014 Remi Collet <remi@fedoraproject.org> - 0.1.3-2 +- install doc in pecl_docdir +- upstream patch for php 5.5+ +  * Sun Oct  6 2013 Remi Collet <remi@fedoraproject.org> - 0.1.3-1  - initial package  | 
