Index | Thread | Search

From:
Rubén Llorente <porting@use.startmail.com>
Subject:
Re: [NEW] security/nitrocli
To:
ports@openbsd.org
Date:
Mon, 22 Apr 2024 10:53:00 +0000

Download raw body.

Thread
This is a second attempt at the port, incorporating some suggestions 
from Klemens Nanni.

I include both a full version of the port (attached) and a patch that 
shows the differences between the earlier version and the current 
version of the port (attached).
diff -Nur nitrocli.orig/Makefile nitrocli/Makefile
--- nitrocli.orig/Makefile	Sun Apr 14 15:28:33 2024
+++ nitrocli/Makefile	Mon Apr 22 12:18:42 2024
@@ -18,91 +18,24 @@
 
 LIB_DEPENDS =	comms/libhidapi
 
+RUN_DEPENDS =	security/gnupg
+
 COMPILER =	base-clang ports-gcc
 
 CONFIGURE_STYLE =	cargo
 
 MODCARGO_RUSTFLAGS =	-L ${LOCALBASE}/lib
 
-MODCARGO_CRATES +=	aho-corasick	0.7.18	# Unlicense/MIT
-MODCARGO_CRATES +=	anyhow	1.0.40	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	autocfg	1.0.1	# Apache-2.0 OR MIT
-MODCARGO_CRATES +=	base32	0.4.0	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	bitflags	1.2.1	# MIT/Apache-2.0
-MODCARGO_CRATES +=	cc	1.0.67	# MIT/Apache-2.0
-MODCARGO_CRATES +=	cfg-if	1.0.0	# MIT/Apache-2.0
-MODCARGO_CRATES +=	clap	2.33.3	# MIT
-MODCARGO_CRATES +=	directories	3.0.2	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	dirs-sys	0.3.6	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	envy	0.4.2	# MIT
-MODCARGO_CRATES +=	getrandom	0.1.16	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	getrandom	0.2.2	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	heck	0.3.2	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	lazy_static	1.4.0	# MIT/Apache-2.0
-MODCARGO_CRATES +=	libc	0.2.94	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	log	0.4.14	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	memchr	2.4.0	# Unlicense/MIT
-MODCARGO_CRATES +=	merge	0.1.0	# Apache-2.0 OR MIT
-MODCARGO_CRATES +=	merge_derive	0.1.0	# Apache-2.0 OR MIT
-MODCARGO_CRATES +=	nitrokey	0.9.0	# MIT
-MODCARGO_CRATES +=	nitrokey-sys	3.6.0	# LGPL-3.0
-MODCARGO_CRATES +=	nitrokey-test	0.5.0	# GPL-3.0-or-later
-MODCARGO_CRATES +=	nitrokey-test-state	0.1.0	# GPL-3.0-or-later
-MODCARGO_CRATES +=	num-traits	0.2.14	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	numtoa	0.1.0	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	ppv-lite86	0.2.10	# MIT/Apache-2.0
-MODCARGO_CRATES +=	proc-macro-error	1.0.4	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	proc-macro-error-attr	1.0.4	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	proc-macro2	1.0.26	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	progressing	3.0.2	# Apache-2.0
-MODCARGO_CRATES +=	quote	1.0.9	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	rand	0.8.3	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	rand_chacha	0.3.0	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	rand_core	0.5.1	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	rand_core	0.6.2	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	rand_hc	0.3.0	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	redox_syscall	0.2.8	# MIT
-MODCARGO_CRATES +=	redox_termios	0.1.2	# MIT
-MODCARGO_CRATES +=	redox_users	0.4.0	# MIT
-MODCARGO_CRATES +=	regex	1.5.4	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	regex-syntax	0.6.25	# MIT/Apache-2.0
-MODCARGO_CRATES +=	remove_dir_all	0.5.3	# MIT/Apache-2.0
-MODCARGO_CRATES +=	serde	1.0.125	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	serde_derive	1.0.125	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	structopt	0.3.21	# Apache-2.0 OR MIT
-MODCARGO_CRATES +=	structopt-derive	0.4.14	# Apache-2.0/MIT
-MODCARGO_CRATES +=	syn	1.0.72	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	tempfile	3.2.0	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	termion	1.5.6	# MIT
-MODCARGO_CRATES +=	textwrap	0.11.0	# MIT
-MODCARGO_CRATES +=	toml	0.5.8	# MIT/Apache-2.0
-MODCARGO_CRATES +=	unicode-segmentation	1.7.1	# MIT/Apache-2.0
-MODCARGO_CRATES +=	unicode-width	0.1.8	# MIT/Apache-2.0
-MODCARGO_CRATES +=	unicode-xid	0.2.2	# MIT OR Apache-2.0
-MODCARGO_CRATES +=	version_check	0.9.3	# MIT/Apache-2.0
+.include "modules.inc"
 
-# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
-MODCARGO_CRATES +=	wasi	0.9.0+wasi-snapshot-preview1
-
-# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
-MODCARGO_CRATES +=	wasi	0.10.2+wasi-snapshot-preview1
-MODCARGO_CRATES +=	winapi	0.3.9	# MIT/Apache-2.0
-
-# MIT/Apache-2.0
-MODCARGO_CRATES +=	winapi-i686-pc-windows-gnu	0.4.0
-
-# MIT/Apache-2.0
-MODCARGO_CRATES +=	winapi-x86_64-pc-windows-gnu	0.4.0
-
-MODCARGO_VENDOR_DIR = ${WRKSRC}/modcargo-crates
-
-RUN_DEPENDS =	security/gnupg
-
 MY_REPLACE_CMD =	sed -i s/hid_init/hidapi_hid_init/g
-MY_HIDAPI_DIR =	/nitrokey-sys-*/libnitrokey-*/libnitrokey/
-MY_HIDAPI_HEADER =	hidapi/hidapi.h
+MY_HEADER =	/nitrokey-sys-*/libnitrokey-*/libnitrokey/hidapi/hidapi.h
 
 post-patch:
-	${MY_REPLACE_CMD} ${MODCARGO_VENDOR_DIR}${MY_HIDAPI_DIR}${MY_HIDAPI_HEADER}
+	${MY_REPLACE_CMD} ${MODCARGO_VENDOR_DIR}${MY_HEADER}
+
+post-install:
+	mv ${PREFIX}/bin/shell-complete \
+	${PREFIX}/bin/nitrocli-shell-complete
 
 .include <bsd.port.mk>
