Friday, September 29, 2023

update: nsh 1.2

Update NSH to version 1.2.

This release ships about 6 months worth of fixes and enhancements.
I hope there will be smaller releases on a more regular schedule in
the future, timed less close to ports-lock.

The main benefit of this upgrade is that nsh will now work fine as
a login shell, making it worth being listed in /etc/shells.
The 'enable' command will now re-exec to the root user, with authentication
via /etc/doas.conf or the root password. There is no more need for wrapper
scripts involving doas or sudo starting nsh as root.
Thanks to claudio@ for suggesting this design change.

New features:

the "enable" command switches to the root user via doas.conf or root password
add bgpnsh(8), a minimal version of nsh for use as a BGP looking-glass shell
add umb(4) support
allow nsh commands to be piped to standard input from another process
allow empty configuration files to be filled with data from /etc/examples
add "show pf" commands to display pf firewall status
add "show crontab", "crontab edit", "crontab install" commands
add "show environment", "setenv", "unsetenv", and 'saveenv' commands

ok?

-----------------------------------------------
diff ee7c68ff49b85bd3287aafeb87a37caf249dc14d 1a6361e5c0dfbb57d2717a0b887bb9f794c0d721
commit - ee7c68ff49b85bd3287aafeb87a37caf249dc14d
commit + 1a6361e5c0dfbb57d2717a0b887bb9f794c0d721
blob - 0aaceefc96346a2389b06c8bfd669198766ad537
blob + a04db8534b2234268a982f7b2a262d54834a9188
--- shells/nsh/Makefile
+++ shells/nsh/Makefile
@@ -1,42 +1,47 @@
COMMENT = network switch style shell

-
-GH_ACCOUNT = yellowman
-GH_PROJECT = nsh
-GH_TAGNAME = v1.1
CATEGORIES = shells net
HOMEPAGE = https://www.nmedia.net/nsh/
+V = 1.2
+DISTNAME = nsh-${V}
+SITES = https://github.com/yellowman/nsh/releases/download/v${V}/

MAINTAINER = Tom Smyth <tom.smyth@wirelessconnect.eu>

# BSD
PERMIT_PACKAGE = Yes

+# uses pledge()
WANTLIB += c curses edit sqlite3

FLAVORS = static
FLAVOR ?=

-MAKE_FLAGS = CC="${CC}" \
- CPPFLAGS="-I${LOCALBASE}/include" \
+CPPFLAGS = -I${LOCALBASE}/include \
+ -DNSH_REXEC_PATH=${LOCALBASE}/bin/nsh
+
+MAKE_ENV = CC="${CC}" \
+ CPPFLAGS="${CPPFLAGS}" \
LDFLAGS="-L${LOCALBASE}/lib"
LIB_DEPENDS = databases/sqlite3

+FAKE_FLAGS = PREFIX=${TRUEPREFIX}
+
.if ${FLAVOR:Mstatic}
-MAKE_FLAGS += LDADD="-ledit -ltermcap -lsqlite3 -lm -lpthread -static"
+MAKE_FLAGS += LDFLAGS="-L${LOCALBASE}/lib -ledit -ltermcap -lsqlite3 -lm -lpthread -static"
.endif

NO_TEST= Yes

-do-install:
- ${INSTALL_PROGRAM} ${WRKDIST}/nsh ${PREFIX}/bin
- ${INSTALL_MAN} ${WRKDIST}/nsh.8 ${PREFIX}/man/man8/
+post-configure:
+ ${MAKE} -C ${WRKDIST} obj
+
+post-install:
.for i in save-ro.sh save-rw.sh
${INSTALL_SCRIPT} ${WRKDIST}/${i} ${PREFIX}/bin
.endfor
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/nsh
- sed -i s,/usr/local,${LOCALBASE},g ${WRKDIST}/MANUAL
-.for i in MANUAL README TODO COPYRIGHT
+.for i in README.md COPYRIGHT
${INSTALL_DATA} ${WRKDIST}/${i} ${PREFIX}/share/doc/nsh/
.endfor

blob - 2492a4efdcc68c8b34cb856649bd213dd17527ae
blob + 66553f4bfd591f6ca681c2ffd6208f44ff935571
--- shells/nsh/distinfo
+++ shells/nsh/distinfo
@@ -1,2 +1,2 @@
-SHA256 (nsh-1.1.tar.gz) = v0sHzQ2zEoAzbsaZVeVuhp2R0R37cZvNy/RvJ0Df2Pc=
-SIZE (nsh-1.1.tar.gz) = 185700
+SHA256 (nsh-1.2.tar.gz) = XFfUOMhVUCyn+5PhCoXafNIhXxi/GCPXYw2AskzoR/4=
+SIZE (nsh-1.2.tar.gz) = 218922
blob - 247187103b8ceb212dd73ae979309741337c333e
blob + e0707c1e344d5c8f62297f52c1e9d651fd5ec15e
--- shells/nsh/pkg/PLIST
+++ shells/nsh/pkg/PLIST
@@ -1,3 +1,4 @@
+@shell bin/bgpnsh
@shell bin/nsh
bin/save-ro.sh
bin/save-rw.sh
@@ -8,9 +9,11 @@ bin/save-rw.sh
@mode
@owner
@group
+@mode 04555
+@bin libexec/nshdoas
+@mode
+@man man/man8/bgpnsh.8
@man man/man8/nsh.8
share/doc/nsh/
share/doc/nsh/COPYRIGHT
-share/doc/nsh/MANUAL
-share/doc/nsh/README
-share/doc/nsh/TODO
+share/doc/nsh/README.md

No comments:

Post a Comment