public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-php/pecl-pam/files/, dev-php/pecl-pam/
@ 2016-12-01 19:53 Brian Evans
  0 siblings, 0 replies; only message in thread
From: Brian Evans @ 2016-12-01 19:53 UTC (permalink / raw
  To: gentoo-commits

commit:     8f113e301d3d56ef3c9623c40014000a102db15c
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  1 19:51:56 2016 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Thu Dec  1 19:53:29 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f113e30

dev-php/pecl-pam: Revision bump to support PHP 7 and drop 5.4 and 5.5

PHP 7 patch created by me as it was rather trivial changes

Package-Manager: portage-2.3.2

 dev-php/pecl-pam/files/1.0.3-php7.patch   | 118 ++++++++++++++++++++++++++++++
 dev-php/pecl-pam/pecl-pam-1.0.3-r2.ebuild |  45 ++++++++++++
 2 files changed, 163 insertions(+)

diff --git a/dev-php/pecl-pam/files/1.0.3-php7.patch b/dev-php/pecl-pam/files/1.0.3-php7.patch
new file mode 100644
index 00000000..d56fffb
--- /dev/null
+++ b/dev-php/pecl-pam/files/1.0.3-php7.patch
@@ -0,0 +1,118 @@
+--- a/pam.c	2016-12-01 14:29:27.453904230 -0500
++++ b/pam.c	2016-12-01 14:27:26.496109755 -0500
+@@ -227,8 +227,13 @@
+ PHP_FUNCTION(pam_auth)
+ {
+ 	char *username, *password;
++#if PHP_MAJOR_VERSION >= 7
++ 	size_t username_len, password_len;
++	zval *status = NULL, *server, *remote_addr;
++#else
+ 	int username_len, password_len;
+ 	zval *status = NULL, **server, **remote_addr;
++#endif
+ 	zend_bool checkacctmgmt = 1;
+ 
+ 	pam_auth_t userinfo = {NULL, NULL};
+@@ -248,22 +253,37 @@
+ 		if (status) {
+ 			spprintf(&error_msg, 0, "%s (in %s)", (char *) pam_strerror(pamh, result), "pam_start");
+ 			zval_dtor(status);
++#if PHP_MAJOR_VERSION >= 7
++			ZVAL_STRING(status, error_msg);
++			efree(error_msg);
++#else
+ 			ZVAL_STRING(status, error_msg, 0);
++#endif
+ 		}
+ 		RETURN_FALSE;
+ 	}
+ 
++#if PHP_MAJOR_VERSION >= 7
++	if ((remote_addr = zend_hash_str_find(Z_ARR(PG(http_globals)[TRACK_VARS_SERVER]), "REMOTE_ADDR", sizeof("REMOTE_ADDR")-1)) != NULL && Z_TYPE_P(remote_addr) == IS_STRING) {
++		pam_set_item(pamh, PAM_RHOST, Z_STRVAL_P(remote_addr));
++#else
+ 	if (zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **)&server) == SUCCESS && Z_TYPE_PP(server) == IS_ARRAY) {
+ 		if (zend_hash_find(Z_ARRVAL_PP(server), "REMOTE_ADDR", sizeof("REMOTE_ADDR"), (void **)&remote_addr) == SUCCESS && Z_TYPE_PP(remote_addr) == IS_STRING) {
+ 			pam_set_item(pamh, PAM_RHOST, Z_STRVAL_PP(remote_addr));
+ 		}
++#endif
+ 	}
+ 
+ 	if ((result = pam_authenticate(pamh, PAM_DISALLOW_NULL_AUTHTOK)) != PAM_SUCCESS) {
+ 		if (status) {
+ 			spprintf(&error_msg, 0, "%s (in %s)", (char *) pam_strerror(pamh, result), "pam_authenticate");
+ 			zval_dtor(status);
++#if PHP_MAJOR_VERSION >= 7
++			ZVAL_STRING(status, error_msg);
++			efree(error_msg);
++#else
+ 			ZVAL_STRING(status, error_msg, 0);
++#endif
+ 		}
+ 		pam_end(pamh, PAM_SUCCESS);
+ 		RETURN_FALSE;
+@@ -274,7 +294,12 @@
+ 			if (status) {
+ 				spprintf(&error_msg, 0, "%s (in %s)", (char *) pam_strerror(pamh, result), "pam_acct_mgmt");
+ 				zval_dtor(status);
++#if PHP_MAJOR_VERSION >= 7
++				ZVAL_STRING(status, error_msg);
++				efree(error_msg);
++#else
+ 				ZVAL_STRING(status, error_msg, 0);
++#endif
+ 			}
+ 			pam_end(pamh, PAM_SUCCESS);
+ 			RETURN_FALSE;
+@@ -291,7 +316,11 @@
+ PHP_FUNCTION(pam_chpass)
+ {
+ 	char *username, *oldpass, *newpass;
++#if PHP_MAJOR_VERSION >= 7
++	size_t username_len, oldpass_len, newpass_len;
++#else
+ 	int username_len, oldpass_len, newpass_len;
++#endif
+ 	zval *status = NULL;
+ 
+ 	pam_chpass_t userinfo = {NULL, NULL, NULL, 0};
+@@ -312,7 +341,12 @@
+ 		if (status) {
+ 			spprintf(&error_msg, 0, "%s (in %s)", (char *) pam_strerror(pamh, result), "pam_start");
+ 			zval_dtor(status);
++#if PHP_MAJOR_VERSION >= 7
++			ZVAL_STRING(status, error_msg);
++			efree(error_msg);
++#else
+ 			ZVAL_STRING(status, error_msg, 0);
++#endif
+ 		}
+ 		RETURN_FALSE;
+ 	}
+@@ -321,7 +355,12 @@
+ 		if (status) {
+ 			spprintf(&error_msg, 0, "%s (in %s)", (char *) pam_strerror(pamh, result), "pam_authenticate");
+ 			zval_dtor(status);
++#if PHP_MAJOR_VERSION >= 7
++			ZVAL_STRING(status, error_msg);
++			efree(error_msg);
++#else
+ 			ZVAL_STRING(status, error_msg, 0);
++#endif
+ 		}
+ 		pam_end(pamh, PAM_SUCCESS);
+ 		RETURN_FALSE;
+@@ -331,7 +370,12 @@
+ 		if (status) {
+ 			spprintf(&error_msg, 0, "%s (in %s)", (char *) pam_strerror(pamh, result), "pam_chauthtok");
+ 			zval_dtor(status);
++#if PHP_MAJOR_VERSION >= 7
++			ZVAL_STRING(status, error_msg);
++			efree(error_msg);
++#else
+ 			ZVAL_STRING(status, error_msg, 0);
++#endif
+ 		}
+ 		pam_end(pamh, PAM_SUCCESS);
+ 		RETURN_FALSE;

diff --git a/dev-php/pecl-pam/pecl-pam-1.0.3-r2.ebuild b/dev-php/pecl-pam/pecl-pam-1.0.3-r2.ebuild
new file mode 100644
index 00000000..2679757
--- /dev/null
+++ b/dev-php/pecl-pam/pecl-pam-1.0.3-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PHP_EXT_NAME="pam"
+PHP_EXT_INI="yes"
+PHP_EXT_ZENDEXT="no"
+DOCS=( README )
+
+USE_PHP="php5-6 php7-0"
+
+inherit php-ext-pecl-r3 pam
+
+KEYWORDS="~amd64 ~x86"
+
+DESCRIPTION="This extension provides PAM (Pluggable Authentication Modules) integration"
+LICENSE="PHP-2.02"
+SLOT="0"
+IUSE="debug"
+
+DEPEND="sys-libs/pam"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${PV}-php7.patch" )
+
+src_prepare() {
+	#Fix DOS line endings
+	for slot in $(php_get_slots); do
+		php_init_slot_env "${slot}"
+		sed -i 's/\r$//' -- pam.c || die
+	done
+	php-ext-source-r3_src_prepare
+}
+
+src_configure() {
+	local PHP_EXT_ECONF_ARGS=( --with-pam=/usr $(use_enable debug) )
+	php-ext-source-r3_src_configure
+}
+
+src_install() {
+	pamd_mimic_system php auth account password
+	php-ext-pecl-r3_src_install
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-12-01 19:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-01 19:53 [gentoo-commits] repo/gentoo:master commit in: dev-php/pecl-pam/files/, dev-php/pecl-pam/ Brian Evans

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox