mirror of
https://github.com/BastilleBSD/bastille.git
synced 2025-12-11 17:39:52 +01:00
upgrade: many fixes
This commit is contained in:
@@ -104,7 +104,15 @@ thick_jail_check() {
|
||||
error_exit "Use [-a|--auto] to auto-start the jail."
|
||||
fi
|
||||
|
||||
if [ "${PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
# Verify PLATFORM_OS inside jail
|
||||
JAIL_PLATFORM_OS="$(${bastille_jailsdir}/${TARGET}/root/bin/freebsd-version)"
|
||||
if echo "${JAIL_PLATFORM_OS}" | grep -q "HBSD"; then
|
||||
JAIL_PLATFORM_OS="HardenedBSD"
|
||||
else
|
||||
JAIL_PLATFORM_OS="FreeBSD"
|
||||
fi
|
||||
|
||||
if [ "${JAIL_PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
|
||||
# Set OLD_RELEASE
|
||||
OLD_RELEASE="$(${bastille_jailsdir}/${TARGET}/root/bin/freebsd-version 2>/dev/null)"
|
||||
@@ -117,13 +125,13 @@ thick_jail_check() {
|
||||
NEW_MAJOR_VERSION=$(echo ${NEW_RELEASE} | grep -Eo '^[0-9]+')
|
||||
|
||||
# Validate PKGBASE or non-PKGBASE
|
||||
if echo "${NEW_RELEASE}" | grep -oq "\-CURRENT"; then
|
||||
FREEBSD_BRANCH="current"
|
||||
else
|
||||
FREEBSD_BRANCH="release"
|
||||
fi
|
||||
if pkg -r "${bastille_jailsdir}/${TARGET}/root" which /usr/bin/uname > /dev/null 2>&1; then
|
||||
PKGBASE=1
|
||||
if echo "${NEW_RELEASE}" | grep -oq "\-CURRENT"; then
|
||||
FREEBSD_BRANCH="current"
|
||||
else
|
||||
FREEBSD_BRANCH="release"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check if jail is already running NEW_RELEASE
|
||||
@@ -132,7 +140,7 @@ thick_jail_check() {
|
||||
error_exit "See 'bastille update TARGET' to update the jail."
|
||||
fi
|
||||
|
||||
elif [ "${PLATFORM_OS}" = "HardenedBSD" ]; then
|
||||
elif [ "${JAIL_PLATFORM_OS}" = "HardenedBSD" ]; then
|
||||
|
||||
# Set VERSION
|
||||
OLD_RELEASE="$(${bastille_jailsdir}/${TARGET}/root/bin/freebsd-version 2>/dev/null)"
|
||||
@@ -160,7 +168,7 @@ thin_jail_check() {
|
||||
error_exit "Use [-a|--auto] to auto-stop the jail."
|
||||
fi
|
||||
|
||||
# Set VERSION
|
||||
# Set OLD_RELEASE
|
||||
OLD_RELEASE="$(bastille config ${TARGET} get osrelease)"
|
||||
if [ -z "${OLD_RELEASE}" ]; then
|
||||
error_exit "[ERROR]: Can't determine '${TARGET}' version."
|
||||
@@ -243,31 +251,29 @@ jail_upgrade() {
|
||||
|
||||
else
|
||||
|
||||
if [ "${PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
if [ "${JAIL_PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
|
||||
local jailpath="${bastille_jailsdir}/${TARGET}/root"
|
||||
local work_dir="${jailpath}/var/db/freebsd-update"
|
||||
local freebsd_update_conf="${jailpath}/etc/freebsd-update.conf"
|
||||
|
||||
# Upgrade a thick jail
|
||||
env PAGER="/bin/cat" freebsd-update ${OPTION} --not-running-from-cron \
|
||||
--currently-running "${OLD_RELEASE}" \
|
||||
-j "${TARGET}" \
|
||||
-d "${work_dir}" \
|
||||
-f "${freebsd_update_conf}" \
|
||||
-r "${NEW_RELEASE}" upgrade
|
||||
if env PAGER="/bin/cat" freebsd-update ${OPTION} --not-running-from-cron \
|
||||
--currently-running "${OLD_RELEASE}" \
|
||||
-j "${TARGET}" \
|
||||
-d "${work_dir}" \
|
||||
-f "${freebsd_update_conf}" \
|
||||
-r "${NEW_RELEASE}" upgrade; then
|
||||
|
||||
UPGRADED_RELEASE="$(${bastille_jailsdir}/${TARGET}/root/bin/freebsd-version 2>/dev/null)"
|
||||
if [ "${OLD_RELEASE}" = "${UPGRADED_RELEASE}" ]; then
|
||||
info "\nNo upgrades available.\n"
|
||||
else
|
||||
# Update "osrelease" inside jail.conf using 'bastille config'
|
||||
bastille config ${TARGET} set osrelease ${UPGRADED_RELEASE} >/dev/null 2>/dev/null
|
||||
warn "Please run 'bastille upgrade ${TARGET} install', restart the jail, then run 'bastille upgrade ${TARGET} install' again to finish installing updates."
|
||||
echo
|
||||
info "\nUpgraded ${TARGET}: ${OLD_RELEASE} > ${NEW_RELEASE}"
|
||||
warn "\nPlease run 'bastille upgrade ${TARGET} install', restart the jail, then run 'bastille upgrade ${TARGET} install' again to finish installing the upgrade.\n"
|
||||
else
|
||||
info "\nNo upgrades available.\n"
|
||||
fi
|
||||
|
||||
elif [ "${PLATFORM_OS}" = "HardenedBSD" ]; then
|
||||
elif [ "${JAIL_PLATFORM_OS}" = "HardenedBSD" ]; then
|
||||
|
||||
local jailname="${TARGET}"
|
||||
local jailpath="${bastille_jailsdir}/${TARGET}/root"
|
||||
@@ -296,10 +302,10 @@ jail_upgrade() {
|
||||
-c "${hbsd_update_conf}"
|
||||
|
||||
UPGRADED_RELEASE="$(${bastille_jailsdir}/${TARGET}/root/bin/freebsd-version 2>/dev/null)"
|
||||
if [ "${OLD_RELEASE}" = "${UPGRADED_RELEASE}" ]; then
|
||||
info "\nNo upgrades available.\n"
|
||||
else
|
||||
if [ "${OLD_RELEASE}" != "${UPGRADED_RELEASE}" ]; then
|
||||
info "\nUpgraded ${TARGET}: ${OLD_RELEASE} -> ${UPGRADED_RELEASE}\n"
|
||||
else
|
||||
info "\nNo upgrades available.\n"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -307,7 +313,7 @@ jail_upgrade() {
|
||||
|
||||
jail_upgrade_pkgbase() {
|
||||
|
||||
if [ "${PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
if [ "${JAIL_PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
|
||||
local jailpath="${bastille_jailsdir}/${TARGET}/root"
|
||||
local abi="FreeBSD:${NEW_MAJOR_VERSION}:${HW_MACHINE_ARCH}"
|
||||
@@ -382,7 +388,7 @@ jail_upgrade_pkgbase() {
|
||||
|
||||
jail_updates_install() {
|
||||
|
||||
if [ "${PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
if [ "${JAIL_PLATFORM_OS}" = "FreeBSD" ]; then
|
||||
|
||||
local jailpath="${bastille_jailsdir}/${TARGET}/root"
|
||||
local work_dir="${jailpath}/var/db/freebsd-update"
|
||||
@@ -438,4 +444,4 @@ case ${NEW_RELEASE} in
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
Reference in New Issue
Block a user