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.
| SYSMERGE(8) | System Manager's Manual | SYSMERGE(8) | 
NAME
sysmerge — upgrade
    current operating system from a sysroot
SYNOPSIS
| sysmerge | [ -cfmnpsw] [-ttarget] [--booting]
      [--hook-finalize]
      [--hook-prepare]
      [--is-reboot-needed]
      source | 
DESCRIPTION
sysmerge does an
    upgrade(7) of the current
    operating system by copying the system files from the specified
    source directory (usually a sysroot) onto the current
    root filesystem. This is meant to be used when building the operating system
    from source as described in
    development(7).
sysmerge installs the
    system manifest
    from the tix repository in the source directory, as
    well as all the ports found. If a full upgrade is done, then all ports not
    found will be uninstalled. Upgrade hooks will be run if further actions are
    needed to migrate the system to the new version as described in
    following-development(7).
    The initrd(7) is regenerated
    using
    update-initrd(8). If
    grub is enabled in
    upgrade.conf(5), then
    the bootloader is reinstalled and reconfigured as needed.
sysmerge is an automatic and
    non-interactive upgrade. It is meant to be used as part of the development
    process to upgrade to locally built versions. The
    sysupgrade(8) program is
    by contrast an interactive program.
sysmerge is one of three supported upgrade
    methods. The other two are upgrading from the network using
    tix-upgrade(8), and
    sysupgrade(8) from a new
    .iso release.
The options are as follows:
- --booting
- It's boot time, complete the system upgrade that was delayed. This is meant to be used by init(8) through the merge boot target. This installs the /sysmerge directory onto the root filesystem and removes the /sysmerge directory.
- -c,- --cancel
- Cancel a pending upgrade that would trigger on the next boot. Remove the /sysmerge directory and restore the old kernel(7) and initrd(7).
- -f,- --full
- Full system upgrade that uninstalls ports not present in the source directory.
- --hook-finalize
- Run the post-upgrade hooks. This is meant to be used by the old
      sysmergewhen it invokes the newsysmergeduring a non-waiting upgrade.
- --hook-prepare
- Run the pre-upgrade hooks. This is meant to be used by the old
      sysmergewhen it invokes the newsysmergeduring a non-waiting upgrade.
- --is-reboot-needed
- Exit 0 if an upgrade is scheduled for the next boot, and exit 1 otherwise.
- -m,- --move-source
- Allow moving the source directory and its contents directly to the
      destination with rename(2).
      This behavior currently requires an upgrade scheduled with
      --wait.
- -n,- --now
- Perform the upgrade now, rather than waiting for the next boot.
    This behavior is the default if the target is not a system installation. If the target is a system installation, then this behavior is not available across incompatible ABI changes. 
- -s,- --system
- Upgrade the system. This option is implied unless
      --portsis passed.
- -t,- --target=target
- Upgrade the installation in the target directory
      rather than the root filesystem. This option is supported if the
      target is the / directory
      or only has ports installed and no system. This option is unsupported if
      target has the system installed and is not the
      / directory. Instead one should
      chroot(8) into the
      target and run the old
      sysmergeinside rather than the newsysmerge. However, this option may be useful for repairing installations and should work in practice, however it is untested and might not properly handle incompatible changes across releases.
- -p,- --ports
- Upgrade the ports. This option is implied unless
      --systemis passed.
- -w,- --wait
- Wait until the next boot to complete the upgrade, rather than finishing it
      now. The upgrade is installed into the /sysmerge
      directory instead, with the new kernel and initrd files in
      /boot/sysmerge. The new
      kernel(7) has a new
      initrd(7) that runs
      /sysmerge/sbin/sysmerge
      --booting on boot through the
      chain-sysmerge
      init(8) boot target, which
      performs the operating system upgrade. The bootloader configuration is
      regenerated with a menu option to perform the upgrade if grub is enabled
      in upgrade.conf(5),
      otherwise the /etc/default/grub.d/10_sortix.cache
      bootloader fragment can be used to manually bootload the upgrade.
    This behavior is the default if the target is a system installation. This option requires the target to be system installation. This behavior happens regardless if a system installation is upgraded across an incompatible ABI Change. 
FILES
- /boot/sortix.bin
- Old system kernel(7).
- /boot/sortix.initrd
- Old system initrd(7).
- /boot/sysmerge/
- New system kernel and initrd files.
- /etc/default/grub.d/10_sortix.cache
- GRUB configuration fragment that boots the new system.
- /etc/upgrade.conf
- Controls the bootloader upgrade behavior (see upgrade.conf(5)).
- /lib/sortix-release
- The current system release.
- /share/sysinstall/hooks/
- A file per upgrade hook indicating that it doesn't need to be run.
- /sysmerge/
- The pending system upgrade is stored here.
SEE ALSO
development(7), initrd(7), installation(7), kernel(7), upgrade(7), sysinstall(8), sysupgrade(8), tix-upgrade(8)
| February 14, 2016 | Sortix 1.1.0-dev | 
