git: e02bf0022e90 - stable/12 - freebsd-update(8): Add -j flag to support jails
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 08 Oct 2021 16:27:51 UTC
The branch stable/12 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=e02bf0022e90214918faeadde3500aaef087cc42 commit e02bf0022e90214918faeadde3500aaef087cc42 Author: Faraz Vahedi <kfv@kfv.io> AuthorDate: 2021-10-01 18:48:57 +0000 Commit: Kyle Evans <kevans@FreeBSD.org> CommitDate: 2021-10-08 16:27:35 +0000 freebsd-update(8): Add -j flag to support jails Make freebsd-update(8) support jails by adding the -j flag which takes a jail jid or name as an argument. This takes advantage of the recently added -j support to freebsd-version(8) in order to get the version of the installed userland. Reviewed by: dteske, kevans MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D25711 (cherry picked from commit c76da1f01064b2b9a1903b30d4b4c444b85f8724) --- usr.sbin/freebsd-update/freebsd-update.8 | 11 ++++++++++- usr.sbin/freebsd-update/freebsd-update.sh | 20 +++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.8 b/usr.sbin/freebsd-update/freebsd-update.8 index 54ec17b5ea36..be477d0cdce7 100644 --- a/usr.sbin/freebsd-update/freebsd-update.8 +++ b/usr.sbin/freebsd-update/freebsd-update.8 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 14, 2020 +.Dd October 1, 2021 .Dt FREEBSD-UPDATE 8 .Os .Sh NAME @@ -37,6 +37,7 @@ .Op Fl d Ar workdir .Op Fl f Ar conffile .Op Fl F +.Op Fl j Ar jail .Op Fl k Ar KEY .Op Fl r Ar newrelease .Op Fl s Ar server @@ -90,6 +91,14 @@ Read configuration options from Force .Nm Cm fetch to proceed in the case of an unfinished upgrade. +.It Fl j Ar jail +Operate on the given jail specified by +.Va jid +or +.Va name . +(The version of the installed userland is detected and the +.Fl -currently-running +option is no more required.) .It Fl k Ar KEY Trust an RSA key with SHA256 of .Ar KEY . diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 4fbac58cb562..1776115d0776 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -36,7 +36,7 @@ # --no-stats -- don't show progress statistics while fetching files usage () { cat <<EOF -usage: `basename $0` [options] command ... [path] +usage: `basename $0` [options] command ... Options: -b basedir -- Operate on a system mounted at basedir @@ -47,6 +47,7 @@ Options: (default: /etc/freebsd-update.conf) -F -- Force a fetch operation to proceed in the case of an unfinished upgrade + -j jail -- Operate on the given jail specified by jid or name -k KEY -- Trust an RSA key with SHA256 hash of KEY -r release -- Target for upgrade (e.g., 11.1-RELEASE) -s server -- Server from which to fetch updates @@ -324,6 +325,19 @@ config_SourceRelease () { export UNAME_r } +# Get the Jail's path and the version of its installed userland +config_TargetJail () { + JAIL=$1 + UNAME_r=$(freebsd-version -j ${JAIL}) + BASEDIR=$(jls -j ${JAIL} -h path | awk 'NR == 2 {print}') + if [ -z ${BASEDIR} ] || [ -z ${UNAME_r} ]; then + echo "The specified jail either doesn't exist or" \ + "does not have freebsd-version." + exit 1 + fi + export UNAME_r +} + # Define what happens to output of utilities config_VerboseLevel () { if [ -z ${VERBOSELEVEL} ]; then @@ -492,6 +506,10 @@ parse_cmdline () { if [ $# -eq 1 ]; then usage; fi; shift config_WorkDir $1 || usage ;; + -j) + if [ $# -eq 1 ]; then usage; fi; shift + config_TargetJail $1 || usage + ;; -k) if [ $# -eq 1 ]; then usage; fi; shift config_KeyPrint $1 || usage