git: fa5e5ade4600 - main - textproc/qrcodegen: Fix run when Java 11+ is default, take maintainership

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Thu, 11 Sep 2025 11:03:31 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fa5e5ade4600c74f31e91ebc4285ae057a22903b

commit fa5e5ade4600c74f31e91ebc4285ae057a22903b
Author:     Kevin Zheng <kevinz5000@gmail.com>
AuthorDate: 2025-09-11 10:53:50 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-09-11 10:53:50 +0000

    textproc/qrcodegen: Fix run when Java 11+ is default, take maintainership
    
    Port require Java 8 - doesn't work with 9+:
    Sep 09, 2025 4:54:36 PM qrcodegen.Loader handleException
    SEVERE: null
    java.lang.NoClassDefFoundError: javax/xml/bind/DataBindingException
    
    This is because the javax.xml libraries moved in Java 9.
    
    Improve port:
    - Replace PORTVERSION with DISTVERSION.
    - Use zip in USES instead of zip:infozip - work fine without archivers/unzip.
    - Replace do-extract with EXTRACT_BEFORE_ARGS/EXTRACT_AFTER_ARGS.
    - Parametrize qrcodegen with ${PORTNAME}.
    - Install all files with one INSTALL_DATA instead of 5 in loop "for".
    
    PR:             289421
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
    MFH:            2025Q3
---
 textproc/qrcodegen/Makefile           | 43 ++++++++++++++++-------------------
 textproc/qrcodegen/files/qrcodegen.in |  1 +
 2 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/textproc/qrcodegen/Makefile b/textproc/qrcodegen/Makefile
index 01ee8de5482c..d46f6364a54f 100644
--- a/textproc/qrcodegen/Makefile
+++ b/textproc/qrcodegen/Makefile
@@ -1,42 +1,37 @@
 PORTNAME=	qrcodegen
-PORTVERSION=	1.14.2
-PORTREVISION=	1
+DISTVERSION=	1.14.2
+PORTREVISION=	2
 CATEGORIES=	textproc java
 MASTER_SITES=	http://bsd-geek.de/FreeBSD/distfiles/
-DISTNAME=	${PORTNAME}_${PORTVERSION}
+DISTNAME=	${PORTNAME}_${DISTVERSION}
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	kevinz5000@gmail.com
 COMMENT=	GUI to generate QR codes
 WWW=		https://sites.google.com/site/qrcodeforwn/home/qr-code-generator-for-wireless-networks
 
 LICENSE=	GPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES=		java zip:infozip
-
+USES=		java zip
+JAVA_VERSION=	8
+
+DESKTOP_ENTRIES=	"Portable QR-Code Generator" \
+			"${COMMENT}" \
+			"" \
+			"${PORTNAME}" \
+			"Utility;2DGraphics;Java;" \
+			false
+EXTRACT_BEFORE_ARGS=	-jqo
+EXTRACT_AFTER_ARGS=	-d ${WRKSRC}
 NO_ARCH=	yes
 NO_BUILD=	yes
-SUB_FILES=	qrcodegen
+SUB_FILES=	${PORTNAME}
 
 INSTALLFILES=	FAQ.txt Installation.txt NOTICE QRCodeGen.jar Version.html
 
-DESKTOP_ENTRIES="Portable QR-Code Generator" \
-		"${COMMENT}" \
-		"" \
-		"qrcodegen" \
-		"Utility;2DGraphics;Java;" \
-		false
-
-do-extract:
-	@${RM} -r ${WRKDIR}
-	@${MKDIR} ${WRKSRC}
-	@${UNZIP_CMD} -q -j -d ${WRKSRC} ${DISTDIR}/${EXTRACT_ONLY}
-
 do-install:
-	@${MKDIR} ${STAGEDIR}${DATADIR}
-.for i in ${INSTALLFILES}
-	${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}${DATADIR}/
-.endfor
-	${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
+	${MKDIR} ${STAGEDIR}${DATADIR}
+	${INSTALL_DATA} ${INSTALLFILES:C|^|${WRKSRC}/|} ${STAGEDIR}${DATADIR}
+	${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
 
 .include <bsd.port.mk>
diff --git a/textproc/qrcodegen/files/qrcodegen.in b/textproc/qrcodegen/files/qrcodegen.in
index 05eadc249d9a..4d7042557b37 100644
--- a/textproc/qrcodegen/files/qrcodegen.in
+++ b/textproc/qrcodegen/files/qrcodegen.in
@@ -1,5 +1,6 @@
 #!/bin/sh
 
 cd %%DATADIR%%
+export JAVA_VERSION="%%JAVA_VERSION%%"
 exec %%LOCALBASE%%/bin/java -jar QRCodeGen.jar "$@"