1PORTNAME=	zaproxy
2DISTVERSIONPREFIX=	v
3DISTVERSION=	2.16.1
4CATEGORIES=	security java
5
6MAINTAINER=	ports@MidnightBSD.org
7COMMENT=	The zed attack proxy
8WWW=		https://www.zaproxy.org/
9
10LICENSE=	Apache-2.0
11
12BUILD_DEPENDS=	gradle:devel/gradle8
13
14USES=		gettext-runtime java
15
16USE_GITHUB=	yes
17
18JAVA_VERSION=	17
19
20NO_ARCH=	yes
21
22MAKE_ENV+=	GRADLE_USER_HOME=${WRKDIR}
23
24DESKTOP_ENTRIES="ZAP" "Zed Attack Proxy" "${PREFIX}/share/pixmaps/zaproxy.png" "${PORTNAME}" \
25		"System;Security;" true
26
27# to rebuild the deps archive:
28#   1. set DEV_UPDATE_MODE=yes
29#   2. make makesum build
30#   3. upload the *-deps archive
31#   4. set DEV_UPDATE_MODE=no
32#   5. make clean makesum
33
34DEV_UPDATE_MODE=	no
35
36DEPS_CACHE_DIR=	${WRKDIR}
37EXCLUDE_TASK=	--exclude-task :zap:downloadMainAddOns
38
39MAKE_ENV+=	JAVA_HOME=${JAVA_HOME}
40SUB_LIST=	JAVA_HOME=${JAVA_HOME}
41SUB_FILES=	pkg-message
42
43.if (${DEV_UPDATE_MODE} == "yes")
44EXCLUDE_TASK=	#
45post-build:
46	@cd ${DEPS_CACHE_DIR} && ${TAR} czf ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-${DISTVERSION}-deps${EXTRACT_SUFX} gradle-${PORTNAME}
47	@cd ${WRKSRC}/zap/build && ${TAR} czf ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-${DISTVERSION}-plugins${EXTRACT_SUFX} mainAddOns
48	@${ECHO} "(!!!) Please upload the deps archive: ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-${DISTVERSION}-deps${EXTRACT_SUFX}"
49	@${ECHO} "(!!!) Please upload the plugins archive: ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-${DISTVERSION}-plugins${EXTRACT_SUFX}"
50.else
51MASTER_SITES+=	LOCAL/acm/${PORTNAME}:deps
52DISTFILES+=	${PORTNAME}-${DISTVERSION}-deps${EXTRACT_SUFX}:deps \
53		${PORTNAME}-${DISTVERSION}-plugins${EXTRACT_SUFX}:deps
54GRADLE_ARGS=	--offline
55
56post-extract: # need a separate extract step because the cache is in /tmp, and not under work/ like with maven
57	@cd ${DEPS_CACHE_DIR} && ${TAR} xzf ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-${DISTVERSION}-deps${EXTRACT_SUFX}
58
59post-patch:
60	@${REINPLACE_CMD} -e 's|%%JAVAJARDIR%%|${JAVAJARDIR}|g' \
61		-e 's|%%JAVA_HOME%%|${JAVA_HOME}|g' \
62		-e 's|%%VERSION%%|${DISTVERSION}|g' ${WRKSRC}/zap/src/main/dist/zap.sh
63.endif
64
65do-build:
66	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} gradle8 \
67		--gradle-user-home ${DEPS_CACHE_DIR}/gradle-${PORTNAME} --project-cache-dir ${DEPS_CACHE_DIR}/gradle-${PORTNAME} \
68		${GRADLE_ARGS} --build-cache :zap:distCore ${EXCLUDE_TASK}
69
70do-install:
71	${INSTALL_SCRIPT} ${WRKSRC}/zap/build/distFiles/zap.sh ${PREFIX}/bin/${PORTNAME}
72	cd ${WRKSRC}/zap/build/distFiles/ && ${COPYTREE_SHARE} "db lang lib license plugin README xml zap-${DISTVERSION}.jar" ${JAVAJARDIR}/${PORTNAME}
73	cd ${WRKDIR}/mainAddOns && ${COPYTREE_SHARE} ./ ${JAVAJARDIR}/${PORTNAME}/plugin
74	${INSTALL_DATA} ${WRKSRC}/zap/src/main/resources/resource/zap64x64.png ${PREFIX}/share/pixmaps/zaproxy.png
75
76.include <bsd.port.mk>
77