From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Sep 5 12:20:01 2008 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88C971065675 for ; Fri, 5 Sep 2008 12:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 66A7C8FC14 for ; Fri, 5 Sep 2008 12:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m85CK1IF067115 for ; Fri, 5 Sep 2008 12:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m85CK17I067114; Fri, 5 Sep 2008 12:20:01 GMT (envelope-from gnats) Resent-Date: Fri, 5 Sep 2008 12:20:01 GMT Resent-Message-Id: <200809051220.m85CK17I067114@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Sergey Skvortsov Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D47EC106564A; Fri, 5 Sep 2008 12:16:37 +0000 (UTC) (envelope-from skv@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id C48458FC12; Fri, 5 Sep 2008 12:16:37 +0000 (UTC) (envelope-from skv@FreeBSD.org) Received: from freefall.freebsd.org (skv@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m85CGbH2067051; Fri, 5 Sep 2008 12:16:37 GMT (envelope-from skv@freefall.freebsd.org) Received: (from skv@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m85CGb7l067050; Fri, 5 Sep 2008 12:16:37 GMT (envelope-from skv) Message-Id: <200809051216.m85CGb7l067050@freefall.freebsd.org> Date: Fri, 5 Sep 2008 12:16:37 GMT From: Sergey Skvortsov To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: rink@FreeBSD.org Subject: ports/127108: [PATCH] www/p5-ClearSilver: [SUMMARIZE CHANGES] X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2008 12:20:01 -0000 >Number: 127108 >Category: ports >Synopsis: [PATCH] www/p5-ClearSilver: [SUMMARIZE CHANGES] >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Sep 05 12:20:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Sergey Skvortsov >Release: FreeBSD 7.0-STABLE i386 >Organization: >Environment: System: FreeBSD vega.protey.ru 7.0-STABLE FreeBSD 7.0-STABLE #2: Tue Jul 15 15:38:46 MSD 2008 >Description: - fix perl_render() - avoid "uninitialized value" warnings - fix perlcs_parseString() - correct malloc: use len+1 instead of len Added file(s): - files/patch-ClearSilver.xs Generated with FreeBSD Port Tools 0.77 >How-To-Repeat: >Fix: --- p5-ClearSilver-0.10.5_1.patch begins here --- Index: Makefile =================================================================== RCS file: /home/pcvs/ports/www/p5-ClearSilver/Makefile,v retrieving revision 1.4 diff -u -u -r1.4 Makefile --- Makefile 19 Feb 2008 10:12:11 -0000 1.4 +++ Makefile 5 Sep 2008 10:57:33 -0000 @@ -7,6 +7,7 @@ PORTNAME= ClearSilver PORTVERSION= 0.10.5 +PORTREVISION= 1 CATEGORIES= www perl5 PKGNAMEPREFIX= p5- DISTFILES= @@ -14,8 +15,8 @@ MAINTAINER= rink@FreeBSD.org COMMENT= Perl bindings for fast and powerful template system -BUILD_DEPENDS= ${LOCALBASE}/lib/libneo_cs.a:${PORTSDIR}/www/clearsilver \ - ${NONEXISTENT}:${PORTSDIR}/www/clearsilver:extract +BUILD_DEPENDS= ${LOCALBASE}/lib/libneo_cs.a:${PORTSDIR}/www/clearsilver +EXTRACT_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/www/clearsilver:extract PERL_CONFIGURE= yes CONFIGURE_ARGS= INC="-I${LOCALBASE}/include/ClearSilver" Index: files/patch-ClearSilver.xs =================================================================== RCS file: files/patch-ClearSilver.xs diff -N files/patch-ClearSilver.xs --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-ClearSilver.xs 5 Sep 2008 10:57:33 -0000 @@ -0,0 +1,343 @@ +--- ClearSilver.xs 2007-07-12 05:31:34.000000000 +0400 ++++ ClearSilver.xs 2008-09-05 14:23:49.000000000 +0400 +@@ -21,6 +21,7 @@ + typedef perlCS* ClearSilver__CS; + + static char* g_sort_func_name; ++static HV *hdf_stash, *cs_stash; + + static void debug(char* fmt, ...) + { +@@ -64,14 +65,13 @@ + SAVETMPS; + + PUSHMARK(SP); +- sv_a = sv_newmortal(); +- sv_setref_pv(sv_a, "ClearSilver::HDF", (void*)&a); ++ EXTEND(SP, 2); + +- sv_b = sv_newmortal(); +- sv_setref_pv(sv_b, "ClearSilver::HDF", (void*)&b); ++ sv_a = sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV( &a )) ), hdf_stash)); ++ sv_b = sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV( &b )) ), hdf_stash)); + +- XPUSHs(sv_a); +- XPUSHs(sv_b); ++ PUSHs(sv_a); ++ PUSHs(sv_b); + + PUTBACK; + +@@ -93,27 +93,30 @@ + } + + ++MODULE = ClearSilver PACKAGE = ClearSilver::HDF PREFIX = perlhdf_ + ++PROTOTYPES: DISABLE + ++BOOT: ++{ ++ hdf_stash = gv_stashpv("ClearSilver::HDF", TRUE); ++} + +-MODULE = ClearSilver PACKAGE = ClearSilver::HDF PREFIX = perlhdf_ +- +-ClearSilver::HDF +-perlhdf_new(self) +- char* self +- PREINIT: +- ClearSilver__HDF hdf; ++void ++perlhdf_new(class) + CODE: +- debug("%s\n", self); ++ { ++ ClearSilver__HDF hdf; ++ + hdf = (ClearSilver__HDF)malloc(sizeof(perlHDF)); +- if (!hdf) { +- RETVAL = NULL; +- } else { +- hdf->err = hdf_init(&(hdf->hdf)); +- RETVAL = hdf; +- } +- OUTPUT: +- RETVAL ++ if (!hdf) ++ XSRETURN_UNDEF; ++ ++ hdf->err = hdf_init(&(hdf->hdf)); ++ ++ ST(0) = sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV(hdf)) ), hdf_stash)); ++ XSRETURN(1); ++ } + + void + perlhdf_DESTROY(hdf) +@@ -126,17 +129,17 @@ + int + perlhdf_setValue(hdf, key, value) + ClearSilver::HDF hdf +- char* key +- char* value + CODE: ++ { ++ char* key; ++ char* value; ++ + hdf->err = hdf_set_value(hdf->hdf, key, value); +- if (hdf->err == STATUS_OK) { +- RETVAL = 0; +- } else { +- RETVAL = 1; +- } +- OUTPUT: +- RETVAL ++ ++ ST(0) = (hdf->err != STATUS_OK) ++ ? &PL_sv_yes : &PL_sv_no; ++ XSRETURN(1); ++ } + + + char* +@@ -156,42 +159,39 @@ + char* name + ClearSilver::HDF src + CODE: ++ { + hdf->err = hdf_copy(hdf->hdf, name, src->hdf); +- if (hdf->err == STATUS_OK) { +- RETVAL = 0; +- } else { +- RETVAL = 1; +- } +- OUTPUT: +- RETVAL ++ ++ ST(0) = (hdf->err != STATUS_OK) ++ ? &PL_sv_yes : &PL_sv_no; ++ XSRETURN(1); ++ } + + int + perlhdf_readFile(hdf, filename) + ClearSilver::HDF hdf + char* filename + CODE: ++ { + hdf->err = hdf_read_file(hdf->hdf, filename); +- if (hdf->err == STATUS_OK) { +- RETVAL = 1; +- } else { +- RETVAL = 0; +- } +- OUTPUT: +- RETVAL ++ ++ ST(0) = (hdf->err == STATUS_OK) ++ ? &PL_sv_yes : &PL_sv_no; ++ XSRETURN(1); ++ } + + int + perlhdf_writeFile(hdf, filename) +- ClearSilver::HDF hdf +- char* filename ++ ClearSilver::HDF hdf ++ char* filename + CODE: +- hdf->err = hdf_write_file(hdf->hdf, filename); +- if (hdf->err == STATUS_OK) { +- RETVAL = 1; +- } else { +- RETVAL = 0; +- } +- OUTPUT: +- RETVAL ++ { ++ hdf->err = hdf_write_file(hdf->hdf, filename); ++ ++ ST(0) = (hdf->err == STATUS_OK) ++ ? &PL_sv_yes : &PL_sv_no; ++ XSRETURN(1); ++ } + + ClearSilver::HDF + perlhdf_getObj(hdf, name) +@@ -312,57 +312,60 @@ + OUTPUT: + RETVAL + +-int ++void + perlhdf_sortObj(hdf, func_name) + ClearSilver::HDF hdf; + char* func_name; +- PREINIT: +- NEOERR* err; + CODE: ++ { ++ NEOERR* err; + g_sort_func_name = func_name; + err = hdf_sort_obj(hdf->hdf, sortFunction); +- RETVAL = 0; +- OUTPUT: +- RETVAL + ++ XSRETURN_UNDEF; ++ } + +-int ++void + perlhdf_setSymlink(hdf, src, dest) + ClearSilver::HDF hdf; + char* src; + char* dest; +- PREINIT: +- NEOERR* err; + CODE: +- err = hdf_set_symlink (hdf->hdf, src, dest); +- if (err == STATUS_OK) { +- RETVAL = 1; +- } else { +- RETVAL = 0; +- } +- OUTPUT: +- RETVAL ++ { ++ NEOERR* err; + ++ err = hdf_set_symlink(hdf->hdf, src, dest); + +-int ++ ST(0) = (err == STATUS_OK) ++ ? &PL_sv_yes : &PL_sv_no; ++ XSRETURN(1); ++ } ++ ++void + perlhdf_removeTree(hdf, name) + ClearSilver::HDF hdf; + char* name; +- PREINIT: +- NEOERR* err; + CODE: ++ { ++ NEOERR* err; ++ + err = hdf_remove_tree(hdf->hdf, name); +- if (err == STATUS_OK) { +- RETVAL = 1; +- } else { +- RETVAL = 0; +- } +- OUTPUT: +- RETVAL ++ ++ ST(0) = (err == STATUS_OK) ++ ? &PL_sv_yes : &PL_sv_no; ++ XSRETURN(1); ++ } + + + MODULE = ClearSilver PACKAGE = ClearSilver::CS PREFIX = perlcs_ + ++PROTOTYPES: DISABLE ++ ++BOOT: ++{ ++ cs_stash = gv_stashpv("ClearSilver::CS", TRUE); ++} ++ + ClearSilver::CS + perlcs_new(self, hdf) + char* self +@@ -401,7 +404,11 @@ + ClearSilver::CS cs + CODE: + { +- SV *str = newSV(0); ++ SV *str = newSV(1); ++ SvLEN_set(str, 0); ++ SvCUR_set(str, 0); ++ SvPOK_on(str); ++ + cs->err = cs_render(cs->cs, str, output); + if (cs->err == STATUS_OK) { + ST(0) = sv_2mortal(str); +@@ -412,46 +419,40 @@ + XSRETURN(1); + } + +-int ++void + perlcs_parseFile(cs, cs_file) + ClearSilver::CS cs + char* cs_file + CODE: +- do { +- cs->err = cs_parse_file(cs->cs, cs_file); +- if (cs->err != STATUS_OK) { +- cs->err = nerr_pass(cs->err); +- RETVAL = 0; +- break; +- } +- RETVAL = 1; +- } while (0); +- OUTPUT: +- RETVAL ++ { ++ cs->err = cs_parse_file(cs->cs, cs_file); ++ if (cs->err != STATUS_OK) { ++ cs->err = nerr_pass(cs->err); ++ XSRETURN_NO; ++ } + +-int +-perlcs_parseString(cs, in_str) ++ XSRETURN_YES; ++ } ++ ++void ++perlcs_parseString(cs, sv) + ClearSilver::CS cs +- char* in_str +- PREINIT: +- char* cs_str; +- int len; ++ SV *sv + CODE: +- do { +- len = strlen(in_str); +- cs_str = (char *)malloc(len); +- if (!cs_str) { +- RETVAL = 0; +- break; +- } +- strcpy(cs_str, in_str); +- cs->err = cs_parse_string(cs->cs, cs_str, len); +- if (cs->err != STATUS_OK) +- RETVAL = 0; +- RETVAL = 1; +- } while (0); +- OUTPUT: +- RETVAL ++ { ++ char* in_str; ++ char* cs_str; ++ STRLEN len; + ++ in_str = SvPV(sv, len); ++ cs_str = (char *)malloc(len + 1); ++ if (!cs_str) ++ XSRETURN_UNDEF; + ++ memcpy(cs_str, in_str, len + 1); ++ cs->err = cs_parse_string(cs->cs, cs_str, len); + ++ ST(0) = (cs->err == STATUS_OK) ++ ? &PL_sv_yes : &PL_sv_no; ++ XSRETURN(1); ++ } --- p5-ClearSilver-0.10.5_1.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: