mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-21 20:38:45 +00:00
Add dialyzer, a static analysis tool for Erlang/OTP applications.
This commit is contained in:
parent
2dc8c5621f
commit
d706c57c42
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=125849
@ -195,6 +195,7 @@
|
||||
SUBDIR += devhelp
|
||||
SUBDIR += devtodo
|
||||
SUBDIR += dia2code
|
||||
SUBDIR += dialyzer
|
||||
SUBDIR += diffconvert
|
||||
SUBDIR += directfb
|
||||
SUBDIR += distcc
|
||||
|
41
devel/dialyzer/Makefile
Normal file
41
devel/dialyzer/Makefile
Normal file
@ -0,0 +1,41 @@
|
||||
# New ports collection makefile for: dialyzer
|
||||
# Date Created: 8 January 2005
|
||||
# Whom: olgeni@FreeBSD.org
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= dialyzer
|
||||
PORTVERSION= 1.2.0
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= http://www.it.uu.se/research/group/hipe/dialyzer/snapshots/
|
||||
|
||||
MAINTAINER= olgeni@FreeBSD.org
|
||||
COMMENT= Static analysis tool for Erlang/OTP applications
|
||||
|
||||
BUILD_DEPENDS= erlc:${PORTSDIR}/lang/erlang
|
||||
RUN_DEPENDS= erl:${PORTSDIR}/lang/erlang
|
||||
|
||||
USE_REINPLACE= yes
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}
|
||||
|
||||
PLIST_SUB= VERSION="${PORTVERSION}"
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|%%DIALYZER_DIR%%|${PREFIX}/lib/erlang/lib/${PORTNAME}-${PORTVERSION}|g' ${WRKSRC}/setup.sh
|
||||
@${FIND} ${WRKSRC} -name .cvsignore | ${XARGS} ${RM}
|
||||
|
||||
do-build:
|
||||
@cd ${WRKSRC} && ./setup.sh ${PREFIX}/lib/erlang
|
||||
|
||||
do-install:
|
||||
@${MKDIR} ${PREFIX}/lib/erlang/lib/${PORTNAME}-${PORTVERSION}
|
||||
@${LN} -sf ${PORTNAME}-${PORTVERSION} ${PREFIX}/lib/erlang/lib/${PORTNAME}
|
||||
@cd ${WRKSRC} && ${CP} -r README RELEASE_NOTES dialyzer doc ebin plt src ${PREFIX}/lib/erlang/lib/${PORTNAME}-${PORTVERSION}
|
||||
@${FIND} ${PREFIX}/lib/erlang/lib/${PORTNAME}-${PORTVERSION} -name \*.orig | ${XARGS} ${RM}
|
||||
@${LN} -sf ${PREFIX}/lib/erlang/lib/${PORTNAME}-${PORTVERSION}/dialyzer ${PREFIX}/bin/dialyzer
|
||||
|
||||
post-install:
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
|
||||
.include <bsd.port.mk>
|
2
devel/dialyzer/distinfo
Normal file
2
devel/dialyzer/distinfo
Normal file
@ -0,0 +1,2 @@
|
||||
MD5 (dialyzer-1.2.0.tar.gz) = ed2bb42a7628f57950ca146e041a5f99
|
||||
SIZE (dialyzer-1.2.0.tar.gz) = 33017
|
26
devel/dialyzer/files/patch-setup.sh
Normal file
26
devel/dialyzer/files/patch-setup.sh
Normal file
@ -0,0 +1,26 @@
|
||||
|
||||
$FreeBSD$
|
||||
|
||||
--- setup.sh.orig
|
||||
+++ setup.sh
|
||||
@@ -87,19 +87,12 @@
|
||||
echo "Compilation of $file failed"
|
||||
exit 1
|
||||
fi
|
||||
- printf " Checking consistency of ebin/*.beam files... "
|
||||
- $DIALYZER_OTP_OTP -pa utils/ -noshell -s dialyzer_chk test `pwd` -s init stop
|
||||
- rm -f utils/dialyzer_chk.beam
|
||||
|
||||
## create the dialyzer script
|
||||
sed -e "s;%OTP_DIR%;$DIALYZER_OTP_DIR;" \
|
||||
-e "s;%VSN%;$VSN;" -e "s;%DATE%;`date`;" \
|
||||
- -e "s;%DIALYZER_DIR%;`pwd`;" src/dialyzer.src > dialyzer
|
||||
+ -e "s;%DIALYZER_DIR%;%%DIALYZER_DIR%%;" src/dialyzer.src > dialyzer
|
||||
chmod +x dialyzer
|
||||
- echo "Dialyzer is analyzing itself..."
|
||||
- ./dialyzer --src --command-line "`pwd`/src"
|
||||
- echo "Dialyzer setup done!"
|
||||
- echo " For the full set of Dialyzer options type: ./dialyzer --help"
|
||||
else
|
||||
echo "Could not find ${DIALYZER_OTP_ERLC}"
|
||||
fi
|
25
devel/dialyzer/files/patch-src_dialyzer__gui.erl
Normal file
25
devel/dialyzer/files/patch-src_dialyzer__gui.erl
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
$FreeBSD$
|
||||
|
||||
--- src/dialyzer_gui.erl.orig
|
||||
+++ src/dialyzer_gui.erl
|
||||
@@ -489,8 +489,8 @@
|
||||
{'EXIT', BackendPid, Reason} when Reason /= normal ->
|
||||
error(State, Reason),
|
||||
gui_loop(State);
|
||||
- Other ->
|
||||
- io:format("Received ~p\n", [Other]),
|
||||
+ _Other ->
|
||||
+ %% io:format("Received ~p\n", [Other]),
|
||||
gui_loop(State)
|
||||
end.
|
||||
|
||||
@@ -1019,7 +1019,7 @@
|
||||
ReAnalyze =
|
||||
case filelib:is_file(Plt) of
|
||||
true ->
|
||||
- case dets:open_file(Plt) of
|
||||
+ case dets:open_file(Plt,[{access,read}]) of
|
||||
{ok, Dets} ->
|
||||
Res =
|
||||
case dets:lookup(Dets, md5) of
|
6
devel/dialyzer/pkg-descr
Normal file
6
devel/dialyzer/pkg-descr
Normal file
@ -0,0 +1,6 @@
|
||||
The Dialyzer is a static analysis tool that identifies software
|
||||
discrepancies such as obvious type errors, unreachable code, redundant
|
||||
tests, virtual machine bytecode which is unsafe, etc. in single
|
||||
Erlang modules or entire applications.
|
||||
|
||||
WWW: http://www.it.uu.se/research/group/hipe/dialyzer/
|
6
devel/dialyzer/pkg-message
Normal file
6
devel/dialyzer/pkg-message
Normal file
@ -0,0 +1,6 @@
|
||||
=============================================================
|
||||
|
||||
You will have to run "dialyzer" as root for the first time to
|
||||
initialize the PLT table.
|
||||
|
||||
=============================================================
|
37
devel/dialyzer/pkg-plist
Normal file
37
devel/dialyzer/pkg-plist
Normal file
@ -0,0 +1,37 @@
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/README
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/RELEASE_NOTES
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/dialyzer
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/doc/about.txt
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/doc/manual.txt
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/doc/overview.txt
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/doc/warnings.txt
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer.app
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer.beam
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer_analysis.beam
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer_cl.beam
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer_gui.beam
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer_module_callgraph.beam
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer_options.beam
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/ebin/dialyzer_plt.beam
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/plt/dialyzer_empty_plt
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer.app.src
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer.erl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer.hrl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer.hrl.src
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer.src
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer_analysis.erl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer_cl.erl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer_gui.erl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer_module_callgraph.erl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer_options.erl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/dialyzer_plt.erl
|
||||
lib/erlang/lib/dialyzer-%%VERSION%%/src/hipe_icode_type.hrl
|
||||
@dirrm lib/erlang/lib/dialyzer-%%VERSION%%/src
|
||||
@dirrm lib/erlang/lib/dialyzer-%%VERSION%%/plt
|
||||
@dirrm lib/erlang/lib/dialyzer-%%VERSION%%/ebin
|
||||
@dirrm lib/erlang/lib/dialyzer-%%VERSION%%/doc
|
||||
@dirrm lib/erlang/lib/dialyzer-%%VERSION%%
|
||||
@exec ln -sf dialyzer-%%VERSION%% %D/lib/erlang/lib/dialyzer
|
||||
@unexec rm -f %D/lib/erlang/lib/dialyzer 2>&1 >/dev/null || true
|
||||
@exec ln -sf %D/lib/erlang/lib/dialyzer-%%VERSION%%/dialyzer %D/bin/dialyzer
|
||||
@unexec rm %D/bin/dialyzer 2>&1 >/dev/null || true
|
Loading…
Reference in New Issue
Block a user