git: cf1aba2857c1 - main - freebsd-update: refuse to operate on a pkgbase system
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 31 Oct 2024 18:35:59 UTC
The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=cf1aba2857c1ec59c9a34d363cb18a61ffa34a10 commit cf1aba2857c1ec59c9a34d363cb18a61ffa34a10 Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2024-10-30 19:15:13 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2024-10-31 18:35:44 +0000 freebsd-update: refuse to operate on a pkgbase system FreeBSD-update is not compatible with packaged base. PR: 282252 Reviewed by: bapt, markj (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D47341 --- usr.sbin/freebsd-update/freebsd-update.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 459d54db0c57..80a8bf288251 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -1099,6 +1099,25 @@ IDS_check_params () { fetch_setup_verboselevel } +# Packaged base and freebsd-update are incompatible. Exit with an error if +# packaged base is in use. +check_pkgbase() +{ + # Packaged base requires that pkg is bootstrapped. + if ! pkg -c ${BASEDIR} -N >/dev/null 2>/dev/null; then + return + fi + # Presence of FreeBSD-* package(s) indicates packaged base. + if ! pkg -c ${BASEDIR} info -q -x '^FreeBSD' 2>/dev/null; then + return + fi + cat <<EOF +FreeBSD-update is incompatible with the use of packaged base. Please see +https://wiki.freebsd.org/PkgBase for more information. +EOF + exit 1 +} + #### Core functionality -- the actual work gets done here # Use an SRV query to pick a server. If the SRV query doesn't provide @@ -3517,6 +3536,7 @@ cmd_cron () { # Fetch files for upgrading to a new release. cmd_upgrade () { + check_pkgbase finalize_components_config ${COMPONENTS} upgrade_check_params upgrade_check_kmod_ports @@ -3551,6 +3571,7 @@ cmd_updatesready () { # Install downloaded updates. cmd_install () { + check_pkgbase finalize_components_config ${COMPONENTS} install_check_params install_create_be @@ -3559,6 +3580,7 @@ cmd_install () { # Rollback most recently installed updates. cmd_rollback () { + check_pkgbase finalize_components_config ${COMPONENTS} rollback_check_params rollback_run || exit 1