Sortix
Sortix Download Manual Development Source Code News Blog More
current nightly

Sortix nightly manual

This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.

NAME

autoupgrade.conf — automatic upgrade configuration

SYNOPSIS

/etc/autoupgrade.conf

DESCRIPTION

autoupgrade.conf configures sysupgrade(8) to do an automatic operating system upgrade(7).
The system administrator can automate operating system upgrades by following release-iso-modification(7) to embed the /etc/autoupgrade.conf file into the release cdrom filesystem. New installations can similarly be automatically installed using autoinstall.conf(5).
Each line is formatted as question=answer which provides an answer to a question asked during upgrading. Alternatively question+=answer appends to an existing answer (if any) separated by a space, and question++=answer appends another line to an existing answer (if any). Empty lines and lines starting with ‘#’ are comments and are ignored. Otherwise whitespace is significant. The empty answer accepts the default answer (if any) and is different from no answer, which makes sysupgrade(8) ask the question normally. Upgrades can be made fully non-interactive using accept_defaults.
Each question has a counterpart question suffixed with ‘!’ which contains a sh(1) script that is executed before the question is asked. If the original question isn't answered, then the script's standard output is used as the answer to the original question. The upgrade aborts if the script exits unsuccessfully. These scripts are useful to customize the upgrades with arbitrary code.
The questions in chronological order are as follows:
accept_defaults=[no | yes] (default no)
Accept the default answer (if any) to questions that were not configured in autoupgrade.conf? This feature makes upgrades entirely automated even if unexpected questions are asked, although the essential questions must be answered.
countdown=seconds (default 10)
Count down for this many seconds with a warning that an automated upgrade is about to happen? The countdown happens if accept_defaults=yes or if the ready and confirm_upgrrade questions are answered.
ignore_missing_programs=[no | yes] (default no)
Ignore if the upgrader environment does not have the needed ports installed? This situation ordinarily does not happen.
ready=affirmation
Are you ready to begin the upgrade process? This is a human readable positive affirmation of your choice that you're ready to upgrade, useful for fully automated upgrades. Not answering this question is useful for semi-automated upgrades where one would acknowledge the upgrades before it's begun. It also provides the opportunity to escape to a shell before upgrading.
The ready! question is convenient for running shell commands before the upgrade begins.
kblayout=[default | layout] (default default)
Switch to this keyboard layout using chkblayout(1)?
videomode=[no | yes | WIDTHxHEIGHTxBPP] (default yes)
Interactively select a graphics resolution using chvideomode(1) or non-interactively set it to the specified resolution?
If the upgrade is non-interactive with accept_defaults=true, then the default is instead no.
run_installer_instead=[no | yes] (default yes)
Run the sysinstall(8) installer instead if no installations were found?
This answer is useful combined with autoinstall.conf(5) to either install or upgrade the operating system, regardless of what is already installed on the machine.
which_installaton=block-device
The name of the block-device containing the root filesystem to upgrade? This question is only asked if multiple installations were found.
switch_architecture=[no | yes] (default no)
Switch the installation to another architecture?
Such upgrades are not supported and may corrupt the installation.
downgrade_release=[no | yes] (default no)
Downgrade the installation to an earlier release?
Such upgrades are not supported and may corrupt the installation.
skip_release=[no | yes] (default no)
Skip upgrading to a release that ordinarily must be upgraded to first?
Such upgrades are not supported and may corrupt the installation.
downgrade_abi=[no | yes] (default no)
Downgrade the installation to an earlier ABI?
Such upgrades are not supported and may corrupt the installation.
cancel_pending_sysmerge=[no | yes] (default yes)
Cancel an existing pending sysmerge(8) upgrade?
confirm_upgrade=[no | yes | exit | poweroff | reboot | halt] (default yes)
Upgrade the operating system or abort the upgrade? This is the final confirmation before the operating system is upgraded.
The confirm_upgrade! question is convenient for running shell commands before the upgrade step. The working directory is the root filesystem of the installation with all filesystems mounted. Note how chroot(8) command may not work as intended at this point since the ABI may have incompatibly changed.
finally=[exit | poweroff | reboot | halt | boot] (default boot)
What action should be taken when the upgrade is finished?
The finally! question is convenient for running shell commands once the upgrade is complete to customize the upgraded installation. The working directory is the root filesystem of the installation with all filesystems mounted. The chroot -d . command is useful to chroot(8) into the root filesystem to run commands with the /dev filesystem mounted.

FILES

/etc/autoupgrade.conf
Automatic upgrade configuration.

EXAMPLES

Fully automated upgrade

To perform a fully automated upgrade with, create autoupgrade.conf:
accept_defaults=yes
Then follow release-iso-modification(7) to configure the upgrade medium:
tix-iso-liveconfig --autoupgrade=autoupgrade.conf liveconfig 
tix-iso-bootconfig \ 
  --liveconfig=liveconfig --default=1 --random-seed \ 
  bootconfig 
tix-iso-add sortix.iso bootconfig -o autosortix.iso
The resulting autosortix.iso image will then automatically upgrade the operating system on whatever machine it is booted on.

SEE ALSO

autoinstall.conf(5), upgrade.conf(5), release-iso-modification(7), upgrade(7), sysupgrade(8), tix(8)
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org