Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Sep 2010 13:46:37 +0300 (EEST)
From:      Andriy Gapon <avg@icyb.net.ua>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        da.deville@gmail.com
Subject:   ports/150472: [NEW PORT] devel/coccinelle: Coccinelle is a program matching and transformation engine
Message-ID:  <201009101046.o8AAkaGj026805@trant.local.>
Resent-Message-ID: <201009101100.o8AB0GeO013237@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         150472
>Category:       ports
>Synopsis:       [NEW PORT] devel/coccinelle: Coccinelle is a program matching and transformation engine
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 10 11:00:15 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Andriy Gapon
>Release:        FreeBSD 9.0-CURRENT amd64
>Organization:
>Environment:
System: FreeBSD 9.0-CURRENT amd64
>Description:
Coccinelle is a program matching and transformation engine which provides the
language SmPL (Semantic Patch Language) for specifying desired matches and
transformations in C code. Coccinelle was initially targeted towards performing
collateral evolutions in Linux. Such evolutions comprise the changes that are
needed in client code in response to evolutions in library APIs, and may
include modifications such as renaming a function, adding a function argument
whose value is somehow context-dependent, and reorganizing a data
structure. Beyond collateral evolutions, Coccinelle is successfully used (by us
and others) for finding and fixing bugs in systems code.

WWW: http://coccinelle.lip6.fr/

Generated with FreeBSD Port Tools 0.99

This port is based on the previous work by Damien Deville which seems to
have never been submitted for inclusion into the ports tree:
http://coccinelle.lip6.fr/distrib/coccinelle-port-freebsd-0.1.11rc1.tgz
>How-To-Repeat:
>Fix:

