Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jan 2024 14:46:16 GMT
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 2b79df0ad999 - stable/14 - freebsd-update: for rollback, first create directories
Message-ID:  <202401081446.408EkGtx034527@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=2b79df0ad999df4bc22ed0e1eff446efa4055359

commit 2b79df0ad999df4bc22ed0e1eff446efa4055359
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-09-29 15:28:35 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-01-07 19:40:06 +0000

    freebsd-update: for rollback, first create directories
    
    rollback_files() tried to install files before creating the directories
    for those files.  In some cases this is due to special handling to
    install certain classes of files earlier than others.
    
    Just create all directories up front when performing rollback.
    
    PR:             273950
    Reviewed by:    dim
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D42020
    
    (cherry picked from commit 6b27e1f2eaab9360a796c943da9d206515e1742b)
---
 usr.sbin/freebsd-update/freebsd-update.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh
index 7408ef1c6721..551d40418240 100644
--- a/usr.sbin/freebsd-update/freebsd-update.sh
+++ b/usr.sbin/freebsd-update/freebsd-update.sh
@@ -3196,6 +3196,11 @@ rollback_setup_rollback () {
 
 # Install old files, delete new files, and update linker.hints
 rollback_files () {
+	# Create directories first.  They may be needed by files we will
+	# install in subsequent steps (PR273950).
+	awk -F \| '{if ($2 == "d") print }' $1/INDEX-OLD > INDEX-OLD
+	install_from_index INDEX-OLD || return 1
+
 	# Install old shared library files which don't have the same path as
 	# a new shared library file.
 	grep -vE '^/boot/' $1/INDEX-NEW |



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202401081446.408EkGtx034527>