From owner-freebsd-ports@FreeBSD.ORG Mon Apr 12 09:14:57 2010 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E61771065670 for ; Mon, 12 Apr 2010 09:14:57 +0000 (UTC) (envelope-from ale@FreeBSD.org) Received: from andxor.it (relay.andxor.it [195.223.2.3]) by mx1.freebsd.org (Postfix) with SMTP id 2FD448FC21 for ; Mon, 12 Apr 2010 09:14:56 +0000 (UTC) Received: (qmail 20410 invoked from network); 12 Apr 2010 09:14:53 -0000 Received: from unknown (HELO ale.andxor.it) (192.168.2.5) by andxor.it with SMTP; 12 Apr 2010 09:14:53 -0000 Message-ID: <4BC2E48C.9030508@FreeBSD.org> Date: Mon, 12 Apr 2010 11:14:52 +0200 From: Alex Dupre User-Agent: Thunderbird 2.0.0.22 (X11/20090624) MIME-Version: 1.0 To: ports@freebsd.org Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Cc: Subject: To all maintainers of (broken) PHP extensions X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 09:14:58 -0000 A few thirdy party pecl extensions broke after the PHP update to 5.3.2 release. My apologies for it, but since PHP 5.3.0 was released 9 months ago, this means that there is already a newer version of the extension with PHP 5.3 support, or the extensions is unmaintained and perhaps obsolete. If you are going to fix your port, here is a list of the most common errors with proposed solutions: 1) error: duplicate 'static' The macro ZEND_BEGIN_ARG_INFO_EX already includes 'static const' keywords in the signature, so it's enough to remove the additional 'static' 2) error: 'struct _zend_compiler_globals' has no member named 'extended_info' The member has been renamed to 'compiler_options' to hold additional variables. So, for example, if the code looks like: CG(extended_info) = 1; you can modify it in this way: CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO; 3) error: 'zval' has no member named 'is_ref' error: 'zval' has no member named 'refcount' The access to such members is wrapped by a few macros (look at zend.h for a complete list). So for example, if the code looks like: if (z->is_ref) z->refcount++; you can modify it in this way: if (Z_ISREF_P(z)) Z_ADDREF_P(z); -- Alex Dupre