--- coccinelle-0.2.4.r2.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:
#
#	coccinelle
#	coccinelle/pkg-plist
#	coccinelle/Makefile
#	coccinelle/distinfo
#	coccinelle/files
#	coccinelle/files/patch-pycaml-Makefile
#	coccinelle/files/patch-configure
#	coccinelle/pkg-descr
#
echo c - coccinelle
mkdir -p coccinelle > /dev/null 2>&1
echo x - coccinelle/pkg-plist
sed 's/^X//' >coccinelle/pkg-plist << '6aa58bd152441e7bf5fc5e1468ac9659'
Xbin/spatch
Xlib/dllpycaml_stubs.so
Xshare/coccinelle/commons/common.cmi
Xshare/coccinelle/commons/common_extra.cmi
Xshare/coccinelle/commons/glimpse.cmi
Xshare/coccinelle/commons/interfaces.cmi
Xshare/coccinelle/commons/oarray.cmi
Xshare/coccinelle/commons/oassoc.cmi
Xshare/coccinelle/commons/objet.cmi
Xshare/coccinelle/commons/ocollection.cmi
Xshare/coccinelle/commons/ofullcommon.cmi
Xshare/coccinelle/commons/ograph.cmi
Xshare/coccinelle/commons/ograph_extended.cmi
Xshare/coccinelle/commons/ograph_simple.cmi
Xshare/coccinelle/commons/osequence.cmi
Xshare/coccinelle/commons/oset.cmi
Xshare/coccinelle/commons/parser_combinators.cmi
Xshare/coccinelle/commons/seti.cmi
Xshare/coccinelle/commons/sexp_common.cmi
Xshare/coccinelle/ocaml/coccilib.cmi
Xshare/coccinelle/parsing_c/ast_c.cmi
Xshare/coccinelle/parsing_c/comment_annotater_c.cmi
Xshare/coccinelle/parsing_c/compare_c.cmi
Xshare/coccinelle/parsing_c/control_flow_c.cmi
Xshare/coccinelle/parsing_c/control_flow_c_build.cmi
Xshare/coccinelle/parsing_c/cpp_analysis_c.cmi
Xshare/coccinelle/parsing_c/cpp_ast_c.cmi
Xshare/coccinelle/parsing_c/cpp_token_c.cmi
Xshare/coccinelle/parsing_c/flag_parsing_c.cmi
Xshare/coccinelle/parsing_c/lexer_c.cmi
Xshare/coccinelle/parsing_c/lexer_parser.cmi
Xshare/coccinelle/parsing_c/lib_parsing_c.cmi
Xshare/coccinelle/parsing_c/parse_c.cmi
Xshare/coccinelle/parsing_c/parser_c.cmi
Xshare/coccinelle/parsing_c/parsing_consistency_c.cmi
Xshare/coccinelle/parsing_c/parsing_hacks.cmi
Xshare/coccinelle/parsing_c/parsing_recovery_c.cmi
Xshare/coccinelle/parsing_c/parsing_stat.cmi
Xshare/coccinelle/parsing_c/pretty_print_c.cmi
Xshare/coccinelle/parsing_c/semantic_c.cmi
Xshare/coccinelle/parsing_c/sexp_ast_c.cmi
Xshare/coccinelle/parsing_c/test_parsing_c.cmi
Xshare/coccinelle/parsing_c/token_c.cmi
Xshare/coccinelle/parsing_c/token_helpers.cmi
Xshare/coccinelle/parsing_c/token_views_c.cmi
Xshare/coccinelle/parsing_c/type_annoter_c.cmi
Xshare/coccinelle/parsing_c/type_c.cmi
Xshare/coccinelle/parsing_c/unparse_c.cmi
Xshare/coccinelle/parsing_c/unparse_cocci.cmi
Xshare/coccinelle/parsing_c/unparse_hrule.cmi
Xshare/coccinelle/parsing_c/visitor_c.cmi
Xshare/coccinelle/python/coccilib/__init__.py
Xshare/coccinelle/python/coccilib/coccigui/__init__.py
Xshare/coccinelle/python/coccilib/coccigui/coccigui.py
Xshare/coccinelle/python/coccilib/coccigui/pycoccimodel.py
Xshare/coccinelle/python/coccilib/coccigui/pygui.glade
Xshare/coccinelle/python/coccilib/coccigui/pygui.gladep
Xshare/coccinelle/python/coccilib/coccigui/vim.py
Xshare/coccinelle/python/coccilib/coccigui/vimcom.py
Xshare/coccinelle/python/coccilib/coccigui/vimeditor.py
Xshare/coccinelle/python/coccilib/coccigui/vimembed.py
Xshare/coccinelle/python/coccilib/elems.py
Xshare/coccinelle/python/coccilib/org.py
Xshare/coccinelle/python/coccilib/output.py
Xshare/coccinelle/python/coccilib/report.py
Xshare/coccinelle/python/coccilib/trac.py
Xshare/coccinelle/spatch
Xshare/coccinelle/standard.h
Xshare/coccinelle/standard.iso
X@dirrm share/coccinelle/python/coccilib/coccigui
X@dirrm share/coccinelle/python/coccilib
X@dirrm share/coccinelle/python
X@dirrm share/coccinelle/parsing_c
X@dirrm share/coccinelle/ocaml
X@dirrm share/coccinelle/commons
X@dirrm share/coccinelle
6aa58bd152441e7bf5fc5e1468ac9659
echo x - coccinelle/Makefile
sed 's/^X//' >coccinelle/Makefile << '6676f4449fb0c25b5c4bb711941560b6'
X# Ports collection makefile for:	coccinnelle
X# Date created:			Sep 10, 2010
X# Whom:				Andriy Gapon
X# $FreeBSD$
X
XPORTNAME=	coccinelle
XDISTVERSION=	0.2.4rc2
XCATEGORIES=	devel
XMASTER_SITES=	http://coccinelle.lip6.fr/distrib/
XEXTRACT_SUFX=	.tgz
X
XMAINTAINER=	avg@icyb.net.ua
XCOMMENT=	Coccinelle is a program matching and transformation engine
X
XGNU_CONFIGURE=	yes
XUSE_GMAKE=	yes
XUSE_PYTHON=	2.5+
XUSE_OCAML=	3.0+
X
XMAN1=		spatch.1
X
X.include <bsd.port.mk>
6676f4449fb0c25b5c4bb711941560b6
echo x - coccinelle/distinfo
sed 's/^X//' >coccinelle/distinfo << '2260f71583a9d2924ba6f91ac964cd66'
XMD5 (coccinelle-0.2.4rc2.tgz) = cbf7f16205316bf929f3a37994c130f3
XSHA256 (coccinelle-0.2.4rc2.tgz) = 513cbc237761db5c41a7902ac691451c1ac5000a4d14031db8218ceccb04d515
XSIZE (coccinelle-0.2.4rc2.tgz) = 2217241
2260f71583a9d2924ba6f91ac964cd66
echo c - coccinelle/files
mkdir -p coccinelle/files > /dev/null 2>&1
echo x - coccinelle/files/patch-pycaml-Makefile
sed 's/^X//' >coccinelle/files/patch-pycaml-Makefile << '33075bc143b7b551f49602dd49fc4b4b'
X--- pycaml/Makefile.orig	2009-04-06 12:59:15.000000000 +0200
X+++ pycaml/Makefile	2009-04-06 12:59:20.000000000 +0200
X@@ -3,7 +3,7 @@
X OCAMLMAKEFILE = OCamlMakefile
X PY_PREFIX = $(shell python getprefix.py)
X PY_VERSION = $(shell python getversion.py)
X-CLIBS = python$(PY_VERSION) pthread dl util m c
X+CLIBS = python$(PY_VERSION) pthread util m c
X 
X SOURCES = pycaml.ml pycaml_ml.c
X RESULT = pycaml
33075bc143b7b551f49602dd49fc4b4b
echo x - coccinelle/files/patch-configure
sed 's/^X//' >coccinelle/files/patch-configure << '80127f4a44fb914b6996eda54b332dcc'
X--- configure	2010-07-03 01:08:25.000000000 +0300
X+++ configure	2010-09-09 13:28:04.692352989 +0300
X@@ -176,6 +176,6 @@
X pr2 "";
X 
X $error += check_config(
X-  "make -v 2>&1 |grep Make|",
X+  "gmake -v 2>&1 |grep Make|",
X   "GNU Make [^0-9]*3\.[0-9]+.*", #version 3.79.1, 3.81
X   "make (gnu version) is present.",
X@@ -255,17 +255,17 @@
X All seems fine for $project.
X 
X To compile $project type:
X-  \$ make depend
X-  \$ make all
X+  \$ gmake depend
X+  \$ gmake all
X 
X Or alternatively, for the optimized version:
X-  \$ make all.opt
X+  \$ gmake all.opt
X If you want both, you could use:
X-  \$ make world
X+  \$ gmake world
X 
X 
X To install type:
X-  \$ make install
X+  \$ gmake install
X 
X Then, to test $project simply type:
X   \$ $projectcmdline
X@@ -331,11 +331,11 @@
X my $pythonprefix = $python ? "yes" : "no";
X pr2 "Support for python scripting : $pythonprefix";
X `cd python; ln -sf ${pythonprefix}_pycocci.ml pycocci.ml; `;
X-`cd python; make depend`;
X+`cd python; gmake depend`;
X 
X pr2 "Support for ocaml scripting : $ocamlprefix";
X `cd ocaml; ln -sf ${ocamlprefix}_prepare_ocamlcocci.ml prepare_ocamlcocci.ml;`;
X-`cd ocaml; make depend`;
X+`cd ocaml; gmake depend`;
X 
X pr2 "Modifying globals/config.ml";
X my $command = "perl -p -e 's#Not_found.\*#Not_found->\\\"$src\\\"#' globals/config.ml.in > globals/config.ml";
80127f4a44fb914b6996eda54b332dcc
echo x - coccinelle/pkg-descr
sed 's/^X//' >coccinelle/pkg-descr << '3bc181822acc9db9ec9eec77e5fd8e3e'
XCoccinelle is a program matching and transformation engine which provides the
Xlanguage SmPL (Semantic Patch Language) for specifying desired matches and
Xtransformations in C code. Coccinelle was initially targeted towards performing
Xcollateral evolutions in Linux. Such evolutions comprise the changes that are
Xneeded in client code in response to evolutions in library APIs, and may
Xinclude modifications such as renaming a function, adding a function argument
Xwhose value is somehow context-dependent, and reorganizing a data
Xstructure. Beyond collateral evolutions, Coccinelle is successfully used (by us
Xand others) for finding and fixing bugs in systems code.
X
XWWW: http://coccinelle.lip6.fr/
3bc181822acc9db9ec9eec77e5fd8e3e
exit
--- coccinelle-0.2.4.r2.shar ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009101046.o8AAkaGj026805>