git: 890021e11374 - main - security/kdbxviewer: update to 0.1.9 and unbreak with -fno-common

From: Juraj Lutter <otis_at_FreeBSD.org>
Date: Wed, 03 Nov 2021 13:51:02 UTC
The branch main has been updated by otis:

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

commit 890021e11374ddd3c00ae90957b1ad26d8749e30
Author:     Robert Clausecker <fuz@fuz.su>
AuthorDate: 2021-11-03 13:28:19 +0000
Commit:     Juraj Lutter <otis@FreeBSD.org>
CommitDate: 2021-11-03 13:50:38 +0000

    security/kdbxviewer: update to 0.1.9 and unbreak with -fno-common
    
    Summary:
    - Unbreak this port by adding an extern keyword in the right place.
    - Fix ANSI color setting on abort()
    - Upstream has moved to a new github account
      (https://github.com/luelista/kdbxviewer) but appears to have abandoned the
      project.  Move upstream to a fork which appears to have continued development
      on the project.  Upstream does not tag releases but periodically changes the
      README to indicate a new release.
    - Remove dead WWW and replace it with upstream repository.
    - Set MAINTAINER to reporter
    
    Differential Revision: https://reviews.freebsd.org/D32822
---
 security/kdbxviewer/Makefile               | 16 +++----
 security/kdbxviewer/distinfo               |  6 +--
 security/kdbxviewer/files/patch-src_main.c | 70 ++++++++++++++++++++++++++++++
 security/kdbxviewer/files/patch-src_tui.c  | 11 +++++
 security/kdbxviewer/pkg-descr              |  2 +-
 5 files changed, 91 insertions(+), 14 deletions(-)

diff --git a/security/kdbxviewer/Makefile b/security/kdbxviewer/Makefile
index 9c67d16b47c8..6e2e8706733e 100644
--- a/security/kdbxviewer/Makefile
+++ b/security/kdbxviewer/Makefile
@@ -1,37 +1,33 @@
 # Created by: Ben Woods <woodsb02@FreeBSD.org>
 
 PORTNAME=	kdbxviewer
-PORTVERSION=	0.1
+PORTVERSION=	0.1.9
 DISTVERSIONPREFIX=v
 CATEGORIES=	security
 
-MAINTAINER=	ports@FreeBSD.org
-COMMENT=	ncurses GUI and command-line tool for KeePass2 Database files
+MAINTAINER=	fuz@fuz.su
+COMMENT=	Ncurses UI and command-line tool for KeePass2 Database files
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-BROKEN_FreeBSD_13=	ld: error: duplicate symbol: trail
-BROKEN_FreeBSD_14=	ld: error: duplicate symbol: trail
-
 LIB_DEPENDS=	libexpat.so:textproc/expat2 \
 		libgcrypt.so:security/libgcrypt \
 		libstfl.so:devel/stfl
 
+USES=		ncurses
 USE_GITHUB=	yes
-GH_ACCOUNT=	max-weller
+GH_ACCOUNT=	pepa65
 
-USES=		ncurses
+ALL_TARGET=	kdbxviewer
 CFLAGS+=	-I${LOCALBASE}/include
 LDFLAGS+=	-L${LOCALBASE}/lib
 PLIST_FILES=	bin/kdbxviewer
-ALL_TARGET=
 
 post-patch:
 	${REINPLACE_CMD} -e 's|gcc|${CC} ${CFLAGS} ${LDFLAGS}|' ${WRKSRC}/Makefile
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/bin/kdbxviewer ${STAGEDIR}${PREFIX}/bin/
-	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/kdbxviewer
 
 .include <bsd.port.mk>
diff --git a/security/kdbxviewer/distinfo b/security/kdbxviewer/distinfo
index ab74ee01e911..4010666bde65 100644
--- a/security/kdbxviewer/distinfo
+++ b/security/kdbxviewer/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1575987926
-SHA256 (max-weller-kdbxviewer-v0.1_GH0.tar.gz) = 4a9406232ff440e7453d34bb450b44c715ebefc4bd4c98c305d4d0af9aee4ecf
-SIZE (max-weller-kdbxviewer-v0.1_GH0.tar.gz) = 142765
+TIMESTAMP = 1635946423
+SHA256 (pepa65-kdbxviewer-v0.1.9_GH0.tar.gz) = ab9c26971be2e5fdf623e795173a7f6604fe96615b186db1033b09dcd76334d5
+SIZE (pepa65-kdbxviewer-v0.1.9_GH0.tar.gz) = 140205
diff --git a/security/kdbxviewer/files/patch-src_main.c b/security/kdbxviewer/files/patch-src_main.c
new file mode 100644
index 000000000000..b1eaf090b2dd
--- /dev/null
+++ b/security/kdbxviewer/files/patch-src_main.c
@@ -0,0 +1,70 @@
+--- src/main.c.orig	2021-10-10 14:14:08 UTC
++++ src/main.c
+@@ -198,7 +198,7 @@ int main(int argc, char **argv) {
+ 		case 'i':
+ 		case 'h':
+ 		case 'V':
+-			if (command != 0) abort(-1, "%sMultiple commands not allowed\n", ERRC);
++			if (command != 0) abort(-1, "%sMultiple commands not allowed%s\n", ERRC, NORMAL);
+ 			command = opt;
+ 			break;
+ 		case 'v':
+@@ -215,15 +215,15 @@ int main(int argc, char **argv) {
+ 			searchall = TRUE;
+ 		case 's':
+ 			if (search != NULL)
+-				abort(-2, "%sSuperfluous search term: %s\n", ERRC, optarg);
++				abort(-2, "%sSuperfluous search term: %s%s\n", ERRC, optarg, NORMAL);
+ 			search = optarg;
+ 			break;
+ 		case 'd':
+ 			if ((kdbxfile = fopen(optarg, "r")) == NULL)
+-				abort(-3, "%sCan't open database file: %s\n", ERRC, optarg);
++				abort(-3, "%sCan't open database file: %s%s\n", ERRC, optarg, NORMAL);
+ 			kdbxfilename = optarg;
+ 		default:
+-			abort(-4, "%sUnrecognized argument -%s\n", ERRC, argv[optind]);
++			abort(-4, "%sUnrecognized argument -%s%s\n", ERRC, argv[optind], NORMAL);
+ 		}
+ 	}
+ 
+@@ -238,10 +238,10 @@ int main(int argc, char **argv) {
+ 
+ 	if (optind < argc) // Must be [-s] argument, unless already given
+ 		if (search == NULL) search = argv[optind++];
+-		else abort(-5, "%sSuperfluous argument: %s\n", ERRC, argv[optind]);
++		else abort(-5, "%sSuperfluous argument: %s%s\n", ERRC, argv[optind], NORMAL);
+ 
+ 	if (optind < argc)
+-		abort(-6, "%sSuperfluous argument: %s\n", ERRC, argv[optind]);
++		abort(-6, "%sSuperfluous argument: %s%s\n", ERRC, argv[optind], NORMAL);
+ 
+ 	if (*kdbxfilename == 0) { // Try configfile for database filename
+ 		*filename = 0;
+@@ -253,22 +253,22 @@ int main(int argc, char **argv) {
+ 				*filename = 0;
+ 			}
+ 		if (*kdbxfilename == 0)
+-			abort(-7, "%sNo database specified on commandline or in configfile\n",
+-				ERRC);
++			abort(-7, "%sNo database specified on commandline or in configfile%s\n",
++				ERRC, NORMAL);
+ 		else strcpy(filename, kdbxfilename);
+ 	}
+ 
+ 	// Set default mode depending on search
+ 	if (search != NULL) { // Search requested
+ 		if (command == 'i' || command == 'x')
+-			abort(-8, "%sCannot Search with -i/--interactive or -x/--xml\n", ERRC);
++			abort(-8, "%sCannot Search with -i/--interactive or -x/--xml%s\n", ERRC, NORMAL);
+ 		if (command == 0) command = 't';
+ 	} else { // No search
+ 		if (command == 0) command = 'i';
+ 	}
+ 
+ 	// Open the database
+-	warn("%skdbxviewer", RESET);
++	warn("%skdbxviewer", NORMAL);
+ 	if (password == NULL) {
+ 		warn(" - Opening KDBX database %s%s\n%sPassword: %s", FIELD, kdbxfilename, PWC, NORMAL);
+ 		password = getpass("");
diff --git a/security/kdbxviewer/files/patch-src_tui.c b/security/kdbxviewer/files/patch-src_tui.c
new file mode 100644
index 000000000000..84b31ba93cdf
--- /dev/null
+++ b/security/kdbxviewer/files/patch-src_tui.c
@@ -0,0 +1,11 @@
+--- src/tui.c.orig	2021-10-04 12:08:30 UTC
++++ src/tui.c
+@@ -13,7 +13,7 @@
+ #include <locale.h>
+ #include "helper.h"
+ 
+-int unmask;
++extern int unmask;
+ #define WIDE(str) stfl_ipool_towc(ipool, str)
+ #define MAXFIELDLEN 32768
+ 
diff --git a/security/kdbxviewer/pkg-descr b/security/kdbxviewer/pkg-descr
index b098530d1e38..51292e6199b1 100644
--- a/security/kdbxviewer/pkg-descr
+++ b/security/kdbxviewer/pkg-descr
@@ -7,4 +7,4 @@ Features:
 - Display tree structure with de-obscured (=readable) passwords
 - Get tab-separated (TSV/CSV) password list
 
-WWW: https://max-weller.github.io/kdbx-viewer/
+WWW: https://github.com/pepa65/kdbxviewer