Tuesday, November 08, 2022

Re: new: devel/codechecker static analysis infrastructure built on LLVM

here are some tweaks, it looks like it will be too much pain to turn
it into a proper python.port.mk port but we can get a bit closer and use
some more bits of the ports framework.

I also wondered if it should it be installed (or aliased) to CodeChecker
to match the case of the usage commands etc?


diff --git devel/codechecker/Makefile devel/codechecker/Makefile
index 0f7e074..b512923 100644
--- devel/codechecker/Makefile
+++ devel/codechecker/Makefile
@@ -1,9 +1,8 @@
COMMENT = clang static code analyzer

-V = 6.20.0
GH_ACCOUNT = Ericsson
GH_PROJECT = codechecker
-GH_TAGNAME = v${V}
+GH_TAGNAME = v6.20.0

CATEGORIES = devel

@@ -22,47 +21,45 @@ DISTFILES = ${DISTNAME}${EXTRACT_SUFX} \
${DISTNAME}-codemirror.min.js{codemirror.min.js}:0 \
${DISTNAME}-codemirror.min.css{codemirror.min.css}:0 \
${DISTNAME}-clike.min.js{clike.min.js}:1 \
- ${DISTNAME}-LICENSE{LICENSE}:2
+ ${DISTNAME}-codemirror.LICENSE{LICENSE}:2

-EXTRACT_ONLY = ${DISTNAME}${EXTRACT_SUFX}
+EXTRACT_ONLY = ${DISTNAME}${EXTRACT_SUFX}

-MODULES = lang/python
-MODPI_VERSION = ${MODPY_DEFAULT_VERSION}
-
-LIB_DEPENDS = ${MODPY_LIB_DEPENDS}
+MODULES = lang/python
+CONFIGURE_STYLE = none
+ALL_TARGET = package package_api
+USE_GMAKE = Yes

RUN_DEPENDS = databases/py-alembic${MODPY_FLAVOR} \
+ databases/py-sqlalchemy${MODPY_FLAVOR} \
devel/llvm \
devel/py-portalocker${MODPY_FLAVOR} \
devel/py-thrift${MODPY_FLAVOR} \
- sysutils/py-psutil${MODPY_FLAVOR}
+ sysutils/py-psutil${MODPY_FLAVOR} \
+ textproc/py-lxml${MODPY_FLAVOR} \
+ textproc/py-yaml${MODPY_FLAVOR}

BUILD_DEPENDS = devel/py-pip${MODPY_FLAVOR} \
- devel/py-setuptools_scm${MODPY_FLAVOR} \
devel/py-wheel${MODPY_FLAVOR}

-STATIC_DIR= ${WRKSRC}/tools/report-converter/codechecker_report_converter/report/output/html/static/vendor/codemirror
+STATIC_DIR = ${WRKSRC}/tools/report-converter/codechecker_report_converter/report/output/html/static/vendor/codemirror

post-extract:
mkdir -p ${STATIC_DIR}
- cp -f ${DISTDIR}/${DISTNAME}-codemirror.min.js \
- ${STATIC_DIR}/codemirror.min.js
- cp -f ${DISTDIR}/${DISTNAME}-codemirror.min.css \
- ${STATIC_DIR}/codemirror.min.css
- cp -f ${DISTDIR}/${DISTNAME}-clike.min.js \
- ${STATIC_DIR}/clike.min.js
- cp -f ${DISTDIR}/${DISTNAME}-LICENSE \
- ${STATIC_DIR}/codemirror.LICENSE
+.for f in codemirror.min.js codemirror.min.css clike.min.js codemirror.LICENSE
+ cp ${FULLDISTDIR}/${DISTNAME}-$f ${STATIC_DIR}/$f
+.endfor

-do-build:
+pre-configure:
${SUBST_CMD} ${WRKSRC}/config/package_layout.json
- cd ${WRKSRC} && gmake
- cd ${WRKSRC} && gmake package_api
- ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py ${WRKSRC}/build