diff -Nur nitrocli.orig/modules.inc nitrocli/modules.inc
--- nitrocli.orig/modules.inc	Thu Jan  1 01:00:00 1970
+++ nitrocli/modules.inc	Sun Apr 14 15:31:32 2024
@@ -0,0 +1,69 @@
+MODCARGO_CRATES +=	aho-corasick	0.7.18	# Unlicense/MIT
+MODCARGO_CRATES +=	anyhow	1.0.40	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	autocfg	1.0.1	# Apache-2.0 OR MIT
+MODCARGO_CRATES +=	base32	0.4.0	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	bitflags	1.2.1	# MIT/Apache-2.0
+MODCARGO_CRATES +=	cc	1.0.67	# MIT/Apache-2.0
+MODCARGO_CRATES +=	cfg-if	1.0.0	# MIT/Apache-2.0
+MODCARGO_CRATES +=	clap	2.33.3	# MIT
+MODCARGO_CRATES +=	directories	3.0.2	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	dirs-sys	0.3.6	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	envy	0.4.2	# MIT
+MODCARGO_CRATES +=	getrandom	0.1.16	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	getrandom	0.2.2	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	heck	0.3.2	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	lazy_static	1.4.0	# MIT/Apache-2.0
+MODCARGO_CRATES +=	libc	0.2.94	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	log	0.4.14	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	memchr	2.4.0	# Unlicense/MIT
+MODCARGO_CRATES +=	merge	0.1.0	# Apache-2.0 OR MIT
+MODCARGO_CRATES +=	merge_derive	0.1.0	# Apache-2.0 OR MIT
+MODCARGO_CRATES +=	nitrokey	0.9.0	# MIT
+MODCARGO_CRATES +=	nitrokey-sys	3.6.0	# LGPL-3.0
+MODCARGO_CRATES +=	nitrokey-test	0.5.0	# GPL-3.0-or-later
+MODCARGO_CRATES +=	nitrokey-test-state	0.1.0	# GPL-3.0-or-later
+MODCARGO_CRATES +=	num-traits	0.2.14	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	numtoa	0.1.0	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	ppv-lite86	0.2.10	# MIT/Apache-2.0
+MODCARGO_CRATES +=	proc-macro-error	1.0.4	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	proc-macro-error-attr	1.0.4	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	proc-macro2	1.0.26	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	progressing	3.0.2	# Apache-2.0
+MODCARGO_CRATES +=	quote	1.0.9	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	rand	0.8.3	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	rand_chacha	0.3.0	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	rand_core	0.5.1	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	rand_core	0.6.2	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	rand_hc	0.3.0	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	redox_syscall	0.2.8	# MIT
+MODCARGO_CRATES +=	redox_termios	0.1.2	# MIT
+MODCARGO_CRATES +=	redox_users	0.4.0	# MIT
+MODCARGO_CRATES +=	regex	1.5.4	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	regex-syntax	0.6.25	# MIT/Apache-2.0
+MODCARGO_CRATES +=	remove_dir_all	0.5.3	# MIT/Apache-2.0
+MODCARGO_CRATES +=	serde	1.0.125	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	serde_derive	1.0.125	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	structopt	0.3.21	# Apache-2.0 OR MIT
+MODCARGO_CRATES +=	structopt-derive	0.4.14	# Apache-2.0/MIT
+MODCARGO_CRATES +=	syn	1.0.72	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	tempfile	3.2.0	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	termion	1.5.6	# MIT
+MODCARGO_CRATES +=	textwrap	0.11.0	# MIT
+MODCARGO_CRATES +=	toml	0.5.8	# MIT/Apache-2.0
+MODCARGO_CRATES +=	unicode-segmentation	1.7.1	# MIT/Apache-2.0
+MODCARGO_CRATES +=	unicode-width	0.1.8	# MIT/Apache-2.0
+MODCARGO_CRATES +=	unicode-xid	0.2.2	# MIT OR Apache-2.0
+MODCARGO_CRATES +=	version_check	0.9.3	# MIT/Apache-2.0
+
+# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+MODCARGO_CRATES +=	wasi	0.9.0+wasi-snapshot-preview1
+
+# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+MODCARGO_CRATES +=	wasi	0.10.2+wasi-snapshot-preview1
+MODCARGO_CRATES +=	winapi	0.3.9	# MIT/Apache-2.0
+
+# MIT/Apache-2.0
+MODCARGO_CRATES +=	winapi-i686-pc-windows-gnu	0.4.0
+
+# MIT/Apache-2.0
+MODCARGO_CRATES +=	winapi-x86_64-pc-windows-gnu	0.4.0
diff -Nur nitrocli.orig/pkg/DESCR nitrocli/pkg/DESCR
--- nitrocli.orig/pkg/DESCR	Sun Apr 14 15:28:33 2024
+++ nitrocli/pkg/DESCR	Sun Apr 14 15:39:00 2024
@@ -1,4 +1,2 @@
 nitrocli is a program that provides a command line interface for interaction
 with Nitrokey Pro, Nitrokey Storage, and Librem Key devices.
-
-
diff -Nur nitrocli.orig/pkg/PLIST nitrocli/pkg/PLIST
--- nitrocli.orig/pkg/PLIST	Sun Apr 14 15:28:33 2024
+++ nitrocli/pkg/PLIST	Mon Apr 22 12:25:24 2024
@@ -1,3 +1,3 @@
 @bin bin/nitrocli
-@bin bin/shell-complete
+@bin bin/nitrocli-shell-complete
 share/doc/pkg-readmes/${PKGSTEM}
diff -Nur nitrocli.orig/pkg/README nitrocli/pkg/README
--- nitrocli.orig/pkg/README	Sun Apr 14 15:28:33 2024
+++ nitrocli/pkg/README	Mon Apr 22 12:32:06 2024
@@ -8,9 +8,9 @@
 the device. You may need to change the permissions of the corresponding
 usb(4) , uhid(4) and ugen(4) controllers as a result.
 
-You may identify the usb(4) device the NitroKey is attatched to with
+You may identify the usb(4) device the NitroKey is attached to with
 usbdevs(8). The corresponding uhid(4) and ugen(4) devices can be
-obtained from the ouput of dmesg(8). You may then use chgrp(1) and
+obtained from the output of dmesg(8). You may then use chgrp(1) and
 chmod(8) to grant access to the NitroKey. For example, in order to allow
 users from the wheel group to use the NitroKey you would issue commands
 such as:
@@ -37,3 +37,10 @@
 gpg-agent with:
 
 gpgconf --kill gpg-agent
+
+Shell Autocompletion
+===============================
+Upstream nitrocli ships with an utility for generating autocompletion
+configurations for many popular shells. You may invoke
+nitrocli-shell-complete and use its output to configure your shell if
+you want autocompletion.