diff options
author | Brian Evans <grknight@gentoo.org> | 2017-03-03 14:28:43 -0500 |
---|---|---|
committer | Brian Evans <grknight@gentoo.org> | 2017-03-03 14:29:25 -0500 |
commit | f2f17d71f00dc1c922c208335b17f1d39abe7518 (patch) | |
tree | cdc3c8b4f6a083970c3fb0a8c7fed3b01b6bbb11 /dev-php/pecl-crack | |
parent | dev-php/PEAR-Var_Dump: Revision bump for new eclass (diff) | |
download | gentoo-f2f17d71f00dc1c922c208335b17f1d39abe7518.tar.gz gentoo-f2f17d71f00dc1c922c208335b17f1d39abe7518.tar.bz2 gentoo-f2f17d71f00dc1c922c208335b17f1d39abe7518.zip |
dev-php/pecl-crack: Revbump with patch for PHP 7
Package-Manager: Portage-2.3.4, Repoman-2.3.2
Diffstat (limited to 'dev-php/pecl-crack')
-rw-r--r-- | dev-php/pecl-crack/files/0.4-php7.patch | 356 | ||||
-rw-r--r-- | dev-php/pecl-crack/pecl-crack-0.4-r6.ebuild | 26 |
2 files changed, 382 insertions, 0 deletions
diff --git a/dev-php/pecl-crack/files/0.4-php7.patch b/dev-php/pecl-crack/files/0.4-php7.patch new file mode 100644 index 000000000000..5a00c9121810 --- /dev/null +++ b/dev-php/pecl-crack/files/0.4-php7.patch @@ -0,0 +1,356 @@ +--- a/crack.c 2016-12-19 16:04:09.244782234 -0500 ++++ b/crack.c 2016-12-20 09:20:11.903140742 -0500 +@@ -36,13 +36,31 @@ + /* True global resources - no need for thread safety here */ + static int le_crack; + ++ZEND_BEGIN_ARG_INFO_EX(crack_opendict_args, 0, ZEND_RETURN_VALUE, 1) ++ ZEND_ARG_INFO(0, dictionary) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(crack_closedict_args, 0, ZEND_RETURN_VALUE, 0) ++ ZEND_ARG_INFO(0, dictionary) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(crack_check_args, 0, ZEND_RETURN_VALUE, 1) ++ ZEND_ARG_INFO(0, password) ++ ZEND_ARG_INFO(0, username) ++ ZEND_ARG_INFO(0, gecos) ++ ZEND_ARG_INFO(0, dictionary) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(crack_getlastmessage_args, 0, ZEND_RETURN_VALUE, 0) ++ZEND_END_ARG_INFO() ++ + /* {{{ crack_functions[] + */ + zend_function_entry crack_functions[] = { +- PHP_FE(crack_opendict, NULL) +- PHP_FE(crack_closedict, NULL) +- PHP_FE(crack_check, NULL) +- PHP_FE(crack_getlastmessage, NULL) ++ ZEND_FE(crack_opendict, crack_opendict_args) ++ ZEND_FE(crack_closedict, crack_closedict_args) ++ ZEND_FE(crack_check, crack_check_args) ++ ZEND_FE(crack_getlastmessage, crack_getlastmessage_args) + {NULL, NULL, NULL} + }; + /* }}} */ +@@ -55,7 +73,7 @@ + #endif + "crack", + crack_functions, +- PHP_MINIT(crack), ++ PHP_MINIT(crack), + PHP_MSHUTDOWN(crack), + PHP_RINIT(crack), + PHP_RSHUTDOWN(crack), +@@ -84,7 +102,11 @@ + static void php_crack_init_globals(zend_crack_globals *crack_globals) + { + crack_globals->last_message = NULL; ++#if PHP_VERSION_ID >= 70000 ++ crack_globals->default_dict = NULL; ++#else + crack_globals->default_dict = -1; ++#endif + } + /* }}} */ + +@@ -95,7 +117,7 @@ + char *filename; + int filename_len; + int result = SUCCESS; +- ++ + #if PHP_VERSION_ID < 50400 + if (PG(safe_mode)) { + filename_len = strlen(path) + 10; +@@ -103,7 +125,7 @@ + if (NULL == filename) { + return FAILURE; + } +- ++ + memset(filename, '\0', filename_len); + strcpy(filename, path); + strcat(filename, ".pwd"); +@@ -111,7 +133,7 @@ + efree(filename); + return FAILURE; + } +- ++ + memset(filename, '\0', filename_len); + strcpy(filename, path); + strcat(filename, ".pwi"); +@@ -119,7 +141,7 @@ + efree(filename); + return FAILURE; + } +- ++ + memset(filename, '\0', filename_len); + strcpy(filename, path); + strcat(filename, ".hwm"); +@@ -129,39 +151,64 @@ + } + } + #endif +- ++ + if (php_check_open_basedir(path TSRMLS_CC)) { + return FAILURE; + } +- ++ + return SUCCESS; + } + /* }}} */ + + /* {{{ php_crack_set_default_dict + */ ++#if PHP_VERSION_ID >= 70000 ++static void php_crack_set_default_dict(zend_resource *id) ++{ ++ if (CRACKG(default_dict) != NULL) { ++ zend_list_close(CRACKG(default_dict)); ++ } ++ ++ CRACKG(default_dict) = id; ++ id->gc.refcount++; ++} ++#else + static void php_crack_set_default_dict(int id TSRMLS_DC) + { + if (CRACKG(default_dict) != -1) { + zend_list_delete(CRACKG(default_dict)); + } +- ++ + CRACKG(default_dict) = id; + zend_list_addref(id); + } ++#endif + /* }}} */ + + /* {{{ php_crack_get_default_dict + */ ++#if PHP_VERSION_ID >= 70000 ++static zend_resource * php_crack_get_default_dict(INTERNAL_FUNCTION_PARAMETERS) ++#else + static int php_crack_get_default_dict(INTERNAL_FUNCTION_PARAMETERS) ++#endif + { ++#if PHP_VERSION_ID >= 70000 ++ if ((NULL == CRACKG(default_dict)) && (NULL != CRACKG(default_dictionary))) { ++#else + if ((-1 == CRACKG(default_dict)) && (NULL != CRACKG(default_dictionary))) { ++#endif + CRACKLIB_PWDICT *pwdict; + printf("trying to open: %s\n", CRACKG(default_dictionary)); + pwdict = cracklib_pw_open(CRACKG(default_dictionary), "r"); + if (NULL != pwdict) { ++#if PHP_VERSION_ID >= 70000 ++ ZVAL_RES(return_value, zend_register_resource(pwdict, le_crack)); ++ php_crack_set_default_dict(Z_RES_P(return_value)); ++#else + ZEND_REGISTER_RESOURCE(return_value, pwdict, le_crack); + php_crack_set_default_dict(Z_LVAL_P(return_value) TSRMLS_CC); ++#endif + } + } + +@@ -171,7 +218,11 @@ + + /* {{{ php_crack_module_dtor + */ ++#if PHP_VERSION_ID >= 70000 ++static void php_crack_module_dtor(zend_resource *rsrc) ++#else + static void php_crack_module_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC) ++#endif + { + CRACKLIB_PWDICT *pwdict = (CRACKLIB_PWDICT *) rsrc->ptr; + +@@ -191,7 +242,9 @@ + + REGISTER_INI_ENTRIES(); + le_crack = zend_register_list_destructors_ex(php_crack_module_dtor, NULL, "crack dictionary", module_number); ++#if PHP_VERSION_ID < 70000 + Z_TYPE(crack_module_entry) = type; ++#endif + + return SUCCESS; + } +@@ -210,7 +263,11 @@ + PHP_RINIT_FUNCTION(crack) + { + CRACKG(last_message) = NULL; ++#if PHP_VERSION_ID >= 70000 ++ CRACKG(default_dict) = NULL; ++#else + CRACKG(default_dict) = -1; ++#endif + + return SUCCESS; + } +@@ -245,7 +302,7 @@ + PHP_FUNCTION(crack_opendict) + { + char *path; +- int path_len; ++ size_t path_len; + CRACKLIB_PWDICT *pwdict; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) { +@@ -265,9 +322,14 @@ + #endif + RETURN_FALSE; + } +- ++ ++#if PHP_VERSION_ID >= 70000 ++ RETURN_RES(zend_register_resource(pwdict, le_crack)); ++ php_crack_set_default_dict(Z_RES_P(return_value)); ++#else + ZEND_REGISTER_RESOURCE(return_value, pwdict, le_crack); + php_crack_set_default_dict(Z_LVAL_P(return_value) TSRMLS_CC); ++#endif + } + /* }}} */ + +@@ -276,7 +338,11 @@ + PHP_FUNCTION(crack_closedict) + { + zval *dictionary = NULL; ++#if PHP_VERSION_ID >= 70000 ++ zend_resource *id; ++#else + int id = -1; ++#endif + CRACKLIB_PWDICT *pwdict; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|r", &dictionary)) { +@@ -285,7 +351,11 @@ + + if (NULL == dictionary) { + id = php_crack_get_default_dict(INTERNAL_FUNCTION_PARAM_PASSTHRU); ++#if PHP_VERSION_ID >= 70000 ++ if (id == NULL) { ++#else + if (id == -1) { ++#endif + #if ZEND_MODULE_API_NO >= 20021010 + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not open default crack dicionary"); + #else +@@ -294,8 +364,21 @@ + RETURN_FALSE; + } + } ++#if PHP_VERSION_ID >= 70000 ++ if((pwdict = (CRACKLIB_PWDICT *)zend_fetch_resource(Z_RES_P(dictionary), "crack dictionary", le_crack)) == NULL) ++ { ++ RETURN_FALSE; ++ } ++ if (NULL == dictionary) { ++ zend_list_close(CRACKG(default_dict)); ++ CRACKG(default_dict) = NULL; ++ } ++ else { ++ zend_list_close(Z_RES_P(dictionary)); ++ } ++#else + ZEND_FETCH_RESOURCE(pwdict, CRACKLIB_PWDICT *, &dictionary, id, "crack dictionary", le_crack); +- ++ + if (NULL == dictionary) { + zend_list_delete(CRACKG(default_dict)); + CRACKG(default_dict) = -1; +@@ -303,7 +386,7 @@ + else { + zend_list_delete(Z_RESVAL_P(dictionary)); + } +- ++#endif + RETURN_TRUE; + } + /* }}} */ +@@ -314,14 +397,18 @@ + { + zval *dictionary = NULL; + char *password = NULL; +- int password_len; ++ size_t password_len; + char *username = NULL; +- int username_len; ++ size_t username_len; + char *gecos = NULL; +- int gecos_len; ++ size_t gecos_len; + char *message; + CRACKLIB_PWDICT *pwdict; ++#if PHP_VERSION_ID >= 70000 ++ zend_resource *crack_res; ++#else + int id = -1; ++#endif + + if (NULL != CRACKG(last_message)) { + efree(CRACKG(last_message)); +@@ -335,6 +422,21 @@ + } + + if (NULL == dictionary) { ++#if PHP_VERSION_ID >= 70000 ++ crack_res = php_crack_get_default_dict(INTERNAL_FUNCTION_PARAM_PASSTHRU); ++ if (crack_res == NULL || crack_res->ptr == NULL) { ++ php_error(E_WARNING, "Could not open default crack dicionary"); ++ RETURN_FALSE; ++ } ++ ++ } ++ else { ++ if((pwdict = (CRACKLIB_PWDICT *)zend_fetch_resource(Z_RES_P(dictionary), "crack dictionary", le_crack)) == NULL) { ++ php_error(E_WARNING, "Could not open crack dicionary resource"); ++ RETURN_FALSE; ++ } ++ } ++#else + id = php_crack_get_default_dict(INTERNAL_FUNCTION_PARAM_PASSTHRU); + if (id == -1) { + #if ZEND_MODULE_API_NO >= 20021010 +@@ -346,6 +448,7 @@ + } + } + ZEND_FETCH_RESOURCE(pwdict, CRACKLIB_PWDICT *, &dictionary, id, "crack dictionary", le_crack); ++#endif + + message = cracklib_fascist_look_ex(pwdict, password, username, gecos); + +@@ -377,7 +480,11 @@ + RETURN_FALSE; + } + ++#if PHP_VERSION_ID >= 70000 ++ RETURN_STRING(CRACKG(last_message)); ++#else + RETURN_STRING(CRACKG(last_message), 1); ++#endif + } + /* }}} */ + +--- a/php_crack.h 2005-09-21 05:00:06.000000000 -0400 ++++ b/php_crack.h 2016-12-19 16:51:22.449321851 -0500 +@@ -52,7 +52,11 @@ + ZEND_BEGIN_MODULE_GLOBALS(crack) + char *default_dictionary; + char *last_message; ++#if PHP_VERSION_ID >= 70000 ++ zend_resource *default_dict; ++#else + int default_dict; ++#endif + ZEND_END_MODULE_GLOBALS(crack) + + #ifdef ZTS diff --git a/dev-php/pecl-crack/pecl-crack-0.4-r6.ebuild b/dev-php/pecl-crack/pecl-crack-0.4-r6.ebuild new file mode 100644 index 000000000000..f7a9d30a87f6 --- /dev/null +++ b/dev-php/pecl-crack/pecl-crack-0.4-r6.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PHP_EXT_NAME="crack" +PHP_EXT_INI="yes" +PHP_EXT_ZENDEXT="no" +PHP_EXT_EXTRA_ECONF="" +DOCS=( EXPERIMENTAL ) + +USE_PHP="php5-6 php7-0 php7-1" + +inherit php-ext-pecl-r3 + +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" + +DESCRIPTION="PHP interface to the cracklib libraries" +LICENSE="PHP-3 CRACKLIB" +SLOT="0" +IUSE="" +# Patch for http://pecl.php.net/bugs/bug.php?id=5765 +PATCHES=( "${FILESDIR}/fix-php-5-4-support.patch" +"${FILESDIR}/fix-pecl-bug-5765.patch" +"${FILESDIR}/${PV}-php7.patch" +) |