ports/127533: Updated port to include patch to fix 64bit segfault
Alan Garfield
alan at fromorbit.com
Mon Sep 22 05:20:02 UTC 2008
>Number: 127533
>Category: ports
>Synopsis: Updated port to include patch to fix 64bit segfault
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Mon Sep 22 05:20:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Alan Garfield
>Release: FreeBSD 7.0-RELEASE-p1 amd64
>Organization:
>Environment:
System: FreeBSD onefish.auspcmarket.com.au 7.0-RELEASE-p1 FreeBSD 7.0-RELEASE-p1 #8: Mon Jun 2 14:41:17 EST 2008 root at onefish.auspcmarket.com.au:/usr/obj/usr/src/sys/ONEFISH amd64
>Description:
pecl-ps crashes under 64bit freebsd, included is a patch to fix the culprit from an int to a long.
I've submitted this patch to the original author of the library who seems to think this is a FreeBSD specific problem and therefore ignored my patch. Without the resources/time to fully examine this, I've submitted the patch to here so that portmanager and the like won't cause my system to start crashing again whenever they re-compile pecl-ps. :)
The patch simply changes the type of 'imageid' from an incorrectly specified int to a long, so it shouldn't pose any problem to any system anyway.
>How-To-Repeat:
Compile pecl-ps on a 64 bit system and attempt to use an image based function (eg. ps_open_image_file)
>Fix:
--- pecl-ps-1.3.4.shar begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# pecl-ps/
# pecl-ps/Makefile
# pecl-ps/distinfo
# pecl-ps/pkg-descr
# pecl-ps/files
# pecl-ps/files/patch-ps.c
#
echo c - pecl-ps/
mkdir -p pecl-ps/ > /dev/null 2>&1
echo x - pecl-ps/Makefile
sed 's/^X//' >pecl-ps/Makefile << 'END-of-pecl-ps/Makefile'
X# Ports collection makefile for: pear-ps
X# Date created: 25 May 2007
X# Whom: Alan Garfield <alan at fromorbit.com>
X#
X# $FreeBSD: ports/print/pecl-ps/Makefile,v 1.4 2008/06/06 13:57:52 edwin Exp $
X#
X
XPORTNAME= ps
XPORTVERSION= 1.3.4
XPORTREVISION= 3
XCATEGORIES= print pear
XMASTER_SITES= http://pecl.php.net/get/
XPKGNAMEPREFIX= pecl-
XDISTNAME= ps-${PORTVERSION}
XEXTRACT_SUFX= .tgz
XDIST_SUBDIR= PECL
X
XMAINTAINER= alan at fromorbit.com
XCOMMENT= PHP extension for pslib to generate postscript
X
XLIB_DEPENDS= ps.4:${PORTSDIR}/print/pslib
X
XUSE_PHP= yes
XUSE_PHPEXT= yes
XDEFAULT_PHP_VER= 5
XPHP_MODNAME= ${PORTNAME}
X
Xpost-patch:
X @${REINPLACE_CMD} -e 's|-ldl|-lintl|g' ${WRKSRC}/config.m4
X
X.include <bsd.port.mk>
END-of-pecl-ps/Makefile
echo x - pecl-ps/distinfo
sed 's/^X//' >pecl-ps/distinfo << 'END-of-pecl-ps/distinfo'
XMD5 (PECL/ps-1.3.4.tgz) = 1fd7838a85c69617416d64ebe32f653a
XSHA256 (PECL/ps-1.3.4.tgz) = af0a003bf3b1f26dab81b4f5f7184675ba5c7f86a48928d7f8bf4077d1e87602
XSIZE (PECL/ps-1.3.4.tgz) = 197802
END-of-pecl-ps/distinfo
echo x - pecl-ps/pkg-descr
sed 's/^X//' >pecl-ps/pkg-descr << 'END-of-pecl-ps/pkg-descr'
XPHP extention to generate postscript by using pslib.
X
XWWW: http://pecl.php.net/package-info.php?package=ps
END-of-pecl-ps/pkg-descr
echo c - pecl-ps/files
mkdir -p pecl-ps/files > /dev/null 2>&1
echo x - pecl-ps/files/patch-ps.c
sed 's/^X//' >pecl-ps/files/patch-ps.c << 'END-of-pecl-ps/files/patch-ps.c'
X--- ps.c 2006-05-31 23:09:47.000000000 +1000
X+++ ps.c 2008-09-22 13:50:07.000000000 +1000
X@@ -1285,7 +1285,8 @@
X zval *zps;
X char *type, *filename, *image, *stringparam = NULL;
X int type_len, filename_len, stringparam_len;
X- int imageid, intparam = 0;
X+ long imageid;
X+ int intparam = 0;
X PSDoc *ps;
X
X if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss|sl", &zps, &type, &type_len, &filename, &filename_len, &stringparam, &stringparam_len, &intparam)) {
X@@ -1316,7 +1317,7 @@
X {
X zval **arg1, **arg2;
X int i, j, color, count;
X- int imageid;
X+ long imageid;
X gdImagePtr im;
X unsigned char *buffer, *ptr;
X PSDoc *ps;
X@@ -1382,7 +1383,7 @@
X PHP_FUNCTION(ps_close_image)
X {
X zval *zps;
X- int imageid;
X+ long imageid;
X PSDoc *ps;
X
X if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &zps, &imageid)) {
X@@ -1400,7 +1401,7 @@
X PHP_FUNCTION(ps_place_image)
X {
X zval *zps;
X- int imageid;
X+ long imageid;
X double x, y, scale;
X PSDoc *ps;
X
X@@ -1761,7 +1762,7 @@
X zval **arg1, **arg2, **arg3, **arg4, **arg5, **arg6, **arg7;
X PSDoc *ps;
X char *image;
X- int imageid;
X+ long imageid;
X
X if (ZEND_NUM_ARGS() != 7 || zend_get_parameters_ex(7, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7) == FAILURE) {
X WRONG_PARAM_COUNT;
X@@ -1802,7 +1803,7 @@
X char *type, *params, *source, *data;
X int type_len, params_len, source_len, data_len;
X int length, width, height, components, bpc;
X- int imageid;
X+ long imageid;
X char *image;
X PSDoc *ps;
X
X@@ -2024,7 +2025,7 @@
X * Add an existing image as thumbnail for the current page. */
X PHP_FUNCTION(ps_add_thumbnail) {
X zval *zps;
X- int imageid;
X+ long imageid;
X PSDoc *ps;
X
X if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &zps, &imageid)) {
END-of-pecl-ps/files/patch-ps.c
exit
--- pecl-ps-1.3.4.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list