git: c89a37da755f - main - security/kc: add YUBIKEY option

From: Zsolt Udvari <uzsolt_at_FreeBSD.org>
Date: Mon, 26 Aug 2024 18:24:12 UTC
The branch main has been updated by uzsolt:

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

commit c89a37da755fc8aa59772f6be56b695999646df2
Author:     Daniel <leva@ecentrum.hu>
AuthorDate: 2024-08-26 18:17:23 +0000
Commit:     Zsolt Udvari <uzsolt@FreeBSD.org>
CommitDate: 2024-08-26 18:17:23 +0000

    security/kc: add YUBIKEY option
    
    Remove pcre support.
    Add TEST_DEPENDS and use bash instead of sh in tests.
    Shorten pkg-message.
    Switch to DISTVERSION.
    Pet portlint, portfmt.
    
    PR:             277801
    Approved by:    submitter is maintainer
---
 security/kc/Makefile    | 69 +++++++++++++++++++++++++++----------------------
 security/kc/pkg-message | 31 ++--------------------
 2 files changed, 40 insertions(+), 60 deletions(-)

diff --git a/security/kc/Makefile b/security/kc/Makefile
index 0f963080cf83..a9c101e171c2 100644
--- a/security/kc/Makefile
+++ b/security/kc/Makefile
@@ -1,47 +1,54 @@
-PORTNAME=		kc
-PORTVERSION=		2.5.3
-PORTREVISION=		1
-CATEGORIES=		security
+PORTNAME=	kc
+DISTVERSION=	2.5.3
+PORTREVISION=	2
+CATEGORIES=	security
 
-MAINTAINER=		leva@ecentrum.hu
-COMMENT=		Console based password storing application
-WWW=			https://github.com/levaidaniel/kc
+MAINTAINER=	leva@ecentrum.hu
+COMMENT=	Console based password storing application
+WWW=		https://github.com/levaidaniel/kc
 
-LICENSE=		BSD2CLAUSE
-LICENSE_FILE=		${WRKSRC}/LICENSE
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
-LIB_DEPENDS=		libxml2.so:textproc/libxml2
+LIB_DEPENDS=	libxml2.so:textproc/libxml2
+TEST_DEPENDS=	bash:shells/bash
 
-CONFLICTS=		kc24
+USES=		ncurses pkgconfig ssl uidfix
+USE_GITHUB=	yes
+GH_ACCOUNT=	levaidaniel
 
-OPTIONS_DEFINE=		PCRE SCRYPT
-OPTIONS_DEFAULT=	PCRE SCRYPT LIBEDIT
-OPTIONS_RADIO=		CLI
-OPTIONS_RADIO_CLI=	LIBEDIT READLINE
+MAKE_ARGS=	BINDIR="${PREFIX}/bin" \
+		MANDIR="${PREFIX}/share/man/man"
+MAKE_ENV=	BUNDLED_BCRYPT=y
+TEST_ENV=	SH=${PREFIX}/bin/bash
+TEST_TARGET=	test
 
-SCRYPT_DESC=		Scrypt KDF support (needs libscrypt)
+CONFLICTS=	kc24
 
-PCRE_LIB_DEPENDS=	libpcre.so:devel/pcre
-PCRE_MAKE_ENV+=		HAVE_PCRE=yes
-SCRYPT_LIB_DEPENDS=	libscrypt.so:security/libscrypt
-SCRYPT_MAKE_ENV+=	HAVE_LIBSCRYPT=1
-LIBEDIT_USES=		libedit
-LIBEDIT_MAKE_ENV+=	EDITLINE=y
-READLINE_USES=		readline
-READLINE_MAKE_ENV+=	READLINE=y
+PLIST_FILES=	bin/kc share/doc/kc/Changelog.md share/man/man1/kc.1.gz
 
-USES+=			pkgconfig ncurses ssl uidfix
-USE_GITHUB=		yes
-GH_ACCOUNT=		levaidaniel
+OPTIONS_DEFINE=		SCRYPT YUBIKEY
+OPTIONS_DEFAULT=	LIBEDIT SCRYPT
+OPTIONS_SINGLE=		CLI
+OPTIONS_SINGLE_CLI=	LIBEDIT READLINE
 
-PLIST_FILES=		bin/kc share/doc/kc/Changelog.md share/man/man1/kc.1.gz
+SCRYPT_DESC=	Scrypt KDF support (needs libscrypt)
+YUBIKEY_DESC=	YubiKey support (needs libyubikey and ykpers)
 
-MAKE_ARGS=		BINDIR="${PREFIX}/bin" \
-			MANDIR="${PREFIX}/share/man/man"
-MAKE_ENV+=		BUNDLED_BCRYPT=y
+LIBEDIT_USES=		libedit
+LIBEDIT_MAKE_ENV=	EDITLINE=y
+READLINE_USES=		readline
+READLINE_MAKE_ENV=	READLINE=y
+SCRYPT_LIB_DEPENDS=	libscrypt.so:security/libscrypt
+SCRYPT_MAKE_ENV=	HAVE_LIBSCRYPT=1
+YUBIKEY_LIB_DEPENDS=	libykpers-1.so:security/ykpers \
+			libyubikey.so:security/libyubikey
+YUBIKEY_MAKE_ENV+=	CFLAGS=-I${PREFIX}/include \
+			HAVE_YUBIKEY=y
 
 post-patch:
 	@${REINPLACE_CMD} -e 's|-lncursesw|${NCURSESLIBS}|' ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} -e 's|^#!/bin/sh|#!${PREFIX}/bin/bash|' ${WRKSRC}/regress/run_tests.sh
 
 post-install:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
diff --git a/security/kc/pkg-message b/security/kc/pkg-message
index c08487d3e962..e5f800a9cb5c 100644
--- a/security/kc/pkg-message
+++ b/security/kc/pkg-message
@@ -1,36 +1,9 @@
 [
 { type: install
   message: <<EOM
-Please read ${PREFIX}/share/doc/kc/Changelog.md to see why you might not be able to open your database anymore.
+Please read ${PREFIX}/share/doc/kc/Changelog.md to see why you might not be able to open your v2.4 database anymore.
 
-Example:
-
-Running v2.5, creating a new then importing a v2.4 database that was using the default settings (sha512 KDF, aes256 cipher, cbc mode):
-
-$ kc
-Creating 'default.kcd'
-Using 'default.kcd' database.
-New password (empty to cancel):
-New password again (empty to cancel):
-Initializing...
-Database file: default.kcd (default.kcd)
-XML structure size: 148 bytes
-Security key(s): no
-Password: yes
-SSH agent: no
-Password function: sha512 (100000 iterations)
-Encryption: aes256, cbc
-Read-only: no
-Modified: yes
-<default% > import -o -R 5000 -k passwords.kcd
-Reading database...
-Opening 'passwords.kcd'
-Password:
-Decrypting...
-Checking database...
-Counting keys and keychains...
-Import finished.
-<passwords% >
+For YubiKey support, the user needs to have r/w access to the USB device under /dev/usb.
 EOM
 }
 ]