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>