From: Rubén Llorente Subject: Re: [NEW] security/nitrocli To: ports@openbsd.org Date: Mon, 22 Apr 2024 10:53:00 +0000 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 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.