do-install:
cp -rf ${WRKSRC}/build/CodeChecker ${PREFIX}/share/
- ln -sf ${TRUEPREFIX}/share/CodeChecker/bin/CodeChecker \
+ ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py \
+ ${PREFIX}/share/CodeChecker
+ ln -s ${TRUEPREFIX}/share/CodeChecker/bin/CodeChecker \
${PREFIX}/bin/codechecker
+ find ${PREFIX}/share \( -name '*${PATCHORIG}' -or \
+ -name '*.beforesubst' \) -delete

.include <bsd.port.mk>
diff --git devel/codechecker/distinfo devel/codechecker/distinfo
index b16e728..b2ff1b8 100644
--- devel/codechecker/distinfo
+++ devel/codechecker/distinfo
@@ -1,10 +1,10 @@
-SHA256 (codechecker-6.20.0-LICENSE) = o/L+Ksa0caqAxzfF0oPdBJvckDpzg17m1NLKwC/dU78=
SHA256 (codechecker-6.20.0-clike.min.js) = lJbma7uCu604soGpj5LJO4RxDMWUige1afF5veoZxz4=
+SHA256 (codechecker-6.20.0-codemirror.LICENSE) = o/L+Ksa0caqAxzfF0oPdBJvckDpzg17m1NLKwC/dU78=
SHA256 (codechecker-6.20.0-codemirror.min.css) = wluO/w4cnorJpS0JmcdTSYzwdb5E6u045qa4Ervfb1k=
SHA256 (codechecker-6.20.0-codemirror.min.js) = AqnMwc9Kk6sJShDo5QGwu2Ea9MzSR+iSWy4nJV+gRRU=
SHA256 (codechecker-6.20.0.tar.gz) = 7g+YhNMguRzHhzQM2CsvXA+pBcHV5t3fYEGwpJsKOpI=
-SIZE (codechecker-6.20.0-LICENSE) = 1107
SIZE (codechecker-6.20.0-clike.min.js) = 18240
+SIZE (codechecker-6.20.0-codemirror.LICENSE) = 1107
SIZE (codechecker-6.20.0-codemirror.min.css) = 5731
SIZE (codechecker-6.20.0-codemirror.min.js) = 166305
SIZE (codechecker-6.20.0.tar.gz) = 10909440
diff --git devel/codechecker/patches/patch-config_package_layout_json devel/codechecker/patches/patch-config_package_layout_json
index 99b8aaa..ced8ba0 100644
--- devel/codechecker/patches/patch-config_package_layout_json
+++ devel/codechecker/patches/patch-config_package_layout_json
@@ -1,4 +1,5 @@
Prevent use of base clang
+
Index: config/package_layout.json
--- config/package_layout.json.orig
+++ config/package_layout.json
@@ -7,7 +8,7 @@ Index: config/package_layout.json
"runtime": {
"analyzers": {
- "clangsa": "clang",
-+ "clangsa": "${PREFIX}/bin/clang",
++ "clangsa": "${LOCALBASE}/bin/clang",
"clang-tidy": "clang-tidy",
"cppcheck": "cppcheck"
},
diff --git devel/codechecker/patches/patch-web_Makefile devel/codechecker/patches/patch-web_Makefile
new file mode 100644
index 0000000..ea602e5
--- /dev/null
+++ devel/codechecker/patches/patch-web_Makefile
@@ -0,0 +1,12 @@
+Index: web/Makefile
+--- web/Makefile.orig
++++ web/Makefile
+@@ -126,7 +126,7 @@ package: package_dir_structure package_web
+ cp $(ROOT)/LICENSE.TXT $(CC_BUILD_DIR)
+
+ package_api:
+- ${PYTHON_BIN} -m pip install --no-deps -t ${CC_BUILD_LIB_DIR} \
++ ${PYTHON_BIN} -m pip install --no-index --no-cache --no-deps -t ${CC_BUILD_LIB_DIR} \
+ api/py/codechecker_api/dist/codechecker_api.tar.gz \
+ api/py/codechecker_api_shared/dist/codechecker_api_shared.tar.gz
+

No comments:

Post a Comment